mandrel 1.94.0 → 2.0.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.
- package/.agents/README.md +59 -73
- package/.agents/agents/story-worker.md +12 -13
- package/.agents/docs/SDLC.md +489 -1285
- package/.agents/docs/agentrc-reference.json +177 -67
- package/.agents/docs/configuration.md +104 -138
- package/.agents/docs/execution-reference.md +17 -20
- package/.agents/docs/quality-gates.md +13 -19
- package/.agents/docs/workflows.md +3 -3
- package/.agents/instructions.md +70 -81
- package/.agents/rules/ci-remediation.md +8 -12
- package/.agents/rules/git-conventions-reference.md +6 -7
- package/.agents/rules/git-conventions.md +16 -22
- package/.agents/schemas/acceptance-eval-verdict.schema.json +1 -1
- package/.agents/schemas/agentrc.schema.json +54 -214
- package/.agents/schemas/lifecycle/ledger-record.schema.json +1 -1
- package/.agents/schemas/lifecycle/retro.end.schema.json +1 -1
- package/.agents/schemas/risk-verdict.schema.json +0 -13
- package/.agents/scripts/analyze-execution.js +1 -1
- package/.agents/scripts/audit-to-stories.js +7 -7
- package/.agents/scripts/boot-sweep.js +1 -1
- package/.agents/scripts/check-lifecycle-lint.js +6 -9
- package/.agents/scripts/check-prepush-recovery.js +1 -1
- package/.agents/scripts/cleanup-repo-test-temp.js +6 -1
- package/.agents/scripts/lib/Logger.js +6 -10
- package/.agents/scripts/lib/audit-suite/runner.js +2 -2
- package/.agents/scripts/lib/audit-suite/selector.js +5 -5
- package/.agents/scripts/lib/audit-to-stories/{seed-epic-from-findings.js → seed-from-findings.js} +9 -9
- package/.agents/scripts/lib/baselines/kernel.js +206 -18
- package/.agents/scripts/lib/baselines/kinds/maintainability.js +0 -4
- package/.agents/scripts/lib/baselines/reader.js +1 -6
- package/.agents/scripts/lib/bdd-runner-detect.js +5 -9
- package/.agents/scripts/lib/bootstrap/issue-forms-template.js +32 -33
- package/.agents/scripts/lib/checks/core-bare-clean.js +2 -2
- package/.agents/scripts/lib/checks/index.js +2 -1
- package/.agents/scripts/lib/checks/story-init-not-backgrounded.js +23 -21
- package/.agents/scripts/lib/cli/standard-args.js +13 -22
- package/.agents/scripts/lib/cli-args.js +16 -7
- package/.agents/scripts/lib/close-validation/gates.js +2 -2
- package/.agents/scripts/lib/config/ci.js +6 -31
- package/.agents/scripts/lib/config/delivery-routing.js +45 -29
- package/.agents/scripts/lib/config/explain.js +55 -36
- package/.agents/scripts/lib/config/limits.js +17 -58
- package/.agents/scripts/lib/config/paths.js +0 -2
- package/.agents/scripts/lib/config/quality.js +1 -1
- package/.agents/scripts/lib/config/runners.js +17 -50
- package/.agents/scripts/lib/config/temp-paths.js +19 -14
- package/.agents/scripts/lib/config/worktree-isolation.js +0 -5
- package/.agents/scripts/lib/config-resolver.js +2 -7
- package/.agents/scripts/lib/config-settings-schema-delivery.js +24 -148
- package/.agents/scripts/lib/config-settings-schema-quality.js +8 -14
- package/.agents/scripts/lib/config-settings-schema.js +52 -38
- package/.agents/scripts/lib/dependency-parser.js +3 -2
- package/.agents/scripts/lib/doc-tiers.js +2 -2
- package/.agents/scripts/lib/duplicate-search.js +211 -41
- package/.agents/scripts/lib/feedback-loop/retro-proposals-graduator.js +1 -1
- package/.agents/scripts/lib/findings/promote-finding.js +5 -5
- package/.agents/scripts/lib/framework-version.js +2 -3
- package/.agents/scripts/lib/git-branch-cleanup.js +1 -10
- package/.agents/scripts/lib/git-branch-lifecycle.js +17 -22
- package/.agents/scripts/lib/git-utils.js +32 -6
- package/.agents/scripts/lib/github/framework-repo.js +6 -0
- package/.agents/scripts/lib/label-constants.js +10 -23
- package/.agents/scripts/lib/label-taxonomy.js +9 -43
- package/.agents/scripts/lib/observability/active-story-env.js +1 -1
- package/.agents/scripts/lib/observability/hook-heartbeat.js +20 -52
- package/.agents/scripts/lib/observability/source-classifier.js +3 -3
- package/.agents/scripts/lib/onboard/init-tail.js +1 -3
- package/.agents/scripts/lib/orchestration/audit-lens-routing.js +128 -0
- package/.agents/scripts/lib/orchestration/bookkeeping-outbox.js +8 -5
- package/.agents/scripts/lib/orchestration/ceremony-routing.js +83 -20
- package/.agents/scripts/lib/orchestration/code-review.js +20 -268
- package/.agents/scripts/lib/orchestration/column-sync.js +1 -1
- package/.agents/scripts/lib/orchestration/consolidation-precondition.js +1 -1
- package/.agents/scripts/lib/orchestration/context-envelope.js +2 -5
- package/.agents/scripts/lib/orchestration/docs-digest.js +8 -8
- package/.agents/scripts/lib/orchestration/file-assumptions.js +7 -13
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/cli.js +1 -1
- package/.agents/scripts/lib/orchestration/lifecycle/emit-loop-tick.js +8 -8
- package/.agents/scripts/lib/orchestration/lifecycle/emit-story-heartbeat.js +2 -2
- package/.agents/scripts/lib/orchestration/lifecycle/ledger-writer.js +6 -3
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/README.md +17 -43
- package/.agents/scripts/lib/orchestration/lint-baseline-service.js +4 -4
- package/.agents/scripts/lib/orchestration/merge-block-class.js +1 -1
- package/.agents/scripts/lib/orchestration/phase-runner.js +3 -2
- package/.agents/scripts/lib/orchestration/plan-context.js +248 -266
- package/.agents/scripts/lib/orchestration/plan-critics-evaluate.js +1 -1
- package/.agents/scripts/lib/orchestration/plan-navigation.js +92 -0
- package/.agents/scripts/lib/orchestration/plan-persist/fan-out-gate.js +61 -0
- package/.agents/scripts/lib/orchestration/plan-persist/persist-helpers.js +97 -0
- package/.agents/scripts/lib/orchestration/plan-persist/run-plan-persist.js +223 -854
- package/.agents/scripts/lib/orchestration/plan-persist/story-ops.js +361 -0
- package/.agents/scripts/lib/orchestration/plan-persist/summary.js +35 -108
- package/.agents/scripts/lib/orchestration/plan-reachability.js +9 -14
- package/.agents/scripts/lib/orchestration/plan-runner/worktree-sweep.js +1 -1
- package/.agents/scripts/lib/orchestration/{epic-plan-spec/phases → planning}/authoring-context.js +13 -13
- package/.agents/scripts/lib/orchestration/planning/decomposer-context.js +27 -0
- package/.agents/scripts/lib/orchestration/{epic-plan-spec/phases → planning}/risk-verdict.js +3 -4
- package/.agents/scripts/lib/orchestration/post-merge/phases/branch-cleanup.js +2 -2
- package/.agents/scripts/lib/orchestration/post-merge/phases/dashboard-refresh.js +8 -20
- package/.agents/scripts/lib/orchestration/post-merge/phases/worktree-reap.js +3 -2
- package/.agents/scripts/lib/orchestration/pr-base-guard.js +18 -28
- package/.agents/scripts/lib/orchestration/preflight-cache.js +5 -5
- package/.agents/scripts/lib/orchestration/remote-verifier.js +1 -1
- package/.agents/scripts/lib/orchestration/resolve-plan-run.js +155 -0
- package/.agents/scripts/lib/orchestration/resolves-token.js +1 -1
- package/.agents/scripts/lib/orchestration/retro-perf-heuristics.js +8 -8
- package/.agents/scripts/lib/orchestration/retro-proposals.js +140 -79
- package/.agents/scripts/lib/orchestration/review-depth.js +26 -12
- package/.agents/scripts/lib/orchestration/review-providers/codex.js +2 -2
- package/.agents/scripts/lib/orchestration/review-providers/review-provider-factory.js +21 -56
- package/.agents/scripts/lib/orchestration/run-epilogue.js +426 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/auto-merge.js +1 -1
- package/.agents/scripts/lib/orchestration/single-story-close/phases/code-review.js +95 -41
- package/.agents/scripts/lib/orchestration/single-story-close/phases/options.js +16 -13
- package/.agents/scripts/lib/orchestration/single-story-close/phases/review-block.js +40 -0
- package/.agents/scripts/lib/orchestration/single-story-close/runner.js +11 -3
- package/.agents/scripts/lib/orchestration/spec-freshness.js +14 -205
- package/.agents/scripts/lib/orchestration/spec-section-validator.js +4 -5
- package/.agents/scripts/lib/orchestration/spec-spill.js +60 -0
- package/.agents/scripts/lib/orchestration/split-policy-validator.js +188 -0
- package/.agents/scripts/lib/orchestration/story-close/emit-blocked.js +49 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/code-review.js +15 -12
- package/.agents/scripts/lib/orchestration/story-follow-ups.js +237 -0
- package/.agents/scripts/lib/orchestration/story-init-remote.js +47 -0
- package/.agents/scripts/lib/orchestration/story-plan-state.js +48 -0
- package/.agents/scripts/lib/orchestration/{epic-runner → story-progress}/story-run-progress-writer.js +3 -3
- package/.agents/scripts/lib/orchestration/structured-comment-parser.js +1 -1
- package/.agents/scripts/lib/orchestration/task-body-validator.js +8 -18
- package/.agents/scripts/lib/orchestration/ticket-validator-conflicts.js +11 -61
- package/.agents/scripts/lib/orchestration/ticket-validator-sizing.js +189 -373
- package/.agents/scripts/lib/orchestration/ticket-validator.js +2 -7
- package/.agents/scripts/lib/orchestration/ticketing/bulk.js +0 -25
- package/.agents/scripts/lib/orchestration/ticketing/reads.js +29 -26
- package/.agents/scripts/lib/orchestration/ticketing/transition.js +5 -5
- package/.agents/scripts/lib/planning-corpus.js +16 -11
- package/.agents/scripts/lib/preflight-runner.js +2 -2
- package/.agents/scripts/lib/qa/coverage-verdict.js +5 -5
- package/.agents/scripts/lib/single-story/confirm-merge-follow-ups.js +36 -0
- package/.agents/scripts/lib/single-story-sweep/protection-ctx.js +1 -1
- package/.agents/scripts/lib/story-adjacency.js +11 -14
- package/.agents/scripts/lib/story-body/story-body.js +124 -70
- package/.agents/scripts/lib/story-plan.js +2 -4
- package/.agents/scripts/lib/templates/decomposer-prompts.js +46 -45
- package/.agents/scripts/lib/templates/spec-author-prompts.js +47 -45
- package/.agents/scripts/lib/{epic-body-sections.js → ticket-body-sections.js} +26 -26
- package/.agents/scripts/lib/validation-evidence.js +1 -1
- package/.agents/scripts/lib/wave-runner/ready-set.js +6 -6
- package/.agents/scripts/lib/workspace-provisioner.js +1 -1
- package/.agents/scripts/lib/worktree/lifecycle/reap.js +5 -7
- package/.agents/scripts/lint-issue-body.js +71 -40
- package/.agents/scripts/mandrel-update-preflight.js +1 -1
- package/.agents/scripts/notify.js +4 -3
- package/.agents/scripts/plan-context.js +64 -74
- package/.agents/scripts/plan-persist.js +121 -280
- package/.agents/scripts/plan-run-epilogue.js +97 -0
- package/.agents/scripts/providers/github/issues.js +17 -33
- package/.agents/scripts/providers/github/mappers.js +0 -12
- package/.agents/scripts/providers/github/tickets.js +2 -5
- package/.agents/scripts/resolve-plan-run.js +117 -0
- package/.agents/scripts/signals-view.js +24 -19
- package/.agents/scripts/single-story-close.js +11 -14
- package/.agents/scripts/single-story-confirm-merge.js +39 -23
- package/.agents/scripts/single-story-init.js +29 -20
- package/.agents/scripts/stories-wave-tick.js +6 -6
- package/.agents/scripts/story-plan.js +26 -47
- package/.agents/scripts/update-ticket-state.js +6 -15
- package/.agents/skills/core/analyze-execution/SKILL.md +21 -18
- package/.agents/skills/core/idea-refinement/SKILL.md +6 -6
- package/.agents/skills/core/scope-triage/SKILL.md +28 -172
- package/.agents/skills/skills.index.json +3 -43
- package/.agents/starter-agentrc.json +0 -5
- package/.agents/templates/agent-protocol.md +9 -10
- package/.agents/workflows/audit-architecture.md +3 -3
- package/.agents/workflows/audit-clean-code.md +3 -3
- package/.agents/workflows/audit-dependencies.md +3 -3
- package/.agents/workflows/audit-devops.md +3 -3
- package/.agents/workflows/audit-documentation.md +5 -5
- package/.agents/workflows/audit-lighthouse.md +3 -3
- package/.agents/workflows/audit-navigability.md +3 -2
- package/.agents/workflows/audit-performance.md +3 -3
- package/.agents/workflows/audit-privacy.md +3 -3
- package/.agents/workflows/audit-quality.md +3 -3
- package/.agents/workflows/audit-security.md +3 -3
- package/.agents/workflows/audit-seo.md +3 -3
- package/.agents/workflows/audit-sre.md +3 -3
- package/.agents/workflows/audit-to-stories.md +20 -20
- package/.agents/workflows/audit-ux-ui.md +3 -3
- package/.agents/workflows/deliver.md +122 -174
- package/.agents/workflows/git-cleanup.md +3 -4
- package/.agents/workflows/helpers/_merge-conflict-template.md +1 -1
- package/.agents/workflows/helpers/acceptance-self-eval.md +16 -29
- package/.agents/workflows/helpers/code-review.md +70 -193
- package/.agents/workflows/helpers/{single-story-deliver-reference.md → deliver-story-reference.md} +12 -14
- package/.agents/workflows/helpers/{single-story-deliver.md → deliver-story.md} +113 -139
- package/.agents/workflows/helpers/diagnose.md +10 -10
- package/.agents/workflows/helpers/parallel-tooling.md +1 -1
- package/.agents/workflows/helpers/signals.md +16 -16
- package/.agents/workflows/helpers/worktree-lifecycle.md +48 -64
- package/.agents/workflows/mandrel-update.md +2 -1
- package/.agents/workflows/plan.md +112 -145
- package/.agents/workflows/qa-assist.md +24 -30
- package/.agents/workflows/qa-explore.md +29 -38
- package/.agents/workflows/qa-run.md +2 -2
- package/README.md +9 -8
- package/docs/CHANGELOG.md +30 -0
- package/lib/migrations/index.js +6 -5
- package/package.json +2 -2
- package/.agents/agents/retro.md +0 -42
- package/.agents/personas/architect.md +0 -113
- package/.agents/personas/devops-engineer.md +0 -38
- package/.agents/personas/engineer.md +0 -33
- package/.agents/personas/project-manager.md +0 -114
- package/.agents/personas/qa-engineer.md +0 -95
- package/.agents/personas/security-engineer.md +0 -111
- package/.agents/personas/technical-writer.md +0 -101
- package/.agents/schemas/dispatch-manifest.json +0 -232
- package/.agents/schemas/epic-spec.schema.json +0 -153
- package/.agents/schemas/lifecycle/slice.end.schema.json +0 -21
- package/.agents/schemas/lifecycle/slice.heartbeat.schema.json +0 -20
- package/.agents/schemas/lifecycle/slice.start.schema.json +0 -17
- package/.agents/scripts/acceptance-spec-reconciler.js +0 -642
- package/.agents/scripts/bookkeeping-reconcile.js +0 -117
- package/.agents/scripts/dispatcher.js +0 -295
- package/.agents/scripts/epic-audit-prepare.js +0 -497
- package/.agents/scripts/epic-audit-recheck.js +0 -274
- package/.agents/scripts/epic-deliver-note-intervention.js +0 -192
- package/.agents/scripts/epic-deliver-preflight.js +0 -462
- package/.agents/scripts/epic-deliver-prepare.js +0 -852
- package/.agents/scripts/epic-execute-record-wave.js +0 -449
- package/.agents/scripts/epic-plan-clarity.js +0 -211
- package/.agents/scripts/epic-plan-healthcheck.js +0 -581
- package/.agents/scripts/epic-reconcile.js +0 -625
- package/.agents/scripts/lib/baseline-snapshot.js +0 -979
- package/.agents/scripts/lib/checks/epic-merge-lock-stale.js +0 -54
- package/.agents/scripts/lib/checks/stale-origin-epic.js +0 -49
- package/.agents/scripts/lib/config/lifecycle.js +0 -40
- package/.agents/scripts/lib/config/preflight.js +0 -58
- package/.agents/scripts/lib/config/retro.js +0 -77
- package/.agents/scripts/lib/epic-merge-lock.js +0 -322
- package/.agents/scripts/lib/epic-plan-clarity.js +0 -181
- package/.agents/scripts/lib/epic-plan-ideation.js +0 -261
- package/.agents/scripts/lib/orchestration/context-hydration-engine.js +0 -539
- package/.agents/scripts/lib/orchestration/deliver-route.js +0 -173
- package/.agents/scripts/lib/orchestration/dispatch-engine.js +0 -134
- package/.agents/scripts/lib/orchestration/dispatch-pipeline.js +0 -183
- package/.agents/scripts/lib/orchestration/epic-cleanup.js +0 -801
- package/.agents/scripts/lib/orchestration/epic-deliver-lease-guard.js +0 -310
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/context.js +0 -163
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/creation.js +0 -140
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/dag.js +0 -64
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/diagnostics.js +0 -72
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist-helpers.js +0 -156
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist.js +0 -345
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/planning-artifacts.js +0 -41
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/reconcile-spawn.js +0 -86
- package/.agents/scripts/lib/orchestration/epic-plan-lease-guard.js +0 -391
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/drain.js +0 -94
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/plan-epic.js +0 -236
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/run-spec-phase.js +0 -307
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/spec-freshness.js +0 -117
- package/.agents/scripts/lib/orchestration/epic-plan-state-store.js +0 -117
- package/.agents/scripts/lib/orchestration/epic-run-state-store.js +0 -621
- package/.agents/scripts/lib/orchestration/epic-runner/concurrency-gate.js +0 -186
- package/.agents/scripts/lib/orchestration/epic-runner/deliver-phases.js +0 -50
- package/.agents/scripts/lib/orchestration/epic-runner/phases/build-wave-dag.js +0 -129
- package/.agents/scripts/lib/orchestration/epic-runner/phases/snapshot.js +0 -103
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/composition.js +0 -267
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/signals.js +0 -210
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/transport.js +0 -238
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/_bullet-format.js +0 -32
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/component-drift.js +0 -203
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/crap-drift.js +0 -227
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/maintainability-drift.js +0 -117
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/stalled-worktree.js +0 -37
- package/.agents/scripts/lib/orchestration/epic-runner/story-launcher.js +0 -127
- package/.agents/scripts/lib/orchestration/epic-runner/sub-agent-return.js +0 -276
- package/.agents/scripts/lib/orchestration/epic-runner/wave-scheduler.js +0 -66
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-apply.js +0 -789
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-diff.js +0 -676
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-discriminator.js +0 -389
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-format.js +0 -230
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-ops.js +0 -361
- package/.agents/scripts/lib/orchestration/finalize/open-or-locate-pr.js +0 -306
- package/.agents/scripts/lib/orchestration/finalize/post-handoff-comment.js +0 -489
- package/.agents/scripts/lib/orchestration/finalize/sanitize-skip-ci.js +0 -88
- package/.agents/scripts/lib/orchestration/lifecycle/emit-slice-lifecycle.js +0 -270
- package/.agents/scripts/lib/orchestration/lifecycle/emit-story-dispatch-end.js +0 -147
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/acceptance-reconciler.js +0 -465
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-armer.js +0 -501
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-predicate.js +0 -984
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/branch-cleaner.js +0 -264
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/checkpoint-pointer-writer.js +0 -284
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/cleaner.js +0 -355
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/finalizer.js +0 -673
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/index.js +0 -378
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/intervention-recorder.js +0 -140
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/label-transitioner.js +0 -144
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/notify-dispatcher.js +0 -174
- package/.agents/scripts/lib/orchestration/manifest-builder.js +0 -222
- package/.agents/scripts/lib/orchestration/plan-persist/amend.js +0 -359
- package/.agents/scripts/lib/orchestration/plan-persist/delivery-mode.js +0 -127
- package/.agents/scripts/lib/orchestration/post-merge-pipeline.js +0 -205
- package/.agents/scripts/lib/orchestration/recurring-failure-detector.js +0 -152
- package/.agents/scripts/lib/orchestration/retro/phases/checks.js +0 -94
- package/.agents/scripts/lib/orchestration/retro/phases/compose-body.js +0 -571
- package/.agents/scripts/lib/orchestration/retro/phases/gather-signals.js +0 -450
- package/.agents/scripts/lib/orchestration/retro/phases/post-and-mirror.js +0 -191
- package/.agents/scripts/lib/orchestration/retro-heuristics.js +0 -57
- package/.agents/scripts/lib/orchestration/retro-runner.js +0 -197
- package/.agents/scripts/lib/orchestration/spec-renderer.js +0 -447
- package/.agents/scripts/lib/orchestration/story-close/auto-refresh-runner.js +0 -747
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/gate-failure.js +0 -211
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/pre-merge-attribution.js +0 -158
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/refresh-commit.js +0 -446
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/regression-projection.js +0 -297
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/scope-discovery.js +0 -48
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution-wiring.js +0 -67
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution.js +0 -161
- package/.agents/scripts/lib/orchestration/story-close/baseline-friction-body.js +0 -117
- package/.agents/scripts/lib/orchestration/story-close/cd-out-guard.js +0 -86
- package/.agents/scripts/lib/orchestration/story-close/cleanup-reconciler.js +0 -147
- package/.agents/scripts/lib/orchestration/story-close/close-inputs.js +0 -142
- package/.agents/scripts/lib/orchestration/story-close/comment-bodies.js +0 -62
- package/.agents/scripts/lib/orchestration/story-close/merge-runner.js +0 -658
- package/.agents/scripts/lib/orchestration/story-close/merge-subject.js +0 -198
- package/.agents/scripts/lib/orchestration/story-close/phases/branch-restore.js +0 -105
- package/.agents/scripts/lib/orchestration/story-close/phases/close.js +0 -222
- package/.agents/scripts/lib/orchestration/story-close/phases/gates.js +0 -292
- package/.agents/scripts/lib/orchestration/story-close/phases/locked-pipeline.js +0 -270
- package/.agents/scripts/lib/orchestration/story-close/phases/preflight.js +0 -110
- package/.agents/scripts/lib/orchestration/story-close/phases/refresh.js +0 -86
- package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked-emitter.js +0 -112
- package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked.js +0 -157
- package/.agents/scripts/lib/orchestration/story-close/post-merge-close.js +0 -421
- package/.agents/scripts/lib/orchestration/story-close/pre-merge-validation.js +0 -302
- package/.agents/scripts/lib/orchestration/story-close/shared-checkout-guard.js +0 -163
- package/.agents/scripts/lib/orchestration/story-close-recovery.js +0 -690
- package/.agents/scripts/lib/orchestration/wave-marker.js +0 -28
- package/.agents/scripts/lib/orchestration/wave-record-io.js +0 -218
- package/.agents/scripts/lib/orchestration/wave-record-notifications.js +0 -145
- package/.agents/scripts/lib/orchestration/wave-record-projection.js +0 -212
- package/.agents/scripts/lib/presentation/dispatch-manifest-render.js +0 -111
- package/.agents/scripts/lib/presentation/manifest-builder.js +0 -239
- package/.agents/scripts/lib/presentation/manifest-formatter.js +0 -242
- package/.agents/scripts/lib/presentation/manifest-helpers.js +0 -213
- package/.agents/scripts/lib/presentation/manifest-persistence.js +0 -261
- package/.agents/scripts/lib/presentation/manifest-procedures.js +0 -55
- package/.agents/scripts/lib/presentation/manifest-render-waves.js +0 -306
- package/.agents/scripts/lib/presentation/manifest-renderer.js +0 -188
- package/.agents/scripts/lib/presentation/manifest-story-views.js +0 -110
- package/.agents/scripts/lib/push-epic-retry.js +0 -209
- package/.agents/scripts/lib/spec/index.js +0 -36
- package/.agents/scripts/lib/spec/loader.js +0 -425
- package/.agents/scripts/lib/spec/state.js +0 -208
- package/.agents/scripts/lib/story-init/blocker-validator.js +0 -68
- package/.agents/scripts/lib/story-init/branch-initializer.js +0 -408
- package/.agents/scripts/lib/story-init/context-resolver.js +0 -92
- package/.agents/scripts/lib/story-init/donor-precheck.js +0 -207
- package/.agents/scripts/lib/story-init/state-transitioner.js +0 -80
- package/.agents/scripts/lib/story-init/task-graph-builder.js +0 -124
- package/.agents/scripts/lib/story-init/transition-summary.js +0 -34
- package/.agents/scripts/lib/test-reserved-epic-temp-ids.js +0 -35
- package/.agents/scripts/lib/wave-runner/tick.js +0 -754
- package/.agents/scripts/lib/wave-runner/wave-runner-error.js +0 -20
- package/.agents/scripts/lifecycle-emit-story-dispatch.js +0 -194
- package/.agents/scripts/lifecycle-emit.js +0 -510
- package/.agents/scripts/retro-run.js +0 -218
- package/.agents/scripts/slice-phase.js +0 -361
- package/.agents/scripts/standalone-feedback-rollup.js +0 -188
- package/.agents/scripts/story-close.js +0 -294
- package/.agents/scripts/story-init.js +0 -599
- package/.agents/scripts/story-phase.js +0 -369
- package/.agents/scripts/wave-tick.js +0 -464
- package/.agents/skills/core/epic-plan-consolidate/SKILL.md +0 -172
- package/.agents/skills/core/epic-plan-consolidate/examples.md +0 -51
- package/.agents/skills/core/epic-plan-decompose-author/SKILL.md +0 -441
- package/.agents/skills/core/epic-plan-decompose-author/examples.md +0 -47
- package/.agents/skills/core/epic-plan-premortem/SKILL.md +0 -146
- package/.agents/skills/core/epic-plan-premortem/examples.md +0 -53
- package/.agents/skills/core/epic-plan-spec-author/SKILL.md +0 -383
- package/.agents/skills/core/epic-plan-spec-author/examples.md +0 -91
- package/.agents/workflows/helpers/deliver-epic-reference.md +0 -547
- package/.agents/workflows/helpers/deliver-epic-single.md +0 -331
- package/.agents/workflows/helpers/deliver-epic.md +0 -998
- package/.agents/workflows/helpers/deliver-stories.md +0 -450
- package/.agents/workflows/helpers/epic-audit.md +0 -189
- package/.agents/workflows/helpers/epic-deliver-story.md +0 -436
- package/.agents/workflows/helpers/epic-testing.md +0 -125
- package/.agents/workflows/helpers/plan-epic-reference.md +0 -160
- package/.agents/workflows/helpers/plan-epic.md +0 -353
- package/.agents/workflows/helpers/plan-story.md +0 -251
- package/.agents/workflows/helpers/scope-triage-gate.md +0 -108
- /package/.agents/scripts/lib/orchestration/{epic-plan-spec/phases → planning}/spec-authoring-grounding.js +0 -0
|
@@ -49,13 +49,13 @@ description, edit the workflow file’s front-matter and regenerate.
|
|
|
49
49
|
| `/audit-security` | Audit dependency CVEs, input-validation gaps, secrets handling, and auth boundaries; emit a structured High/Medium/Low findings report. |
|
|
50
50
|
| `/audit-seo` | Audit SEO fundamentals and Generative Engine Optimization signals (meta, structured data, crawlability); only relevant for web targets. |
|
|
51
51
|
| `/audit-sre` | "Audit production-readiness for a release candidate: SLOs, observability, runbooks, error budgets, and rollback paths." |
|
|
52
|
-
| `/audit-to-stories` | Convert findings produced by the audit-\* workflows into actionable GitHub Stories. Reads temp/audits/audit-\*-results.md, groups findings cross-audit, deduplicates against existing Issues by fingerprint, and either chains into /plan --
|
|
52
|
+
| `/audit-to-stories` | Convert findings produced by the audit-\* workflows into actionable GitHub Stories. Reads temp/audits/audit-\*-results.md, groups findings cross-audit, deduplicates against existing Issues by fingerprint, and either chains into /plan --seed-file or opens standalone Stories. |
|
|
53
53
|
| `/audit-ux-ui` | Audit UX/UI consistency and design system adherence |
|
|
54
|
-
| `/deliver` | Unified delivery entry point.
|
|
54
|
+
| `/deliver` | Unified delivery entry point. Delivers one or more Stories via the single deliver-story engine — story-<id> → PR → main. Sequences N>1 by depends\_on and runs the per-run epilogue once at the end. |
|
|
55
55
|
| `/git-cleanup` | Tidy the local checkout in four phases: fast-forward `main`, prune stale remote-tracking refs, sweep merged branches (squash-aware), and triage `git stash` entries — each step gated by operator confirmation. |
|
|
56
56
|
| `/git-deliver` | Single ad-hoc delivery command for working-tree changes. Detects the git setup and escalates to the right terminal step — commit only, commit + push, or commit + push + open a PR with native auto-merge — picking the default from observable state and letting flags pin any level explicitly. Replaces the retired git-commit-all, git-push, and git-pr-all trio. |
|
|
57
57
|
| `/mandrel-update` | npm-era upgrade wraparound for a Mandrel consumer. Runs `npx mandrel update` (resolve newest published version → install → re-materialize `.agents/` → migrate → doctor → surface changelog) as the single mechanical step, then walks the operator through the judgment wraparound the CLI deliberately leaves unowned: reconcile `.agentrc.json`, install the Epic #1386 quality-gate surface, refresh the harness permission allowlist, reconcile the consumer's `AGENTS.md` / runbooks against the surfaced changelog, and stage + commit the staged lockfile bump. |
|
|
58
|
-
| `/plan` | Unified planning entry point.
|
|
58
|
+
| `/plan` | Unified planning entry point. Interrogate → author → persist. Emits one Story by default (folded Tech Spec in the Story body); splits into N>1 only under the default-single split policy. |
|
|
59
59
|
| `/qa-assist` | Human-led QA assist loop — set up, then ride a rolling multi-observation intake session. The operator reports observations in any order; the agent enriches each (repro + root-cause file:line + coverage verdict for bugs; analysis + options + recommendation for enhancements), asks clarifying questions only when ambiguous, and appends a redacted ledger item — recording, never planning — to a persistent, resumable session under temp/qa/. Only when the operator says they are done does it review the full ledger and hand off to /plan. |
|
|
60
60
|
| `/qa-explore` | Agent-led exploratory-QA loop — the agent Plans a surface with an explicit static-vs-drive method choice, drives it (browser MCP or static), and captures ledger items read-only, then Triages — a bounded per-surface session, HITL-gated at every phase transition, routed through the shared dedup/coverage/classification/missing-test/redaction/session core under temp/qa/ |
|
|
61
61
|
| `/qa-run` | Drive Gherkin scenarios through a real browser as an agent-driven QA sweep |
|
package/.agents/instructions.md
CHANGED
|
@@ -8,15 +8,17 @@ set. You MUST strictly adhere to the following rules:
|
|
|
8
8
|
|
|
9
9
|
## 1. System Guardrails & Initialization
|
|
10
10
|
|
|
11
|
-
### A.
|
|
11
|
+
### A. Role Framing (no persona packs)
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
v2 has **no** `.agents/personas/` packs and **no** `persona::*` GitHub labels.
|
|
14
|
+
Behavioral constraints come from this file, always-on / on-demand rules, and
|
|
15
|
+
skills. Role-scoped spawn contexts (when used) live under `.agents/agents/`
|
|
16
|
+
via `delivery.routing.roleScopedAgents`. QA auth identities (`qa.personas`)
|
|
17
|
+
are a separate fixture concept — not agent behavior packs.
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
If a user says "act as [role]" in chat, apply the matching skill / workflow
|
|
20
|
+
guidance (e.g. QA skills for verification work, security skill for threat
|
|
21
|
+
modeling) rather than looking for a persona file.
|
|
20
22
|
|
|
21
23
|
### B. Skill Activation
|
|
22
24
|
|
|
@@ -202,18 +204,14 @@ hand back to the operator. Do not paper over the loop with another
|
|
|
202
204
|
just-in-case retry.
|
|
203
205
|
|
|
204
206
|
This protocol is not soft-prompt-only — it has a runtime substrate. While
|
|
205
|
-
executing as a Story delivery sub-agent (via `helpers/
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
recent `story.heartbeat`, no commit on its `story-<id>` branch, and no
|
|
214
|
-
`agent::blocked` label is exactly the failure mode the idle watchdog is
|
|
215
|
-
built to catch, and the watchdog will re-dispatch (or escalate) the Story
|
|
216
|
-
without your participation.
|
|
207
|
+
executing as a Story delivery sub-agent (via `helpers/deliver-story`), you
|
|
208
|
+
MUST emit a `story.heartbeat` lifecycle event on every Task transition (or
|
|
209
|
+
whenever you stall on a long-running step) so the parent `/deliver`
|
|
210
|
+
sequencer can distinguish a child still making progress from a dead one. If
|
|
211
|
+
you genuinely cannot proceed, transition to `agent::blocked` and exit
|
|
212
|
+
non-zero — never fall silent. A child with no recent `story.heartbeat`, no
|
|
213
|
+
commit on its `story-<id>` branch, and no `agent::blocked` label is exactly
|
|
214
|
+
the stall shape the parent run must detect and escalate.
|
|
217
215
|
|
|
218
216
|
### J. HITL Blocker Escalation (Safe Execution)
|
|
219
217
|
|
|
@@ -243,8 +241,7 @@ resolve by this **total ordering** (higher wins):
|
|
|
243
241
|
(§ 1.E).
|
|
244
242
|
2. **This file** — `.agents/instructions.md`.
|
|
245
243
|
3. **Global rules** — `.agents/rules/*.md` (§ 1.F).
|
|
246
|
-
4. **
|
|
247
|
-
5. **Skills** — `.agents/skills/**/SKILL.md` (§ 1.B).
|
|
244
|
+
4. **Skills** — `.agents/skills/**/SKILL.md` (§ 1.B).
|
|
248
245
|
|
|
249
246
|
Two carve-outs refine the ordering:
|
|
250
247
|
|
|
@@ -252,18 +249,18 @@ Two carve-outs refine the ordering:
|
|
|
252
249
|
tier overlap, the narrower, more-specific statement governs the broader one
|
|
253
250
|
(e.g. a stack-specific skill refines a general core skill; a per-rule
|
|
254
251
|
statement refines a cross-rule one).
|
|
255
|
-
- **`rules/security-baseline.md` is inviolable.** No
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
252
|
+
- **`rules/security-baseline.md` is inviolable.** No skill or local override
|
|
253
|
+
may relax a security MUST. A security constraint that conflicts with any
|
|
254
|
+
lower-tier guidance — or with a local override — always wins, regardless of
|
|
255
|
+
its tier position above.
|
|
259
256
|
|
|
260
257
|
---
|
|
261
258
|
|
|
262
259
|
## 2. FinOps & Token Budgeting (Economic Guardrails)
|
|
263
260
|
|
|
264
261
|
Mandrel does **not** enforce live LLM spend from response metadata. It caps
|
|
265
|
-
**
|
|
266
|
-
|
|
262
|
+
**planning context budget** (`planning.context.maxBytes`) and related
|
|
263
|
+
envelopes; your host
|
|
267
264
|
runtime owns session quota and hard stops. The config keys, the ≈4-char/token
|
|
268
265
|
estimate, and the elision behaviour are reference detail — see
|
|
269
266
|
[`docs/execution-reference.md` § FinOps & token budgeting](docs/execution-reference.md#finops--token-budgeting-economic-guardrails).
|
|
@@ -283,7 +280,7 @@ budget grounds.
|
|
|
283
280
|
ensures (generates or reuses) a per-Epic docs digest — a single compact
|
|
284
281
|
outline (path, byte size, heading outline with line numbers, and the
|
|
285
282
|
first paragraph under each `##`) built from `project.docsContextFiles`
|
|
286
|
-
— at `temp/
|
|
283
|
+
— at `temp/run-<id>/docs-digest.md` (`plan-context.js`, via the
|
|
287
284
|
shared generator in
|
|
288
285
|
`.agents/scripts/lib/orchestration/docs-digest.js`; the same file the
|
|
289
286
|
`/deliver` story sub-agents below already consume). Use the digest to
|
|
@@ -303,19 +300,13 @@ budget grounds.
|
|
|
303
300
|
hard cutover: there is no read-every-`docsContextFiles`-file branch
|
|
304
301
|
retained.
|
|
305
302
|
- **Digest-first Reading (`/deliver` story sub-agents)**: A `/deliver`
|
|
306
|
-
Story delivery sub-agent (dispatched via `helpers/
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
docs
|
|
310
|
-
`
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
relevant to the Story at hand, then **pull the full file on demand**
|
|
314
|
-
(reading the section at the line number the digest names) when a section
|
|
315
|
-
bears on the change. When `docsDigestPath` is null (the project has no
|
|
316
|
-
`project.docsContextFiles` configured) there is no digest to read and no
|
|
317
|
-
per-Story docs mandate — read a full doc only if the Story's own context
|
|
318
|
-
points you at one. This is the hard cutover from the former
|
|
303
|
+
Story delivery sub-agent (dispatched via `helpers/deliver-story`) does
|
|
304
|
+
**not** re-read the full `project.docsContextFiles` set per Story. When
|
|
305
|
+
the caller threads a `docsDigestPath`, use that compact outline to decide
|
|
306
|
+
which docs are relevant, then **pull the full file on demand**. When
|
|
307
|
+
`docsDigestPath` is null there is no digest to read and no per-Story docs
|
|
308
|
+
mandate — read a full doc only if the Story's own context points you at
|
|
309
|
+
one. This is the hard cutover from the former
|
|
319
310
|
read-every-file-per-Story rule: delivery children no longer ingest the
|
|
320
311
|
whole docs set up front.
|
|
321
312
|
- **Standalone-Story planning path (`story-plan.js --emit-context`)**:
|
|
@@ -396,24 +387,23 @@ budget grounds.
|
|
|
396
387
|
|
|
397
388
|
---
|
|
398
389
|
|
|
399
|
-
## 5. Git &
|
|
390
|
+
## 5. Git & Story Protocol (Strict Standards)
|
|
400
391
|
|
|
401
392
|
To maintain a clean and readable repository history, you MUST follow these
|
|
402
|
-
strict conventions for all
|
|
393
|
+
strict conventions for all Story-related Git operations. See
|
|
403
394
|
[`.agents/rules/git-conventions.md`](rules/git-conventions.md) for the full
|
|
404
395
|
canonical reference.
|
|
405
396
|
|
|
406
397
|
### A. Branch Naming (Canonical)
|
|
407
398
|
|
|
408
|
-
|
|
409
|
-
|
|
399
|
+
v2 delivery uses one branch shape. The runtime creates and maintains it
|
|
400
|
+
via `single-story-init.js`; agents commit on that branch only.
|
|
410
401
|
|
|
411
|
-
| Purpose
|
|
412
|
-
|
|
|
413
|
-
| Story execution
|
|
414
|
-
| Epic integration | `epic/<epicId>` | `/deliver` slash command | Story branches merge into this branch with `--no-ff`. Pushed per wave. |
|
|
402
|
+
| Purpose | Format | Owner | Notes |
|
|
403
|
+
| --------------- | ----------------- | ----------------------- | --------------------------------------------------------------------- |
|
|
404
|
+
| Story execution | `story-<storyId>` | `single-story-init.js` | Per-Story worktree at `.worktrees/story-<storyId>/`. PR target is `main` (squash + required checks). There is no `epic/<id>` integration branch and no `--no-ff` wave merge. |
|
|
415
405
|
|
|
416
|
-
- **Verification**: After `story-init.js` returns, confirm
|
|
406
|
+
- **Verification**: After `single-story-init.js` returns, confirm
|
|
417
407
|
`git branch --show-current` reports `story-<storyId>` before making any
|
|
418
408
|
commits. If it does not, **STOP** and re-init.
|
|
419
409
|
|
|
@@ -429,31 +419,30 @@ prompted.
|
|
|
429
419
|
|
|
430
420
|
### C. History Hygiene
|
|
431
421
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
`
|
|
450
|
-
`
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
as Section 5.A.
|
|
422
|
+
Every Story reaches `main` via its own PR (`story-<id>` → squash + required
|
|
423
|
+
checks). `helpers/deliver-story` / `single-story-close.js` open that PR;
|
|
424
|
+
there is no Epic integration branch and no in-script push to `main`.
|
|
425
|
+
|
|
426
|
+
### D. Ticket hierarchy (Story-only)
|
|
427
|
+
|
|
428
|
+
v2 collapses the ticket model to **Story**. Acceptance criteria and
|
|
429
|
+
verification steps live inline on the Story body (`acceptance[]` /
|
|
430
|
+
`verify[]`); the folded Tech Spec lives inline in `## Spec` (over-budget
|
|
431
|
+
Specs fail closed — split or tighten; never write under `docs/`). Optional
|
|
432
|
+
`depends_on` edges order rare multi-Story plan-runs.
|
|
433
|
+
|
|
434
|
+
- `/plan` emits one or more `type::story` issues (default N=1); N>1 shares a
|
|
435
|
+
`plan-run::<id>` label.
|
|
436
|
+
- Each Story is executed by `helpers/deliver-story` (invoked from
|
|
437
|
+
[`/deliver`](workflows/deliver.md)). There is no per-Task sub-loop; the
|
|
438
|
+
agent authors commit subjects directly per
|
|
439
|
+
[`rules/git-conventions.md`](rules/git-conventions.md) and references the
|
|
440
|
+
Story via `(refs #<storyId>)`.
|
|
441
|
+
- Branch model matches Section 5.A (`story-<id>` → PR → `main`).
|
|
442
|
+
- There is no `type::epic` / `type::task` label and no Epic issue form. An
|
|
443
|
+
Epic is at most an optional untyped human umbrella issue outside
|
|
444
|
+
orchestration; `/deliver` refuses tickets that still carry an
|
|
445
|
+
`Epic: #N` footer.
|
|
457
446
|
|
|
458
447
|
---
|
|
459
448
|
|
|
@@ -471,12 +460,12 @@ To keep the repository clean and avoid polluting the Git history:
|
|
|
471
460
|
|
|
472
461
|
## 7. Complexity-Aware Execution
|
|
473
462
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
`.agents/scripts/lib/orchestration/ticket-validator-sizing.js` (
|
|
479
|
-
|
|
463
|
+
`/plan` sizes each Story as a **capability slice a frontier model delivers
|
|
464
|
+
and self-verifies in one pass** — a broad footprint is normal when the
|
|
465
|
+
change is cohesive. The session-capacity backstop lives in one place:
|
|
466
|
+
`DEFAULT_MODEL_CAPACITY` in
|
|
467
|
+
`.agents/scripts/lib/orchestration/ticket-validator-sizing.js` (framework
|
|
468
|
+
constant — not operator-tunable). Do not re-slice a capability-sized
|
|
480
469
|
Story into per-module fragments just because it touches many files.
|
|
481
470
|
|
|
482
471
|
### A. When You See `⚠️ COMPLEXITY WARNING`
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# CI Failure Triage & Remediation
|
|
2
2
|
|
|
3
3
|
This rule applies when a delivery path is watching a pull request's CI checks
|
|
4
|
-
and a required check is red (or repeatedly slow) — the
|
|
5
|
-
|
|
6
|
-
([`deliver-epic.md`](../workflows/helpers/deliver-epic.md)) and the standalone
|
|
4
|
+
and a required check is red (or repeatedly slow) — the `/deliver` router
|
|
5
|
+
([`deliver.md`](../workflows/deliver.md)) runs each Story through the
|
|
7
6
|
single-Story Step 4 CI watch + fix loop
|
|
8
|
-
([`
|
|
9
|
-
|
|
7
|
+
([`deliver-story.md`](../workflows/helpers/deliver-story.md)), which hands off
|
|
8
|
+
to it. It is the single triage brain that mechanism defers to:
|
|
10
9
|
the watcher (`pr-watch-with-update.js`) surfaces the failing check, the run
|
|
11
10
|
link, and the failure signature; this rule decides what to do next.
|
|
12
11
|
|
|
@@ -50,18 +49,15 @@ path) or surfaces it inline (standalone path) — start from that digest.
|
|
|
50
49
|
A deterministic failure caused by the diff is remediated at source. Use the
|
|
51
50
|
existing per-check fix table — do **not** duplicate it here:
|
|
52
51
|
|
|
53
|
-
- **
|
|
54
|
-
[`deliver-
|
|
55
|
-
(§ 8.1 Remediation).
|
|
56
|
-
- **Standalone Step 4**:
|
|
57
|
-
[`single-story-deliver-reference.md` § Step 4 — CI watch + fix recovery](../workflows/helpers/single-story-deliver-reference.md#step-4--ci-watch--fix-recovery).
|
|
52
|
+
- **Story Step 4**:
|
|
53
|
+
[`deliver-story-reference.md` § Step 4 — CI watch + fix recovery](../workflows/helpers/deliver-story-reference.md#step-4--ci-watch--fix-recovery).
|
|
58
54
|
|
|
59
55
|
In short: lint/format → `npm run lint` + biome apply; maintainability/crap
|
|
60
56
|
baseline drift → re-run the ratcheted script and fix at source (refresh a
|
|
61
57
|
baseline only when the diff demonstrably can't be covered); test failure →
|
|
62
58
|
reproduce with `npm test`, fix source or test; coverage threshold → add tests.
|
|
63
|
-
Commit the fix on the delivery branch (`
|
|
64
|
-
|
|
59
|
+
Commit the fix on the delivery branch (`story-<storyId>`), push, and re-run the
|
|
60
|
+
watcher. Auto-merge stays armed across retries.
|
|
65
61
|
|
|
66
62
|
## Infra, transient, and flaky failures ARE root-cause defects
|
|
67
63
|
|
|
@@ -79,15 +79,14 @@ checkout — reaping its own merged refs and fast-forwarding the base branch.
|
|
|
79
79
|
`/git-cleanup` is a recovery tool, not a routine chore.** The mechanics behind
|
|
80
80
|
that invariant:
|
|
81
81
|
|
|
82
|
-
Every flow that lands work — `/deliver`
|
|
83
|
-
|
|
82
|
+
Every flow that lands work — `/deliver` and `/git-deliver` — is responsible
|
|
83
|
+
for leaving the local checkout tidy without
|
|
84
84
|
operator intervention:
|
|
85
85
|
|
|
86
|
-
- **Fast-forwarding the base branch is owned by the flow.**
|
|
87
|
-
|
|
88
|
-
`git-cleanup.js --fast-forward-main --execute --yes`)
|
|
89
|
-
|
|
90
|
-
ends by telling the operator to "run `/git-cleanup` afterwards to catch up".
|
|
86
|
+
- **Fast-forwarding the base branch is owned by the flow.** `/deliver`
|
|
87
|
+
fast-forwards `main` itself in its cleanup phase (via
|
|
88
|
+
`git-cleanup.js --fast-forward-main --execute --yes`). No workflow ends by
|
|
89
|
+
telling the operator to "run `/git-cleanup` afterwards to catch up".
|
|
91
90
|
- **Reaping merged local refs is owned by the flow's next boot.** `/plan` and
|
|
92
91
|
`/git-deliver` open with a **protected boot sweep**
|
|
93
92
|
(`boot-sweep.js`) that fast-forwards `main`, prunes stale remote-tracking
|
|
@@ -12,28 +12,22 @@ live in the on-demand
|
|
|
12
12
|
**before** doing the matching work; the core below is sufficient for every
|
|
13
13
|
routine commit, branch, and PR.
|
|
14
14
|
|
|
15
|
-
## Canonical Branching (
|
|
16
|
-
|
|
17
|
-
###
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
(e.g., `
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
`story-<storyId>`
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
>
|
|
31
|
-
> (Epic → Story), Stories have no child tickets. Commits
|
|
32
|
-
> land on `story-<storyId>` directly from the agent and the
|
|
33
|
-
> Conventional Commit subject references the parent Story via
|
|
34
|
-
> `(refs #<storyId>)`. See
|
|
35
|
-
> [`.agents/instructions.md` § 5.D](../instructions.md) for the
|
|
36
|
-
> full hierarchy contract.
|
|
15
|
+
## Canonical Branching (v2)
|
|
16
|
+
|
|
17
|
+
### Story branch → PR → main
|
|
18
|
+
|
|
19
|
+
Every Story lands on a dedicated **Story branch** named `story-<storyId>`
|
|
20
|
+
(e.g., `story-104`), seeded from `project.baseBranch` (`main` by default).
|
|
21
|
+
The runtime owns branch creation via `single-story-init.js`; agents commit
|
|
22
|
+
on that branch only. Close opens a PR against `main` (squash + required
|
|
23
|
+
checks). There is **no** `epic/<id>` integration branch and no `--no-ff`
|
|
24
|
+
wave merge.
|
|
25
|
+
|
|
26
|
+
> **Commit subjects.** Stories have no child tickets. Commits land on
|
|
27
|
+
> `story-<storyId>` directly from the agent and the Conventional Commit
|
|
28
|
+
> subject references the Story via `(refs #<storyId>)`. See
|
|
29
|
+
> [`.agents/instructions.md` § 5.D](../instructions.md) for the hierarchy
|
|
30
|
+
> contract.
|
|
37
31
|
|
|
38
32
|
## Conventional Commits
|
|
39
33
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "acceptance-eval-verdict",
|
|
4
4
|
"title": "Acceptance Self-Eval Verdict",
|
|
5
|
-
"description": "Structured output of one independent (fresh-context) acceptance self-eval round (Story #3819). Produced by the critic pass in the Story-implementation phase (helpers/
|
|
5
|
+
"description": "Structured output of one independent (fresh-context) acceptance self-eval round (Story #3819). Produced by the critic pass in the Story-implementation phase (helpers/deliver-story.md Step 1a), written under the gitignored temp tree, and consumed by acceptance-eval.js to enforce the bounded round cap and decide whether the Story proceeds to `closing`, redrafts, or escalates to `agent::blocked`. The author MUST NOT be the evaluator — the verdict is an independent judgment of the working diff against each inline acceptance[] item.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": ["storyId", "schemaVersion", "round", "criteria"],
|
|
8
8
|
"properties": {
|