rhachet-roles-bhuild 0.18.1 → 0.19.0

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.
@@ -254,7 +254,72 @@ reviews:
254
254
 
255
255
  fix all gaps before you continue.
256
256
 
257
- # 12. consistent mechanisms
257
+ # 12. journey acceptance test
258
+ - slug: has-journey-acceptance-test
259
+ say: |
260
+ review that the blueprint declares a journey acceptance test.
261
+
262
+ a journey acceptance test exercises a complete, realistic user journey
263
+ through multiple timesteps — not isolated unit tests, but an exhaustive
264
+ end-to-end flow that exercises real-world usage.
265
+
266
+ ## what a journey test must include
267
+
268
+ | requirement | description |
269
+ |-------------|-------------|
270
+ | multiple timesteps | [t0], [t1], [t2]... through the complete journey |
271
+ | realistic scenario | exercises actual user workflow, not contrived examples |
272
+ | edge cases along the way | blocked states, error paths, recovery flows |
273
+ | snapshots at checkpoints | visual diff at each significant state change |
274
+ | final state verification | journey ends with expected outcome verified |
275
+
276
+ ## pattern
277
+
278
+ ```typescript
279
+ describe('feature.journey', () => {
280
+ given('[case1] complete user journey', () => {
281
+ when('[t0] initial state', () => {
282
+ then('preconditions hold', () => { ... });
283
+ });
284
+
285
+ when('[t1] first action', () => {
286
+ then('state transitions correctly', () => {
287
+ expect(result).toMatchSnapshot();
288
+ });
289
+ });
290
+
291
+ when('[t2] blocked scenario', () => {
292
+ then('error is surfaced with helpful message', () => {
293
+ expect(error).toMatchSnapshot();
294
+ });
295
+ });
296
+
297
+ // ... more timesteps through the journey ...
298
+
299
+ when('[tN] journey complete', () => {
300
+ then('final state is correct', () => {
301
+ expect(finalState).toMatchSnapshot();
302
+ });
303
+ });
304
+ });
305
+ });
306
+ ```
307
+
308
+ ## ask for the blueprint
309
+
310
+ - does the blueprint declare a journey acceptance test?
311
+ - does the journey exercise a realistic user workflow?
312
+ - does the journey include multiple timesteps (not just t0)?
313
+ - does the journey cover blocked/error states along the way?
314
+ - does the journey snapshot at each significant checkpoint?
315
+ - does the journey verify the final expected outcome?
316
+
317
+ a blueprint without a journey test is incomplete. the journey test is
318
+ how we verify the feature works as a whole, not just in isolation.
319
+
320
+ fix all gaps before you continue.
321
+
322
+ # 13. consistent mechanisms
258
323
  - slug: has-consistent-mechanisms
259
324
  say: |
260
325
  review for new mechanisms that duplicate extant functionality.
@@ -273,7 +338,7 @@ reviews:
273
338
  1. replace with the extant mechanism
274
339
  2. or flag as an open question if unsure
275
340
 
276
- # 13. consistent conventions
341
+ # 14. consistent conventions
277
342
  - slug: has-consistent-conventions
278
343
  say: |
279
344
  review for divergence from extant names and patterns.
@@ -293,7 +358,7 @@ reviews:
293
358
  1. align with the extant convention
294
359
  2. or flag as an open question if the extant convention seems wrong
295
360
 
296
- # 14. directory decomposition
361
+ # 15. directory decomposition
297
362
  - slug: has-proper-directory-decomposition
298
363
  say: |
299
364
  review that directories follow the layered decomposition pattern and
@@ -373,7 +438,7 @@ reviews:
373
438
 
374
439
  fix all directory placement issues before you continue.
375
440
 
376
- # 15. behavior coverage
441
+ # 16. behavior coverage
377
442
  - slug: has-behavior-declaration-coverage
378
443
  say: |
379
444
  review for coverage of the behavior declaration.
@@ -390,7 +455,7 @@ reviews:
390
455
 
391
456
  fix all gaps before you continue.
