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.
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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.
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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.
|
|
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": [
|