mandrel 1.93.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/acceptance-critic.md +129 -0
- package/.agents/agents/story-worker.md +161 -0
- package/.agents/docs/SDLC.md +489 -1285
- package/.agents/docs/agentrc-reference.json +177 -67
- package/.agents/docs/configuration.md +108 -136
- package/.agents/docs/execution-reference.md +44 -22
- package/.agents/docs/quality-gates.md +13 -19
- package/.agents/docs/workflows.md +3 -3
- package/.agents/instructions.md +107 -108
- package/.agents/rules/ci-remediation.md +8 -12
- package/.agents/rules/git-conventions-reference.md +224 -0
- package/.agents/rules/git-conventions.md +42 -223
- package/.agents/rules/security-baseline.md +5 -0
- package/.agents/rules/testing-standards.md +106 -13
- package/.agents/schemas/acceptance-eval-verdict.schema.json +1 -1
- package/.agents/schemas/agentrc.schema.json +71 -201
- 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/acceptance-eval.js +62 -18
- package/.agents/scripts/agents-bootstrap-github.js +1 -1
- 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-context-budget.js +62 -5
- 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/diagnose-friction.js +0 -6
- 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/bootstrap/project-bootstrap.js +56 -18
- 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 +160 -22
- package/.agents/scripts/lib/config/acceptance-eval.js +52 -5
- package/.agents/scripts/lib/config/ci.js +6 -31
- package/.agents/scripts/lib/config/delivery-routing.js +103 -0
- package/.agents/scripts/lib/config/explain.js +57 -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 +3 -8
- package/.agents/scripts/lib/config-settings-schema-delivery.js +46 -136
- package/.agents/scripts/lib/config-settings-schema-quality.js +17 -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 +39 -4
- 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 +112 -3
- package/.agents/scripts/lib/observability/hook-heartbeat.js +187 -0
- package/.agents/scripts/lib/observability/source-classifier.js +3 -3
- package/.agents/scripts/lib/observability/tool-trace-hook.js +15 -4
- package/.agents/scripts/lib/onboard/init-tail.js +1 -3
- package/.agents/scripts/lib/orchestration/acceptance-clusters.js +111 -0
- package/.agents/scripts/lib/orchestration/acceptance-eval-decision.js +32 -4
- package/.agents/scripts/lib/orchestration/audit-lens-routing.js +128 -0
- package/.agents/scripts/lib/orchestration/bookkeeping-outbox.js +273 -0
- package/.agents/scripts/lib/orchestration/ceremony-routing.js +204 -0
- 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-critic-conditions.js +3 -2
- 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 +14 -14
- 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/close-validation.js +1 -0
- 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 +3 -8
- 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/provider-factory.js +1 -1
- 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/post-structured-comment.js +38 -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/sync-claude-agents.js +165 -0
- package/.agents/scripts/update-ticket-state.js +37 -15
- package/.agents/skills/core/analyze-execution/SKILL.md +21 -18
- package/.agents/skills/core/api-and-interface-design/SKILL.md +5 -3
- package/.agents/skills/core/code-review-and-quality/SKILL.md +63 -7
- package/.agents/skills/core/debugging-and-error-recovery/SKILL.md +1 -1
- package/.agents/skills/core/gates-and-baselines/SKILL.md +149 -0
- package/.agents/skills/core/idea-refinement/SKILL.md +8 -14
- package/.agents/skills/core/qa-coverage-mapping/SKILL.md +7 -7
- package/.agents/skills/core/scope-triage/SKILL.md +28 -172
- package/.agents/skills/skills.index.json +8 -418
- 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 -131
- 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 +52 -40
- 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/mandrel-sync-config.md +1 -1
- 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 +3 -2
- 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 +46 -0
- package/lib/cli/registry.js +95 -0
- package/lib/migrations/index.js +6 -5
- package/package.json +5 -3
- package/.agents/personas/architect.md +0 -113
- package/.agents/personas/devops-engineer.md +0 -38
- package/.agents/personas/engineer-mobile.md +0 -120
- package/.agents/personas/engineer-web.md +0 -111
- package/.agents/personas/engineer.md +0 -119
- package/.agents/personas/product.md +0 -94
- package/.agents/personas/project-manager.md +0 -114
- package/.agents/personas/qa-engineer.md +0 -95
- package/.agents/personas/refactorer.md +0 -113
- package/.agents/personas/security-engineer.md +0 -112
- package/.agents/personas/sre.md +0 -86
- package/.agents/personas/technical-writer.md +0 -101
- package/.agents/personas/ux-designer.md +0 -95
- package/.agents/schemas/dispatch-manifest.json +0 -232
- package/.agents/schemas/epic-spec.schema.json +0 -153
- package/.agents/scripts/acceptance-spec-reconciler.js +0 -642
- 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 -590
- package/.agents/scripts/epic-execute-record-wave.js +0 -449
- package/.agents/scripts/epic-plan-clarity.js +0 -211
- package/.agents/scripts/epic-plan-decompose.js +0 -54
- package/.agents/scripts/epic-plan-healthcheck.js +0 -581
- package/.agents/scripts/epic-plan-spec.js +0 -64
- 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 -660
- 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 -388
- 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-story-dispatch-end.js +0 -147
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/acceptance-reconciler.js +0 -384
- 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 -278
- 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/skill-capsule-loader.js +0 -109
- 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 -301
- 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/plan-critics.js +0 -199
- package/.agents/scripts/retro-run.js +0 -218
- 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 -335
- package/.agents/skills/core/baseline-refresh/SKILL.md +0 -181
- package/.agents/skills/core/ci-cd-and-automation/SKILL.md +0 -274
- package/.agents/skills/core/ci-cd-and-automation/examples.md +0 -211
- package/.agents/skills/core/code-simplification/SKILL.md +0 -389
- package/.agents/skills/core/context-engineering/SKILL.md +0 -309
- package/.agents/skills/core/context-engineering/examples.md +0 -58
- package/.agents/skills/core/deprecation-and-migration/SKILL.md +0 -250
- 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 -413
- package/.agents/skills/core/epic-plan-spec-author/examples.md +0 -91
- package/.agents/skills/core/frontend-ui-engineering/SKILL.md +0 -357
- package/.agents/skills/core/hydrate-context/SKILL.md +0 -123
- package/.agents/skills/core/idea-refinement/examples.md +0 -437
- package/.agents/skills/core/idea-refinement/frameworks.md +0 -135
- package/.agents/skills/core/incremental-implementation/SKILL.md +0 -271
- package/.agents/skills/core/introducing-a-baseline-gate/SKILL.md +0 -213
- package/.agents/skills/core/knowledge-transfer/SKILL.md +0 -180
- package/.agents/skills/core/mutation-survivor-remediation/SKILL.md +0 -117
- package/.agents/skills/core/performance-optimization/SKILL.md +0 -314
- package/.agents/skills/core/planning-and-task-breakdown/SKILL.md +0 -277
- package/.agents/skills/core/property-based-testing/SKILL.md +0 -148
- package/.agents/skills/core/refactoring-discipline/SKILL.md +0 -111
- package/.agents/skills/core/shipping-and-launch/SKILL.md +0 -328
- package/.agents/skills/core/spec-driven-development/SKILL.md +0 -252
- package/.agents/skills/core/test-driven-development/SKILL.md +0 -475
- package/.agents/skills/core/using-agent-skills/SKILL.md +0 -232
- package/.agents/skills/stack/architecture/monorepo-path-strategist/SKILL.md +0 -31
- package/.agents/skills/stack/architecture/structured-output-zod/SKILL.md +0 -51
- package/.agents/skills/stack/architecture/subagent-orchestration/SKILL.md +0 -76
- package/.agents/skills/stack/backend/cloudflare-hono-architect/SKILL.md +0 -31
- package/.agents/skills/stack/backend/cloudflare-hono-architect/examples/route-template.ts +0 -33
- package/.agents/skills/stack/backend/cloudflare-queue-manager/SKILL.md +0 -31
- package/.agents/skills/stack/backend/cloudflare-workers/SKILL.md +0 -51
- package/.agents/skills/stack/backend/highlevel-crm/SKILL.md +0 -54
- package/.agents/skills/stack/backend/sqlite-drizzle-expert/SKILL.md +0 -29
- package/.agents/skills/stack/backend/sqlite-drizzle-expert/examples/schema-template.ts +0 -30
- package/.agents/skills/stack/backend/stripe-integration/SKILL.md +0 -57
- package/.agents/skills/stack/backend/stripe-integration/scripts/listen-stripe.sh +0 -9
- package/.agents/skills/stack/backend/turso-sqlite/SKILL.md +0 -48
- package/.agents/skills/stack/frontend/astro/SKILL.md +0 -62
- package/.agents/skills/stack/frontend/astro-react-island-strategist/SKILL.md +0 -30
- package/.agents/skills/stack/frontend/expo-react-native-developer/SKILL.md +0 -29
- package/.agents/skills/stack/frontend/google-analytics-v4/SKILL.md +0 -50
- package/.agents/skills/stack/frontend/tailwind-v4/SKILL.md +0 -58
- package/.agents/skills/stack/frontend/ui-accessibility-engineer/SKILL.md +0 -34
- package/.agents/skills/stack/qa/audit-accessibility/SKILL.md +0 -51
- package/.agents/skills/stack/qa/lighthouse-baseline/SKILL.md +0 -199
- package/.agents/skills/stack/security/backend-security-patterns/SKILL.md +0 -68
- package/.agents/workflows/helpers/deliver-epic-reference.md +0 -534
- package/.agents/workflows/helpers/deliver-epic.md +0 -955
- package/.agents/workflows/helpers/deliver-stories.md +0 -440
- package/.agents/workflows/helpers/epic-audit.md +0 -189
- package/.agents/workflows/helpers/epic-deliver-story.md +0 -427
- 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 -351
- 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
|
@@ -47,10 +47,10 @@ generator", not "edit the doc". Auto-generated changelog files
|
|
|
47
47
|
(`docs/CHANGELOG.md`, release-please-owned) are likewise excluded from
|
|
48
48
|
semantic review beyond Step 1's deterministic checks.
|
|
49
49
|
|
|
50
|
-
## Scope (
|
|
50
|
+
## Scope (Story / plan-run mode)
|
|
51
51
|
|
|
52
|
-
When this lens is invoked from `/deliver`
|
|
53
|
-
following block is populated with the
|
|
52
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
53
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
54
54
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
55
55
|
renders the literal substitution token and you MUST treat it as **no
|
|
56
56
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -174,7 +174,7 @@ and check each one:
|
|
|
174
174
|
renames).
|
|
175
175
|
3. **Workflow & Contract Descriptions:** Described workflows, label
|
|
176
176
|
taxonomies (`agent::*`, `type::*`, `meta::*`), branch shapes
|
|
177
|
-
(`story-<id
|
|
177
|
+
(`story-<id>`), and artifact contracts match how the
|
|
178
178
|
current scripts actually behave — read the implementation when the
|
|
179
179
|
prose makes a behavioural claim.
|
|
180
180
|
4. **Version & Topology Claims:** Version numbers, package names, release
|
|
@@ -293,7 +293,7 @@ recurring cadence so the drift is caught before it compounds:
|
|
|
293
293
|
Route the resulting `audit-documentation-results.md` through
|
|
294
294
|
[`/audit-to-stories`](audit-to-stories.md), which groups the findings,
|
|
295
295
|
deduplicates them against existing Issues by fingerprint, and opens
|
|
296
|
-
remediation Stories (or chains into `/plan --
|
|
296
|
+
remediation Stories (or chains into `/plan --seed`) so the Context-Economy
|
|
297
297
|
findings land as actionable, tracked work rather than a report nobody reads.
|
|
298
298
|
|
|
299
299
|
## Constraint
|
|
@@ -30,10 +30,10 @@ inflate Performance scores misleadingly.
|
|
|
30
30
|
(check `viewport` meta, responsive CSS, or operator instruction), run
|
|
31
31
|
**Mobile** instead and note the choice in the report.
|
|
32
32
|
|
|
33
|
-
## Scope (
|
|
33
|
+
## Scope (Story / plan-run mode)
|
|
34
34
|
|
|
35
|
-
When this lens is invoked from `/deliver`
|
|
36
|
-
following block is populated with the
|
|
35
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
36
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
37
37
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
38
38
|
renders the literal substitution token and you MUST treat it as **no
|
|
39
39
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -61,8 +61,9 @@ Read the consumer's navigability config (resolved from `.agentrc.json`):
|
|
|
61
61
|
|
|
62
62
|
- `delivery.quality.navigability.routeGlobs` — globs identifying the
|
|
63
63
|
route-adding files / route tree (e.g. `pages/**`, `app/**/route.ts`). Drives
|
|
64
|
-
both the route-tree enumeration here and the
|
|
65
|
-
|
|
64
|
+
both the route-tree enumeration here and the plan-persist draft
|
|
65
|
+
reachability gate
|
|
66
|
+
([`plan-reachability.js`](../scripts/lib/orchestration/plan-reachability.js)).
|
|
66
67
|
- `delivery.quality.navigability.navRegistry` — path(s) to the consumer's
|
|
67
68
|
nav-registry SSOT this lens reads.
|
|
68
69
|
|
|
@@ -14,10 +14,10 @@ Analyze the application for performance regressions, bottlenecks, and efficiency
|
|
|
14
14
|
gaps. Your goal is to identify why a system is slow or where it might fail under
|
|
15
15
|
load.
|
|
16
16
|
|
|
17
|
-
## Scope (
|
|
17
|
+
## Scope (Story / plan-run mode)
|
|
18
18
|
|
|
19
|
-
When this lens is invoked from `/deliver`
|
|
20
|
-
following block is populated with the
|
|
19
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
20
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
21
21
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
22
22
|
renders the literal substitution token and you MUST treat it as **no
|
|
23
23
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -15,10 +15,10 @@ Personally Identifiable Information (PII) and ensure compliance with data
|
|
|
15
15
|
protection standards (GDPR, CCPA). Your goal is to find accidental logging,
|
|
16
16
|
insecure storage, or unnecessary collection of sensitive data.
|
|
17
17
|
|
|
18
|
-
## Scope (
|
|
18
|
+
## Scope (Story / plan-run mode)
|
|
19
19
|
|
|
20
|
-
When this lens is invoked from `/deliver`
|
|
21
|
-
following block is populated with the
|
|
20
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
21
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
22
22
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
23
23
|
renders the literal substitution token and you MUST treat it as **no
|
|
24
24
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -24,10 +24,10 @@ and integration test coverage alongside their feature implementations. The QA
|
|
|
24
24
|
Engineering function focuses on End-to-End (E2E) testing, complex system
|
|
25
25
|
integrations, and test environment stability.
|
|
26
26
|
|
|
27
|
-
## Scope (
|
|
27
|
+
## Scope (Story / plan-run mode)
|
|
28
28
|
|
|
29
|
-
When this lens is invoked from `/deliver`
|
|
30
|
-
following block is populated with the
|
|
29
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
30
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
31
31
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
32
32
|
renders the literal substitution token and you MUST treat it as **no
|
|
33
33
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -15,10 +15,10 @@ Conduct a comprehensive security review of the codebase. Your goal is to
|
|
|
15
15
|
identify common vulnerabilities (OWASP Top 10), insecure configurations, and
|
|
16
16
|
potential attack vectors.
|
|
17
17
|
|
|
18
|
-
## Scope (
|
|
18
|
+
## Scope (Story / plan-run mode)
|
|
19
19
|
|
|
20
|
-
When this lens is invoked from `/deliver`
|
|
21
|
-
following block is populated with the
|
|
20
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
21
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
22
22
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
23
23
|
renders the literal substitution token and you MUST treat it as **no
|
|
24
24
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -18,10 +18,10 @@ codebase. Your goal is to surface structural, semantic, and content-level
|
|
|
18
18
|
improvements that will increase discoverability in both traditional search
|
|
19
19
|
indexes and AI-powered answer engines — without making any immediate changes.
|
|
20
20
|
|
|
21
|
-
## Scope (
|
|
21
|
+
## Scope (Story / plan-run mode)
|
|
22
22
|
|
|
23
|
-
When this lens is invoked from `/deliver`
|
|
24
|
-
following block is populated with the
|
|
23
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
24
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
25
25
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
26
26
|
renders the literal substitution token and you MUST treat it as **no
|
|
27
27
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -15,10 +15,10 @@ release candidate. Your goal is to surface critical risks across configuration
|
|
|
15
15
|
integrity, security, observability, and code quality — providing a prioritized,
|
|
16
16
|
actionable report that can be handed off for remediation before deployment.
|
|
17
17
|
|
|
18
|
-
## Scope (
|
|
18
|
+
## Scope (Story / plan-run mode)
|
|
19
19
|
|
|
20
|
-
When this lens is invoked from `/deliver`
|
|
21
|
-
following block is populated with the
|
|
20
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
21
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
22
22
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
23
23
|
renders the literal substitution token and you MUST treat it as **no
|
|
24
24
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -3,7 +3,7 @@ description:
|
|
|
3
3
|
Convert findings produced by the audit-* workflows into actionable
|
|
4
4
|
GitHub Stories. Reads temp/audits/audit-*-results.md, groups findings
|
|
5
5
|
cross-audit, deduplicates against existing Issues by fingerprint, and
|
|
6
|
-
either chains into /plan --
|
|
6
|
+
either chains into /plan --seed-file or opens standalone Stories.
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# /audit-to-stories [audit-file-or-glob]
|
|
@@ -22,8 +22,8 @@ Dimension / Category, Current State, Recommendation, Agent Prompt).
|
|
|
22
22
|
`/audit-to-stories` closes the loop: it parses those reports, groups
|
|
23
23
|
related findings (including across audit dimensions), classifies each
|
|
24
24
|
group as eligible-to-create or already-tracked, and — at the operator's
|
|
25
|
-
choice — either chains into `/plan --
|
|
26
|
-
|
|
25
|
+
choice — either chains into `/plan --seed-file` for a planned Story
|
|
26
|
+
(or N>1 under the split policy) or opens standalone Stories directly.
|
|
27
27
|
|
|
28
28
|
The audit producers themselves are **not modified** by this workflow.
|
|
29
29
|
They remain read-only emitters of audit reports.
|
|
@@ -117,23 +117,23 @@ Ask:
|
|
|
117
117
|
|
|
118
118
|
> How would you like these `<M>` Stories created?
|
|
119
119
|
>
|
|
120
|
-
> - **Single
|
|
121
|
-
>
|
|
122
|
-
>
|
|
123
|
-
>
|
|
120
|
+
> - **Single plan via `/plan`** **[Recommended]** — chains into
|
|
121
|
+
> `/plan --seed-file <emitted.md>` so the standard Story authoring
|
|
122
|
+
> handles the seed. Prefer one Story; split only under the
|
|
123
|
+
> default-single policy.
|
|
124
124
|
> - **Individual standalone Stories** — opens one GitHub Issue per
|
|
125
|
-
> group directly
|
|
125
|
+
> group directly (no plan ceremony).
|
|
126
126
|
|
|
127
127
|
**STOP** until the operator picks.
|
|
128
128
|
|
|
129
|
-
## Phase 5a — Single-
|
|
129
|
+
## Phase 5a — Single-plan path
|
|
130
130
|
|
|
131
|
-
Build the `/plan`
|
|
131
|
+
Build the `/plan` seed from the filtered plan envelope:
|
|
132
132
|
|
|
133
133
|
```bash
|
|
134
|
-
node .agents/scripts/audit-to-stories.js --emit-
|
|
134
|
+
node .agents/scripts/audit-to-stories.js --emit-plan-seed \
|
|
135
135
|
--plan temp/audits/audit-to-stories-plan.json \
|
|
136
|
-
--out "temp/audits/audit-
|
|
136
|
+
--out "temp/audits/audit-plan-seed-$(date +%Y%m%dT%H%M%S).md"
|
|
137
137
|
```
|
|
138
138
|
|
|
139
139
|
The seed renders the canonical one-pager sections — Problem Statement,
|
|
@@ -144,11 +144,11 @@ authoring step has concrete anchors), Not Doing.
|
|
|
144
144
|
Chain into the existing planning entrypoint:
|
|
145
145
|
|
|
146
146
|
```text
|
|
147
|
-
/plan --
|
|
147
|
+
/plan --seed-file <path-to-seed>
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
-
`/plan
|
|
151
|
-
persist
|
|
150
|
+
(`/plan --seed "$(cat <path>)"` also works for small seeds). `/plan`
|
|
151
|
+
then runs its author → persist path, as documented in its workflow.
|
|
152
152
|
Each Story it spawns from the seed carries `context::audit:
|
|
153
153
|
<reportLink>` and `audit-fingerprint: <sha>` in its body so future
|
|
154
154
|
Phase 6 idempotency works on the next run.
|
|
@@ -220,13 +220,13 @@ Persist `temp/audits/audit-to-stories-$(date +%Y%m%dT%H%M%S).md`
|
|
|
220
220
|
summarising the run:
|
|
221
221
|
|
|
222
222
|
- Per-group breakdown: which findings merged, fingerprints, dependency
|
|
223
|
-
edges, created/skipped Issue link (or
|
|
223
|
+
edges, created/skipped Issue link (or plan-run / Story links).
|
|
224
224
|
- The severity threshold and grouping mode the operator chose.
|
|
225
225
|
- Final tally: `"<M> groups planned · <K> created · <J> skipped (open)
|
|
226
226
|
· <L> skipped (re-occurring)"`.
|
|
227
227
|
|
|
228
|
-
When the
|
|
229
|
-
opened. When the Standalone-Stories path ran, list every Issue URL.
|
|
228
|
+
When the single-plan path ran, link the Story (or plan-run) the chained
|
|
229
|
+
`/plan` opened. When the Standalone-Stories path ran, list every Issue URL.
|
|
230
230
|
|
|
231
231
|
## Constraints
|
|
232
232
|
|
|
@@ -261,8 +261,8 @@ issue 4482.)
|
|
|
261
261
|
|
|
262
262
|
## See also
|
|
263
263
|
|
|
264
|
-
- [`/plan`](
|
|
265
|
-
chains into for
|
|
264
|
+
- [`/plan`](plan.md) — the planning pipeline `/audit-to-stories`
|
|
265
|
+
chains into for Story creation.
|
|
266
266
|
- [`lib/findings/route-finding.js`](../scripts/lib/findings/route-finding.js) —
|
|
267
267
|
the shared fingerprint/dedup/route helper this workflow and `qa-explore`
|
|
268
268
|
both consume. There is no second dedup implementation.
|
|
@@ -14,10 +14,10 @@ Evaluate the frontend implementation for UI consistency, UX best practices, and
|
|
|
14
14
|
adherence to the project's design system. Ensure the application feels premium
|
|
15
15
|
and cohesive.
|
|
16
16
|
|
|
17
|
-
## Scope (
|
|
17
|
+
## Scope (Story / plan-run mode)
|
|
18
18
|
|
|
19
|
-
When this lens is invoked from `/deliver`
|
|
20
|
-
following block is populated with the
|
|
19
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
20
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
21
21
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
22
22
|
renders the literal substitution token and you MUST treat it as **no
|
|
23
23
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -1,157 +1,148 @@
|
|
|
1
1
|
---
|
|
2
2
|
description:
|
|
3
|
-
Unified delivery entry point.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
segment to the Epic wave loop or the standalone multi-Story fan-out —
|
|
7
|
-
preserving every flag and the parallel-delivery contract of the retired
|
|
8
|
-
commands.
|
|
3
|
+
Unified delivery entry point. Delivers one or more Stories via the single
|
|
4
|
+
deliver-story engine — story-<id> → PR → main. Sequences N>1 by depends_on
|
|
5
|
+
and runs the per-run epilogue once at the end.
|
|
9
6
|
---
|
|
10
7
|
|
|
11
|
-
# /deliver
|
|
8
|
+
# /deliver <storyId...> | --run <planRunId>
|
|
12
9
|
|
|
13
10
|
## Role
|
|
14
11
|
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
Single delivery path. `/deliver` owns input resolution and sequencing only —
|
|
13
|
+
every Story runs through
|
|
14
|
+
[`helpers/deliver-story.md`](helpers/deliver-story.md) (the evolved
|
|
15
|
+
single-Story engine). There is no Epic wave loop, no `epic/<id>` integration
|
|
16
|
+
branch, and no `--no-ff` wave merges.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
delivery loop (preflight, wave loop fanning out
|
|
20
|
-
[`helpers/epic-deliver-story`](helpers/epic-deliver-story.md),
|
|
21
|
-
close-validation, epic-audit, code-review, retro, finalize, watch,
|
|
22
|
-
auto-merge gate, cleanup).
|
|
23
|
-
- [`helpers/deliver-stories.md`](helpers/deliver-stories.md) — the
|
|
24
|
-
standalone multi-Story path (`stories-wave-tick.js` continuous ready-set
|
|
25
|
-
loop, operator confirmation, parallel fan-out to
|
|
26
|
-
[`helpers/single-story-deliver`](helpers/single-story-deliver.md)).
|
|
18
|
+
## Inputs
|
|
27
19
|
|
|
28
|
-
|
|
20
|
+
| Invocation | Behavior |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| `/deliver <storyId>` | Deliver one Story via `helpers/deliver-story.md`. |
|
|
23
|
+
| `/deliver <storyId> <storyId> ...` | Sequence Stories in `depends_on` order via `stories-wave-tick.js`; each ready Story runs `deliver-story`. Default concurrency is **3**. |
|
|
24
|
+
| `/deliver --run <planRunId>` | Resolve Stories labeled `plan-run::<planRunId>` (envelope includes `dag` + `done`); sequence as above; after the last Story lands, run the per-run epilogue. |
|
|
29
25
|
|
|
30
|
-
|
|
31
|
-
reference
|
|
26
|
+
Any ticket that is not `type::story`, or that still carries an `Epic: #N`
|
|
27
|
+
reference, is a hard error naming the ID and the fix (close or re-plan as a
|
|
28
|
+
v2 Story).
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
| One or more `type::story` IDs, none carrying an `Epic: #N` reference | **Standalone path** — run [`helpers/deliver-stories.md`](helpers/deliver-stories.md) Phases 0–3 (single-segment plan; no confirmation prompt). |
|
|
37
|
-
| Any combination of ≥1 `type::epic` IDs and ≥0 standalone `type::story` IDs | **Segment plan** — compose and execute the sequential segment plan below. |
|
|
38
|
-
| Any Story carrying an `Epic: #N` reference (alone or mixed into an otherwise-valid set) | **Error**, naming every affected ID and the fix: `Story #<id> belongs to Epic #<n> — run /deliver <n>`. |
|
|
39
|
-
|
|
40
|
-
Per-ID classification is unchanged: fetch the `type::*` label and probe the
|
|
41
|
-
body for an `Epic: #N` reference before routing. Never guess a route.
|
|
42
|
-
|
|
43
|
-
## Segment plan (mixed / multi-Epic input)
|
|
44
|
-
|
|
45
|
-
When the supplied IDs span more than one Epic, or mix Epics with standalone
|
|
46
|
-
Stories, the router composes a **segment plan** and executes the segments
|
|
47
|
-
**strictly sequentially**:
|
|
48
|
-
|
|
49
|
-
1. **Standalone segment first** (when any standalone Story IDs are
|
|
50
|
-
present): the full standalone-Story set forms **one** segment,
|
|
51
|
-
delivered via [`helpers/deliver-stories.md`](helpers/deliver-stories.md)
|
|
52
|
-
Phases 0–3 unchanged. It runs first because it is fast, each Story
|
|
53
|
-
merges to `main` independently, and each subsequent Epic segment's
|
|
54
|
-
Phase 7.0 base-sync then integrates those merges naturally instead of
|
|
55
|
-
the Epic PR opening behind base.
|
|
56
|
-
2. **Epic segments in input order**: each `type::epic` ID forms its own
|
|
57
|
-
segment, delivered via
|
|
58
|
-
[`helpers/deliver-epic.md`](helpers/deliver-epic.md) Phases 1–9
|
|
59
|
-
unchanged.
|
|
60
|
-
|
|
61
|
-
Sequential execution is a deliberate design decision: the Epic path assumes
|
|
62
|
-
a single main checkout (prepare's checkout guard, Phase 7.0
|
|
63
|
-
`git checkout epic/<id>`), holds a per-Epic lease, serializes same-machine
|
|
64
|
-
sessions via `epic-merge-lock.js`, and constrains dispatch to one wave at a
|
|
65
|
-
time. Segments are never interleaved or parallelized; running them one at a
|
|
66
|
-
time keeps both helpers' machinery untouched.
|
|
67
|
-
|
|
68
|
-
**Confirmation gate.** When the composed plan has more than one segment,
|
|
69
|
-
present it to the operator before dispatching — the segments, the IDs in
|
|
70
|
-
each, and the execution order — and wait for confirmation. `--yes`
|
|
71
|
-
suppresses this prompt. Single-segment plans route directly with today's
|
|
72
|
-
behavior (no new prompt; the standalone path's own Phase 1 confirmation
|
|
73
|
-
still applies as before).
|
|
74
|
-
|
|
75
|
-
**Failure policy.** A segment that ends non-complete (blocked, failed, or
|
|
76
|
-
halted at a gate) **stops the run** — no subsequent segment dispatches.
|
|
77
|
-
Report the terminal state: which segments completed, which segment halted
|
|
78
|
-
(and why), and which segments never started. Name the resume command:
|
|
79
|
-
re-running `/deliver` with the same IDs — both path helpers short-circuit
|
|
80
|
-
already-done work (the Epic path resumes idempotently from its checkpoint;
|
|
81
|
-
merged standalone Stories no-op).
|
|
82
|
-
|
|
83
|
-
## Flags (scoped per segment)
|
|
84
|
-
|
|
85
|
-
| Path | Flags |
|
|
30
|
+
## Flags
|
|
31
|
+
|
|
32
|
+
| Flag | Meaning |
|
|
86
33
|
| --- | --- |
|
|
87
|
-
|
|
|
88
|
-
|
|
|
34
|
+
| `--run <planRunId>` | Deliver every Story in the plan-run (label `plan-run::<id>`). |
|
|
35
|
+
| `--dep <from>:<to>` | Extra operator dependency edge (Story id → Story id). |
|
|
36
|
+
| `--concurrency <n>` | Ready-set fan-out cap (default **3** from `delivery.deliverRunner.concurrencyCap`; set `1` for sequential). |
|
|
37
|
+
| `--yes` | Suppress the multi-Story confirmation gate. |
|
|
38
|
+
| `--steal` | Forwarded to `single-story-init.js` / lease steal. |
|
|
39
|
+
| `--wait-merge` | Force close-and-land (default when `delivery.routing.closeAndLand` is true). |
|
|
40
|
+
| `--no-wait-merge` | Opt out of close-and-land; stop at `agent::closing` for a human land. |
|
|
41
|
+
|
|
42
|
+
## Procedure
|
|
43
|
+
|
|
44
|
+
1. **Resolve the Story set.**
|
|
45
|
+
- Positional IDs → use them.
|
|
46
|
+
- `--run <planRunId>` →
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
node .agents/scripts/resolve-plan-run.js --run <planRunId>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Capture `stories[]`, `dag[]`, and `done[]` from the envelope. Prefer
|
|
53
|
+
the emitted `dag` — do **not** rebuild it by hand when `--run` was used.
|
|
54
|
+
|
|
55
|
+
2. **Build the DAG (positional only).** When delivering positional IDs
|
|
56
|
+
(no `--run`), read `depends_on` / `blocked by` from each body and merge
|
|
57
|
+
`--dep` edges into a JSON DAG for `stories-wave-tick.js`:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
[{ "id": 101, "dependsOn": [] }, { "id": 102, "dependsOn": [101] }]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
3. **Confirm (N>1).** Present the order and wait unless `--yes`.
|
|
89
64
|
|
|
90
|
-
|
|
91
|
-
Story-path flags apply to the standalone segment. `--yes` additionally
|
|
92
|
-
suppresses the router's segment-plan confirmation gate above. A flag with
|
|
93
|
-
no applicable segment in the plan is reported once as a no-op warning and
|
|
94
|
-
ignored — never an error (the existing convention, restated for segment
|
|
95
|
-
plans).
|
|
65
|
+
4. **Sequence.** Loop until every Story is done:
|
|
96
66
|
|
|
97
|
-
|
|
67
|
+
```bash
|
|
68
|
+
node .agents/scripts/stories-wave-tick.js \
|
|
69
|
+
--dag '<json>' --done <csv> --in-flight <n> --concurrency <n>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
For each `ready` Story id, read
|
|
73
|
+
[`helpers/deliver-story.md`](helpers/deliver-story.md) **in full** and
|
|
74
|
+
execute it (init → implement → ceremony → close-and-land). Under
|
|
75
|
+
`--yes` / injected helper content, execute directly without a re-read
|
|
76
|
+
turn.
|
|
77
|
+
|
|
78
|
+
5. **Per-run epilogue (N>1).** After the last Story lands:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Plan-run label path:
|
|
82
|
+
node .agents/scripts/plan-run-epilogue.js --run <planRunId>
|
|
83
|
+
|
|
84
|
+
# Positional multi-Story path (synthesizes an adhoc planRunId):
|
|
85
|
+
node .agents/scripts/plan-run-epilogue.js --stories 101,102
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
This executes, in order:
|
|
89
|
+
- `audit-roster` — selects cross-Story audit lenses over the combined
|
|
90
|
+
landed tip and posts `plan-run-audit-roster` on the primary Story;
|
|
91
|
+
the host MUST walk each listed lens against the combined diff
|
|
92
|
+
- `follow-up-rollup` — friction follow-ups across every Story in the
|
|
93
|
+
run (files issues when auto-file is on; posts `follow-ups`)
|
|
94
|
+
- `sibling-coherence` — Spec/Acceptance coherence check across sibling
|
|
95
|
+
bodies (`plan-run-sibling-coherence`)
|
|
96
|
+
|
|
97
|
+
A single-Story run skips the epilogue — follow-ups are captured on
|
|
98
|
+
merge confirm instead (`captureStoryFollowUps`).
|
|
99
|
+
|
|
100
|
+
## Branch model (authoritative)
|
|
101
|
+
|
|
102
|
+
Every Story:
|
|
98
103
|
|
|
99
104
|
```text
|
|
100
|
-
|
|
105
|
+
story-<id> → PR → main (squash + required checks)
|
|
101
106
|
```
|
|
102
107
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
[`helpers/single-story-deliver`](helpers/single-story-deliver.md) — but
|
|
107
|
-
schedules through `stories-wave-tick.js`'s **continuous ready-set loop**
|
|
108
|
-
(the shared `selectReadySet` core) rather than a static wave plan: each
|
|
109
|
-
Story dispatches the instant its own dependencies are done, capped by the
|
|
110
|
-
resolved global `concurrencyCap` and guarded against file-overlap
|
|
111
|
-
co-dispatch, exactly as the Epic path is. The parallelism lives **inside**
|
|
112
|
-
the standalone segment; segments themselves remain strictly sequential.
|
|
108
|
+
There is no `epic/<id>` integration branch and no `--no-ff` wave merge.
|
|
109
|
+
Dependent Stories land sequentially so each builds on the previous merge
|
|
110
|
+
to `main`.
|
|
113
111
|
|
|
114
|
-
##
|
|
112
|
+
## Ceremony (profiles + two scopes)
|
|
113
|
+
|
|
114
|
+
Ceremony depth is selected by `delivery.routing.ceremonyProfile`
|
|
115
|
+
(`minimal` | `standard` | `strict`, default `standard`) and the Story's
|
|
116
|
+
planning risk:
|
|
117
|
+
|
|
118
|
+
| Profile | Acceptance critic | When to use |
|
|
119
|
+
| --- | --- | --- |
|
|
120
|
+
| `minimal` | Always inline | Tiny trusted N=1 Stories |
|
|
121
|
+
| `standard` | Risk-routed (+ sampling floor) | Default |
|
|
122
|
+
| `strict` | Always fresh-context | High-assurance / regulated surfaces |
|
|
115
123
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
multi-segment plan, present it and wait for operator confirmation
|
|
123
|
-
(`--yes` suppresses).
|
|
124
|
-
4. **Execute segments sequentially.** For each segment in order, read the
|
|
125
|
-
selected path helper **in full** and execute it from its entry phase,
|
|
126
|
-
forwarding the segment's scoped flags. The helper's phase numbering,
|
|
127
|
-
watchdogs, gates, and scripts are unchanged — this router adds no phase
|
|
128
|
-
content. Stop on the first non-complete segment per the failure policy.
|
|
129
|
-
5. **Report.** On completion (or halt), summarize per-segment outcomes and,
|
|
130
|
-
when halted, the resume command.
|
|
124
|
+
| Scope | What runs | Mechanism |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| **Per-Story (always)** | Gates, branch discipline, close-and-land | `deliver-story` / `single-story-close` |
|
|
127
|
+
| **Per-Story (profile + risk)** | Acceptance critic mode; review depth; audit lenses | `ceremony-routing.js` + `review-depth.js` + `code-review.js` |
|
|
128
|
+
| **Per-run (N>1)** | Audit roster · follow-up roll-up · sibling coherence | `plan-run-epilogue.js` once at run end |
|
|
129
|
+
| **Per-Story land** | Actionable follow-ups from friction | `captureStoryFollowUps` in confirm-merge |
|
|
131
130
|
|
|
132
131
|
## Constraints
|
|
133
132
|
|
|
134
|
-
- **Land or block — never a silent local build
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
- `/deliver` requires planned tickets: Epics at `agent::ready` (the
|
|
143
|
-
Epic helper's preflight enforces this, per segment) or well-formed
|
|
144
|
-
standalone Stories. Planning happens in [`/plan`](plan.md); the
|
|
145
|
-
plan-review gate between the two commands is a hard boundary.
|
|
146
|
-
- The router performs no git or label mutations itself; the path helpers
|
|
147
|
-
own every script invocation.
|
|
148
|
-
- Segments execute strictly sequentially — never interleave a standalone
|
|
149
|
-
Story fan-out with an Epic wave loop, and never run two Epic segments
|
|
150
|
-
concurrently.
|
|
133
|
+
- **Land or block — never a silent local build.** Worktrees, `story-<id>`
|
|
134
|
+
branches, close-validation, and PR-to-`main` are the only sanctioned
|
|
135
|
+
delivery mechanism. Attended delivers default to close-and-land
|
|
136
|
+
(`delivery.routing.closeAndLand: true`); use `--no-wait-merge` only when
|
|
137
|
+
a human will land the PR.
|
|
138
|
+
- `/deliver` never plans — tickets come from [`/plan`](plan.md).
|
|
139
|
+
- The router performs no git/label mutations; `deliver-story` owns every
|
|
140
|
+
script invocation per Story.
|
|
151
141
|
|
|
152
142
|
## See also
|
|
153
143
|
|
|
154
|
-
- [`/plan`](plan.md) —
|
|
155
|
-
- [`helpers/deliver-
|
|
156
|
-
|
|
157
|
-
|
|
144
|
+
- [`/plan`](plan.md) — unified planning entry point.
|
|
145
|
+
- [`helpers/deliver-story.md`](helpers/deliver-story.md) — the one Story
|
|
146
|
+
delivery engine.
|
|
147
|
+
- Placeholder design Story for a fully deterministic deliver-run
|
|
148
|
+
orchestrator: [#4521](https://github.com/dsj1984/mandrel/issues/4521).
|
|
@@ -226,10 +226,9 @@ The merged-branch sweep recognizes three detection signals, in order:
|
|
|
226
226
|
`git merge-tree --write-tree <base> <branch>` (git ≥ 2.38) produces a
|
|
227
227
|
tree identical to `<base>`'s own tree — i.e. applying the branch's
|
|
228
228
|
changes on top of `<base>` is a content no-op. This catches
|
|
229
|
-
`story-<id>` branches merged
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
other branch whose content landed via a different route (a renamed
|
|
229
|
+
`story-<id>` branches whose PR **squash-merged** to `main` (the story
|
|
230
|
+
commits are not ancestors of `main`), and any other branch whose content
|
|
231
|
+
landed via a different route (a renamed
|
|
233
232
|
head, a cherry-pick, a manual `merge --squash`). When git rejects
|
|
234
233
|
`--write-tree` (git < 2.38) or the simulated merge conflicts, the
|
|
235
234
|
probe is inconclusive and the branch keeps its existing `not-merged`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Merge Conflict Resolution — Shared Procedure
|
|
2
2
|
|
|
3
3
|
Canonical, workflow-agnostic procedure for resolving merge / rebase conflicts.
|
|
4
|
-
Referenced by `deliver
|
|
4
|
+
Referenced by `deliver.md` and `helpers/deliver-story.md`.
|
|
5
5
|
|
|
6
6
|
## Procedure
|
|
7
7
|
|