@zigrivers/scaffold 3.26.0 → 3.28.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.
Files changed (126) hide show
  1. package/README.md +21 -7
  2. package/content/knowledge/core/ai-memory-management.md +17 -0
  3. package/content/knowledge/core/claude-md-patterns.md +2 -2
  4. package/content/knowledge/core/coding-conventions.md +2 -2
  5. package/content/knowledge/core/task-decomposition.md +4 -4
  6. package/content/knowledge/core/task-tracking.md +120 -29
  7. package/content/knowledge/core/user-stories.md +1 -1
  8. package/content/knowledge/execution/multi-agent-coordination.md +118 -0
  9. package/content/knowledge/execution/task-claiming-strategy.md +15 -3
  10. package/content/knowledge/execution/worktree-management.md +5 -3
  11. package/content/knowledge/web3/web3-access-control.md +189 -0
  12. package/content/knowledge/web3/web3-architecture.md +162 -0
  13. package/content/knowledge/web3/web3-audit-workflow.md +151 -0
  14. package/content/knowledge/web3/web3-common-vulnerabilities.md +171 -0
  15. package/content/knowledge/web3/web3-conventions.md +162 -0
  16. package/content/knowledge/web3/web3-deployment-and-verification.md +216 -0
  17. package/content/knowledge/web3/web3-dev-environment.md +150 -0
  18. package/content/knowledge/web3/web3-gas-optimization.md +165 -0
  19. package/content/knowledge/web3/web3-oracles-and-external-data.md +155 -0
  20. package/content/knowledge/web3/web3-project-structure.md +212 -0
  21. package/content/knowledge/web3/web3-requirements.md +152 -0
  22. package/content/knowledge/web3/web3-security.md +163 -0
  23. package/content/knowledge/web3/web3-testing.md +180 -0
  24. package/content/knowledge/web3/web3-upgradeability.md +189 -0
  25. package/content/methodology/web3-overlay.yml +40 -0
  26. package/content/pipeline/build/multi-agent-resume.md +27 -7
  27. package/content/pipeline/build/multi-agent-start.md +35 -7
  28. package/content/pipeline/build/new-enhancement.md +8 -1
  29. package/content/pipeline/build/quick-task.md +9 -0
  30. package/content/pipeline/build/single-agent-resume.md +11 -4
  31. package/content/pipeline/build/single-agent-start.md +13 -4
  32. package/content/pipeline/consolidation/workflow-audit.md +1 -1
  33. package/content/pipeline/environment/git-workflow.md +2 -2
  34. package/content/pipeline/foundation/beads.md +148 -22
  35. package/content/pipeline/foundation/coding-standards.md +1 -1
  36. package/content/tools/post-implementation-review.md +6 -6
  37. package/content/tools/prompt-pipeline.md +1 -1
  38. package/content/tools/release.md +5 -5
  39. package/content/tools/review-code.md +347 -3
  40. package/content/tools/review-pr.md +349 -7
  41. package/content/tools/version-bump.md +5 -5
  42. package/dist/cli/commands/observe.d.ts +2 -0
  43. package/dist/cli/commands/observe.d.ts.map +1 -1
  44. package/dist/cli/commands/observe.js +9 -1
  45. package/dist/cli/commands/observe.js.map +1 -1
  46. package/dist/cli/commands/observe.test.js +36 -0
  47. package/dist/cli/commands/observe.test.js.map +1 -1
  48. package/dist/config/schema.d.ts +672 -126
  49. package/dist/config/schema.d.ts.map +1 -1
  50. package/dist/config/schema.js +8 -1
  51. package/dist/config/schema.js.map +1 -1
  52. package/dist/config/schema.test.js +2 -2
  53. package/dist/config/schema.test.js.map +1 -1
  54. package/dist/config/validators/index.d.ts.map +1 -1
  55. package/dist/config/validators/index.js +2 -0
  56. package/dist/config/validators/index.js.map +1 -1
  57. package/dist/config/validators/web3.d.ts +4 -0
  58. package/dist/config/validators/web3.d.ts.map +1 -0
  59. package/dist/config/validators/web3.js +15 -0
  60. package/dist/config/validators/web3.js.map +1 -0
  61. package/dist/e2e/project-type-overlays.test.js +76 -0
  62. package/dist/e2e/project-type-overlays.test.js.map +1 -1
  63. package/dist/observability/adapters/beads.d.ts +4 -0
  64. package/dist/observability/adapters/beads.d.ts.map +1 -1
  65. package/dist/observability/adapters/beads.js +25 -2
  66. package/dist/observability/adapters/beads.js.map +1 -1
  67. package/dist/observability/adapters/beads.test.js +40 -2
  68. package/dist/observability/adapters/beads.test.js.map +1 -1
  69. package/dist/observability/engine/ledger-writer.d.ts +11 -1
  70. package/dist/observability/engine/ledger-writer.d.ts.map +1 -1
  71. package/dist/observability/engine/ledger-writer.js +6 -0
  72. package/dist/observability/engine/ledger-writer.js.map +1 -1
  73. package/dist/observability/engine/llm-dispatcher.d.ts.map +1 -1
  74. package/dist/observability/engine/llm-dispatcher.js +36 -5
  75. package/dist/observability/engine/llm-dispatcher.js.map +1 -1
  76. package/dist/observability/engine/llm-dispatcher.test.js +23 -0
  77. package/dist/observability/engine/llm-dispatcher.test.js.map +1 -1
  78. package/dist/project/adopt.d.ts.map +1 -1
  79. package/dist/project/adopt.js +3 -1
  80. package/dist/project/adopt.js.map +1 -1
  81. package/dist/project/detectors/coverage.test.js +3 -2
  82. package/dist/project/detectors/coverage.test.js.map +1 -1
  83. package/dist/project/detectors/disambiguate.js +1 -1
  84. package/dist/project/detectors/disambiguate.js.map +1 -1
  85. package/dist/project/detectors/index.d.ts.map +1 -1
  86. package/dist/project/detectors/index.js +2 -0
  87. package/dist/project/detectors/index.js.map +1 -1
  88. package/dist/project/detectors/resolve-detection.test.js +57 -0
  89. package/dist/project/detectors/resolve-detection.test.js.map +1 -1
  90. package/dist/project/detectors/types.d.ts +6 -2
  91. package/dist/project/detectors/types.d.ts.map +1 -1
  92. package/dist/project/detectors/types.js.map +1 -1
  93. package/dist/project/detectors/web3.d.ts +4 -0
  94. package/dist/project/detectors/web3.d.ts.map +1 -0
  95. package/dist/project/detectors/web3.js +37 -0
  96. package/dist/project/detectors/web3.js.map +1 -0
  97. package/dist/project/detectors/web3.test.d.ts +2 -0
  98. package/dist/project/detectors/web3.test.d.ts.map +1 -0
  99. package/dist/project/detectors/web3.test.js +75 -0
  100. package/dist/project/detectors/web3.test.js.map +1 -0
  101. package/dist/types/config.d.ts +8 -1
  102. package/dist/types/config.d.ts.map +1 -1
  103. package/dist/wizard/copy/core.d.ts.map +1 -1
  104. package/dist/wizard/copy/core.js +4 -0
  105. package/dist/wizard/copy/core.js.map +1 -1
  106. package/dist/wizard/copy/index.d.ts.map +1 -1
  107. package/dist/wizard/copy/index.js +2 -0
  108. package/dist/wizard/copy/index.js.map +1 -1
  109. package/dist/wizard/copy/types.d.ts +5 -1
  110. package/dist/wizard/copy/types.d.ts.map +1 -1
  111. package/dist/wizard/copy/types.test-d.js +7 -0
  112. package/dist/wizard/copy/types.test-d.js.map +1 -1
  113. package/dist/wizard/copy/web3.d.ts +3 -0
  114. package/dist/wizard/copy/web3.d.ts.map +1 -0
  115. package/dist/wizard/copy/web3.js +15 -0
  116. package/dist/wizard/copy/web3.js.map +1 -0
  117. package/dist/wizard/questions.d.ts +2 -1
  118. package/dist/wizard/questions.d.ts.map +1 -1
  119. package/dist/wizard/questions.js +8 -1
  120. package/dist/wizard/questions.js.map +1 -1
  121. package/dist/wizard/questions.test.js +14 -0
  122. package/dist/wizard/questions.test.js.map +1 -1
  123. package/dist/wizard/wizard.d.ts.map +1 -1
  124. package/dist/wizard/wizard.js +1 -0
  125. package/dist/wizard/wizard.js.map +1 -1
  126. package/package.json +1 -1
