You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
improve: deepen all four skill guides — coverage, output quality & trigger accuracy
- decay-risks.md: promote Hyrum's Law and Orthogonality to named symptoms in R2
- pr-review-guide: add PR size calibration table, split Step 6 into 6a/6b,
reframe severity block as tiebreaker referencing per-risk guides
- architecture-guide: add Step 5 Testability Seam Assessment (Feathers seam model),
simplify Mermaid Phase A/B into linear instruction with explicit Phase B reminder,
add Conway's Law calibration examples; renumber Conway's Law to Step 6
- debt-guide: add concrete Pain×Spread calibration examples, add Step 2b for
intentional vs accidental debt classification (Cunningham definition),
replace unmeasurable date-based criterion with observable payback-plan check
- test-guide: split Step 2 into 2a (Test Brittleness) + 2b (Mock Abuse) with
merged single-pass sampling, add Characterization Test template (Feathers Ch.8),
structure test performance guidance into three severity tiers
- all SKILL.md: rewrite trigger descriptions in natural language, add explicit
DO NOT trigger guards (fixes brooks-debt false-triggering on HTTP health checks)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tool choices, not developer decisions. Note in the report which files were skipped and why.
13
13
14
+
**Scope calibration:** Adjust analysis depth based on PR size before starting.
15
+
16
+
| PR Size | Approach |
17
+
|---------|----------|
18
+
| < 50 lines | Focus on Steps 1–3 only; run Step 6a only if imports changed; run Step 6b if any class, method, or variable was renamed or introduced |
19
+
| 50–300 lines | Full process, all steps |
20
+
| > 300 lines | Full process; note in the Scope line that review is sampled — cover the highest-risk areas rather than every file |
21
+
22
+
For PRs > 500 lines: flag in the Summary that a PR this size is itself a Change Propagation signal. A change that cannot be reviewed in one pass suggests tangled responsibilities.
23
+
14
24
---
15
25
16
26
## Analysis Process
@@ -61,15 +71,20 @@ Look for:
61
71
- Does this change add a class that only wraps another class or delegates everything?
62
72
- Does this change add configuration options or extension points that serve no current requirement?
63
73
64
-
### Step 6: Scan for Dependency Disorder and Domain Model Distortion
74
+
### Step 6a: Scan for Dependency Disorder
65
75
66
-
Look for Dependency Disorder:
67
76
- Do any new imports create a dependency from a high-level module to a low-level one?
68
-
- Do any new imports introduce a cycle?
77
+
(e.g., domain service now imports a database driver or HTTP client)
78
+
- Do any new imports introduce a cycle between modules?
79
+
- Does any new interface force callers to depend on methods they do not use?
80
+
81
+
If no new imports and no structural changes → skip, no finding.
69
82
70
-
Look for Domain Model Distortion:
71
-
- Do new class or variable names match the language the business uses?
72
-
- Does any new class hold only data with no behavior, where behavior was expected?
83
+
### Step 6b: Scan for Domain Model Distortion
84
+
85
+
- Do new class or variable names match the language the business uses for the same concept?
86
+
- Does any new class hold only data with no behavior (pure data bag), where behavior was expected?
87
+
- Does any new method put logic that belongs to the domain in a service or utility layer?
73
88
74
89
---
75
90
@@ -89,6 +104,16 @@ Do not write a finding that you cannot complete fully. If you can identify a sym
89
104
cannot state a consequence, you have not understood the risk well enough — re-read
90
105
`../_shared/decay-risks.md` for that risk before writing the finding.
91
106
107
+
**Severity calibration:** Each risk in `../_shared/decay-risks.md` has its own Severity
108
+
Guide with numeric thresholds — use those as the primary reference. When a finding sits
109
+
on the boundary between two tiers, use this as a tiebreaker:
110
+
- 🔴 Critical — actively breaking velocity or creating production risk *today*
111
+
- 🟡 Warning — will if left unaddressed through the next few features
112
+
- 🟢 Suggestion — worth fixing when nearby, not urgent
113
+
114
+
When multiple findings exist, list Critical items first. If there are more than 5 findings,
115
+
add a one-line "Recommended fix order" at the end of the Findings section.
0 commit comments