mandrel 1.57.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 +954 -0
- package/.agents/docs/SDLC.md +1420 -0
- package/.agents/docs/agentrc-reference.json +278 -0
- package/.agents/docs/configuration.md +1040 -0
- package/.agents/docs/workflows.md +59 -0
- package/.agents/instructions.md +384 -0
- package/.agents/personas/architect.md +107 -0
- package/.agents/personas/devops-engineer.md +36 -0
- package/.agents/personas/engineer-mobile.md +119 -0
- package/.agents/personas/engineer-web.md +110 -0
- package/.agents/personas/engineer.md +90 -0
- package/.agents/personas/product.md +88 -0
- package/.agents/personas/project-manager.md +110 -0
- package/.agents/personas/qa-engineer.md +91 -0
- package/.agents/personas/refactorer.md +110 -0
- package/.agents/personas/security-engineer.md +112 -0
- package/.agents/personas/sre.md +86 -0
- package/.agents/personas/technical-writer.md +100 -0
- package/.agents/personas/ux-designer.md +95 -0
- package/.agents/rules/api-conventions.md +75 -0
- package/.agents/rules/changelog-style.md +238 -0
- package/.agents/rules/gherkin-standards.md +146 -0
- package/.agents/rules/git-conventions.md +146 -0
- package/.agents/rules/orchestration-error-handling.md +35 -0
- package/.agents/rules/security-baseline.md +92 -0
- package/.agents/rules/shell-conventions.md +70 -0
- package/.agents/rules/test-seams.md +59 -0
- package/.agents/rules/testing-standards.md +177 -0
- package/.agents/runtime-deps.json +18 -0
- package/.agents/schemas/acceptance-eval-verdict.schema.json +93 -0
- package/.agents/schemas/agentrc.schema.json +1583 -0
- package/.agents/schemas/audit-results.schema.json +69 -0
- package/.agents/schemas/audit-rules.json +134 -0
- package/.agents/schemas/audit-rules.schema.json +69 -0
- package/.agents/schemas/baselines/baseline-envelope.schema.json +44 -0
- package/.agents/schemas/baselines/bundle-size.schema.json +47 -0
- package/.agents/schemas/baselines/coverage.schema.json +50 -0
- package/.agents/schemas/baselines/crap.schema.json +52 -0
- package/.agents/schemas/baselines/duplication.schema.json +62 -0
- package/.agents/schemas/baselines/lighthouse.schema.json +59 -0
- package/.agents/schemas/baselines/lint.schema.json +47 -0
- package/.agents/schemas/baselines/maintainability.schema.json +71 -0
- package/.agents/schemas/baselines/mutation.schema.json +52 -0
- package/.agents/schemas/crap-baseline.schema.json +57 -0
- package/.agents/schemas/crap-report.schema.json +102 -0
- package/.agents/schemas/dispatch-manifest.json +232 -0
- package/.agents/schemas/epic-perf-report.schema.json +89 -0
- package/.agents/schemas/epic-spec.schema.json +183 -0
- package/.agents/schemas/friction-event.schema.json +56 -0
- package/.agents/schemas/lifecycle/README.md +18 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.failed.schema.json +13 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.ok.schema.json +13 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.skipped.schema.json +13 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.waived.schema.json +13 -0
- package/.agents/schemas/lifecycle/checkpoint.written.schema.json +13 -0
- package/.agents/schemas/lifecycle/close-validate.end.schema.json +18 -0
- package/.agents/schemas/lifecycle/close-validate.start.schema.json +13 -0
- package/.agents/schemas/lifecycle/code-review.end.schema.json +30 -0
- package/.agents/schemas/lifecycle/code-review.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.automerge.end.schema.json +14 -0
- package/.agents/schemas/lifecycle/epic.automerge.start.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.blocked.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.cleanup.end.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.cleanup.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.close.end.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.complete.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.finalize.end.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.finalize.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.merge.armed.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.merge.blocked.schema.json +14 -0
- package/.agents/schemas/lifecycle/epic.merge.confirmed.schema.json +17 -0
- package/.agents/schemas/lifecycle/epic.merge.ready.schema.json +15 -0
- package/.agents/schemas/lifecycle/epic.plan.end.schema.json +18 -0
- package/.agents/schemas/lifecycle/epic.plan.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.snapshot.end.schema.json +16 -0
- package/.agents/schemas/lifecycle/epic.snapshot.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.watch.end.schema.json +28 -0
- package/.agents/schemas/lifecycle/epic.watch.start.schema.json +16 -0
- package/.agents/schemas/lifecycle/intervention.recorded.schema.json +15 -0
- package/.agents/schemas/lifecycle/ledger-record.schema.json +59 -0
- package/.agents/schemas/lifecycle/notification.emitted.schema.json +18 -0
- package/.agents/schemas/lifecycle/pr.created.schema.json +14 -0
- package/.agents/schemas/lifecycle/retro.end.schema.json +16 -0
- package/.agents/schemas/lifecycle/retro.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/story.blocked.schema.json +13 -0
- package/.agents/schemas/lifecycle/story.dispatch.end.schema.json +17 -0
- package/.agents/schemas/lifecycle/story.dispatch.start.schema.json +15 -0
- package/.agents/schemas/lifecycle/story.heartbeat.schema.json +20 -0
- package/.agents/schemas/lifecycle/story.merged.schema.json +13 -0
- package/.agents/schemas/mi-report.schema.json +58 -0
- package/.agents/schemas/model-attribution.schema.json +49 -0
- package/.agents/schemas/qa-finding.schema.json +133 -0
- package/.agents/schemas/qa-ledger.schema.json +89 -0
- package/.agents/schemas/risk-verdict.schema.json +53 -0
- package/.agents/schemas/signal-event.schema.json +58 -0
- package/.agents/schemas/skill.schema.json +31 -0
- package/.agents/schemas/skills-index.schema.json +81 -0
- package/.agents/schemas/story-perf-summary.schema.json +73 -0
- package/.agents/schemas/validation-evidence.schema.json +78 -0
- package/.agents/scripts/README.md +93 -0
- package/.agents/scripts/acceptance-eval.js +284 -0
- package/.agents/scripts/acceptance-spec-reconciler.js +556 -0
- package/.agents/scripts/agents-bootstrap-github.js +634 -0
- package/.agents/scripts/analyze-execution.js +369 -0
- package/.agents/scripts/assert-branch.js +83 -0
- package/.agents/scripts/audit-labels-bootstrap.js +253 -0
- package/.agents/scripts/audit-to-stories.js +257 -0
- package/.agents/scripts/bootstrap.js +1378 -0
- package/.agents/scripts/check-baselines.js +81 -0
- package/.agents/scripts/check-dead-exports.js +311 -0
- package/.agents/scripts/check-doc-links.js +401 -0
- package/.agents/scripts/check-gherkin-placeholders.js +663 -0
- package/.agents/scripts/check-lifecycle-doc-drift.js +402 -0
- package/.agents/scripts/check-lifecycle-lint.js +379 -0
- package/.agents/scripts/check-prepush-recovery.js +90 -0
- package/.agents/scripts/check-windows-git-perf.js +138 -0
- package/.agents/scripts/cleanup-repo-test-temp.js +67 -0
- package/.agents/scripts/coverage-capture.js +112 -0
- package/.agents/scripts/detect-merges.js +111 -0
- package/.agents/scripts/diagnose-friction.js +257 -0
- package/.agents/scripts/diagnose.js +240 -0
- package/.agents/scripts/dispatcher.js +295 -0
- package/.agents/scripts/drain-pending-cleanup.js +147 -0
- package/.agents/scripts/epic-audit-prepare.js +419 -0
- package/.agents/scripts/epic-audit-recheck.js +241 -0
- package/.agents/scripts/epic-deliver-note-intervention.js +192 -0
- package/.agents/scripts/epic-deliver-preflight.js +407 -0
- package/.agents/scripts/epic-deliver-prepare.js +383 -0
- package/.agents/scripts/epic-execute-record-wave.js +463 -0
- package/.agents/scripts/epic-plan-clarity.js +201 -0
- package/.agents/scripts/epic-plan-decompose.js +79 -0
- package/.agents/scripts/epic-plan-healthcheck.js +363 -0
- package/.agents/scripts/epic-plan-spec-validate.js +111 -0
- package/.agents/scripts/epic-plan-spec.js +198 -0
- package/.agents/scripts/epic-reconcile.js +637 -0
- package/.agents/scripts/evidence-gate.js +235 -0
- package/.agents/scripts/generate-config-docs.js +516 -0
- package/.agents/scripts/generate-lifecycle-docs.js +224 -0
- package/.agents/scripts/generate-skills-index.js +252 -0
- package/.agents/scripts/generate-workflows-doc.js +168 -0
- package/.agents/scripts/git-cleanup.js +124 -0
- package/.agents/scripts/git-pr-quality-gate.js +203 -0
- package/.agents/scripts/git-rebase-and-resolve.js +234 -0
- package/.agents/scripts/hierarchy-gate.js +176 -0
- package/.agents/scripts/hydrate-context.js +179 -0
- package/.agents/scripts/install-matrix-assert.js +282 -0
- package/.agents/scripts/lib/Graph.js +326 -0
- package/.agents/scripts/lib/ITicketingProvider.js +349 -0
- package/.agents/scripts/lib/Logger.js +194 -0
- package/.agents/scripts/lib/audit-suite/cli.js +64 -0
- package/.agents/scripts/lib/audit-suite/findings.js +164 -0
- package/.agents/scripts/lib/audit-suite/frontmatter-lint.js +32 -0
- package/.agents/scripts/lib/audit-suite/frontmatter.js +110 -0
- package/.agents/scripts/lib/audit-suite/index.js +22 -0
- package/.agents/scripts/lib/audit-suite/runner.js +233 -0
- package/.agents/scripts/lib/audit-suite/selector.js +235 -0
- package/.agents/scripts/lib/audit-suite/substitutions.js +124 -0
- package/.agents/scripts/lib/audit-suite/workflow-loader.js +49 -0
- package/.agents/scripts/lib/audit-to-stories/build-story-body.js +130 -0
- package/.agents/scripts/lib/audit-to-stories/dedupe-against-github.js +114 -0
- package/.agents/scripts/lib/audit-to-stories/finding-adapter.js +93 -0
- package/.agents/scripts/lib/audit-to-stories/group-findings.js +265 -0
- package/.agents/scripts/lib/audit-to-stories/parse-audit-md.js +246 -0
- package/.agents/scripts/lib/audit-to-stories/seed-epic-from-findings.js +160 -0
- package/.agents/scripts/lib/auto-refresh-baselines.js +308 -0
- package/.agents/scripts/lib/baseline-loader.js +0 -0
- package/.agents/scripts/lib/baseline-schema-registry.js +69 -0
- package/.agents/scripts/lib/baseline-snapshot.js +716 -0
- package/.agents/scripts/lib/baselines/component-matcher.js +21 -0
- package/.agents/scripts/lib/baselines/components.js +126 -0
- package/.agents/scripts/lib/baselines/diff-scope-cli.js +203 -0
- package/.agents/scripts/lib/baselines/duplication-scanner.js +220 -0
- package/.agents/scripts/lib/baselines/env-overrides.js +129 -0
- package/.agents/scripts/lib/baselines/envelope.js +368 -0
- package/.agents/scripts/lib/baselines/exit-codes.js +89 -0
- package/.agents/scripts/lib/baselines/git-base.js +0 -0
- package/.agents/scripts/lib/baselines/kernel.js +111 -0
- package/.agents/scripts/lib/baselines/kinds/_shared-metric.js +220 -0
- package/.agents/scripts/lib/baselines/kinds/bundle-size.js +157 -0
- package/.agents/scripts/lib/baselines/kinds/coverage.js +194 -0
- package/.agents/scripts/lib/baselines/kinds/crap.js +555 -0
- package/.agents/scripts/lib/baselines/kinds/duplication.js +197 -0
- package/.agents/scripts/lib/baselines/kinds/lighthouse.js +185 -0
- package/.agents/scripts/lib/baselines/kinds/lint.js +172 -0
- package/.agents/scripts/lib/baselines/kinds/maintainability.js +340 -0
- package/.agents/scripts/lib/baselines/kinds/mutation.js +153 -0
- package/.agents/scripts/lib/baselines/path-canon.js +279 -0
- package/.agents/scripts/lib/baselines/preview-gates.js +298 -0
- package/.agents/scripts/lib/baselines/reader.js +321 -0
- package/.agents/scripts/lib/baselines/refresh-service.js +733 -0
- package/.agents/scripts/lib/baselines/scope.js +291 -0
- package/.agents/scripts/lib/baselines/writer.js +312 -0
- package/.agents/scripts/lib/bdd-runner-detect.js +417 -0
- package/.agents/scripts/lib/bdd-scenario-scanner.js +310 -0
- package/.agents/scripts/lib/bootstrap/baselines-layout-migration.js +202 -0
- package/.agents/scripts/lib/bootstrap/branch-protection.js +222 -0
- package/.agents/scripts/lib/bootstrap/ci-workflow-template.js +171 -0
- package/.agents/scripts/lib/bootstrap/commit-push.js +146 -0
- package/.agents/scripts/lib/bootstrap/gh-list.js +153 -0
- package/.agents/scripts/lib/bootstrap/gh-preflight.js +306 -0
- package/.agents/scripts/lib/bootstrap/hitl-confirm.js +89 -0
- package/.agents/scripts/lib/bootstrap/install-ledger.js +174 -0
- package/.agents/scripts/lib/bootstrap/manifest.js +272 -0
- package/.agents/scripts/lib/bootstrap/merge-methods.js +108 -0
- package/.agents/scripts/lib/bootstrap/preflight.js +195 -0
- package/.agents/scripts/lib/bootstrap/project-bootstrap.js +801 -0
- package/.agents/scripts/lib/bootstrap/prompt.js +480 -0
- package/.agents/scripts/lib/bootstrap/quality-bootstrap.js +370 -0
- package/.agents/scripts/lib/bootstrap/summary.js +75 -0
- package/.agents/scripts/lib/bootstrap/workflow-audit.js +256 -0
- package/.agents/scripts/lib/branch-name-guard.js +98 -0
- package/.agents/scripts/lib/c8-cli-path.js +21 -0
- package/.agents/scripts/lib/changed-files.js +184 -0
- package/.agents/scripts/lib/checks/baseline-drift-main-checkout.js +104 -0
- package/.agents/scripts/lib/checks/core-bare-clean.js +48 -0
- package/.agents/scripts/lib/checks/epic-merge-lock-stale.js +54 -0
- package/.agents/scripts/lib/checks/index.js +288 -0
- package/.agents/scripts/lib/checks/push-hook-parity.js +106 -0
- package/.agents/scripts/lib/checks/stale-origin-epic.js +49 -0
- package/.agents/scripts/lib/checks/state.js +558 -0
- package/.agents/scripts/lib/checks/story-init-not-backgrounded.js +186 -0
- package/.agents/scripts/lib/checks/subagent-agent-tool-required.js +182 -0
- package/.agents/scripts/lib/checks/windows-coverage-noise-floor.js +92 -0
- package/.agents/scripts/lib/checks/worktree-bootstrap-env.js +81 -0
- package/.agents/scripts/lib/checks/worktree-residue-biome.js +55 -0
- package/.agents/scripts/lib/cli/parse-numeric.js +60 -0
- package/.agents/scripts/lib/cli/standard-args.js +351 -0
- package/.agents/scripts/lib/cli-args.js +286 -0
- package/.agents/scripts/lib/cli-utils.js +69 -0
- package/.agents/scripts/lib/close-validation/projections/head-sha.js +44 -0
- package/.agents/scripts/lib/close-validation/projections/inputs.js +86 -0
- package/.agents/scripts/lib/close-validation/projections/maintainability.js +286 -0
- package/.agents/scripts/lib/close-validation.js +897 -0
- package/.agents/scripts/lib/codebase-snapshot.js +513 -0
- package/.agents/scripts/lib/command-header.js +33 -0
- package/.agents/scripts/lib/config/acceptance-eval.js +95 -0
- package/.agents/scripts/lib/config/baselines.js +60 -0
- package/.agents/scripts/lib/config/ci.js +30 -0
- package/.agents/scripts/lib/config/commands.js +36 -0
- package/.agents/scripts/lib/config/defaults.js +119 -0
- package/.agents/scripts/lib/config/explain.js +348 -0
- package/.agents/scripts/lib/config/gates/bundle-size.schema.js +23 -0
- package/.agents/scripts/lib/config/gates/coverage.schema.js +18 -0
- package/.agents/scripts/lib/config/gates/crap.schema.js +33 -0
- package/.agents/scripts/lib/config/gates/duplication.schema.js +26 -0
- package/.agents/scripts/lib/config/gates/index.js +36 -0
- package/.agents/scripts/lib/config/gates/lighthouse.schema.js +23 -0
- package/.agents/scripts/lib/config/gates/lint.schema.js +9 -0
- package/.agents/scripts/lib/config/gates/maintainability.schema.js +20 -0
- package/.agents/scripts/lib/config/gates/mutation.schema.js +12 -0
- package/.agents/scripts/lib/config/gates/shared.js +117 -0
- package/.agents/scripts/lib/config/github.js +122 -0
- package/.agents/scripts/lib/config/lifecycle.js +40 -0
- package/.agents/scripts/lib/config/limits.js +211 -0
- package/.agents/scripts/lib/config/paths.js +73 -0
- package/.agents/scripts/lib/config/preflight.js +58 -0
- package/.agents/scripts/lib/config/quality.js +665 -0
- package/.agents/scripts/lib/config/retro.js +77 -0
- package/.agents/scripts/lib/config/runners.js +105 -0
- package/.agents/scripts/lib/config/runtime.js +167 -0
- package/.agents/scripts/lib/config/shared.js +46 -0
- package/.agents/scripts/lib/config/sync-agentrc.js +243 -0
- package/.agents/scripts/lib/config/temp-paths.js +373 -0
- package/.agents/scripts/lib/config/validate-orchestration.js +81 -0
- package/.agents/scripts/lib/config/worktree-isolation.js +80 -0
- package/.agents/scripts/lib/config-resolver.js +298 -0
- package/.agents/scripts/lib/config-schema-shared.js +32 -0
- package/.agents/scripts/lib/config-schema.js +20 -0
- package/.agents/scripts/lib/config-settings-schema-delivery.js +332 -0
- package/.agents/scripts/lib/config-settings-schema-quality.js +165 -0
- package/.agents/scripts/lib/config-settings-schema.js +420 -0
- package/.agents/scripts/lib/coverage-baseline.js +352 -0
- package/.agents/scripts/lib/coverage-capture.js +195 -0
- package/.agents/scripts/lib/coverage-utils.js +239 -0
- package/.agents/scripts/lib/cpu-pool.js +223 -0
- package/.agents/scripts/lib/crap-engine.js +119 -0
- package/.agents/scripts/lib/crap-utils.js +479 -0
- package/.agents/scripts/lib/degraded-mode.js +69 -0
- package/.agents/scripts/lib/dependency-parser.js +129 -0
- package/.agents/scripts/lib/duplicate-search.js +189 -0
- package/.agents/scripts/lib/dynamic-workflow/architecture-report-contract.js +70 -0
- package/.agents/scripts/lib/dynamic-workflow/audit-orchestrator.js +197 -0
- package/.agents/scripts/lib/dynamic-workflow/capability.js +396 -0
- package/.agents/scripts/lib/dynamic-workflow/clean-code-report-contract.js +80 -0
- package/.agents/scripts/lib/dynamic-workflow/performance-report-contract.js +72 -0
- package/.agents/scripts/lib/dynamic-workflow/quality-report-contract.js +90 -0
- package/.agents/scripts/lib/dynamic-workflow/report-contract-core.js +43 -0
- package/.agents/scripts/lib/dynamic-workflow/security-report-contract.js +83 -0
- package/.agents/scripts/lib/env-loader.js +52 -0
- package/.agents/scripts/lib/epic-merge-lock.js +239 -0
- package/.agents/scripts/lib/epic-plan-clarity.js +142 -0
- package/.agents/scripts/lib/epic-plan-ideation.js +228 -0
- package/.agents/scripts/lib/error-redactor.js +125 -0
- package/.agents/scripts/lib/errors/index.js +67 -0
- package/.agents/scripts/lib/feedback-loop/audit-results-graduator.js +230 -0
- package/.agents/scripts/lib/feedback-loop/code-review-graduator.js +207 -0
- package/.agents/scripts/lib/feedback-loop/graduator-core.js +421 -0
- package/.agents/scripts/lib/feedback-loop/memory-freshness.js +480 -0
- package/.agents/scripts/lib/feedback-loop/prior-feedback-fetcher.js +229 -0
- package/.agents/scripts/lib/findings/classify-finding.js +195 -0
- package/.agents/scripts/lib/findings/promote-finding.js +353 -0
- package/.agents/scripts/lib/findings/route-finding.js +283 -0
- package/.agents/scripts/lib/findings/semantic-issue-search.js +179 -0
- package/.agents/scripts/lib/findings/severity.js +102 -0
- package/.agents/scripts/lib/gates/baseline-store.js +106 -0
- package/.agents/scripts/lib/gates/friction.js +43 -0
- package/.agents/scripts/lib/gh-exec.js +553 -0
- package/.agents/scripts/lib/git/cached-fetch.js +0 -0
- package/.agents/scripts/lib/git/sync-from-base.js +162 -0
- package/.agents/scripts/lib/git-branch-cleanup.js +213 -0
- package/.agents/scripts/lib/git-branch-lifecycle.js +353 -0
- package/.agents/scripts/lib/git-merge-orchestrator.js +261 -0
- package/.agents/scripts/lib/git-utils.js +363 -0
- package/.agents/scripts/lib/github-url.js +29 -0
- package/.agents/scripts/lib/install-cmd-parser.js +51 -0
- package/.agents/scripts/lib/issue-link-parser.js +74 -0
- package/.agents/scripts/lib/json-utils.js +60 -0
- package/.agents/scripts/lib/label-constants.js +169 -0
- package/.agents/scripts/lib/label-taxonomy.js +200 -0
- package/.agents/scripts/lib/maintainability-engine.js +164 -0
- package/.agents/scripts/lib/maintainability-utils.js +343 -0
- package/.agents/scripts/lib/mandrel-catalog.js +170 -0
- package/.agents/scripts/lib/mutation/baseline-snapshot.js +238 -0
- package/.agents/scripts/lib/mutation/config-detector.js +119 -0
- package/.agents/scripts/lib/mutation/stryker-runner.js +306 -0
- package/.agents/scripts/lib/mutation/survivor-report.js +160 -0
- package/.agents/scripts/lib/notifications/notifier.js +75 -0
- package/.agents/scripts/lib/observability/active-story-env.js +182 -0
- package/.agents/scripts/lib/observability/baseline-refresh-rate.js +221 -0
- package/.agents/scripts/lib/observability/perf-aggregator.js +887 -0
- package/.agents/scripts/lib/observability/perf-report-readers.js +319 -0
- package/.agents/scripts/lib/observability/perf-report-render.js +182 -0
- package/.agents/scripts/lib/observability/signals-writer.js +296 -0
- package/.agents/scripts/lib/observability/source-classifier.js +103 -0
- package/.agents/scripts/lib/observability/tool-trace-hook.js +417 -0
- package/.agents/scripts/lib/onboard/detect-stack.js +300 -0
- package/.agents/scripts/lib/onboard/scaffold-docs.js +128 -0
- package/.agents/scripts/lib/orchestration/acceptance-eval-decision.js +173 -0
- package/.agents/scripts/lib/orchestration/cascade-grouping.js +275 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/compare.js +131 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/evaluate.js +80 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/floors.js +132 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/friction.js +142 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/parse-args.js +149 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/pipeline.js +158 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/report.js +56 -0
- package/.agents/scripts/lib/orchestration/code-review.js +652 -0
- package/.agents/scripts/lib/orchestration/column-sync.js +286 -0
- package/.agents/scripts/lib/orchestration/context-envelope.js +280 -0
- package/.agents/scripts/lib/orchestration/context-hydration-engine.js +581 -0
- package/.agents/scripts/lib/orchestration/dependency-analyzer.js +88 -0
- package/.agents/scripts/lib/orchestration/detectors-phase.js +188 -0
- package/.agents/scripts/lib/orchestration/dispatch-engine.js +144 -0
- package/.agents/scripts/lib/orchestration/dispatch-pipeline.js +206 -0
- package/.agents/scripts/lib/orchestration/doc-reader.js +94 -0
- package/.agents/scripts/lib/orchestration/epic-cleanup.js +473 -0
- package/.agents/scripts/lib/orchestration/epic-deliver-lease-guard.js +310 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/cli.js +167 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/context.js +151 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/creation.js +74 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/dag.js +78 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/diagnostics.js +72 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist-helpers.js +155 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist.js +321 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/planning-artifacts.js +75 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/reconcile-spawn.js +86 -0
- package/.agents/scripts/lib/orchestration/epic-plan-lease-guard.js +235 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/authoring-context.js +197 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/cli-args.js +48 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/drain.js +94 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/plan-epic.js +414 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/prompts.js +55 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/risk-verdict.js +105 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/run-spec-phase.js +235 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/spec-freshness.js +120 -0
- package/.agents/scripts/lib/orchestration/epic-plan-state-store.js +118 -0
- package/.agents/scripts/lib/orchestration/epic-run-state-store.js +295 -0
- package/.agents/scripts/lib/orchestration/epic-runner/concurrency-gate.js +186 -0
- package/.agents/scripts/lib/orchestration/epic-runner/deliver-phases.js +50 -0
- package/.agents/scripts/lib/orchestration/epic-runner/phases/build-wave-dag.js +146 -0
- package/.agents/scripts/lib/orchestration/epic-runner/phases/snapshot.js +110 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/composition.js +392 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/signals.js +217 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/transport.js +235 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter.js +69 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/_bullet-format.js +32 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/crap-drift.js +291 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/maintainability-drift.js +175 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/stalled-worktree.js +37 -0
- package/.agents/scripts/lib/orchestration/epic-runner/story-launcher.js +127 -0
- package/.agents/scripts/lib/orchestration/epic-runner/story-run-progress-writer.js +400 -0
- package/.agents/scripts/lib/orchestration/epic-runner/sub-agent-return.js +285 -0
- package/.agents/scripts/lib/orchestration/epic-runner/wave-scheduler.js +66 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-apply.js +797 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-diff.js +619 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-discriminator.js +335 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-format.js +230 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-ops.js +363 -0
- package/.agents/scripts/lib/orchestration/error-journal.js +139 -0
- package/.agents/scripts/lib/orchestration/file-assumption-enum.js +31 -0
- package/.agents/scripts/lib/orchestration/file-assumptions.js +506 -0
- package/.agents/scripts/lib/orchestration/finalize/close-planning-tickets.js +116 -0
- package/.agents/scripts/lib/orchestration/finalize/open-or-locate-pr.js +241 -0
- package/.agents/scripts/lib/orchestration/finalize/post-handoff-comment.js +489 -0
- package/.agents/scripts/lib/orchestration/finalize/sanitize-skip-ci.js +88 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches-reap.js +219 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches.js +309 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/cli.js +99 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/fast-forward.js +123 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/filters.js +57 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes-ff.js +114 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes.js +426 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/parse-args.js +84 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/phase-drivers.js +365 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/prompts.js +72 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/prune.js +69 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/render.js +214 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/stashes.js +137 -0
- package/.agents/scripts/lib/orchestration/label-transitions.js +43 -0
- package/.agents/scripts/lib/orchestration/lifecycle/bus.js +309 -0
- package/.agents/scripts/lib/orchestration/lifecycle/emit-story-dispatch-end.js +147 -0
- package/.agents/scripts/lib/orchestration/lifecycle/emit-story-heartbeat.js +155 -0
- package/.agents/scripts/lib/orchestration/lifecycle/ledger-writer.js +226 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/README.md +69 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/acceptance-reconciler.js +378 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-armer.js +248 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-predicate.js +527 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/branch-cleaner.js +259 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/checkpoint-pointer-writer.js +278 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/cleaner.js +355 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/finalizer.js +647 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/index.js +331 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/intervention-recorder.js +140 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/merge-watcher.js +421 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/notify-dispatcher.js +168 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/watcher.js +668 -0
- package/.agents/scripts/lib/orchestration/lifecycle/trace-logger.js +322 -0
- package/.agents/scripts/lib/orchestration/lint-baseline-service.js +114 -0
- package/.agents/scripts/lib/orchestration/manifest-builder.js +216 -0
- package/.agents/scripts/lib/orchestration/model-attribution.js +390 -0
- package/.agents/scripts/lib/orchestration/parked-follow-ons.js +147 -0
- package/.agents/scripts/lib/orchestration/phase-runner.js +87 -0
- package/.agents/scripts/lib/orchestration/plan-review-routing.js +63 -0
- package/.agents/scripts/lib/orchestration/plan-runner/plan-router.js +86 -0
- package/.agents/scripts/lib/orchestration/plan-runner/worktree-sweep.js +212 -0
- package/.agents/scripts/lib/orchestration/planning-context-budget.js +213 -0
- package/.agents/scripts/lib/orchestration/planning-risk.js +155 -0
- package/.agents/scripts/lib/orchestration/planning-state-manager.js +318 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/branch-cleanup.js +56 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/dashboard-refresh.js +33 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/notification.js +78 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/temp-cleanup.js +68 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/ticket-closure.js +118 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/worktree-reap.js +396 -0
- package/.agents/scripts/lib/orchestration/post-merge-pipeline.js +205 -0
- package/.agents/scripts/lib/orchestration/pr-base-guard.js +47 -0
- package/.agents/scripts/lib/orchestration/preflight-cache.js +164 -0
- package/.agents/scripts/lib/orchestration/reassert-status-column.js +202 -0
- package/.agents/scripts/lib/orchestration/reconciler.js +137 -0
- package/.agents/scripts/lib/orchestration/recurring-failure-detector.js +152 -0
- package/.agents/scripts/lib/orchestration/recut.js +56 -0
- package/.agents/scripts/lib/orchestration/resolves-token.js +127 -0
- package/.agents/scripts/lib/orchestration/retro/phases/checks.js +94 -0
- package/.agents/scripts/lib/orchestration/retro/phases/compose-body.js +448 -0
- package/.agents/scripts/lib/orchestration/retro/phases/gather-signals.js +335 -0
- package/.agents/scripts/lib/orchestration/retro/phases/post-and-mirror.js +133 -0
- package/.agents/scripts/lib/orchestration/retro-heuristics.js +57 -0
- package/.agents/scripts/lib/orchestration/retro-perf-heuristics.js +275 -0
- package/.agents/scripts/lib/orchestration/retro-proposals.js +395 -0
- package/.agents/scripts/lib/orchestration/retro-runner.js +171 -0
- package/.agents/scripts/lib/orchestration/review-depth.js +93 -0
- package/.agents/scripts/lib/orchestration/review-providers/codex.js +363 -0
- package/.agents/scripts/lib/orchestration/review-providers/findings-renderer.js +205 -0
- package/.agents/scripts/lib/orchestration/review-providers/native.js +805 -0
- package/.agents/scripts/lib/orchestration/review-providers/review-depth.js +73 -0
- package/.agents/scripts/lib/orchestration/review-providers/review-provider-factory.js +396 -0
- package/.agents/scripts/lib/orchestration/review-providers/security-review.js +373 -0
- package/.agents/scripts/lib/orchestration/review-providers/types.js +89 -0
- package/.agents/scripts/lib/orchestration/review-providers/ultrareview.js +107 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/auto-merge.js +159 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/base-sync.js +194 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/close-validation.js +81 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/code-review.js +190 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/options.js +70 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/pull-request.js +106 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/push.js +42 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/worktree-reap.js +73 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/wrong-tree-guard.js +225 -0
- package/.agents/scripts/lib/orchestration/single-story-close/runner.js +315 -0
- package/.agents/scripts/lib/orchestration/single-story-lease-guard.js +149 -0
- package/.agents/scripts/lib/orchestration/skill-capsule-loader.js +110 -0
- package/.agents/scripts/lib/orchestration/spec-freshness.js +320 -0
- package/.agents/scripts/lib/orchestration/spec-renderer.js +456 -0
- package/.agents/scripts/lib/orchestration/spec-section-validator.js +80 -0
- package/.agents/scripts/lib/orchestration/story-close/auto-refresh-runner.js +797 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/gate-failure.js +163 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/pre-merge-attribution.js +152 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/refresh-commit.js +387 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/regression-projection.js +266 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/scope-discovery.js +48 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution-wiring.js +67 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution.js +161 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-friction-body.js +117 -0
- package/.agents/scripts/lib/orchestration/story-close/cd-out-guard.js +86 -0
- package/.agents/scripts/lib/orchestration/story-close/cleanup-reconciler.js +147 -0
- package/.agents/scripts/lib/orchestration/story-close/close-inputs.js +142 -0
- package/.agents/scripts/lib/orchestration/story-close/comment-bodies.js +62 -0
- package/.agents/scripts/lib/orchestration/story-close/format-autofix-scoped.js +221 -0
- package/.agents/scripts/lib/orchestration/story-close/format-autofix-shared.js +123 -0
- package/.agents/scripts/lib/orchestration/story-close/format-autofix.js +216 -0
- package/.agents/scripts/lib/orchestration/story-close/merge-runner.js +636 -0
- package/.agents/scripts/lib/orchestration/story-close/merge-subject.js +198 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/branch-restore.js +105 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/close.js +222 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/code-review.js +220 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/gates.js +291 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/locked-pipeline.js +234 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/preflight.js +110 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/refresh.js +86 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked-emitter.js +112 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked.js +157 -0
- package/.agents/scripts/lib/orchestration/story-close/post-merge-close.js +434 -0
- package/.agents/scripts/lib/orchestration/story-close/pre-merge-validation.js +290 -0
- package/.agents/scripts/lib/orchestration/story-close-recovery.js +643 -0
- package/.agents/scripts/lib/orchestration/structured-comment-parser.js +67 -0
- package/.agents/scripts/lib/orchestration/task-body-validator.js +391 -0
- package/.agents/scripts/lib/orchestration/ticket-lease.js +358 -0
- package/.agents/scripts/lib/orchestration/ticket-validator-conflicts.js +783 -0
- package/.agents/scripts/lib/orchestration/ticket-validator-sizing.js +367 -0
- package/.agents/scripts/lib/orchestration/ticket-validator.js +691 -0
- package/.agents/scripts/lib/orchestration/ticketing/bulk.js +723 -0
- package/.agents/scripts/lib/orchestration/ticketing/reads.js +474 -0
- package/.agents/scripts/lib/orchestration/ticketing/state.js +559 -0
- package/.agents/scripts/lib/orchestration/ticketing.js +55 -0
- package/.agents/scripts/lib/orchestration/wave-marker.js +28 -0
- package/.agents/scripts/lib/orchestration/wave-record-io.js +277 -0
- package/.agents/scripts/lib/orchestration/wave-record-notifications.js +189 -0
- package/.agents/scripts/lib/orchestration/wave-record-projection.js +423 -0
- package/.agents/scripts/lib/path-security.js +25 -0
- package/.agents/scripts/lib/plan-phase-cleanup.js +125 -0
- package/.agents/scripts/lib/preflight-runner.js +196 -0
- package/.agents/scripts/lib/presentation/dispatch-manifest-render.js +95 -0
- package/.agents/scripts/lib/presentation/manifest-builder.js +245 -0
- package/.agents/scripts/lib/presentation/manifest-formatter.js +243 -0
- package/.agents/scripts/lib/presentation/manifest-helpers.js +213 -0
- package/.agents/scripts/lib/presentation/manifest-persistence.js +262 -0
- package/.agents/scripts/lib/presentation/manifest-procedures.js +55 -0
- package/.agents/scripts/lib/presentation/manifest-render-waves.js +252 -0
- package/.agents/scripts/lib/presentation/manifest-renderer.js +188 -0
- package/.agents/scripts/lib/presentation/manifest-story-views.js +119 -0
- package/.agents/scripts/lib/provider-factory.js +80 -0
- package/.agents/scripts/lib/push-epic-retry.js +209 -0
- package/.agents/scripts/lib/qa/console-allowlist.js +151 -0
- package/.agents/scripts/lib/qa/coverage-report.js +181 -0
- package/.agents/scripts/lib/qa/coverage-verdict.js +296 -0
- package/.agents/scripts/lib/qa/propose-missing-test.js +95 -0
- package/.agents/scripts/lib/qa/qa-context-hydrator.js +296 -0
- package/.agents/scripts/lib/qa/qa-session.js +197 -0
- package/.agents/scripts/lib/qa/redact-evidence.js +245 -0
- package/.agents/scripts/lib/qa/resolve-qa-contract.js +190 -0
- package/.agents/scripts/lib/qa/resolve-selection.js +373 -0
- package/.agents/scripts/lib/runtime-deps/ensure-installed.js +100 -0
- package/.agents/scripts/lib/runtime-deps/manifest.js +96 -0
- package/.agents/scripts/lib/runtime-deps/preflight.js +78 -0
- package/.agents/scripts/lib/runtime-deps/scan-imports.js +202 -0
- package/.agents/scripts/lib/signals/detectors/common.js +36 -0
- package/.agents/scripts/lib/signals/detectors/hotspot.js +298 -0
- package/.agents/scripts/lib/signals/detectors/index.js +14 -0
- package/.agents/scripts/lib/signals/detectors/retry.js +289 -0
- package/.agents/scripts/lib/signals/detectors/rework.js +204 -0
- package/.agents/scripts/lib/signals/index.js +39 -0
- package/.agents/scripts/lib/signals/read.js +268 -0
- package/.agents/scripts/lib/signals/schema.js +225 -0
- package/.agents/scripts/lib/signals/span-tree.js +290 -0
- package/.agents/scripts/lib/signals/write.js +19 -0
- package/.agents/scripts/lib/single-story/confirm-merge.js +201 -0
- package/.agents/scripts/lib/single-story/story-merged-notify.js +126 -0
- package/.agents/scripts/lib/single-story-sweep/protection.js +274 -0
- package/.agents/scripts/lib/single-story-sweep/sweep-lock.js +169 -0
- package/.agents/scripts/lib/single-story-sweep.js +329 -0
- package/.agents/scripts/lib/skills/parse-skill.js +202 -0
- package/.agents/scripts/lib/skills/walk-skill-files.js +56 -0
- package/.agents/scripts/lib/spec/index.js +36 -0
- package/.agents/scripts/lib/spec/loader.js +425 -0
- package/.agents/scripts/lib/spec/state.js +217 -0
- package/.agents/scripts/lib/story-body/story-body.js +743 -0
- package/.agents/scripts/lib/story-init/blocker-validator.js +68 -0
- package/.agents/scripts/lib/story-init/branch-initializer.js +422 -0
- package/.agents/scripts/lib/story-init/context-resolver.js +92 -0
- package/.agents/scripts/lib/story-init/donor-precheck.js +207 -0
- package/.agents/scripts/lib/story-init/hierarchy-tracer.js +36 -0
- package/.agents/scripts/lib/story-init/state-transitioner.js +80 -0
- package/.agents/scripts/lib/story-init/task-graph-builder.js +114 -0
- package/.agents/scripts/lib/story-init/transition-summary.js +34 -0
- package/.agents/scripts/lib/story-lifecycle.js +186 -0
- package/.agents/scripts/lib/story-plan.js +246 -0
- package/.agents/scripts/lib/task-utils.js +26 -0
- package/.agents/scripts/lib/templates/decomposer-prompts.js +168 -0
- package/.agents/scripts/lib/test-env.js +30 -0
- package/.agents/scripts/lib/test-isolate/env-snapshot-loader.js +52 -0
- package/.agents/scripts/lib/test-isolate/list-files.js +90 -0
- package/.agents/scripts/lib/test-isolate/parse-tap.js +75 -0
- package/.agents/scripts/lib/test-isolate/runner.js +483 -0
- package/.agents/scripts/lib/test-profile/parse-tap.js +136 -0
- package/.agents/scripts/lib/test-profile/render-report.js +45 -0
- package/.agents/scripts/lib/test-reserved-epic-temp-ids.js +35 -0
- package/.agents/scripts/lib/test-tiers.js +94 -0
- package/.agents/scripts/lib/util/concurrent-map.js +59 -0
- package/.agents/scripts/lib/util/phase-timer-state.js +72 -0
- package/.agents/scripts/lib/util/phase-timer.js +163 -0
- package/.agents/scripts/lib/util/poll-loop.js +86 -0
- package/.agents/scripts/lib/util/with-timeout.js +32 -0
- package/.agents/scripts/lib/validation-evidence.js +323 -0
- package/.agents/scripts/lib/wave-runner/tick.js +665 -0
- package/.agents/scripts/lib/wave-runner/wave-checkpoint.js +91 -0
- package/.agents/scripts/lib/wave-runner/wave-runner-error.js +19 -0
- package/.agents/scripts/lib/workers/crap-worker.js +197 -0
- package/.agents/scripts/lib/workers/maintainability-report-worker.js +137 -0
- package/.agents/scripts/lib/workers/maintainability-worker.js +79 -0
- package/.agents/scripts/lib/workspace-provisioner.js +189 -0
- package/.agents/scripts/lib/worktree/bootstrapper.js +48 -0
- package/.agents/scripts/lib/worktree/inspector.js +140 -0
- package/.agents/scripts/lib/worktree/lifecycle/creation.js +118 -0
- package/.agents/scripts/lib/worktree/lifecycle/drift-detection.js +62 -0
- package/.agents/scripts/lib/worktree/lifecycle/force-drain.js +276 -0
- package/.agents/scripts/lib/worktree/lifecycle/gc.js +49 -0
- package/.agents/scripts/lib/worktree/lifecycle/merge-reachability.js +178 -0
- package/.agents/scripts/lib/worktree/lifecycle/pending-cleanup.js +264 -0
- package/.agents/scripts/lib/worktree/lifecycle/precheck.js +100 -0
- package/.agents/scripts/lib/worktree/lifecycle/reap.js +588 -0
- package/.agents/scripts/lib/worktree/lifecycle/registry-sync.js +124 -0
- package/.agents/scripts/lib/worktree/lifecycle/shared.js +26 -0
- package/.agents/scripts/lib/worktree/lifecycle-manager.js +40 -0
- package/.agents/scripts/lib/worktree/node-modules-strategy.js +349 -0
- package/.agents/scripts/lib/worktree-manager.js +243 -0
- package/.agents/scripts/lifecycle-diff.js +206 -0
- package/.agents/scripts/lifecycle-emit-story-dispatch.js +194 -0
- package/.agents/scripts/lifecycle-emit.js +479 -0
- package/.agents/scripts/lint-baseline.js +507 -0
- package/.agents/scripts/lint-label-vocabulary.js +237 -0
- package/.agents/scripts/loc-delta.js +205 -0
- package/.agents/scripts/notify.js +307 -0
- package/.agents/scripts/package.json +3 -0
- package/.agents/scripts/post-structured-comment.js +127 -0
- package/.agents/scripts/pr-watch-with-update.js +152 -0
- package/.agents/scripts/providers/github/auth.js +65 -0
- package/.agents/scripts/providers/github/board-add.js +63 -0
- package/.agents/scripts/providers/github/branch-protection.js +186 -0
- package/.agents/scripts/providers/github/cache.js +72 -0
- package/.agents/scripts/providers/github/comments.js +131 -0
- package/.agents/scripts/providers/github/compose.js +111 -0
- package/.agents/scripts/providers/github/errors.js +242 -0
- package/.agents/scripts/providers/github/issues.js +242 -0
- package/.agents/scripts/providers/github/labels.js +179 -0
- package/.agents/scripts/providers/github/mappers.js +126 -0
- package/.agents/scripts/providers/github/merge-methods.js +82 -0
- package/.agents/scripts/providers/github/project-board.js +47 -0
- package/.agents/scripts/providers/github/projects-v2-graphql.js +472 -0
- package/.agents/scripts/providers/github/prs.js +103 -0
- package/.agents/scripts/providers/github/request-helpers.js +110 -0
- package/.agents/scripts/providers/github/sub-issues.js +369 -0
- package/.agents/scripts/providers/github/tickets.js +381 -0
- package/.agents/scripts/providers/github/transient-retry.js +62 -0
- package/.agents/scripts/providers/github.js +157 -0
- package/.agents/scripts/quality-preview.js +327 -0
- package/.agents/scripts/quality-watch.js +223 -0
- package/.agents/scripts/render-manifest.js +143 -0
- package/.agents/scripts/resync-status-column.js +176 -0
- package/.agents/scripts/retro-run.js +167 -0
- package/.agents/scripts/run-audit-suite.js +97 -0
- package/.agents/scripts/run-coverage.js +103 -0
- package/.agents/scripts/run-lint.js +94 -0
- package/.agents/scripts/run-test-profile.js +126 -0
- package/.agents/scripts/run-tests.js +185 -0
- package/.agents/scripts/run-verify.js +56 -0
- package/.agents/scripts/select-audits.js +155 -0
- package/.agents/scripts/signals-view.js +294 -0
- package/.agents/scripts/single-story-close.js +83 -0
- package/.agents/scripts/single-story-confirm-merge.js +183 -0
- package/.agents/scripts/single-story-init.js +692 -0
- package/.agents/scripts/stories-wave-tick.js +415 -0
- package/.agents/scripts/story-close.js +246 -0
- package/.agents/scripts/story-deliver-prepare.js +267 -0
- package/.agents/scripts/story-init.js +516 -0
- package/.agents/scripts/story-phase.js +327 -0
- package/.agents/scripts/story-plan.js +284 -0
- package/.agents/scripts/sync-agentrc.js +71 -0
- package/.agents/scripts/sync-branch-from-base.js +138 -0
- package/.agents/scripts/sync-claude-commands.js +151 -0
- package/.agents/scripts/test-isolate.js +222 -0
- package/.agents/scripts/test-wrapper.js +108 -0
- package/.agents/scripts/update-coverage-baseline.js +129 -0
- package/.agents/scripts/update-crap-baseline.js +177 -0
- package/.agents/scripts/update-duplication-baseline.js +134 -0
- package/.agents/scripts/update-maintainability-baseline.js +183 -0
- package/.agents/scripts/update-mutation-baseline.js +189 -0
- package/.agents/scripts/update-ticket-state.js +107 -0
- package/.agents/scripts/validate-docs-freshness.js +259 -0
- package/.agents/scripts/validate-skills.js +278 -0
- package/.agents/scripts/wave-tick.js +335 -0
- package/.agents/skills/core/analyze-execution/SKILL.md +98 -0
- package/.agents/skills/core/api-and-interface-design/SKILL.md +327 -0
- package/.agents/skills/core/baseline-refresh/SKILL.md +181 -0
- package/.agents/skills/core/browser-testing-with-devtools/SKILL.md +352 -0
- package/.agents/skills/core/ci-cd-and-automation/SKILL.md +274 -0
- package/.agents/skills/core/ci-cd-and-automation/examples.md +211 -0
- package/.agents/skills/core/code-review-and-quality/SKILL.md +421 -0
- package/.agents/skills/core/code-simplification/SKILL.md +389 -0
- package/.agents/skills/core/context-engineering/SKILL.md +309 -0
- package/.agents/skills/core/context-engineering/examples.md +58 -0
- package/.agents/skills/core/debugging-and-error-recovery/SKILL.md +338 -0
- package/.agents/skills/core/deprecation-and-migration/SKILL.md +250 -0
- package/.agents/skills/core/diagnose-friction/SKILL.md +79 -0
- package/.agents/skills/core/documentation-and-adrs/SKILL.md +323 -0
- package/.agents/skills/core/epic-plan-consolidate/SKILL.md +145 -0
- package/.agents/skills/core/epic-plan-decompose-author/SKILL.md +425 -0
- package/.agents/skills/core/epic-plan-spec-author/SKILL.md +393 -0
- package/.agents/skills/core/frontend-ui-engineering/SKILL.md +357 -0
- package/.agents/skills/core/git-workflow-and-versioning/SKILL.md +352 -0
- package/.agents/skills/core/hydrate-context/SKILL.md +118 -0
- package/.agents/skills/core/idea-refinement/SKILL.md +317 -0
- package/.agents/skills/core/idea-refinement/examples.md +437 -0
- package/.agents/skills/core/idea-refinement/frameworks.md +135 -0
- package/.agents/skills/core/idea-refinement/refinement-criteria.md +155 -0
- package/.agents/skills/core/idea-refinement/scripts/idea-refine.sh +15 -0
- package/.agents/skills/core/incremental-implementation/SKILL.md +271 -0
- package/.agents/skills/core/introducing-a-baseline-gate/SKILL.md +213 -0
- package/.agents/skills/core/knowledge-transfer/SKILL.md +175 -0
- package/.agents/skills/core/mutation-survivor-remediation/SKILL.md +117 -0
- package/.agents/skills/core/performance-optimization/SKILL.md +314 -0
- package/.agents/skills/core/planning-and-task-breakdown/SKILL.md +277 -0
- package/.agents/skills/core/property-based-testing/SKILL.md +148 -0
- package/.agents/skills/core/qa-coverage-mapping/SKILL.md +105 -0
- package/.agents/skills/core/refactoring-discipline/SKILL.md +111 -0
- package/.agents/skills/core/scope-triage/SKILL.md +127 -0
- package/.agents/skills/core/security-and-hardening/SKILL.md +400 -0
- package/.agents/skills/core/shipping-and-launch/SKILL.md +328 -0
- package/.agents/skills/core/spec-driven-development/SKILL.md +252 -0
- package/.agents/skills/core/test-driven-development/SKILL.md +475 -0
- package/.agents/skills/core/using-agent-skills/SKILL.md +232 -0
- package/.agents/skills/skills.index.json +596 -0
- package/.agents/skills/stack/architecture/monorepo-path-strategist/SKILL.md +31 -0
- package/.agents/skills/stack/architecture/structured-output-zod/SKILL.md +51 -0
- package/.agents/skills/stack/architecture/subagent-orchestration/SKILL.md +48 -0
- package/.agents/skills/stack/backend/cloudflare-hono-architect/SKILL.md +31 -0
- package/.agents/skills/stack/backend/cloudflare-hono-architect/examples/route-template.ts +33 -0
- package/.agents/skills/stack/backend/cloudflare-queue-manager/SKILL.md +31 -0
- package/.agents/skills/stack/backend/cloudflare-workers/SKILL.md +51 -0
- package/.agents/skills/stack/backend/highlevel-crm/SKILL.md +54 -0
- package/.agents/skills/stack/backend/sqlite-drizzle-expert/SKILL.md +29 -0
- package/.agents/skills/stack/backend/sqlite-drizzle-expert/examples/schema-template.ts +30 -0
- package/.agents/skills/stack/backend/stripe-integration/SKILL.md +57 -0
- package/.agents/skills/stack/backend/stripe-integration/scripts/listen-stripe.sh +9 -0
- package/.agents/skills/stack/backend/turso-sqlite/SKILL.md +48 -0
- package/.agents/skills/stack/frontend/astro/SKILL.md +62 -0
- package/.agents/skills/stack/frontend/astro-react-island-strategist/SKILL.md +30 -0
- package/.agents/skills/stack/frontend/expo-react-native-developer/SKILL.md +29 -0
- package/.agents/skills/stack/frontend/google-analytics-v4/SKILL.md +50 -0
- package/.agents/skills/stack/frontend/tailwind-v4/SKILL.md +58 -0
- package/.agents/skills/stack/frontend/ui-accessibility-engineer/SKILL.md +34 -0
- package/.agents/skills/stack/qa/audit-accessibility/SKILL.md +51 -0
- package/.agents/skills/stack/qa/gherkin-authoring/SKILL.md +257 -0
- package/.agents/skills/stack/qa/gherkin-authoring/examples/invoice-issue.feature +41 -0
- package/.agents/skills/stack/qa/lighthouse-baseline/SKILL.md +199 -0
- package/.agents/skills/stack/qa/playwright/SKILL.md +50 -0
- package/.agents/skills/stack/qa/playwright-bdd/SKILL.md +188 -0
- package/.agents/skills/stack/qa/qa-explore-driving/SKILL.md +142 -0
- package/.agents/skills/stack/qa/qa-harness/SKILL.md +220 -0
- package/.agents/skills/stack/qa/vitest/SKILL.md +51 -0
- package/.agents/skills/stack/security/backend-security-patterns/SKILL.md +68 -0
- package/.agents/starter-agentrc.json +22 -0
- package/.agents/templates/agent-protocol.md +72 -0
- package/.agents/templates/docs/architecture.md +30 -0
- package/.agents/templates/docs/decisions.md +24 -0
- package/.agents/templates/epic-from-idea.md +21 -0
- package/.agents/templates/single-story-body.md +17 -0
- package/.agents/workflows/agents-update.md +415 -0
- package/.agents/workflows/audit-architecture.md +312 -0
- package/.agents/workflows/audit-clean-code.md +179 -0
- package/.agents/workflows/audit-dependencies.md +91 -0
- package/.agents/workflows/audit-devops.md +110 -0
- package/.agents/workflows/audit-lighthouse.md +260 -0
- package/.agents/workflows/audit-performance.md +161 -0
- package/.agents/workflows/audit-privacy.md +104 -0
- package/.agents/workflows/audit-quality.md +191 -0
- package/.agents/workflows/audit-security.md +156 -0
- package/.agents/workflows/audit-seo.md +118 -0
- package/.agents/workflows/audit-sre.md +139 -0
- package/.agents/workflows/audit-to-stories.md +257 -0
- package/.agents/workflows/audit-ux-ui.md +102 -0
- package/.agents/workflows/epic-deliver.md +864 -0
- package/.agents/workflows/epic-plan.md +998 -0
- package/.agents/workflows/explain.md +118 -0
- package/.agents/workflows/git-cleanup.md +250 -0
- package/.agents/workflows/git-commit-all.md +15 -0
- package/.agents/workflows/git-merge-pr.md +377 -0
- package/.agents/workflows/git-pr-all.md +278 -0
- package/.agents/workflows/git-push.md +60 -0
- package/.agents/workflows/helpers/_merge-conflict-template.md +54 -0
- package/.agents/workflows/helpers/acceptance-self-eval.md +74 -0
- package/.agents/workflows/helpers/agents-sync-config.md +129 -0
- package/.agents/workflows/helpers/code-quality-guardrails.md +101 -0
- package/.agents/workflows/helpers/code-review.md +370 -0
- package/.agents/workflows/helpers/diagnose.md +117 -0
- package/.agents/workflows/helpers/epic-audit.md +295 -0
- package/.agents/workflows/helpers/epic-deliver-story.md +370 -0
- package/.agents/workflows/helpers/epic-plan-decompose.md +199 -0
- package/.agents/workflows/helpers/epic-plan-spec.md +184 -0
- package/.agents/workflows/helpers/epic-testing.md +125 -0
- package/.agents/workflows/helpers/parallel-tooling.md +88 -0
- package/.agents/workflows/helpers/signals.md +112 -0
- package/.agents/workflows/helpers/single-story-deliver.md +636 -0
- package/.agents/workflows/helpers/worktree-lifecycle.md +317 -0
- package/.agents/workflows/onboard.md +207 -0
- package/.agents/workflows/qa-assist.md +293 -0
- package/.agents/workflows/qa-explore.md +350 -0
- package/.agents/workflows/qa-run-harness.md +288 -0
- package/.agents/workflows/story-deliver.md +327 -0
- package/.agents/workflows/story-plan.md +233 -0
- package/LICENSE +21 -0
- package/README.md +193 -0
- package/bin/mandrel.js +56 -0
- package/bin/postinstall.js +195 -0
- package/lib/cli/__tests__/migrate.test.js +268 -0
- package/lib/cli/__tests__/sync-local-zone.test.js +247 -0
- package/lib/cli/__tests__/sync.test.js +372 -0
- package/lib/cli/__tests__/update-major.test.js +217 -0
- package/lib/cli/__tests__/update.test.js +696 -0
- package/lib/cli/__tests__/version-check.test.js +398 -0
- package/lib/cli/doctor.js +124 -0
- package/lib/cli/explain.js +107 -0
- package/lib/cli/migrate.js +260 -0
- package/lib/cli/registry.js +830 -0
- package/lib/cli/sync-commands.js +50 -0
- package/lib/cli/sync.js +200 -0
- package/lib/cli/uninstall.js +795 -0
- package/lib/cli/update.js +854 -0
- package/lib/cli/version-check.js +206 -0
- package/lib/migrations/README.md +69 -0
- package/lib/migrations/__tests__/index.test.js +216 -0
- package/lib/migrations/index.js +164 -0
- package/package.json +105 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Audit CI/CD workflows, container images, infrastructure-as-code, and deployment pipelines; surface failure modes and hardening gaps.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# DevOps Infrastructure Audit
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
Principal DevOps Engineer & Infrastructure Architect
|
|
10
|
+
|
|
11
|
+
## Context & Objective
|
|
12
|
+
|
|
13
|
+
You are performing a comprehensive, read-only audit of this repository's DevOps
|
|
14
|
+
infrastructure, developer experience (DX) tooling, and CI/CD pipelines. Your
|
|
15
|
+
goal is to identify inefficiencies, security risks, and areas for modernization
|
|
16
|
+
without making any immediate changes.
|
|
17
|
+
|
|
18
|
+
## Scope (Epic mode)
|
|
19
|
+
|
|
20
|
+
When this lens is invoked from `/epic-deliver` Phase 4 (epic-audit), the
|
|
21
|
+
following block is populated with the Epic's change-set file list.
|
|
22
|
+
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
23
|
+
renders the literal substitution token and you MUST treat it as **no
|
|
24
|
+
scope filter — run the lens codebase-wide** exactly as you would have
|
|
25
|
+
before this section existed.
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
{{changedFiles}}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- If the block above contains a newline-delimited list of file paths,
|
|
32
|
+
restrict your analysis to those files (and their direct dependencies
|
|
33
|
+
when the lens explicitly calls for cross-file reasoning).
|
|
34
|
+
- If the block above renders as the literal string `{{changedFiles}}`
|
|
35
|
+
(i.e. no substitution was supplied), ignore this section entirely and
|
|
36
|
+
proceed with the full codebase-wide scan defined in the remaining
|
|
37
|
+
steps.
|
|
38
|
+
|
|
39
|
+
## Step 1: Context Gathering (Read-Only Scan)
|
|
40
|
+
|
|
41
|
+
> Apply [`helpers/parallel-tooling.md`](helpers/parallel-tooling.md) when batching the scan below — independent reads belong in one turn, long shells run via `run_in_background` + `Monitor`.
|
|
42
|
+
|
|
43
|
+
Before generating the report, silently scan the workspace for relevant
|
|
44
|
+
configuration files. Pay special attention to:
|
|
45
|
+
|
|
46
|
+
- CI/CD pipelines (e.g., `.github/workflows/`, `.gitlab-ci.yml`,
|
|
47
|
+
`azure-pipelines.yml`).
|
|
48
|
+
- Dependency manifests and script definitions (e.g., `package.json`,
|
|
49
|
+
`pnpm-workspace.yaml`).
|
|
50
|
+
- Linting, formatting, and static analysis configs (e.g., `.eslintrc*`,
|
|
51
|
+
`.prettierrc*`, `biome.json`, `tsconfig.json`).
|
|
52
|
+
- Git hooks and commit standards (e.g., `.husky/`, `commitlint.config.js`).
|
|
53
|
+
|
|
54
|
+
## Step 2: Analysis Dimensions
|
|
55
|
+
|
|
56
|
+
Evaluate the gathered context against the following dimensions:
|
|
57
|
+
|
|
58
|
+
1. **Redundancy & Duplication:** Overlapping tools or conflicting rules (e.g.,
|
|
59
|
+
Prettier vs. ESLint formatting, duplicated scripts in `package.json` and CI).
|
|
60
|
+
2. **Performance Gaps:** Bottlenecks in CI/CD, slow caching strategies, or
|
|
61
|
+
unoptimized hooks (e.g., missing `lint-staged`).
|
|
62
|
+
3. **Security & Compliance:** Missing secret scanning, loose permissions (e.g.,
|
|
63
|
+
`GITHUB_TOKEN` scopes), outdated or vulnerable dependency resolution
|
|
64
|
+
strategies.
|
|
65
|
+
4. **Standardization & Modernization:** Opportunities to consolidate tooling
|
|
66
|
+
(e.g., migrating to unified tools like Biome) or extract inline
|
|
67
|
+
configurations into dedicated dotfiles.
|
|
68
|
+
5. **Reliability & Resilience:** Fragile pipeline steps, missing error handling,
|
|
69
|
+
silent failures, or lack of retries for network-dependent tasks.
|
|
70
|
+
|
|
71
|
+
## Step 3: Output Requirements
|
|
72
|
+
|
|
73
|
+
Generate and save a highly structured Markdown audit report to
|
|
74
|
+
`{{auditOutputDir}}/audit-devops-results.md`, using the exact template below.
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
# DevOps Infrastructure Audit Report
|
|
78
|
+
|
|
79
|
+
## Executive Summary
|
|
80
|
+
|
|
81
|
+
[Provide a brief 2–3 sentence overview of the current infrastructure state and
|
|
82
|
+
highlight the most critical overarching themes from the findings.]
|
|
83
|
+
|
|
84
|
+
## Detailed Findings
|
|
85
|
+
|
|
86
|
+
[For every gap identified, use the following strict structure:]
|
|
87
|
+
|
|
88
|
+
### [Short Title of the Issue]
|
|
89
|
+
|
|
90
|
+
- **Dimension:** [e.g., Security & Compliance]
|
|
91
|
+
- **Impact:** [High | Medium | Low]
|
|
92
|
+
- **Current State:** [What is currently configured in the codebase]
|
|
93
|
+
- **Recommendation & Rationale:** [The specific fix and why it improves the
|
|
94
|
+
system]
|
|
95
|
+
- **Agent Prompt:**
|
|
96
|
+
`[A copy-pasteable, highly specific prompt to execute this fix independently]`
|
|
97
|
+
|
|
98
|
+
## Proposed Implementation Roadmap
|
|
99
|
+
|
|
100
|
+
[Organize the recommended changes into a logical, phased approach — e.g., Phase
|
|
101
|
+
1: Critical Security & Fixing Broken Builds, Phase 2: Performance Optimizations,
|
|
102
|
+
Phase 3: Modernization / Tech Debt.]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Constraint
|
|
108
|
+
|
|
109
|
+
Do NOT execute any code modifications, edit files, create branches, or install
|
|
110
|
+
packages. This is strictly a read-only analysis. Output the report and stop.
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run a Lighthouse audit (Performance / Accessibility / Best Practices / SEO) and produce a structured findings report
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Lighthouse Audit & Analysis
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
Senior Web Performance & Quality Engineer. You operate Lighthouse end-to-end:
|
|
10
|
+
launch the run, parse the JSON, surface the highest-leverage findings across
|
|
11
|
+
all four categories, and produce a structured report the operator can act on.
|
|
12
|
+
|
|
13
|
+
## Context & Objective
|
|
14
|
+
|
|
15
|
+
This is a **read-only** audit. Your job is to run Lighthouse, **parse and
|
|
16
|
+
analyze the full result set** (scores, opportunities, diagnostics, per-audit
|
|
17
|
+
failures), and emit a meaningful Markdown report at
|
|
18
|
+
`{{auditOutputDir}}/audit-lighthouse-results.md`. Do not modify application
|
|
19
|
+
code. The report's recommendations should be specific enough that a follow-up
|
|
20
|
+
implementation pass (or the `/audit-performance` workflow) can act on them
|
|
21
|
+
without re-running Lighthouse.
|
|
22
|
+
|
|
23
|
+
**Target URL:** `[TARGET_URL]` — replace with the URL of a running build
|
|
24
|
+
(e.g. `http://localhost:3000`, a preview deploy, or production). The dev
|
|
25
|
+
server should be running in production mode where possible — dev-mode bundles
|
|
26
|
+
inflate Performance scores misleadingly.
|
|
27
|
+
|
|
28
|
+
**Form factor:** Run **Desktop** by default. If the project is mobile-first
|
|
29
|
+
(check `viewport` meta, responsive CSS, or operator instruction), run
|
|
30
|
+
**Mobile** instead and note the choice in the report.
|
|
31
|
+
|
|
32
|
+
## Scope (Epic mode)
|
|
33
|
+
|
|
34
|
+
When this lens is invoked from `/epic-deliver` Phase 4 (epic-audit), the
|
|
35
|
+
following block is populated with the Epic's change-set file list.
|
|
36
|
+
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
37
|
+
renders the literal substitution token and you MUST treat it as **no
|
|
38
|
+
scope filter — run the lens codebase-wide** exactly as you would have
|
|
39
|
+
before this section existed.
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
{{changedFiles}}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- If the block above contains a newline-delimited list of file paths,
|
|
46
|
+
restrict your analysis to those files (and their direct dependencies
|
|
47
|
+
when the lens explicitly calls for cross-file reasoning).
|
|
48
|
+
- If the block above renders as the literal string `{{changedFiles}}`
|
|
49
|
+
(i.e. no substitution was supplied), ignore this section entirely and
|
|
50
|
+
proceed with the full codebase-wide scan defined in the remaining
|
|
51
|
+
steps.
|
|
52
|
+
|
|
53
|
+
## Step 1: Pre-flight
|
|
54
|
+
|
|
55
|
+
> Apply [`helpers/parallel-tooling.md`](helpers/parallel-tooling.md) when batching the scan below — independent reads belong in one turn, long shells run via `run_in_background` + `Monitor`.
|
|
56
|
+
|
|
57
|
+
1. Confirm the target URL is reachable (HTTP 200) before invoking Lighthouse.
|
|
58
|
+
If the server is not running, stop and ask the operator to start it — do
|
|
59
|
+
not attempt to start arbitrary dev servers yourself.
|
|
60
|
+
2. Confirm `{{auditOutputDir}}` exists. Create it if missing.
|
|
61
|
+
3. Note the run context in the report header: URL, form factor, timestamp,
|
|
62
|
+
build mode (dev / prod / preview).
|
|
63
|
+
|
|
64
|
+
## Step 2: Run Lighthouse
|
|
65
|
+
|
|
66
|
+
Use the `mcp__chrome-devtools__lighthouse_audit` tool (available via the
|
|
67
|
+
chrome-devtools MCP server) against `[TARGET_URL]`. Capture **all four
|
|
68
|
+
categories**: Performance, Accessibility, Best Practices, SEO.
|
|
69
|
+
|
|
70
|
+
If the chrome-devtools MCP server is unavailable, fall back to the
|
|
71
|
+
`lighthouse` CLI:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npx lighthouse [TARGET_URL] \
|
|
75
|
+
--output=json --output=html \
|
|
76
|
+
--output-path={{auditOutputDir}}/lighthouse-raw \
|
|
77
|
+
--preset=desktop \
|
|
78
|
+
--chrome-flags="--headless --no-sandbox"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Save the raw JSON alongside the report so future runs can diff against it.
|
|
82
|
+
|
|
83
|
+
If Lighthouse fails to launch (Chromium not found, port in use, target
|
|
84
|
+
unreachable), stop and report the environmental issue. Do not silently
|
|
85
|
+
continue with partial data.
|
|
86
|
+
|
|
87
|
+
## Step 3: Parse & Analyze
|
|
88
|
+
|
|
89
|
+
Extract and reason about the following from the JSON result:
|
|
90
|
+
|
|
91
|
+
### 3a. Category scores
|
|
92
|
+
|
|
93
|
+
| Category | Score (0-100) |
|
|
94
|
+
| --- | --- |
|
|
95
|
+
| Performance | — |
|
|
96
|
+
| Accessibility | — |
|
|
97
|
+
| Best Practices | — |
|
|
98
|
+
| SEO | — |
|
|
99
|
+
|
|
100
|
+
### 3b. Core Web Vitals & key metrics (Performance)
|
|
101
|
+
|
|
102
|
+
Pull from `audits` and `categories.performance.auditRefs`:
|
|
103
|
+
|
|
104
|
+
| Metric | Value | Score | Threshold (good / needs-improvement / poor) |
|
|
105
|
+
| --- | --- | --- | --- |
|
|
106
|
+
| Largest Contentful Paint (LCP) | — | — | ≤2.5s / ≤4.0s / >4.0s |
|
|
107
|
+
| First Contentful Paint (FCP) | — | — | ≤1.8s / ≤3.0s / >3.0s |
|
|
108
|
+
| Total Blocking Time (TBT) | — | — | ≤200ms / ≤600ms / >600ms |
|
|
109
|
+
| Cumulative Layout Shift (CLS) | — | — | ≤0.1 / ≤0.25 / >0.25 |
|
|
110
|
+
| Speed Index | — | — | ≤3.4s / ≤5.8s / >5.8s |
|
|
111
|
+
| Time to Interactive (TTI) | — | — | ≤3.8s / ≤7.3s / >7.3s |
|
|
112
|
+
| Interaction to Next Paint (INP, if present) | — | — | ≤200ms / ≤500ms / >500ms |
|
|
113
|
+
|
|
114
|
+
### 3c. Failed audits & opportunities
|
|
115
|
+
|
|
116
|
+
For each category, enumerate every audit where `score < 1` (or
|
|
117
|
+
`score === null` with a non-pass `scoreDisplayMode`). Group into:
|
|
118
|
+
|
|
119
|
+
- **Opportunities** (Performance only): items with measurable
|
|
120
|
+
`details.overallSavingsMs` or `overallSavingsBytes`. Rank by
|
|
121
|
+
`overallSavingsMs` desc.
|
|
122
|
+
- **Diagnostics**: informational findings without estimated savings.
|
|
123
|
+
- **Failed audits** (Accessibility / Best Practices / SEO): every audit
|
|
124
|
+
with `score < 1`. Include the affected nodes / URLs from `details.items`
|
|
125
|
+
where present (cap at 5 examples per finding to keep the report
|
|
126
|
+
readable).
|
|
127
|
+
|
|
128
|
+
### 3d. Cross-cutting observations
|
|
129
|
+
|
|
130
|
+
After enumerating, look for **patterns across audits** — not just per-audit
|
|
131
|
+
failures. Examples:
|
|
132
|
+
|
|
133
|
+
- Same third-party origin showing up in `third-party-summary`,
|
|
134
|
+
`render-blocking-resources`, and `network-rtt` → flag as a single
|
|
135
|
+
systemic issue, not three separate ones.
|
|
136
|
+
- Multiple Accessibility failures all rooted in one shared component
|
|
137
|
+
(e.g. a design-system `<Button>` missing `aria-label`) → call that out
|
|
138
|
+
explicitly so the fix is one place, not twenty.
|
|
139
|
+
- LCP element is an image with no `width`/`height` and a low priority hint
|
|
140
|
+
→ connects LCP, CLS, and `unsized-images` into one fix.
|
|
141
|
+
|
|
142
|
+
## Step 4: Generate the Report
|
|
143
|
+
|
|
144
|
+
Write `{{auditOutputDir}}/audit-lighthouse-results.md` using the template
|
|
145
|
+
below. The report MUST include all sections, even if empty (write
|
|
146
|
+
"_No findings._" rather than omitting). Include the absolute path to the raw
|
|
147
|
+
JSON / HTML so the operator can drill in.
|
|
148
|
+
|
|
149
|
+
```markdown
|
|
150
|
+
# Lighthouse Audit Report
|
|
151
|
+
|
|
152
|
+
## Run Context
|
|
153
|
+
|
|
154
|
+
- **URL:** [TARGET_URL]
|
|
155
|
+
- **Form factor:** Desktop | Mobile
|
|
156
|
+
- **Build mode:** prod | dev | preview
|
|
157
|
+
- **Timestamp:** YYYY-MM-DDTHH:MM:SSZ
|
|
158
|
+
- **Lighthouse version:** [from JSON `lighthouseVersion`]
|
|
159
|
+
- **Raw artifacts:** `{{auditOutputDir}}/lighthouse-raw.report.json`,
|
|
160
|
+
`{{auditOutputDir}}/lighthouse-raw.report.html`
|
|
161
|
+
|
|
162
|
+
## Category Scores
|
|
163
|
+
|
|
164
|
+
| Category | Score | Verdict |
|
|
165
|
+
| --- | --- | --- |
|
|
166
|
+
| Performance | — / 100 | good (≥90) / needs-improvement (50-89) / poor (<50) |
|
|
167
|
+
| Accessibility | — / 100 | … |
|
|
168
|
+
| Best Practices | — / 100 | … |
|
|
169
|
+
| SEO | — / 100 | … |
|
|
170
|
+
|
|
171
|
+
## Core Web Vitals
|
|
172
|
+
|
|
173
|
+
[Table from Step 3b, with verdict colour-word per row.]
|
|
174
|
+
|
|
175
|
+
## Top Findings
|
|
176
|
+
|
|
177
|
+
> Prioritized across all four categories by estimated impact. List the top
|
|
178
|
+
> 5–10 here so the operator has a clear "fix these first" list. Each entry
|
|
179
|
+
> must be specific enough to act on without re-opening Lighthouse.
|
|
180
|
+
|
|
181
|
+
### 1. [Short title]
|
|
182
|
+
|
|
183
|
+
- **Category:** Performance | Accessibility | Best Practices | SEO
|
|
184
|
+
- **Audit ID:** [e.g. `unused-javascript`, `color-contrast`]
|
|
185
|
+
- **Impact:** High | Medium | Low
|
|
186
|
+
- **Estimated savings:** [e.g. "1.4s LCP / 320 KB transfer"] — omit for
|
|
187
|
+
non-Performance findings.
|
|
188
|
+
- **Evidence:** [Specific files / selectors / nodes from `details.items`,
|
|
189
|
+
capped at 5 examples.]
|
|
190
|
+
- **Recommendation:** [Concrete next step — file to edit, attribute to add,
|
|
191
|
+
config to change. No vague "consider optimizing".]
|
|
192
|
+
|
|
193
|
+
[Repeat for each top finding.]
|
|
194
|
+
|
|
195
|
+
## Performance — Full Breakdown
|
|
196
|
+
|
|
197
|
+
### Opportunities (ranked by overallSavingsMs)
|
|
198
|
+
|
|
199
|
+
| Audit | Savings | Bytes | Notes |
|
|
200
|
+
| --- | --- | --- | --- |
|
|
201
|
+
| … | … | … | … |
|
|
202
|
+
|
|
203
|
+
### Diagnostics
|
|
204
|
+
|
|
205
|
+
| Audit | Description | Notes |
|
|
206
|
+
| --- | --- | --- |
|
|
207
|
+
| … | … | … |
|
|
208
|
+
|
|
209
|
+
## Accessibility — Failed Audits
|
|
210
|
+
|
|
211
|
+
| Audit | Severity | Affected nodes (count) | Example |
|
|
212
|
+
| --- | --- | --- | --- |
|
|
213
|
+
| … | … | … | … |
|
|
214
|
+
|
|
215
|
+
## Best Practices — Failed Audits
|
|
216
|
+
|
|
217
|
+
[Same structure as Accessibility.]
|
|
218
|
+
|
|
219
|
+
## SEO — Failed Audits
|
|
220
|
+
|
|
221
|
+
[Same structure as Accessibility.]
|
|
222
|
+
|
|
223
|
+
## Cross-Cutting Observations
|
|
224
|
+
|
|
225
|
+
[From Step 3d. Patterns that span multiple audits / a single root cause
|
|
226
|
+
showing up as several Lighthouse findings.]
|
|
227
|
+
|
|
228
|
+
## Suggested Next Steps
|
|
229
|
+
|
|
230
|
+
- [3–5 bullet points the operator can hand to a follow-up workflow
|
|
231
|
+
(`/audit-performance` for backend bottlenecks, manual fix passes for
|
|
232
|
+
per-component a11y violations, etc.) Each bullet should map to a finding
|
|
233
|
+
above by ID.]
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Step 5: Sanity-check the Report
|
|
237
|
+
|
|
238
|
+
Before returning, re-read the generated report and verify:
|
|
239
|
+
|
|
240
|
+
- Every category in Step 3a has a score (no dashes left as placeholders).
|
|
241
|
+
- Every "Top Findings" entry has a concrete `Recommendation` — not a
|
|
242
|
+
generic "improve performance".
|
|
243
|
+
- The raw artifact paths exist on disk.
|
|
244
|
+
- Section "Cross-Cutting Observations" is non-empty if and only if the
|
|
245
|
+
result set actually contains overlapping findings (don't fabricate
|
|
246
|
+
patterns to fill the section — write "_No cross-cutting patterns
|
|
247
|
+
detected._" if there genuinely aren't any).
|
|
248
|
+
|
|
249
|
+
## Constraints
|
|
250
|
+
|
|
251
|
+
- **Read-only.** Do not modify application code, dependencies, or
|
|
252
|
+
configuration as part of this workflow. Surfacing fix recommendations is
|
|
253
|
+
the deliverable; applying them is a separate workflow.
|
|
254
|
+
- **Single run.** One Lighthouse invocation per run of this workflow. Do
|
|
255
|
+
not loop — variance between runs is expected and a single snapshot is
|
|
256
|
+
sufficient for the report. If the operator wants a stability profile,
|
|
257
|
+
that's a different workflow (`/audit-performance`).
|
|
258
|
+
- **No fabrication.** Every score, metric, and audit ID in the report must
|
|
259
|
+
trace back to the raw JSON. If a value is missing from the run (e.g.
|
|
260
|
+
INP often is), say so — don't invent it.
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Audit hot paths, algorithmic complexity, and I/O bottlenecks in the tooling surface (`epic-close`, dispatcher, gates); propose remediations.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Performance & Bottleneck Audit
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
Performance Engineer & Systems Architect
|
|
10
|
+
|
|
11
|
+
## Context & Objective
|
|
12
|
+
|
|
13
|
+
Analyze the application for performance regressions, bottlenecks, and efficiency
|
|
14
|
+
gaps. Your goal is to identify why a system is slow or where it might fail under
|
|
15
|
+
load.
|
|
16
|
+
|
|
17
|
+
## Scope (Epic mode)
|
|
18
|
+
|
|
19
|
+
When this lens is invoked from `/epic-deliver` Phase 4 (epic-audit), the
|
|
20
|
+
following block is populated with the Epic's change-set file list.
|
|
21
|
+
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
22
|
+
renders the literal substitution token and you MUST treat it as **no
|
|
23
|
+
scope filter — run the lens codebase-wide** exactly as you would have
|
|
24
|
+
before this section existed.
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
{{changedFiles}}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- If the block above contains a newline-delimited list of file paths,
|
|
31
|
+
restrict your analysis to those files (and their direct dependencies
|
|
32
|
+
when the lens explicitly calls for cross-file reasoning).
|
|
33
|
+
- If the block above renders as the literal string `{{changedFiles}}`
|
|
34
|
+
(i.e. no substitution was supplied), ignore this section entirely and
|
|
35
|
+
proceed with the full codebase-wide scan defined in the remaining
|
|
36
|
+
steps.
|
|
37
|
+
|
|
38
|
+
## Execution strategy (dual-path)
|
|
39
|
+
|
|
40
|
+
This lens runs along one of two execution paths. Both emit the **identical**
|
|
41
|
+
report contract (Step 3); downstream consumers (`/epic-deliver` Phase 4
|
|
42
|
+
epic-audit, `audit-to-stories`) are agnostic to which path produced it.
|
|
43
|
+
|
|
44
|
+
- **Orchestrated (dynamic-workflow) path.** When Claude Code's
|
|
45
|
+
[dynamic workflows](https://code.claude.com/docs/en/workflows) are
|
|
46
|
+
available, the saved project workflow
|
|
47
|
+
`.claude/workflows/audit-performance.workflow.js` fans the dimensions below
|
|
48
|
+
out as parallel read-only subagents, runs an **adversarial cross-check**
|
|
49
|
+
stage (an independent agent reviews each dimension's findings and drops
|
|
50
|
+
false positives before they enter the report), then synthesises the Step 3
|
|
51
|
+
report. The orchestrator derives its per-dimension prompts from *this*
|
|
52
|
+
markdown at run time — the lens stays the single source of truth; the
|
|
53
|
+
script does not fork a second copy of the spec. The three-phase fan-out
|
|
54
|
+
itself is the shared
|
|
55
|
+
[`runAuditOrchestration`](../scripts/lib/dynamic-workflow/audit-orchestrator.js)
|
|
56
|
+
engine, not a per-lens copy.
|
|
57
|
+
- **Sequential (single-pass) path.** When dynamic workflows are unavailable,
|
|
58
|
+
follow Steps 1–3 below turn-by-turn exactly as before. This is the default
|
|
59
|
+
fallback and changes nothing about the existing behaviour.
|
|
60
|
+
|
|
61
|
+
**Strategy selection** is computed by
|
|
62
|
+
[`lib/dynamic-workflow/capability.js`](../scripts/lib/dynamic-workflow/capability.js)
|
|
63
|
+
(`selectAuditStrategy`). The orchestrated path is chosen only when the runtime
|
|
64
|
+
is Claude Code, `disableWorkflows` is not set (settings.json **or**
|
|
65
|
+
`CLAUDE_CODE_DISABLE_WORKFLOWS`), and the Claude Code version meets the
|
|
66
|
+
research-preview floor (`>= 2.1.154`). Any other runtime, a disabled setting,
|
|
67
|
+
or an older version degrades gracefully to the sequential path.
|
|
68
|
+
|
|
69
|
+
> **Capability degradation, not a contract shim.** This dual path is **not**
|
|
70
|
+
> covered by the No-Shim / hard-cutover rule in
|
|
71
|
+
> [`git-conventions.md`](../rules/git-conventions.md). That rule forbids
|
|
72
|
+
> running two shapes of the *same contract* side by side. Here there is **one**
|
|
73
|
+
> report contract; only the *execution strategy* is selected from a runtime
|
|
74
|
+
> capability — the same pattern the protocol already endorses for live-docs
|
|
75
|
+
> fallback in [`instructions.md` §1.C/§1.D](../instructions.md). The full
|
|
76
|
+
> capability-degradation rationale lives in the
|
|
77
|
+
> [`capability.js`](../scripts/lib/dynamic-workflow/capability.js) module
|
|
78
|
+
> docstring; the orchestrated-run evidence and per-lens cost/precision gate
|
|
79
|
+
> verdicts live in [`docs/roadmap.md`](../../docs/roadmap.md) (Part 3 —
|
|
80
|
+
> Dynamic-Workflow Orchestration).
|
|
81
|
+
|
|
82
|
+
**Forcing a path (for testing).** Set `MANDREL_AUDIT_STRATEGY=sequential` to
|
|
83
|
+
verify the fallback path with the feature notionally disabled, or
|
|
84
|
+
`MANDREL_AUDIT_STRATEGY=orchestrated` to pin the dynamic path. To exercise the
|
|
85
|
+
real disable signals instead, set `CLAUDE_CODE_DISABLE_WORKFLOWS=1` (env) or
|
|
86
|
+
`disableWorkflows: true` in `.claude/settings.json` and re-run the lens — both
|
|
87
|
+
degrade to the sequential path.
|
|
88
|
+
|
|
89
|
+
> **Read-only on both paths.** The lens is read-only (see Constraint). The
|
|
90
|
+
> orchestrated subagents run in `acceptEdits` and inherit the session tool
|
|
91
|
+
> allowlist, but the workflow script grants the analysis agents only
|
|
92
|
+
> read/search tools (`Read`, `Grep`, `Glob`) — no write/edit/shell-mutation
|
|
93
|
+
> tools. The single write in an orchestrated run is the final report artifact.
|
|
94
|
+
|
|
95
|
+
## Step 1: Bottleneck Discovery
|
|
96
|
+
|
|
97
|
+
> Apply [`helpers/parallel-tooling.md`](helpers/parallel-tooling.md) when batching the scan below — independent reads belong in one turn, long shells run via `run_in_background` + `Monitor`.
|
|
98
|
+
|
|
99
|
+
Investigate the following areas:
|
|
100
|
+
|
|
101
|
+
- **Database/API Efficiency:** Look for N+1 query patterns, missing indexes, or
|
|
102
|
+
oversized JSON payloads.
|
|
103
|
+
- **Frontend Rendering:** Identify unnecessary re-renders (in React/Vue), large
|
|
104
|
+
DOM trees, or layout thrashing.
|
|
105
|
+
- **Bundle Size:** Check for heavy dependencies, missing code-splitting, or
|
|
106
|
+
unoptimized assets.
|
|
107
|
+
- **Resource Usage:** Identify potential memory leaks or high CPU usage logic
|
|
108
|
+
(e.g., synchronous loops over large datasets).
|
|
109
|
+
- **Network Path:** Check for excessive round-trips or lack of caching headers.
|
|
110
|
+
|
|
111
|
+
## Step 2: Evaluation Dimensions
|
|
112
|
+
|
|
113
|
+
1. **Latency:** How long does it take for a user action to complete?
|
|
114
|
+
2. **Throughput:** How many concurrent operations can the system handle before
|
|
115
|
+
degrading?
|
|
116
|
+
3. **Efficiency:** Is the code using the minimum amount of CPU/Memory/Network
|
|
117
|
+
required?
|
|
118
|
+
4. **Scalability:** Does the performance hold as the data size or user count
|
|
119
|
+
increases?
|
|
120
|
+
5. **Core Web Vitals:** (For frontend) LCP, FID, and CLS metrics.
|
|
121
|
+
|
|
122
|
+
## Step 3: Output Requirements
|
|
123
|
+
|
|
124
|
+
Generate and save a highly structured Markdown audit report to
|
|
125
|
+
`{{auditOutputDir}}/audit-performance-results.md`, using the exact template
|
|
126
|
+
below.
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
# Performance Audit Report
|
|
130
|
+
|
|
131
|
+
## Executive Summary
|
|
132
|
+
|
|
133
|
+
[Overview of performance summary vs target benchmarks.]
|
|
134
|
+
|
|
135
|
+
## Detailed Findings
|
|
136
|
+
|
|
137
|
+
[For every bottleneck identified, use the following strict structure:]
|
|
138
|
+
|
|
139
|
+
### [Short Title of the Bottleneck]
|
|
140
|
+
|
|
141
|
+
- **Dimension:** [e.g., Latency | Throughput | Efficiency]
|
|
142
|
+
- **Impact:** [High | Medium | Low]
|
|
143
|
+
- **Current State:** [Technical explanation of where and why the bottleneck
|
|
144
|
+
occurs]
|
|
145
|
+
- **Recommendation & Rationale:** [Specific optimization tactic and expected
|
|
146
|
+
performance gain]
|
|
147
|
+
- **Agent Prompt:**
|
|
148
|
+
`[A copy-pasteable, highly specific prompt to execute this optimization independently]`
|
|
149
|
+
|
|
150
|
+
## Low-Hanging Fruit
|
|
151
|
+
|
|
152
|
+
- [List 3 quick changes that provide immediate performance gains.]
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Constraint
|
|
156
|
+
|
|
157
|
+
This is a **read-only** audit. Note: This workflow differs from
|
|
158
|
+
`audit-lighthouse.md` (which runs Lighthouse and reports per-category scores
|
|
159
|
+
and findings) by focusing on deep architectural and logic bottlenecks across
|
|
160
|
+
the whole stack — backend, data access, and runtime hot paths — rather than
|
|
161
|
+
the page-load surface Lighthouse measures.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Audit logs, telemetry, and persistence paths for PII leakage and retention violations; surface secrets exposure and consent gaps.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Privacy and PII Data Audit
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
Data Privacy Officer & Security Engineer
|
|
10
|
+
|
|
11
|
+
## Context & Objective
|
|
12
|
+
|
|
13
|
+
You are conducting a privacy audit to identify potential mishandling of
|
|
14
|
+
Personally Identifiable Information (PII) and ensure compliance with data
|
|
15
|
+
protection standards (GDPR, CCPA). Your goal is to find accidental logging,
|
|
16
|
+
insecure storage, or unnecessary collection of sensitive data.
|
|
17
|
+
|
|
18
|
+
## Scope (Epic mode)
|
|
19
|
+
|
|
20
|
+
When this lens is invoked from `/epic-deliver` Phase 4 (epic-audit), the
|
|
21
|
+
following block is populated with the Epic's change-set file list.
|
|
22
|
+
Otherwise — for any manual `/audit-<dimension>` invocation — the block
|
|
23
|
+
renders the literal substitution token and you MUST treat it as **no
|
|
24
|
+
scope filter — run the lens codebase-wide** exactly as you would have
|
|
25
|
+
before this section existed.
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
{{changedFiles}}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- If the block above contains a newline-delimited list of file paths,
|
|
32
|
+
restrict your analysis to those files (and their direct dependencies
|
|
33
|
+
when the lens explicitly calls for cross-file reasoning).
|
|
34
|
+
- If the block above renders as the literal string `{{changedFiles}}`
|
|
35
|
+
(i.e. no substitution was supplied), ignore this section entirely and
|
|
36
|
+
proceed with the full codebase-wide scan defined in the remaining
|
|
37
|
+
steps.
|
|
38
|
+
|
|
39
|
+
## Step 1: Scanning for PII Patterns
|
|
40
|
+
|
|
41
|
+
> Apply [`helpers/parallel-tooling.md`](helpers/parallel-tooling.md) when batching the scan below — independent reads belong in one turn, long shells run via `run_in_background` + `Monitor`.
|
|
42
|
+
|
|
43
|
+
Scan the codebase for patterns related to sensitive data. Pay attention to:
|
|
44
|
+
|
|
45
|
+
- **Log Statements:** Search for `console.log`, `logger.info`, etc., that might
|
|
46
|
+
be outputting `user`, `email`, `password`, `token`, `address`, or `phone`.
|
|
47
|
+
- **Storage:** Check `localStorage`, `sessionStorage`, and database schemas for
|
|
48
|
+
unencrypted sensitive fields.
|
|
49
|
+
- **API Requests:** Review outgoing requests to ensure PII is not leaked in URLs
|
|
50
|
+
(query params) or unencrypted headers.
|
|
51
|
+
- **Analytics:** Ensure third-party analytics calls are anonymized.
|
|
52
|
+
|
|
53
|
+
## Step 2: Analysis Dimensions
|
|
54
|
+
|
|
55
|
+
Evaluate the codebase against these privacy pillars:
|
|
56
|
+
|
|
57
|
+
1. **Data Minimization:** Is the application collecting more PII than strictly
|
|
58
|
+
necessary for its functions?
|
|
59
|
+
2. **Leaky Logging:** Are sensitive objects being logged to stdout/stderr or
|
|
60
|
+
external logging services?
|
|
61
|
+
3. **Insecure Transmission:** Is PII sent over non-TLS connections or via GET
|
|
62
|
+
parameters?
|
|
63
|
+
4. **Hardcoded Secrets:** Are there any API keys, salts, or credentials stored
|
|
64
|
+
in plain text?
|
|
65
|
+
5. **Consent & Retention:** Check for logic related to data deletion (Right to
|
|
66
|
+
be Forgotten) and consent management.
|
|
67
|
+
|
|
68
|
+
## Step 3: Output Requirements
|
|
69
|
+
|
|
70
|
+
Generate and save a highly structured Markdown audit report to
|
|
71
|
+
`{{auditOutputDir}}/audit-privacy-results.md`, using the exact template below.
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
# Privacy & PII Audit Report
|
|
75
|
+
|
|
76
|
+
## Executive Summary
|
|
77
|
+
|
|
78
|
+
[Overview of the privacy posture and critical risks identified.]
|
|
79
|
+
|
|
80
|
+
## Privacy Scorecard
|
|
81
|
+
|
|
82
|
+
- **Data Encryption:** [Pass/Fail/Partial]
|
|
83
|
+
- **Logging Safety:** [Pass/Fail/Partial]
|
|
84
|
+
- **Minimization:** [Pass/Fail/Partial]
|
|
85
|
+
|
|
86
|
+
## Detailed Findings
|
|
87
|
+
|
|
88
|
+
[For every gap identified, use the following strict structure:]
|
|
89
|
+
|
|
90
|
+
### [Short Title of the Issue]
|
|
91
|
+
|
|
92
|
+
- **Type:** [Leaky Log | Insecure Storage | Data Over-collection]
|
|
93
|
+
- **Impact:** [Critical | High | Medium | Low]
|
|
94
|
+
- **Current State:** [The specific file/line/module and why it is problematic]
|
|
95
|
+
- **Recommendation & Rationale:** [How to remediate and why it's necessary for
|
|
96
|
+
compliance]
|
|
97
|
+
- **Agent Prompt:**
|
|
98
|
+
`[A copy-pasteable, highly specific prompt to execute this remediation independently]`
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Constraint
|
|
102
|
+
|
|
103
|
+
This is a **read-only** audit. Do not modify any code. Focus on identifying
|
|
104
|
+
risks and providing clear remediation steps.
|