rhachet-roles-bhuild 0.14.3 → 0.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,19 @@ reviews:
11
11
  say: |
12
12
  try hard to delete before you optimize:
13
13
 
14
+ ## features
15
+
16
+ for each feature in the blueprint, ask:
17
+ - does this feature trace to a requirement in the criteria?
18
+ - did the wisher explicitly ask for this feature?
19
+ - or did we assume it was needed?
20
+
21
+ if a feature has no traceability to vision or criteria:
22
+ 1. delete it
23
+ 2. or flag it as an open question for the wisher
24
+
25
+ ## components
26
+
14
27
  for each component, ask:
15
28
  - can this be removed entirely?
16
29
  - if we deleted this and had to add it back, would we?
@@ -11,6 +11,19 @@ reviews:
11
11
  say: |
12
12
  try hard to delete before you optimize:
13
13
 
14
+ ## features
15
+
16
+ for each feature in the blueprint, ask:
17
+ - does this feature trace to a requirement in the criteria?
18
+ - did the wisher explicitly ask for this feature?
19
+ - or did we assume it was needed?
20
+
21
+ if a feature has no traceability to vision or criteria:
22
+ 1. delete it
23
+ 2. or flag it as an open question for the wisher
24
+
25
+ ## components
26
+
14
27
  for each component, ask:
15
28
  - can this be removed entirely?
16
29
  - if we deleted this and had to add it back, would we?
@@ -1,6 +1,12 @@
1
1
  # guard for execution stone
2
2
  # includes standardized self-review frame
3
3
 
4
+ artifacts:
5
+ # track execution progress
6
+ - "$route/5.1.execution.phase0_to_phaseN.v1.i1.md"
7
+ # track actual implementation in src/
8
+ - "src/**/*"
9
+
4
10
  reviews:
5
11
  self:
6
12
  # 1. minimalism - yagni
@@ -3,8 +3,9 @@ evaluate what was implemented against the blueprint
3
3
  .what = articulate exactly what was implemented, then check for divergences from blueprint.
4
4
 
5
5
  .why = the blueprint declared what the execution would adhere to.
6
- - divergences may be intentional improvements or accidental drift
7
- - each divergence must be either repaired or backed up with rationale
6
+ - divergences are NOT allowed
7
+ - default action is REPAIR fix implementation to match blueprint
8
+ - if repair is impossible, raise BLOCKER and request human approval
8
9
  - this gate prevents silent deviations from approved design
9
10
 
10
11
  ---
@@ -68,20 +69,21 @@ for each section (summary, filediff, codepath, test coverage), compare:
68
69
 
69
70
  ### divergence resolution
70
71
 
71
- for each divergence, you must either:
72
+ for each divergence:
72
73
 
73
- **repair** — fix the implementation to match the blueprint:
74
+ **repair** (default) — fix the implementation to match the blueprint:
74
75
  - what needs to change to match blueprint?
75
76
  - make the change, then update the "as implemented" section above
76
77
 
77
- **backup** document why the divergence is acceptable:
78
- - why did the implementation diverge?
79
- - why is the divergence better than the blueprint?
80
- - should the blueprint be updated for future reference?
78
+ **blocker** (only if repair is impossible) request human approval:
79
+ - why is repair impossible?
80
+ - what constraint prevents adherence to blueprint?
81
+ - run `rhx route.stone.set --as blocked` to declare yourself blocked and request human approval
82
+ - STOP and await human decision before you proceed
81
83
 
82
84
  | divergence | resolution | rationale |
83
85
  |------------|------------|-----------|
84
- | ... | repair/backup | ... |
86
+ | ... | repair/blocker | ... |
85
87
 
86
88
  ---
87
89
 
@@ -1,3 +1,9 @@
1
+ artifacts:
2
+ # track verification progress
3
+ - "$route/5.3.verification.v1.i1.md"
4
+ # track actual implementation in src/
5
+ - "src/**/*"
6
+
1
7
  reviews:
2
8
  self:
3
9
  - slug: has-behavior-coverage
@@ -67,19 +73,51 @@ reviews:
67
73
 
68
74
  if any journey was planned but not implemented, go back and add it.
69
75
 
70
- - slug: has-snapshot-coverage
76
+ - slug: has-contract-output-variants-snapped
77
+ say: |
78
+ double-check: does each public contract have snapshots for all output variants?
79
+
80
+ for each new or modified public contract (cli command, sdk method, api endpoint):
81
+ - is there a dedicated snapshot file with `.toMatchSnapshot()` or equivalent?
82
+ - does the snapshot capture what the caller would actually see?
83
+ - does it exercise the success case?
84
+ - does it exercise error cases?
85
+ - does it exercise edge cases and variants (e.g., --help, empty input)?
86
+
87
+ output types to capture:
88
+ - for CLI: stdout/stderr
89
+ - for UI: screens
90
+ - for SDK: responses
91
+
92
+ why this matters:
93
+ - snapshots enable vibecheck in prs — reviewers see actual output without execute
94
+ - snapshots detect drift over time — output changes surface in diffs
95
+ - absent variants mean blind spots in review
96
+
97
+ if a contract lacks variant coverage, add the test cases now.
98
+
99
+ - slug: has-snap-changes-rationalized
71
100
  say: |
