mandrel 2.60.0 → 2.61.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 +10 -10
- package/.agents/agents/story-worker.md +1 -1
- package/.agents/docs/agentrc-reference.json +4 -82
- package/.agents/docs/configuration.md +20 -87
- package/.agents/docs/workflows.md +1 -1
- package/.agents/instructions.md +1 -3
- package/.agents/rules/gherkin-standards.md +4 -0
- package/.agents/schemas/agentrc.schema.json +11 -486
- package/.agents/schemas/story-deliver-terminal.schema.json +10 -0
- package/.agents/schemas/validation-evidence.schema.json +2 -1
- package/.agents/scripts/README.md +14 -14
- package/.agents/scripts/acceptance-eval.js +32 -164
- package/.agents/scripts/agents-bootstrap-github.js +27 -129
- package/.agents/scripts/apply-quality-bootstrap.js +4 -40
- package/.agents/scripts/audit-baselines.js +6 -27
- package/.agents/scripts/audit-labels-bootstrap.js +5 -29
- package/.agents/scripts/audit-to-stories.js +91 -361
- package/.agents/scripts/boot-sweep.js +19 -72
- package/.agents/scripts/bootstrap.js +74 -395
- package/.agents/scripts/ceremony-derive.js +9 -45
- package/.agents/scripts/check-arch-cycles.js +14 -64
- package/.agents/scripts/check-baselines.js +8 -48
- package/.agents/scripts/check-context-budget.js +46 -172
- package/.agents/scripts/check-cyclomatic.js +12 -44
- package/.agents/scripts/check-dead-exports.js +13 -64
- package/.agents/scripts/check-doc-links.js +38 -186
- package/.agents/scripts/check-gherkin-corpus.js +24 -127
- package/.agents/scripts/check-test-temp-hygiene.js +28 -169
- package/.agents/scripts/coverage-capture.js +32 -99
- package/.agents/scripts/deliver-light.js +14 -101
- package/.agents/scripts/deliver-recover.js +6 -42
- package/.agents/scripts/deliver-run.js +36 -133
- package/.agents/scripts/diagnose-friction.js +24 -116
- package/.agents/scripts/drain-pending-cleanup.js +1 -1
- package/.agents/scripts/evidence-gate.js +23 -85
- package/.agents/scripts/file-ci-gap.js +10 -50
- package/.agents/scripts/generate-config-docs.js +30 -170
- package/.agents/scripts/generate-lens-checklists.js +8 -52
- package/.agents/scripts/generate-skills-index.js +14 -112
- package/.agents/scripts/generate-workflows-doc.js +10 -70
- package/.agents/scripts/git-cleanup.js +2 -34
- package/.agents/scripts/lib/Graph.js +24 -81
- package/.agents/scripts/lib/ITicketingProvider.js +47 -143
- package/.agents/scripts/lib/Logger.js +14 -76
- package/.agents/scripts/lib/audit-baselines/engine.js +11 -31
- package/.agents/scripts/lib/audit-baselines/gate-surface.js +3 -17
- package/.agents/scripts/lib/audit-baselines/headroom.js +4 -20
- package/.agents/scripts/lib/audit-baselines/hotspots.js +3 -15
- package/.agents/scripts/lib/audit-baselines/kinds.js +23 -89
- package/.agents/scripts/lib/audit-baselines/outliers.js +6 -23
- package/.agents/scripts/lib/audit-baselines/read.js +3 -16
- package/.agents/scripts/lib/audit-baselines/staleness.js +7 -26
- package/.agents/scripts/lib/audit-baselines/surface-entry.js +7 -28
- package/.agents/scripts/lib/audit-baselines/trend.js +7 -20
- package/.agents/scripts/lib/audit-baselines/weights.js +9 -37
- package/.agents/scripts/lib/audit-suite/audit-rules-reader.js +3 -18
- package/.agents/scripts/lib/audit-suite/checklist-threading.js +26 -124
- package/.agents/scripts/lib/audit-suite/dispatch-checklist.js +14 -45
- package/.agents/scripts/lib/audit-suite/findings.js +12 -52
- package/.agents/scripts/lib/audit-suite/frontmatter.js +5 -29
- package/.agents/scripts/lib/audit-suite/index.js +1 -15
- package/.agents/scripts/lib/audit-suite/lens-checklist.js +10 -45
- package/.agents/scripts/lib/audit-suite/lens-diff-floor.js +11 -76
- package/.agents/scripts/lib/audit-suite/runner.js +13 -43
- package/.agents/scripts/lib/audit-suite/selector.js +49 -349
- package/.agents/scripts/lib/audit-suite/substitutions.js +12 -40
- package/.agents/scripts/lib/audit-suite/workflow-loader.js +3 -15
- package/.agents/scripts/lib/audit-to-stories/audit-label-taxonomy.js +11 -73
- package/.agents/scripts/lib/audit-to-stories/audit-lenses.js +8 -37
- package/.agents/scripts/lib/audit-to-stories/build-story-body.js +25 -143
- package/.agents/scripts/lib/audit-to-stories/dedupe-against-github.js +14 -80
- package/.agents/scripts/lib/audit-to-stories/epic-grouping-directive.js +4 -18
- package/.agents/scripts/lib/audit-to-stories/finding-adapter.js +7 -40
- package/.agents/scripts/lib/audit-to-stories/group-findings.js +9 -39
- package/.agents/scripts/lib/audit-to-stories/issue-corpus.js +10 -66
- package/.agents/scripts/lib/audit-to-stories/issue-index.js +6 -30
- package/.agents/scripts/lib/audit-to-stories/issues-file.js +6 -36
- package/.agents/scripts/lib/audit-to-stories/ledger-commit.js +17 -69
- package/.agents/scripts/lib/audit-to-stories/ledger-pr.js +17 -85
- package/.agents/scripts/lib/audit-to-stories/ledger-record.js +10 -48
- package/.agents/scripts/lib/audit-to-stories/parse-audit-md.js +38 -146
- package/.agents/scripts/lib/audit-to-stories/seed-from-findings.js +7 -42
- package/.agents/scripts/lib/audit-to-stories/wire-dependencies.js +10 -57
- package/.agents/scripts/lib/baseline-loader.js +12 -51
- package/.agents/scripts/lib/baseline-schema-registry.js +5 -22
- package/.agents/scripts/lib/baselines/component-matcher.js +3 -12
- package/.agents/scripts/lib/baselines/components.js +10 -61
- package/.agents/scripts/lib/baselines/coverage-updater-cli.js +7 -36
- package/.agents/scripts/lib/baselines/crap-preview-incremental.js +5 -21
- package/.agents/scripts/lib/baselines/crap-preview-scan.js +19 -45
- package/.agents/scripts/lib/baselines/crap-updater-cli.js +16 -65
- package/.agents/scripts/lib/baselines/diff-scope-cli.js +5 -33
- package/.agents/scripts/lib/baselines/duplication-scanner.js +11 -60
- package/.agents/scripts/lib/baselines/env-overrides.js +12 -67
- package/.agents/scripts/lib/baselines/envelope.js +13 -129
- package/.agents/scripts/lib/baselines/exit-codes.js +6 -49
- package/.agents/scripts/lib/baselines/git-base.js +23 -142
- package/.agents/scripts/lib/baselines/kernel.js +11 -111
- package/.agents/scripts/lib/baselines/kinds/_crap-new-method-gate.js +9 -47
- package/.agents/scripts/lib/baselines/kinds/_crap-read.js +8 -51
- package/.agents/scripts/lib/baselines/kinds/_shared-metric.js +7 -62
- package/.agents/scripts/lib/baselines/kinds/bundle-size.js +8 -29
- package/.agents/scripts/lib/baselines/kinds/coverage.js +3 -15
- package/.agents/scripts/lib/baselines/kinds/crap.js +94 -415
- package/.agents/scripts/lib/baselines/kinds/duplication.js +4 -30
- package/.agents/scripts/lib/baselines/kinds/kind-factory.js +7 -53
- package/.agents/scripts/lib/baselines/kinds/maintainability.js +15 -80
- package/.agents/scripts/lib/baselines/kinds/mutation.js +12 -72
- package/.agents/scripts/lib/baselines/maintainability-baseline-io.js +4 -11
- package/.agents/scripts/lib/baselines/merge-envelopes.js +30 -146
- package/.agents/scripts/lib/baselines/path-canon.js +19 -128
- package/.agents/scripts/lib/baselines/preview-gates.js +8 -37
- package/.agents/scripts/lib/baselines/reader.js +14 -107
- package/.agents/scripts/lib/baselines/refresh-service.js +35 -252
- package/.agents/scripts/lib/baselines/scope.js +11 -135
- package/.agents/scripts/lib/baselines/writer.js +16 -149
- package/.agents/scripts/lib/bdd-runner-detect.js +18 -113
- package/.agents/scripts/lib/bdd-scenario-budget.js +9 -36
- package/.agents/scripts/lib/bdd-scenario-scanner.js +11 -73
- package/.agents/scripts/lib/bdd-step-index.js +26 -100
- package/.agents/scripts/lib/bootstrap/baseline-merge-driver.js +23 -103
- package/.agents/scripts/lib/bootstrap/branch-protection.js +2 -5
- package/.agents/scripts/lib/bootstrap/commit-push.js +12 -50
- package/.agents/scripts/lib/bootstrap/gh-preflight.js +14 -101
- package/.agents/scripts/lib/bootstrap/hitl-confirm.js +5 -30
- package/.agents/scripts/lib/bootstrap/install-ledger.js +17 -73
- package/.agents/scripts/lib/bootstrap/issue-forms-template.js +17 -121
- package/.agents/scripts/lib/bootstrap/manifest.js +15 -86
- package/.agents/scripts/lib/bootstrap/merge-methods.js +4 -33
- package/.agents/scripts/lib/bootstrap/preflight.js +12 -61
- package/.agents/scripts/lib/bootstrap/project-bootstrap.js +34 -235
- package/.agents/scripts/lib/bootstrap/prompt.js +21 -129
- package/.agents/scripts/lib/bootstrap/quality-bootstrap.js +27 -141
- package/.agents/scripts/lib/bootstrap/summary.js +1 -8
- package/.agents/scripts/lib/bootstrap/workflow-audit.js +11 -84
- package/.agents/scripts/lib/branch-name-guard.js +4 -23
- package/.agents/scripts/lib/changed-files.js +31 -143
- package/.agents/scripts/lib/checks/core-bare-clean.js +4 -24
- package/.agents/scripts/lib/checks/index.js +18 -101
- package/.agents/scripts/lib/checks/loop-health.js +11 -53
- package/.agents/scripts/lib/checks/state.js +16 -91
- package/.agents/scripts/lib/checks/story-init-not-backgrounded.js +10 -61
- package/.agents/scripts/lib/checks/subagent-agent-tool-required.js +14 -83
- package/.agents/scripts/lib/child-exec.js +39 -108
- package/.agents/scripts/lib/cli/standard-args.js +9 -116
- package/.agents/scripts/lib/cli-args.js +31 -146
- package/.agents/scripts/lib/cli-usage.js +5 -27
- package/.agents/scripts/lib/cli-utils.js +2 -12
- package/.agents/scripts/lib/close-validation/commands.js +13 -76
- package/.agents/scripts/lib/close-validation/gates.js +92 -331
- package/.agents/scripts/lib/close-validation/process.js +121 -151
- package/.agents/scripts/lib/close-validation/projections/advisories.js +5 -31
- package/.agents/scripts/lib/close-validation/projections/crap.js +19 -67
- package/.agents/scripts/lib/close-validation/projections/head-sha.js +1 -17
- package/.agents/scripts/lib/close-validation/projections/inputs.js +4 -34
- package/.agents/scripts/lib/close-validation/projections/maintainability.js +11 -58
- package/.agents/scripts/lib/close-validation/runner.js +53 -110
- package/.agents/scripts/lib/command-header.js +6 -28
- package/.agents/scripts/lib/config/acceptance-eval.js +4 -30
- package/.agents/scripts/lib/config/baselines.js +3 -14
- package/.agents/scripts/lib/config/ci.js +8 -38
- package/.agents/scripts/lib/config/commands.js +1 -15
- package/.agents/scripts/lib/config/defaults.js +4 -33
- package/.agents/scripts/lib/config/delivery-routing.js +6 -35
- package/.agents/scripts/lib/config/explain.js +9 -80
- package/.agents/scripts/lib/config/gates/coverage.schema.js +0 -12
- package/.agents/scripts/lib/config/gates/crap-incremental-coverage.schema.js +2 -30
- package/.agents/scripts/lib/config/gates/crap.schema.js +1 -34
- package/.agents/scripts/lib/config/gates/duplication.schema.js +1 -8
- package/.agents/scripts/lib/config/gates/index.js +2 -17
- package/.agents/scripts/lib/config/gates/maintainability.schema.js +1 -20
- package/.agents/scripts/lib/config/gates/mutation.schema.js +1 -7
- package/.agents/scripts/lib/config/gates/shared.js +4 -64
- package/.agents/scripts/lib/config/github.js +4 -22
- package/.agents/scripts/lib/config/limits.js +4 -57
- package/.agents/scripts/lib/config/paths.js +2 -21
- package/.agents/scripts/lib/config/qa.js +4 -38
- package/.agents/scripts/lib/config/quality.js +76 -432
- package/.agents/scripts/lib/config/runners.js +12 -56
- package/.agents/scripts/lib/config/runtime.js +13 -57
- package/.agents/scripts/lib/config/shared.js +2 -16
- package/.agents/scripts/lib/config/sync-agentrc.js +9 -50
- package/.agents/scripts/lib/config/temp-paths.js +40 -280
- package/.agents/scripts/lib/config/validate-orchestration.js +5 -17
- package/.agents/scripts/lib/config/worktree-isolation.js +9 -28
- package/.agents/scripts/lib/config-resolver.js +10 -52
- package/.agents/scripts/lib/config-schema-shared.js +1 -4
- package/.agents/scripts/lib/config-settings-schema-delivery.js +12 -294
- package/.agents/scripts/lib/config-settings-schema-quality.js +7 -219
- package/.agents/scripts/lib/config-settings-schema.js +37 -274
- package/.agents/scripts/lib/coverage-baseline.js +20 -110
- package/.agents/scripts/lib/coverage-capture-fullscope.js +12 -37
- package/.agents/scripts/lib/coverage-capture-incremental.js +12 -43
- package/.agents/scripts/lib/coverage-capture-usage.js +4 -24
- package/.agents/scripts/lib/coverage-capture.js +99 -224
- package/.agents/scripts/lib/coverage-utils.js +14 -79
- package/.agents/scripts/lib/cpu-pool.js +17 -123
- package/.agents/scripts/lib/crap-baseline-join.js +16 -88
- package/.agents/scripts/lib/crap-coordinates.js +6 -25
- package/.agents/scripts/lib/crap-engine.js +40 -153
- package/.agents/scripts/lib/crap-method-identity.js +16 -78
- package/.agents/scripts/lib/crap-utils.js +31 -155
- package/.agents/scripts/lib/cyclomatic-ceiling.js +14 -87
- package/.agents/scripts/lib/cyclomatic-scope.js +10 -50
- package/.agents/scripts/lib/dead-exports-knip.js +18 -56
- package/.agents/scripts/lib/dead-exports-mode.js +5 -24
- package/.agents/scripts/lib/degraded-mode.js +3 -26
- package/.agents/scripts/lib/dependency-parser.js +8 -40
- package/.agents/scripts/lib/dependency-version.js +13 -35
- package/.agents/scripts/lib/detect-package-manager.js +6 -36
- package/.agents/scripts/lib/doc-tiers.js +22 -126
- package/.agents/scripts/lib/duplicate-search.js +8 -72
- package/.agents/scripts/lib/env-loader.js +5 -27
- package/.agents/scripts/lib/error-redactor.js +6 -31
- package/.agents/scripts/lib/errors/index.js +2 -22
- package/.agents/scripts/lib/escomplex-ast-compat.js +22 -163
- package/.agents/scripts/lib/escomplex-kernel.js +21 -123
- package/.agents/scripts/lib/feedback-loop/graduator-core.js +93 -419
- package/.agents/scripts/lib/feedback-loop/prior-feedback-fetcher.js +20 -98
- package/.agents/scripts/lib/feedback-loop/retro-proposals-graduator.js +27 -151
- package/.agents/scripts/lib/findings/audit-ledger.js +23 -97
- package/.agents/scripts/lib/findings/classify-finding.js +14 -69
- package/.agents/scripts/lib/findings/promote-finding.js +14 -112
- package/.agents/scripts/lib/findings/provenance-field.js +11 -52
- package/.agents/scripts/lib/findings/route-finding.js +37 -255
- package/.agents/scripts/lib/findings/semantic-issue-search.js +14 -59
- package/.agents/scripts/lib/findings/severity.js +18 -104
- package/.agents/scripts/lib/format-generated-json.js +12 -44
- package/.agents/scripts/lib/full-suite-lock.js +160 -429
- package/.agents/scripts/lib/full-suite-queue.js +213 -0
- package/.agents/scripts/lib/gates/baseline-store.js +5 -9
- package/.agents/scripts/lib/gates/friction.js +1 -3
- package/.agents/scripts/lib/generated/agentrc-validator.js +2 -2
- package/.agents/scripts/lib/gh-exec.js +31 -259
- package/.agents/scripts/lib/git/cached-fetch.js +9 -52
- package/.agents/scripts/lib/git/sync-from-base.js +15 -107
- package/.agents/scripts/lib/git-branch-cleanup.js +14 -61
- package/.agents/scripts/lib/git-branch-lifecycle.js +16 -87
- package/.agents/scripts/lib/git-utils.js +37 -161
- package/.agents/scripts/lib/github/framework-repo.js +8 -71
- package/.agents/scripts/lib/github-url.js +2 -17
- package/.agents/scripts/lib/import-graph.js +11 -38
- package/.agents/scripts/lib/install-cmd-parser.js +4 -13
- package/.agents/scripts/lib/json-utils.js +3 -18
- package/.agents/scripts/lib/label-constants.js +16 -111
- package/.agents/scripts/lib/label-taxonomy.js +4 -30
- package/.agents/scripts/lib/maintainability-engine.js +12 -80
- package/.agents/scripts/lib/maintainability-unscorable.js +5 -25
- package/.agents/scripts/lib/maintainability-utils.js +16 -92
- package/.agents/scripts/lib/mandrel-catalog.js +12 -70
- package/.agents/scripts/lib/notifications/notifier.js +13 -38
- package/.agents/scripts/lib/npm-scripts.js +4 -23
- package/.agents/scripts/lib/observability/metrics-ledger.js +16 -76
- package/.agents/scripts/lib/observability/runtime-friction.js +44 -286
- package/.agents/scripts/lib/observability/signal-validator.js +5 -37
- package/.agents/scripts/lib/observability/signals-writer.js +11 -121
- package/.agents/scripts/lib/observability/source-classifier.js +21 -203
- package/.agents/scripts/lib/observability/terse-result.js +14 -47
- package/.agents/scripts/lib/onboard/init-tail.js +13 -74
- package/.agents/scripts/lib/onboard/scaffold-docs.js +11 -34
- package/.agents/scripts/lib/orchestration/acceptance-eval-decision.js +25 -139
- package/.agents/scripts/lib/orchestration/auto-merge-cwd.js +11 -66
- package/.agents/scripts/lib/orchestration/behind-recovery.js +10 -55
- package/.agents/scripts/lib/orchestration/ceremony-routing.js +5 -75
- package/.agents/scripts/lib/orchestration/change-set.js +7 -36
- package/.agents/scripts/lib/orchestration/check-baselines/phases/compare.js +9 -46
- package/.agents/scripts/lib/orchestration/check-baselines/phases/evaluate.js +11 -44
- package/.agents/scripts/lib/orchestration/check-baselines/phases/floors.js +5 -24
- package/.agents/scripts/lib/orchestration/check-baselines/phases/friction.js +3 -12
- package/.agents/scripts/lib/orchestration/check-baselines/phases/parse-args.js +5 -38
- package/.agents/scripts/lib/orchestration/check-baselines/phases/pipeline.js +3 -8
- package/.agents/scripts/lib/orchestration/check-baselines/phases/refresh-ack.js +28 -136
- package/.agents/scripts/lib/orchestration/check-baselines/phases/report.js +3 -13
- package/.agents/scripts/lib/orchestration/check-state.js +92 -0
- package/.agents/scripts/lib/orchestration/ci-gap-intake.js +37 -144
- package/.agents/scripts/lib/orchestration/ci-rerun-guard.js +42 -189
- package/.agents/scripts/lib/orchestration/code-review.js +24 -128
- package/.agents/scripts/lib/orchestration/column-sync.js +23 -111
- package/.agents/scripts/lib/orchestration/complexity-gate.js +42 -214
- package/.agents/scripts/lib/orchestration/deliver-recover.js +36 -168
- package/.agents/scripts/lib/orchestration/dependency-analyzer.js +4 -35
- package/.agents/scripts/lib/orchestration/dependency-candidates.js +9 -41
- package/.agents/scripts/lib/orchestration/diff-magnitude.js +25 -115
- package/.agents/scripts/lib/orchestration/doc-reader.js +2 -6
- package/.agents/scripts/lib/orchestration/docs-digest.js +13 -51
- package/.agents/scripts/lib/orchestration/epic-candidates.js +13 -53
- package/.agents/scripts/lib/orchestration/epic-checklist.js +9 -33
- package/.agents/scripts/lib/orchestration/epic-container.js +41 -167
- package/.agents/scripts/lib/orchestration/epic-expansion.js +10 -40
- package/.agents/scripts/lib/orchestration/epic-rollup.js +55 -207
- package/.agents/scripts/lib/orchestration/file-assumption-enum.js +2 -22
- package/.agents/scripts/lib/orchestration/file-assumptions.js +45 -253
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches-detect.js +9 -46
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches-reap.js +7 -57
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches.js +21 -126
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/cli.js +2 -6
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/fast-forward.js +1 -4
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/filters.js +1 -5
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes-ff.js +9 -34
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes.js +41 -190
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/merged-tip.js +9 -45
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/parse-args.js +1 -4
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/phase-drivers.js +19 -85
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/prompts.js +3 -17
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/prune.js +1 -5
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/render.js +16 -100
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/stashes.js +1 -4
- package/.agents/scripts/lib/orchestration/lease-guard-shared.js +16 -67
- package/.agents/scripts/lib/orchestration/lifecycle/emit-ledger-event.js +9 -33
- package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-flip-failed.js +8 -29
- package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-unlanded.js +15 -68
- package/.agents/scripts/lib/orchestration/light-backstop.js +11 -49
- package/.agents/scripts/lib/orchestration/light-escalation.js +21 -89
- package/.agents/scripts/lib/orchestration/light-suitability.js +26 -231
- package/.agents/scripts/lib/orchestration/merge-block-class.js +39 -216
- package/.agents/scripts/lib/orchestration/merge-poll.js +104 -377
- package/.agents/scripts/lib/orchestration/pinned-identifier-lint.js +17 -57
- package/.agents/scripts/lib/orchestration/plan-context.js +52 -303
- package/.agents/scripts/lib/orchestration/plan-critic-conditions.js +22 -79
- package/.agents/scripts/lib/orchestration/plan-critics-evaluate.js +5 -31
- package/.agents/scripts/lib/orchestration/plan-metrics.js +29 -108
- package/.agents/scripts/lib/orchestration/plan-navigation.js +8 -27
- package/.agents/scripts/lib/orchestration/plan-persist/acceptance-handle-repair.js +12 -49
- package/.agents/scripts/lib/orchestration/plan-persist/audit-provenance.js +18 -73
- package/.agents/scripts/lib/orchestration/plan-persist/changes-repair.js +14 -78
- package/.agents/scripts/lib/orchestration/plan-persist/cross-plan-links.js +6 -30
- package/.agents/scripts/lib/orchestration/plan-persist/epic-adoption.js +14 -65
- package/.agents/scripts/lib/orchestration/plan-persist/epic-ops.js +21 -76
- package/.agents/scripts/lib/orchestration/plan-persist/external-deps.js +6 -43
- package/.agents/scripts/lib/orchestration/plan-persist/persist-helpers.js +14 -68
- package/.agents/scripts/lib/orchestration/plan-persist/plan-context-source.js +9 -41
- package/.agents/scripts/lib/orchestration/plan-persist/run-plan-persist.js +49 -248
- package/.agents/scripts/lib/orchestration/plan-persist/soft-findings.js +2 -12
- package/.agents/scripts/lib/orchestration/plan-persist/story-ops.js +85 -368
- package/.agents/scripts/lib/orchestration/plan-persist/summary.js +8 -38
- package/.agents/scripts/lib/orchestration/plan-persist/supersede-ops.js +30 -190
- package/.agents/scripts/lib/orchestration/plan-persist/wave-collision-gate.js +9 -49
- package/.agents/scripts/lib/orchestration/plan-persist/wave-serialisation.js +7 -28
- package/.agents/scripts/lib/orchestration/plan-reachability.js +13 -42
- package/.agents/scripts/lib/orchestration/plan-run-labels/reap.js +16 -91
- package/.agents/scripts/lib/orchestration/plan-runner/worktree-sweep.js +16 -54
- package/.agents/scripts/lib/orchestration/plan-text-hygiene.js +10 -52
- package/.agents/scripts/lib/orchestration/planning/authoring-context.js +14 -109
- package/.agents/scripts/lib/orchestration/planning/memory-pool-advisory.js +11 -83
- package/.agents/scripts/lib/orchestration/pr-watch.js +48 -306
- package/.agents/scripts/lib/orchestration/project-meta-cache.js +15 -80
- package/.agents/scripts/lib/orchestration/project-meta-resolver.js +10 -51
- package/.agents/scripts/lib/orchestration/reassert-status-column.js +12 -76
- package/.agents/scripts/lib/orchestration/remote-verifier.js +12 -36
- package/.agents/scripts/lib/orchestration/resolve-stories.js +33 -164
- package/.agents/scripts/lib/orchestration/retro-proposals.js +66 -361
- package/.agents/scripts/lib/orchestration/review-base-ref.js +9 -43
- package/.agents/scripts/lib/orchestration/review-depth.js +12 -94
- package/.agents/scripts/lib/orchestration/review-providers/codex.js +10 -111
- package/.agents/scripts/lib/orchestration/review-providers/degraded-gates.js +13 -71
- package/.agents/scripts/lib/orchestration/review-providers/findings-renderer.js +7 -51
- package/.agents/scripts/lib/orchestration/review-providers/mi-exemptions.js +8 -53
- package/.agents/scripts/lib/orchestration/review-providers/native.js +30 -214
- package/.agents/scripts/lib/orchestration/review-providers/parse-findings.js +7 -52
- package/.agents/scripts/lib/orchestration/review-providers/review-depth.js +4 -33
- package/.agents/scripts/lib/orchestration/review-providers/review-provider-factory.js +11 -71
- package/.agents/scripts/lib/orchestration/review-providers/scoped-lint.js +19 -131
- package/.agents/scripts/lib/orchestration/review-providers/security-review.js +6 -89
- package/.agents/scripts/lib/orchestration/review-providers/types.js +26 -56
- package/.agents/scripts/lib/orchestration/review-providers/ultrareview.js +3 -46
- package/.agents/scripts/lib/orchestration/run-epilogue.js +40 -199
- package/.agents/scripts/lib/orchestration/run-scoped-config.js +13 -81
- package/.agents/scripts/lib/orchestration/single-story-close/close-note.js +7 -34
- package/.agents/scripts/lib/orchestration/single-story-close/failed-terminal.js +16 -89
- package/.agents/scripts/lib/orchestration/single-story-close/gate-log.js +18 -109
- package/.agents/scripts/lib/orchestration/single-story-close/phases/auto-merge.js +83 -239
- package/.agents/scripts/lib/orchestration/single-story-close/phases/base-sync.js +18 -80
- package/.agents/scripts/lib/orchestration/single-story-close/phases/close-validation.js +103 -97
- package/.agents/scripts/lib/orchestration/single-story-close/phases/code-review.js +8 -64
- package/.agents/scripts/lib/orchestration/single-story-close/phases/confirm-merge.js +136 -486
- package/.agents/scripts/lib/orchestration/single-story-close/phases/conventional-subject.js +30 -134
- package/.agents/scripts/lib/orchestration/single-story-close/phases/graphql-preflight.js +9 -50
- package/.agents/scripts/lib/orchestration/single-story-close/phases/lock-wait-pending.js +49 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/normalize-pr-title.js +13 -86
- package/.agents/scripts/lib/orchestration/single-story-close/phases/options.js +20 -95
- package/.agents/scripts/lib/orchestration/single-story-close/phases/post-land.js +46 -203
- package/.agents/scripts/lib/orchestration/single-story-close/phases/pre-gate-steps.js +8 -50
- package/.agents/scripts/lib/orchestration/single-story-close/phases/pull-request.js +12 -83
- package/.agents/scripts/lib/orchestration/single-story-close/phases/push.js +6 -39
- package/.agents/scripts/lib/orchestration/single-story-close/phases/review-block.js +1 -6
- package/.agents/scripts/lib/orchestration/single-story-close/phases/review-outcome.js +4 -28
- package/.agents/scripts/lib/orchestration/single-story-close/phases/review-override.js +6 -51
- package/.agents/scripts/lib/orchestration/single-story-close/phases/worktree-reap.js +6 -34
- package/.agents/scripts/lib/orchestration/single-story-close/phases/wrong-tree-guard.js +23 -121
- package/.agents/scripts/lib/orchestration/single-story-close/runner.js +110 -290
- package/.agents/scripts/lib/orchestration/single-story-lease-guard.js +15 -69
- package/.agents/scripts/lib/orchestration/story-body-gate.js +4 -23
- package/.agents/scripts/lib/orchestration/story-close/baseline-upward-writeback.js +50 -179
- package/.agents/scripts/lib/orchestration/story-close/context-budget-writeback.js +11 -41
- package/.agents/scripts/lib/orchestration/story-close/format-autofix.js +23 -311
- package/.agents/scripts/lib/orchestration/story-close/phases/local-lens-review.js +22 -147
- package/.agents/scripts/lib/orchestration/story-close/phases/review-core.js +16 -67
- package/.agents/scripts/lib/orchestration/story-deliver-terminal-schema.js +12 -68
- package/.agents/scripts/lib/orchestration/story-deliver-terminal.js +42 -201
- package/.agents/scripts/lib/orchestration/story-follow-ups.js +43 -245
- package/.agents/scripts/lib/orchestration/story-init-envelope.js +4 -23
- package/.agents/scripts/lib/orchestration/story-init-remote.js +2 -6
- package/.agents/scripts/lib/orchestration/story-reachability.js +3 -23
- package/.agents/scripts/lib/orchestration/task-body-validator.js +12 -126
- package/.agents/scripts/lib/orchestration/ticket-lease.js +28 -131
- package/.agents/scripts/lib/orchestration/ticket-validator-conflicts.js +15 -149
- package/.agents/scripts/lib/orchestration/ticket-validator-sizing.js +5 -33
- package/.agents/scripts/lib/orchestration/ticket-validator.js +39 -181
- package/.agents/scripts/lib/orchestration/ticketing/bulk.js +51 -244
- package/.agents/scripts/lib/orchestration/ticketing/reads.js +39 -250
- package/.agents/scripts/lib/orchestration/ticketing/state.js +14 -68
- package/.agents/scripts/lib/orchestration/ticketing/transition.js +46 -263
- package/.agents/scripts/lib/orchestration/ticketing.js +2 -26
- package/.agents/scripts/lib/orchestration/verify-credit.js +18 -79
- package/.agents/scripts/lib/orchestration/worktree-dirty.js +5 -30
- package/.agents/scripts/lib/path-security.js +3 -6
- package/.agents/scripts/lib/plan-phase-cleanup.js +9 -49
- package/.agents/scripts/lib/preflight-runner.js +13 -69
- package/.agents/scripts/lib/process-group.js +143 -0
- package/.agents/scripts/lib/project-root.js +2 -8
- package/.agents/scripts/lib/provider-factory.js +2 -25
- package/.agents/scripts/lib/qa/console-allowlist.js +10 -59
- package/.agents/scripts/lib/qa/qa-session.js +15 -69
- package/.agents/scripts/lib/qa/redact-evidence.js +18 -129
- package/.agents/scripts/lib/qa/resolve-qa-contract.js +26 -135
- package/.agents/scripts/lib/qa/resolve-selection.js +16 -84
- package/.agents/scripts/lib/reserved-test-ids.js +9 -47
- package/.agents/scripts/lib/runtime-deps/dep-resolution.js +13 -53
- package/.agents/scripts/lib/runtime-deps/ensure-installed.js +10 -44
- package/.agents/scripts/lib/runtime-deps/manifest.js +10 -30
- package/.agents/scripts/lib/runtime-deps/parser-major.js +15 -51
- package/.agents/scripts/lib/runtime-deps/preflight.js +4 -22
- package/.agents/scripts/lib/runtime-deps/scan-imports.js +11 -55
- package/.agents/scripts/lib/signals/detectors/common.js +12 -38
- package/.agents/scripts/lib/signals/index.js +2 -19
- package/.agents/scripts/lib/signals/schema.js +14 -109
- package/.agents/scripts/lib/signals/write.js +2 -11
- package/.agents/scripts/lib/single-story/confirm-merge.js +31 -72
- package/.agents/scripts/lib/single-story/story-merged-notify.js +8 -49
- package/.agents/scripts/lib/single-story-sweep/protection-ctx.js +4 -26
- package/.agents/scripts/lib/single-story-sweep/protection.js +13 -100
- package/.agents/scripts/lib/single-story-sweep/sweep-lock.js +60 -258
- package/.agents/scripts/lib/single-story-sweep.js +14 -97
- package/.agents/scripts/lib/skills/parse-skill.js +13 -59
- package/.agents/scripts/lib/skills/skills-index.js +8 -29
- package/.agents/scripts/lib/skills/walk-skill-files.js +17 -78
- package/.agents/scripts/lib/source-extensions.js +11 -42
- package/.agents/scripts/lib/source-text/strip-js-comments.js +8 -41
- package/.agents/scripts/lib/stdio-flush.js +9 -36
- package/.agents/scripts/lib/story-adjacency.js +8 -40
- package/.agents/scripts/lib/story-body/body-format-lints.js +22 -83
- package/.agents/scripts/lib/story-body/footer-block.js +11 -44
- package/.agents/scripts/lib/story-body/story-body.js +83 -358
- package/.agents/scripts/lib/temp-retention.js +42 -143
- package/.agents/scripts/lib/templates/decomposer-prompts.js +11 -65
- package/.agents/scripts/lib/test-env.js +12 -65
- package/.agents/scripts/lib/test-run-credit.js +10 -65
- package/.agents/scripts/lib/test-runner-contract.js +19 -74
- package/.agents/scripts/lib/test-temp.js +38 -184
- package/.agents/scripts/lib/test-tiers.js +12 -96
- package/.agents/scripts/lib/ticket-body-sections.js +21 -96
- package/.agents/scripts/lib/transpile.js +15 -74
- package/.agents/scripts/lib/util/concurrent-map.js +6 -25
- package/.agents/scripts/lib/util/parse-id-list.js +8 -34
- package/.agents/scripts/lib/util/poll-loop.js +8 -28
- package/.agents/scripts/lib/util/with-timeout.js +2 -11
- package/.agents/scripts/lib/validation-evidence.js +21 -96
- package/.agents/scripts/lib/wave-runner/footprint.js +17 -70
- package/.agents/scripts/lib/wave-runner/live-probe.js +53 -221
- package/.agents/scripts/lib/wave-runner/ready-set.js +72 -301
- package/.agents/scripts/lib/workers/crap-worker.js +11 -64
- package/.agents/scripts/lib/workers/maintainability-report-worker.js +8 -45
- package/.agents/scripts/lib/workers/maintainability-worker.js +5 -21
- package/.agents/scripts/lib/workers/serve-worker-messages.js +2 -18
- package/.agents/scripts/lib/workflow-closure.js +22 -105
- package/.agents/scripts/lib/workspace-provisioner.js +16 -54
- package/.agents/scripts/lib/worktree/git-hooks.js +15 -60
- package/.agents/scripts/lib/worktree/lifecycle/force-drain.js +20 -60
- package/.agents/scripts/lib/worktree/lifecycle/merge-reachability.js +10 -62
- package/.agents/scripts/lib/worktree/lifecycle/pending-cleanup.js +22 -86
- package/.agents/scripts/lib/worktree/lifecycle/reap.js +24 -126
- package/.agents/scripts/lib/worktree/lifecycle-manager.js +2 -20
- package/.agents/scripts/lib/worktree/node-modules-strategy.js +46 -180
- package/.agents/scripts/lib/worktree-manager.js +15 -40
- package/.agents/scripts/lint-issue-body.js +12 -68
- package/.agents/scripts/mandrel-update-preflight.js +10 -70
- package/.agents/scripts/merge-baseline.js +30 -104
- package/.agents/scripts/nav-registry-diff.js +22 -108
- package/.agents/scripts/notify.js +12 -69
- package/.agents/scripts/plan-context.js +27 -111
- package/.agents/scripts/plan-critics.js +12 -66
- package/.agents/scripts/plan-persist.js +31 -148
- package/.agents/scripts/plan-run-epilogue.js +11 -37
- package/.agents/scripts/pr-watch-with-update.js +76 -267
- package/.agents/scripts/providers/github/auth.js +3 -8
- package/.agents/scripts/providers/github/blocked-by-add.js +14 -61
- package/.agents/scripts/providers/github/board-add.js +5 -21
- package/.agents/scripts/providers/github/branch-protection.js +11 -43
- package/.agents/scripts/providers/github/cache.js +2 -14
- package/.agents/scripts/providers/github/comments.js +7 -40
- package/.agents/scripts/providers/github/compose.js +3 -19
- package/.agents/scripts/providers/github/errors.js +22 -125
- package/.agents/scripts/providers/github/issues.js +31 -123
- package/.agents/scripts/providers/github/labels.js +24 -124
- package/.agents/scripts/providers/github/mappers.js +5 -27
- package/.agents/scripts/providers/github/merge-methods.js +3 -22
- package/.agents/scripts/providers/github/project-board.js +2 -17
- package/.agents/scripts/providers/github/projects-v2-graphql.js +3 -6
- package/.agents/scripts/providers/github/request-helpers.js +5 -32
- package/.agents/scripts/providers/github/search-budget.js +9 -39
- package/.agents/scripts/providers/github/search-query.js +5 -26
- package/.agents/scripts/providers/github/sub-issue-add.js +15 -65
- package/.agents/scripts/providers/github/sub-issues.js +7 -36
- package/.agents/scripts/providers/github/tickets.js +32 -134
- package/.agents/scripts/providers/github.js +18 -59
- package/.agents/scripts/prune-plan-run-labels.js +12 -46
- package/.agents/scripts/quality-preview.js +35 -220
- package/.agents/scripts/resolve-doc-tiers.js +3 -26
- package/.agents/scripts/resolve-stories.js +16 -67
- package/.agents/scripts/resync-status-column.js +6 -25
- package/.agents/scripts/run-tests.js +29 -104
- package/.agents/scripts/single-story-close.js +23 -135
- package/.agents/scripts/single-story-confirm-merge.js +32 -139
- package/.agents/scripts/single-story-init.js +47 -209
- package/.agents/scripts/stories-wave-tick.js +102 -472
- package/.agents/scripts/sync-agentrc.js +3 -21
- package/.agents/scripts/sync-claude-agents.js +9 -55
- package/.agents/scripts/sync-claude-commands.js +20 -110
- package/.agents/scripts/test-wrapper.js +6 -43
- package/.agents/scripts/update-coverage-baseline.js +5 -22
- package/.agents/scripts/update-crap-baseline.js +7 -30
- package/.agents/scripts/update-duplication-baseline.js +16 -92
- package/.agents/scripts/update-maintainability-baseline.js +8 -62
- package/.agents/scripts/update-ticket-state.js +1 -7
- package/.agents/scripts/validate-skills.js +6 -26
- package/.agents/templates/agent-protocol.md +2 -2
- package/.agents/templates/docs/audit-sweep-runbook.md +3 -4
- package/.agents/workflows/audit-accessibility.md +4 -7
- package/.agents/workflows/audit-adrs.md +3 -6
- package/.agents/workflows/audit-architecture.md +3 -11
- package/.agents/workflows/audit-baselines.md +6 -9
- package/.agents/workflows/audit-clean-code.md +8 -12
- package/.agents/workflows/audit-data-model.md +3 -7
- package/.agents/workflows/audit-dependencies.md +4 -7
- package/.agents/workflows/audit-devops.md +4 -8
- package/.agents/workflows/audit-documentation.md +1 -4
- package/.agents/workflows/audit-mobile.md +4 -7
- package/.agents/workflows/audit-navigability.md +3 -6
- package/.agents/workflows/audit-performance.md +2 -4
- package/.agents/workflows/audit-privacy.md +4 -7
- package/.agents/workflows/audit-quality.md +4 -7
- package/.agents/workflows/audit-security.md +4 -7
- package/.agents/workflows/audit-seo.md +4 -7
- package/.agents/workflows/audit-sre.md +4 -7
- package/.agents/workflows/audit-to-stories.md +17 -30
- package/.agents/workflows/audit-ux-ui.md +4 -7
- package/.agents/workflows/helpers/audit-lens-core.md +1 -1
- package/.agents/workflows/helpers/code-quality-guardrails.md +12 -15
- package/.agents/workflows/helpers/deliver-digest.md +6 -4
- package/.agents/workflows/helpers/deliver-reference.md +114 -188
- package/.agents/workflows/helpers/deliver-story-reference.md +189 -533
- package/.agents/workflows/helpers/plan-reference.md +86 -139
- package/.agents/workflows/helpers/qa-core.md +12 -0
- package/.agents/workflows/memory-consolidate.md +1 -1
- package/.agents/workflows/qa-assist.md +27 -71
- package/.agents/workflows/qa-explore.md +19 -59
- package/.agents/workflows/qa-run.md +11 -33
- package/README.md +1 -1
- package/bin/mandrel.js +5 -46
- package/bin/postinstall.js +18 -107
- package/docs/CHANGELOG.md +25 -0
- package/lib/cli/doctor.js +11 -71
- package/lib/cli/init.js +26 -165
- package/lib/cli/migrate.js +5 -64
- package/lib/cli/registry.js +84 -467
- package/lib/cli/sync-agents.js +4 -64
- package/lib/cli/sync-commands.js +11 -64
- package/lib/cli/sync.js +34 -213
- package/lib/cli/uninstall.js +40 -219
- package/lib/cli/update.js +105 -661
- package/lib/cli/version-check.js +8 -72
- package/lib/cli/version-helpers.js +14 -87
- package/lib/migrations/helpers/retire-agentrc-key.js +11 -52
- package/lib/migrations/index.js +15 -92
- package/lib/migrations/steps/2.1.0-retire-mi-drop-knobs.js +2 -15
- package/lib/migrations/steps/2.1.0-retire-verify-concurrency-cap.js +1 -13
- package/lib/migrations/steps/2.11.0-retire-max-seed-words.js +2 -15
- package/lib/migrations/steps/2.2.0-retire-epic-ac-tags.js +9 -38
- package/lib/migrations/steps/2.20.0-retire-codebase-snapshot.js +1 -13
- package/lib/migrations/steps/2.32.0-retire-lint-baseline-command.js +2 -27
- package/lib/migrations/steps/2.57.0-retire-delivery-limit-knobs.js +2 -23
- package/lib/migrations/steps/2.57.0-retire-planning-limit-knobs.js +2 -27
- package/lib/migrations/steps/2.60.0-retire-audit-results-autofile.js +2 -21
- package/lib/migrations/steps/strip-removed-agentrc-keys.js +333 -0
- package/package.json +16 -14
- package/.agents/docs/SDLC.md +0 -590
- package/.agents/docs/quality-gates.md +0 -1183
- package/.agents/rules/known-tooling-behavior.md +0 -200
- package/.agents/rules/orchestration-error-handling.md +0 -61
- package/.agents/rules/test-seams.md +0 -59
- package/.agents/schemas/baselines/lighthouse.schema.json +0 -59
- package/.agents/schemas/baselines/lint.schema.json +0 -47
- package/.agents/scripts/check-action-pinning.js +0 -260
- package/.agents/scripts/check-audit-attribution.js +0 -302
- package/.agents/scripts/check-baseline-drift.js +0 -211
- package/.agents/scripts/check-baseline-scope.js +0 -362
- package/.agents/scripts/check-generated-validator.js +0 -202
- package/.agents/scripts/check-knip-entries.js +0 -159
- package/.agents/scripts/check-lifecycle-lint.js +0 -294
- package/.agents/scripts/check-pinned-override-notes.js +0 -102
- package/.agents/scripts/check-schema-references.js +0 -368
- package/.agents/scripts/check-test-portability.js +0 -512
- package/.agents/scripts/check-workflow-citations.js +0 -218
- package/.agents/scripts/check-workflow-cli-lint.js +0 -299
- package/.agents/scripts/check-workflow-timeouts.js +0 -291
- package/.agents/scripts/install-matrix-assert.js +0 -326
- package/.agents/scripts/lib/audit-advisories.js +0 -195
- package/.agents/scripts/lib/audit-attribution.js +0 -134
- package/.agents/scripts/lib/baselines/drift-detector.js +0 -351
- package/.agents/scripts/lib/baselines/kinds/lighthouse.js +0 -87
- package/.agents/scripts/lib/baselines/kinds/lint.js +0 -184
- package/.agents/scripts/lib/baselines/orphan-pruner.js +0 -233
- package/.agents/scripts/lib/baselines/scope-assert.js +0 -223
- package/.agents/scripts/lib/baselines/scope-inventory.js +0 -314
- package/.agents/scripts/lib/c8-cli-path.js +0 -21
- package/.agents/scripts/lib/config/gates/lighthouse.schema.js +0 -51
- package/.agents/scripts/lib/config/gates/lint.schema.js +0 -18
- package/.agents/scripts/lib/dynamic-workflow/architecture-report-contract.js +0 -70
- package/.agents/scripts/lib/dynamic-workflow/audit-orchestrator.js +0 -284
- package/.agents/scripts/lib/dynamic-workflow/clean-code-report-contract.js +0 -80
- package/.agents/scripts/lib/dynamic-workflow/degraded-coverage.js +0 -81
- package/.agents/scripts/lib/dynamic-workflow/documentation-report-contract.js +0 -87
- package/.agents/scripts/lib/dynamic-workflow/performance-report-contract.js +0 -74
- package/.agents/scripts/lib/dynamic-workflow/quality-report-contract.js +0 -90
- package/.agents/scripts/lib/dynamic-workflow/report-contract-core.js +0 -43
- package/.agents/scripts/lib/dynamic-workflow/security-report-contract.js +0 -83
- package/.agents/scripts/lib/fs-walk.js +0 -52
- package/.agents/scripts/lib/knip-config-resolver.js +0 -181
- package/.agents/scripts/lib/knip-entry-sync.js +0 -452
- package/.agents/scripts/lib/pinned-override-notes.js +0 -88
- package/.agents/scripts/lib/pinned-override-resolve.js +0 -212
- package/.agents/scripts/lib/test-isolate/cli-options.js +0 -93
- package/.agents/scripts/lib/test-isolate/env-snapshot-loader.js +0 -52
- package/.agents/scripts/lib/test-isolate/list-files.js +0 -90
- package/.agents/scripts/lib/test-isolate/parse-tap.js +0 -75
- package/.agents/scripts/lib/test-isolate/progress-log.js +0 -45
- package/.agents/scripts/lib/test-isolate/render-report.js +0 -97
- package/.agents/scripts/lib/test-isolate/run-isolate.js +0 -87
- package/.agents/scripts/lib/test-isolate/runner.js +0 -483
- package/.agents/scripts/lib/test-profile/parse-tap.js +0 -136
- package/.agents/scripts/lib/test-profile/render-report.js +0 -45
- package/.agents/scripts/lint-label-vocabulary.js +0 -214
- package/.agents/scripts/post-structured-comment.js +0 -127
- package/.agents/scripts/provision-git-hooks.js +0 -85
- package/.agents/scripts/prune-baseline-orphans.js +0 -181
- package/.agents/scripts/run-coverage.js +0 -197
- package/.agents/scripts/run-lint.js +0 -133
- package/.agents/scripts/run-test-profile.js +0 -129
- package/.agents/scripts/run-verify.js +0 -125
- package/.agents/scripts/test-isolate.js +0 -55
- package/.agents/scripts/update-dead-exports-baseline.js +0 -321
|
@@ -6,17 +6,14 @@ description: Audit CI/CD workflows, container images, infrastructure-as-code, an
|
|
|
6
6
|
|
|
7
7
|
You are a Principal DevOps Engineer & Infrastructure Architect auditing this
|
|
8
8
|
repo's DevOps infrastructure, DX tooling, and CI/CD pipelines for
|
|
9
|
-
inefficiencies, security risks, and modernization opportunities. The shared lens
|
|
10
|
-
machinery — read-only constraint, scope interpretation, report envelope +
|
|
11
|
-
finding-block skeleton, severity scale, self-cross-check, and execution
|
|
12
|
-
strategy — lives in
|
|
9
|
+
inefficiencies, security risks, and modernization opportunities. The shared lens machinery lives in
|
|
13
10
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
14
11
|
`{{auditOutputDir}}/audit-devops-results.md`. The report adds a **Proposed
|
|
15
12
|
Implementation Roadmap** section (a logical, phased plan).
|
|
16
13
|
|
|
17
14
|
## Scope
|
|
18
15
|
|
|
19
|
-
|
|
16
|
+
Per the core's Scope interpretation:
|
|
20
17
|
|
|
21
18
|
```text
|
|
22
19
|
{{changedFiles}}
|
|
@@ -24,9 +21,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
24
21
|
|
|
25
22
|
## Execution strategy
|
|
26
23
|
|
|
27
|
-
Run this lens as
|
|
28
|
-
|
|
29
|
-
core's Execution strategy).
|
|
24
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
25
|
+
Execution strategy.
|
|
30
26
|
|
|
31
27
|
## Step 1: Detection Battery (Read-Only, Tool-First)
|
|
32
28
|
|
|
@@ -10,10 +10,7 @@ renamed, scripts move, workflows change shape, version/topology claims go stale.
|
|
|
10
10
|
The deterministic gates (`check-doc-links.js` and the generators' `--check`
|
|
11
11
|
mode) catch broken links and generator drift — they cannot tell whether the
|
|
12
12
|
prose still describes how the code actually behaves. That semantic
|
|
13
|
-
verification is this lens's job. The
|
|
14
|
-
shared lens machinery — read-only constraint, scope interpretation, report
|
|
15
|
-
envelope + finding-block skeleton, severity scale, self-cross-check, and
|
|
16
|
-
execution strategy — lives in
|
|
13
|
+
verification is this lens's job. The shared lens machinery lives in
|
|
17
14
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
18
15
|
`{{auditOutputDir}}/audit-documentation-results.md`. Each finding carries a
|
|
19
16
|
**Category:** (`Broken Instruction | Stale Description | Missing Coverage |
|
|
@@ -8,9 +8,7 @@ You are a Senior Mobile Web Engineer holding the frontend to its **small-screen
|
|
|
8
8
|
and touch contract**: does every surface lay out, scroll, and answer a finger on
|
|
9
9
|
a phone and a tablet — and does anything in the suite actually verify that it
|
|
10
10
|
does? Default to **static** detection over source; escalate to a **runtime**
|
|
11
|
-
viewport pass only when a live target is configured. The shared lens machinery
|
|
12
|
-
read-only constraint, scope interpretation, report envelope + finding-block
|
|
13
|
-
skeleton, severity scale, self-cross-check, and execution strategy — lives in
|
|
11
|
+
viewport pass only when a live target is configured. The shared lens machinery lives in
|
|
14
12
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
15
13
|
`{{auditOutputDir}}/audit-mobile-results.md`. Dimension values:
|
|
16
14
|
`Layout & Viewport | Touch Ergonomics | Responsive Assets | Mobile Verification`.
|
|
@@ -55,7 +53,7 @@ small-screen or touch defect; defer the rest so the suite never double-reports:
|
|
|
55
53
|
|
|
56
54
|
## Scope
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
Per the core's Scope interpretation:
|
|
59
57
|
|
|
60
58
|
```text
|
|
61
59
|
{{changedFiles}}
|
|
@@ -63,9 +61,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
63
61
|
|
|
64
62
|
## Execution strategy
|
|
65
63
|
|
|
66
|
-
Run this lens as
|
|
67
|
-
|
|
68
|
-
core's Execution strategy).
|
|
64
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
65
|
+
Execution strategy.
|
|
69
66
|
|
|
70
67
|
## Step 0: Discover the responsive baseline (run first)
|
|
71
68
|
|
|
@@ -16,9 +16,7 @@ nav-registry entry surfaces it for any persona — only a hardcoded deep-link
|
|
|
16
16
|
reaches it) and the **dead nav href** (a nav entry points at a route that does
|
|
17
17
|
not exist). This is **mechanism, not content**: the lens reads the consumer's
|
|
18
18
|
configured route tree and nav-registry SSOT and is a **silent no-op when neither
|
|
19
|
-
is configured**. The shared lens machinery
|
|
20
|
-
interpretation, report envelope + finding-block skeleton, severity scale,
|
|
21
|
-
self-cross-check, and execution strategy — lives in
|
|
19
|
+
is configured**. The shared lens machinery lives in
|
|
22
20
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
23
21
|
`{{auditOutputDir}}/audit-navigability-results.md`. Dimension values:
|
|
24
22
|
`Orphaned Route | Dead Nav Href`; extra finding fields **Route / Door:** and
|
|
@@ -61,9 +59,8 @@ a foreign change set leak into a scoped lens.
|
|
|
61
59
|
|
|
62
60
|
## Execution strategy
|
|
63
61
|
|
|
64
|
-
Run this lens as
|
|
65
|
-
|
|
66
|
-
core's Execution strategy).
|
|
62
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
63
|
+
Execution strategy.
|
|
67
64
|
|
|
68
65
|
## Configuration
|
|
69
66
|
|
|
@@ -11,9 +11,7 @@ read-through: **measure before you judge** (a claim with no profile/timing/byte
|
|
|
11
11
|
count is a hypothesis, not a finding); **adapt to the repo profile** (activate
|
|
12
12
|
only the dimensions that apply, declaring the rest inapplicable); and
|
|
13
13
|
**interleaving correctness is a performance concern** (races have been the most
|
|
14
|
-
expensive defects this repo shipped). The shared lens machinery
|
|
15
|
-
constraint, scope interpretation, report envelope + finding-block skeleton,
|
|
16
|
-
severity scale, self-cross-check, and execution strategy — lives in
|
|
14
|
+
expensive defects this repo shipped). The shared lens machinery lives in
|
|
17
15
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
18
16
|
`{{auditOutputDir}}/audit-performance-results.md`. Extra finding field:
|
|
19
17
|
**Evidence:** [a Step 0 repro command (or quoted code path) + a `measured` or
|
|
@@ -21,7 +19,7 @@ severity scale, self-cross-check, and execution strategy — lives in
|
|
|
21
19
|
|
|
22
20
|
## Scope
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
Per the core's Scope interpretation:
|
|
25
23
|
|
|
26
24
|
```text
|
|
27
25
|
{{changedFiles}}
|
|
@@ -6,9 +6,7 @@ description: Audit logs, telemetry, and persistence paths for PII leakage and re
|
|
|
6
6
|
|
|
7
7
|
You are a Data Privacy Officer & Security Engineer finding accidental logging,
|
|
8
8
|
insecure storage, or unnecessary collection of PII, and checking GDPR/CCPA
|
|
9
|
-
compliance. The shared lens machinery
|
|
10
|
-
interpretation, report envelope + finding-block skeleton, severity scale,
|
|
11
|
-
self-cross-check, and execution strategy — lives in
|
|
9
|
+
compliance. The shared lens machinery lives in
|
|
12
10
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
13
11
|
`{{auditOutputDir}}/audit-privacy-results.md`. This lens labels the severity
|
|
14
12
|
axis **Impact** and uses dimension values `Leaky Log | Insecure Storage | Data
|
|
@@ -17,7 +15,7 @@ Encryption / Logging Safety / Minimization: Pass/Fail/Partial).
|
|
|
17
15
|
|
|
18
16
|
## Scope
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
Per the core's Scope interpretation:
|
|
21
19
|
|
|
22
20
|
```text
|
|
23
21
|
{{changedFiles}}
|
|
@@ -25,9 +23,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
25
23
|
|
|
26
24
|
## Execution strategy
|
|
27
25
|
|
|
28
|
-
Run this lens as
|
|
29
|
-
|
|
30
|
-
core's Execution strategy).
|
|
26
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
27
|
+
Execution strategy.
|
|
31
28
|
|
|
32
29
|
## Step 1: Sink-First Detection
|
|
33
30
|
|
|
@@ -7,9 +7,7 @@ description: Audit test coverage gaps, flaky tests, missing assertions, and test
|
|
|
7
7
|
You are a Principal SDET & Quality Architect auditing the repository's testing
|
|
8
8
|
infrastructure, coverage, flaky tests, mocking strategy, and test-pyramid
|
|
9
9
|
balance — and, in Story-scoped mode, evaluating the implemented tests against
|
|
10
|
-
the Story under audit. The shared lens machinery
|
|
11
|
-
interpretation, report envelope + finding-block skeleton, severity scale,
|
|
12
|
-
self-cross-check, and execution strategy — lives in
|
|
10
|
+
the Story under audit. The shared lens machinery lives in
|
|
13
11
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
14
12
|
`{{auditOutputDir}}/audit-quality-results.md`. Each finding carries a
|
|
15
13
|
**Category:** (`Flakiness | Coverage | Performance | Mocking | Test Plans`); the
|
|
@@ -18,7 +16,7 @@ Test Plans: Healthy / Needs Work / Missing).
|
|
|
18
16
|
|
|
19
17
|
## Scope
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
Per the core's Scope interpretation:
|
|
22
20
|
|
|
23
21
|
```text
|
|
24
22
|
{{changedFiles}}
|
|
@@ -26,9 +24,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
26
24
|
|
|
27
25
|
## Execution strategy
|
|
28
26
|
|
|
29
|
-
Run this lens as
|
|
30
|
-
|
|
31
|
-
core's Execution strategy).
|
|
27
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
28
|
+
Execution strategy.
|
|
32
29
|
|
|
33
30
|
## Step 0 - Mode split + tool-first artifact read (mandatory)
|
|
34
31
|
|
|
@@ -7,9 +7,7 @@ command: false
|
|
|
7
7
|
|
|
8
8
|
You are a Cybersecurity Architect & Penetration Tester conducting a
|
|
9
9
|
comprehensive security review (OWASP Top 10, insecure configs, attack vectors).
|
|
10
|
-
The shared lens machinery
|
|
11
|
-
envelope + finding-block skeleton, severity scale, self-cross-check, and
|
|
12
|
-
execution strategy — lives in
|
|
10
|
+
The shared lens machinery lives in
|
|
13
11
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
14
12
|
`{{auditOutputDir}}/audit-security-results.md`. Extra finding fields: **CWE
|
|
15
13
|
ID:** and **Baseline MUST:** (the violated `security-baseline.md` MUST). The
|
|
@@ -18,7 +16,7 @@ libraries to harden the app).
|
|
|
18
16
|
|
|
19
17
|
## Scope
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
Per the core's Scope interpretation:
|
|
22
20
|
|
|
23
21
|
```text
|
|
24
22
|
{{changedFiles}}
|
|
@@ -26,9 +24,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
26
24
|
|
|
27
25
|
## Execution strategy
|
|
28
26
|
|
|
29
|
-
Run this lens as
|
|
30
|
-
|
|
31
|
-
core's Execution strategy).
|
|
27
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
28
|
+
Execution strategy.
|
|
32
29
|
|
|
33
30
|
## Rubric — `rules/security-baseline.md` is the contract
|
|
34
31
|
|
|
@@ -7,9 +7,7 @@ description: Audit SEO fundamentals and Generative Engine Optimization signals (
|
|
|
7
7
|
You are a Senior Technical SEO & Generative Engine Optimization (GEO) Specialist
|
|
8
8
|
(semantic HTML, JSON-LD Schema, Core Web Vitals) surfacing structural, semantic,
|
|
9
9
|
and content-level improvements that increase discoverability in both traditional
|
|
10
|
-
search indexes and AI answer engines. The shared lens machinery
|
|
11
|
-
constraint, scope interpretation, report envelope + finding-block skeleton,
|
|
12
|
-
severity scale, self-cross-check, and execution strategy — lives in
|
|
10
|
+
search indexes and AI answer engines. The shared lens machinery lives in
|
|
13
11
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
14
12
|
`{{auditOutputDir}}/audit-seo-results.md`. Each finding carries a **Category:**
|
|
15
13
|
(`SEO | GEO | Core Web Vitals | Crawlability`); the report adds a **Detailed
|
|
@@ -29,7 +27,7 @@ from an `.agentrc` key, and the probe fails open when indeterminate.
|
|
|
29
27
|
|
|
30
28
|
## Scope
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+
Per the core's Scope interpretation:
|
|
33
31
|
|
|
34
32
|
```text
|
|
35
33
|
{{changedFiles}}
|
|
@@ -37,9 +35,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
37
35
|
|
|
38
36
|
## Execution strategy
|
|
39
37
|
|
|
40
|
-
Run this lens as
|
|
41
|
-
|
|
42
|
-
core's Execution strategy).
|
|
38
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
39
|
+
Execution strategy.
|
|
43
40
|
|
|
44
41
|
## Step 0: Indexability gate (run first)
|
|
45
42
|
|
|
@@ -7,9 +7,7 @@ description: "Audit production-readiness for a release candidate: SLOs, observab
|
|
|
7
7
|
You are a Senior SRE & Lead Developer running an operational-readiness audit for
|
|
8
8
|
a production release candidate — rollback & recovery paths, observability &
|
|
9
9
|
instrumentation, resilience & failure handling, and runbooks & operational
|
|
10
|
-
docs. The shared lens machinery
|
|
11
|
-
report envelope + finding-block skeleton, severity scale, self-cross-check, and
|
|
12
|
-
execution strategy — lives in
|
|
10
|
+
docs. The shared lens machinery lives in
|
|
13
11
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
14
12
|
`{{auditOutputDir}}/audit-sre-results.md`. Each finding carries a **Category:**
|
|
15
13
|
(`Rollback & Recovery | Observability | Resilience | Runbooks`); the report adds
|
|
@@ -18,7 +16,7 @@ Found).
|
|
|
18
16
|
|
|
19
17
|
## Scope
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
Per the core's Scope interpretation:
|
|
22
20
|
|
|
23
21
|
```text
|
|
24
22
|
{{changedFiles}}
|
|
@@ -26,9 +24,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
26
24
|
|
|
27
25
|
## Execution strategy
|
|
28
26
|
|
|
29
|
-
Run this lens as
|
|
30
|
-
|
|
31
|
-
core's Execution strategy).
|
|
27
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
28
|
+
Execution strategy.
|
|
32
29
|
|
|
33
30
|
## Step 1: Resilience Detection Battery (Read-Only, Tool-First)
|
|
34
31
|
|
|
@@ -26,7 +26,7 @@ They remain read-only emitters of audit reports.
|
|
|
26
26
|
|
|
27
27
|
1. At least one `audit-*-results.md` file under
|
|
28
28
|
`temp/audits/` (or the path passed as the argument). Run a
|
|
29
|
-
`/audit-<dimension>`
|
|
29
|
+
`/audit-<dimension>` first if none are present.
|
|
30
30
|
2. `GITHUB_TOKEN` or `gh auth status` clean — the dedupe and create
|
|
31
31
|
steps both call GitHub.
|
|
32
32
|
3. The `audit::<dimension>` label taxonomy bootstrapped via
|
|
@@ -37,8 +37,7 @@ They remain read-only emitters of audit reports.
|
|
|
37
37
|
|
|
38
38
|
`/audit-to-stories [audit-file-or-glob]`
|
|
39
39
|
|
|
40
|
-
- No argument → scans `temp/audits/audit-*-results.md`.
|
|
41
|
-
report `audit-fan-out-results.md` is intentionally skipped.
|
|
40
|
+
- No argument → scans `temp/audits/audit-*-results.md`.
|
|
42
41
|
- Single file path or glob → restricts the scan to that input.
|
|
43
42
|
|
|
44
43
|
## Phase 1 — Discover & parse
|
|
@@ -46,15 +45,11 @@ They remain read-only emitters of audit reports.
|
|
|
46
45
|
Run the CLI in `--scan` mode against the resolved glob. It parses every
|
|
47
46
|
finding block, normalises the fields (`Severity` / `Impact` are
|
|
48
47
|
both recognised; `Dimension` / `Category` likewise), and extracts file
|
|
49
|
-
paths mentioned in the body
|
|
50
|
-
|
|
51
|
-
the findings, and the header itself never becomes one. It then stamps each
|
|
52
|
-
finding with a stable sha1 fingerprint via the shared
|
|
48
|
+
paths mentioned in the body, and stamps each finding with a stable sha1
|
|
49
|
+
fingerprint via the shared
|
|
53
50
|
[`lib/findings/route-finding.js`](../scripts/lib/findings/route-finding.js)
|
|
54
|
-
helper (`fingerprintFinding`) — the single dedup/route implementation
|
|
55
|
-
|
|
56
|
-
fingerprint or dedup code; identity, footer round-trip, and routing all
|
|
57
|
-
flow through that one module.
|
|
51
|
+
helper (`fingerprintFinding`) — the single dedup/route implementation shared
|
|
52
|
+
with `qa-explore`; carry no separate inline fingerprint or dedup code.
|
|
58
53
|
|
|
59
54
|
```bash
|
|
60
55
|
node .agents/scripts/audit-to-stories.js --scan \
|
|
@@ -69,13 +64,10 @@ rather than re-parsing the reports.
|
|
|
69
64
|
**The tally cross-check is automatic.** Every report declares
|
|
70
65
|
`Severity tally: Critical <n> / High <n> / Medium <n> / Low <n>` in its
|
|
71
66
|
Executive Summary; the scan compares that line with what it parsed and carries
|
|
72
|
-
each disagreement on `summary.reportFailures[]`
|
|
73
|
-
`
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
an `unknown` group). They print to stderr before `--scan` returns its plan, so
|
|
77
|
-
a mis-parsed report is never read as a clean audit: re-run the lens rather than
|
|
78
|
-
file from it. Over older reports predating the mandate,
|
|
67
|
+
each disagreement on `summary.reportFailures[]` (`missing-tally`,
|
|
68
|
+
`tally-mismatch`, `unresolved-severity`), printed to stderr before `--scan`
|
|
69
|
+
returns its plan. A mis-parsed report is never a clean audit: re-run the lens
|
|
70
|
+
rather than file from it. Over older reports predating the mandate,
|
|
79
71
|
`--scan --allow-missing-tally` downgrades **only** `missing-tally` to a
|
|
80
72
|
warning.
|
|
81
73
|
|
|
@@ -192,13 +184,9 @@ alone leaves a plan-path Story invisible — and records each Story's
|
|
|
192
184
|
carries every fingerprint, so an owner would be a coin flip; persist says so on
|
|
193
185
|
stderr. Author per-Story `provenance` to record them.
|
|
194
186
|
|
|
195
|
-
This is deliberately not an authoring step.
|
|
196
|
-
the
|
|
197
|
-
in
|
|
198
|
-
step at all. Stories filed on the recommended path were therefore invisible to
|
|
199
|
-
the next sweep's Phase 6 dedup, which re-filed work it had already planned. If
|
|
200
|
-
you find yourself copying a footer by hand, the carry is broken — fix it there
|
|
201
|
-
rather than papering over it in the body.
|
|
187
|
+
This is deliberately not an authoring step. If you find yourself copying a
|
|
188
|
+
footer by hand, the carry is broken — fix it there rather than papering over it
|
|
189
|
+
in the body.
|
|
202
190
|
|
|
203
191
|
## Phase 5b — Standalone-Stories path
|
|
204
192
|
|
|
@@ -226,9 +214,9 @@ Labels applied:
|
|
|
226
214
|
(cross-audit groups carry multiple).
|
|
227
215
|
- `risk::high` — added when any finding in the group is Critical.
|
|
228
216
|
|
|
229
|
-
**No `agent::` state label, deliberately.**
|
|
230
|
-
|
|
231
|
-
|
|
217
|
+
**No `agent::` state label, deliberately.** `agent::ready` is what
|
|
218
|
+
`/mandrel-deliver` reads as "available for pickup", and these bodies are audit
|
|
219
|
+
prose, not a delivery-ready Spec. A
|
|
232
220
|
Story with no `agent::` label is a legal initial state; `/mandrel-plan` stamps
|
|
233
221
|
`agent::ready` as its terminal flip once the finding has become a scoped
|
|
234
222
|
capability slice. Do not re-add it here or apply it by hand at create time.
|
|
@@ -425,8 +413,7 @@ The routine shape is **lenses full-scope → dry-run → live with a ledger PR**
|
|
|
425
413
|
3. `--auto --ledger-commit` once the tallies stop surprising you.
|
|
426
414
|
|
|
427
415
|
`--auto` runs with **no interactive gates**: it resolves the severity floor
|
|
428
|
-
from `
|
|
429
|
-
`--severity`), applies the two-stage dedup, reconciles the cross-run ledger,
|
|
416
|
+
from `--severity` (default `high`), applies the two-stage dedup, reconciles the cross-run ledger,
|
|
430
417
|
and prints a run-summary JSON (create / skip-open / skip-reoccurring /
|
|
431
418
|
suppressed-by-ledger tallies, the `create`-classified group keys the `--ids`
|
|
432
419
|
map is built from, plus the re-detected open Issue numbers an operator may want
|
|
@@ -6,9 +6,7 @@ description: Audit UX/UI consistency and design system adherence
|
|
|
6
6
|
|
|
7
7
|
You are a Lead Product Designer & Frontend Architect evaluating the frontend for
|
|
8
8
|
UI consistency, UX best practices, and adherence to the project's design system,
|
|
9
|
-
ensuring the app feels premium and cohesive. The shared lens machinery
|
|
10
|
-
read-only constraint, scope interpretation, report envelope + finding-block
|
|
11
|
-
skeleton, severity scale, self-cross-check, and execution strategy — lives in
|
|
9
|
+
ensuring the app feels premium and cohesive. The shared lens machinery lives in
|
|
12
10
|
[`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
|
|
13
11
|
`{{auditOutputDir}}/audit-ux-ui-results.md`. Dimension values:
|
|
14
12
|
`Visual Consistency | UX Best Practices | Accessibility`; the report adds a
|
|
@@ -23,7 +21,7 @@ description for how applicability is probed from the consumer's checkout.
|
|
|
23
21
|
|
|
24
22
|
## Scope
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
Per the core's Scope interpretation:
|
|
27
25
|
|
|
28
26
|
```text
|
|
29
27
|
{{changedFiles}}
|
|
@@ -31,9 +29,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
|
|
|
31
29
|
|
|
32
30
|
## Execution strategy
|
|
33
31
|
|
|
34
|
-
Run this lens as
|
|
35
|
-
|
|
36
|
-
core's Execution strategy).
|
|
32
|
+
Run this lens as one `subagent_type: auditor` dispatch per the core's
|
|
33
|
+
Execution strategy.
|
|
37
34
|
|
|
38
35
|
## Step 0: Discover the design-system SSOT (run first)
|
|
39
36
|
|
|
@@ -152,7 +152,7 @@ Treat the following as **out of scope by construction** and drop any finding
|
|
|
152
152
|
that rests on one of them:
|
|
153
153
|
|
|
154
154
|
- **Sanctioned test seams** — exports consumed only by tests, and other
|
|
155
|
-
|
|
155
|
+
deliberate test-only patterns. Never a production defect.
|
|
156
156
|
- **Entry points & public API surface** — CLI mains, `bin/` scripts, declared
|
|
157
157
|
`exports` / `bin` / `main`, and barrel contracts consumed out-of-tree. A
|
|
158
158
|
zero in-repo consumer count is not death.
|
|
@@ -5,11 +5,11 @@ this framework cites. Reviewers, prescriptive auditors, and writing agents all
|
|
|
5
5
|
read the same numbers from here so a "high cyclomatic complexity" finding in
|
|
6
6
|
`/audit-clean-code` and a pre-commit refusal cite the same threshold.
|
|
7
7
|
|
|
8
|
-
>
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
> change a number.
|
|
8
|
+
> The cyclomatic thresholds are fixed framework constants (Story #5382 folded
|
|
9
|
+
> the never-set `delivery.quality.codingGuardrails` block); the MI tolerance
|
|
10
|
+
> is `delivery.quality.gates.maintainability.tolerance` — see
|
|
11
|
+
> [`agentrc-reference.json`](../../docs/agentrc-reference.json). Never fork
|
|
12
|
+
> this helper to change a number.
|
|
13
13
|
|
|
14
14
|
## At-keyboard verification
|
|
15
15
|
|
|
@@ -28,14 +28,14 @@ hook calls the same script.
|
|
|
28
28
|
|
|
29
29
|
Cyclomatic complexity (CC) is measured per function by `escomplex` (the same
|
|
30
30
|
engine the maintainability axis of `check-baselines.js` runs). Two
|
|
31
|
-
thresholds — the advisory
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
thresholds — the advisory flag of 8 and the fixed ceiling of 12, both
|
|
32
|
+
constants (`cyclomaticMustFix` was retired as a config key in Story #5313,
|
|
33
|
+
`cyclomaticFlag` in Story #5382):
|
|
34
34
|
|
|
35
35
|
| CC range | Action |
|
|
36
36
|
| --- | --- |
|
|
37
37
|
| ≤ 8 | Pass — no annotation required. |
|
|
38
|
-
| > 8 (
|
|
38
|
+
| > 8 (the advisory flag) | **Flag** — `quality:preview` counts the function in its `new-method count over c=<flag>` column. The function is allowed to land but the report names it. |
|
|
39
39
|
| ≥ 12 | **Advisory in `quality:preview`** — listed by file, method and reading; the preview exits 0 on it. **Ratchet in `check-cyclomatic.js`**: fails when a file gains a function above 12, or when its worst function gets worse than the recorded baseline. |
|
|
40
40
|
|
|
41
41
|
`check-cyclomatic.js` is a **ratchet**, not a cliff: `baselines/cyclomatic.json`
|
|
@@ -57,11 +57,8 @@ source under `tests/<mirrored-path>/<basename>.test.js`. Same-commit pairing
|
|
|
57
57
|
keeps the bisect honest — a regression and the test that would have caught
|
|
58
58
|
it land or revert together.
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
lacks a sibling test. Default is `false` so legacy repos opt in
|
|
63
|
-
deliberately; once enabled, the structural check replaces the
|
|
64
|
-
review-time prose rule.
|
|
60
|
+
No structural check enforces the pairing — it is a review-time rule
|
|
61
|
+
(Story #5382 removed the never-read `requireSiblingTest` switch).
|
|
65
62
|
|
|
66
63
|
## Maintainability-Index drop refactor rule
|
|
67
64
|
|
|
@@ -84,7 +81,7 @@ the commit lands (scoped to `HEAD` by default — the alias passes no
|
|
|
84
81
|
Renaming a file (or moving it across `src/` directories) detaches its MI and
|
|
85
82
|
CRAP history from the baseline keys. The correct response is a **baseline
|
|
86
83
|
refresh**, not a regression entry: include `baseline-refresh:` (the
|
|
87
|
-
|
|
84
|
+
fixed refresh tag) in the commit subject so the
|
|
88
85
|
ratchet treats the new key as a clean entry instead of comparing it to
|
|
89
86
|
nothing.
|
|
90
87
|
|
|
@@ -103,10 +103,12 @@ Per-round mechanics: [`acceptance-self-eval.md`](acceptance-self-eval.md).
|
|
|
103
103
|
|
|
104
104
|
## 5. The one credited suite run
|
|
105
105
|
|
|
106
|
-
After the self-eval loop's last fix commit,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
After the self-eval loop's last fix commit, fetch and merge
|
|
107
|
+
`origin/<baseBranch>` into the Story branch **first**, ahead of this run and
|
|
108
|
+
the push: close's base-sync then no-ops, so neither stamp goes stale. Then
|
|
109
|
+
run the suite **once** in the worktree through the depositor — it spawns the
|
|
110
|
+
project's own `npm test`, whatever that resolves to, and stamps the result,
|
|
111
|
+
so any runner earns the credit:
|
|
110
112
|
|
|
111
113
|
```bash
|
|
112
114
|
node <main-repo>/.agents/scripts/evidence-gate.js --standalone \
|