rhachet-roles-bhuild 0.17.0 → 0.17.1
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.
- package/dist/domain.operations/behavior/init/templates/5.3.verification.v1.guard +38 -3
- package/dist/domain.operations/behavior/init/templates/5.3.verification.v1.stone +44 -8
- package/dist/domain.operations/behavior/init/templates/5.5.playtest.v1.guard +36 -2
- package/dist/domain.operations/behavior/init/templates/5.5.playtest.v1.stone +23 -3
- package/package.json +4 -4
|
@@ -14,14 +14,20 @@ reviews:
|
|
|
14
14
|
- is every behavior in 1.vision.md covered?
|
|
15
15
|
- can you point to each test file in the checklist?
|
|
16
16
|
|
|
17
|
+
**if any behavior lacks a test, write the test NOW.** do not pass this gate with gaps.
|
|
18
|
+
|
|
17
19
|
- slug: has-zero-test-skips
|
|
18
20
|
say: |
|
|
19
|
-
double-check: did you verify zero skips?
|
|
21
|
+
double-check: did you verify zero skips — and REMOVE any you found?
|
|
20
22
|
|
|
21
23
|
- no .skip() or .only() found?
|
|
22
24
|
- no silent credential bypasses?
|
|
23
25
|
- no prior failures carried forward?
|
|
24
26
|
|
|
27
|
+
**if you found skips, did you remove them and make those tests pass?**
|
|
28
|
+
|
|
29
|
+
this is buttonup. skips are gaps. gaps get fixed, not noted.
|
|
30
|
+
|
|
25
31
|
- slug: has-all-tests-passed
|
|
26
32
|
say: |
|
|
27
33
|
double-check: did all tests pass? prove it.
|
|
@@ -93,7 +99,10 @@ reviews:
|
|
|
93
99
|
- does the test follow the BDD given/when/then structure?
|
|
94
100
|
- does each `when([tN])` step exist?
|
|
95
101
|
|
|
96
|
-
if any journey was planned but not implemented, go back and add it
|
|
102
|
+
**if any journey was planned but not implemented, go back and add it NOW.**
|
|
103
|
+
|
|
104
|
+
this is buttonup. absent journey tests = incomplete implementation.
|
|
105
|
+
test coverage proves prod coverage. no test = no proof = not done.
|
|
97
106
|
|
|
98
107
|
- slug: has-contract-output-variants-snapped
|
|
99
108
|
say: |
|
|
@@ -122,11 +131,13 @@ reviews:
|
|
|
122
131
|
- absent variants mean blind spots in review
|
|
123
132
|
- exhaustive coverage proves the contract works for all callers
|
|
124
133
|
|
|
125
|
-
**zero leniency.** if a contract lacks any variant, add the test case
|
|
134
|
+
**zero leniency.** if a contract lacks any variant, add the test case NOW.
|
|
126
135
|
|
|
127
136
|
if you find yourself about to say "this variant isn't worth a snapshot" — stop.
|
|
128
137
|
that is the variant that will break in prod. snap it.
|
|
129
138
|
|
|
139
|
+
this is buttonup. absent snapshots = absent proof. add them or fail this gate.
|
|
140
|
+
|
|
130
141
|
- slug: has-snap-changes-rationalized
|
|
131
142
|
say: |
|
|
132
143
|
double-check: is every `.snap` file change intentional and justified?
|
|
@@ -191,6 +202,30 @@ reviews:
|
|
|
191
202
|
- do they have the `.play.` suffix?
|
|
192
203
|
- if not supported, is the fallback convention used?
|
|
193
204
|
|
|
205
|
+
- slug: has-fixed-all-gaps
|
|
206
|
+
say: |
|
|
207
|
+
final buttonup check: did you FIX every gap you found, or just detect it?
|
|
208
|
+
|
|
209
|
+
**this is the buttonup phase. detection is not enough — you must fix.**
|
|
210
|
+
|
|
211
|
+
look back at all the reviews above. for every gap you identified:
|
|
212
|
+
- absent test coverage → did you WRITE the test?
|
|
213
|
+
- absent prod coverage → did you IMPLEMENT the behavior?
|
|
214
|
+
- failed test → did you FIX the code or test?
|
|
215
|
+
- skipped test → did you REMOVE the skip and make it pass?
|
|
216
|
+
|
|
217
|
+
**zero omissions.** if any review above surfaced a gap, that gap must be fixed before you pass this gate.
|
|
218
|
+
|
|
219
|
+
ask yourself:
|
|
220
|
+
- did i just note the gap, or did i actually fix it?
|
|
221
|
+
- is there any item marked "todo" or "later"? (forbidden)
|
|
222
|
+
- is there any coverage marked incomplete? (forbidden)
|
|
223
|
+
|
|
224
|
+
**if you detected it, you fixed it.** prove it with citations.
|
|
225
|
+
|
|
226
|
+
this is the final self-review. you are about to hand off to peer review.
|
|
227
|
+
prove that all items above were addressed — not deferred.
|
|
228
|
+
|
|
194
229
|
peer:
|
|
195
230
|
# verify contract snapshot exhaustiveness
|
|
196
231
|
- npx rhachet run --repo bhrain --skill review --rules '.agent/repo=bhuild/role=behaver/briefs/practices/behavior.verification/rule.require.contract-snapshot-exhaustiveness.md' --diffs since-main --paths-with '{src,blackbox}/**/*.{test,snap}.ts' --join intersect --output '$route/.reviews/$stone.peer-review.contract-snapshots.md' --mode hard
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
prove the deliverable works via test verification
|
|
1
|
+
prove the deliverable works via test verification — fix all gaps
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
## .what
|
|
6
6
|
|
|
7
|
-
this is the verification gate
|
|
7
|
+
this is the verification gate — the **buttonup phase**.
|
|
8
|
+
|
|
9
|
+
you cannot pass execution without proof that all tests pass. more importantly: **test coverage enforces prod coverage**. if tests are absent, prod is incomplete. if prod is incomplete, fix it.
|
|
10
|
+
|
|
11
|
+
## .the buttonup mandate: zero omissions
|
|
12
|
+
|
|
13
|
+
**this is not a detection phase. this is a completion phase.**
|
|
14
|
+
|
|
15
|
+
when you find a gap, you do not note it and move on. you **fix it**.
|
|
16
|
+
|
|
17
|
+
| gap type | action |
|
|
18
|
+
|----------|--------|
|
|
19
|
+
| absent test coverage | write the test NOW |
|
|
20
|
+
| absent prod coverage | implement the behavior NOW |
|
|
21
|
+
| failed test | fix the code or fix the test NOW |
|
|
22
|
+
| skipped test | remove the skip and make it pass NOW |
|
|
23
|
+
|
|
24
|
+
**if you detect it, you fix it. no exceptions.**
|
|
8
25
|
|
|
9
26
|
## .strictness: zero tolerance, zero exceptions
|
|
10
27
|
|
|
@@ -18,6 +35,7 @@ this is the verification gate. you cannot pass execution without proof that all
|
|
|
18
35
|
| zero credential excuses | "i don't have creds" is not an excuse. get them, mock them, or fail. |
|
|
19
36
|
| zero skips | .skip() and .only() are forbidden. silent bypasses are forbidden. |
|
|
20
37
|
| zero exceptions | there are no special cases. the rules apply to all. |
|
|
38
|
+
| zero omissions | if you find a gap in coverage, you fix it — test or prod. |
|
|
21
39
|
|
|
22
40
|
**if a blocker prevents tests from run, that is a BLOCKER. full stop.**
|
|
23
41
|
|
|
@@ -29,17 +47,21 @@ you do not proceed. you do not defer. you fix it or you fail the gate.
|
|
|
29
47
|
|
|
30
48
|
your crew is about to review a pr you wrote. they need proof it works — not words, proof. tests are that proof.
|
|
31
49
|
|
|
50
|
+
**test coverage drives prod coverage.** if a behavior lacks a test, that behavior is unproven. unproven behaviors are incomplete deliverables. the test proves the implementation exists and works.
|
|
51
|
+
|
|
32
52
|
without this gate:
|
|
33
53
|
- tests might fail and nobody notices
|
|
34
54
|
- tests might be skipped and nobody notices
|
|
35
55
|
- behaviors might lack coverage and nobody notices
|
|
36
56
|
- broken code ships to peers
|
|
57
|
+
- incomplete implementations slip through
|
|
37
58
|
|
|
38
59
|
with this gate:
|
|
39
60
|
- every test passes or you fix it
|
|
40
61
|
- every behavior has coverage or you add it
|
|
41
62
|
- every skip is removed or justified
|
|
42
63
|
- proven code ships to peers
|
|
64
|
+
- **gaps get fixed, not deferred**
|
|
43
65
|
|
|
44
66
|
**the cardinal rules**:
|
|
45
67
|
1. never leave behavior without true, dependable test coverage
|
|
@@ -165,7 +187,7 @@ update the checklist as you complete each step below.
|
|
|
165
187
|
|
|
166
188
|
---
|
|
167
189
|
|
|
168
|
-
### step 2: verify behavior coverage
|
|
190
|
+
### step 2: verify AND FIX behavior coverage
|
|
169
191
|
|
|
170
192
|
walk through wish and vision:
|
|
171
193
|
- every behavior promised must have an acceptance test
|
|
@@ -174,11 +196,15 @@ walk through wish and vision:
|
|
|
174
196
|
|
|
175
197
|
**why?** your crew trusts the test suite. if a behavior isn't tested, it isn't proven. untested behaviors are unverified promises.
|
|
176
198
|
|
|
177
|
-
|
|
199
|
+
**test coverage enforces prod coverage.** if a test is absent, either:
|
|
200
|
+
1. the behavior was not implemented → IMPLEMENT IT NOW
|
|
201
|
+
2. the behavior was implemented without a test → WRITE THE TEST NOW
|
|
202
|
+
|
|
203
|
+
if a behavior lacks a test, **write one NOW**. do not move on with gaps. update your checklist when done.
|
|
178
204
|
|
|
179
205
|
---
|
|
180
206
|
|
|
181
|
-
### step 3: verify zero skips
|
|
207
|
+
### step 3: verify AND FIX zero skips
|
|
182
208
|
|
|
183
209
|
scan for forbidden patterns:
|
|
184
210
|
- `.skip()` or `.only()` in test files
|
|
@@ -187,11 +213,16 @@ scan for forbidden patterns:
|
|
|
187
213
|
|
|
188
214
|
**why?** failures are better than skips. skips hide problems. failures expose them. a skipped test is a lie — it pretends coverage exists when it doesn't.
|
|
189
215
|
|
|
190
|
-
if you find skips
|
|
216
|
+
**this is buttonup.** if you find skips:
|
|
217
|
+
1. REMOVE the skip
|
|
218
|
+
2. MAKE the test pass (fix the code or fix the test)
|
|
219
|
+
3. update your checklist
|
|
220
|
+
|
|
221
|
+
do not note skips and move on. fix them. all tests must run.
|
|
191
222
|
|
|
192
223
|
---
|
|
193
224
|
|
|
194
|
-
### step 4: run all tests
|
|
225
|
+
### step 4: run all tests AND FIX all failures
|
|
195
226
|
|
|
196
227
|
run each test suite and **cite the exact command and output**.
|
|
197
228
|
|
|
@@ -206,7 +237,12 @@ npm run test:acceptance # cite exit code + test count
|
|
|
206
237
|
|
|
207
238
|
all must pass — no exceptions. no deferrals. no "i'll fix it later."
|
|
208
239
|
|
|
209
|
-
if tests fail, fix them. that is the job.
|
|
240
|
+
**this is buttonup.** if tests fail, fix them. that is the job.
|
|
241
|
+
|
|
242
|
+
failures indicate one of:
|
|
243
|
+
1. prod code is broken → FIX THE PROD CODE
|
|
244
|
+
2. test has a bug → FIX THE TEST BUG (preserve intention)
|
|
245
|
+
3. coverage gap exists → FILL THE GAP
|
|
210
246
|
|
|
211
247
|
**consider all failures as defects from this pr.** there are no "prior failures."
|
|
212
248
|
|
|
@@ -14,6 +14,8 @@ reviews:
|
|
|
14
14
|
- are commands copy-pasteable?
|
|
15
15
|
- are expected outcomes explicit?
|
|
16
16
|
|
|
17
|
+
**if any instruction is unclear, fix it NOW.** this is buttonup.
|
|
18
|
+
|
|
17
19
|
- slug: has-vision-coverage
|
|
18
20
|
say: |
|
|
19
21
|
double-check: does the playtest cover all behaviors?
|
|
@@ -22,6 +24,8 @@ reviews:
|
|
|
22
24
|
- is every behavior in 1.vision.md verified?
|
|
23
25
|
- are any requirements left untested?
|
|
24
26
|
|
|
27
|
+
**if any behavior lacks playtest coverage, add it NOW.** absent coverage = incomplete.
|
|
28
|
+
|
|
25
29
|
- slug: has-edgecase-coverage
|
|
26
30
|
say: |
|
|
27
31
|
double-check: are edge cases covered?
|
|
@@ -30,6 +34,8 @@ reviews:
|
|
|
30
34
|
- what inputs are unusual but valid?
|
|
31
35
|
- are boundaries tested?
|
|
32
36
|
|
|
37
|
+
**if edge cases are absent, add them NOW.** this is buttonup — no gaps allowed.
|
|
38
|
+
|
|
33
39
|
- slug: has-acceptance-test-citations
|
|
34
40
|
say: |
|
|
35
41
|
coverage check: cite the acceptance test for each playtest step.
|
|
@@ -49,15 +55,39 @@ reviews:
|
|
|
49
55
|
```
|
|
50
56
|
|
|
51
57
|
if a step lacks acceptance test coverage:
|
|
52
|
-
- this is a BLOCKER — write the test before you proceed
|
|
58
|
+
- this is a BLOCKER — write the test NOW, before you proceed
|
|
53
59
|
- "untestable via automation" is almost never true — find a way
|
|
54
60
|
|
|
55
61
|
**zero gaps.** if you cannot cite a test, the step is unproven.
|
|
56
62
|
unproven steps do not pass this gate.
|
|
57
63
|
|
|
64
|
+
**this is buttonup.** test coverage enforces prod coverage.
|
|
65
|
+
absent test = unproven behavior = incomplete implementation = fix it NOW.
|
|
66
|
+
|
|
67
|
+
- slug: has-fixed-all-gaps
|
|
68
|
+
say: |
|
|
69
|
+
buttonup check: did you FIX every gap you found, or just detect it?
|
|
70
|
+
|
|
71
|
+
**this is the buttonup phase. detection is not enough — you must fix.**
|
|
72
|
+
|
|
73
|
+
look back at all the reviews above. for every gap you identified:
|
|
74
|
+
- playtest step lacked acceptance test → did you WRITE the test?
|
|
75
|
+
- playtest revealed broken behavior → did you FIX the behavior?
|
|
76
|
+
- playtest revealed UX friction → did you FIX the UX?
|
|
77
|
+
- playtest step was ambiguous → did you CLARIFY it?
|
|
78
|
+
|
|
79
|
+
**zero omissions.** if any review above surfaced a gap, that gap must be fixed before you pass this gate.
|
|
80
|
+
|
|
81
|
+
ask yourself:
|
|
82
|
+
- did i just note the gap, or did i actually fix it?
|
|
83
|
+
- is there any item marked "todo" or "needs work"? (forbidden)
|
|
84
|
+
- is there any step without acceptance test citation? (forbidden)
|
|
85
|
+
|
|
86
|
+
**if you detected it, you fixed it.** prove it with citations.
|
|
87
|
+
|
|
58
88
|
- slug: has-self-run-verification
|
|
59
89
|
say: |
|
|
60
|
-
|
|
90
|
+
final proof: did you run the playtest yourself?
|
|
61
91
|
|
|
62
92
|
**zero self-skip.** you must run every step before emit.
|
|
63
93
|
|
|
@@ -75,11 +105,15 @@ reviews:
|
|
|
75
105
|
- did you fix the instructions?
|
|
76
106
|
- did you update expected outcomes?
|
|
77
107
|
- is the playtest now accurate to what you observed?
|
|
108
|
+
- **did you fix any broken behaviors you discovered?**
|
|
78
109
|
|
|
79
110
|
the foreman deserves a playtest that works. prove it works by self-test first.
|
|
80
111
|
|
|
81
112
|
**if you did not run it yourself, you did not verify it.**
|
|
82
113
|
this is a BLOCKER, not a suggestion.
|
|
83
114
|
|
|
115
|
+
**this is the final proof.** you ran it, it worked, all gaps are fixed.
|
|
116
|
+
you are ready to hand off to foreman approval.
|
|
117
|
+
|
|
84
118
|
judges:
|
|
85
119
|
- npx rhachet run --repo bhrain --skill route.stone.judge --mechanism approved? --stone $stone --route $route
|
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
emit a playtest for foreman byhand verification
|
|
1
|
+
emit a playtest for foreman byhand verification — fix all gaps found
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
## .what
|
|
6
6
|
|
|
7
|
-
this is the playtest gate
|
|
7
|
+
this is the playtest gate — the **final buttonup phase**.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
you emit a step-by-step byhand quality assurance checklist that your crew can walk through to verify the deliverable feels right.
|
|
10
|
+
|
|
11
|
+
automated tests prove the code works. the playtest proves the experience works. **if the playtest reveals gaps, you fix them.**
|
|
12
|
+
|
|
13
|
+
## .the buttonup mandate: zero omissions
|
|
14
|
+
|
|
15
|
+
**this is not a detection phase. this is a completion phase.**
|
|
16
|
+
|
|
17
|
+
when you find a gap — while you write the playtest OR while you run it yourself — you **fix it**.
|
|
18
|
+
|
|
19
|
+
| gap type | action |
|
|
20
|
+
|----------|--------|
|
|
21
|
+
| playtest step lacks acceptance test | write the acceptance test NOW |
|
|
22
|
+
| playtest reveals broken behavior | fix the behavior NOW |
|
|
23
|
+
| playtest reveals UX friction | fix the UX NOW |
|
|
24
|
+
| playtest step is ambiguous | clarify it NOW |
|
|
25
|
+
|
|
26
|
+
**if you detect it, you fix it. no exceptions.**
|
|
10
27
|
|
|
11
28
|
## .strictness: zero tolerance, zero exceptions
|
|
12
29
|
|
|
@@ -18,6 +35,7 @@ automated tests prove the code works. the playtest proves the experience works.
|
|
|
18
35
|
| zero untested paths | every playtest step must have automated coverage |
|
|
19
36
|
| zero self-skip | you must run the playtest yourself before emit |
|
|
20
37
|
| zero ambiguity | every step must be copy-pasteable with explicit expected output |
|
|
38
|
+
| zero omissions | if playtest reveals a gap, you fix it before you emit |
|
|
21
39
|
|
|
22
40
|
**every playtest step maps to an acceptance test.** if a step lacks automated coverage, write the test first.
|
|
23
41
|
|
|
@@ -29,6 +47,8 @@ automated tests prove the code works. the playtest proves the experience works.
|
|
|
29
47
|
|
|
30
48
|
**the playtest is a contract.** it says: "if you follow these steps and all pass as described, the deliverable is complete." it's explicit proof, not implicit trust.
|
|
31
49
|
|
|
50
|
+
**test coverage enforces prod coverage.** every playtest step must trace to an acceptance test. if you cannot cite the test, the behavior is unproven. unproven = incomplete = fix it.
|
|
51
|
+
|
|
32
52
|
## .how
|
|
33
53
|
|
|
34
54
|
reference the below for full context
|
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.17.
|
|
5
|
+
"version": "0.17.1",
|
|
6
6
|
"repository": "ehmpathy/rhachet-roles-bhuild",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet-roles-bhuild",
|
|
8
8
|
"keywords": [
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
"esbuild-register": "3.6.0",
|
|
90
90
|
"husky": "8.0.3",
|
|
91
91
|
"jest": "30.2.0",
|
|
92
|
-
"rhachet": "1.39.
|
|
92
|
+
"rhachet": "1.39.9",
|
|
93
93
|
"rhachet-brains-anthropic": "0.4.0",
|
|
94
94
|
"rhachet-brains-xai": "0.3.3",
|
|
95
|
-
"rhachet-roles-bhrain": "0.23.
|
|
95
|
+
"rhachet-roles-bhrain": "0.23.11",
|
|
96
96
|
"rhachet-roles-bhuild": "link:.",
|
|
97
|
-
"rhachet-roles-ehmpathy": "1.34.
|
|
97
|
+
"rhachet-roles-ehmpathy": "1.34.25",
|
|
98
98
|
"tsc-alias": "1.8.10",
|
|
99
99
|
"tsx": "4.20.6",
|
|
100
100
|
"typescript": "5.4.5",
|