72
- double-check: do snapshots capture input/output for caller visibility?
101
+ double-check: is every `.snap` file change intentional and justified?
102
+
103
+ for each `.snap` file in git diff:
104
+ 1. what changed? (added, modified, deleted)
105
+ 2. was this change intended or accidental?
106
+ 3. if intended: what is the rationale?
107
+ 4. if accidental: revert it or explain why the new output is an improvement
73
108
 
74
- for each journey test:
75
- - does it have `.toMatchSnapshot()` or equivalent assertions?
76
- - does the snapshot show what the caller would actually see?
77
- - for CLI: is stdout/stderr captured?
78
- - for UI: are screens captured?
79
- - for SDK: are responses captured?
109
+ common regressions caught here:
110
+ - output format degraded (lost alignment, lost structure)
111
+ - error messages became less helpful
112
+ - timestamps or ids leaked into snapshots (flaky)
113
+ - extra output added unintentionally
114
+
115
+ forbidden:
116
+ - "updated snapshots" without per-file rationale
117
+ - bulk snapshot updates without review
118
+ - regressions accepted without justification
80
119
 
81
- snapshots let reviewers see the actual output without the need to run the code.
82
- if snapshots are absent, the reviewer can't verify the user experience.
120
+ every snap change tells a story. make sure the story is intentional.
83
121
 
84
122
  - slug: has-critical-paths-frictionless
85
123
  say: |
@@ -68,9 +68,37 @@ for each journey sketched in repros, verify it was implemented with snapshots.
68
68
  - [ ] no prior failures carried forward
69
69
 
70
70
  ### snapshot coverage for contract outputs
71
- - [ ] new cli commands have `.snap` snapshots for stdout/stderr
72
- - [ ] new app screens have `.snap` snapshots for screenshots
73
- - [ ] snapshot demonstrates actual output, not just "it ran"
71
+
72
+ each public contract needs dedicated snapshots that demonstrate its stdout for:
73
+ - **vibechecks in prs** reviewers see actual output without executing code
74
+ - **drift detection** — changes to output surface in diffs over time
75
+
76
+ | contract | output variants | snapshot file | status |
77
+ |----------|-----------------|---------------|--------|
78
+ | {command 1} | success, error, help | {path.snap} | ⏳ |
79
+ | {command 2} | success, error, help | {path.snap} | ⏳ |
80
+ ...
81
+
82
+ checklist:
83
+ - [ ] every new cli command has `.snap` snapshots for stdout/stderr
84
+ - [ ] every new app screen has `.snap` snapshots for screenshots
85
+ - [ ] every new sdk method has `.snap` snapshots for responses
86
+ - [ ] each output variant is exercised (success, error, edge cases)
87
+ - [ ] snapshots demonstrate actual output, not just "it ran"
88
+
89
+ ### snapshot change rationalization
90
+
91
+ for each `.snap` file changed, rationalize whether the change was intended or accidental:
92
+
93
+ | snap file | change type | intended? | rationale |
94
+ |-----------|-------------|-----------|-----------|
95
+ | {path.snap} | added / modified / deleted | yes / no | {why this change is correct} |
96
+ ...
97
+
98
+ checklist:
99
+ - [ ] every `.snap` change has been reviewed
100
+ - [ ] intended changes have clear rationale
101
+ - [ ] accidental changes have been reverted or justified as improvements
74
102
 
75
103
  ### tests executed
76
104
  - [ ] `npm run test` — passed
@@ -1,3 +1,9 @@
1
+ artifacts:
2
+ # track playtest progress
3
+ - "$route/5.5.playtest.v1.i1.md"
4
+ # track actual implementation in src/
5
+ - "src/**/*"
6
+
1
7
  reviews:
2
8
  self:
3
9
  - slug: has-clear-instructions
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "rhachet-roles-bhuild",
3
3
  "author": "ehmpathy",
4
4
  "description": "roles for building resilient systems, via rhachet",
5
- "version": "0.14.3",
5
+ "version": "0.14.5",
6
6
  "repository": "ehmpathy/rhachet-roles-bhuild",
7
7
  "homepage": "https://github.com/ehmpathy/rhachet-roles-bhuild",
8
8
  "keywords": [
@@ -89,11 +89,11 @@
89
89
  "esbuild-register": "3.6.0",
90
90
  "husky": "8.0.3",
91
91
  "jest": "30.2.0",
92
- "rhachet": "1.37.15",
93
- "rhachet-brains-anthropic": "0.3.3",
94
- "rhachet-roles-bhrain": "0.18.1",
92
+ "rhachet": "1.38.0",
93
+ "rhachet-brains-anthropic": "0.4.0",
94
+ "rhachet-roles-bhrain": "0.23.8",
95
95
  "rhachet-roles-bhuild": "link:.",
96
- "rhachet-roles-ehmpathy": "1.27.13",
96
+ "rhachet-roles-ehmpathy": "1.34.9",
97
97
  "tsc-alias": "1.8.10",
98
98
  "tsx": "4.20.6",
99
99
  "typescript": "5.4.5",