392
457
 
393
- # 16. behavior adherance
458
+ # 17. behavior adherance
394
459
  - slug: has-behavior-declaration-adherance
395
460
  say: |
396
461
  review for adherance to the behavior declaration.
@@ -407,7 +472,7 @@ reviews:
407
472
 
408
473
  fix all gaps before you continue.
409
474
 
410
- # 17. standards adherance
475
+ # 18. standards adherance
411
476
  - slug: has-role-standards-adherance
412
477
  say: |
413
478
  review for adherance to mechanic role standards.
@@ -427,7 +492,7 @@ reviews:
427
492
 
428
493
  fix all gaps before you continue.
429
494
 
430
- # 18. standards coverage
495
+ # 19. standards coverage
431
496
  - slug: has-role-standards-coverage
432
497
  say: |
433
498
  review for coverage of mechanic role standards.
@@ -449,6 +514,8 @@ reviews:
449
514
 
450
515
  peer:
451
516
  - npx rhachet run --repo bhrain --skill review --rules '.agent/repo=ehmpathy/role=mechanic/briefs/practices/code.{prod,test}/pitofsuccess.errors/rule.*.md' --diffs since-main --paths-with '$route/3.3.blueprint.*.md' --join intersect --output '$route/.reviews/$stone.peer-review.failhides.md' --mode hard
517
+ - npx rhachet enroll claude --roles architect,mechanic -p "review the blueprint at $route/$stone.md for architectural gaps and defects. emit BLOCKERS and NITPICKS."
518
+ - npx rhachet enroll claude --roles architect,mechanic -p "review diff for architectural scope leak, decompose to reuse opportunities, and other arch smells. emit BLOCKERS and NITPICKS."
452
519
 
453
520
  judges:
454
521
  - npx rhachet run --repo bhrain --skill route.stone.judge --mechanism reviewed? --stone $stone --route $route --allow-blockers 0 --allow-nitpicks 3
@@ -202,7 +202,72 @@ reviews:
202
202
 
203
203
  fix all gaps before you continue.
204
204
 
205
- # 8. consistent mechanisms
205
+ # 8. journey acceptance test
206
+ - slug: has-journey-acceptance-test
207
+ say: |
208
+ review that the blueprint declares a journey acceptance test.
209
+
210
+ a journey acceptance test exercises a complete, realistic user journey
211
+ through multiple timesteps — not isolated unit tests, but an exhaustive
212
+ end-to-end flow that exercises real-world usage.
213
+
214
+ ## what a journey test must include
215
+
216
+ | requirement | description |
217
+ |-------------|-------------|
218
+ | multiple timesteps | [t0], [t1], [t2]... through the complete journey |
219
+ | realistic scenario | exercises actual user workflow, not contrived examples |
220
+ | edge cases along the way | blocked states, error paths, recovery flows |
221
+ | snapshots at checkpoints | visual diff at each significant state change |
222
+ | final state verification | journey ends with expected outcome verified |
223
+
224
+ ## pattern
225
+
226
+ ```typescript
227
+ describe('feature.journey', () => {
228
+ given('[case1] complete user journey', () => {
229
+ when('[t0] initial state', () => {
230
+ then('preconditions hold', () => { ... });
231
+ });
232
+
233
+ when('[t1] first action', () => {
234
+ then('state transitions correctly', () => {
235
+ expect(result).toMatchSnapshot();
236
+ });
237
+ });
238
+
239
+ when('[t2] blocked scenario', () => {
240
+ then('error is surfaced with helpful message', () => {
241
+ expect(error).toMatchSnapshot();
242
+ });
243
+ });
244
+
245
+ // ... more timesteps through the journey ...
246
+
247
+ when('[tN] journey complete', () => {
248
+ then('final state is correct', () => {
249
+ expect(finalState).toMatchSnapshot();
250
+ });
251
+ });
252
+ });
253
+ });
254
+ ```
255
+
256
+ ## ask for the blueprint
257
+
258
+ - does the blueprint declare a journey acceptance test?
259
+ - does the journey exercise a realistic user workflow?
260
+ - does the journey include multiple timesteps (not just t0)?
261
+ - does the journey cover blocked/error states along the way?
262
+ - does the journey snapshot at each significant checkpoint?
263
+ - does the journey verify the final expected outcome?
264
+
265
+ a blueprint without a journey test is incomplete. the journey test is
266
+ how we verify the feature works as a whole, not just in isolation.
267
+
268
+ fix all gaps before you continue.
269
+
270
+ # 9. consistent mechanisms
206
271
  - slug: has-consistent-mechanisms