@@ -153,7 +153,7 @@ Dispatch your platform's code-reviewer skill for a complementary review:
153
153
 
154
154
  The agent skill runs inside your agent's context — it has access to conversation history, project knowledge, and plan context that external CLIs lack.
155
155
 
156
- **Important:** The agent's review output must use MMR-compatible finding schema: each finding needs `severity` (P0-P3), `location` (file:line), and `description` (`suggestion` is optional). The strict validator in `mmr reconcile` will reject findings with missing or invalid required fields.
156
+ **Important:** The agent's review output must use MMR-compatible finding schema: each finding needs `severity` (P0-P3), `location` (file:line), and `description` (`category` and `suggestion` are optional, but `category` is recommended for finding identity). The strict validator in `mmr reconcile` will reject findings with missing or invalid required fields.
157
157
 
158
158
  ### Step 4: Inject Agent Review into MMR
159
159
 
@@ -230,15 +230,357 @@ If any findings sit at or above `fix_threshold` (the verdict JSON's `fix_thresho
230
230
  1. Fix them in the code
231
231
  2. Push the fixes: `git push`
232
232
  3. Re-run the review to verify fixes: `mmr review --pr "$PR_NUMBER" --sync --format json`
233
- 4. The 3-round limit is **per finding**, not total rounds:
234
- - **Keep going** when each new round surfaces *different, concrete, fixable* findings — that is healthy review/fix iteration.
235
- - **Stop and ask the user** when (a) the *same* blocking finding (or set) recurs across 3 attempts without progress, (b) a finding is genuinely ambiguous (channels contradict each other), or (c) the user explicitly asks to stop.
236
- - **When stopped**, do NOT merge automatically. Document the unresolved findings (severity, location, attempt count) and let the user decide whether to continue fixing, create follow-up issues, or override.
233
+ 4. The 3-round limit is **per finding**, enforced by the wrapper-side hash in Step 7a (`.scaffold/review-attempts/<session-id>.json`):
234
+ - **Keep going** when each new round surfaces genuinely different findings with *new* hashes — that is healthy review/fix iteration.
235
+ - **Stop and ask the user** when (a) any blocking finding's hash hits 3 attempts in the attempts file (`_review_at_strike_limit` returns true), (b) the same underlying defect keeps recurring across 3 rounds even if reviewer wording changes and produces a new hash, (c) a finding is genuinely ambiguous (channels contradict each other), or (d) the user explicitly asks to stop.
236
+ - **When stopped**, do NOT merge automatically. Document the unresolved findings (severity, location, hash, attempt count, and semantic recurrence notes when wording changed) and let the user decide whether to continue fixing, create follow-up issues, or override.
237
+ - Identity components used by the hash — `location`, `category`, `description`, `suggestion` — mirror MMR T2-A's forthcoming native `finding_key` (v3.30) so this bookkeeping migrates cleanly.
237
238
 
238
239
  **Note:** Fix cycles are an orchestration concern — the caller (agent or human) handles the fix loop. The CLI provides the review and verdict; the caller decides whether to fix and re-run.
239
240
 
240
241
  **Fix cycle channel rule:** Re-run only channels that originally completed or ran as compensating passes. Never retry a channel marked `not_installed`, `auth_failed`, or `timeout` during fix rounds — its availability does not change within a session.
241
242
 
243
+ ### Step 7a: Wrapper-Side Per-Finding Hash (Stopgap until MMR v3.30)
244
+
245
+ Before each fix round, compute a stable hash per finding and record an attempt
246
+ in `.scaffold/review-attempts/<session-id>.json`. The hash mirrors MMR T2-A's
247
+ forthcoming `finding_key` identity (location + category + description +
248
+ suggestion) so it migrates cleanly when MMR v3.30 ships native `--session` and
249
+ `finding_key`. **Until then**, this wrapper-side bookkeeping is what enforces
250
+ the per-finding 3-strike rule.
251
+
252
+ This section is throwaway — when MMR v3.30 lands, replace this entire block
253
+ with `mmr review --session <id> --max-rounds N` and read `finding_key` from
254
+ the verdict JSON directly.
255
+
256
+ #### Derive the session id
257
+
258
+ <!-- review-wrapper-hash-helpers:start -->
259
+
260
+ ```bash
261
+ # Session id rules (first match wins):
262
+ # 1. PR mode (--pr N) → "pr-<N>"
263
+ # 2. Branch+base → "<branch>@<base>" (sanitized to ^[a-zA-Z0-9_.-]+$)
264
+ # 3. Fallback → "ts-$(date -u +%Y%m%dT%H%M%SZ)"
265
+ _review_session_id() {
266
+ _review_sanitize_session_id() {
267
+ local raw="$1" sanitized
268
+ sanitized=$(printf '%s' "$raw" | tr -c 'a-zA-Z0-9_.-' '_')
269
+ if [ -z "$sanitized" ] || [ "$sanitized" = "." ] || [ "$sanitized" = ".." ]; then
270
+ echo "Error: review session id resolves to an unsafe path segment" >&2
271
+ return 1
272
+ fi
273
+ printf '%s' "$sanitized"
274
+ }
275
+
276
+ if [ -n "${REVIEW_SESSION_ID:-}" ]; then
277
+ _review_sanitize_session_id "$REVIEW_SESSION_ID"
278
+ return
279
+ fi
280
+ if [ -n "${__REVIEW_SESSION_ID:-}" ]; then
281
+ printf '%s' "$__REVIEW_SESSION_ID"
282
+ return
283
+ fi
284
+ if [ -n "${PR_NUMBER:-}" ]; then
285
+ __REVIEW_SESSION_ID=$(_review_sanitize_session_id "pr-$PR_NUMBER") || return 1
286
+ printf '%s' "$__REVIEW_SESSION_ID"
287
+ return
288
+ fi
289
+ local branch base
290
+ branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
291
+ base="${BASE_REF:-main}"
292
+ if [ -n "$branch" ] && [ "$branch" != "HEAD" ]; then
293
+ __REVIEW_SESSION_ID=$(_review_sanitize_session_id "$branch@$base") || return 1
294
+ printf '%s' "$__REVIEW_SESSION_ID"
295
+ return
296
+ fi
297
+ __REVIEW_SESSION_ID=$(_review_sanitize_session_id "ts-$(date -u +%Y%m%dT%H%M%SZ)") || return 1
298
+ printf '%s' "$__REVIEW_SESSION_ID"
299
+ }
300
+
301
+ _review_attempts_file() {
302
+ local id; id=$(_review_session_id)
303
+ mkdir -p .scaffold/review-attempts
304
+ printf '.scaffold/review-attempts/%s.json' "$id"
305
+ }
306
+ ```
307
+
308
+ #### Normalize the four identity components
309
+
310
+ `normalized_location` strips trailing line/column spans (anchored to
311
+ end-of-string so mid-path digits survive):
312
+
313
+ ```bash
314
+ _review_normalize_location() {
315
+ # Input: $1 = raw location (e.g. "src/foo.ts:42-44" or "pkg/Bar.kt (line 10)")
316
+ # Output: lowercased file path with trailing :N, :N-M, :N:M, (line N) stripped
317
+ printf '%s' "$1" \
318
+ | tr '[:upper:]' '[:lower:]' \
319
+ | awk '{ sub(/^[ \t]+/, ""); sub(/[ \t]+$/, ""); print }' \
320
+ | sed -E 's/(:[0-9]+(:[0-9]+)?(-[0-9]+)?|[[:space:]]+\(line[[:space:]]+[0-9]+\))$//'
321
+ }
322
+ ```
323
+
324
+ The `(line N)` form requires whitespace before the parenthetical, so paths
325
+ like `archive/v1(line 10).txt` are preserved rather than treated as review
326
+ line references.
327
+
328
+ `description_normalized` is the tricky one — backtick-quoted code spans must
329
+ stay case-sensitive while prose around them is lowercased and stripped of
330
+ line-number filler. A python3 one-liner is the least painful implementation:
331
+
332
+ ```bash
333
+ _review_normalize_description() {
334
+ # Input: $1 = raw description
335
+ # Output: tokenize on backticks → normalize non-code segments → reassemble
336
+ printf '%s' "$1" | python3 -c '
337
+ import re, sys
338
+ s = sys.stdin.read()
339
+ parts = s.split("`")
340
+ out = []
341
+ for i, seg in enumerate(parts):
342
+ if i % 2 == 1:
343
+ # Odd index = inside backticks = code, preserve exactly
344
+ out.append("`" + seg + "`")
345
+ else:
346
+ seg = seg.lower()
347
+ seg = re.sub(r"\bline\s+\d+\b", "", seg)
348
+ seg = re.sub(r"\bat\s+line\s+\d+\b", "", seg)
349
+ seg = re.sub(r"^\s*(p[0-3]|critical|high|medium|low|trivial)\s*:\s*", "", seg)
350
+ seg = re.sub(r"\s+", " ", seg).strip()
351
+ out.append(seg)
352
+ print(" ".join(p for p in out if p))
353
+ '
354
+ }
355
+ ```
356
+
357
+ `suggestion_normalized` is lowercase + collapse-whitespace only (suggestions
358
+ are short and distinguishing — no further stripping):
359
+
360
+ ```bash
361
+ _review_normalize_suggestion() {
362
+ printf '%s' "$1" | python3 -c 'import re, sys; print(re.sub(r"\s+", " ", sys.stdin.read().lower()).strip())'
363
+ }
364
+ ```
365
+
366
+ #### Compute the stable hash
367
+
368
+ ```bash
369
+ _review_finding_hash() {
370
+ # Input: $1 = single-finding JSON object (with location, category, description, suggestion fields)
371
+ # Output: 40-char sha1 hex of normalized_location + "|" + category + "|" + sha1(description_normalized) + "|" + sha1(suggestion_normalized)
372
+ local f="$1"
373
+ local loc cat desc sugg
374
+ loc=$(printf '%s' "$f" | jq -r '.location // ""')
375
+ cat=$(printf '%s' "$f" | jq -r '.category // ""')
376
+ desc=$(printf '%s' "$f" | jq -r '.description // ""')
377
+ sugg=$(printf '%s' "$f" | jq -r '.suggestion // ""')
378
+
379
+ local nloc ndesc nsugg dhash shash
380
+ nloc=$(_review_normalize_location "$loc")
381
+ ndesc=$(_review_normalize_description "$desc")
382
+ nsugg=$(_review_normalize_suggestion "$sugg")
383
+ dhash=$(printf '%s' "$ndesc" | shasum -a 1 | awk '{print $1}')
384
+ shash=$(printf '%s' "$nsugg" | shasum -a 1 | awk '{print $1}')
385
+
386
+ printf '%s|%s|%s|%s' "$nloc" "$cat" "$dhash" "$shash" \
387
+ | shasum -a 1 | awk '{print $1}'
388
+ }
389
+ ```
390
+
391
+ #### Compute the description shingle (for future cross-round fuzzy matching)
392
+
393
+ This array is persisted alongside the hash so a follow-up MMR v3.30 migration
394
+ can run Jaccard ≥ 0.7 against historical findings without re-deriving
395
+ shingles. The wrapper itself does not currently consume the shingle for any
396
+ gating decision — strict-hash exact match is enough for the 3-strike rule.
397
+
398
+ ```bash
399
+ _review_description_shingle() {
400
+ # Input: $1 = normalized description
401
+ # Output: JSON array of normalized 5-grams (token-based)
402
+ printf '%s' "$1" | python3 -c '
403
+ import json, sys
404
+ tokens = sys.stdin.read().split()
405
+ shingles = sorted({" ".join(tokens[i:i+5]) for i in range(max(0, len(tokens)-4))})
406
+ print(json.dumps(shingles))
407
+ '
408
+ }
409
+ ```
410
+
411
+ #### Record an attempt and check the strike limit
412
+
413
+ ```bash
414
+ _review_record_attempt() {
415
+ # Input: $1 = finding JSON, $2 = current round number (1-based), $3 = optional precomputed finding hash
416
+ # Side effect: increments attempts in the attempts file
417
+ # Output: prints new attempt count on stdout
418
+ local f="$1" round="$2" hash="${3:-}"
419
+ local file loc cat desc sugg nloc ndesc nsugg dhash shash shingle
420
+ file=$(_review_attempts_file)
421
+ loc=$(printf '%s' "$f" | jq -r '.location // ""')
422
+ cat=$(printf '%s' "$f" | jq -r '.category // ""')
423
+ desc=$(printf '%s' "$f" | jq -r '.description // ""')
424
+ sugg=$(printf '%s' "$f" | jq -r '.suggestion // ""')
425
+ nloc=$(_review_normalize_location "$loc")
426
+ ndesc=$(_review_normalize_description "$desc")
427
+ nsugg=$(_review_normalize_suggestion "$sugg")
428
+ if [ -z "$hash" ]; then
429
+ dhash=$(printf '%s' "$ndesc" | shasum -a 1 | awk '{print $1}')
430
+ shash=$(printf '%s' "$nsugg" | shasum -a 1 | awk '{print $1}')
431
+ hash=$(printf '%s|%s|%s|%s' "$nloc" "$cat" "$dhash" "$shash" \
432
+ | shasum -a 1 | awk '{print $1}')
433
+ fi
434
+ shingle=$(_review_description_shingle "$ndesc")
435
+
436
+ [ -f "$file" ] || jq -n --arg id "$(_review_session_id)" --arg created "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
437
+ '{session_id: $id, created_at: $created, findings: {}}' > "$file"
438
+
439
+ jq --arg h "$hash" --arg loc "$nloc" --argjson sh "$shingle" --argjson r "$round" '
440
+ .findings[$h] = (
441
+ .findings[$h] // {attempts: 0, first_seen_round: $r, normalized_location: $loc, description_shingle: $sh}
442
+ | .attempts += (if .last_seen_round == $r then 0 else 1 end)
443
+ | .last_seen_round = $r
444
+ )
445
+ ' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
446
+
447
+ jq -r --arg h "$hash" '.findings[$h].attempts' "$file"
448
+ }
449
+
450
+ _review_at_strike_limit() {
451
+ # Input: $1 = finding JSON, $2 = optional precomputed finding hash
452
+ # Exit: 0 if hash already has >= 3 attempts, 1 otherwise
453
+ local f="$1" file hash
454
+ hash="${2:-}"
455
+ file=$(_review_attempts_file)
456
+ [ -f "$file" ] || return 1
457
+ [ -n "$hash" ] || hash=$(_review_finding_hash "$f")
458
+ local n; n=$(jq -r --arg h "$hash" '.findings[$h].attempts // 0' "$file")
459
+ [ "$n" -ge 3 ]
460
+ }
461
+ ```
462
+
463
+ This bookkeeping assumes sequential execution within a single workspace or
464
+ worktree. Do not run multiple review/fix loops against the same
465
+ `REVIEW_SESSION_ID` concurrently.
466
+
467
+ #### Per-round flow
468
+
469
+ After every `mmr review … --sync --format json` call:
470
+
471
+ 1. Extract reconciled findings: `FINDINGS=$(mmr results "$JOB_ID" | jq -c '.reconciled_findings[]')`
472
+ 2. Iterate safely over the newline-delimited JSON:
473
+ `printf '%s\n' "$FINDINGS" | while IFS= read -r f; do ... done`
474
+ 3. For each blocking finding (severity at or above `fix_threshold`):
475
+ - Compute its hash via `_review_finding_hash`.
476
+ - Call `_review_at_strike_limit "$f" "$hash"` before incrementing — if true,
477
+ this finding already has 3 recorded attempts. Abort the entire task with
478
+ a clear blocked error; do not merely `break` the inner `while` loop or
479
+ continue the outer fix loop. Then follow the **Stop path** in Step 8.
480
+ - Call `_review_record_attempt "$f" "$ROUND" "$hash"` to increment its counter.
481
+ 4. Otherwise apply fixes, re-push, increment `ROUND`, and loop.
482
+
483
+ For very noisy fix loops, you may suggest the user re-run with
484
+ `--fix-threshold P1` to narrow the gate (the project default stays at P2 per
485
+ the design's Decision 4). Do not auto-change the threshold.
486
+
487
+ This mirrors T2-A's identity components — `location`, `category`,
488
+ `description`, `suggestion` — so a future migration to MMR's native
489
+ `finding_key` is a search-and-replace of the helper calls with the field
490
+ read from the verdict JSON.
491
+
492
+ <!-- review-wrapper-hash-helpers:end -->
493
+
494
+ ### Step 7b: File blocking findings as Beads tasks (opt-in)
495
+
496
+ If `.mmr.yaml` has `beads.create_issues_from_blocking_findings: true` AND `.beads/`
497
+ exists in the project, file each blocking finding (severity at-or-above
498
+ `beads.fix_threshold`, default `P2`) as a Beads bug. This is purely additive
499
+ tracking — it does NOT replace Step 7's fix-in-place flow; it only creates a
500
+ durable record of findings that ought to become standalone follow-up work.
501
+
502
+ ```bash
503
+ # First: gate on the opt-in flag in .mmr.yaml. Defaults to disabled.
504
+ # Uses pure bash + grep/sed — no yq dependency (yq isn't always installed).
505
+ beads_enabled=false
506
+ beads_fix_threshold=P2
507
+ beads_default_type=bug
508
+ if [ -f .mmr.yaml ]; then
509
+ # Match a `create_issues_from_blocking_findings: true` line under any indentation.
510
+ # We don't validate it's nested under `beads:` — false positives in unrelated
511
+ # config keys with the same name are unlikely given the explicit name.
512
+ # POSIX character classes ([[:space:]]) for BSD-sed compatibility (macOS default).
513
+ # Patterns tolerate trailing whitespace/comments — uncommenting a template line with
514
+ # a trailing `# comment` should still match.
515
+ if grep -qE '^[[:space:]]*create_issues_from_blocking_findings:[[:space:]]*true([[:space:]]+#.*)?[[:space:]]*$' .mmr.yaml; then
516
+ beads_enabled=true
517
+ fi
518
+ # Optional overrides for threshold / type. Defaults apply if the keys are absent.
519
+ if v=$(grep -E '^[[:space:]]*fix_threshold:[[:space:]]*P[0-4]([[:space:]]+#.*)?[[:space:]]*$' .mmr.yaml | head -1 | sed -E 's/^[^:]*:[[:space:]]*(P[0-4]).*/\1/'); [ -n "$v" ]; then
520
+ beads_fix_threshold=$v
521
+ fi
522
+ if v=$(grep -E '^[[:space:]]*default_type:[[:space:]]*[a-zA-Z]+([[:space:]]+#.*)?[[:space:]]*$' .mmr.yaml | head -1 | sed -E 's/^[^:]*:[[:space:]]*([a-zA-Z]+).*/\1/'); [ -n "$v" ]; then
523
+ beads_default_type=$v
524
+ fi
525
+ fi
526
+
527
+ if [ "$beads_enabled" = "true" ] && [ -d .beads ] && command -v bd >/dev/null 2>&1 \
528
+ && command -v mmr >/dev/null 2>&1 && [ -n "${JOB_ID:-}" ]; then
529
+ threshold_rank=$(case "$beads_fix_threshold" in P0) echo 0;; P1) echo 1;; P2) echo 2;; P3) echo 3;; *) echo 4;; esac)
530
+
531
+ # Capture the reconciled findings from the MMR job we already ran in Step 2.
532
+ # MMR JSON shape: { reconciled_findings: [{ severity, location, description, suggestion, ... }] }
533
+ review_json=$(mmr results "$JOB_ID" --format json)
534
+
535
+ while IFS= read -r finding; do
536
+ title=$(jq -r '.description | .[0:120]' <<<"$finding")
537
+ severity=$(jq -r '.severity' <<<"$finding")
538
+ pnum="${severity#P}"
539
+ description=$(jq -r --arg job "$JOB_ID" '"\(.description)\n\nSuggestion: \(.suggestion // "(none)")\n\nLocation: \(.location // "(unknown)")\n\nFirst seen in MMR job: \($job)"' <<<"$finding")
540
+ # Per-finding identity in the external-ref so a future Beads release with
541
+ # filter-by-external-ref can dedupe on re-runs. Uses the same
542
+ # location+description identity components as the wrapper-side hash stopgap
543
+ # (Step 7a) for consistency. NOTE: bd v1.0.4 has no `bd list --external-ref`
544
+ # flag, so cross-run dedupe is not enforced at the bridge level today —
545
+ # known limitation; re-running on the same MMR job will create duplicates.
546
+ loc=$(jq -r '.location // ""' <<<"$finding")
547
+ desc_for_hash=$(jq -r '.description // ""' <<<"$finding")
548
+ finding_hash=$(printf '%s|%s' "$loc" "$desc_for_hash" | shasum -a 1 | cut -c1-8)
549
+
550
+ # Build args conditionally — only include --deps discovered-from when SOURCE_BD_ID
551
+ # is set AND non-empty. Avoids bd create rejecting a bogus "discovered-from:unknown".
552
+ args=(
553
+ "$title"
554
+ --type "$beads_default_type"
555
+ -p "$pnum"
556
+ --description "$description"
557
+ --external-ref "mmr:$finding_hash"
558
+ )
559
+ if [ -n "${SOURCE_BD_ID:-}" ]; then
560
+ args+=(--deps "discovered-from:$SOURCE_BD_ID")
561
+ fi
562
+ bd create "${args[@]}"
563
+ done < <(jq -c --argjson maxRank "$threshold_rank" '
564
+ .reconciled_findings[]?
565
+ | (.severity | sub("^P";"") | tonumber) as $rank
566
+ | select($rank <= $maxRank)
567
+ ' <<<"$review_json")
568
+ fi
569
+ ```
570
+
571
+ Notes on this script:
572
+ - The opt-in flag `beads.create_issues_from_blocking_findings` in `.mmr.yaml` is read first; the rest of the block is skipped unless it's `true`. No env-var override — config is the single source of truth.
573
+ - Pure-bash YAML parsing (grep + sed) — no `yq` dependency. The match patterns are intentionally simple: a single boolean enable flag, plus optional `fix_threshold` and `default_type` overrides. Anything more complex than that should be parsed with a real YAML library.
574
+ - `--argjson maxRank "$threshold_rank"` passes a number so jq can compare numerically.
575
+ - `(.severity | sub("^P";"") | tonumber)` extracts the integer rank from `P2`-style severities.
576
+ - `while IFS= read -r` streams one JSON object per line without word-splitting on spaces.
577
+ - `.description | .[0:120]` truncates safely under UTF-8 (unlike `head -c 120`).
578
+ - The `--deps discovered-from:$SOURCE_BD_ID` flag is included only when `$SOURCE_BD_ID` is non-empty — avoids a bogus `discovered-from:unknown` dependency or a `bd create` failure for the common case where no source task is in scope.
579
+
580
+ Use `--external-ref "mmr:$finding_hash"` to link the new Beads issue to the *finding identity* (location + description hash, same components as Step 7a's wrapper hash). The ref is stable across MMR job IDs. **Known limitation:** Beads v1.0.4 has no `bd list --external-ref <ref>` filter, so this bridge can't dedupe at write time — re-running the bridge on the same finding will create another Beads issue. When upstream adds an external-ref filter, prepend a `bd list --external-ref "mmr:$finding_hash"` skip-check to this loop. The job ID is preserved in the issue's description (`First seen in MMR job: <id>`) for traceability.
581
+
582
+ `--deps discovered-from:$SOURCE_BD_ID` chains the new issue to whatever current task triggered the review (only when that ID is known).
583
+
242
584
  ### Step 8: Confirm Completion
243
585
 
244
586
  **Success path** — all findings resolved (verdict is `pass` or `degraded-pass`):
@@ -252,7 +594,7 @@ Code review complete. Verdict: [pass/degraded-pass]. Channels: [N] executed, [N]
252
594
  ```
253
595
  Code review halted. Verdict: [blocked/needs-user-decision]. PR #[number] is NOT ready for merge.
254
596
  Unresolved findings:
255
- - [severity] [location] — [description] (rounds attempted: [N])
597
+ - [severity] [location] [hash] — [description] (rounds attempted: [N])
256
598
  - ...
257
599
  Reason for stop: [same finding recurred 3× / channels contradict each other / user requested stop]
258
600
  ```
@@ -277,7 +619,7 @@ In either path, output the message and stop. Do NOT proceed to the next task wit
277
619
  3. **Auth failures are not silent** — always surface to the user with the exact recovery command.
278
620
  4. **Independence** — never share one channel's output with another. Each reviews the diff independently.
279
621
  5. **Fix before proceeding** — findings at or above `fix_threshold` must be resolved before moving to the next task.
280
- 6. **3-round limit (per finding)** — never attempt to fix the *same* blocking finding more than 3 times. Each round that surfaces a *new* fixable finding is healthy iteration — keep going. Stop only when the same finding recurs across 3 attempts, channels contradict each other, or the user asks to stop.
622
+ 6. **3-round limit (per finding hash)** — never attempt to fix the *same* blocking finding (identified by the Step 7a hash of `location` + `category` + `description` + `suggestion`) more than 3 times. The attempts file `.scaffold/review-attempts/<session-id>.json` is the source of truth; `_review_at_strike_limit` checks it. Each round that surfaces genuinely different findings with *new* hashes is healthy iteration — keep going. Stop when a hash hits 3 attempts, when the same underlying defect recurs across 3 rounds even if reviewer wording produces new hashes, when channels contradict each other, or when the user asks to stop. For noisy fix loops, optionally suggest `--fix-threshold P1` (the project default stays at P2).
281
623
  7. **Document everything** — the review summary must show which channels ran and which were skipped, with reasons.
282
624
  8. **CLI-first** — use `mmr review --sync` as the primary entry point. Manual dispatch is a fallback only.
283
625
  9. **Job storage** — the CLI stores job data at `~/.mmr/jobs/{job-id}/results.json`. Review results are available via `mmr results <job-id>`.
@@ -179,14 +179,14 @@ Omit empty sections. Use the commit's first line (without the type prefix) as th
179
179
 
180
180
  If `.beads/` exists:
181
181
 
182
- 1. Run `bd list --status closed` (or parse `.beads/issues.jsonl` for closed issues).
183
- 2. Cross-reference closed tasks with the commit range (match task IDs like `BD-xxx` or `scaffold-xxx` in commit messages).
182
+ 1. Run `bd list --status closed --json` (canonical). If `bd` is unavailable in this environment, skip the autogenerated closed-tasks section — manual changelog entry expected.
183
+ 2. Cross-reference closed tasks with the commit range (match task IDs like `bd-xxxx` or `scaffold-xxx` in commit messages).
184
184
  3. If matches found, append a section:
185
185
 
186
186
  ```markdown
187
187
  ### Completed Tasks
188
- - [BD-xxx] Task title
189
- - [BD-yyy] Task title
188
+ - [bd-<id>] Task title
189
+ - [bd-<id2>] Task title
190
190
  ```
191
191
 
192
192
  If `.beads/` does not exist or no tasks match, silently skip.
@@ -232,7 +232,7 @@ git add <changed-files>
232
232
  git commit -m "chore(version): vX.Y.Z"
233
233
  ```
234
234
 
235
- If Beads is configured (`.beads/` exists) and a task is active, include the task ID: `[BD-xxx] chore(version): vX.Y.Z`.
235
+ If Beads is configured (`.beads/` exists) and a task is active, include the task ID: `[bd-<id>] chore(version): vX.Y.Z`.
236
236
 
237
237
  ---
238
238
 
@@ -6,6 +6,8 @@ export interface HandleEventInput {
6
6
  branch: string;
7
7
  taskId: string | null;
8
8
  keyValues: Record<string, string>;
9
+ /** Optional override of the `bd` binary path — used by tests; defaults to "bd" via beadsAdapter. */
10
+ bdBin?: string;
9
11
  }
10
12
  export declare function handleEvent(input: HandleEventInput): Promise<number>;
11
13
  export interface HandleProgressInput {
@@ -1 +1 @@
1
- {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/observe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,qCAAqC,CAAA;AAmClF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AA2BD,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB1E;AAID,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+ChF;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B9E;AAID,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,0BAA0B,CAAA;IACnC,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgF1E;AAID,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,cAAc,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA0BD,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyCtE;AAID,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtC,QAAA,MAAM,cAAc,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAgJnD,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/observe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,qCAAqC,CAAA;AAmClF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,oGAAoG;IACpG,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AA2BD,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B1E;AAID,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+ChF;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B9E;AAID,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,0BAA0B,CAAA;IACnC,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgF1E;AAID,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,cAAc,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA0BD,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyCtE;AAID,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtC,QAAA,MAAM,cAAc,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAgJnD,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { writeEvent } from '../../observability/engine/ledger-writer.js';
2
+ import { beadsAdapter } from '../../observability/adapters/beads.js';
2
3
  import { EVENT_PAYLOAD_KEYS } from '../../observability/engine/event-schemas.js';
3
4
  import { runProgress, runAudit } from '../../observability/engine/api.js';
4
5
  import { redactRendered } from '../../observability/engine/redact.js';
@@ -59,12 +60,19 @@ function buildPayload(type, kv) {
59
60
  export async function handleEvent(input) {
60
61
  const payload = buildPayload(input.type, input.keyValues);
61
62
  try {
62
- await writeEvent(input.cwd, {
63
+ const written = await writeEvent(input.cwd, {
63
64
  type: input.type,
64
65
  branch: input.branch,
65
66
  task_id: input.taskId,
66
67
  payload,
67
68
  });
69
+ // Cross-link to Beads when the event is task_claimed and a task_id is present.
70
+ // Fail-soft: claimWithEvent returns false on missing .beads/, missing bd, or any
71
+ // bd error — we don't propagate failures to the caller, since the ledger
72
+ // write succeeded.
73
+ if (input.type === 'task_claimed' && input.taskId) {
74
+ await beadsAdapter.claimWithEvent(input.cwd, { id: input.taskId, eventId: written.event_id }, input.bdBin ? { bdBin: input.bdBin } : undefined);
75
+ }
68
76
  return 0;
69
77
  }
70
78
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../../src/cli/commands/observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../../src/cli/commands/observe.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,42 @@ describe('observe event subcommand', () => {
30
30
  expect(obj.payload.task_title).toBe('Hello world');
31
31
  expect(obj.payload.wave).toBe('wave-2');
32
32
  });
33
+ it('task_claimed cross-links to Beads via claimWithEvent when .beads/ + bd available', async () => {
34
+ mkdirSync(join(dir, '.beads'), { recursive: true });
35
+ const log = join(dir, 'bd-invocations.log');
36
+ const shim = join(dir, 'fake-bd.sh');
37
+ writeFileSync(shim, `#!/usr/bin/env bash
38
+ if [ "$1" = "--version" ]; then echo "bd version 1.0.4"; exit 0; fi
39
+ if [ "$1" = "update" ]; then echo "$@" >> "${log}"; exit 0; fi
40
+ exit 0
41
+ `, { mode: 0o755 });
42
+ const exitCode = await handleEvent({
43
+ cwd: dir,
44
+ type: 'task_claimed',
45
+ branch: 'feat',
46
+ taskId: 'bd-a3f8',
47
+ keyValues: { 'task-title': 'Atomic claim wiring' },
48
+ bdBin: shim,
49
+ });
50
+ expect(exitCode).toBe(0);
51
+ expect(existsSync(log)).toBe(true);
52
+ const logged = readFileSync(log, 'utf-8');
53
+ expect(logged).toMatch(/update bd-a3f8/);
54
+ expect(logged).toMatch(/--set-metadata ledger_event_id=[0-9A-Z]+/); // ULID
55
+ expect(logged).toMatch(/--claim/);
56
+ });
57
+ it('task_claimed does NOT call bd when .beads/ is absent (fail-soft)', async () => {
58
+ // No .beads/ dir; the event should still be written, no bd invocation attempted.
59
+ const exitCode = await handleEvent({
60
+ cwd: dir,
61
+ type: 'task_claimed',
62
+ branch: 'feat',
63
+ taskId: 'T-001',
64
+ keyValues: { 'task-title': 'No Beads here' },
65
+ });
66
+ expect(exitCode).toBe(0);
67
+ expect(existsSync(join(dir, '.scaffold/activity.jsonl'))).toBe(true);
68
+ });
33
69
  it('exits with code 2 on schema-invalid input (missing payload field)', async () => {
34
70
  const exitCode = await handleEvent({
35
71
  cwd: dir,