mandrel 1.94.0 → 2.1.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 +116 -99
- package/.agents/agents/acceptance-critic.md +9 -7
- package/.agents/agents/story-worker.md +45 -51
- package/.agents/audit-checklists/performance.md +1 -1
- package/.agents/docs/SDLC.md +498 -1287
- package/.agents/docs/agentrc-reference.json +185 -80
- package/.agents/docs/configuration.md +132 -190
- package/.agents/docs/execution-reference.md +51 -25
- package/.agents/docs/quality-gates.md +25 -33
- package/.agents/docs/workflows.md +8 -8
- package/.agents/instructions.md +113 -139
- package/.agents/rules/ci-remediation.md +11 -15
- package/.agents/rules/git-conventions-reference.md +48 -58
- package/.agents/rules/git-conventions.md +16 -22
- package/.agents/schemas/acceptance-eval-verdict.schema.json +1 -1
- package/.agents/schemas/agentrc.schema.json +83 -254
- package/.agents/schemas/audit-rules.json +59 -1
- package/.agents/schemas/audit-rules.schema.json +33 -1
- package/.agents/schemas/lifecycle/README.md +1 -2
- package/.agents/schemas/lifecycle/ledger-record.schema.json +1 -1
- package/.agents/schemas/lifecycle/merge.flip-failed.schema.json +33 -0
- package/.agents/schemas/lifecycle/merge.unlanded.schema.json +1 -0
- package/.agents/schemas/lifecycle/retro.end.schema.json +1 -1
- package/.agents/schemas/lifecycle/story.merged.schema.json +1 -1
- package/.agents/schemas/signal-event.schema.json +3 -3
- package/.agents/schemas/story-deliver-terminal.schema.json +152 -0
- package/.agents/schemas/validation-evidence.schema.json +1 -1
- package/.agents/scripts/acceptance-eval.js +22 -66
- package/.agents/scripts/agents-bootstrap-github.js +1 -1
- package/.agents/scripts/audit-to-stories.js +7 -7
- package/.agents/scripts/boot-sweep.js +1 -1
- package/.agents/scripts/bootstrap.js +3 -3
- package/.agents/scripts/check-dead-exports.js +43 -104
- package/.agents/scripts/check-doc-links.js +2 -2
- package/.agents/scripts/check-lifecycle-lint.js +7 -10
- package/.agents/scripts/check-workflow-cli-lint.js +91 -0
- package/.agents/scripts/cleanup-repo-test-temp.js +6 -1
- package/.agents/scripts/deliver-recover.js +122 -0
- package/.agents/scripts/drain-pending-cleanup.js +1 -1
- package/.agents/scripts/evidence-gate.js +20 -50
- package/.agents/scripts/generate-skills-index.js +17 -1
- package/.agents/scripts/generate-workflows-doc.js +4 -4
- package/.agents/scripts/lib/ITicketingProvider.js +1 -19
- 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 +328 -28
- 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 -15
- package/.agents/scripts/lib/baselines/reader.js +1 -6
- package/.agents/scripts/lib/bdd-runner-detect.js +5 -9
- package/.agents/scripts/lib/bootstrap/ci-workflow-template.js +28 -33
- package/.agents/scripts/lib/bootstrap/issue-forms-template.js +32 -33
- package/.agents/scripts/lib/bootstrap/manifest.js +8 -11
- package/.agents/scripts/lib/bootstrap/project-bootstrap.js +30 -53
- package/.agents/scripts/lib/bootstrap/quality-bootstrap.js +0 -2
- package/.agents/scripts/lib/checks/core-bare-clean.js +6 -3
- package/.agents/scripts/lib/checks/index.js +3 -2
- package/.agents/scripts/lib/checks/loop-health.js +12 -11
- package/.agents/scripts/lib/checks/state.js +17 -248
- package/.agents/scripts/lib/checks/story-init-not-backgrounded.js +26 -24
- package/.agents/scripts/lib/checks/subagent-agent-tool-required.js +3 -4
- package/.agents/scripts/lib/checks/worktree-bootstrap-env.js +2 -2
- package/.agents/scripts/lib/checks/worktree-residue-biome.js +3 -3
- package/.agents/scripts/lib/cli/standard-args.js +13 -22
- package/.agents/scripts/lib/cli-args.js +39 -9
- package/.agents/scripts/lib/close-validation/gates.js +15 -15
- package/.agents/scripts/lib/close-validation/projections/inputs.js +7 -7
- package/.agents/scripts/lib/close-validation/projections/maintainability.js +12 -12
- package/.agents/scripts/lib/close-validation/runner.js +13 -21
- package/.agents/scripts/lib/close-validation/telemetry.js +17 -8
- package/.agents/scripts/lib/config/ci.js +6 -31
- package/.agents/scripts/lib/config/delivery-routing.js +52 -35
- package/.agents/scripts/lib/config/explain.js +61 -48
- package/.agents/scripts/lib/config/github.js +7 -5
- package/.agents/scripts/lib/config/limits.js +29 -80
- package/.agents/scripts/lib/config/paths.js +0 -2
- package/.agents/scripts/lib/config/quality.js +12 -15
- package/.agents/scripts/lib/config/runners.js +20 -66
- package/.agents/scripts/lib/config/temp-paths.js +30 -63
- 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 +55 -161
- package/.agents/scripts/lib/config-settings-schema-quality.js +17 -16
- package/.agents/scripts/lib/config-settings-schema.js +100 -60
- package/.agents/scripts/lib/dead-exports-knip.js +105 -0
- package/.agents/scripts/lib/dead-exports-mode.js +51 -0
- 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 +242 -41
- package/.agents/scripts/lib/feedback-loop/retro-proposals-graduator.js +1 -1
- package/.agents/scripts/lib/findings/promote-finding.js +23 -14
- package/.agents/scripts/lib/format-generated-json.js +97 -0
- package/.agents/scripts/lib/framework-version.js +19 -190
- package/.agents/scripts/lib/gh-exec.js +8 -0
- package/.agents/scripts/lib/git-branch-cleanup.js +1 -10
- package/.agents/scripts/lib/git-branch-lifecycle.js +17 -180
- package/.agents/scripts/lib/git-utils.js +32 -20
- package/.agents/scripts/lib/github/framework-repo.js +6 -0
- package/.agents/scripts/lib/json-utils.js +1 -2
- package/.agents/scripts/lib/label-constants.js +10 -38
- package/.agents/scripts/lib/label-taxonomy.js +10 -55
- package/.agents/scripts/lib/observability/active-story-env.js +44 -165
- package/.agents/scripts/lib/observability/runtime-friction.js +243 -0
- package/.agents/scripts/lib/observability/signal-validator.js +4 -4
- package/.agents/scripts/lib/observability/signals-writer.js +6 -82
- package/.agents/scripts/lib/observability/source-classifier.js +5 -5
- package/.agents/scripts/lib/observability/tool-trace-hook.js +2 -12
- package/.agents/scripts/lib/onboard/init-tail.js +1 -3
- package/.agents/scripts/lib/orchestration/acceptance-clusters.js +1 -1
- package/.agents/scripts/lib/orchestration/acceptance-eval-decision.js +2 -2
- package/.agents/scripts/lib/orchestration/ceremony-routing.js +105 -44
- package/.agents/scripts/lib/orchestration/code-review.js +78 -436
- package/.agents/scripts/lib/orchestration/column-sync.js +1 -1
- package/.agents/scripts/lib/orchestration/consolidation-precondition.js +4 -4
- package/.agents/scripts/lib/orchestration/context-envelope.js +2 -5
- package/.agents/scripts/lib/orchestration/deliver-recover.js +328 -0
- package/.agents/scripts/lib/orchestration/detectors-phase.js +12 -6
- 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/git-cleanup/phases/fast-forward.js +34 -0
- package/.agents/scripts/lib/orchestration/lease-guard-shared.js +3 -2
- package/.agents/scripts/lib/orchestration/lifecycle/emit-ledger-event.js +142 -0
- package/.agents/scripts/lib/orchestration/lifecycle/emit-loop-tick.js +17 -19
- package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-flip-failed.js +86 -0
- package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-unlanded.js +37 -103
- package/.agents/scripts/lib/orchestration/lifecycle/ledger-writer.js +6 -3
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/README.md +21 -43
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/watcher.js +50 -85
- package/.agents/scripts/lib/orchestration/lifecycle/trace-logger.js +3 -14
- package/.agents/scripts/lib/orchestration/lint-baseline-service.js +4 -4
- package/.agents/scripts/lib/orchestration/merge-block-class.js +77 -21
- package/.agents/scripts/lib/orchestration/merge-poll.js +104 -0
- package/.agents/scripts/lib/orchestration/phase-runner.js +3 -2
- package/.agents/scripts/lib/orchestration/plan-context.js +354 -282
- package/.agents/scripts/lib/orchestration/plan-critic-conditions.js +11 -22
- package/.agents/scripts/lib/orchestration/plan-critics-evaluate.js +4 -8
- package/.agents/scripts/lib/orchestration/plan-metrics.js +38 -6
- package/.agents/scripts/lib/orchestration/plan-navigation.js +92 -0
- package/.agents/scripts/lib/orchestration/plan-persist/fan-out-gate.js +71 -0
- package/.agents/scripts/lib/orchestration/plan-persist/persist-helpers.js +245 -0
- package/.agents/scripts/lib/orchestration/plan-persist/plan-context-source.js +116 -0
- package/.agents/scripts/lib/orchestration/plan-persist/run-plan-persist.js +432 -858
- package/.agents/scripts/lib/orchestration/plan-persist/story-ops.js +778 -0
- package/.agents/scripts/lib/orchestration/plan-persist/summary.js +47 -115
- package/.agents/scripts/lib/orchestration/plan-persist/supersede-ops.js +509 -0
- 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 +52 -51
- package/.agents/scripts/lib/orchestration/planning/decomposer-context.js +27 -0
- package/.agents/scripts/lib/orchestration/{epic-plan-spec/phases → planning}/spec-authoring-grounding.js +1 -1
- package/.agents/scripts/lib/orchestration/pr-base-guard.js +18 -28
- package/.agents/scripts/lib/orchestration/remote-verifier.js +1 -1
- package/.agents/scripts/lib/orchestration/resolve-stories.js +344 -0
- package/.agents/scripts/lib/orchestration/resolves-token.js +1 -1
- package/.agents/scripts/lib/orchestration/retro-proposals.js +140 -79
- package/.agents/scripts/lib/orchestration/review-depth.js +126 -47
- package/.agents/scripts/lib/orchestration/review-providers/codex.js +2 -2
- package/.agents/scripts/lib/orchestration/review-providers/findings-renderer.js +3 -13
- package/.agents/scripts/lib/orchestration/review-providers/native.js +1 -154
- package/.agents/scripts/lib/orchestration/review-providers/review-depth.js +3 -2
- package/.agents/scripts/lib/orchestration/review-providers/review-provider-factory.js +21 -56
- package/.agents/scripts/lib/orchestration/review-providers/security-review.js +1 -1
- package/.agents/scripts/lib/orchestration/review-providers/types.js +5 -4
- package/.agents/scripts/lib/orchestration/review-providers/ultrareview.js +1 -1
- package/.agents/scripts/lib/orchestration/run-epilogue.js +784 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/auto-merge.js +25 -1
- package/.agents/scripts/lib/orchestration/single-story-close/phases/base-sync.js +11 -9
- package/.agents/scripts/lib/orchestration/single-story-close/phases/close-validation.js +4 -4
- package/.agents/scripts/lib/orchestration/single-story-close/phases/code-review.js +86 -41
- package/.agents/scripts/lib/orchestration/single-story-close/phases/confirm-merge.js +608 -152
- package/.agents/scripts/lib/orchestration/single-story-close/phases/options.js +77 -32
- package/.agents/scripts/lib/orchestration/single-story-close/phases/post-land.js +305 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/pull-request.js +1 -1
- package/.agents/scripts/lib/orchestration/single-story-close/phases/review-block.js +44 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/worktree-reap.js +37 -4
- package/.agents/scripts/lib/orchestration/single-story-close/phases/wrong-tree-guard.js +2 -2
- package/.agents/scripts/lib/orchestration/single-story-close/runner.js +275 -46
- package/.agents/scripts/lib/orchestration/single-story-lease-guard.js +1 -1
- 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/format-autofix.js +10 -10
- package/.agents/scripts/lib/orchestration/story-close/phases/code-review.js +28 -42
- package/.agents/scripts/lib/orchestration/story-deliver-terminal.js +360 -0
- package/.agents/scripts/lib/orchestration/story-follow-ups.js +298 -0
- package/.agents/scripts/lib/orchestration/story-init-remote.js +51 -0
- package/.agents/scripts/lib/orchestration/story-plan-state.js +33 -0
- package/.agents/scripts/lib/orchestration/structured-comment-parser.js +1 -1
- package/.agents/scripts/lib/orchestration/task-body-validator.js +60 -25
- package/.agents/scripts/lib/orchestration/ticket-lease.js +27 -74
- package/.agents/scripts/lib/orchestration/ticket-validator-conflicts.js +130 -75
- package/.agents/scripts/lib/orchestration/ticket-validator-sizing.js +192 -377
- package/.agents/scripts/lib/orchestration/ticket-validator.js +123 -25
- package/.agents/scripts/lib/orchestration/ticketing/bulk.js +14 -72
- package/.agents/scripts/lib/orchestration/ticketing/reads.js +45 -55
- package/.agents/scripts/lib/orchestration/ticketing/transition.js +66 -6
- package/.agents/scripts/lib/orchestration/ticketing.js +0 -1
- package/.agents/scripts/lib/plan-phase-cleanup.js +12 -14
- package/.agents/scripts/lib/planning-corpus.js +12 -281
- package/.agents/scripts/lib/preflight-runner.js +4 -4
- package/.agents/scripts/lib/qa/coverage-verdict.js +5 -5
- package/.agents/scripts/lib/qa/qa-context-hydrator.js +5 -5
- package/.agents/scripts/lib/signals/index.js +4 -17
- package/.agents/scripts/lib/signals/read.js +35 -35
- package/.agents/scripts/lib/signals/schema.js +8 -11
- package/.agents/scripts/lib/signals/span-tree.js +7 -7
- package/.agents/scripts/lib/signals/write.js +0 -1
- package/.agents/scripts/lib/single-story/story-merged-notify.js +13 -2
- package/.agents/scripts/lib/single-story-sweep/protection-ctx.js +1 -1
- package/.agents/scripts/lib/skills/parse-skill.js +16 -3
- package/.agents/scripts/lib/story-adjacency.js +17 -19
- package/.agents/scripts/lib/story-body/story-body.js +130 -75
- package/.agents/scripts/lib/story-plan.js +2 -4
- package/.agents/scripts/lib/templates/decomposer-prompts.js +51 -46
- package/.agents/scripts/lib/templates/spec-author-prompts.js +47 -45
- package/.agents/scripts/lib/test-env.js +14 -1
- package/.agents/scripts/lib/test-tiers.js +0 -3
- package/.agents/scripts/lib/{epic-body-sections.js → ticket-body-sections.js} +25 -39
- package/.agents/scripts/lib/validation-evidence.js +32 -60
- package/.agents/scripts/lib/wave-runner/ready-set.js +38 -12
- package/.agents/scripts/lib/workspace-provisioner.js +1 -1
- package/.agents/scripts/lib/worktree/lifecycle/pending-cleanup.js +1 -1
- package/.agents/scripts/lib/worktree/lifecycle/reap.js +72 -25
- package/.agents/scripts/lib/worktree/lifecycle-manager.js +1 -2
- 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 +102 -80
- package/.agents/scripts/plan-persist.js +230 -279
- package/.agents/scripts/plan-run-epilogue.js +142 -0
- package/.agents/scripts/post-structured-comment.js +0 -38
- package/.agents/scripts/pr-watch-with-update.js +43 -22
- package/.agents/scripts/providers/github/compose.js +0 -1
- package/.agents/scripts/providers/github/errors.js +0 -19
- package/.agents/scripts/providers/github/issues.js +13 -39
- package/.agents/scripts/providers/github/mappers.js +5 -12
- package/.agents/scripts/providers/github/sub-issues.js +0 -47
- package/.agents/scripts/providers/github/tickets.js +33 -156
- package/.agents/scripts/providers/github.js +17 -6
- package/.agents/scripts/resolve-stories.js +236 -0
- package/.agents/scripts/run-coverage.js +4 -1
- package/.agents/scripts/run-lint.js +2 -2
- package/.agents/scripts/run-verify.js +31 -2
- package/.agents/scripts/signals-view.js +25 -21
- package/.agents/scripts/single-story-close.js +178 -26
- package/.agents/scripts/single-story-confirm-merge.js +313 -24
- package/.agents/scripts/single-story-init.js +35 -30
- package/.agents/scripts/stories-wave-tick.js +85 -10
- package/.agents/scripts/story-plan.js +28 -49
- package/.agents/scripts/update-ticket-state.js +14 -65
- package/.agents/skills/core/code-review-and-quality/SKILL.md +28 -450
- package/.agents/skills/core/code-review-and-quality/reference.md +458 -0
- package/.agents/skills/core/debugging-and-error-recovery/SKILL.md +22 -315
- package/.agents/skills/core/debugging-and-error-recovery/reference.md +323 -0
- package/.agents/skills/core/diagnose-friction/SKILL.md +14 -18
- package/.agents/skills/core/documentation-and-adrs/SKILL.md +25 -397
- package/.agents/skills/core/documentation-and-adrs/reference.md +403 -0
- package/.agents/skills/core/gates-and-baselines/SKILL.md +12 -12
- package/.agents/skills/core/idea-refinement/SKILL.md +9 -9
- package/.agents/skills/core/scope-triage/SKILL.md +31 -172
- package/.agents/skills/core/security-and-hardening/SKILL.md +22 -367
- package/.agents/skills/core/security-and-hardening/reference.md +375 -0
- package/.agents/skills/skills.index.json +3 -53
- package/.agents/skills/stack/qa/playwright-bdd/SKILL.md +2 -4
- package/.agents/skills/stack/qa/qa-explore-driving/SKILL.md +1 -1
- package/.agents/skills/stack/qa/qa-harness/SKILL.md +1 -3
- package/.agents/starter-agentrc.json +0 -5
- package/.agents/templates/agent-protocol.md +9 -10
- package/.agents/workflows/audit-architecture.md +6 -7
- package/.agents/workflows/audit-clean-code.md +7 -7
- package/.agents/workflows/audit-dependencies.md +3 -3
- package/.agents/workflows/audit-devops.md +3 -3
- package/.agents/workflows/audit-documentation.md +9 -10
- package/.agents/workflows/audit-lighthouse.md +11 -3
- package/.agents/workflows/audit-navigability.md +13 -2
- package/.agents/workflows/audit-performance.md +5 -6
- package/.agents/workflows/audit-privacy.md +3 -3
- package/.agents/workflows/audit-quality.md +11 -12
- package/.agents/workflows/audit-security.md +4 -5
- package/.agents/workflows/audit-seo.md +13 -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 +10 -3
- package/.agents/workflows/deliver.md +177 -176
- package/.agents/workflows/git-cleanup.md +5 -6
- package/.agents/workflows/git-deliver.md +1 -1
- package/.agents/workflows/helpers/_merge-conflict-template.md +1 -1
- package/.agents/workflows/helpers/acceptance-self-eval.md +35 -40
- package/.agents/workflows/helpers/code-quality-guardrails.md +7 -7
- package/.agents/workflows/helpers/code-review.md +75 -196
- package/.agents/workflows/helpers/{single-story-deliver-reference.md → deliver-story-reference.md} +83 -44
- package/.agents/workflows/helpers/deliver-story.md +606 -0
- package/.agents/workflows/helpers/diagnose.md +10 -10
- package/.agents/workflows/helpers/parallel-tooling.md +3 -3
- package/.agents/workflows/helpers/signals.md +16 -16
- package/.agents/workflows/helpers/worktree-lifecycle.md +66 -86
- package/.agents/workflows/mandrel-update.md +2 -1
- package/.agents/workflows/plan.md +277 -145
- package/.agents/workflows/qa-assist.md +27 -33
- package/.agents/workflows/qa-explore.md +29 -38
- package/.agents/workflows/qa-run.md +2 -6
- package/README.md +9 -8
- package/bin/mandrel.js +12 -1
- package/docs/CHANGELOG.md +70 -0
- package/lib/cli/registry.js +262 -19
- package/lib/cli/sync-agents.js +157 -0
- package/lib/cli/sync-commands.js +115 -6
- package/lib/cli/sync.js +168 -6
- package/lib/cli/update.js +105 -8
- package/lib/cli/version-helpers.js +131 -0
- package/lib/migrations/README.md +7 -5
- package/lib/migrations/index.js +12 -8
- package/lib/migrations/steps/2.1.0-retire-mi-drop-knobs.js +100 -0
- package/lib/migrations/steps/2.1.0-retire-verify-concurrency-cap.js +101 -0
- 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-perf-report.schema.json +0 -89
- package/.agents/schemas/epic-spec.schema.json +0 -153
- package/.agents/schemas/lifecycle/acceptance.reconcile.failed.schema.json +0 -13
- package/.agents/schemas/lifecycle/acceptance.reconcile.ok.schema.json +0 -13
- package/.agents/schemas/lifecycle/acceptance.reconcile.skipped.schema.json +0 -13
- package/.agents/schemas/lifecycle/acceptance.reconcile.start.schema.json +0 -12
- package/.agents/schemas/lifecycle/acceptance.reconcile.waived.schema.json +0 -13
- package/.agents/schemas/lifecycle/epic.automerge.end.schema.json +0 -15
- package/.agents/schemas/lifecycle/epic.automerge.start.schema.json +0 -13
- package/.agents/schemas/lifecycle/epic.blocked.schema.json +0 -13
- package/.agents/schemas/lifecycle/epic.cleanup.end.schema.json +0 -12
- package/.agents/schemas/lifecycle/epic.cleanup.start.schema.json +0 -12
- package/.agents/schemas/lifecycle/epic.close.end.schema.json +0 -12
- package/.agents/schemas/lifecycle/epic.complete.schema.json +0 -13
- package/.agents/schemas/lifecycle/epic.finalize.end.schema.json +0 -13
- package/.agents/schemas/lifecycle/epic.finalize.start.schema.json +0 -12
- package/.agents/schemas/lifecycle/epic.merge.armed.schema.json +0 -13
- package/.agents/schemas/lifecycle/epic.merge.blocked.schema.json +0 -14
- package/.agents/schemas/lifecycle/epic.merge.confirmed.schema.json +0 -17
- package/.agents/schemas/lifecycle/epic.merge.ready.schema.json +0 -15
- package/.agents/schemas/lifecycle/epic.plan.end.schema.json +0 -18
- package/.agents/schemas/lifecycle/epic.plan.start.schema.json +0 -12
- package/.agents/schemas/lifecycle/epic.snapshot.end.schema.json +0 -16
- package/.agents/schemas/lifecycle/epic.snapshot.start.schema.json +0 -12
- package/.agents/schemas/lifecycle/epic.watch.end.schema.json +0 -29
- package/.agents/schemas/lifecycle/epic.watch.start.schema.json +0 -16
- 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/schemas/lifecycle/story.heartbeat.schema.json +0 -20
- package/.agents/schemas/risk-verdict.schema.json +0 -66
- package/.agents/schemas/story-perf-summary.schema.json +0 -73
- package/.agents/scripts/acceptance-spec-reconciler.js +0 -642
- package/.agents/scripts/analyze-execution.js +0 -444
- package/.agents/scripts/bookkeeping-reconcile.js +0 -117
- package/.agents/scripts/check-prepush-recovery.js +0 -90
- 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/git-merge-orchestrator.js +0 -261
- package/.agents/scripts/lib/observability/baseline-refresh-rate.js +0 -221
- package/.agents/scripts/lib/observability/hook-heartbeat.js +0 -219
- package/.agents/scripts/lib/observability/perf-aggregator.js +0 -813
- package/.agents/scripts/lib/observability/perf-report-readers.js +0 -328
- package/.agents/scripts/lib/observability/perf-report-render.js +0 -182
- package/.agents/scripts/lib/orchestration/bookkeeping-outbox.js +0 -270
- 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/risk-verdict.js +0 -105
- 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/story-run-progress-writer.js +0 -400
- 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/error-journal.js +0 -139
- 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/emit-story-heartbeat.js +0 -155
- package/.agents/scripts/lib/orchestration/lifecycle/ledger-diff.js +0 -140
- 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/merge-watcher.js +0 -665
- 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/plan-review-routing.js +0 -63
- package/.agents/scripts/lib/orchestration/planning-context-budget.js +0 -213
- package/.agents/scripts/lib/orchestration/planning-risk.js +0 -194
- package/.agents/scripts/lib/orchestration/post-merge/phases/branch-cleanup.js +0 -56
- package/.agents/scripts/lib/orchestration/post-merge/phases/dashboard-refresh.js +0 -33
- package/.agents/scripts/lib/orchestration/post-merge/phases/notification.js +0 -78
- package/.agents/scripts/lib/orchestration/post-merge/phases/temp-cleanup.js +0 -68
- package/.agents/scripts/lib/orchestration/post-merge/phases/ticket-closure.js +0 -118
- package/.agents/scripts/lib/orchestration/post-merge/phases/worktree-reap.js +0 -396
- package/.agents/scripts/lib/orchestration/post-merge-pipeline.js +0 -205
- package/.agents/scripts/lib/orchestration/preflight-cache.js +0 -187
- 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-perf-heuristics.js +0 -275
- 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/analyze-execution/SKILL.md +0 -98
- 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/workflows/helpers/single-story-deliver.md +0 -557
|
@@ -16,7 +16,7 @@ renamed, scripts move, described workflows change shape, and
|
|
|
16
16
|
version/topology claims go stale. The deterministic gates
|
|
17
17
|
(`check-doc-links.js`, `check-lifecycle-doc-drift.js`,
|
|
18
18
|
`validate-docs-freshness.js`) catch broken links, drift against generators,
|
|
19
|
-
and
|
|
19
|
+
and per-delivery freshness — they cannot tell whether the prose still
|
|
20
20
|
describes how the code actually behaves. That semantic verification is this
|
|
21
21
|
lens's job.
|
|
22
22
|
|
|
@@ -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
|
|
@@ -71,8 +71,7 @@ before this section existed.
|
|
|
71
71
|
## Execution strategy (dual-path)
|
|
72
72
|
|
|
73
73
|
This lens runs along one of two execution paths. Both emit the **identical**
|
|
74
|
-
report contract (Step 3); downstream consumers (
|
|
75
|
-
epic-audit, `audit-to-stories`) are agnostic to which path produced it.
|
|
74
|
+
report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
|
|
76
75
|
|
|
77
76
|
- **Orchestrated (dynamic-workflow) path.** When Claude Code's
|
|
78
77
|
[dynamic workflows](https://code.claude.com/docs/en/workflows) are
|
|
@@ -174,7 +173,7 @@ and check each one:
|
|
|
174
173
|
renames).
|
|
175
174
|
3. **Workflow & Contract Descriptions:** Described workflows, label
|
|
176
175
|
taxonomies (`agent::*`, `type::*`, `meta::*`), branch shapes
|
|
177
|
-
(`story-<id
|
|
176
|
+
(`story-<id>`), and artifact contracts match how the
|
|
178
177
|
current scripts actually behave — read the implementation when the
|
|
179
178
|
prose makes a behavioural claim.
|
|
180
179
|
4. **Version & Topology Claims:** Version numbers, package names, release
|
|
@@ -279,8 +278,8 @@ match the code), the deterministic-gate verdicts, and primary drift themes.]
|
|
|
279
278
|
## Periodic full-scope sweep
|
|
280
279
|
|
|
281
280
|
Context Economy findings accrete slowly — a doc that is lean today grows a
|
|
282
|
-
bloated tail over many
|
|
283
|
-
|
|
281
|
+
bloated tail over many deliveries, and no single change-set-scoped `/deliver`
|
|
282
|
+
run sees the whole picture. Run this lens **full-scope** on a
|
|
284
283
|
recurring cadence so the drift is caught before it compounds:
|
|
285
284
|
|
|
286
285
|
- **Scheduled invocation** — `/schedule` running `/audit-documentation`
|
|
@@ -293,7 +292,7 @@ recurring cadence so the drift is caught before it compounds:
|
|
|
293
292
|
Route the resulting `audit-documentation-results.md` through
|
|
294
293
|
[`/audit-to-stories`](audit-to-stories.md), which groups the findings,
|
|
295
294
|
deduplicates them against existing Issues by fingerprint, and opens
|
|
296
|
-
remediation Stories (or chains into `/plan --
|
|
295
|
+
remediation Stories (or chains into `/plan --seed`) so the Context-Economy
|
|
297
296
|
findings land as actionable, tracked work rather than a report nobody reads.
|
|
298
297
|
|
|
299
298
|
## Constraint
|
|
@@ -5,6 +5,14 @@ command: false
|
|
|
5
5
|
|
|
6
6
|
# Lighthouse Audit & Analysis
|
|
7
7
|
|
|
8
|
+
## Applicability
|
|
9
|
+
|
|
10
|
+
**Web targets only.** Registered with `target: "web"` in
|
|
11
|
+
[`audit-rules.json`](../schemas/audit-rules.json): the selector skips this lens
|
|
12
|
+
on a project with no web surface, since there is no page to launch Lighthouse
|
|
13
|
+
against. See the `target` key's schema description for how applicability is
|
|
14
|
+
probed from the consumer's checkout.
|
|
15
|
+
|
|
8
16
|
## Role
|
|
9
17
|
|
|
10
18
|
Senior Web Performance & Quality Engineer. You operate Lighthouse end-to-end:
|
|
@@ -30,10 +38,10 @@ inflate Performance scores misleadingly.
|
|
|
30
38
|
(check `viewport` meta, responsive CSS, or operator instruction), run
|
|
31
39
|
**Mobile** instead and note the choice in the report.
|
|
32
40
|
|
|
33
|
-
## Scope (
|
|
41
|
+
## Scope (Story / plan-run mode)
|
|
34
42
|
|
|
35
|
-
When this lens is invoked from `/deliver`
|
|
36
|
-
following block is populated with the
|
|
43
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
44
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
37
45
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
38
46
|
renders the literal substitution token and you MUST treat it as **no
|
|
39
47
|
scope filter — run the lens codebase-wide** exactly as you would have
|
|
@@ -8,6 +8,16 @@ description: >-
|
|
|
8
8
|
|
|
9
9
|
# Navigability Audit
|
|
10
10
|
|
|
11
|
+
## Applicability
|
|
12
|
+
|
|
13
|
+
**Web targets only.** Registered with `target: "web"` in
|
|
14
|
+
[`audit-rules.json`](../schemas/audit-rules.json). This is consistent with the
|
|
15
|
+
lens's own no-op contract below rather than an additional constraint: the
|
|
16
|
+
web-surface probe's first signal _is_ configured `routeGlobs`, so a consumer
|
|
17
|
+
that has configured this lens's route-tree SSOT always clears the gate. The
|
|
18
|
+
gate only bites where the lens had no route data to read anyway — it converts a
|
|
19
|
+
silent no-op run into no run at all.
|
|
20
|
+
|
|
11
21
|
## Role
|
|
12
22
|
|
|
13
23
|
Information-Architecture Reviewer & Frontend Navigation Auditor
|
|
@@ -61,8 +71,9 @@ Read the consumer's navigability config (resolved from `.agentrc.json`):
|
|
|
61
71
|
|
|
62
72
|
- `delivery.quality.navigability.routeGlobs` — globs identifying the
|
|
63
73
|
route-adding files / route tree (e.g. `pages/**`, `app/**/route.ts`). Drives
|
|
64
|
-
both the route-tree enumeration here and the
|
|
65
|
-
|
|
74
|
+
both the route-tree enumeration here and the plan-persist draft
|
|
75
|
+
reachability gate
|
|
76
|
+
([`plan-reachability.js`](../scripts/lib/orchestration/plan-reachability.js)).
|
|
66
77
|
- `delivery.quality.navigability.navRegistry` — path(s) to the consumer's
|
|
67
78
|
nav-registry SSOT this lens reads.
|
|
68
79
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Audit hot paths, algorithmic complexity, and I/O bottlenecks in the tooling surface (`
|
|
2
|
+
description: Audit hot paths, algorithmic complexity, and I/O bottlenecks in the tooling surface (`single-story-close`, dispatcher, gates); propose remediations.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Performance & Bottleneck Audit
|
|
@@ -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
|
|
@@ -38,8 +38,7 @@ before this section existed.
|
|
|
38
38
|
## Execution strategy (dual-path)
|
|
39
39
|
|
|
40
40
|
This lens runs along one of two execution paths. Both emit the **identical**
|
|
41
|
-
report contract (Step 3); downstream consumers (
|
|
42
|
-
epic-audit, `audit-to-stories`) are agnostic to which path produced it.
|
|
41
|
+
report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
|
|
43
42
|
|
|
44
43
|
- **Orchestrated (dynamic-workflow) path.** When Claude Code's
|
|
45
44
|
[dynamic workflows](https://code.claude.com/docs/en/workflows) are
|
|
@@ -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
|
|
@@ -15,7 +15,7 @@ infrastructure, test coverage, and overall quality assurance practices. Your
|
|
|
15
15
|
goal is to identify testing gaps, flaky tests, inefficient mocking strategies,
|
|
16
16
|
and opportunities to improve test execution speed and reliability without making
|
|
17
17
|
any immediate changes. Additionally, you must evaluate the implemented tests
|
|
18
|
-
against the
|
|
18
|
+
against the Story under audit and the current codebase to ensure all quality
|
|
19
19
|
requirements are met and correctly documented.
|
|
20
20
|
|
|
21
21
|
**Note on Testing Responsibilities**: When evaluating test maturity, note the
|
|
@@ -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
|
|
@@ -48,8 +48,7 @@ before this section existed.
|
|
|
48
48
|
## Execution strategy (dual-path)
|
|
49
49
|
|
|
50
50
|
This lens runs along one of two execution paths. Both emit the **identical**
|
|
51
|
-
report contract (Step 3); downstream consumers (
|
|
52
|
-
epic-audit, `audit-to-stories`) are agnostic to which path produced it.
|
|
51
|
+
report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
|
|
53
52
|
|
|
54
53
|
- **Orchestrated (dynamic-workflow) path.** When Claude Code's
|
|
55
54
|
[dynamic workflows](https://code.claude.com/docs/en/workflows) are
|
|
@@ -101,8 +100,8 @@ degrade to the sequential path.
|
|
|
101
100
|
|
|
102
101
|
## Step 0 - Project Context
|
|
103
102
|
|
|
104
|
-
1. Read the
|
|
105
|
-
and target features.
|
|
103
|
+
1. Read the Story under audit — its `## Goal`, inline `acceptance[]` /
|
|
104
|
+
`verify[]`, and folded `## Spec` — to identify the target features.
|
|
106
105
|
2. Identify the target codebase paths for the audit.
|
|
107
106
|
|
|
108
107
|
## Step 1: Context Gathering (Read-Only Scan)
|
|
@@ -116,8 +115,8 @@ files. Pay special attention to:
|
|
|
116
115
|
`playwright.config.ts`, `cypress.json`).
|
|
117
116
|
- Test directories and files (e.g., `__tests__/`, `spec/`, `e2e/`, `*.test.ts`,
|
|
118
117
|
`*.spec.js`).
|
|
119
|
-
- The
|
|
120
|
-
implemented tests.
|
|
118
|
+
- The Story's `acceptance[]` / `verify[]` arrays, to map expected behaviour
|
|
119
|
+
versus implemented tests.
|
|
121
120
|
- Mocking and stubbing setups (e.g., `__mocks__/`, `setupTests.js`, MSW
|
|
122
121
|
handlers).
|
|
123
122
|
- CI/CD workflow files to understand how and when tests are executed.
|
|
@@ -140,8 +139,8 @@ Evaluate the gathered context against the following test quality dimensions:
|
|
|
140
139
|
5. **Performance & Execution:** Find bottlenecks in the test suite, such as
|
|
141
140
|
unnecessary serial execution, heavy setup running too frequently, or
|
|
142
141
|
opportunities for parallelization.
|
|
143
|
-
6. **Requirement Alignment:** Cross-reference the
|
|
144
|
-
|
|
142
|
+
6. **Requirement Alignment:** Cross-reference the Story's `acceptance[]`
|
|
143
|
+
criteria to ensure they have corresponding and complete test coverage.
|
|
145
144
|
Verify that the implementation found in the codebase correctly matches the
|
|
146
145
|
architectural requirements and highlight any inconsistencies or gaps.
|
|
147
146
|
|
|
@@ -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
|
|
@@ -39,8 +39,7 @@ before this section existed.
|
|
|
39
39
|
## Execution strategy (dual-path)
|
|
40
40
|
|
|
41
41
|
This lens runs along one of two execution paths. Both emit the **identical**
|
|
42
|
-
report contract (Step 3); downstream consumers (
|
|
43
|
-
epic-audit, `audit-to-stories`) are agnostic to which path produced it.
|
|
42
|
+
report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
|
|
44
43
|
|
|
45
44
|
- **Orchestrated (dynamic-workflow) path.** When Claude Code's
|
|
46
45
|
[dynamic workflows](https://code.claude.com/docs/en/workflows) are
|
|
@@ -4,6 +4,16 @@ description: Audit SEO fundamentals and Generative Engine Optimization signals (
|
|
|
4
4
|
|
|
5
5
|
# SEO & Generative Engine Optimization Audit
|
|
6
6
|
|
|
7
|
+
## Applicability
|
|
8
|
+
|
|
9
|
+
**Web targets only.** This lens is registered with `target: "web"` in
|
|
10
|
+
[`audit-rules.json`](../schemas/audit-rules.json), so the selector skips it
|
|
11
|
+
entirely on a project with no web surface — however well its keyword triggers
|
|
12
|
+
match the ticket prose. Applicability is derived from the consumer's own
|
|
13
|
+
checkout (configured navigability `routeGlobs`, a declared web-framework
|
|
14
|
+
dependency, or a tracked `.html` / `.css` / `.jsx` / `.tsx` source file), not
|
|
15
|
+
from an `.agentrc` key, and the probe fails open when indeterminate.
|
|
16
|
+
|
|
7
17
|
## Role
|
|
8
18
|
|
|
9
19
|
Senior Technical SEO and Generative Engine Optimization (GEO) Specialist. You
|
|
@@ -18,10 +28,10 @@ codebase. Your goal is to surface structural, semantic, and content-level
|
|
|
18
28
|
improvements that will increase discoverability in both traditional search
|
|
19
29
|
indexes and AI-powered answer engines — without making any immediate changes.
|
|
20
30
|
|
|
21
|
-
## Scope (
|
|
31
|
+
## Scope (Story / plan-run mode)
|
|
22
32
|
|
|
23
|
-
When this lens is invoked from `/deliver`
|
|
24
|
-
following block is populated with the
|
|
33
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
34
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
25
35
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
26
36
|
renders the literal substitution token and you MUST treat it as **no
|
|
27
37
|
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.
|
|
@@ -4,6 +4,13 @@ description: Audit UX/UI consistency and design system adherence
|
|
|
4
4
|
|
|
5
5
|
# UX/UI & Design System Audit
|
|
6
6
|
|
|
7
|
+
## Applicability
|
|
8
|
+
|
|
9
|
+
**Web targets only.** Registered with `target: "web"` in
|
|
10
|
+
[`audit-rules.json`](../schemas/audit-rules.json): the selector skips this lens
|
|
11
|
+
on a project with no rendered frontend. See the `target` key's schema
|
|
12
|
+
description for how applicability is probed from the consumer's checkout.
|
|
13
|
+
|
|
7
14
|
## Role
|
|
8
15
|
|
|
9
16
|
Lead Product Designer & Frontend Architect
|
|
@@ -14,10 +21,10 @@ Evaluate the frontend implementation for UI consistency, UX best practices, and
|
|
|
14
21
|
adherence to the project's design system. Ensure the application feels premium
|
|
15
22
|
and cohesive.
|
|
16
23
|
|
|
17
|
-
## Scope (
|
|
24
|
+
## Scope (Story / plan-run mode)
|
|
18
25
|
|
|
19
|
-
When this lens is invoked from `/deliver`
|
|
20
|
-
following block is populated with the
|
|
26
|
+
When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
|
|
27
|
+
following block is populated with the Story (or plan-run) change-set file list.
|
|
21
28
|
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
22
29
|
renders the literal substitution token and you MUST treat it as **no
|
|
23
30
|
scope filter — run the lens codebase-wide** exactly as you would have
|