207
272
  say: |
208
273
  review for new mechanisms that duplicate extant functionality.
@@ -221,7 +286,7 @@ reviews:
221
286
  1. replace with the extant mechanism
222
287
  2. or flag as an open question if unsure
223
288
 
224
- # 9. consistent conventions
289
+ # 10. consistent conventions
225
290
  - slug: has-consistent-conventions
226
291
  say: |
227
292
  review for divergence from extant names and patterns.
@@ -241,7 +306,7 @@ reviews:
241
306
  1. align with the extant convention
242
307
  2. or flag as an open question if the extant convention seems wrong
243
308
 
244
- # 10. directory decomposition
309
+ # 11. directory decomposition
245
310
  - slug: has-proper-directory-decomposition
246
311
  say: |
247
312
  review that directories follow the layered decomposition pattern and
@@ -321,7 +386,7 @@ reviews:
321
386
 
322
387
  fix all directory placement issues before you continue.
323
388
 
324
- # 11. behavior coverage
389
+ # 12. behavior coverage
325
390
  - slug: has-behavior-declaration-coverage
326
391
  say: |
327
392
  review for coverage of the behavior declaration.
@@ -338,7 +403,7 @@ reviews:
338
403
 
339
404
  fix all gaps before you continue.
340
405
 
341
- # 12. behavior adherance
406
+ # 13. behavior adherance
342
407
  - slug: has-behavior-declaration-adherance
343
408
  say: |
344
409
  review for adherance to the behavior declaration.
@@ -355,7 +420,7 @@ reviews:
355
420
 
356
421
  fix all gaps before you continue.
357
422
 
358
- # 13. standards adherance
423
+ # 14. standards adherance
359
424
  - slug: has-role-standards-adherance
360
425
  say: |
361
426
  review for adherance to mechanic role standards.
@@ -375,7 +440,7 @@ reviews:
375
440
 
376
441
  fix all gaps before you continue.
377
442
 
378
- # 14. standards coverage
443
+ # 15. standards coverage
379
444
  - slug: has-role-standards-coverage
380
445
  say: |
381
446
  review for coverage of mechanic role standards.
@@ -397,6 +462,8 @@ reviews:
397
462
 
398
463
  peer:
399
464
  - npx rhachet run --repo bhrain --skill review --rules '.agent/repo=ehmpathy/role=mechanic/briefs/practices/code.{prod,test}/pitofsuccess.errors/rule.*.md' --diffs since-main --paths-with '$route/3.3.blueprint.*.md' --join intersect --output '$route/.reviews/$stone.peer-review.failhides.md' --mode hard
465
+ - npx rhachet enroll claude --roles architect,mechanic -p "review the blueprint at $route/$stone.md for architectural gaps and defects. emit BLOCKERS and NITPICKS."
466
+ - npx rhachet enroll claude --roles architect,mechanic -p "review diff for architectural scope leak, decompose to reuse opportunities, and other arch smells. emit BLOCKERS and NITPICKS."
400
467
 
401
468
  judges:
402
469
  - npx rhachet run --repo bhrain --skill route.stone.judge --mechanism reviewed? --stone $stone --route $route --allow-blockers 0 --allow-nitpicks 3
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.18.1",
5
+ "version": "0.19.0",
6
6
  "repository": "ehmpathy/rhachet-roles-bhuild",
7
7
  "homepage": "https://github.com/ehmpathy/rhachet-roles-bhuild",
8
8
  "keywords": [