@aperant/framework 0.6.2
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/CONTRIBUTING.md +128 -0
- package/LICENSE +661 -0
- package/README.md +254 -0
- package/agents/apt-docs-author.md +272 -0
- package/agents/apt-executor.md +126 -0
- package/agents/apt-planner.md +399 -0
- package/agents/apt-pr-review-codebase-fit.md +201 -0
- package/agents/apt-pr-review-fixer.md +164 -0
- package/agents/apt-pr-review-logic.md +201 -0
- package/agents/apt-pr-review-performance.md +201 -0
- package/agents/apt-pr-review-quality.md +198 -0
- package/agents/apt-pr-review-security.md +199 -0
- package/agents/apt-pr-review-self-reviewer.md +172 -0
- package/agents/apt-pr-review-test-integrity.md +194 -0
- package/agents/apt-pr-review-validator.md +155 -0
- package/agents/apt-researcher.md +55 -0
- package/agents/apt-reviewer.md +43 -0
- package/agents/apt-team-docs-narrator.md +140 -0
- package/agents/apt-verifier.md +117 -0
- package/bin/apt-proof-video.mjs +2078 -0
- package/bin/apt-tools.mjs +107 -0
- package/context/installed/verification.md +47 -0
- package/dist/__test-helpers/cmd-fixtures.d.mts +44 -0
- package/dist/__test-helpers/cmd-fixtures.d.mts.map +1 -0
- package/dist/__test-helpers/cmd-fixtures.mjs +113 -0
- package/dist/__test-helpers/cmd-fixtures.mjs.map +1 -0
- package/dist/__test-helpers/index.d.mts +3 -0
- package/dist/__test-helpers/index.d.mts.map +1 -0
- package/dist/__test-helpers/index.mjs +14 -0
- package/dist/__test-helpers/index.mjs.map +1 -0
- package/dist/__test-helpers/run-cmd.d.mts +15 -0
- package/dist/__test-helpers/run-cmd.d.mts.map +1 -0
- package/dist/__test-helpers/run-cmd.mjs +84 -0
- package/dist/__test-helpers/run-cmd.mjs.map +1 -0
- package/dist/__test-helpers/tmp-project.d.ts +31 -0
- package/dist/__test-helpers/tmp-project.d.ts.map +1 -0
- package/dist/__test-helpers/tmp-project.js +126 -0
- package/dist/__test-helpers/tmp-project.js.map +1 -0
- package/dist/__tests__/agent-runtime.test.d.ts +7 -0
- package/dist/__tests__/agent-runtime.test.d.ts.map +1 -0
- package/dist/__tests__/agent-runtime.test.js +28 -0
- package/dist/__tests__/agent-runtime.test.js.map +1 -0
- package/dist/__tests__/aperant-mapper.test.d.ts +2 -0
- package/dist/__tests__/aperant-mapper.test.d.ts.map +1 -0
- package/dist/__tests__/aperant-mapper.test.js +124 -0
- package/dist/__tests__/aperant-mapper.test.js.map +1 -0
- package/dist/__tests__/apt-author-skill-skill-structure.test.d.ts +12 -0
- package/dist/__tests__/apt-author-skill-skill-structure.test.d.ts.map +1 -0
- package/dist/__tests__/apt-author-skill-skill-structure.test.js +55 -0
- package/dist/__tests__/apt-author-skill-skill-structure.test.js.map +1 -0
- package/dist/__tests__/apt-close-task-skill-structure.test.d.ts +8 -0
- package/dist/__tests__/apt-close-task-skill-structure.test.d.ts.map +1 -0
- package/dist/__tests__/apt-close-task-skill-structure.test.js +47 -0
- package/dist/__tests__/apt-close-task-skill-structure.test.js.map +1 -0
- package/dist/__tests__/apt-design-skill-structure.test.d.ts +17 -0
- package/dist/__tests__/apt-design-skill-structure.test.d.ts.map +1 -0
- package/dist/__tests__/apt-design-skill-structure.test.js +120 -0
- package/dist/__tests__/apt-design-skill-structure.test.js.map +1 -0
- package/dist/__tests__/apt-mockup-skill-structure.test.d.ts +13 -0
- package/dist/__tests__/apt-mockup-skill-structure.test.d.ts.map +1 -0
- package/dist/__tests__/apt-mockup-skill-structure.test.js +86 -0
- package/dist/__tests__/apt-mockup-skill-structure.test.js.map +1 -0
- package/dist/__tests__/apt-review-pass6-structure.test.d.ts +6 -0
- package/dist/__tests__/apt-review-pass6-structure.test.d.ts.map +1 -0
- package/dist/__tests__/apt-review-pass6-structure.test.js +44 -0
- package/dist/__tests__/apt-review-pass6-structure.test.js.map +1 -0
- package/dist/__tests__/apt-setup-batch7-structure.test.d.ts +6 -0
- package/dist/__tests__/apt-setup-batch7-structure.test.d.ts.map +1 -0
- package/dist/__tests__/apt-setup-batch7-structure.test.js +38 -0
- package/dist/__tests__/apt-setup-batch7-structure.test.js.map +1 -0
- package/dist/__tests__/args.test.d.ts +2 -0
- package/dist/__tests__/args.test.d.ts.map +1 -0
- package/dist/__tests__/args.test.js +31 -0
- package/dist/__tests__/args.test.js.map +1 -0
- package/dist/__tests__/artifacts-classification.test.d.ts +18 -0
- package/dist/__tests__/artifacts-classification.test.d.ts.map +1 -0
- package/dist/__tests__/artifacts-classification.test.js +266 -0
- package/dist/__tests__/artifacts-classification.test.js.map +1 -0
- package/dist/__tests__/artifacts-self-stage.test.d.ts +15 -0
- package/dist/__tests__/artifacts-self-stage.test.d.ts.map +1 -0
- package/dist/__tests__/artifacts-self-stage.test.js +159 -0
- package/dist/__tests__/artifacts-self-stage.test.js.map +1 -0
- package/dist/__tests__/atomic-text.test.d.ts +14 -0
- package/dist/__tests__/atomic-text.test.d.ts.map +1 -0
- package/dist/__tests__/atomic-text.test.js +76 -0
- package/dist/__tests__/atomic-text.test.js.map +1 -0
- package/dist/__tests__/atomic-write.test.d.ts +14 -0
- package/dist/__tests__/atomic-write.test.d.ts.map +1 -0
- package/dist/__tests__/atomic-write.test.js +134 -0
- package/dist/__tests__/atomic-write.test.js.map +1 -0
- package/dist/__tests__/audit-pending-artifacts.test.d.ts +16 -0
- package/dist/__tests__/audit-pending-artifacts.test.d.ts.map +1 -0
- package/dist/__tests__/audit-pending-artifacts.test.js +153 -0
- package/dist/__tests__/audit-pending-artifacts.test.js.map +1 -0
- package/dist/__tests__/audit-privacy.test.d.ts +18 -0
- package/dist/__tests__/audit-privacy.test.d.ts.map +1 -0
- package/dist/__tests__/audit-privacy.test.js +152 -0
- package/dist/__tests__/audit-privacy.test.js.map +1 -0
- package/dist/__tests__/bin-path-resolve.test.d.ts +9 -0
- package/dist/__tests__/bin-path-resolve.test.d.ts.map +1 -0
- package/dist/__tests__/bin-path-resolve.test.js +76 -0
- package/dist/__tests__/bin-path-resolve.test.js.map +1 -0
- package/dist/__tests__/bootstrap-cli.test.d.ts +11 -0
- package/dist/__tests__/bootstrap-cli.test.d.ts.map +1 -0
- package/dist/__tests__/bootstrap-cli.test.js +181 -0
- package/dist/__tests__/bootstrap-cli.test.js.map +1 -0
- package/dist/__tests__/bootstrap-detect-mode.test.d.ts +9 -0
- package/dist/__tests__/bootstrap-detect-mode.test.d.ts.map +1 -0
- package/dist/__tests__/bootstrap-detect-mode.test.js +113 -0
- package/dist/__tests__/bootstrap-detect-mode.test.js.map +1 -0
- package/dist/__tests__/bootstrap-product-context-sidecar.test.d.ts +11 -0
- package/dist/__tests__/bootstrap-product-context-sidecar.test.d.ts.map +1 -0
- package/dist/__tests__/bootstrap-product-context-sidecar.test.js +145 -0
- package/dist/__tests__/bootstrap-product-context-sidecar.test.js.map +1 -0
- package/dist/__tests__/bootstrap-recon.test.d.ts +11 -0
- package/dist/__tests__/bootstrap-recon.test.d.ts.map +1 -0
- package/dist/__tests__/bootstrap-recon.test.js +136 -0
- package/dist/__tests__/bootstrap-recon.test.js.map +1 -0
- package/dist/__tests__/build-progress-sync.test.d.ts +11 -0
- package/dist/__tests__/build-progress-sync.test.d.ts.map +1 -0
- package/dist/__tests__/build-progress-sync.test.js +275 -0
- package/dist/__tests__/build-progress-sync.test.js.map +1 -0
- package/dist/__tests__/c28-cutover.test.d.ts +9 -0
- package/dist/__tests__/c28-cutover.test.d.ts.map +1 -0
- package/dist/__tests__/c28-cutover.test.js +98 -0
- package/dist/__tests__/c28-cutover.test.js.map +1 -0
- package/dist/__tests__/check-command.test.d.ts +8 -0
- package/dist/__tests__/check-command.test.d.ts.map +1 -0
- package/dist/__tests__/check-command.test.js +116 -0
- package/dist/__tests__/check-command.test.js.map +1 -0
- package/dist/__tests__/check-version-drift.test.d.ts +13 -0
- package/dist/__tests__/check-version-drift.test.d.ts.map +1 -0
- package/dist/__tests__/check-version-drift.test.js +82 -0
- package/dist/__tests__/check-version-drift.test.js.map +1 -0
- package/dist/__tests__/check-version-header.test.d.ts +13 -0
- package/dist/__tests__/check-version-header.test.d.ts.map +1 -0
- package/dist/__tests__/check-version-header.test.js +112 -0
- package/dist/__tests__/check-version-header.test.js.map +1 -0
- package/dist/__tests__/cli-contract-argv.test.d.ts +10 -0
- package/dist/__tests__/cli-contract-argv.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-argv.test.js +25 -0
- package/dist/__tests__/cli-contract-argv.test.js.map +1 -0
- package/dist/__tests__/cli-contract-author-skill.test.d.ts +15 -0
- package/dist/__tests__/cli-contract-author-skill.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-author-skill.test.js +86 -0
- package/dist/__tests__/cli-contract-author-skill.test.js.map +1 -0
- package/dist/__tests__/cli-contract-bootstrap.test.d.ts +12 -0
- package/dist/__tests__/cli-contract-bootstrap.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-bootstrap.test.js +68 -0
- package/dist/__tests__/cli-contract-bootstrap.test.js.map +1 -0
- package/dist/__tests__/cli-contract-coverage-check.test.d.ts +10 -0
- package/dist/__tests__/cli-contract-coverage-check.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-coverage-check.test.js +153 -0
- package/dist/__tests__/cli-contract-coverage-check.test.js.map +1 -0
- package/dist/__tests__/cli-contract-create-docs.test.d.ts +11 -0
- package/dist/__tests__/cli-contract-create-docs.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-create-docs.test.js +75 -0
- package/dist/__tests__/cli-contract-create-docs.test.js.map +1 -0
- package/dist/__tests__/cli-contract-design-lint.test.d.ts +11 -0
- package/dist/__tests__/cli-contract-design-lint.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-design-lint.test.js +48 -0
- package/dist/__tests__/cli-contract-design-lint.test.js.map +1 -0
- package/dist/__tests__/cli-contract-design-scan.test.d.ts +11 -0
- package/dist/__tests__/cli-contract-design-scan.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-design-scan.test.js +41 -0
- package/dist/__tests__/cli-contract-design-scan.test.js.map +1 -0
- package/dist/__tests__/cli-contract-design-synthesize.test.d.ts +23 -0
- package/dist/__tests__/cli-contract-design-synthesize.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-design-synthesize.test.js +234 -0
- package/dist/__tests__/cli-contract-design-synthesize.test.js.map +1 -0
- package/dist/__tests__/cli-contract-design-template.test.d.ts +23 -0
- package/dist/__tests__/cli-contract-design-template.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-design-template.test.js +204 -0
- package/dist/__tests__/cli-contract-design-template.test.js.map +1 -0
- package/dist/__tests__/cli-contract-design-validate.test.d.ts +12 -0
- package/dist/__tests__/cli-contract-design-validate.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-design-validate.test.js +98 -0
- package/dist/__tests__/cli-contract-design-validate.test.js.map +1 -0
- package/dist/__tests__/cli-contract-docs-audit.test.d.ts +11 -0
- package/dist/__tests__/cli-contract-docs-audit.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-docs-audit.test.js +30 -0
- package/dist/__tests__/cli-contract-docs-audit.test.js.map +1 -0
- package/dist/__tests__/cli-contract-docs-coherence.test.d.ts +19 -0
- package/dist/__tests__/cli-contract-docs-coherence.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-docs-coherence.test.js +174 -0
- package/dist/__tests__/cli-contract-docs-coherence.test.js.map +1 -0
- package/dist/__tests__/cli-contract-drift.test.d.ts +16 -0
- package/dist/__tests__/cli-contract-drift.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-drift.test.js +41 -0
- package/dist/__tests__/cli-contract-drift.test.js.map +1 -0
- package/dist/__tests__/cli-contract-effects.test.d.ts +6 -0
- package/dist/__tests__/cli-contract-effects.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-effects.test.js +92 -0
- package/dist/__tests__/cli-contract-effects.test.js.map +1 -0
- package/dist/__tests__/cli-contract-exit-codes.test.d.ts +21 -0
- package/dist/__tests__/cli-contract-exit-codes.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-exit-codes.test.js +73 -0
- package/dist/__tests__/cli-contract-exit-codes.test.js.map +1 -0
- package/dist/__tests__/cli-contract-features-audit.test.d.ts +6 -0
- package/dist/__tests__/cli-contract-features-audit.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-features-audit.test.js +77 -0
- package/dist/__tests__/cli-contract-features-audit.test.js.map +1 -0
- package/dist/__tests__/cli-contract-gate.test.d.ts +18 -0
- package/dist/__tests__/cli-contract-gate.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-gate.test.js +36 -0
- package/dist/__tests__/cli-contract-gate.test.js.map +1 -0
- package/dist/__tests__/cli-contract-help.test.d.ts +10 -0
- package/dist/__tests__/cli-contract-help.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-help.test.js +30 -0
- package/dist/__tests__/cli-contract-help.test.js.map +1 -0
- package/dist/__tests__/cli-contract-host.test.d.ts +19 -0
- package/dist/__tests__/cli-contract-host.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-host.test.js +36 -0
- package/dist/__tests__/cli-contract-host.test.js.map +1 -0
- package/dist/__tests__/cli-contract-personas.test.d.ts +14 -0
- package/dist/__tests__/cli-contract-personas.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-personas.test.js +87 -0
- package/dist/__tests__/cli-contract-personas.test.js.map +1 -0
- package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.d.ts +12 -0
- package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.js +424 -0
- package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.js.map +1 -0
- package/dist/__tests__/cli-contract-pr-review.test.d.ts +18 -0
- package/dist/__tests__/cli-contract-pr-review.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-pr-review.test.js +69 -0
- package/dist/__tests__/cli-contract-pr-review.test.js.map +1 -0
- package/dist/__tests__/cli-contract-product-context.test.d.ts +11 -0
- package/dist/__tests__/cli-contract-product-context.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-product-context.test.js +64 -0
- package/dist/__tests__/cli-contract-product-context.test.js.map +1 -0
- package/dist/__tests__/cli-contract-profile.test.d.ts +12 -0
- package/dist/__tests__/cli-contract-profile.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-profile.test.js +51 -0
- package/dist/__tests__/cli-contract-profile.test.js.map +1 -0
- package/dist/__tests__/cli-contract-roadmap.test.d.ts +6 -0
- package/dist/__tests__/cli-contract-roadmap.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-roadmap.test.js +89 -0
- package/dist/__tests__/cli-contract-roadmap.test.js.map +1 -0
- package/dist/__tests__/cli-contract-route.test.d.ts +11 -0
- package/dist/__tests__/cli-contract-route.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-route.test.js +41 -0
- package/dist/__tests__/cli-contract-route.test.js.map +1 -0
- package/dist/__tests__/cli-contract-seed.test.d.ts +10 -0
- package/dist/__tests__/cli-contract-seed.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-seed.test.js +50 -0
- package/dist/__tests__/cli-contract-seed.test.js.map +1 -0
- package/dist/__tests__/cli-contract-standards.test.d.ts +12 -0
- package/dist/__tests__/cli-contract-standards.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-standards.test.js +95 -0
- package/dist/__tests__/cli-contract-standards.test.js.map +1 -0
- package/dist/__tests__/cli-contract-statusline.test.d.ts +13 -0
- package/dist/__tests__/cli-contract-statusline.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-statusline.test.js +61 -0
- package/dist/__tests__/cli-contract-statusline.test.js.map +1 -0
- package/dist/__tests__/cli-contract-task.test.d.ts +19 -0
- package/dist/__tests__/cli-contract-task.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-task.test.js +38 -0
- package/dist/__tests__/cli-contract-task.test.js.map +1 -0
- package/dist/__tests__/cli-contract-taste-infer.test.d.ts +13 -0
- package/dist/__tests__/cli-contract-taste-infer.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-taste-infer.test.js +85 -0
- package/dist/__tests__/cli-contract-taste-infer.test.js.map +1 -0
- package/dist/__tests__/cli-contract-team.test.d.ts +6 -0
- package/dist/__tests__/cli-contract-team.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-team.test.js +61 -0
- package/dist/__tests__/cli-contract-team.test.js.map +1 -0
- package/dist/__tests__/cli-contract-terminal.test.d.ts +15 -0
- package/dist/__tests__/cli-contract-terminal.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-terminal.test.js +127 -0
- package/dist/__tests__/cli-contract-terminal.test.js.map +1 -0
- package/dist/__tests__/cli-contract-tokens.test.d.ts +6 -0
- package/dist/__tests__/cli-contract-tokens.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-tokens.test.js +92 -0
- package/dist/__tests__/cli-contract-tokens.test.js.map +1 -0
- package/dist/__tests__/cli-contract-uninstall.test.d.ts +8 -0
- package/dist/__tests__/cli-contract-uninstall.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-uninstall.test.js +58 -0
- package/dist/__tests__/cli-contract-uninstall.test.js.map +1 -0
- package/dist/__tests__/cli-contract-validate-evidence.test.d.ts +11 -0
- package/dist/__tests__/cli-contract-validate-evidence.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-validate-evidence.test.js +75 -0
- package/dist/__tests__/cli-contract-validate-evidence.test.js.map +1 -0
- package/dist/__tests__/cli-contract-variant-gallery.test.d.ts +12 -0
- package/dist/__tests__/cli-contract-variant-gallery.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-variant-gallery.test.js +60 -0
- package/dist/__tests__/cli-contract-variant-gallery.test.js.map +1 -0
- package/dist/__tests__/cli-contract-variant-pick.test.d.ts +12 -0
- package/dist/__tests__/cli-contract-variant-pick.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-variant-pick.test.js +57 -0
- package/dist/__tests__/cli-contract-variant-pick.test.js.map +1 -0
- package/dist/__tests__/cli-contract-variant-pool.test.d.ts +10 -0
- package/dist/__tests__/cli-contract-variant-pool.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-variant-pool.test.js +33 -0
- package/dist/__tests__/cli-contract-variant-pool.test.js.map +1 -0
- package/dist/__tests__/cli-contract-version.test.d.ts +9 -0
- package/dist/__tests__/cli-contract-version.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-version.test.js +29 -0
- package/dist/__tests__/cli-contract-version.test.js.map +1 -0
- package/dist/__tests__/cli-contract-wfrun.test.d.ts +15 -0
- package/dist/__tests__/cli-contract-wfrun.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-wfrun.test.js +54 -0
- package/dist/__tests__/cli-contract-wfrun.test.js.map +1 -0
- package/dist/__tests__/cli-contract-worktree-install.test.d.ts +7 -0
- package/dist/__tests__/cli-contract-worktree-install.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-worktree-install.test.js +40 -0
- package/dist/__tests__/cli-contract-worktree-install.test.js.map +1 -0
- package/dist/__tests__/cli-contract-worktree.test.d.ts +6 -0
- package/dist/__tests__/cli-contract-worktree.test.d.ts.map +1 -0
- package/dist/__tests__/cli-contract-worktree.test.js +59 -0
- package/dist/__tests__/cli-contract-worktree.test.js.map +1 -0
- package/dist/__tests__/cli-fs-lock.test.d.ts +5 -0
- package/dist/__tests__/cli-fs-lock.test.d.ts.map +1 -0
- package/dist/__tests__/cli-fs-lock.test.js +51 -0
- package/dist/__tests__/cli-fs-lock.test.js.map +1 -0
- package/dist/__tests__/cli-graph-depends-on.test.d.ts +6 -0
- package/dist/__tests__/cli-graph-depends-on.test.d.ts.map +1 -0
- package/dist/__tests__/cli-graph-depends-on.test.js +119 -0
- package/dist/__tests__/cli-graph-depends-on.test.js.map +1 -0
- package/dist/__tests__/cli-graph-task-ref.test.d.ts +5 -0
- package/dist/__tests__/cli-graph-task-ref.test.d.ts.map +1 -0
- package/dist/__tests__/cli-graph-task-ref.test.js +65 -0
- package/dist/__tests__/cli-graph-task-ref.test.js.map +1 -0
- package/dist/__tests__/cli-risk-globs.test.d.ts +5 -0
- package/dist/__tests__/cli-risk-globs.test.d.ts.map +1 -0
- package/dist/__tests__/cli-risk-globs.test.js +96 -0
- package/dist/__tests__/cli-risk-globs.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/audit.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/audit.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/audit.test.js +47 -0
- package/dist/__tests__/cmd-pure/audit.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/author-skill.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/author-skill.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/author-skill.test.js +38 -0
- package/dist/__tests__/cmd-pure/author-skill.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/bootstrap.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/bootstrap.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/bootstrap.test.js +66 -0
- package/dist/__tests__/cmd-pure/bootstrap.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/check-version.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/check-version.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/check-version.test.js +29 -0
- package/dist/__tests__/cmd-pure/check-version.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/check.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/check.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/check.test.js +25 -0
- package/dist/__tests__/cmd-pure/check.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/config.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/config.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/config.test.js +37 -0
- package/dist/__tests__/cmd-pure/config.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/consistency.test.d.ts +9 -0
- package/dist/__tests__/cmd-pure/consistency.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/consistency.test.js +100 -0
- package/dist/__tests__/cmd-pure/consistency.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/constitution.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/constitution.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/constitution.test.js +94 -0
- package/dist/__tests__/cmd-pure/constitution.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/coverage-check.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/coverage-check.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/coverage-check.test.js +49 -0
- package/dist/__tests__/cmd-pure/coverage-check.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/create-docs.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/create-docs.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/create-docs.test.js +92 -0
- package/dist/__tests__/cmd-pure/create-docs.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/design-lint.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/design-lint.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/design-lint.test.js +45 -0
- package/dist/__tests__/cmd-pure/design-lint.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/design-scan.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/design-scan.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/design-scan.test.js +32 -0
- package/dist/__tests__/cmd-pure/design-scan.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/design-template.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/design-template.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/design-template.test.js +56 -0
- package/dist/__tests__/cmd-pure/design-template.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/design-validate.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/design-validate.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/design-validate.test.js +44 -0
- package/dist/__tests__/cmd-pure/design-validate.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/detect-project.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/detect-project.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/detect-project.test.js +38 -0
- package/dist/__tests__/cmd-pure/detect-project.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/docs-audit.test.d.ts +10 -0
- package/dist/__tests__/cmd-pure/docs-audit.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/docs-audit.test.js +63 -0
- package/dist/__tests__/cmd-pure/docs-audit.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/effects.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/effects.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/effects.test.js +44 -0
- package/dist/__tests__/cmd-pure/effects.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/event.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/event.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/event.test.js +44 -0
- package/dist/__tests__/cmd-pure/event.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/features-audit.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/features-audit.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/features-audit.test.js +37 -0
- package/dist/__tests__/cmd-pure/features-audit.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/gate.test.d.ts +9 -0
- package/dist/__tests__/cmd-pure/gate.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/gate.test.js +106 -0
- package/dist/__tests__/cmd-pure/gate.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/health-check.test.d.ts +10 -0
- package/dist/__tests__/cmd-pure/health-check.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/health-check.test.js +44 -0
- package/dist/__tests__/cmd-pure/health-check.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/host-detect.test.d.ts +10 -0
- package/dist/__tests__/cmd-pure/host-detect.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/host-detect.test.js +106 -0
- package/dist/__tests__/cmd-pure/host-detect.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/init.test.d.ts +9 -0
- package/dist/__tests__/cmd-pure/init.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/init.test.js +34 -0
- package/dist/__tests__/cmd-pure/init.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/lock.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/lock.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/lock.test.js +46 -0
- package/dist/__tests__/cmd-pure/lock.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/personas.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/personas.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/personas.test.js +60 -0
- package/dist/__tests__/cmd-pure/personas.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/plan-approval.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/plan-approval.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/plan-approval.test.js +82 -0
- package/dist/__tests__/cmd-pure/plan-approval.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.js +49 -0
- package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/pr-review.test.d.ts +11 -0
- package/dist/__tests__/cmd-pure/pr-review.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/pr-review.test.js +156 -0
- package/dist/__tests__/cmd-pure/pr-review.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/product-context.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/product-context.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/product-context.test.js +33 -0
- package/dist/__tests__/cmd-pure/product-context.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/profile.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/profile.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/profile.test.js +83 -0
- package/dist/__tests__/cmd-pure/profile.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/risk-check.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/risk-check.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/risk-check.test.js +38 -0
- package/dist/__tests__/cmd-pure/risk-check.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/roadmap.test.d.ts +9 -0
- package/dist/__tests__/cmd-pure/roadmap.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/roadmap.test.js +82 -0
- package/dist/__tests__/cmd-pure/roadmap.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/route.test.d.ts +10 -0
- package/dist/__tests__/cmd-pure/route.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/route.test.js +106 -0
- package/dist/__tests__/cmd-pure/route.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/seed.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/seed.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/seed.test.js +59 -0
- package/dist/__tests__/cmd-pure/seed.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/standards.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/standards.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/standards.test.js +45 -0
- package/dist/__tests__/cmd-pure/standards.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/state-artifacts.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/state-artifacts.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/state-artifacts.test.js +47 -0
- package/dist/__tests__/cmd-pure/state-artifacts.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/state-update.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/state-update.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/state-update.test.js +55 -0
- package/dist/__tests__/cmd-pure/state-update.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/state.test.d.ts +7 -0
- package/dist/__tests__/cmd-pure/state.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/state.test.js +48 -0
- package/dist/__tests__/cmd-pure/state.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/statusline.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/statusline.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/statusline.test.js +47 -0
- package/dist/__tests__/cmd-pure/statusline.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/task.test.d.ts +10 -0
- package/dist/__tests__/cmd-pure/task.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/task.test.js +246 -0
- package/dist/__tests__/cmd-pure/task.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/taste-infer.test.d.ts +9 -0
- package/dist/__tests__/cmd-pure/taste-infer.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/taste-infer.test.js +50 -0
- package/dist/__tests__/cmd-pure/taste-infer.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/team.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/team.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/team.test.js +43 -0
- package/dist/__tests__/cmd-pure/team.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/terminal.test.d.ts +9 -0
- package/dist/__tests__/cmd-pure/terminal.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/terminal.test.js +44 -0
- package/dist/__tests__/cmd-pure/terminal.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/tokens.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/tokens.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/tokens.test.js +64 -0
- package/dist/__tests__/cmd-pure/tokens.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/uninstall.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/uninstall.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/uninstall.test.js +38 -0
- package/dist/__tests__/cmd-pure/uninstall.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/validate-evidence.test.d.ts +12 -0
- package/dist/__tests__/cmd-pure/validate-evidence.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/validate-evidence.test.js +120 -0
- package/dist/__tests__/cmd-pure/validate-evidence.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/variant-gallery.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/variant-gallery.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/variant-gallery.test.js +20 -0
- package/dist/__tests__/cmd-pure/variant-gallery.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/variant-pick.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/variant-pick.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/variant-pick.test.js +24 -0
- package/dist/__tests__/cmd-pure/variant-pick.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/variant-pool.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/variant-pool.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/variant-pool.test.js +19 -0
- package/dist/__tests__/cmd-pure/variant-pool.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/wave.test.d.ts +5 -0
- package/dist/__tests__/cmd-pure/wave.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/wave.test.js +46 -0
- package/dist/__tests__/cmd-pure/wave.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/wfrun.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/wfrun.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/wfrun.test.js +33 -0
- package/dist/__tests__/cmd-pure/wfrun.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/workflow.test.d.ts +6 -0
- package/dist/__tests__/cmd-pure/workflow.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/workflow.test.js +105 -0
- package/dist/__tests__/cmd-pure/workflow.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/worktree-install.test.d.ts +10 -0
- package/dist/__tests__/cmd-pure/worktree-install.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/worktree-install.test.js +58 -0
- package/dist/__tests__/cmd-pure/worktree-install.test.js.map +1 -0
- package/dist/__tests__/cmd-pure/worktree.test.d.ts +10 -0
- package/dist/__tests__/cmd-pure/worktree.test.d.ts.map +1 -0
- package/dist/__tests__/cmd-pure/worktree.test.js +77 -0
- package/dist/__tests__/cmd-pure/worktree.test.js.map +1 -0
- package/dist/__tests__/command-coverage.test.d.ts +15 -0
- package/dist/__tests__/command-coverage.test.d.ts.map +1 -0
- package/dist/__tests__/command-coverage.test.js +138 -0
- package/dist/__tests__/command-coverage.test.js.map +1 -0
- package/dist/__tests__/config-guard.test.d.ts +12 -0
- package/dist/__tests__/config-guard.test.d.ts.map +1 -0
- package/dist/__tests__/config-guard.test.js +55 -0
- package/dist/__tests__/config-guard.test.js.map +1 -0
- package/dist/__tests__/config-tdd-shape.test.d.ts +10 -0
- package/dist/__tests__/config-tdd-shape.test.d.ts.map +1 -0
- package/dist/__tests__/config-tdd-shape.test.js +69 -0
- package/dist/__tests__/config-tdd-shape.test.js.map +1 -0
- package/dist/__tests__/consistency-check.test.d.ts +5 -0
- package/dist/__tests__/consistency-check.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-check.test.js +72 -0
- package/dist/__tests__/consistency-check.test.js.map +1 -0
- package/dist/__tests__/consistency-cli.test.d.ts +5 -0
- package/dist/__tests__/consistency-cli.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-cli.test.js +116 -0
- package/dist/__tests__/consistency-cli.test.js.map +1 -0
- package/dist/__tests__/consistency-gate.test.d.ts +5 -0
- package/dist/__tests__/consistency-gate.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-gate.test.js +57 -0
- package/dist/__tests__/consistency-gate.test.js.map +1 -0
- package/dist/__tests__/consistency-parse-plan.test.d.ts +5 -0
- package/dist/__tests__/consistency-parse-plan.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-parse-plan.test.js +66 -0
- package/dist/__tests__/consistency-parse-plan.test.js.map +1 -0
- package/dist/__tests__/consistency-parse-qa.test.d.ts +5 -0
- package/dist/__tests__/consistency-parse-qa.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-parse-qa.test.js +50 -0
- package/dist/__tests__/consistency-parse-qa.test.js.map +1 -0
- package/dist/__tests__/consistency-parse-review.test.d.ts +5 -0
- package/dist/__tests__/consistency-parse-review.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-parse-review.test.js +61 -0
- package/dist/__tests__/consistency-parse-review.test.js.map +1 -0
- package/dist/__tests__/consistency-parse-spec.test.d.ts +5 -0
- package/dist/__tests__/consistency-parse-spec.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-parse-spec.test.js +83 -0
- package/dist/__tests__/consistency-parse-spec.test.js.map +1 -0
- package/dist/__tests__/consistency-persona-alignment-rule.test.d.ts +13 -0
- package/dist/__tests__/consistency-persona-alignment-rule.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-persona-alignment-rule.test.js +158 -0
- package/dist/__tests__/consistency-persona-alignment-rule.test.js.map +1 -0
- package/dist/__tests__/consistency-r6.test.d.ts +15 -0
- package/dist/__tests__/consistency-r6.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-r6.test.js +126 -0
- package/dist/__tests__/consistency-r6.test.js.map +1 -0
- package/dist/__tests__/consistency-rules.test.d.ts +6 -0
- package/dist/__tests__/consistency-rules.test.d.ts.map +1 -0
- package/dist/__tests__/consistency-rules.test.js +420 -0
- package/dist/__tests__/consistency-rules.test.js.map +1 -0
- package/dist/__tests__/constitution-cli.test.d.ts +5 -0
- package/dist/__tests__/constitution-cli.test.d.ts.map +1 -0
- package/dist/__tests__/constitution-cli.test.js +102 -0
- package/dist/__tests__/constitution-cli.test.js.map +1 -0
- package/dist/__tests__/constitution-coverage-force.test.d.ts +11 -0
- package/dist/__tests__/constitution-coverage-force.test.d.ts.map +1 -0
- package/dist/__tests__/constitution-coverage-force.test.js +101 -0
- package/dist/__tests__/constitution-coverage-force.test.js.map +1 -0
- package/dist/__tests__/constitution-coverage-gate.test.d.ts +11 -0
- package/dist/__tests__/constitution-coverage-gate.test.d.ts.map +1 -0
- package/dist/__tests__/constitution-coverage-gate.test.js +94 -0
- package/dist/__tests__/constitution-coverage-gate.test.js.map +1 -0
- package/dist/__tests__/constitution-match.test.d.ts +5 -0
- package/dist/__tests__/constitution-match.test.d.ts.map +1 -0
- package/dist/__tests__/constitution-match.test.js +95 -0
- package/dist/__tests__/constitution-match.test.js.map +1 -0
- package/dist/__tests__/constitution-parse.test.d.ts +5 -0
- package/dist/__tests__/constitution-parse.test.d.ts.map +1 -0
- package/dist/__tests__/constitution-parse.test.js +134 -0
- package/dist/__tests__/constitution-parse.test.js.map +1 -0
- package/dist/__tests__/constitution-profile.test.d.ts +9 -0
- package/dist/__tests__/constitution-profile.test.d.ts.map +1 -0
- package/dist/__tests__/constitution-profile.test.js +105 -0
- package/dist/__tests__/constitution-profile.test.js.map +1 -0
- package/dist/__tests__/constitution.test.d.ts +2 -0
- package/dist/__tests__/constitution.test.d.ts.map +1 -0
- package/dist/__tests__/constitution.test.js +86 -0
- package/dist/__tests__/constitution.test.js.map +1 -0
- package/dist/__tests__/coordination-store.test.d.ts +12 -0
- package/dist/__tests__/coordination-store.test.d.ts.map +1 -0
- package/dist/__tests__/coordination-store.test.js +119 -0
- package/dist/__tests__/coordination-store.test.js.map +1 -0
- package/dist/__tests__/cost-tracker.test.d.ts +2 -0
- package/dist/__tests__/cost-tracker.test.d.ts.map +1 -0
- package/dist/__tests__/cost-tracker.test.js +142 -0
- package/dist/__tests__/cost-tracker.test.js.map +1 -0
- package/dist/__tests__/create-docs-cli.test.d.ts +15 -0
- package/dist/__tests__/create-docs-cli.test.d.ts.map +1 -0
- package/dist/__tests__/create-docs-cli.test.js +259 -0
- package/dist/__tests__/create-docs-cli.test.js.map +1 -0
- package/dist/__tests__/create-docs-frontmatter.test.d.ts +18 -0
- package/dist/__tests__/create-docs-frontmatter.test.d.ts.map +1 -0
- package/dist/__tests__/create-docs-frontmatter.test.js +106 -0
- package/dist/__tests__/create-docs-frontmatter.test.js.map +1 -0
- package/dist/__tests__/cycle.test.d.ts +2 -0
- package/dist/__tests__/cycle.test.d.ts.map +1 -0
- package/dist/__tests__/cycle.test.js +64 -0
- package/dist/__tests__/cycle.test.js.map +1 -0
- package/dist/__tests__/design-extract.test.d.ts +19 -0
- package/dist/__tests__/design-extract.test.d.ts.map +1 -0
- package/dist/__tests__/design-extract.test.js +119 -0
- package/dist/__tests__/design-extract.test.js.map +1 -0
- package/dist/__tests__/design-lint.test.d.ts +16 -0
- package/dist/__tests__/design-lint.test.d.ts.map +1 -0
- package/dist/__tests__/design-lint.test.js +224 -0
- package/dist/__tests__/design-lint.test.js.map +1 -0
- package/dist/__tests__/design-scan.test.d.ts +18 -0
- package/dist/__tests__/design-scan.test.d.ts.map +1 -0
- package/dist/__tests__/design-scan.test.js +165 -0
- package/dist/__tests__/design-scan.test.js.map +1 -0
- package/dist/__tests__/design-synthesize-prompt.test.d.ts +10 -0
- package/dist/__tests__/design-synthesize-prompt.test.d.ts.map +1 -0
- package/dist/__tests__/design-synthesize-prompt.test.js +104 -0
- package/dist/__tests__/design-synthesize-prompt.test.js.map +1 -0
- package/dist/__tests__/design-template.test.d.ts +16 -0
- package/dist/__tests__/design-template.test.d.ts.map +1 -0
- package/dist/__tests__/design-template.test.js +428 -0
- package/dist/__tests__/design-template.test.js.map +1 -0
- package/dist/__tests__/design-validate.test.d.ts +14 -0
- package/dist/__tests__/design-validate.test.d.ts.map +1 -0
- package/dist/__tests__/design-validate.test.js +231 -0
- package/dist/__tests__/design-validate.test.js.map +1 -0
- package/dist/__tests__/detached-spawn-wrapper.test.d.ts +17 -0
- package/dist/__tests__/detached-spawn-wrapper.test.d.ts.map +1 -0
- package/dist/__tests__/detached-spawn-wrapper.test.js +160 -0
- package/dist/__tests__/detached-spawn-wrapper.test.js.map +1 -0
- package/dist/__tests__/dispatch-table.test.d.ts +10 -0
- package/dist/__tests__/dispatch-table.test.d.ts.map +1 -0
- package/dist/__tests__/dispatch-table.test.js +57 -0
- package/dist/__tests__/dispatch-table.test.js.map +1 -0
- package/dist/__tests__/dispatch-wrap.test.d.ts +21 -0
- package/dist/__tests__/dispatch-wrap.test.d.ts.map +1 -0
- package/dist/__tests__/dispatch-wrap.test.js +133 -0
- package/dist/__tests__/dispatch-wrap.test.js.map +1 -0
- package/dist/__tests__/docs-audit-drift-detection.test.d.ts +10 -0
- package/dist/__tests__/docs-audit-drift-detection.test.d.ts.map +1 -0
- package/dist/__tests__/docs-audit-drift-detection.test.js +185 -0
- package/dist/__tests__/docs-audit-drift-detection.test.js.map +1 -0
- package/dist/__tests__/docs-audit-policy.test.d.ts +9 -0
- package/dist/__tests__/docs-audit-policy.test.d.ts.map +1 -0
- package/dist/__tests__/docs-audit-policy.test.js +121 -0
- package/dist/__tests__/docs-audit-policy.test.js.map +1 -0
- package/dist/__tests__/docs-features-reader.test.d.ts +10 -0
- package/dist/__tests__/docs-features-reader.test.d.ts.map +1 -0
- package/dist/__tests__/docs-features-reader.test.js +193 -0
- package/dist/__tests__/docs-features-reader.test.js.map +1 -0
- package/dist/__tests__/docs-nav-renderer.test.d.ts +11 -0
- package/dist/__tests__/docs-nav-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/docs-nav-renderer.test.js +119 -0
- package/dist/__tests__/docs-nav-renderer.test.js.map +1 -0
- package/dist/__tests__/docs-structure-planner.test.d.ts +14 -0
- package/dist/__tests__/docs-structure-planner.test.d.ts.map +1 -0
- package/dist/__tests__/docs-structure-planner.test.js +234 -0
- package/dist/__tests__/docs-structure-planner.test.js.map +1 -0
- package/dist/__tests__/duration.test.d.ts +5 -0
- package/dist/__tests__/duration.test.d.ts.map +1 -0
- package/dist/__tests__/duration.test.js +64 -0
- package/dist/__tests__/duration.test.js.map +1 -0
- package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.d.ts +19 -0
- package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.js +74 -0
- package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.js.map +1 -0
- package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.d.ts +18 -0
- package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.js +80 -0
- package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.js.map +1 -0
- package/dist/__tests__/e2e-pipeline/task-lifecycle.test.d.ts +19 -0
- package/dist/__tests__/e2e-pipeline/task-lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/e2e-pipeline/task-lifecycle.test.js +86 -0
- package/dist/__tests__/e2e-pipeline/task-lifecycle.test.js.map +1 -0
- package/dist/__tests__/event-log.test.d.ts +15 -0
- package/dist/__tests__/event-log.test.d.ts.map +1 -0
- package/dist/__tests__/event-log.test.js +139 -0
- package/dist/__tests__/event-log.test.js.map +1 -0
- package/dist/__tests__/features-registry-audit.test.d.ts +6 -0
- package/dist/__tests__/features-registry-audit.test.d.ts.map +1 -0
- package/dist/__tests__/features-registry-audit.test.js +186 -0
- package/dist/__tests__/features-registry-audit.test.js.map +1 -0
- package/dist/__tests__/file-backend.test.d.ts +2 -0
- package/dist/__tests__/file-backend.test.d.ts.map +1 -0
- package/dist/__tests__/file-backend.test.js +222 -0
- package/dist/__tests__/file-backend.test.js.map +1 -0
- package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.d.ts +2 -0
- package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.d.ts.map +1 -0
- package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.js +6 -0
- package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.js.map +1 -0
- package/dist/__tests__/fixtures/validate-evidence/other-file.d.ts +4 -0
- package/dist/__tests__/fixtures/validate-evidence/other-file.d.ts.map +1 -0
- package/dist/__tests__/fixtures/validate-evidence/other-file.js +8 -0
- package/dist/__tests__/fixtures/validate-evidence/other-file.js.map +1 -0
- package/dist/__tests__/fixtures/validate-evidence/target-file.d.ts +4 -0
- package/dist/__tests__/fixtures/validate-evidence/target-file.d.ts.map +1 -0
- package/dist/__tests__/fixtures/validate-evidence/target-file.js +23 -0
- package/dist/__tests__/fixtures/validate-evidence/target-file.js.map +1 -0
- package/dist/__tests__/gate-cache.test.d.ts +14 -0
- package/dist/__tests__/gate-cache.test.d.ts.map +1 -0
- package/dist/__tests__/gate-cache.test.js +148 -0
- package/dist/__tests__/gate-cache.test.js.map +1 -0
- package/dist/__tests__/gate-check-cli.test.d.ts +11 -0
- package/dist/__tests__/gate-check-cli.test.d.ts.map +1 -0
- package/dist/__tests__/gate-check-cli.test.js +199 -0
- package/dist/__tests__/gate-check-cli.test.js.map +1 -0
- package/dist/__tests__/gate-e2e.test.d.ts +17 -0
- package/dist/__tests__/gate-e2e.test.d.ts.map +1 -0
- package/dist/__tests__/gate-e2e.test.js +110 -0
- package/dist/__tests__/gate-e2e.test.js.map +1 -0
- package/dist/__tests__/gate-force-override.test.d.ts +16 -0
- package/dist/__tests__/gate-force-override.test.d.ts.map +1 -0
- package/dist/__tests__/gate-force-override.test.js +139 -0
- package/dist/__tests__/gate-force-override.test.js.map +1 -0
- package/dist/__tests__/gate-gates.test.d.ts +5 -0
- package/dist/__tests__/gate-gates.test.d.ts.map +1 -0
- package/dist/__tests__/gate-gates.test.js +222 -0
- package/dist/__tests__/gate-gates.test.js.map +1 -0
- package/dist/__tests__/gate-perf.test.d.ts +15 -0
- package/dist/__tests__/gate-perf.test.d.ts.map +1 -0
- package/dist/__tests__/gate-perf.test.js +75 -0
- package/dist/__tests__/gate-perf.test.js.map +1 -0
- package/dist/__tests__/gate-persona-alignment.test.d.ts +16 -0
- package/dist/__tests__/gate-persona-alignment.test.d.ts.map +1 -0
- package/dist/__tests__/gate-persona-alignment.test.js +241 -0
- package/dist/__tests__/gate-persona-alignment.test.js.map +1 -0
- package/dist/__tests__/gate-registry.test.d.ts +8 -0
- package/dist/__tests__/gate-registry.test.d.ts.map +1 -0
- package/dist/__tests__/gate-registry.test.js +176 -0
- package/dist/__tests__/gate-registry.test.js.map +1 -0
- package/dist/__tests__/gate-route-preview.test.d.ts +13 -0
- package/dist/__tests__/gate-route-preview.test.d.ts.map +1 -0
- package/dist/__tests__/gate-route-preview.test.js +169 -0
- package/dist/__tests__/gate-route-preview.test.js.map +1 -0
- package/dist/__tests__/gitignore-drift.test.d.ts +14 -0
- package/dist/__tests__/gitignore-drift.test.d.ts.map +1 -0
- package/dist/__tests__/gitignore-drift.test.js +138 -0
- package/dist/__tests__/gitignore-drift.test.js.map +1 -0
- package/dist/__tests__/gitignore-upgrade.test.d.ts +15 -0
- package/dist/__tests__/gitignore-upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/gitignore-upgrade.test.js +208 -0
- package/dist/__tests__/gitignore-upgrade.test.js.map +1 -0
- package/dist/__tests__/host-detect-all-runtimes.test.d.ts +14 -0
- package/dist/__tests__/host-detect-all-runtimes.test.d.ts.map +1 -0
- package/dist/__tests__/host-detect-all-runtimes.test.js +220 -0
- package/dist/__tests__/host-detect-all-runtimes.test.js.map +1 -0
- package/dist/__tests__/host-detect.test.d.ts +2 -0
- package/dist/__tests__/host-detect.test.d.ts.map +1 -0
- package/dist/__tests__/host-detect.test.js +554 -0
- package/dist/__tests__/host-detect.test.js.map +1 -0
- package/dist/__tests__/init-bootstrap-chain.test.d.ts +12 -0
- package/dist/__tests__/init-bootstrap-chain.test.d.ts.map +1 -0
- package/dist/__tests__/init-bootstrap-chain.test.js +101 -0
- package/dist/__tests__/init-bootstrap-chain.test.js.map +1 -0
- package/dist/__tests__/init-flag-parser.test.d.ts +15 -0
- package/dist/__tests__/init-flag-parser.test.d.ts.map +1 -0
- package/dist/__tests__/init-flag-parser.test.js +152 -0
- package/dist/__tests__/init-flag-parser.test.js.map +1 -0
- package/dist/__tests__/init-hints.test.d.ts +20 -0
- package/dist/__tests__/init-hints.test.d.ts.map +1 -0
- package/dist/__tests__/init-hints.test.js +147 -0
- package/dist/__tests__/init-hints.test.js.map +1 -0
- package/dist/__tests__/init-non-tty-class-a.test.d.ts +14 -0
- package/dist/__tests__/init-non-tty-class-a.test.d.ts.map +1 -0
- package/dist/__tests__/init-non-tty-class-a.test.js +141 -0
- package/dist/__tests__/init-non-tty-class-a.test.js.map +1 -0
- package/dist/__tests__/init-seeds-stub.test.d.ts +11 -0
- package/dist/__tests__/init-seeds-stub.test.d.ts.map +1 -0
- package/dist/__tests__/init-seeds-stub.test.js +89 -0
- package/dist/__tests__/init-seeds-stub.test.js.map +1 -0
- package/dist/__tests__/init-upgrade-drift.test.d.ts +16 -0
- package/dist/__tests__/init-upgrade-drift.test.d.ts.map +1 -0
- package/dist/__tests__/init-upgrade-drift.test.js +136 -0
- package/dist/__tests__/init-upgrade-drift.test.js.map +1 -0
- package/dist/__tests__/install-no-yaml-warnings.test.d.ts +25 -0
- package/dist/__tests__/install-no-yaml-warnings.test.d.ts.map +1 -0
- package/dist/__tests__/install-no-yaml-warnings.test.js +89 -0
- package/dist/__tests__/install-no-yaml-warnings.test.js.map +1 -0
- package/dist/__tests__/install-pipeline-traversal.test.d.ts +7 -0
- package/dist/__tests__/install-pipeline-traversal.test.d.ts.map +1 -0
- package/dist/__tests__/install-pipeline-traversal.test.js +62 -0
- package/dist/__tests__/install-pipeline-traversal.test.js.map +1 -0
- package/dist/__tests__/install-pipeline.test.d.ts +11 -0
- package/dist/__tests__/install-pipeline.test.d.ts.map +1 -0
- package/dist/__tests__/install-pipeline.test.js +131 -0
- package/dist/__tests__/install-pipeline.test.js.map +1 -0
- package/dist/__tests__/integration/helpers/make-fixture-project.d.ts +59 -0
- package/dist/__tests__/integration/helpers/make-fixture-project.d.ts.map +1 -0
- package/dist/__tests__/integration/helpers/make-fixture-project.js +130 -0
- package/dist/__tests__/integration/helpers/make-fixture-project.js.map +1 -0
- package/dist/__tests__/integration/helpers/run-cli.d.ts +40 -0
- package/dist/__tests__/integration/helpers/run-cli.d.ts.map +1 -0
- package/dist/__tests__/integration/helpers/run-cli.js +61 -0
- package/dist/__tests__/integration/helpers/run-cli.js.map +1 -0
- package/dist/__tests__/integration/smoke-author-skill.test.d.ts +15 -0
- package/dist/__tests__/integration/smoke-author-skill.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-author-skill.test.js +86 -0
- package/dist/__tests__/integration/smoke-author-skill.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-bootstrap.test.d.ts +12 -0
- package/dist/__tests__/integration/smoke-bootstrap.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-bootstrap.test.js +68 -0
- package/dist/__tests__/integration/smoke-bootstrap.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-coverage-check.test.d.ts +9 -0
- package/dist/__tests__/integration/smoke-coverage-check.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-coverage-check.test.js +152 -0
- package/dist/__tests__/integration/smoke-coverage-check.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-create-docs.test.d.ts +14 -0
- package/dist/__tests__/integration/smoke-create-docs.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-create-docs.test.js +142 -0
- package/dist/__tests__/integration/smoke-create-docs.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-design-lint.test.d.ts +11 -0
- package/dist/__tests__/integration/smoke-design-lint.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-design-lint.test.js +46 -0
- package/dist/__tests__/integration/smoke-design-lint.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-design-scan.test.d.ts +11 -0
- package/dist/__tests__/integration/smoke-design-scan.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-design-scan.test.js +41 -0
- package/dist/__tests__/integration/smoke-design-scan.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-design-synthesize.test.d.ts +23 -0
- package/dist/__tests__/integration/smoke-design-synthesize.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-design-synthesize.test.js +232 -0
- package/dist/__tests__/integration/smoke-design-synthesize.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-design-template.test.d.ts +23 -0
- package/dist/__tests__/integration/smoke-design-template.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-design-template.test.js +203 -0
- package/dist/__tests__/integration/smoke-design-template.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-design-validate.test.d.ts +12 -0
- package/dist/__tests__/integration/smoke-design-validate.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-design-validate.test.js +98 -0
- package/dist/__tests__/integration/smoke-design-validate.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-docs-audit.test.d.ts +5 -0
- package/dist/__tests__/integration/smoke-docs-audit.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-docs-audit.test.js +28 -0
- package/dist/__tests__/integration/smoke-docs-audit.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-docs-coherence.test.d.ts +12 -0
- package/dist/__tests__/integration/smoke-docs-coherence.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-docs-coherence.test.js +176 -0
- package/dist/__tests__/integration/smoke-docs-coherence.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-effects.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-effects.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-effects.test.js +92 -0
- package/dist/__tests__/integration/smoke-effects.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-features-audit.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-features-audit.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-features-audit.test.js +77 -0
- package/dist/__tests__/integration/smoke-features-audit.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-gate.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-gate.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-gate.test.js +120 -0
- package/dist/__tests__/integration/smoke-gate.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-host.test.d.ts +7 -0
- package/dist/__tests__/integration/smoke-host.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-host.test.js +230 -0
- package/dist/__tests__/integration/smoke-host.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-personas.test.d.ts +14 -0
- package/dist/__tests__/integration/smoke-personas.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-personas.test.js +87 -0
- package/dist/__tests__/integration/smoke-personas.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.d.ts +12 -0
- package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.js +422 -0
- package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-pr-review.test.d.ts +11 -0
- package/dist/__tests__/integration/smoke-pr-review.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-pr-review.test.js +105 -0
- package/dist/__tests__/integration/smoke-pr-review.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-product-context.test.d.ts +11 -0
- package/dist/__tests__/integration/smoke-product-context.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-product-context.test.js +64 -0
- package/dist/__tests__/integration/smoke-product-context.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-profile.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-profile.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-profile.test.js +74 -0
- package/dist/__tests__/integration/smoke-profile.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-roadmap.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-roadmap.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-roadmap.test.js +89 -0
- package/dist/__tests__/integration/smoke-roadmap.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-route.test.d.ts +8 -0
- package/dist/__tests__/integration/smoke-route.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-route.test.js +97 -0
- package/dist/__tests__/integration/smoke-route.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-seed.test.d.ts +10 -0
- package/dist/__tests__/integration/smoke-seed.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-seed.test.js +50 -0
- package/dist/__tests__/integration/smoke-seed.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-standards.test.d.ts +12 -0
- package/dist/__tests__/integration/smoke-standards.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-standards.test.js +95 -0
- package/dist/__tests__/integration/smoke-standards.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-statusline.test.d.ts +13 -0
- package/dist/__tests__/integration/smoke-statusline.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-statusline.test.js +61 -0
- package/dist/__tests__/integration/smoke-statusline.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-task.test.d.ts +11 -0
- package/dist/__tests__/integration/smoke-task.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-task.test.js +228 -0
- package/dist/__tests__/integration/smoke-task.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-taste-infer.test.d.ts +17 -0
- package/dist/__tests__/integration/smoke-taste-infer.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-taste-infer.test.js +98 -0
- package/dist/__tests__/integration/smoke-taste-infer.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-team.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-team.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-team.test.js +61 -0
- package/dist/__tests__/integration/smoke-team.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-terminal.test.d.ts +15 -0
- package/dist/__tests__/integration/smoke-terminal.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-terminal.test.js +127 -0
- package/dist/__tests__/integration/smoke-terminal.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-tokens.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-tokens.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-tokens.test.js +92 -0
- package/dist/__tests__/integration/smoke-tokens.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-uninstall.test.d.ts +8 -0
- package/dist/__tests__/integration/smoke-uninstall.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-uninstall.test.js +58 -0
- package/dist/__tests__/integration/smoke-uninstall.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-validate-evidence.test.d.ts +8 -0
- package/dist/__tests__/integration/smoke-validate-evidence.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-validate-evidence.test.js +72 -0
- package/dist/__tests__/integration/smoke-validate-evidence.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-variant-gallery.test.d.ts +12 -0
- package/dist/__tests__/integration/smoke-variant-gallery.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-variant-gallery.test.js +60 -0
- package/dist/__tests__/integration/smoke-variant-gallery.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-variant-pick.test.d.ts +12 -0
- package/dist/__tests__/integration/smoke-variant-pick.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-variant-pick.test.js +57 -0
- package/dist/__tests__/integration/smoke-variant-pick.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-variant-pool.test.d.ts +10 -0
- package/dist/__tests__/integration/smoke-variant-pool.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-variant-pool.test.js +33 -0
- package/dist/__tests__/integration/smoke-variant-pool.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-wfrun.test.d.ts +9 -0
- package/dist/__tests__/integration/smoke-wfrun.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-wfrun.test.js +111 -0
- package/dist/__tests__/integration/smoke-wfrun.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-worktree-install.test.d.ts +7 -0
- package/dist/__tests__/integration/smoke-worktree-install.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-worktree-install.test.js +40 -0
- package/dist/__tests__/integration/smoke-worktree-install.test.js.map +1 -0
- package/dist/__tests__/integration/smoke-worktree.test.d.ts +6 -0
- package/dist/__tests__/integration/smoke-worktree.test.d.ts.map +1 -0
- package/dist/__tests__/integration/smoke-worktree.test.js +59 -0
- package/dist/__tests__/integration/smoke-worktree.test.js.map +1 -0
- package/dist/__tests__/lifecycle-shipped-pending-merge.test.d.ts +15 -0
- package/dist/__tests__/lifecycle-shipped-pending-merge.test.d.ts.map +1 -0
- package/dist/__tests__/lifecycle-shipped-pending-merge.test.js +150 -0
- package/dist/__tests__/lifecycle-shipped-pending-merge.test.js.map +1 -0
- package/dist/__tests__/lock-proper-lockfile.test.d.ts +9 -0
- package/dist/__tests__/lock-proper-lockfile.test.d.ts.map +1 -0
- package/dist/__tests__/lock-proper-lockfile.test.js +121 -0
- package/dist/__tests__/lock-proper-lockfile.test.js.map +1 -0
- package/dist/__tests__/manifest.test.d.ts +2 -0
- package/dist/__tests__/manifest.test.d.ts.map +1 -0
- package/dist/__tests__/manifest.test.js +32 -0
- package/dist/__tests__/manifest.test.js.map +1 -0
- package/dist/__tests__/milestone-rollup.test.d.ts +7 -0
- package/dist/__tests__/milestone-rollup.test.d.ts.map +1 -0
- package/dist/__tests__/milestone-rollup.test.js +175 -0
- package/dist/__tests__/milestone-rollup.test.js.map +1 -0
- package/dist/__tests__/milestone-schema-focus-fields.test.d.ts +14 -0
- package/dist/__tests__/milestone-schema-focus-fields.test.d.ts.map +1 -0
- package/dist/__tests__/milestone-schema-focus-fields.test.js +159 -0
- package/dist/__tests__/milestone-schema-focus-fields.test.js.map +1 -0
- package/dist/__tests__/null-backend.test.d.ts +2 -0
- package/dist/__tests__/null-backend.test.d.ts.map +1 -0
- package/dist/__tests__/null-backend.test.js +54 -0
- package/dist/__tests__/null-backend.test.js.map +1 -0
- package/dist/__tests__/output-style-helpers.test.d.ts +11 -0
- package/dist/__tests__/output-style-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/output-style-helpers.test.js +173 -0
- package/dist/__tests__/output-style-helpers.test.js.map +1 -0
- package/dist/__tests__/outputs-guard.test.d.ts +16 -0
- package/dist/__tests__/outputs-guard.test.d.ts.map +1 -0
- package/dist/__tests__/outputs-guard.test.js +143 -0
- package/dist/__tests__/outputs-guard.test.js.map +1 -0
- package/dist/__tests__/parse-acceptance-criteria.test.d.ts +7 -0
- package/dist/__tests__/parse-acceptance-criteria.test.d.ts.map +1 -0
- package/dist/__tests__/parse-acceptance-criteria.test.js +135 -0
- package/dist/__tests__/parse-acceptance-criteria.test.js.map +1 -0
- package/dist/__tests__/personas-cli.test.d.ts +12 -0
- package/dist/__tests__/personas-cli.test.d.ts.map +1 -0
- package/dist/__tests__/personas-cli.test.js +235 -0
- package/dist/__tests__/personas-cli.test.js.map +1 -0
- package/dist/__tests__/personas-frontmatter.test.d.ts +24 -0
- package/dist/__tests__/personas-frontmatter.test.d.ts.map +1 -0
- package/dist/__tests__/personas-frontmatter.test.js +108 -0
- package/dist/__tests__/personas-frontmatter.test.js.map +1 -0
- package/dist/__tests__/personas-role-scan.test.d.ts +14 -0
- package/dist/__tests__/personas-role-scan.test.d.ts.map +1 -0
- package/dist/__tests__/personas-role-scan.test.js +134 -0
- package/dist/__tests__/personas-role-scan.test.js.map +1 -0
- package/dist/__tests__/personas-schema-roundtrip.test.d.ts +31 -0
- package/dist/__tests__/personas-schema-roundtrip.test.d.ts.map +1 -0
- package/dist/__tests__/personas-schema-roundtrip.test.js +235 -0
- package/dist/__tests__/personas-schema-roundtrip.test.js.map +1 -0
- package/dist/__tests__/personas-sidecar.test.d.ts +19 -0
- package/dist/__tests__/personas-sidecar.test.d.ts.map +1 -0
- package/dist/__tests__/personas-sidecar.test.js +285 -0
- package/dist/__tests__/personas-sidecar.test.js.map +1 -0
- package/dist/__tests__/plan-approval.test.d.ts +10 -0
- package/dist/__tests__/plan-approval.test.d.ts.map +1 -0
- package/dist/__tests__/plan-approval.test.js +161 -0
- package/dist/__tests__/plan-approval.test.js.map +1 -0
- package/dist/__tests__/plan-mode-e2e.test.d.ts +20 -0
- package/dist/__tests__/plan-mode-e2e.test.d.ts.map +1 -0
- package/dist/__tests__/plan-mode-e2e.test.js +118 -0
- package/dist/__tests__/plan-mode-e2e.test.js.map +1 -0
- package/dist/__tests__/planner-docs-impact.test.d.ts +6 -0
- package/dist/__tests__/planner-docs-impact.test.d.ts.map +1 -0
- package/dist/__tests__/planner-docs-impact.test.js +44 -0
- package/dist/__tests__/planner-docs-impact.test.js.map +1 -0
- package/dist/__tests__/planner-persona-tier-declaration.test.d.ts +15 -0
- package/dist/__tests__/planner-persona-tier-declaration.test.d.ts.map +1 -0
- package/dist/__tests__/planner-persona-tier-declaration.test.js +60 -0
- package/dist/__tests__/planner-persona-tier-declaration.test.js.map +1 -0
- package/dist/__tests__/plugin-build.test.d.ts +16 -0
- package/dist/__tests__/plugin-build.test.d.ts.map +1 -0
- package/dist/__tests__/plugin-build.test.js +119 -0
- package/dist/__tests__/plugin-build.test.js.map +1 -0
- package/dist/__tests__/plugin-manifest-schema.test.d.ts +18 -0
- package/dist/__tests__/plugin-manifest-schema.test.d.ts.map +1 -0
- package/dist/__tests__/plugin-manifest-schema.test.js +123 -0
- package/dist/__tests__/plugin-manifest-schema.test.js.map +1 -0
- package/dist/__tests__/post-merge-sweep.test.d.ts +23 -0
- package/dist/__tests__/post-merge-sweep.test.d.ts.map +1 -0
- package/dist/__tests__/post-merge-sweep.test.js +342 -0
- package/dist/__tests__/post-merge-sweep.test.js.map +1 -0
- package/dist/__tests__/pr-review-audit-fixer.test.d.ts +11 -0
- package/dist/__tests__/pr-review-audit-fixer.test.d.ts.map +1 -0
- package/dist/__tests__/pr-review-audit-fixer.test.js +354 -0
- package/dist/__tests__/pr-review-audit-fixer.test.js.map +1 -0
- package/dist/__tests__/pr-review-authorship-migration.test.d.ts +13 -0
- package/dist/__tests__/pr-review-authorship-migration.test.d.ts.map +1 -0
- package/dist/__tests__/pr-review-authorship-migration.test.js +237 -0
- package/dist/__tests__/pr-review-authorship-migration.test.js.map +1 -0
- package/dist/__tests__/pr-review-close-round-cleanup.test.d.ts +15 -0
- package/dist/__tests__/pr-review-close-round-cleanup.test.d.ts.map +1 -0
- package/dist/__tests__/pr-review-close-round-cleanup.test.js +191 -0
- package/dist/__tests__/pr-review-close-round-cleanup.test.js.map +1 -0
- package/dist/__tests__/pr-review-detect-authorship.test.d.ts +21 -0
- package/dist/__tests__/pr-review-detect-authorship.test.d.ts.map +1 -0
- package/dist/__tests__/pr-review-detect-authorship.test.js +270 -0
- package/dist/__tests__/pr-review-detect-authorship.test.js.map +1 -0
- package/dist/__tests__/product-context.test.d.ts +14 -0
- package/dist/__tests__/product-context.test.d.ts.map +1 -0
- package/dist/__tests__/product-context.test.js +117 -0
- package/dist/__tests__/product-context.test.js.map +1 -0
- package/dist/__tests__/profile-cli.test.d.ts +5 -0
- package/dist/__tests__/profile-cli.test.d.ts.map +1 -0
- package/dist/__tests__/profile-cli.test.js +134 -0
- package/dist/__tests__/profile-cli.test.js.map +1 -0
- package/dist/__tests__/profile-parse.test.d.ts +5 -0
- package/dist/__tests__/profile-parse.test.d.ts.map +1 -0
- package/dist/__tests__/profile-parse.test.js +151 -0
- package/dist/__tests__/profile-parse.test.js.map +1 -0
- package/dist/__tests__/profile-resolve.test.d.ts +5 -0
- package/dist/__tests__/profile-resolve.test.d.ts.map +1 -0
- package/dist/__tests__/profile-resolve.test.js +181 -0
- package/dist/__tests__/profile-resolve.test.js.map +1 -0
- package/dist/__tests__/remote-detection.test.d.ts +9 -0
- package/dist/__tests__/remote-detection.test.d.ts.map +1 -0
- package/dist/__tests__/remote-detection.test.js +86 -0
- package/dist/__tests__/remote-detection.test.js.map +1 -0
- package/dist/__tests__/risk-check.test.d.ts +2 -0
- package/dist/__tests__/risk-check.test.d.ts.map +1 -0
- package/dist/__tests__/risk-check.test.js +85 -0
- package/dist/__tests__/risk-check.test.js.map +1 -0
- package/dist/__tests__/roadmap-delete-phase-files.test.d.ts +18 -0
- package/dist/__tests__/roadmap-delete-phase-files.test.d.ts.map +1 -0
- package/dist/__tests__/roadmap-delete-phase-files.test.js +122 -0
- package/dist/__tests__/roadmap-delete-phase-files.test.js.map +1 -0
- package/dist/__tests__/roadmap-empty-milestone-lookup.test.d.ts +29 -0
- package/dist/__tests__/roadmap-empty-milestone-lookup.test.d.ts.map +1 -0
- package/dist/__tests__/roadmap-empty-milestone-lookup.test.js +186 -0
- package/dist/__tests__/roadmap-empty-milestone-lookup.test.js.map +1 -0
- package/dist/__tests__/roadmap-orphan-block.test.d.ts +8 -0
- package/dist/__tests__/roadmap-orphan-block.test.d.ts.map +1 -0
- package/dist/__tests__/roadmap-orphan-block.test.js +114 -0
- package/dist/__tests__/roadmap-orphan-block.test.js.map +1 -0
- package/dist/__tests__/roadmap-phases-io.test.d.ts +15 -0
- package/dist/__tests__/roadmap-phases-io.test.d.ts.map +1 -0
- package/dist/__tests__/roadmap-phases-io.test.js +235 -0
- package/dist/__tests__/roadmap-phases-io.test.js.map +1 -0
- package/dist/__tests__/roadmap-validate-refs.test.d.ts +9 -0
- package/dist/__tests__/roadmap-validate-refs.test.d.ts.map +1 -0
- package/dist/__tests__/roadmap-validate-refs.test.js +90 -0
- package/dist/__tests__/roadmap-validate-refs.test.js.map +1 -0
- package/dist/__tests__/route-design-skill.test.d.ts +10 -0
- package/dist/__tests__/route-design-skill.test.d.ts.map +1 -0
- package/dist/__tests__/route-design-skill.test.js +61 -0
- package/dist/__tests__/route-design-skill.test.js.map +1 -0
- package/dist/__tests__/route-envelope-builder.test.d.ts +12 -0
- package/dist/__tests__/route-envelope-builder.test.d.ts.map +1 -0
- package/dist/__tests__/route-envelope-builder.test.js +369 -0
- package/dist/__tests__/route-envelope-builder.test.js.map +1 -0
- package/dist/__tests__/route-mockup-skill.test.d.ts +10 -0
- package/dist/__tests__/route-mockup-skill.test.d.ts.map +1 -0
- package/dist/__tests__/route-mockup-skill.test.js +61 -0
- package/dist/__tests__/route-mockup-skill.test.js.map +1 -0
- package/dist/__tests__/route-plan-mode.test.d.ts +9 -0
- package/dist/__tests__/route-plan-mode.test.d.ts.map +1 -0
- package/dist/__tests__/route-plan-mode.test.js +126 -0
- package/dist/__tests__/route-plan-mode.test.js.map +1 -0
- package/dist/__tests__/route-pr-review-skill.test.d.ts +15 -0
- package/dist/__tests__/route-pr-review-skill.test.d.ts.map +1 -0
- package/dist/__tests__/route-pr-review-skill.test.js +132 -0
- package/dist/__tests__/route-pr-review-skill.test.js.map +1 -0
- package/dist/__tests__/route-runtime-override.test.d.ts +18 -0
- package/dist/__tests__/route-runtime-override.test.d.ts.map +1 -0
- package/dist/__tests__/route-runtime-override.test.js +164 -0
- package/dist/__tests__/route-runtime-override.test.js.map +1 -0
- package/dist/__tests__/route-skill-discover.test.d.ts +9 -0
- package/dist/__tests__/route-skill-discover.test.d.ts.map +1 -0
- package/dist/__tests__/route-skill-discover.test.js +163 -0
- package/dist/__tests__/route-skill-discover.test.js.map +1 -0
- package/dist/__tests__/route-trust-boundary.test.d.ts +10 -0
- package/dist/__tests__/route-trust-boundary.test.d.ts.map +1 -0
- package/dist/__tests__/route-trust-boundary.test.js +206 -0
- package/dist/__tests__/route-trust-boundary.test.js.map +1 -0
- package/dist/__tests__/router-cross-runtime-parity.test.d.ts +23 -0
- package/dist/__tests__/router-cross-runtime-parity.test.d.ts.map +1 -0
- package/dist/__tests__/router-cross-runtime-parity.test.js +227 -0
- package/dist/__tests__/router-cross-runtime-parity.test.js.map +1 -0
- package/dist/__tests__/run-cmd-harness.test.d.ts +14 -0
- package/dist/__tests__/run-cmd-harness.test.d.ts.map +1 -0
- package/dist/__tests__/run-cmd-harness.test.js +132 -0
- package/dist/__tests__/run-cmd-harness.test.js.map +1 -0
- package/dist/__tests__/schema-migrate.test.d.ts +8 -0
- package/dist/__tests__/schema-migrate.test.d.ts.map +1 -0
- package/dist/__tests__/schema-migrate.test.js +107 -0
- package/dist/__tests__/schema-migrate.test.js.map +1 -0
- package/dist/__tests__/seed-assign-unassign.test.d.ts +14 -0
- package/dist/__tests__/seed-assign-unassign.test.d.ts.map +1 -0
- package/dist/__tests__/seed-assign-unassign.test.js +188 -0
- package/dist/__tests__/seed-assign-unassign.test.js.map +1 -0
- package/dist/__tests__/seed-cli-lifecycle.test.d.ts +9 -0
- package/dist/__tests__/seed-cli-lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/seed-cli-lifecycle.test.js +204 -0
- package/dist/__tests__/seed-cli-lifecycle.test.js.map +1 -0
- package/dist/__tests__/seed-validate-cli.test.d.ts +11 -0
- package/dist/__tests__/seed-validate-cli.test.d.ts.map +1 -0
- package/dist/__tests__/seed-validate-cli.test.js +149 -0
- package/dist/__tests__/seed-validate-cli.test.js.map +1 -0
- package/dist/__tests__/seeds-io.test.d.ts +11 -0
- package/dist/__tests__/seeds-io.test.d.ts.map +1 -0
- package/dist/__tests__/seeds-io.test.js +145 -0
- package/dist/__tests__/seeds-io.test.js.map +1 -0
- package/dist/__tests__/seeds-render.test.d.ts +20 -0
- package/dist/__tests__/seeds-render.test.d.ts.map +1 -0
- package/dist/__tests__/seeds-render.test.js +145 -0
- package/dist/__tests__/seeds-render.test.js.map +1 -0
- package/dist/__tests__/seeds-validate.test.d.ts +7 -0
- package/dist/__tests__/seeds-validate.test.d.ts.map +1 -0
- package/dist/__tests__/seeds-validate.test.js +154 -0
- package/dist/__tests__/seeds-validate.test.js.map +1 -0
- package/dist/__tests__/self-stage-wiring.test.d.ts +9 -0
- package/dist/__tests__/self-stage-wiring.test.d.ts.map +1 -0
- package/dist/__tests__/self-stage-wiring.test.js +210 -0
- package/dist/__tests__/self-stage-wiring.test.js.map +1 -0
- package/dist/__tests__/setting-class.test.d.ts +7 -0
- package/dist/__tests__/setting-class.test.d.ts.map +1 -0
- package/dist/__tests__/setting-class.test.js +117 -0
- package/dist/__tests__/setting-class.test.js.map +1 -0
- package/dist/__tests__/share-policy.test.d.ts +15 -0
- package/dist/__tests__/share-policy.test.d.ts.map +1 -0
- package/dist/__tests__/share-policy.test.js +207 -0
- package/dist/__tests__/share-policy.test.js.map +1 -0
- package/dist/__tests__/ship-execute-skill-structure.test.d.ts +15 -0
- package/dist/__tests__/ship-execute-skill-structure.test.d.ts.map +1 -0
- package/dist/__tests__/ship-execute-skill-structure.test.js +92 -0
- package/dist/__tests__/ship-execute-skill-structure.test.js.map +1 -0
- package/dist/__tests__/skill-author-contract.test.d.ts +8 -0
- package/dist/__tests__/skill-author-contract.test.d.ts.map +1 -0
- package/dist/__tests__/skill-author-contract.test.js +86 -0
- package/dist/__tests__/skill-author-contract.test.js.map +1 -0
- package/dist/__tests__/skill-author-scaffold.test.d.ts +12 -0
- package/dist/__tests__/skill-author-scaffold.test.d.ts.map +1 -0
- package/dist/__tests__/skill-author-scaffold.test.js +82 -0
- package/dist/__tests__/skill-author-scaffold.test.js.map +1 -0
- package/dist/__tests__/skill-author-validate.test.d.ts +12 -0
- package/dist/__tests__/skill-author-validate.test.d.ts.map +1 -0
- package/dist/__tests__/skill-author-validate.test.js +156 -0
- package/dist/__tests__/skill-author-validate.test.js.map +1 -0
- package/dist/__tests__/skill-frontmatter-schema.test.d.ts +2 -0
- package/dist/__tests__/skill-frontmatter-schema.test.d.ts.map +1 -0
- package/dist/__tests__/skill-frontmatter-schema.test.js +265 -0
- package/dist/__tests__/skill-frontmatter-schema.test.js.map +1 -0
- package/dist/__tests__/smoke-design-subpaths.test.d.ts +24 -0
- package/dist/__tests__/smoke-design-subpaths.test.d.ts.map +1 -0
- package/dist/__tests__/smoke-design-subpaths.test.js +59 -0
- package/dist/__tests__/smoke-design-subpaths.test.js.map +1 -0
- package/dist/__tests__/standalone-discover-standards.test.d.ts +9 -0
- package/dist/__tests__/standalone-discover-standards.test.d.ts.map +1 -0
- package/dist/__tests__/standalone-discover-standards.test.js +198 -0
- package/dist/__tests__/standalone-discover-standards.test.js.map +1 -0
- package/dist/__tests__/statusline-chips.test.d.ts +10 -0
- package/dist/__tests__/statusline-chips.test.d.ts.map +1 -0
- package/dist/__tests__/statusline-chips.test.js +147 -0
- package/dist/__tests__/statusline-chips.test.js.map +1 -0
- package/dist/__tests__/statusline-install-chip.test.d.ts +12 -0
- package/dist/__tests__/statusline-install-chip.test.d.ts.map +1 -0
- package/dist/__tests__/statusline-install-chip.test.js +122 -0
- package/dist/__tests__/statusline-install-chip.test.js.map +1 -0
- package/dist/__tests__/synthesize-unit.test.d.ts +15 -0
- package/dist/__tests__/synthesize-unit.test.d.ts.map +1 -0
- package/dist/__tests__/synthesize-unit.test.js +138 -0
- package/dist/__tests__/synthesize-unit.test.js.map +1 -0
- package/dist/__tests__/task-close-auto-phase.test.d.ts +13 -0
- package/dist/__tests__/task-close-auto-phase.test.d.ts.map +1 -0
- package/dist/__tests__/task-close-auto-phase.test.js +197 -0
- package/dist/__tests__/task-close-auto-phase.test.js.map +1 -0
- package/dist/__tests__/task-close-merged-closed-not-merged.test.d.ts +19 -0
- package/dist/__tests__/task-close-merged-closed-not-merged.test.d.ts.map +1 -0
- package/dist/__tests__/task-close-merged-closed-not-merged.test.js +177 -0
- package/dist/__tests__/task-close-merged-closed-not-merged.test.js.map +1 -0
- package/dist/__tests__/task-close-merged-pr-mutated.test.d.ts +15 -0
- package/dist/__tests__/task-close-merged-pr-mutated.test.d.ts.map +1 -0
- package/dist/__tests__/task-close-merged-pr-mutated.test.js +210 -0
- package/dist/__tests__/task-close-merged-pr-mutated.test.js.map +1 -0
- package/dist/__tests__/task-close-merged.test.d.ts +17 -0
- package/dist/__tests__/task-close-merged.test.d.ts.map +1 -0
- package/dist/__tests__/task-close-merged.test.js +242 -0
- package/dist/__tests__/task-close-merged.test.js.map +1 -0
- package/dist/__tests__/task-depends-on-cycle.test.d.ts +8 -0
- package/dist/__tests__/task-depends-on-cycle.test.d.ts.map +1 -0
- package/dist/__tests__/task-depends-on-cycle.test.js +62 -0
- package/dist/__tests__/task-depends-on-cycle.test.js.map +1 -0
- package/dist/__tests__/task-execution-mode.test.d.ts +7 -0
- package/dist/__tests__/task-execution-mode.test.d.ts.map +1 -0
- package/dist/__tests__/task-execution-mode.test.js +73 -0
- package/dist/__tests__/task-execution-mode.test.js.map +1 -0
- package/dist/__tests__/task-move.test.d.ts +8 -0
- package/dist/__tests__/task-move.test.d.ts.map +1 -0
- package/dist/__tests__/task-move.test.js +134 -0
- package/dist/__tests__/task-move.test.js.map +1 -0
- package/dist/__tests__/task-prune.test.d.ts +15 -0
- package/dist/__tests__/task-prune.test.d.ts.map +1 -0
- package/dist/__tests__/task-prune.test.js +171 -0
- package/dist/__tests__/task-prune.test.js.map +1 -0
- package/dist/__tests__/task-ref.test.d.ts +2 -0
- package/dist/__tests__/task-ref.test.d.ts.map +1 -0
- package/dist/__tests__/task-ref.test.js +37 -0
- package/dist/__tests__/task-ref.test.js.map +1 -0
- package/dist/__tests__/task-scope-propagation.test.d.ts +8 -0
- package/dist/__tests__/task-scope-propagation.test.d.ts.map +1 -0
- package/dist/__tests__/task-scope-propagation.test.js +174 -0
- package/dist/__tests__/task-scope-propagation.test.js.map +1 -0
- package/dist/__tests__/taste-infer.test.d.ts +13 -0
- package/dist/__tests__/taste-infer.test.d.ts.map +1 -0
- package/dist/__tests__/taste-infer.test.js +640 -0
- package/dist/__tests__/taste-infer.test.js.map +1 -0
- package/dist/__tests__/tdd-iron-law-gate.test.d.ts +10 -0
- package/dist/__tests__/tdd-iron-law-gate.test.d.ts.map +1 -0
- package/dist/__tests__/tdd-iron-law-gate.test.js +207 -0
- package/dist/__tests__/tdd-iron-law-gate.test.js.map +1 -0
- package/dist/__tests__/team-status-liveness.test.d.ts +17 -0
- package/dist/__tests__/team-status-liveness.test.d.ts.map +1 -0
- package/dist/__tests__/team-status-liveness.test.js +127 -0
- package/dist/__tests__/team-status-liveness.test.js.map +1 -0
- package/dist/__tests__/team-status.test.d.ts +13 -0
- package/dist/__tests__/team-status.test.d.ts.map +1 -0
- package/dist/__tests__/team-status.test.js +133 -0
- package/dist/__tests__/team-status.test.js.map +1 -0
- package/dist/__tests__/team-sync.test.d.ts +2 -0
- package/dist/__tests__/team-sync.test.d.ts.map +1 -0
- package/dist/__tests__/team-sync.test.js +292 -0
- package/dist/__tests__/team-sync.test.js.map +1 -0
- package/dist/__tests__/terminal-cli.test.d.ts +9 -0
- package/dist/__tests__/terminal-cli.test.d.ts.map +1 -0
- package/dist/__tests__/terminal-cli.test.js +64 -0
- package/dist/__tests__/terminal-cli.test.js.map +1 -0
- package/dist/__tests__/terminal-socket-client.test.d.ts +8 -0
- package/dist/__tests__/terminal-socket-client.test.d.ts.map +1 -0
- package/dist/__tests__/terminal-socket-client.test.js +130 -0
- package/dist/__tests__/terminal-socket-client.test.js.map +1 -0
- package/dist/__tests__/tokens-record.test.d.ts +12 -0
- package/dist/__tests__/tokens-record.test.d.ts.map +1 -0
- package/dist/__tests__/tokens-record.test.js +136 -0
- package/dist/__tests__/tokens-record.test.js.map +1 -0
- package/dist/__tests__/tokens-state-mirror.test.d.ts +15 -0
- package/dist/__tests__/tokens-state-mirror.test.d.ts.map +1 -0
- package/dist/__tests__/tokens-state-mirror.test.js +190 -0
- package/dist/__tests__/tokens-state-mirror.test.js.map +1 -0
- package/dist/__tests__/tokens-tally.test.d.ts +8 -0
- package/dist/__tests__/tokens-tally.test.d.ts.map +1 -0
- package/dist/__tests__/tokens-tally.test.js +175 -0
- package/dist/__tests__/tokens-tally.test.js.map +1 -0
- package/dist/__tests__/toolchain-detect-path-scoped.test.d.ts +13 -0
- package/dist/__tests__/toolchain-detect-path-scoped.test.d.ts.map +1 -0
- package/dist/__tests__/toolchain-detect-path-scoped.test.js +136 -0
- package/dist/__tests__/toolchain-detect-path-scoped.test.js.map +1 -0
- package/dist/__tests__/transcript.test.d.ts +12 -0
- package/dist/__tests__/transcript.test.d.ts.map +1 -0
- package/dist/__tests__/transcript.test.js +110 -0
- package/dist/__tests__/transcript.test.js.map +1 -0
- package/dist/__tests__/transform-antigravity.test.d.ts +5 -0
- package/dist/__tests__/transform-antigravity.test.d.ts.map +1 -0
- package/dist/__tests__/transform-antigravity.test.js +40 -0
- package/dist/__tests__/transform-antigravity.test.js.map +1 -0
- package/dist/__tests__/transform-augment.test.d.ts +5 -0
- package/dist/__tests__/transform-augment.test.d.ts.map +1 -0
- package/dist/__tests__/transform-augment.test.js +42 -0
- package/dist/__tests__/transform-augment.test.js.map +1 -0
- package/dist/__tests__/transform-claude.test.d.ts +8 -0
- package/dist/__tests__/transform-claude.test.d.ts.map +1 -0
- package/dist/__tests__/transform-claude.test.js +72 -0
- package/dist/__tests__/transform-claude.test.js.map +1 -0
- package/dist/__tests__/transform-cline.test.d.ts +5 -0
- package/dist/__tests__/transform-cline.test.d.ts.map +1 -0
- package/dist/__tests__/transform-cline.test.js +40 -0
- package/dist/__tests__/transform-cline.test.js.map +1 -0
- package/dist/__tests__/transform-codebuddy.test.d.ts +5 -0
- package/dist/__tests__/transform-codebuddy.test.d.ts.map +1 -0
- package/dist/__tests__/transform-codebuddy.test.js +52 -0
- package/dist/__tests__/transform-codebuddy.test.js.map +1 -0
- package/dist/__tests__/transform-codex.test.d.ts +5 -0
- package/dist/__tests__/transform-codex.test.d.ts.map +1 -0
- package/dist/__tests__/transform-codex.test.js +76 -0
- package/dist/__tests__/transform-codex.test.js.map +1 -0
- package/dist/__tests__/transform-copilot.test.d.ts +5 -0
- package/dist/__tests__/transform-copilot.test.d.ts.map +1 -0
- package/dist/__tests__/transform-copilot.test.js +41 -0
- package/dist/__tests__/transform-copilot.test.js.map +1 -0
- package/dist/__tests__/transform-cursor.test.d.ts +5 -0
- package/dist/__tests__/transform-cursor.test.d.ts.map +1 -0
- package/dist/__tests__/transform-cursor.test.js +53 -0
- package/dist/__tests__/transform-cursor.test.js.map +1 -0
- package/dist/__tests__/transform-gemini.test.d.ts +5 -0
- package/dist/__tests__/transform-gemini.test.d.ts.map +1 -0
- package/dist/__tests__/transform-gemini.test.js +50 -0
- package/dist/__tests__/transform-gemini.test.js.map +1 -0
- package/dist/__tests__/transform-kilo.test.d.ts +8 -0
- package/dist/__tests__/transform-kilo.test.d.ts.map +1 -0
- package/dist/__tests__/transform-kilo.test.js +45 -0
- package/dist/__tests__/transform-kilo.test.js.map +1 -0
- package/dist/__tests__/transform-opencode.test.d.ts +5 -0
- package/dist/__tests__/transform-opencode.test.d.ts.map +1 -0
- package/dist/__tests__/transform-opencode.test.js +75 -0
- package/dist/__tests__/transform-opencode.test.js.map +1 -0
- package/dist/__tests__/transform-qwen.test.d.ts +5 -0
- package/dist/__tests__/transform-qwen.test.d.ts.map +1 -0
- package/dist/__tests__/transform-qwen.test.js +43 -0
- package/dist/__tests__/transform-qwen.test.js.map +1 -0
- package/dist/__tests__/transform-trae.test.d.ts +5 -0
- package/dist/__tests__/transform-trae.test.d.ts.map +1 -0
- package/dist/__tests__/transform-trae.test.js +43 -0
- package/dist/__tests__/transform-trae.test.js.map +1 -0
- package/dist/__tests__/transform-windsurf.test.d.ts +5 -0
- package/dist/__tests__/transform-windsurf.test.d.ts.map +1 -0
- package/dist/__tests__/transform-windsurf.test.js +50 -0
- package/dist/__tests__/transform-windsurf.test.js.map +1 -0
- package/dist/__tests__/update-worker.test.d.ts +9 -0
- package/dist/__tests__/update-worker.test.d.ts.map +1 -0
- package/dist/__tests__/update-worker.test.js +84 -0
- package/dist/__tests__/update-worker.test.js.map +1 -0
- package/dist/__tests__/upgrade-layout.test.d.ts +14 -0
- package/dist/__tests__/upgrade-layout.test.d.ts.map +1 -0
- package/dist/__tests__/upgrade-layout.test.js +154 -0
- package/dist/__tests__/upgrade-layout.test.js.map +1 -0
- package/dist/__tests__/validate-evidence.test.d.ts +9 -0
- package/dist/__tests__/validate-evidence.test.d.ts.map +1 -0
- package/dist/__tests__/validate-evidence.test.js +291 -0
- package/dist/__tests__/validate-evidence.test.js.map +1 -0
- package/dist/__tests__/variant-gallery.test.d.ts +13 -0
- package/dist/__tests__/variant-gallery.test.d.ts.map +1 -0
- package/dist/__tests__/variant-gallery.test.js +135 -0
- package/dist/__tests__/variant-gallery.test.js.map +1 -0
- package/dist/__tests__/variant-pick.test.d.ts +11 -0
- package/dist/__tests__/variant-pick.test.d.ts.map +1 -0
- package/dist/__tests__/variant-pick.test.js +89 -0
- package/dist/__tests__/variant-pick.test.js.map +1 -0
- package/dist/__tests__/variant-pool.test.d.ts +18 -0
- package/dist/__tests__/variant-pool.test.d.ts.map +1 -0
- package/dist/__tests__/variant-pool.test.js +143 -0
- package/dist/__tests__/variant-pool.test.js.map +1 -0
- package/dist/__tests__/wfrun-dag.test.d.ts +5 -0
- package/dist/__tests__/wfrun-dag.test.d.ts.map +1 -0
- package/dist/__tests__/wfrun-dag.test.js +64 -0
- package/dist/__tests__/wfrun-dag.test.js.map +1 -0
- package/dist/__tests__/wfrun-input-flags.test.d.ts +7 -0
- package/dist/__tests__/wfrun-input-flags.test.d.ts.map +1 -0
- package/dist/__tests__/wfrun-input-flags.test.js +41 -0
- package/dist/__tests__/wfrun-input-flags.test.js.map +1 -0
- package/dist/__tests__/wfrun-interpolate.test.d.ts +5 -0
- package/dist/__tests__/wfrun-interpolate.test.d.ts.map +1 -0
- package/dist/__tests__/wfrun-interpolate.test.js +62 -0
- package/dist/__tests__/wfrun-interpolate.test.js.map +1 -0
- package/dist/__tests__/wfrun-parse.test.d.ts +7 -0
- package/dist/__tests__/wfrun-parse.test.d.ts.map +1 -0
- package/dist/__tests__/wfrun-parse.test.js +144 -0
- package/dist/__tests__/wfrun-parse.test.js.map +1 -0
- package/dist/__tests__/workflow-destroy-archive.test.d.ts +15 -0
- package/dist/__tests__/workflow-destroy-archive.test.d.ts.map +1 -0
- package/dist/__tests__/workflow-destroy-archive.test.js +134 -0
- package/dist/__tests__/workflow-destroy-archive.test.js.map +1 -0
- package/dist/__tests__/workflow.test.d.ts +2 -0
- package/dist/__tests__/workflow.test.d.ts.map +1 -0
- package/dist/__tests__/workflow.test.js +184 -0
- package/dist/__tests__/workflow.test.js.map +1 -0
- package/dist/__tests__/worktree-install-bootstrap-hook.test.d.ts +14 -0
- package/dist/__tests__/worktree-install-bootstrap-hook.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-install-bootstrap-hook.test.js +111 -0
- package/dist/__tests__/worktree-install-bootstrap-hook.test.js.map +1 -0
- package/dist/__tests__/worktree-install-dead-pid.test.d.ts +10 -0
- package/dist/__tests__/worktree-install-dead-pid.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-install-dead-pid.test.js +105 -0
- package/dist/__tests__/worktree-install-dead-pid.test.js.map +1 -0
- package/dist/__tests__/worktree-install-dispatch.test.d.ts +15 -0
- package/dist/__tests__/worktree-install-dispatch.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-install-dispatch.test.js +131 -0
- package/dist/__tests__/worktree-install-dispatch.test.js.map +1 -0
- package/dist/__tests__/worktree-install-escape-hatches.test.d.ts +12 -0
- package/dist/__tests__/worktree-install-escape-hatches.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-install-escape-hatches.test.js +97 -0
- package/dist/__tests__/worktree-install-escape-hatches.test.js.map +1 -0
- package/dist/__tests__/worktree-install-manifest-scanner.test.d.ts +9 -0
- package/dist/__tests__/worktree-install-manifest-scanner.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-install-manifest-scanner.test.js +175 -0
- package/dist/__tests__/worktree-install-manifest-scanner.test.js.map +1 -0
- package/dist/__tests__/worktree-install-multi-lockfile.test.d.ts +11 -0
- package/dist/__tests__/worktree-install-multi-lockfile.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-install-multi-lockfile.test.js +70 -0
- package/dist/__tests__/worktree-install-multi-lockfile.test.js.map +1 -0
- package/dist/capture/cdp-adapter.d.ts +44 -0
- package/dist/capture/cdp-adapter.d.ts.map +1 -0
- package/dist/capture/cdp-adapter.js +280 -0
- package/dist/capture/cdp-adapter.js.map +1 -0
- package/dist/capture/index.d.ts +3 -0
- package/dist/capture/index.d.ts.map +1 -0
- package/dist/capture/index.js +2 -0
- package/dist/capture/index.js.map +1 -0
- package/dist/capture/types.d.ts +86 -0
- package/dist/capture/types.d.ts.map +1 -0
- package/dist/capture/types.js +13 -0
- package/dist/capture/types.js.map +1 -0
- package/dist/cli/artifacts/classification.d.mts +72 -0
- package/dist/cli/artifacts/classification.d.mts.map +1 -0
- package/dist/cli/artifacts/classification.mjs +385 -0
- package/dist/cli/artifacts/classification.mjs.map +1 -0
- package/dist/cli/artifacts/self-stage.d.mts +21 -0
- package/dist/cli/artifacts/self-stage.d.mts.map +1 -0
- package/dist/cli/artifacts/self-stage.mjs +167 -0
- package/dist/cli/artifacts/self-stage.mjs.map +1 -0
- package/dist/cli/bootstrap/detect-mode.d.mts +45 -0
- package/dist/cli/bootstrap/detect-mode.d.mts.map +1 -0
- package/dist/cli/bootstrap/detect-mode.mjs +185 -0
- package/dist/cli/bootstrap/detect-mode.mjs.map +1 -0
- package/dist/cli/bootstrap/product-context-sidecar.d.mts +94 -0
- package/dist/cli/bootstrap/product-context-sidecar.d.mts.map +1 -0
- package/dist/cli/bootstrap/product-context-sidecar.mjs +367 -0
- package/dist/cli/bootstrap/product-context-sidecar.mjs.map +1 -0
- package/dist/cli/bootstrap/recon.d.mts +52 -0
- package/dist/cli/bootstrap/recon.d.mts.map +1 -0
- package/dist/cli/bootstrap/recon.mjs +248 -0
- package/dist/cli/bootstrap/recon.mjs.map +1 -0
- package/dist/cli/budget/budget.d.mts +8 -0
- package/dist/cli/budget/budget.d.mts.map +1 -0
- package/dist/cli/budget/budget.mjs +36 -0
- package/dist/cli/budget/budget.mjs.map +1 -0
- package/dist/cli/cli-wrappers/active.d.mts +2 -0
- package/dist/cli/cli-wrappers/active.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/active.mjs +8 -0
- package/dist/cli/cli-wrappers/active.mjs.map +1 -0
- package/dist/cli/cli-wrappers/audit.d.mts +2 -0
- package/dist/cli/cli-wrappers/audit.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/audit.mjs +8 -0
- package/dist/cli/cli-wrappers/audit.mjs.map +1 -0
- package/dist/cli/cli-wrappers/author-skill.d.mts +2 -0
- package/dist/cli/cli-wrappers/author-skill.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/author-skill.mjs +8 -0
- package/dist/cli/cli-wrappers/author-skill.mjs.map +1 -0
- package/dist/cli/cli-wrappers/bootstrap.d.mts +2 -0
- package/dist/cli/cli-wrappers/bootstrap.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/bootstrap.mjs +8 -0
- package/dist/cli/cli-wrappers/bootstrap.mjs.map +1 -0
- package/dist/cli/cli-wrappers/check-version.d.mts +2 -0
- package/dist/cli/cli-wrappers/check-version.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/check-version.mjs +8 -0
- package/dist/cli/cli-wrappers/check-version.mjs.map +1 -0
- package/dist/cli/cli-wrappers/check.d.mts +2 -0
- package/dist/cli/cli-wrappers/check.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/check.mjs +8 -0
- package/dist/cli/cli-wrappers/check.mjs.map +1 -0
- package/dist/cli/cli-wrappers/commit.d.mts +2 -0
- package/dist/cli/cli-wrappers/commit.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/commit.mjs +8 -0
- package/dist/cli/cli-wrappers/commit.mjs.map +1 -0
- package/dist/cli/cli-wrappers/config.d.mts +2 -0
- package/dist/cli/cli-wrappers/config.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/config.mjs +8 -0
- package/dist/cli/cli-wrappers/config.mjs.map +1 -0
- package/dist/cli/cli-wrappers/consistency.d.mts +2 -0
- package/dist/cli/cli-wrappers/consistency.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/consistency.mjs +8 -0
- package/dist/cli/cli-wrappers/consistency.mjs.map +1 -0
- package/dist/cli/cli-wrappers/constitution.d.mts +2 -0
- package/dist/cli/cli-wrappers/constitution.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/constitution.mjs +8 -0
- package/dist/cli/cli-wrappers/constitution.mjs.map +1 -0
- package/dist/cli/cli-wrappers/coverage-check.d.mts +2 -0
- package/dist/cli/cli-wrappers/coverage-check.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/coverage-check.mjs +8 -0
- package/dist/cli/cli-wrappers/coverage-check.mjs.map +1 -0
- package/dist/cli/cli-wrappers/create-docs.d.mts +2 -0
- package/dist/cli/cli-wrappers/create-docs.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/create-docs.mjs +8 -0
- package/dist/cli/cli-wrappers/create-docs.mjs.map +1 -0
- package/dist/cli/cli-wrappers/design-lint.d.mts +2 -0
- package/dist/cli/cli-wrappers/design-lint.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/design-lint.mjs +8 -0
- package/dist/cli/cli-wrappers/design-lint.mjs.map +1 -0
- package/dist/cli/cli-wrappers/design-scan.d.mts +2 -0
- package/dist/cli/cli-wrappers/design-scan.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/design-scan.mjs +8 -0
- package/dist/cli/cli-wrappers/design-scan.mjs.map +1 -0
- package/dist/cli/cli-wrappers/design-template.d.mts +2 -0
- package/dist/cli/cli-wrappers/design-template.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/design-template.mjs +8 -0
- package/dist/cli/cli-wrappers/design-template.mjs.map +1 -0
- package/dist/cli/cli-wrappers/design-validate.d.mts +2 -0
- package/dist/cli/cli-wrappers/design-validate.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/design-validate.mjs +8 -0
- package/dist/cli/cli-wrappers/design-validate.mjs.map +1 -0
- package/dist/cli/cli-wrappers/detect-project.d.mts +2 -0
- package/dist/cli/cli-wrappers/detect-project.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/detect-project.mjs +8 -0
- package/dist/cli/cli-wrappers/detect-project.mjs.map +1 -0
- package/dist/cli/cli-wrappers/docs-audit.d.mts +2 -0
- package/dist/cli/cli-wrappers/docs-audit.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/docs-audit.mjs +8 -0
- package/dist/cli/cli-wrappers/docs-audit.mjs.map +1 -0
- package/dist/cli/cli-wrappers/edit-check.d.mts +2 -0
- package/dist/cli/cli-wrappers/edit-check.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/edit-check.mjs +8 -0
- package/dist/cli/cli-wrappers/edit-check.mjs.map +1 -0
- package/dist/cli/cli-wrappers/effects.d.mts +2 -0
- package/dist/cli/cli-wrappers/effects.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/effects.mjs +8 -0
- package/dist/cli/cli-wrappers/effects.mjs.map +1 -0
- package/dist/cli/cli-wrappers/event.d.mts +2 -0
- package/dist/cli/cli-wrappers/event.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/event.mjs +8 -0
- package/dist/cli/cli-wrappers/event.mjs.map +1 -0
- package/dist/cli/cli-wrappers/features-audit.d.mts +2 -0
- package/dist/cli/cli-wrappers/features-audit.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/features-audit.mjs +8 -0
- package/dist/cli/cli-wrappers/features-audit.mjs.map +1 -0
- package/dist/cli/cli-wrappers/gate.d.mts +2 -0
- package/dist/cli/cli-wrappers/gate.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/gate.mjs +8 -0
- package/dist/cli/cli-wrappers/gate.mjs.map +1 -0
- package/dist/cli/cli-wrappers/health-check.d.mts +2 -0
- package/dist/cli/cli-wrappers/health-check.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/health-check.mjs +8 -0
- package/dist/cli/cli-wrappers/health-check.mjs.map +1 -0
- package/dist/cli/cli-wrappers/host-detect.d.mts +2 -0
- package/dist/cli/cli-wrappers/host-detect.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/host-detect.mjs +14 -0
- package/dist/cli/cli-wrappers/host-detect.mjs.map +1 -0
- package/dist/cli/cli-wrappers/init-state.d.mts +2 -0
- package/dist/cli/cli-wrappers/init-state.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/init-state.mjs +8 -0
- package/dist/cli/cli-wrappers/init-state.mjs.map +1 -0
- package/dist/cli/cli-wrappers/init.d.mts +2 -0
- package/dist/cli/cli-wrappers/init.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/init.mjs +8 -0
- package/dist/cli/cli-wrappers/init.mjs.map +1 -0
- package/dist/cli/cli-wrappers/lock.d.mts +2 -0
- package/dist/cli/cli-wrappers/lock.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/lock.mjs +8 -0
- package/dist/cli/cli-wrappers/lock.mjs.map +1 -0
- package/dist/cli/cli-wrappers/migrate-pr-reviews.d.mts +2 -0
- package/dist/cli/cli-wrappers/migrate-pr-reviews.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/migrate-pr-reviews.mjs +8 -0
- package/dist/cli/cli-wrappers/migrate-pr-reviews.mjs.map +1 -0
- package/dist/cli/cli-wrappers/personas.d.mts +2 -0
- package/dist/cli/cli-wrappers/personas.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/personas.mjs +8 -0
- package/dist/cli/cli-wrappers/personas.mjs.map +1 -0
- package/dist/cli/cli-wrappers/plan-approval.d.mts +2 -0
- package/dist/cli/cli-wrappers/plan-approval.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/plan-approval.mjs +8 -0
- package/dist/cli/cli-wrappers/plan-approval.mjs.map +1 -0
- package/dist/cli/cli-wrappers/pr-review-audit-fixer.d.mts +2 -0
- package/dist/cli/cli-wrappers/pr-review-audit-fixer.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/pr-review-audit-fixer.mjs +8 -0
- package/dist/cli/cli-wrappers/pr-review-audit-fixer.mjs.map +1 -0
- package/dist/cli/cli-wrappers/pr-review.d.mts +2 -0
- package/dist/cli/cli-wrappers/pr-review.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/pr-review.mjs +8 -0
- package/dist/cli/cli-wrappers/pr-review.mjs.map +1 -0
- package/dist/cli/cli-wrappers/precompact-hook.d.mts +2 -0
- package/dist/cli/cli-wrappers/precompact-hook.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/precompact-hook.mjs +8 -0
- package/dist/cli/cli-wrappers/precompact-hook.mjs.map +1 -0
- package/dist/cli/cli-wrappers/product-context.d.mts +2 -0
- package/dist/cli/cli-wrappers/product-context.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/product-context.mjs +8 -0
- package/dist/cli/cli-wrappers/product-context.mjs.map +1 -0
- package/dist/cli/cli-wrappers/profile.d.mts +2 -0
- package/dist/cli/cli-wrappers/profile.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/profile.mjs +8 -0
- package/dist/cli/cli-wrappers/profile.mjs.map +1 -0
- package/dist/cli/cli-wrappers/risk-check.d.mts +2 -0
- package/dist/cli/cli-wrappers/risk-check.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/risk-check.mjs +8 -0
- package/dist/cli/cli-wrappers/risk-check.mjs.map +1 -0
- package/dist/cli/cli-wrappers/roadmap.d.mts +2 -0
- package/dist/cli/cli-wrappers/roadmap.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/roadmap.mjs +8 -0
- package/dist/cli/cli-wrappers/roadmap.mjs.map +1 -0
- package/dist/cli/cli-wrappers/route.d.mts +2 -0
- package/dist/cli/cli-wrappers/route.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/route.mjs +8 -0
- package/dist/cli/cli-wrappers/route.mjs.map +1 -0
- package/dist/cli/cli-wrappers/seed.d.mts +2 -0
- package/dist/cli/cli-wrappers/seed.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/seed.mjs +8 -0
- package/dist/cli/cli-wrappers/seed.mjs.map +1 -0
- package/dist/cli/cli-wrappers/standards.d.mts +2 -0
- package/dist/cli/cli-wrappers/standards.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/standards.mjs +8 -0
- package/dist/cli/cli-wrappers/standards.mjs.map +1 -0
- package/dist/cli/cli-wrappers/state-artifacts.d.mts +2 -0
- package/dist/cli/cli-wrappers/state-artifacts.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/state-artifacts.mjs +8 -0
- package/dist/cli/cli-wrappers/state-artifacts.mjs.map +1 -0
- package/dist/cli/cli-wrappers/state-update.d.mts +2 -0
- package/dist/cli/cli-wrappers/state-update.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/state-update.mjs +8 -0
- package/dist/cli/cli-wrappers/state-update.mjs.map +1 -0
- package/dist/cli/cli-wrappers/state.d.mts +2 -0
- package/dist/cli/cli-wrappers/state.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/state.mjs +8 -0
- package/dist/cli/cli-wrappers/state.mjs.map +1 -0
- package/dist/cli/cli-wrappers/statusline.d.mts +2 -0
- package/dist/cli/cli-wrappers/statusline.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/statusline.mjs +8 -0
- package/dist/cli/cli-wrappers/statusline.mjs.map +1 -0
- package/dist/cli/cli-wrappers/task.d.mts +2 -0
- package/dist/cli/cli-wrappers/task.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/task.mjs +8 -0
- package/dist/cli/cli-wrappers/task.mjs.map +1 -0
- package/dist/cli/cli-wrappers/taste-infer.d.mts +2 -0
- package/dist/cli/cli-wrappers/taste-infer.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/taste-infer.mjs +8 -0
- package/dist/cli/cli-wrappers/taste-infer.mjs.map +1 -0
- package/dist/cli/cli-wrappers/team.d.mts +2 -0
- package/dist/cli/cli-wrappers/team.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/team.mjs +8 -0
- package/dist/cli/cli-wrappers/team.mjs.map +1 -0
- package/dist/cli/cli-wrappers/template.d.mts +2 -0
- package/dist/cli/cli-wrappers/template.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/template.mjs +8 -0
- package/dist/cli/cli-wrappers/template.mjs.map +1 -0
- package/dist/cli/cli-wrappers/terminal.d.mts +2 -0
- package/dist/cli/cli-wrappers/terminal.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/terminal.mjs +8 -0
- package/dist/cli/cli-wrappers/terminal.mjs.map +1 -0
- package/dist/cli/cli-wrappers/token-budget.d.mts +2 -0
- package/dist/cli/cli-wrappers/token-budget.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/token-budget.mjs +8 -0
- package/dist/cli/cli-wrappers/token-budget.mjs.map +1 -0
- package/dist/cli/cli-wrappers/tokens.d.mts +2 -0
- package/dist/cli/cli-wrappers/tokens.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/tokens.mjs +8 -0
- package/dist/cli/cli-wrappers/tokens.mjs.map +1 -0
- package/dist/cli/cli-wrappers/toolchain-detect.d.mts +2 -0
- package/dist/cli/cli-wrappers/toolchain-detect.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/toolchain-detect.mjs +8 -0
- package/dist/cli/cli-wrappers/toolchain-detect.mjs.map +1 -0
- package/dist/cli/cli-wrappers/uninstall.d.mts +2 -0
- package/dist/cli/cli-wrappers/uninstall.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/uninstall.mjs +8 -0
- package/dist/cli/cli-wrappers/uninstall.mjs.map +1 -0
- package/dist/cli/cli-wrappers/validate-evidence.d.mts +2 -0
- package/dist/cli/cli-wrappers/validate-evidence.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/validate-evidence.mjs +10 -0
- package/dist/cli/cli-wrappers/validate-evidence.mjs.map +1 -0
- package/dist/cli/cli-wrappers/variant-gallery.d.mts +2 -0
- package/dist/cli/cli-wrappers/variant-gallery.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/variant-gallery.mjs +8 -0
- package/dist/cli/cli-wrappers/variant-gallery.mjs.map +1 -0
- package/dist/cli/cli-wrappers/variant-pick.d.mts +2 -0
- package/dist/cli/cli-wrappers/variant-pick.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/variant-pick.mjs +8 -0
- package/dist/cli/cli-wrappers/variant-pick.mjs.map +1 -0
- package/dist/cli/cli-wrappers/variant-pool.d.mts +2 -0
- package/dist/cli/cli-wrappers/variant-pool.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/variant-pool.mjs +8 -0
- package/dist/cli/cli-wrappers/variant-pool.mjs.map +1 -0
- package/dist/cli/cli-wrappers/wave.d.mts +2 -0
- package/dist/cli/cli-wrappers/wave.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/wave.mjs +8 -0
- package/dist/cli/cli-wrappers/wave.mjs.map +1 -0
- package/dist/cli/cli-wrappers/wfrun.d.mts +2 -0
- package/dist/cli/cli-wrappers/wfrun.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/wfrun.mjs +8 -0
- package/dist/cli/cli-wrappers/wfrun.mjs.map +1 -0
- package/dist/cli/cli-wrappers/workflow.d.mts +2 -0
- package/dist/cli/cli-wrappers/workflow.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/workflow.mjs +8 -0
- package/dist/cli/cli-wrappers/workflow.mjs.map +1 -0
- package/dist/cli/cli-wrappers/worktree-install.d.mts +2 -0
- package/dist/cli/cli-wrappers/worktree-install.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/worktree-install.mjs +8 -0
- package/dist/cli/cli-wrappers/worktree-install.mjs.map +1 -0
- package/dist/cli/cli-wrappers/worktree.d.mts +2 -0
- package/dist/cli/cli-wrappers/worktree.d.mts.map +1 -0
- package/dist/cli/cli-wrappers/worktree.mjs +13 -0
- package/dist/cli/cli-wrappers/worktree.mjs.map +1 -0
- package/dist/cli/commands/active.d.mts +2 -0
- package/dist/cli/commands/active.d.mts.map +1 -0
- package/dist/cli/commands/active.mjs +84 -0
- package/dist/cli/commands/active.mjs.map +1 -0
- package/dist/cli/commands/audit.d.mts +11 -0
- package/dist/cli/commands/audit.d.mts.map +1 -0
- package/dist/cli/commands/audit.mjs +398 -0
- package/dist/cli/commands/audit.mjs.map +1 -0
- package/dist/cli/commands/author-skill.d.mts +2 -0
- package/dist/cli/commands/author-skill.d.mts.map +1 -0
- package/dist/cli/commands/author-skill.mjs +66 -0
- package/dist/cli/commands/author-skill.mjs.map +1 -0
- package/dist/cli/commands/bootstrap.d.mts +6 -0
- package/dist/cli/commands/bootstrap.d.mts.map +1 -0
- package/dist/cli/commands/bootstrap.mjs +298 -0
- package/dist/cli/commands/bootstrap.mjs.map +1 -0
- package/dist/cli/commands/check-version.d.mts +5 -0
- package/dist/cli/commands/check-version.d.mts.map +1 -0
- package/dist/cli/commands/check-version.mjs +110 -0
- package/dist/cli/commands/check-version.mjs.map +1 -0
- package/dist/cli/commands/check.d.mts +34 -0
- package/dist/cli/commands/check.d.mts.map +1 -0
- package/dist/cli/commands/check.mjs +227 -0
- package/dist/cli/commands/check.mjs.map +1 -0
- package/dist/cli/commands/commit.d.mts +2 -0
- package/dist/cli/commands/commit.d.mts.map +1 -0
- package/dist/cli/commands/commit.mjs +79 -0
- package/dist/cli/commands/commit.mjs.map +1 -0
- package/dist/cli/commands/consistency.d.mts +2 -0
- package/dist/cli/commands/consistency.d.mts.map +1 -0
- package/dist/cli/commands/consistency.mjs +143 -0
- package/dist/cli/commands/consistency.mjs.map +1 -0
- package/dist/cli/commands/constitution.d.mts +2 -0
- package/dist/cli/commands/constitution.d.mts.map +1 -0
- package/dist/cli/commands/constitution.mjs +155 -0
- package/dist/cli/commands/constitution.mjs.map +1 -0
- package/dist/cli/commands/coverage-check.d.mts +2 -0
- package/dist/cli/commands/coverage-check.d.mts.map +1 -0
- package/dist/cli/commands/coverage-check.mjs +238 -0
- package/dist/cli/commands/coverage-check.mjs.map +1 -0
- package/dist/cli/commands/create-docs.d.mts +6 -0
- package/dist/cli/commands/create-docs.d.mts.map +1 -0
- package/dist/cli/commands/create-docs.mjs +401 -0
- package/dist/cli/commands/create-docs.mjs.map +1 -0
- package/dist/cli/commands/design-lint.d.mts +2 -0
- package/dist/cli/commands/design-lint.d.mts.map +1 -0
- package/dist/cli/commands/design-lint.mjs +202 -0
- package/dist/cli/commands/design-lint.mjs.map +1 -0
- package/dist/cli/commands/design-scan.d.mts +2 -0
- package/dist/cli/commands/design-scan.d.mts.map +1 -0
- package/dist/cli/commands/design-scan.mjs +105 -0
- package/dist/cli/commands/design-scan.mjs.map +1 -0
- package/dist/cli/commands/design-template.d.mts +10 -0
- package/dist/cli/commands/design-template.d.mts.map +1 -0
- package/dist/cli/commands/design-template.mjs +173 -0
- package/dist/cli/commands/design-template.mjs.map +1 -0
- package/dist/cli/commands/design-validate.d.mts +6 -0
- package/dist/cli/commands/design-validate.d.mts.map +1 -0
- package/dist/cli/commands/design-validate.mjs +69 -0
- package/dist/cli/commands/design-validate.mjs.map +1 -0
- package/dist/cli/commands/detect-project.d.mts +2 -0
- package/dist/cli/commands/detect-project.d.mts.map +1 -0
- package/dist/cli/commands/detect-project.mjs +233 -0
- package/dist/cli/commands/detect-project.mjs.map +1 -0
- package/dist/cli/commands/docs-audit.d.mts +2 -0
- package/dist/cli/commands/docs-audit.d.mts.map +1 -0
- package/dist/cli/commands/docs-audit.mjs +153 -0
- package/dist/cli/commands/docs-audit.mjs.map +1 -0
- package/dist/cli/commands/edit-check.d.mts +2 -0
- package/dist/cli/commands/edit-check.d.mts.map +1 -0
- package/dist/cli/commands/edit-check.mjs +111 -0
- package/dist/cli/commands/edit-check.mjs.map +1 -0
- package/dist/cli/commands/effects.d.mts +2 -0
- package/dist/cli/commands/effects.d.mts.map +1 -0
- package/dist/cli/commands/effects.mjs +385 -0
- package/dist/cli/commands/effects.mjs.map +1 -0
- package/dist/cli/commands/event.d.mts +2 -0
- package/dist/cli/commands/event.d.mts.map +1 -0
- package/dist/cli/commands/event.mjs +235 -0
- package/dist/cli/commands/event.mjs.map +1 -0
- package/dist/cli/commands/features-audit.d.mts +2 -0
- package/dist/cli/commands/features-audit.d.mts.map +1 -0
- package/dist/cli/commands/features-audit.mjs +134 -0
- package/dist/cli/commands/features-audit.mjs.map +1 -0
- package/dist/cli/commands/gate.d.mts +2 -0
- package/dist/cli/commands/gate.d.mts.map +1 -0
- package/dist/cli/commands/gate.mjs +255 -0
- package/dist/cli/commands/gate.mjs.map +1 -0
- package/dist/cli/commands/health-check.d.mts +2 -0
- package/dist/cli/commands/health-check.d.mts.map +1 -0
- package/dist/cli/commands/health-check.mjs +161 -0
- package/dist/cli/commands/health-check.mjs.map +1 -0
- package/dist/cli/commands/host-detect.d.mts +3 -0
- package/dist/cli/commands/host-detect.d.mts.map +1 -0
- package/dist/cli/commands/host-detect.mjs +74 -0
- package/dist/cli/commands/host-detect.mjs.map +1 -0
- package/dist/cli/commands/init-state.d.mts +2 -0
- package/dist/cli/commands/init-state.d.mts.map +1 -0
- package/dist/cli/commands/init-state.mjs +91 -0
- package/dist/cli/commands/init-state.mjs.map +1 -0
- package/dist/cli/commands/init.d.mts +100 -0
- package/dist/cli/commands/init.d.mts.map +1 -0
- package/dist/cli/commands/init.mjs +1417 -0
- package/dist/cli/commands/init.mjs.map +1 -0
- package/dist/cli/commands/lock.d.mts +2 -0
- package/dist/cli/commands/lock.d.mts.map +1 -0
- package/dist/cli/commands/lock.mjs +148 -0
- package/dist/cli/commands/lock.mjs.map +1 -0
- package/dist/cli/commands/migrate-pr-reviews.d.mts +22 -0
- package/dist/cli/commands/migrate-pr-reviews.d.mts.map +1 -0
- package/dist/cli/commands/migrate-pr-reviews.mjs +191 -0
- package/dist/cli/commands/migrate-pr-reviews.mjs.map +1 -0
- package/dist/cli/commands/personas.d.mts +6 -0
- package/dist/cli/commands/personas.d.mts.map +1 -0
- package/dist/cli/commands/personas.mjs +306 -0
- package/dist/cli/commands/personas.mjs.map +1 -0
- package/dist/cli/commands/plan-approval.d.mts +2 -0
- package/dist/cli/commands/plan-approval.d.mts.map +1 -0
- package/dist/cli/commands/plan-approval.mjs +228 -0
- package/dist/cli/commands/plan-approval.mjs.map +1 -0
- package/dist/cli/commands/pr-review-audit-fixer.d.mts +96 -0
- package/dist/cli/commands/pr-review-audit-fixer.d.mts.map +1 -0
- package/dist/cli/commands/pr-review-audit-fixer.mjs +847 -0
- package/dist/cli/commands/pr-review-audit-fixer.mjs.map +1 -0
- package/dist/cli/commands/pr-review.d.mts +65 -0
- package/dist/cli/commands/pr-review.d.mts.map +1 -0
- package/dist/cli/commands/pr-review.mjs +1035 -0
- package/dist/cli/commands/pr-review.mjs.map +1 -0
- package/dist/cli/commands/precompact-hook.d.mts +56 -0
- package/dist/cli/commands/precompact-hook.d.mts.map +1 -0
- package/dist/cli/commands/precompact-hook.mjs +168 -0
- package/dist/cli/commands/precompact-hook.mjs.map +1 -0
- package/dist/cli/commands/product-context.d.mts +6 -0
- package/dist/cli/commands/product-context.d.mts.map +1 -0
- package/dist/cli/commands/product-context.mjs +65 -0
- package/dist/cli/commands/product-context.mjs.map +1 -0
- package/dist/cli/commands/profile.d.mts +2 -0
- package/dist/cli/commands/profile.d.mts.map +1 -0
- package/dist/cli/commands/profile.mjs +118 -0
- package/dist/cli/commands/profile.mjs.map +1 -0
- package/dist/cli/commands/risk-check.d.mts +2 -0
- package/dist/cli/commands/risk-check.d.mts.map +1 -0
- package/dist/cli/commands/risk-check.mjs +75 -0
- package/dist/cli/commands/risk-check.mjs.map +1 -0
- package/dist/cli/commands/roadmap.d.mts +2 -0
- package/dist/cli/commands/roadmap.d.mts.map +1 -0
- package/dist/cli/commands/roadmap.mjs +814 -0
- package/dist/cli/commands/roadmap.mjs.map +1 -0
- package/dist/cli/commands/route.d.mts +12 -0
- package/dist/cli/commands/route.d.mts.map +1 -0
- package/dist/cli/commands/route.mjs +523 -0
- package/dist/cli/commands/route.mjs.map +1 -0
- package/dist/cli/commands/seed.d.mts +2 -0
- package/dist/cli/commands/seed.d.mts.map +1 -0
- package/dist/cli/commands/seed.mjs +469 -0
- package/dist/cli/commands/seed.mjs.map +1 -0
- package/dist/cli/commands/standards.d.mts +5 -0
- package/dist/cli/commands/standards.d.mts.map +1 -0
- package/dist/cli/commands/standards.mjs +262 -0
- package/dist/cli/commands/standards.mjs.map +1 -0
- package/dist/cli/commands/state.d.mts +6 -0
- package/dist/cli/commands/state.d.mts.map +1 -0
- package/dist/cli/commands/state.mjs +231 -0
- package/dist/cli/commands/state.mjs.map +1 -0
- package/dist/cli/commands/statusline.d.mts +2 -0
- package/dist/cli/commands/statusline.d.mts.map +1 -0
- package/dist/cli/commands/statusline.mjs +224 -0
- package/dist/cli/commands/statusline.mjs.map +1 -0
- package/dist/cli/commands/task.d.mts +2 -0
- package/dist/cli/commands/task.d.mts.map +1 -0
- package/dist/cli/commands/task.mjs +1322 -0
- package/dist/cli/commands/task.mjs.map +1 -0
- package/dist/cli/commands/taste-infer.d.mts +49 -0
- package/dist/cli/commands/taste-infer.d.mts.map +1 -0
- package/dist/cli/commands/taste-infer.mjs +466 -0
- package/dist/cli/commands/taste-infer.mjs.map +1 -0
- package/dist/cli/commands/team.d.mts +5 -0
- package/dist/cli/commands/team.d.mts.map +1 -0
- package/dist/cli/commands/team.mjs +113 -0
- package/dist/cli/commands/team.mjs.map +1 -0
- package/dist/cli/commands/template.d.mts +2 -0
- package/dist/cli/commands/template.d.mts.map +1 -0
- package/dist/cli/commands/template.mjs +41 -0
- package/dist/cli/commands/template.mjs.map +1 -0
- package/dist/cli/commands/terminal.d.mts +8 -0
- package/dist/cli/commands/terminal.d.mts.map +1 -0
- package/dist/cli/commands/terminal.mjs +128 -0
- package/dist/cli/commands/terminal.mjs.map +1 -0
- package/dist/cli/commands/token-budget.d.mts +2 -0
- package/dist/cli/commands/token-budget.d.mts.map +1 -0
- package/dist/cli/commands/token-budget.mjs +122 -0
- package/dist/cli/commands/token-budget.mjs.map +1 -0
- package/dist/cli/commands/tokens.d.mts +5 -0
- package/dist/cli/commands/tokens.d.mts.map +1 -0
- package/dist/cli/commands/tokens.mjs +444 -0
- package/dist/cli/commands/tokens.mjs.map +1 -0
- package/dist/cli/commands/toolchain-detect.d.mts +19 -0
- package/dist/cli/commands/toolchain-detect.d.mts.map +1 -0
- package/dist/cli/commands/toolchain-detect.mjs +394 -0
- package/dist/cli/commands/toolchain-detect.mjs.map +1 -0
- package/dist/cli/commands/uninstall.d.mts +14 -0
- package/dist/cli/commands/uninstall.d.mts.map +1 -0
- package/dist/cli/commands/uninstall.mjs +445 -0
- package/dist/cli/commands/uninstall.mjs.map +1 -0
- package/dist/cli/commands/validate-evidence.d.mts +105 -0
- package/dist/cli/commands/validate-evidence.d.mts.map +1 -0
- package/dist/cli/commands/validate-evidence.mjs +515 -0
- package/dist/cli/commands/validate-evidence.mjs.map +1 -0
- package/dist/cli/commands/variant-gallery.d.mts +2 -0
- package/dist/cli/commands/variant-gallery.d.mts.map +1 -0
- package/dist/cli/commands/variant-gallery.mjs +152 -0
- package/dist/cli/commands/variant-gallery.mjs.map +1 -0
- package/dist/cli/commands/variant-pick.d.mts +2 -0
- package/dist/cli/commands/variant-pick.d.mts.map +1 -0
- package/dist/cli/commands/variant-pick.mjs +95 -0
- package/dist/cli/commands/variant-pick.mjs.map +1 -0
- package/dist/cli/commands/variant-pool.d.mts +2 -0
- package/dist/cli/commands/variant-pool.d.mts.map +1 -0
- package/dist/cli/commands/variant-pool.mjs +81 -0
- package/dist/cli/commands/variant-pool.mjs.map +1 -0
- package/dist/cli/commands/wave.d.mts +2 -0
- package/dist/cli/commands/wave.d.mts.map +1 -0
- package/dist/cli/commands/wave.mjs +185 -0
- package/dist/cli/commands/wave.mjs.map +1 -0
- package/dist/cli/commands/wfrun.d.mts +2 -0
- package/dist/cli/commands/wfrun.d.mts.map +1 -0
- package/dist/cli/commands/wfrun.mjs +58 -0
- package/dist/cli/commands/wfrun.mjs.map +1 -0
- package/dist/cli/commands/workflow.d.mts +2 -0
- package/dist/cli/commands/workflow.d.mts.map +1 -0
- package/dist/cli/commands/workflow.mjs +270 -0
- package/dist/cli/commands/workflow.mjs.map +1 -0
- package/dist/cli/commands/worktree-install.d.mts +10 -0
- package/dist/cli/commands/worktree-install.d.mts.map +1 -0
- package/dist/cli/commands/worktree-install.mjs +552 -0
- package/dist/cli/commands/worktree-install.mjs.map +1 -0
- package/dist/cli/commands/worktree.d.mts +3 -0
- package/dist/cli/commands/worktree.d.mts.map +1 -0
- package/dist/cli/commands/worktree.mjs +481 -0
- package/dist/cli/commands/worktree.mjs.map +1 -0
- package/dist/cli/config/coverage-ac.d.mts +38 -0
- package/dist/cli/config/coverage-ac.d.mts.map +1 -0
- package/dist/cli/config/coverage-ac.mjs +181 -0
- package/dist/cli/config/coverage-ac.mjs.map +1 -0
- package/dist/cli/config/gitignore-drift.d.mts +26 -0
- package/dist/cli/config/gitignore-drift.d.mts.map +1 -0
- package/dist/cli/config/gitignore-drift.mjs +95 -0
- package/dist/cli/config/gitignore-drift.mjs.map +1 -0
- package/dist/cli/config/guard.d.mts +26 -0
- package/dist/cli/config/guard.d.mts.map +1 -0
- package/dist/cli/config/guard.mjs +38 -0
- package/dist/cli/config/guard.mjs.map +1 -0
- package/dist/cli/config/load.d.mts +31 -0
- package/dist/cli/config/load.d.mts.map +1 -0
- package/dist/cli/config/load.mjs +140 -0
- package/dist/cli/config/load.mjs.map +1 -0
- package/dist/cli/config/post-merge-sweep.d.mts +85 -0
- package/dist/cli/config/post-merge-sweep.d.mts.map +1 -0
- package/dist/cli/config/post-merge-sweep.mjs +276 -0
- package/dist/cli/config/post-merge-sweep.mjs.map +1 -0
- package/dist/cli/config/schema-migrate.d.mts +49 -0
- package/dist/cli/config/schema-migrate.d.mts.map +1 -0
- package/dist/cli/config/schema-migrate.mjs +199 -0
- package/dist/cli/config/schema-migrate.mjs.map +1 -0
- package/dist/cli/config/share-policy.d.mts +162 -0
- package/dist/cli/config/share-policy.d.mts.map +1 -0
- package/dist/cli/config/share-policy.mjs +297 -0
- package/dist/cli/config/share-policy.mjs.map +1 -0
- package/dist/cli/config/upgrade-gitignore.d.mts +53 -0
- package/dist/cli/config/upgrade-gitignore.d.mts.map +1 -0
- package/dist/cli/config/upgrade-gitignore.mjs +320 -0
- package/dist/cli/config/upgrade-gitignore.mjs.map +1 -0
- package/dist/cli/config/upgrade-layout.d.mts +75 -0
- package/dist/cli/config/upgrade-layout.d.mts.map +1 -0
- package/dist/cli/config/upgrade-layout.mjs +324 -0
- package/dist/cli/config/upgrade-layout.mjs.map +1 -0
- package/dist/cli/consistency/check.d.mts +21 -0
- package/dist/cli/consistency/check.d.mts.map +1 -0
- package/dist/cli/consistency/check.mjs +185 -0
- package/dist/cli/consistency/check.mjs.map +1 -0
- package/dist/cli/consistency/parse-plan-approval.d.mts +13 -0
- package/dist/cli/consistency/parse-plan-approval.d.mts.map +1 -0
- package/dist/cli/consistency/parse-plan-approval.mjs +49 -0
- package/dist/cli/consistency/parse-plan-approval.mjs.map +1 -0
- package/dist/cli/consistency/parse-plan.d.mts +34 -0
- package/dist/cli/consistency/parse-plan.d.mts.map +1 -0
- package/dist/cli/consistency/parse-plan.mjs +60 -0
- package/dist/cli/consistency/parse-plan.mjs.map +1 -0
- package/dist/cli/consistency/parse-progress.d.mts +25 -0
- package/dist/cli/consistency/parse-progress.d.mts.map +1 -0
- package/dist/cli/consistency/parse-progress.mjs +97 -0
- package/dist/cli/consistency/parse-progress.mjs.map +1 -0
- package/dist/cli/consistency/parse-qa.d.mts +13 -0
- package/dist/cli/consistency/parse-qa.d.mts.map +1 -0
- package/dist/cli/consistency/parse-qa.mjs +90 -0
- package/dist/cli/consistency/parse-qa.mjs.map +1 -0
- package/dist/cli/consistency/parse-review.d.mts +13 -0
- package/dist/cli/consistency/parse-review.d.mts.map +1 -0
- package/dist/cli/consistency/parse-review.mjs +102 -0
- package/dist/cli/consistency/parse-review.mjs.map +1 -0
- package/dist/cli/consistency/parse-spec.d.mts +15 -0
- package/dist/cli/consistency/parse-spec.d.mts.map +1 -0
- package/dist/cli/consistency/parse-spec.mjs +96 -0
- package/dist/cli/consistency/parse-spec.mjs.map +1 -0
- package/dist/cli/consistency/registry.d.mts +27 -0
- package/dist/cli/consistency/registry.d.mts.map +1 -0
- package/dist/cli/consistency/registry.mjs +79 -0
- package/dist/cli/consistency/registry.mjs.map +1 -0
- package/dist/cli/consistency/rules/index.d.mts +2 -0
- package/dist/cli/consistency/rules/index.d.mts.map +1 -0
- package/dist/cli/consistency/rules/index.mjs +18 -0
- package/dist/cli/consistency/rules/index.mjs.map +1 -0
- package/dist/cli/consistency/rules/r1-ac-coverage.d.mts +19 -0
- package/dist/cli/consistency/rules/r1-ac-coverage.d.mts.map +1 -0
- package/dist/cli/consistency/rules/r1-ac-coverage.mjs +66 -0
- package/dist/cli/consistency/rules/r1-ac-coverage.mjs.map +1 -0
- package/dist/cli/consistency/rules/r2-subtask-progress.d.mts +19 -0
- package/dist/cli/consistency/rules/r2-subtask-progress.d.mts.map +1 -0
- package/dist/cli/consistency/rules/r2-subtask-progress.mjs +52 -0
- package/dist/cli/consistency/rules/r2-subtask-progress.mjs.map +1 -0
- package/dist/cli/consistency/rules/r3-dimension-claims.d.mts +19 -0
- package/dist/cli/consistency/rules/r3-dimension-claims.d.mts.map +1 -0
- package/dist/cli/consistency/rules/r3-dimension-claims.mjs +79 -0
- package/dist/cli/consistency/rules/r3-dimension-claims.mjs.map +1 -0
- package/dist/cli/consistency/rules/r4-finding-propagation.d.mts +20 -0
- package/dist/cli/consistency/rules/r4-finding-propagation.d.mts.map +1 -0
- package/dist/cli/consistency/rules/r4-finding-propagation.mjs +66 -0
- package/dist/cli/consistency/rules/r4-finding-propagation.mjs.map +1 -0
- package/dist/cli/consistency/rules/r5-verdict-consistency.d.mts +19 -0
- package/dist/cli/consistency/rules/r5-verdict-consistency.d.mts.map +1 -0
- package/dist/cli/consistency/rules/r5-verdict-consistency.mjs +70 -0
- package/dist/cli/consistency/rules/r5-verdict-consistency.mjs.map +1 -0
- package/dist/cli/consistency/rules/r6-plan-approval.d.mts +33 -0
- package/dist/cli/consistency/rules/r6-plan-approval.d.mts.map +1 -0
- package/dist/cli/consistency/rules/r6-plan-approval.mjs +107 -0
- package/dist/cli/consistency/rules/r6-plan-approval.mjs.map +1 -0
- package/dist/cli/consistency/rules/r7-persona-alignment.d.mts +20 -0
- package/dist/cli/consistency/rules/r7-persona-alignment.d.mts.map +1 -0
- package/dist/cli/consistency/rules/r7-persona-alignment.mjs +216 -0
- package/dist/cli/consistency/rules/r7-persona-alignment.mjs.map +1 -0
- package/dist/cli/constitution/coverage.d.mts +26 -0
- package/dist/cli/constitution/coverage.d.mts.map +1 -0
- package/dist/cli/constitution/coverage.mjs +105 -0
- package/dist/cli/constitution/coverage.mjs.map +1 -0
- package/dist/cli/constitution/match.d.mts +31 -0
- package/dist/cli/constitution/match.d.mts.map +1 -0
- package/dist/cli/constitution/match.mjs +163 -0
- package/dist/cli/constitution/match.mjs.map +1 -0
- package/dist/cli/constitution/parse.d.mts +40 -0
- package/dist/cli/constitution/parse.d.mts.map +1 -0
- package/dist/cli/constitution/parse.mjs +351 -0
- package/dist/cli/constitution/parse.mjs.map +1 -0
- package/dist/cli/coordination/agent-identity.d.mts +22 -0
- package/dist/cli/coordination/agent-identity.d.mts.map +1 -0
- package/dist/cli/coordination/agent-identity.mjs +94 -0
- package/dist/cli/coordination/agent-identity.mjs.map +1 -0
- package/dist/cli/coordination/event-log.d.mts +37 -0
- package/dist/cli/coordination/event-log.d.mts.map +1 -0
- package/dist/cli/coordination/event-log.mjs +88 -0
- package/dist/cli/coordination/event-log.mjs.map +1 -0
- package/dist/cli/coordination/store.d.mts +58 -0
- package/dist/cli/coordination/store.d.mts.map +1 -0
- package/dist/cli/coordination/store.mjs +129 -0
- package/dist/cli/coordination/store.mjs.map +1 -0
- package/dist/cli/coordination/team-status.d.mts +84 -0
- package/dist/cli/coordination/team-status.d.mts.map +1 -0
- package/dist/cli/coordination/team-status.mjs +270 -0
- package/dist/cli/coordination/team-status.mjs.map +1 -0
- package/dist/cli/coverage-check/acceptance-criteria.d.mts +2 -0
- package/dist/cli/coverage-check/acceptance-criteria.d.mts.map +1 -0
- package/dist/cli/coverage-check/acceptance-criteria.mjs +15 -0
- package/dist/cli/coverage-check/acceptance-criteria.mjs.map +1 -0
- package/dist/cli/design/extract-repo.d.mts +69 -0
- package/dist/cli/design/extract-repo.d.mts.map +1 -0
- package/dist/cli/design/extract-repo.mjs +464 -0
- package/dist/cli/design/extract-repo.mjs.map +1 -0
- package/dist/cli/design/extract-url.d.mts +48 -0
- package/dist/cli/design/extract-url.d.mts.map +1 -0
- package/dist/cli/design/extract-url.mjs +435 -0
- package/dist/cli/design/extract-url.mjs.map +1 -0
- package/dist/cli/design/extract.d.mts +83 -0
- package/dist/cli/design/extract.d.mts.map +1 -0
- package/dist/cli/design/extract.mjs +297 -0
- package/dist/cli/design/extract.mjs.map +1 -0
- package/dist/cli/design/frontmatter-schema.d.mts +179 -0
- package/dist/cli/design/frontmatter-schema.d.mts.map +1 -0
- package/dist/cli/design/frontmatter-schema.mjs +153 -0
- package/dist/cli/design/frontmatter-schema.mjs.map +1 -0
- package/dist/cli/design/lint.d.mts +54 -0
- package/dist/cli/design/lint.d.mts.map +1 -0
- package/dist/cli/design/lint.mjs +203 -0
- package/dist/cli/design/lint.mjs.map +1 -0
- package/dist/cli/design/product-context.d.mts +83 -0
- package/dist/cli/design/product-context.d.mts.map +1 -0
- package/dist/cli/design/product-context.mjs +160 -0
- package/dist/cli/design/product-context.mjs.map +1 -0
- package/dist/cli/design/scan.d.mts +47 -0
- package/dist/cli/design/scan.d.mts.map +1 -0
- package/dist/cli/design/scan.mjs +299 -0
- package/dist/cli/design/scan.mjs.map +1 -0
- package/dist/cli/design/schema.d.mts +99 -0
- package/dist/cli/design/schema.d.mts.map +1 -0
- package/dist/cli/design/schema.mjs +77 -0
- package/dist/cli/design/schema.mjs.map +1 -0
- package/dist/cli/design/synthesize.d.mts +229 -0
- package/dist/cli/design/synthesize.d.mts.map +1 -0
- package/dist/cli/design/synthesize.mjs +823 -0
- package/dist/cli/design/synthesize.mjs.map +1 -0
- package/dist/cli/design/template-extract.d.mts +37 -0
- package/dist/cli/design/template-extract.d.mts.map +1 -0
- package/dist/cli/design/template-extract.mjs +454 -0
- package/dist/cli/design/template-extract.mjs.map +1 -0
- package/dist/cli/design/template.d.mts +99 -0
- package/dist/cli/design/template.d.mts.map +1 -0
- package/dist/cli/design/template.mjs +324 -0
- package/dist/cli/design/template.mjs.map +1 -0
- package/dist/cli/design/validate.d.mts +26 -0
- package/dist/cli/design/validate.d.mts.map +1 -0
- package/dist/cli/design/validate.mjs +94 -0
- package/dist/cli/design/validate.mjs.map +1 -0
- package/dist/cli/design/weighted-map.d.mts +37 -0
- package/dist/cli/design/weighted-map.d.mts.map +1 -0
- package/dist/cli/design/weighted-map.mjs +43 -0
- package/dist/cli/design/weighted-map.mjs.map +1 -0
- package/dist/cli/dispatch.d.mts +11 -0
- package/dist/cli/dispatch.d.mts.map +1 -0
- package/dist/cli/dispatch.mjs +263 -0
- package/dist/cli/dispatch.mjs.map +1 -0
- package/dist/cli/docs/features-reader.d.mts +120 -0
- package/dist/cli/docs/features-reader.d.mts.map +1 -0
- package/dist/cli/docs/features-reader.mjs +329 -0
- package/dist/cli/docs/features-reader.mjs.map +1 -0
- package/dist/cli/docs/nav-renderer.d.mts +51 -0
- package/dist/cli/docs/nav-renderer.d.mts.map +1 -0
- package/dist/cli/docs/nav-renderer.mjs +165 -0
- package/dist/cli/docs/nav-renderer.mjs.map +1 -0
- package/dist/cli/docs/structure-planner.d.mts +117 -0
- package/dist/cli/docs/structure-planner.d.mts.map +1 -0
- package/dist/cli/docs/structure-planner.mjs +295 -0
- package/dist/cli/docs/structure-planner.mjs.map +1 -0
- package/dist/cli/docs-audit/audit.d.mts +24 -0
- package/dist/cli/docs-audit/audit.d.mts.map +1 -0
- package/dist/cli/docs-audit/audit.mjs +158 -0
- package/dist/cli/docs-audit/audit.mjs.map +1 -0
- package/dist/cli/docs-audit/grep-claims.d.mts +15 -0
- package/dist/cli/docs-audit/grep-claims.d.mts.map +1 -0
- package/dist/cli/docs-audit/grep-claims.mjs +196 -0
- package/dist/cli/docs-audit/grep-claims.mjs.map +1 -0
- package/dist/cli/docs-audit/index.d.mts +4 -0
- package/dist/cli/docs-audit/index.d.mts.map +1 -0
- package/dist/cli/docs-audit/index.mjs +8 -0
- package/dist/cli/docs-audit/index.mjs.map +1 -0
- package/dist/cli/docs-audit/policy.d.mts +57 -0
- package/dist/cli/docs-audit/policy.d.mts.map +1 -0
- package/dist/cli/docs-audit/policy.mjs +180 -0
- package/dist/cli/docs-audit/policy.mjs.map +1 -0
- package/dist/cli/features/registry-audit.d.mts +56 -0
- package/dist/cli/features/registry-audit.d.mts.map +1 -0
- package/dist/cli/features/registry-audit.mjs +264 -0
- package/dist/cli/features/registry-audit.mjs.map +1 -0
- package/dist/cli/gate/cache.d.mts +31 -0
- package/dist/cli/gate/cache.d.mts.map +1 -0
- package/dist/cli/gate/cache.mjs +130 -0
- package/dist/cli/gate/cache.mjs.map +1 -0
- package/dist/cli/gate/context.d.mts +16 -0
- package/dist/cli/gate/context.d.mts.map +1 -0
- package/dist/cli/gate/context.mjs +85 -0
- package/dist/cli/gate/context.mjs.map +1 -0
- package/dist/cli/gate/gates/all-subtasks-complete.d.mts +21 -0
- package/dist/cli/gate/gates/all-subtasks-complete.d.mts.map +1 -0
- package/dist/cli/gate/gates/all-subtasks-complete.mjs +59 -0
- package/dist/cli/gate/gates/all-subtasks-complete.mjs.map +1 -0
- package/dist/cli/gate/gates/consistency-check.d.mts +27 -0
- package/dist/cli/gate/gates/consistency-check.d.mts.map +1 -0
- package/dist/cli/gate/gates/consistency-check.mjs +57 -0
- package/dist/cli/gate/gates/consistency-check.mjs.map +1 -0
- package/dist/cli/gate/gates/constitution-coverage.d.mts +40 -0
- package/dist/cli/gate/gates/constitution-coverage.d.mts.map +1 -0
- package/dist/cli/gate/gates/constitution-coverage.mjs +61 -0
- package/dist/cli/gate/gates/constitution-coverage.mjs.map +1 -0
- package/dist/cli/gate/gates/constitution-read.d.mts +13 -0
- package/dist/cli/gate/gates/constitution-read.d.mts.map +1 -0
- package/dist/cli/gate/gates/constitution-read.mjs +35 -0
- package/dist/cli/gate/gates/constitution-read.mjs.map +1 -0
- package/dist/cli/gate/gates/gitignore-in-sync.d.mts +21 -0
- package/dist/cli/gate/gates/gitignore-in-sync.d.mts.map +1 -0
- package/dist/cli/gate/gates/gitignore-in-sync.mjs +39 -0
- package/dist/cli/gate/gates/gitignore-in-sync.mjs.map +1 -0
- package/dist/cli/gate/gates/index.d.mts +2 -0
- package/dist/cli/gate/gates/index.d.mts.map +1 -0
- package/dist/cli/gate/gates/index.mjs +22 -0
- package/dist/cli/gate/gates/index.mjs.map +1 -0
- package/dist/cli/gate/gates/plan-exists.d.mts +13 -0
- package/dist/cli/gate/gates/plan-exists.d.mts.map +1 -0
- package/dist/cli/gate/gates/plan-exists.mjs +54 -0
- package/dist/cli/gate/gates/plan-exists.mjs.map +1 -0
- package/dist/cli/gate/gates/r-persona-alignment.d.mts +45 -0
- package/dist/cli/gate/gates/r-persona-alignment.d.mts.map +1 -0
- package/dist/cli/gate/gates/r-persona-alignment.mjs +322 -0
- package/dist/cli/gate/gates/r-persona-alignment.mjs.map +1 -0
- package/dist/cli/gate/gates/review-clean.d.mts +21 -0
- package/dist/cli/gate/gates/review-clean.d.mts.map +1 -0
- package/dist/cli/gate/gates/review-clean.mjs +71 -0
- package/dist/cli/gate/gates/review-clean.mjs.map +1 -0
- package/dist/cli/gate/gates/tdd-iron-law.d.mts +25 -0
- package/dist/cli/gate/gates/tdd-iron-law.d.mts.map +1 -0
- package/dist/cli/gate/gates/tdd-iron-law.mjs +233 -0
- package/dist/cli/gate/gates/tdd-iron-law.mjs.map +1 -0
- package/dist/cli/gate/gates/verify-approved.d.mts +21 -0
- package/dist/cli/gate/gates/verify-approved.d.mts.map +1 -0
- package/dist/cli/gate/gates/verify-approved.mjs +61 -0
- package/dist/cli/gate/gates/verify-approved.mjs.map +1 -0
- package/dist/cli/gate/registry.d.mts +35 -0
- package/dist/cli/gate/registry.d.mts.map +1 -0
- package/dist/cli/gate/registry.mjs +97 -0
- package/dist/cli/gate/registry.mjs.map +1 -0
- package/dist/cli/git/identity.d.mts +19 -0
- package/dist/cli/git/identity.d.mts.map +1 -0
- package/dist/cli/git/identity.mjs +53 -0
- package/dist/cli/git/identity.mjs.map +1 -0
- package/dist/cli/git/remote.d.mts +38 -0
- package/dist/cli/git/remote.d.mts.map +1 -0
- package/dist/cli/git/remote.mjs +87 -0
- package/dist/cli/git/remote.mjs.map +1 -0
- package/dist/cli/git/worktree-detect.d.mts +19 -0
- package/dist/cli/git/worktree-detect.d.mts.map +1 -0
- package/dist/cli/git/worktree-detect.mjs +52 -0
- package/dist/cli/git/worktree-detect.mjs.map +1 -0
- package/dist/cli/graph/depends-on.d.mts +21 -0
- package/dist/cli/graph/depends-on.d.mts.map +1 -0
- package/dist/cli/graph/depends-on.mjs +101 -0
- package/dist/cli/graph/depends-on.mjs.map +1 -0
- package/dist/cli/graph/task-ref.d.mts +23 -0
- package/dist/cli/graph/task-ref.d.mts.map +1 -0
- package/dist/cli/graph/task-ref.mjs +42 -0
- package/dist/cli/graph/task-ref.mjs.map +1 -0
- package/dist/cli/help.d.mts +2 -0
- package/dist/cli/help.d.mts.map +1 -0
- package/dist/cli/help.mjs +132 -0
- package/dist/cli/help.mjs.map +1 -0
- package/dist/cli/host/detect.d.mts +57 -0
- package/dist/cli/host/detect.d.mts.map +1 -0
- package/dist/cli/host/detect.mjs +213 -0
- package/dist/cli/host/detect.mjs.map +1 -0
- package/dist/cli/host/resolve.d.mts +17 -0
- package/dist/cli/host/resolve.d.mts.map +1 -0
- package/dist/cli/host/resolve.mjs +50 -0
- package/dist/cli/host/resolve.mjs.map +1 -0
- package/dist/cli/install/archetype.d.mts +18 -0
- package/dist/cli/install/archetype.d.mts.map +1 -0
- package/dist/cli/install/archetype.mjs +150 -0
- package/dist/cli/install/archetype.mjs.map +1 -0
- package/dist/cli/install/atomic-text.d.mts +2 -0
- package/dist/cli/install/atomic-text.d.mts.map +1 -0
- package/dist/cli/install/atomic-text.mjs +9 -0
- package/dist/cli/install/atomic-text.mjs.map +1 -0
- package/dist/cli/install/claude-hooks.d.mts +44 -0
- package/dist/cli/install/claude-hooks.d.mts.map +1 -0
- package/dist/cli/install/claude-hooks.mjs +89 -0
- package/dist/cli/install/claude-hooks.mjs.map +1 -0
- package/dist/cli/install/cli-to-install-root.d.mts +18 -0
- package/dist/cli/install/cli-to-install-root.d.mts.map +1 -0
- package/dist/cli/install/cli-to-install-root.mjs +47 -0
- package/dist/cli/install/cli-to-install-root.mjs.map +1 -0
- package/dist/cli/install/detached-spawn.d.mts +128 -0
- package/dist/cli/install/detached-spawn.d.mts.map +1 -0
- package/dist/cli/install/detached-spawn.mjs +245 -0
- package/dist/cli/install/detached-spawn.mjs.map +1 -0
- package/dist/cli/install/ecosystem-commands.d.mts +42 -0
- package/dist/cli/install/ecosystem-commands.d.mts.map +1 -0
- package/dist/cli/install/ecosystem-commands.mjs +157 -0
- package/dist/cli/install/ecosystem-commands.mjs.map +1 -0
- package/dist/cli/install/home-stub.d.mts +19 -0
- package/dist/cli/install/home-stub.d.mts.map +1 -0
- package/dist/cli/install/home-stub.mjs +94 -0
- package/dist/cli/install/home-stub.mjs.map +1 -0
- package/dist/cli/install/install-kernel.d.mts +43 -0
- package/dist/cli/install/install-kernel.d.mts.map +1 -0
- package/dist/cli/install/install-kernel.mjs +172 -0
- package/dist/cli/install/install-kernel.mjs.map +1 -0
- package/dist/cli/install/install-semaphore.d.mts +41 -0
- package/dist/cli/install/install-semaphore.d.mts.map +1 -0
- package/dist/cli/install/install-semaphore.mjs +191 -0
- package/dist/cli/install/install-semaphore.mjs.map +1 -0
- package/dist/cli/install/manifest-scanner.d.mts +39 -0
- package/dist/cli/install/manifest-scanner.d.mts.map +1 -0
- package/dist/cli/install/manifest-scanner.mjs +241 -0
- package/dist/cli/install/manifest-scanner.mjs.map +1 -0
- package/dist/cli/install/manifest.d.mts +85 -0
- package/dist/cli/install/manifest.d.mts.map +1 -0
- package/dist/cli/install/manifest.mjs +161 -0
- package/dist/cli/install/manifest.mjs.map +1 -0
- package/dist/cli/install/pipeline.d.mts +104 -0
- package/dist/cli/install/pipeline.d.mts.map +1 -0
- package/dist/cli/install/pipeline.mjs +266 -0
- package/dist/cli/install/pipeline.mjs.map +1 -0
- package/dist/cli/install/runtime-detect.d.mts +77 -0
- package/dist/cli/install/runtime-detect.d.mts.map +1 -0
- package/dist/cli/install/runtime-detect.mjs +193 -0
- package/dist/cli/install/runtime-detect.mjs.map +1 -0
- package/dist/cli/install/setting-class.d.mts +73 -0
- package/dist/cli/install/setting-class.d.mts.map +1 -0
- package/dist/cli/install/setting-class.mjs +175 -0
- package/dist/cli/install/setting-class.mjs.map +1 -0
- package/dist/cli/install/transforms/_shared.d.mts +183 -0
- package/dist/cli/install/transforms/_shared.d.mts.map +1 -0
- package/dist/cli/install/transforms/_shared.mjs +328 -0
- package/dist/cli/install/transforms/_shared.mjs.map +1 -0
- package/dist/cli/install/transforms/antigravity.d.mts +2 -0
- package/dist/cli/install/transforms/antigravity.d.mts.map +1 -0
- package/dist/cli/install/transforms/antigravity.mjs +14 -0
- package/dist/cli/install/transforms/antigravity.mjs.map +1 -0
- package/dist/cli/install/transforms/augment.d.mts +2 -0
- package/dist/cli/install/transforms/augment.d.mts.map +1 -0
- package/dist/cli/install/transforms/augment.mjs +13 -0
- package/dist/cli/install/transforms/augment.mjs.map +1 -0
- package/dist/cli/install/transforms/claude.d.mts +6 -0
- package/dist/cli/install/transforms/claude.d.mts.map +1 -0
- package/dist/cli/install/transforms/claude.mjs +40 -0
- package/dist/cli/install/transforms/claude.mjs.map +1 -0
- package/dist/cli/install/transforms/cline.d.mts +2 -0
- package/dist/cli/install/transforms/cline.d.mts.map +1 -0
- package/dist/cli/install/transforms/cline.mjs +14 -0
- package/dist/cli/install/transforms/cline.mjs.map +1 -0
- package/dist/cli/install/transforms/codebuddy.d.mts +2 -0
- package/dist/cli/install/transforms/codebuddy.d.mts.map +1 -0
- package/dist/cli/install/transforms/codebuddy.mjs +14 -0
- package/dist/cli/install/transforms/codebuddy.mjs.map +1 -0
- package/dist/cli/install/transforms/codex.d.mts +6 -0
- package/dist/cli/install/transforms/codex.d.mts.map +1 -0
- package/dist/cli/install/transforms/codex.mjs +48 -0
- package/dist/cli/install/transforms/codex.mjs.map +1 -0
- package/dist/cli/install/transforms/copilot.d.mts +2 -0
- package/dist/cli/install/transforms/copilot.d.mts.map +1 -0
- package/dist/cli/install/transforms/copilot.mjs +18 -0
- package/dist/cli/install/transforms/copilot.mjs.map +1 -0
- package/dist/cli/install/transforms/cursor.d.mts +6 -0
- package/dist/cli/install/transforms/cursor.d.mts.map +1 -0
- package/dist/cli/install/transforms/cursor.mjs +34 -0
- package/dist/cli/install/transforms/cursor.mjs.map +1 -0
- package/dist/cli/install/transforms/gemini.d.mts +14 -0
- package/dist/cli/install/transforms/gemini.d.mts.map +1 -0
- package/dist/cli/install/transforms/gemini.mjs +54 -0
- package/dist/cli/install/transforms/gemini.mjs.map +1 -0
- package/dist/cli/install/transforms/kilo.d.mts +6 -0
- package/dist/cli/install/transforms/kilo.d.mts.map +1 -0
- package/dist/cli/install/transforms/kilo.mjs +29 -0
- package/dist/cli/install/transforms/kilo.mjs.map +1 -0
- package/dist/cli/install/transforms/opencode.d.mts +16 -0
- package/dist/cli/install/transforms/opencode.d.mts.map +1 -0
- package/dist/cli/install/transforms/opencode.mjs +59 -0
- package/dist/cli/install/transforms/opencode.mjs.map +1 -0
- package/dist/cli/install/transforms/qwen.d.mts +2 -0
- package/dist/cli/install/transforms/qwen.d.mts.map +1 -0
- package/dist/cli/install/transforms/qwen.mjs +13 -0
- package/dist/cli/install/transforms/qwen.mjs.map +1 -0
- package/dist/cli/install/transforms/trae.d.mts +2 -0
- package/dist/cli/install/transforms/trae.d.mts.map +1 -0
- package/dist/cli/install/transforms/trae.mjs +13 -0
- package/dist/cli/install/transforms/trae.mjs.map +1 -0
- package/dist/cli/install/transforms/windsurf.d.mts +6 -0
- package/dist/cli/install/transforms/windsurf.d.mts.map +1 -0
- package/dist/cli/install/transforms/windsurf.mjs +34 -0
- package/dist/cli/install/transforms/windsurf.mjs.map +1 -0
- package/dist/cli/install/update-chips.d.mts +47 -0
- package/dist/cli/install/update-chips.d.mts.map +1 -0
- package/dist/cli/install/update-chips.mjs +94 -0
- package/dist/cli/install/update-chips.mjs.map +1 -0
- package/dist/cli/install/version-header.d.mts +103 -0
- package/dist/cli/install/version-header.d.mts.map +1 -0
- package/dist/cli/install/version-header.mjs +254 -0
- package/dist/cli/install/version-header.mjs.map +1 -0
- package/dist/cli/lock/pid.d.mts +12 -0
- package/dist/cli/lock/pid.d.mts.map +1 -0
- package/dist/cli/lock/pid.mjs +26 -0
- package/dist/cli/lock/pid.mjs.map +1 -0
- package/dist/cli/output-style/ansi.d.mts +48 -0
- package/dist/cli/output-style/ansi.d.mts.map +1 -0
- package/dist/cli/output-style/ansi.mjs +89 -0
- package/dist/cli/output-style/ansi.mjs.map +1 -0
- package/dist/cli/output-style/helpers.d.mts +87 -0
- package/dist/cli/output-style/helpers.d.mts.map +1 -0
- package/dist/cli/output-style/helpers.mjs +178 -0
- package/dist/cli/output-style/helpers.mjs.map +1 -0
- package/dist/cli/output-style/index.d.mts +3 -0
- package/dist/cli/output-style/index.d.mts.map +1 -0
- package/dist/cli/output-style/index.mjs +9 -0
- package/dist/cli/output-style/index.mjs.map +1 -0
- package/dist/cli/personas/role-scan.d.mts +42 -0
- package/dist/cli/personas/role-scan.d.mts.map +1 -0
- package/dist/cli/personas/role-scan.mjs +313 -0
- package/dist/cli/personas/role-scan.mjs.map +1 -0
- package/dist/cli/personas/sidecar.d.mts +253 -0
- package/dist/cli/personas/sidecar.d.mts.map +1 -0
- package/dist/cli/personas/sidecar.mjs +452 -0
- package/dist/cli/personas/sidecar.mjs.map +1 -0
- package/dist/cli/personas/tier-rubric.d.mts +120 -0
- package/dist/cli/personas/tier-rubric.d.mts.map +1 -0
- package/dist/cli/personas/tier-rubric.mjs +172 -0
- package/dist/cli/personas/tier-rubric.mjs.map +1 -0
- package/dist/cli/profile/parse.d.mts +52 -0
- package/dist/cli/profile/parse.d.mts.map +1 -0
- package/dist/cli/profile/parse.mjs +174 -0
- package/dist/cli/profile/parse.mjs.map +1 -0
- package/dist/cli/profile/resolve.d.mts +21 -0
- package/dist/cli/profile/resolve.d.mts.map +1 -0
- package/dist/cli/profile/resolve.mjs +154 -0
- package/dist/cli/profile/resolve.mjs.map +1 -0
- package/dist/cli/profile/schema.d.mts +46 -0
- package/dist/cli/profile/schema.d.mts.map +1 -0
- package/dist/cli/profile/schema.mjs +44 -0
- package/dist/cli/profile/schema.mjs.map +1 -0
- package/dist/cli/risk/globs.d.mts +23 -0
- package/dist/cli/risk/globs.d.mts.map +1 -0
- package/dist/cli/risk/globs.mjs +73 -0
- package/dist/cli/risk/globs.mjs.map +1 -0
- package/dist/cli/risk/postcondition.d.mts +46 -0
- package/dist/cli/risk/postcondition.d.mts.map +1 -0
- package/dist/cli/risk/postcondition.mjs +67 -0
- package/dist/cli/risk/postcondition.mjs.map +1 -0
- package/dist/cli/risk/secrets.d.mts +6 -0
- package/dist/cli/risk/secrets.d.mts.map +1 -0
- package/dist/cli/risk/secrets.mjs +39 -0
- package/dist/cli/risk/secrets.mjs.map +1 -0
- package/dist/cli/roadmap/io.d.mts +30 -0
- package/dist/cli/roadmap/io.d.mts.map +1 -0
- package/dist/cli/roadmap/io.mjs +189 -0
- package/dist/cli/roadmap/io.mjs.map +1 -0
- package/dist/cli/roadmap/lifecycle.d.mts +53 -0
- package/dist/cli/roadmap/lifecycle.d.mts.map +1 -0
- package/dist/cli/roadmap/lifecycle.mjs +105 -0
- package/dist/cli/roadmap/lifecycle.mjs.map +1 -0
- package/dist/cli/roadmap/paths.d.mts +9 -0
- package/dist/cli/roadmap/paths.d.mts.map +1 -0
- package/dist/cli/roadmap/paths.mjs +60 -0
- package/dist/cli/roadmap/paths.mjs.map +1 -0
- package/dist/cli/roadmap/phases-io.d.mts +68 -0
- package/dist/cli/roadmap/phases-io.d.mts.map +1 -0
- package/dist/cli/roadmap/phases-io.mjs +220 -0
- package/dist/cli/roadmap/phases-io.mjs.map +1 -0
- package/dist/cli/roadmap/render.d.mts +13 -0
- package/dist/cli/roadmap/render.d.mts.map +1 -0
- package/dist/cli/roadmap/render.mjs +63 -0
- package/dist/cli/roadmap/render.mjs.map +1 -0
- package/dist/cli/roadmap/rollup.d.mts +38 -0
- package/dist/cli/roadmap/rollup.d.mts.map +1 -0
- package/dist/cli/roadmap/rollup.mjs +93 -0
- package/dist/cli/roadmap/rollup.mjs.map +1 -0
- package/dist/cli/roadmap/scope-lookup.d.mts +31 -0
- package/dist/cli/roadmap/scope-lookup.d.mts.map +1 -0
- package/dist/cli/roadmap/scope-lookup.mjs +64 -0
- package/dist/cli/roadmap/scope-lookup.mjs.map +1 -0
- package/dist/cli/roadmap/sync.d.mts +37 -0
- package/dist/cli/roadmap/sync.d.mts.map +1 -0
- package/dist/cli/roadmap/sync.mjs +114 -0
- package/dist/cli/roadmap/sync.mjs.map +1 -0
- package/dist/cli/route/envelope.d.mts +78 -0
- package/dist/cli/route/envelope.d.mts.map +1 -0
- package/dist/cli/route/envelope.mjs +297 -0
- package/dist/cli/route/envelope.mjs.map +1 -0
- package/dist/cli/route/skill-discover.d.mts +47 -0
- package/dist/cli/route/skill-discover.d.mts.map +1 -0
- package/dist/cli/route/skill-discover.mjs +312 -0
- package/dist/cli/route/skill-discover.mjs.map +1 -0
- package/dist/cli/seeds/io.d.mts +51 -0
- package/dist/cli/seeds/io.d.mts.map +1 -0
- package/dist/cli/seeds/io.mjs +142 -0
- package/dist/cli/seeds/io.mjs.map +1 -0
- package/dist/cli/seeds/render.d.mts +11 -0
- package/dist/cli/seeds/render.d.mts.map +1 -0
- package/dist/cli/seeds/render.mjs +159 -0
- package/dist/cli/seeds/render.mjs.map +1 -0
- package/dist/cli/seeds/validate.d.mts +82 -0
- package/dist/cli/seeds/validate.d.mts.map +1 -0
- package/dist/cli/seeds/validate.mjs +177 -0
- package/dist/cli/seeds/validate.mjs.map +1 -0
- package/dist/cli/skill-author/contract.d.mts +78 -0
- package/dist/cli/skill-author/contract.d.mts.map +1 -0
- package/dist/cli/skill-author/contract.mjs +171 -0
- package/dist/cli/skill-author/contract.mjs.map +1 -0
- package/dist/cli/skill-author/scaffold.d.mts +21 -0
- package/dist/cli/skill-author/scaffold.d.mts.map +1 -0
- package/dist/cli/skill-author/scaffold.mjs +71 -0
- package/dist/cli/skill-author/scaffold.mjs.map +1 -0
- package/dist/cli/skill-author/skill-template.d.mts +19 -0
- package/dist/cli/skill-author/skill-template.d.mts.map +1 -0
- package/dist/cli/skill-author/skill-template.mjs +91 -0
- package/dist/cli/skill-author/skill-template.mjs.map +1 -0
- package/dist/cli/skill-author/test-template.d.mts +19 -0
- package/dist/cli/skill-author/test-template.d.mts.map +1 -0
- package/dist/cli/skill-author/test-template.mjs +56 -0
- package/dist/cli/skill-author/test-template.mjs.map +1 -0
- package/dist/cli/skill-author/validate.d.mts +16 -0
- package/dist/cli/skill-author/validate.d.mts.map +1 -0
- package/dist/cli/skill-author/validate.mjs +114 -0
- package/dist/cli/skill-author/validate.mjs.map +1 -0
- package/dist/cli/task/build-progress-sync.d.mts +44 -0
- package/dist/cli/task/build-progress-sync.d.mts.map +1 -0
- package/dist/cli/task/build-progress-sync.mjs +194 -0
- package/dist/cli/task/build-progress-sync.mjs.map +1 -0
- package/dist/cli/task/execution-mode.d.mts +19 -0
- package/dist/cli/task/execution-mode.d.mts.map +1 -0
- package/dist/cli/task/execution-mode.mjs +30 -0
- package/dist/cli/task/execution-mode.mjs.map +1 -0
- package/dist/cli/task/format.d.mts +8 -0
- package/dist/cli/task/format.d.mts.map +1 -0
- package/dist/cli/task/format.mjs +30 -0
- package/dist/cli/task/format.mjs.map +1 -0
- package/dist/cli/task/ids.d.mts +22 -0
- package/dist/cli/task/ids.d.mts.map +1 -0
- package/dist/cli/task/ids.mjs +55 -0
- package/dist/cli/task/ids.mjs.map +1 -0
- package/dist/cli/task/index-md.d.mts +6 -0
- package/dist/cli/task/index-md.d.mts.map +1 -0
- package/dist/cli/task/index-md.mjs +85 -0
- package/dist/cli/task/index-md.mjs.map +1 -0
- package/dist/cli/task/outputs-guard.d.mts +75 -0
- package/dist/cli/task/outputs-guard.d.mts.map +1 -0
- package/dist/cli/task/outputs-guard.mjs +166 -0
- package/dist/cli/task/outputs-guard.mjs.map +1 -0
- package/dist/cli/task/worktree-cleanup.d.mts +8 -0
- package/dist/cli/task/worktree-cleanup.d.mts.map +1 -0
- package/dist/cli/task/worktree-cleanup.mjs +128 -0
- package/dist/cli/task/worktree-cleanup.mjs.map +1 -0
- package/dist/cli/team/team.d.mts +87 -0
- package/dist/cli/team/team.d.mts.map +1 -0
- package/dist/cli/team/team.mjs +360 -0
- package/dist/cli/team/team.mjs.map +1 -0
- package/dist/cli/terminal/socket-client.d.mts +13 -0
- package/dist/cli/terminal/socket-client.d.mts.map +1 -0
- package/dist/cli/terminal/socket-client.mjs +132 -0
- package/dist/cli/terminal/socket-client.mjs.map +1 -0
- package/dist/cli/util/agent-runtime.d.mts +21 -0
- package/dist/cli/util/agent-runtime.d.mts.map +1 -0
- package/dist/cli/util/agent-runtime.mjs +30 -0
- package/dist/cli/util/agent-runtime.mjs.map +1 -0
- package/dist/cli/util/args.d.mts +11 -0
- package/dist/cli/util/args.d.mts.map +1 -0
- package/dist/cli/util/args.mjs +28 -0
- package/dist/cli/util/args.mjs.map +1 -0
- package/dist/cli/util/atomic-write.d.mts +32 -0
- package/dist/cli/util/atomic-write.d.mts.map +1 -0
- package/dist/cli/util/atomic-write.mjs +142 -0
- package/dist/cli/util/atomic-write.mjs.map +1 -0
- package/dist/cli/util/banner.d.mts +9 -0
- package/dist/cli/util/banner.d.mts.map +1 -0
- package/dist/cli/util/banner.mjs +55 -0
- package/dist/cli/util/banner.mjs.map +1 -0
- package/dist/cli/util/bin-path.d.mts +8 -0
- package/dist/cli/util/bin-path.d.mts.map +1 -0
- package/dist/cli/util/bin-path.mjs +64 -0
- package/dist/cli/util/bin-path.mjs.map +1 -0
- package/dist/cli/util/common-flags.d.mts +18 -0
- package/dist/cli/util/common-flags.d.mts.map +1 -0
- package/dist/cli/util/common-flags.mjs +36 -0
- package/dist/cli/util/common-flags.mjs.map +1 -0
- package/dist/cli/util/copy.d.mts +3 -0
- package/dist/cli/util/copy.d.mts.map +1 -0
- package/dist/cli/util/copy.mjs +81 -0
- package/dist/cli/util/copy.mjs.map +1 -0
- package/dist/cli/util/duration.d.mts +29 -0
- package/dist/cli/util/duration.d.mts.map +1 -0
- package/dist/cli/util/duration.mjs +64 -0
- package/dist/cli/util/duration.mjs.map +1 -0
- package/dist/cli/util/fs-lock.d.mts +15 -0
- package/dist/cli/util/fs-lock.d.mts.map +1 -0
- package/dist/cli/util/fs-lock.mjs +112 -0
- package/dist/cli/util/fs-lock.mjs.map +1 -0
- package/dist/cli/util/init-hints.d.mts +29 -0
- package/dist/cli/util/init-hints.d.mts.map +1 -0
- package/dist/cli/util/init-hints.mjs +89 -0
- package/dist/cli/util/init-hints.mjs.map +1 -0
- package/dist/cli/util/io.d.mts +18 -0
- package/dist/cli/util/io.d.mts.map +1 -0
- package/dist/cli/util/io.mjs +42 -0
- package/dist/cli/util/io.mjs.map +1 -0
- package/dist/cli/util/project.d.mts +12 -0
- package/dist/cli/util/project.d.mts.map +1 -0
- package/dist/cli/util/project.mjs +46 -0
- package/dist/cli/util/project.mjs.map +1 -0
- package/dist/cli/util/result.d.mts +113 -0
- package/dist/cli/util/result.d.mts.map +1 -0
- package/dist/cli/util/result.mjs +107 -0
- package/dist/cli/util/result.mjs.map +1 -0
- package/dist/cli/util/skill-installs.d.mts +14 -0
- package/dist/cli/util/skill-installs.d.mts.map +1 -0
- package/dist/cli/util/skill-installs.mjs +35 -0
- package/dist/cli/util/skill-installs.mjs.map +1 -0
- package/dist/cli/variant/gallery.d.mts +37 -0
- package/dist/cli/variant/gallery.d.mts.map +1 -0
- package/dist/cli/variant/gallery.mjs +159 -0
- package/dist/cli/variant/gallery.mjs.map +1 -0
- package/dist/cli/variant/pick.d.mts +48 -0
- package/dist/cli/variant/pick.d.mts.map +1 -0
- package/dist/cli/variant/pick.mjs +100 -0
- package/dist/cli/variant/pick.mjs.map +1 -0
- package/dist/cli/variant/pool.d.mts +52 -0
- package/dist/cli/variant/pool.d.mts.map +1 -0
- package/dist/cli/variant/pool.mjs +158 -0
- package/dist/cli/variant/pool.mjs.map +1 -0
- package/dist/cli/wfrun/dag.d.mts +28 -0
- package/dist/cli/wfrun/dag.d.mts.map +1 -0
- package/dist/cli/wfrun/dag.mjs +115 -0
- package/dist/cli/wfrun/dag.mjs.map +1 -0
- package/dist/cli/wfrun/interpolate.d.mts +48 -0
- package/dist/cli/wfrun/interpolate.d.mts.map +1 -0
- package/dist/cli/wfrun/interpolate.mjs +112 -0
- package/dist/cli/wfrun/interpolate.mjs.map +1 -0
- package/dist/cli/wfrun/parse.d.mts +70 -0
- package/dist/cli/wfrun/parse.d.mts.map +1 -0
- package/dist/cli/wfrun/parse.mjs +109 -0
- package/dist/cli/wfrun/parse.mjs.map +1 -0
- package/dist/cli/wfrun/run.d.mts +40 -0
- package/dist/cli/wfrun/run.d.mts.map +1 -0
- package/dist/cli/wfrun/run.mjs +477 -0
- package/dist/cli/wfrun/run.mjs.map +1 -0
- package/dist/cli/wfrun/schema.d.mts +69 -0
- package/dist/cli/wfrun/schema.d.mts.map +1 -0
- package/dist/cli/wfrun/schema.mjs +98 -0
- package/dist/cli/wfrun/schema.mjs.map +1 -0
- package/dist/constitution.d.ts +31 -0
- package/dist/constitution.d.ts.map +1 -0
- package/dist/constitution.js +79 -0
- package/dist/constitution.js.map +1 -0
- package/dist/cost/index.d.ts +4 -0
- package/dist/cost/index.d.ts.map +1 -0
- package/dist/cost/index.js +3 -0
- package/dist/cost/index.js.map +1 -0
- package/dist/cost/pricing.d.mts +62 -0
- package/dist/cost/pricing.d.mts.map +1 -0
- package/dist/cost/pricing.d.ts +22 -0
- package/dist/cost/pricing.d.ts.map +1 -0
- package/dist/cost/pricing.js +41 -0
- package/dist/cost/pricing.js.map +1 -0
- package/dist/cost/pricing.mjs +47 -0
- package/dist/cost/pricing.mjs.map +1 -0
- package/dist/cost/tracker.d.mts +20 -0
- package/dist/cost/tracker.d.mts.map +1 -0
- package/dist/cost/tracker.d.ts +39 -0
- package/dist/cost/tracker.d.ts.map +1 -0
- package/dist/cost/tracker.js +129 -0
- package/dist/cost/tracker.js.map +1 -0
- package/dist/cost/tracker.mjs +52 -0
- package/dist/cost/tracker.mjs.map +1 -0
- package/dist/cost/transcript.d.mts +16 -0
- package/dist/cost/transcript.d.mts.map +1 -0
- package/dist/cost/transcript.d.ts +50 -0
- package/dist/cost/transcript.d.ts.map +1 -0
- package/dist/cost/transcript.js +147 -0
- package/dist/cost/transcript.js.map +1 -0
- package/dist/cost/transcript.mjs +119 -0
- package/dist/cost/transcript.mjs.map +1 -0
- package/dist/cost/types.d.ts +50 -0
- package/dist/cost/types.d.ts.map +1 -0
- package/dist/cost/types.js +2 -0
- package/dist/cost/types.js.map +1 -0
- package/dist/helpers/cycle.d.ts +25 -0
- package/dist/helpers/cycle.d.ts.map +1 -0
- package/dist/helpers/cycle.js +75 -0
- package/dist/helpers/cycle.js.map +1 -0
- package/dist/helpers/index.d.ts +7 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +4 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/lock.d.ts +48 -0
- package/dist/helpers/lock.d.ts.map +1 -0
- package/dist/helpers/lock.js +111 -0
- package/dist/helpers/lock.js.map +1 -0
- package/dist/helpers/task-ref.d.ts +21 -0
- package/dist/helpers/task-ref.d.ts.map +1 -0
- package/dist/helpers/task-ref.js +26 -0
- package/dist/helpers/task-ref.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +4 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +67 -0
- package/dist/manifest.js.map +1 -0
- package/dist/mappers/aperant-mapper.d.ts +24 -0
- package/dist/mappers/aperant-mapper.d.ts.map +1 -0
- package/dist/mappers/aperant-mapper.js +260 -0
- package/dist/mappers/aperant-mapper.js.map +1 -0
- package/dist/mappers/index.d.ts +2 -0
- package/dist/mappers/index.d.ts.map +1 -0
- package/dist/mappers/index.js +2 -0
- package/dist/mappers/index.js.map +1 -0
- package/dist/memory/file-backend.d.ts +29 -0
- package/dist/memory/file-backend.d.ts.map +1 -0
- package/dist/memory/file-backend.js +112 -0
- package/dist/memory/file-backend.js.map +1 -0
- package/dist/memory/index.d.ts +4 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +3 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/null-backend.d.ts +17 -0
- package/dist/memory/null-backend.d.ts.map +1 -0
- package/dist/memory/null-backend.js +27 -0
- package/dist/memory/null-backend.js.map +1 -0
- package/dist/memory/types.d.ts +40 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +2 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/plugin/.claude-plugin/plugin.json +75 -0
- package/dist/plugin/LICENSE +661 -0
- package/dist/plugin/README.md +14 -0
- package/dist/plugin/agents/apt-docs-author.md +272 -0
- package/dist/plugin/agents/apt-executor.md +126 -0
- package/dist/plugin/agents/apt-planner.md +399 -0
- package/dist/plugin/agents/apt-pr-review-codebase-fit.md +201 -0
- package/dist/plugin/agents/apt-pr-review-fixer.md +164 -0
- package/dist/plugin/agents/apt-pr-review-logic.md +201 -0
- package/dist/plugin/agents/apt-pr-review-performance.md +201 -0
- package/dist/plugin/agents/apt-pr-review-quality.md +198 -0
- package/dist/plugin/agents/apt-pr-review-security.md +199 -0
- package/dist/plugin/agents/apt-pr-review-self-reviewer.md +172 -0
- package/dist/plugin/agents/apt-pr-review-test-integrity.md +194 -0
- package/dist/plugin/agents/apt-pr-review-validator.md +155 -0
- package/dist/plugin/agents/apt-researcher.md +55 -0
- package/dist/plugin/agents/apt-reviewer.md +43 -0
- package/dist/plugin/agents/apt-team-docs-narrator.md +140 -0
- package/dist/plugin/agents/apt-verifier.md +117 -0
- package/dist/plugin/skills/apt/SKILL.md +507 -0
- package/dist/plugin/skills/apt-author-skill/SKILL.md +157 -0
- package/dist/plugin/skills/apt-bootstrap/SKILL.md +279 -0
- package/dist/plugin/skills/apt-classify/SKILL.md +91 -0
- package/dist/plugin/skills/apt-close-task/SKILL.md +103 -0
- package/dist/plugin/skills/apt-create-docs/SKILL.md +286 -0
- package/dist/plugin/skills/apt-debug/SKILL.md +279 -0
- package/dist/plugin/skills/apt-design/SKILL.md +330 -0
- package/dist/plugin/skills/apt-discuss/SKILL.md +720 -0
- package/dist/plugin/skills/apt-discuss/examples/rationalization-example.md +19 -0
- package/dist/plugin/skills/apt-docs/SKILL.md +80 -0
- package/dist/plugin/skills/apt-execute/SKILL.md +685 -0
- package/dist/plugin/skills/apt-mockup/SKILL.md +306 -0
- package/dist/plugin/skills/apt-pause/SKILL.md +200 -0
- package/dist/plugin/skills/apt-personas/SKILL.md +277 -0
- package/dist/plugin/skills/apt-plan/SKILL.md +330 -0
- package/dist/plugin/skills/apt-pr-review/SCHEMA.md +726 -0
- package/dist/plugin/skills/apt-pr-review/SKILL.md +1756 -0
- package/dist/plugin/skills/apt-pr-review/prompts/fp-gate-codex.md +82 -0
- package/dist/plugin/skills/apt-pr-review/templates/external-comment.md +34 -0
- package/dist/plugin/skills/apt-quick/SKILL.md +271 -0
- package/dist/plugin/skills/apt-resume/SKILL.md +202 -0
- package/dist/plugin/skills/apt-review/SKILL.md +353 -0
- package/dist/plugin/skills/apt-roadmap/SKILL.md +257 -0
- package/dist/plugin/skills/apt-roundtable/PERSONAS.md +190 -0
- package/dist/plugin/skills/apt-roundtable/SKILL.md +717 -0
- package/dist/plugin/skills/apt-run/SKILL.md +250 -0
- package/dist/plugin/skills/apt-scan/SKILL.md +95 -0
- package/dist/plugin/skills/apt-setup/SKILL.md +1075 -0
- package/dist/plugin/skills/apt-ship/SKILL.md +373 -0
- package/dist/plugin/skills/apt-stress-test/SKILL.md +339 -0
- package/dist/plugin/skills/apt-terminal/SKILL.md +145 -0
- package/dist/plugin/skills/apt-update/SKILL.md +163 -0
- package/dist/plugin/skills/apt-verify/SKILL.md +318 -0
- package/dist/plugin/skills/apt-verify-proof/SKILL.md +92 -0
- package/dist/plugin/skills/apt-verify-proof/references/multi-model-setup.md +48 -0
- package/dist/plugin/skills/apt-verify-proof/references/multi-model-verification.md +119 -0
- package/dist/plugin/skills/apt-verify-proof/references/proof-capture.md +76 -0
- package/dist/proof-report.d.ts +18 -0
- package/dist/proof-report.d.ts.map +1 -0
- package/dist/proof-report.js +361 -0
- package/dist/proof-report.js.map +1 -0
- package/dist/schemas/__tests__/feature-registry.test.d.ts +2 -0
- package/dist/schemas/__tests__/feature-registry.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/feature-registry.test.js +226 -0
- package/dist/schemas/__tests__/feature-registry.test.js.map +1 -0
- package/dist/schemas/__tests__/quick-task.test.d.ts +2 -0
- package/dist/schemas/__tests__/quick-task.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/quick-task.test.js +174 -0
- package/dist/schemas/__tests__/quick-task.test.js.map +1 -0
- package/dist/schemas/design-tokens.d.ts +22 -0
- package/dist/schemas/design-tokens.d.ts.map +1 -0
- package/dist/schemas/design-tokens.js +14 -0
- package/dist/schemas/design-tokens.js.map +1 -0
- package/dist/schemas/feature-registry.d.ts +129 -0
- package/dist/schemas/feature-registry.d.ts.map +1 -0
- package/dist/schemas/feature-registry.js +56 -0
- package/dist/schemas/feature-registry.js.map +1 -0
- package/dist/schemas/index.d.ts +6 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +6 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/plugin-manifest.d.ts +87 -0
- package/dist/schemas/plugin-manifest.d.ts.map +1 -0
- package/dist/schemas/plugin-manifest.js +86 -0
- package/dist/schemas/plugin-manifest.js.map +1 -0
- package/dist/schemas/profile.d.ts +44 -0
- package/dist/schemas/profile.d.ts.map +1 -0
- package/dist/schemas/profile.js +18 -0
- package/dist/schemas/profile.js.map +1 -0
- package/dist/schemas/quick-task.d.ts +160 -0
- package/dist/schemas/quick-task.d.ts.map +1 -0
- package/dist/schemas/quick-task.js +48 -0
- package/dist/schemas/quick-task.js.map +1 -0
- package/dist/standalone/index.d.ts +41 -0
- package/dist/standalone/index.d.ts.map +1 -0
- package/dist/standalone/index.js +268 -0
- package/dist/standalone/index.js.map +1 -0
- package/dist/standalone/types.d.ts +125 -0
- package/dist/standalone/types.d.ts.map +1 -0
- package/dist/standalone/types.js +13 -0
- package/dist/standalone/types.js.map +1 -0
- package/dist/types/__tests__/coordination.test.d.ts +2 -0
- package/dist/types/__tests__/coordination.test.d.ts.map +1 -0
- package/dist/types/__tests__/coordination.test.js +117 -0
- package/dist/types/__tests__/coordination.test.js.map +1 -0
- package/dist/types/__tests__/qa-scoring.test.d.ts +8 -0
- package/dist/types/__tests__/qa-scoring.test.d.ts.map +1 -0
- package/dist/types/__tests__/qa-scoring.test.js +83 -0
- package/dist/types/__tests__/qa-scoring.test.js.map +1 -0
- package/dist/types/config.d.ts +221 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +8 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/coordination.d.ts +59 -0
- package/dist/types/coordination.d.ts.map +1 -0
- package/dist/types/coordination.js +9 -0
- package/dist/types/coordination.js.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lifecycle.d.ts +25 -0
- package/dist/types/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle.js +12 -0
- package/dist/types/lifecycle.js.map +1 -0
- package/dist/types/manifest.d.ts +21 -0
- package/dist/types/manifest.d.ts.map +1 -0
- package/dist/types/manifest.js +2 -0
- package/dist/types/manifest.js.map +1 -0
- package/dist/types/proof.d.ts +143 -0
- package/dist/types/proof.d.ts.map +1 -0
- package/dist/types/proof.js +8 -0
- package/dist/types/proof.js.map +1 -0
- package/dist/types/provider-capabilities.d.ts +47 -0
- package/dist/types/provider-capabilities.d.ts.map +1 -0
- package/dist/types/provider-capabilities.js +10 -0
- package/dist/types/provider-capabilities.js.map +1 -0
- package/dist/types/qa-scoring.d.ts +45 -0
- package/dist/types/qa-scoring.d.ts.map +1 -0
- package/dist/types/qa-scoring.js +25 -0
- package/dist/types/qa-scoring.js.map +1 -0
- package/dist/types/scope.d.ts +18 -0
- package/dist/types/scope.d.ts.map +1 -0
- package/dist/types/scope.js +13 -0
- package/dist/types/scope.js.map +1 -0
- package/dist/types/state.d.ts +58 -0
- package/dist/types/state.d.ts.map +1 -0
- package/dist/types/state.js +9 -0
- package/dist/types/state.js.map +1 -0
- package/dist/types/task-record.d.ts +75 -0
- package/dist/types/task-record.d.ts.map +1 -0
- package/dist/types/task-record.js +2 -0
- package/dist/types/task-record.js.map +1 -0
- package/dist/types/team.d.ts +116 -0
- package/dist/types/team.d.ts.map +1 -0
- package/dist/types/team.js +17 -0
- package/dist/types/team.js.map +1 -0
- package/dist/types/testable-features.d.ts +46 -0
- package/dist/types/testable-features.d.ts.map +1 -0
- package/dist/types/testable-features.js +8 -0
- package/dist/types/testable-features.js.map +1 -0
- package/dist/types/ui-shapes.d.ts +120 -0
- package/dist/types/ui-shapes.d.ts.map +1 -0
- package/dist/types/ui-shapes.js +13 -0
- package/dist/types/ui-shapes.js.map +1 -0
- package/docs/api.md +425 -0
- package/docs/artifact-lifecycle.md +130 -0
- package/docs/design-taste.md +187 -0
- package/docs/design-tokens.md +147 -0
- package/docs/docs-coherence.md +103 -0
- package/docs/intents.md +119 -0
- package/docs/output-style.md +216 -0
- package/docs/plugin-distribution.md +197 -0
- package/docs/profiles.md +128 -0
- package/docs/seeds.md +221 -0
- package/docs/skill-authoring.md +172 -0
- package/docs/standalone.md +168 -0
- package/docs/workflows.md +194 -0
- package/docs/worktree-ecosystems.md +345 -0
- package/examples/plugin-template/README.md +79 -0
- package/examples/plugin-template/manifest.json +30 -0
- package/examples/plugin-template/mappers/context-mapper.ts +49 -0
- package/examples/plugin-template/mappers/plan-mapper.ts +66 -0
- package/examples/profiles/default.yaml +26 -0
- package/examples/profiles/team-platform.yaml +30 -0
- package/package.json +119 -0
- package/prompts/coder.md +1147 -0
- package/prompts/coder_recovery.md +290 -0
- package/prompts/competitor_analysis.md +405 -0
- package/prompts/complexity_assessor.md +681 -0
- package/prompts/design-synthesize.md +184 -0
- package/prompts/followup_planner.md +399 -0
- package/prompts/github/QA_REVIEW_SYSTEM_PROMPT.md +192 -0
- package/prompts/github/duplicate_detector.md +90 -0
- package/prompts/github/issue_analyzer.md +112 -0
- package/prompts/github/issue_triager.md +199 -0
- package/prompts/github/partials/full_context_analysis.md +39 -0
- package/prompts/github/pr_ai_triage.md +230 -0
- package/prompts/github/pr_codebase_fit_agent.md +429 -0
- package/prompts/github/pr_finding_validator.md +410 -0
- package/prompts/github/pr_fixer.md +120 -0
- package/prompts/github/pr_followup.md +256 -0
- package/prompts/github/pr_followup_comment_agent.md +205 -0
- package/prompts/github/pr_followup_newcode_agent.md +238 -0
- package/prompts/github/pr_followup_orchestrator.md +364 -0
- package/prompts/github/pr_followup_resolution_agent.md +182 -0
- package/prompts/github/pr_logic_agent.md +439 -0
- package/prompts/github/pr_orchestrator.md +435 -0
- package/prompts/github/pr_parallel_orchestrator.md +730 -0
- package/prompts/github/pr_quality_agent.md +458 -0
- package/prompts/github/pr_reviewer.md +356 -0
- package/prompts/github/pr_security_agent.md +400 -0
- package/prompts/github/pr_structural.md +171 -0
- package/prompts/github/pr_template_filler.md +138 -0
- package/prompts/github/spam_detector.md +110 -0
- package/prompts/ideation_code_improvements.md +376 -0
- package/prompts/ideation_code_quality.md +284 -0
- package/prompts/ideation_documentation.md +145 -0
- package/prompts/ideation_performance.md +237 -0
- package/prompts/ideation_security.md +204 -0
- package/prompts/ideation_ui_ux.md +444 -0
- package/prompts/insight_extractor.md +178 -0
- package/prompts/mcp_tools/api_validation.md +122 -0
- package/prompts/mcp_tools/database_validation.md +105 -0
- package/prompts/mcp_tools/electron_validation.md +123 -0
- package/prompts/mcp_tools/proof_capture.md +76 -0
- package/prompts/mcp_tools/puppeteer_browser.md +110 -0
- package/prompts/planner-system.md +74 -0
- package/prompts/planner.md +993 -0
- package/prompts/qa_fixer.md +540 -0
- package/prompts/qa_orchestrator_agentic.md +222 -0
- package/prompts/qa_reviewer.md +821 -0
- package/prompts/roadmap_discovery.md +324 -0
- package/prompts/roadmap_features.md +453 -0
- package/prompts/spec_critic.md +317 -0
- package/prompts/spec_gatherer.md +228 -0
- package/prompts/spec_orchestrator_agentic.md +198 -0
- package/prompts/spec_quick.md +198 -0
- package/prompts/spec_researcher.md +350 -0
- package/prompts/spec_writer.md +307 -0
- package/prompts/stack_advisor.md +35 -0
- package/prompts/validation_fixer.md +230 -0
- package/skills/apt/SKILL.md +507 -0
- package/skills/apt-author-skill/SKILL.md +157 -0
- package/skills/apt-bootstrap/SKILL.md +279 -0
- package/skills/apt-classify/SKILL.md +91 -0
- package/skills/apt-close-task/SKILL.md +103 -0
- package/skills/apt-create-docs/SKILL.md +286 -0
- package/skills/apt-debug/SKILL.md +279 -0
- package/skills/apt-design/SKILL.md +330 -0
- package/skills/apt-discuss/SKILL.md +720 -0
- package/skills/apt-discuss/examples/rationalization-example.md +19 -0
- package/skills/apt-docs/SKILL.md +80 -0
- package/skills/apt-execute/SKILL.md +685 -0
- package/skills/apt-executor.md +91 -0
- package/skills/apt-mockup/SKILL.md +306 -0
- package/skills/apt-pause/SKILL.md +200 -0
- package/skills/apt-personas/SKILL.md +277 -0
- package/skills/apt-plan/SKILL.md +330 -0
- package/skills/apt-planner.md +122 -0
- package/skills/apt-pr-review/SCHEMA.md +726 -0
- package/skills/apt-pr-review/SKILL.md +1756 -0
- package/skills/apt-pr-review/prompts/fp-gate-codex.md +82 -0
- package/skills/apt-pr-review/templates/external-comment.md +34 -0
- package/skills/apt-quick/SKILL.md +271 -0
- package/skills/apt-researcher.md +54 -0
- package/skills/apt-resume/SKILL.md +202 -0
- package/skills/apt-review/SKILL.md +353 -0
- package/skills/apt-roadmap/SKILL.md +257 -0
- package/skills/apt-roundtable/PERSONAS.md +190 -0
- package/skills/apt-roundtable/SKILL.md +717 -0
- package/skills/apt-run/SKILL.md +250 -0
- package/skills/apt-scan/SKILL.md +95 -0
- package/skills/apt-setup/SKILL.md +1075 -0
- package/skills/apt-ship/SKILL.md +373 -0
- package/skills/apt-stress-test/SKILL.md +339 -0
- package/skills/apt-terminal/SKILL.md +145 -0
- package/skills/apt-update/SKILL.md +165 -0
- package/skills/apt-verifier.md +64 -0
- package/skills/apt-verify/SKILL.md +318 -0
- package/skills/apt-verify-proof/SKILL.md +92 -0
- package/skills/apt-verify-proof/references/multi-model-setup.md +48 -0
- package/skills/apt-verify-proof/references/multi-model-verification.md +119 -0
- package/skills/apt-verify-proof/references/proof-capture.md +76 -0
- package/src/cli/artifacts/classification.mjs +390 -0
- package/src/cli/artifacts/self-stage.mjs +168 -0
- package/src/cli/bootstrap/detect-mode.mjs +200 -0
- package/src/cli/bootstrap/product-context-sidecar.mjs +381 -0
- package/src/cli/bootstrap/recon.mjs +259 -0
- package/src/cli/budget/budget.mjs +35 -0
- package/src/cli/cli-wrappers/active.mjs +8 -0
- package/src/cli/cli-wrappers/audit.mjs +8 -0
- package/src/cli/cli-wrappers/author-skill.mjs +8 -0
- package/src/cli/cli-wrappers/bootstrap.mjs +8 -0
- package/src/cli/cli-wrappers/check-version.mjs +7 -0
- package/src/cli/cli-wrappers/check.mjs +8 -0
- package/src/cli/cli-wrappers/commit.mjs +8 -0
- package/src/cli/cli-wrappers/config.mjs +8 -0
- package/src/cli/cli-wrappers/consistency.mjs +8 -0
- package/src/cli/cli-wrappers/constitution.mjs +8 -0
- package/src/cli/cli-wrappers/coverage-check.mjs +7 -0
- package/src/cli/cli-wrappers/create-docs.mjs +8 -0
- package/src/cli/cli-wrappers/design-lint.mjs +8 -0
- package/src/cli/cli-wrappers/design-scan.mjs +8 -0
- package/src/cli/cli-wrappers/design-template.mjs +8 -0
- package/src/cli/cli-wrappers/design-validate.mjs +8 -0
- package/src/cli/cli-wrappers/detect-project.mjs +7 -0
- package/src/cli/cli-wrappers/docs-audit.mjs +8 -0
- package/src/cli/cli-wrappers/edit-check.mjs +7 -0
- package/src/cli/cli-wrappers/effects.mjs +8 -0
- package/src/cli/cli-wrappers/event.mjs +8 -0
- package/src/cli/cli-wrappers/features-audit.mjs +8 -0
- package/src/cli/cli-wrappers/gate.mjs +8 -0
- package/src/cli/cli-wrappers/health-check.mjs +7 -0
- package/src/cli/cli-wrappers/host-detect.mjs +17 -0
- package/src/cli/cli-wrappers/init-state.mjs +8 -0
- package/src/cli/cli-wrappers/init.mjs +8 -0
- package/src/cli/cli-wrappers/lock.mjs +8 -0
- package/src/cli/cli-wrappers/migrate-pr-reviews.mjs +8 -0
- package/src/cli/cli-wrappers/personas.mjs +8 -0
- package/src/cli/cli-wrappers/plan-approval.mjs +8 -0
- package/src/cli/cli-wrappers/pr-review-audit-fixer.mjs +8 -0
- package/src/cli/cli-wrappers/pr-review.mjs +8 -0
- package/src/cli/cli-wrappers/precompact-hook.mjs +8 -0
- package/src/cli/cli-wrappers/product-context.mjs +8 -0
- package/src/cli/cli-wrappers/profile.mjs +8 -0
- package/src/cli/cli-wrappers/risk-check.mjs +8 -0
- package/src/cli/cli-wrappers/roadmap.mjs +8 -0
- package/src/cli/cli-wrappers/route.mjs +8 -0
- package/src/cli/cli-wrappers/seed.mjs +8 -0
- package/src/cli/cli-wrappers/standards.mjs +8 -0
- package/src/cli/cli-wrappers/state-artifacts.mjs +8 -0
- package/src/cli/cli-wrappers/state-update.mjs +8 -0
- package/src/cli/cli-wrappers/state.mjs +8 -0
- package/src/cli/cli-wrappers/statusline.mjs +8 -0
- package/src/cli/cli-wrappers/task.mjs +8 -0
- package/src/cli/cli-wrappers/taste-infer.mjs +8 -0
- package/src/cli/cli-wrappers/team.mjs +8 -0
- package/src/cli/cli-wrappers/template.mjs +7 -0
- package/src/cli/cli-wrappers/terminal.mjs +8 -0
- package/src/cli/cli-wrappers/token-budget.mjs +8 -0
- package/src/cli/cli-wrappers/tokens.mjs +8 -0
- package/src/cli/cli-wrappers/toolchain-detect.mjs +7 -0
- package/src/cli/cli-wrappers/uninstall.mjs +8 -0
- package/src/cli/cli-wrappers/validate-evidence.mjs +10 -0
- package/src/cli/cli-wrappers/variant-gallery.mjs +8 -0
- package/src/cli/cli-wrappers/variant-pick.mjs +8 -0
- package/src/cli/cli-wrappers/variant-pool.mjs +8 -0
- package/src/cli/cli-wrappers/wave.mjs +8 -0
- package/src/cli/cli-wrappers/wfrun.mjs +8 -0
- package/src/cli/cli-wrappers/workflow.mjs +8 -0
- package/src/cli/cli-wrappers/worktree-install.mjs +8 -0
- package/src/cli/cli-wrappers/worktree.mjs +16 -0
- package/src/cli/commands/active.mjs +86 -0
- package/src/cli/commands/audit.mjs +430 -0
- package/src/cli/commands/author-skill.mjs +75 -0
- package/src/cli/commands/bootstrap.mjs +318 -0
- package/src/cli/commands/check-version.mjs +117 -0
- package/src/cli/commands/check.mjs +227 -0
- package/src/cli/commands/commit.mjs +87 -0
- package/src/cli/commands/consistency.mjs +158 -0
- package/src/cli/commands/constitution.mjs +163 -0
- package/src/cli/commands/coverage-check.mjs +252 -0
- package/src/cli/commands/create-docs.mjs +426 -0
- package/src/cli/commands/design-lint.mjs +212 -0
- package/src/cli/commands/design-scan.mjs +112 -0
- package/src/cli/commands/design-template.mjs +196 -0
- package/src/cli/commands/design-validate.mjs +83 -0
- package/src/cli/commands/detect-project.mjs +223 -0
- package/src/cli/commands/docs-audit.mjs +159 -0
- package/src/cli/commands/edit-check.mjs +108 -0
- package/src/cli/commands/effects.mjs +415 -0
- package/src/cli/commands/event.mjs +250 -0
- package/src/cli/commands/features-audit.mjs +138 -0
- package/src/cli/commands/gate.mjs +273 -0
- package/src/cli/commands/health-check.mjs +166 -0
- package/src/cli/commands/host-detect.mjs +87 -0
- package/src/cli/commands/init-state.mjs +112 -0
- package/src/cli/commands/init.mjs +1557 -0
- package/src/cli/commands/lock.mjs +159 -0
- package/src/cli/commands/migrate-pr-reviews.mjs +215 -0
- package/src/cli/commands/personas.mjs +333 -0
- package/src/cli/commands/plan-approval.mjs +244 -0
- package/src/cli/commands/pr-review-audit-fixer.mjs +893 -0
- package/src/cli/commands/pr-review.mjs +1113 -0
- package/src/cli/commands/precompact-hook.mjs +181 -0
- package/src/cli/commands/product-context.mjs +77 -0
- package/src/cli/commands/profile.mjs +122 -0
- package/src/cli/commands/risk-check.mjs +85 -0
- package/src/cli/commands/roadmap.mjs +912 -0
- package/src/cli/commands/route.mjs +548 -0
- package/src/cli/commands/seed.mjs +514 -0
- package/src/cli/commands/standards.mjs +285 -0
- package/src/cli/commands/state.mjs +252 -0
- package/src/cli/commands/statusline.mjs +235 -0
- package/src/cli/commands/task.mjs +1459 -0
- package/src/cli/commands/taste-infer.mjs +507 -0
- package/src/cli/commands/team.mjs +123 -0
- package/src/cli/commands/template.mjs +44 -0
- package/src/cli/commands/terminal.mjs +140 -0
- package/src/cli/commands/token-budget.mjs +133 -0
- package/src/cli/commands/tokens.mjs +456 -0
- package/src/cli/commands/toolchain-detect.mjs +395 -0
- package/src/cli/commands/uninstall.mjs +444 -0
- package/src/cli/commands/validate-evidence.mjs +537 -0
- package/src/cli/commands/variant-gallery.mjs +167 -0
- package/src/cli/commands/variant-pick.mjs +103 -0
- package/src/cli/commands/variant-pool.mjs +104 -0
- package/src/cli/commands/wave.mjs +206 -0
- package/src/cli/commands/wfrun.mjs +72 -0
- package/src/cli/commands/workflow.mjs +297 -0
- package/src/cli/commands/worktree-install.mjs +585 -0
- package/src/cli/commands/worktree.mjs +511 -0
- package/src/cli/config/coverage-ac.mjs +194 -0
- package/src/cli/config/gitignore-drift.mjs +94 -0
- package/src/cli/config/guard.mjs +39 -0
- package/src/cli/config/load.mjs +151 -0
- package/src/cli/config/post-merge-sweep.mjs +280 -0
- package/src/cli/config/schema-migrate.mjs +207 -0
- package/src/cli/config/share-policy.mjs +319 -0
- package/src/cli/config/upgrade-gitignore.mjs +332 -0
- package/src/cli/config/upgrade-layout.mjs +346 -0
- package/src/cli/consistency/check.mjs +190 -0
- package/src/cli/consistency/parse-plan-approval.mjs +51 -0
- package/src/cli/consistency/parse-plan.mjs +62 -0
- package/src/cli/consistency/parse-progress.mjs +91 -0
- package/src/cli/consistency/parse-qa.mjs +86 -0
- package/src/cli/consistency/parse-review.mjs +98 -0
- package/src/cli/consistency/parse-spec.mjs +98 -0
- package/src/cli/consistency/registry.mjs +84 -0
- package/src/cli/consistency/rules/index.mjs +18 -0
- package/src/cli/consistency/rules/r1-ac-coverage.mjs +67 -0
- package/src/cli/consistency/rules/r2-subtask-progress.mjs +54 -0
- package/src/cli/consistency/rules/r3-dimension-claims.mjs +78 -0
- package/src/cli/consistency/rules/r4-finding-propagation.mjs +68 -0
- package/src/cli/consistency/rules/r5-verdict-consistency.mjs +74 -0
- package/src/cli/consistency/rules/r6-plan-approval.mjs +109 -0
- package/src/cli/consistency/rules/r7-persona-alignment.mjs +218 -0
- package/src/cli/constitution/coverage.mjs +112 -0
- package/src/cli/constitution/match.mjs +170 -0
- package/src/cli/constitution/parse.mjs +362 -0
- package/src/cli/coordination/agent-identity.mjs +102 -0
- package/src/cli/coordination/event-log.mjs +88 -0
- package/src/cli/coordination/store.mjs +146 -0
- package/src/cli/coordination/team-status.mjs +274 -0
- package/src/cli/coverage-check/acceptance-criteria.mjs +15 -0
- package/src/cli/design/extract-repo.mjs +506 -0
- package/src/cli/design/extract-url.mjs +457 -0
- package/src/cli/design/extract.mjs +326 -0
- package/src/cli/design/frontmatter-schema.mjs +184 -0
- package/src/cli/design/lint.mjs +208 -0
- package/src/cli/design/product-context.mjs +176 -0
- package/src/cli/design/scan.mjs +294 -0
- package/src/cli/design/schema.mjs +86 -0
- package/src/cli/design/synthesize.mjs +846 -0
- package/src/cli/design/template-extract.mjs +481 -0
- package/src/cli/design/template.mjs +369 -0
- package/src/cli/design/validate.mjs +107 -0
- package/src/cli/design/weighted-map.mjs +43 -0
- package/src/cli/dispatch.mjs +277 -0
- package/src/cli/docs/features-reader.mjs +322 -0
- package/src/cli/docs/nav-renderer.mjs +181 -0
- package/src/cli/docs/structure-planner.mjs +316 -0
- package/src/cli/docs-audit/audit.mjs +156 -0
- package/src/cli/docs-audit/grep-claims.mjs +195 -0
- package/src/cli/docs-audit/index.mjs +8 -0
- package/src/cli/docs-audit/policy.mjs +177 -0
- package/src/cli/features/registry-audit.mjs +254 -0
- package/src/cli/gate/cache.mjs +135 -0
- package/src/cli/gate/context.mjs +92 -0
- package/src/cli/gate/gates/all-subtasks-complete.mjs +60 -0
- package/src/cli/gate/gates/consistency-check.mjs +60 -0
- package/src/cli/gate/gates/constitution-coverage.mjs +67 -0
- package/src/cli/gate/gates/constitution-read.mjs +37 -0
- package/src/cli/gate/gates/gitignore-in-sync.mjs +41 -0
- package/src/cli/gate/gates/index.mjs +22 -0
- package/src/cli/gate/gates/plan-exists.mjs +55 -0
- package/src/cli/gate/gates/r-persona-alignment.mjs +335 -0
- package/src/cli/gate/gates/review-clean.mjs +75 -0
- package/src/cli/gate/gates/tdd-iron-law.mjs +250 -0
- package/src/cli/gate/gates/verify-approved.mjs +62 -0
- package/src/cli/gate/registry.mjs +103 -0
- package/src/cli/git/identity.mjs +52 -0
- package/src/cli/git/remote.mjs +92 -0
- package/src/cli/git/worktree-detect.mjs +55 -0
- package/src/cli/graph/depends-on.mjs +98 -0
- package/src/cli/graph/task-ref.mjs +38 -0
- package/src/cli/help.mjs +134 -0
- package/src/cli/host/detect.mjs +210 -0
- package/src/cli/host/resolve.mjs +54 -0
- package/src/cli/install/archetype.mjs +152 -0
- package/src/cli/install/atomic-text.mjs +9 -0
- package/src/cli/install/claude-hooks.mjs +102 -0
- package/src/cli/install/cli-to-install-root.mjs +47 -0
- package/src/cli/install/detached-spawn.mjs +275 -0
- package/src/cli/install/ecosystem-commands.mjs +159 -0
- package/src/cli/install/home-stub.mjs +121 -0
- package/src/cli/install/install-kernel.mjs +180 -0
- package/src/cli/install/install-semaphore.mjs +199 -0
- package/src/cli/install/manifest-scanner.mjs +253 -0
- package/src/cli/install/manifest.mjs +159 -0
- package/src/cli/install/pipeline.mjs +289 -0
- package/src/cli/install/runtime-detect.mjs +196 -0
- package/src/cli/install/setting-class.mjs +177 -0
- package/src/cli/install/transforms/_shared.mjs +332 -0
- package/src/cli/install/transforms/antigravity.mjs +15 -0
- package/src/cli/install/transforms/augment.mjs +14 -0
- package/src/cli/install/transforms/claude.mjs +41 -0
- package/src/cli/install/transforms/cline.mjs +15 -0
- package/src/cli/install/transforms/codebuddy.mjs +15 -0
- package/src/cli/install/transforms/codex.mjs +56 -0
- package/src/cli/install/transforms/copilot.mjs +19 -0
- package/src/cli/install/transforms/cursor.mjs +42 -0
- package/src/cli/install/transforms/gemini.mjs +62 -0
- package/src/cli/install/transforms/kilo.mjs +30 -0
- package/src/cli/install/transforms/opencode.mjs +65 -0
- package/src/cli/install/transforms/qwen.mjs +14 -0
- package/src/cli/install/transforms/trae.mjs +14 -0
- package/src/cli/install/transforms/windsurf.mjs +42 -0
- package/src/cli/install/update-chips.mjs +96 -0
- package/src/cli/install/version-header.mjs +255 -0
- package/src/cli/lock/pid.mjs +25 -0
- package/src/cli/output-style/ansi.mjs +89 -0
- package/src/cli/output-style/helpers.mjs +184 -0
- package/src/cli/output-style/index.mjs +9 -0
- package/src/cli/personas/role-scan.mjs +323 -0
- package/src/cli/personas/sidecar.mjs +467 -0
- package/src/cli/personas/tier-rubric.mjs +182 -0
- package/src/cli/profile/parse.mjs +171 -0
- package/src/cli/profile/resolve.mjs +155 -0
- package/src/cli/profile/schema.mjs +52 -0
- package/src/cli/risk/globs.mjs +68 -0
- package/src/cli/risk/postcondition.mjs +66 -0
- package/src/cli/risk/secrets.mjs +39 -0
- package/src/cli/roadmap/io.mjs +188 -0
- package/src/cli/roadmap/lifecycle.mjs +105 -0
- package/src/cli/roadmap/paths.mjs +57 -0
- package/src/cli/roadmap/phases-io.mjs +227 -0
- package/src/cli/roadmap/render.mjs +75 -0
- package/src/cli/roadmap/rollup.mjs +91 -0
- package/src/cli/roadmap/scope-lookup.mjs +62 -0
- package/src/cli/roadmap/sync.mjs +121 -0
- package/src/cli/route/envelope.mjs +311 -0
- package/src/cli/route/skill-discover.mjs +328 -0
- package/src/cli/seeds/io.mjs +150 -0
- package/src/cli/seeds/render.mjs +171 -0
- package/src/cli/seeds/validate.mjs +177 -0
- package/src/cli/skill-author/contract.mjs +183 -0
- package/src/cli/skill-author/scaffold.mjs +80 -0
- package/src/cli/skill-author/skill-template.mjs +91 -0
- package/src/cli/skill-author/test-template.mjs +56 -0
- package/src/cli/skill-author/validate.mjs +127 -0
- package/src/cli/task/build-progress-sync.mjs +205 -0
- package/src/cli/task/execution-mode.mjs +33 -0
- package/src/cli/task/format.mjs +31 -0
- package/src/cli/task/ids.mjs +59 -0
- package/src/cli/task/index-md.mjs +90 -0
- package/src/cli/task/outputs-guard.mjs +166 -0
- package/src/cli/task/worktree-cleanup.mjs +129 -0
- package/src/cli/team/team.mjs +361 -0
- package/src/cli/terminal/socket-client.mjs +127 -0
- package/src/cli/util/agent-runtime.mjs +28 -0
- package/src/cli/util/args.mjs +26 -0
- package/src/cli/util/atomic-write.mjs +147 -0
- package/src/cli/util/banner.mjs +57 -0
- package/src/cli/util/bin-path.mjs +72 -0
- package/src/cli/util/common-flags.mjs +37 -0
- package/src/cli/util/copy.mjs +95 -0
- package/src/cli/util/duration.mjs +67 -0
- package/src/cli/util/fs-lock.mjs +119 -0
- package/src/cli/util/init-hints.mjs +91 -0
- package/src/cli/util/io.mjs +47 -0
- package/src/cli/util/project.mjs +46 -0
- package/src/cli/util/result.mjs +112 -0
- package/src/cli/util/skill-installs.mjs +37 -0
- package/src/cli/variant/gallery.mjs +170 -0
- package/src/cli/variant/pick.mjs +121 -0
- package/src/cli/variant/pool.mjs +168 -0
- package/src/cli/wfrun/dag.mjs +112 -0
- package/src/cli/wfrun/interpolate.mjs +108 -0
- package/src/cli/wfrun/parse.mjs +112 -0
- package/src/cli/wfrun/run.mjs +498 -0
- package/src/cli/wfrun/schema.mjs +112 -0
- package/src/cost/index.ts +8 -0
- package/src/cost/pricing.mjs +50 -0
- package/src/cost/pricing.ts +57 -0
- package/src/cost/tracker.mjs +62 -0
- package/src/cost/tracker.ts +162 -0
- package/src/cost/transcript.mjs +118 -0
- package/src/cost/transcript.ts +169 -0
- package/src/cost/types.ts +52 -0
- package/templates/DESIGN.md +284 -0
- package/templates/agents-brownfield.md +47 -0
- package/templates/agents-greenfield.md +42 -0
- package/templates/config.json +138 -0
- package/templates/design-library/README.md +23 -0
- package/templates/design-library/agentic/DESIGN.md +141 -0
- package/templates/design-library/agentic/provenance.yaml +9 -0
- package/templates/design-library/ant/DESIGN.md +141 -0
- package/templates/design-library/ant/provenance.yaml +8 -0
- package/templates/design-library/apple/DESIGN.md +263 -0
- package/templates/design-library/apple/provenance.yaml +15 -0
- package/templates/design-library/application/DESIGN.md +141 -0
- package/templates/design-library/application/provenance.yaml +8 -0
- package/templates/design-library/artistic/DESIGN.md +142 -0
- package/templates/design-library/artistic/provenance.yaml +8 -0
- package/templates/design-library/bento/DESIGN.md +141 -0
- package/templates/design-library/bento/provenance.yaml +8 -0
- package/templates/design-library/bold/DESIGN.md +141 -0
- package/templates/design-library/bold/provenance.yaml +9 -0
- package/templates/design-library/brutalism/DESIGN.md +141 -0
- package/templates/design-library/brutalism/provenance.yaml +9 -0
- package/templates/design-library/cafe/DESIGN.md +143 -0
- package/templates/design-library/cafe/provenance.yaml +9 -0
- package/templates/design-library/claymorphism/DESIGN.md +141 -0
- package/templates/design-library/claymorphism/provenance.yaml +9 -0
- package/templates/design-library/clean/DESIGN.md +141 -0
- package/templates/design-library/clean/provenance.yaml +9 -0
- package/templates/design-library/colorful/DESIGN.md +141 -0
- package/templates/design-library/colorful/provenance.yaml +9 -0
- package/templates/design-library/contemporary/DESIGN.md +141 -0
- package/templates/design-library/contemporary/provenance.yaml +10 -0
- package/templates/design-library/corporate/DESIGN.md +141 -0
- package/templates/design-library/corporate/provenance.yaml +10 -0
- package/templates/design-library/cosmic/DESIGN.md +133 -0
- package/templates/design-library/cosmic/provenance.yaml +8 -0
- package/templates/design-library/creative/DESIGN.md +141 -0
- package/templates/design-library/creative/provenance.yaml +8 -0
- package/templates/design-library/dashboard/DESIGN.md +141 -0
- package/templates/design-library/dashboard/provenance.yaml +9 -0
- package/templates/design-library/dithered/DESIGN.md +141 -0
- package/templates/design-library/dithered/provenance.yaml +8 -0
- package/templates/design-library/doodle/DESIGN.md +141 -0
- package/templates/design-library/doodle/provenance.yaml +8 -0
- package/templates/design-library/dramatic/DESIGN.md +134 -0
- package/templates/design-library/dramatic/provenance.yaml +8 -0
- package/templates/design-library/editorial/DESIGN.md +141 -0
- package/templates/design-library/editorial/provenance.yaml +9 -0
- package/templates/design-library/elegant/DESIGN.md +138 -0
- package/templates/design-library/elegant/provenance.yaml +8 -0
- package/templates/design-library/energetic/DESIGN.md +132 -0
- package/templates/design-library/energetic/provenance.yaml +8 -0
- package/templates/design-library/enterprise/DESIGN.md +141 -0
- package/templates/design-library/enterprise/provenance.yaml +10 -0
- package/templates/design-library/expressive/DESIGN.md +141 -0
- package/templates/design-library/expressive/provenance.yaml +8 -0
- package/templates/design-library/fantasy/DESIGN.md +141 -0
- package/templates/design-library/fantasy/provenance.yaml +9 -0
- package/templates/design-library/flat/DESIGN.md +141 -0
- package/templates/design-library/flat/provenance.yaml +8 -0
- package/templates/design-library/friendly/DESIGN.md +141 -0
- package/templates/design-library/friendly/provenance.yaml +9 -0
- package/templates/design-library/futuristic/DESIGN.md +141 -0
- package/templates/design-library/futuristic/provenance.yaml +9 -0
- package/templates/design-library/glassmorphism/DESIGN.md +141 -0
- package/templates/design-library/glassmorphism/provenance.yaml +10 -0
- package/templates/design-library/gradient/DESIGN.md +142 -0
- package/templates/design-library/gradient/provenance.yaml +9 -0
- package/templates/design-library/levels/DESIGN.md +141 -0
- package/templates/design-library/levels/provenance.yaml +8 -0
- package/templates/design-library/linear/DESIGN.md +265 -0
- package/templates/design-library/linear/provenance.yaml +15 -0
- package/templates/design-library/lingo/DESIGN.md +138 -0
- package/templates/design-library/lingo/provenance.yaml +8 -0
- package/templates/design-library/luxury/DESIGN.md +141 -0
- package/templates/design-library/luxury/provenance.yaml +10 -0
- package/templates/design-library/material/DESIGN.md +141 -0
- package/templates/design-library/material/provenance.yaml +8 -0
- package/templates/design-library/minimal/DESIGN.md +141 -0
- package/templates/design-library/minimal/provenance.yaml +9 -0
- package/templates/design-library/modern/DESIGN.md +141 -0
- package/templates/design-library/modern/provenance.yaml +8 -0
- package/templates/design-library/mono/DESIGN.md +141 -0
- package/templates/design-library/mono/provenance.yaml +10 -0
- package/templates/design-library/neobrutalism/DESIGN.md +141 -0
- package/templates/design-library/neobrutalism/provenance.yaml +8 -0
- package/templates/design-library/neon/DESIGN.md +141 -0
- package/templates/design-library/neon/provenance.yaml +8 -0
- package/templates/design-library/neumorphism/DESIGN.md +141 -0
- package/templates/design-library/neumorphism/provenance.yaml +10 -0
- package/templates/design-library/pacman/DESIGN.md +141 -0
- package/templates/design-library/pacman/provenance.yaml +10 -0
- package/templates/design-library/paper/DESIGN.md +141 -0
- package/templates/design-library/paper/provenance.yaml +8 -0
- package/templates/design-library/perspective/DESIGN.md +141 -0
- package/templates/design-library/perspective/provenance.yaml +8 -0
- package/templates/design-library/premium/DESIGN.md +142 -0
- package/templates/design-library/premium/provenance.yaml +8 -0
- package/templates/design-library/professional/DESIGN.md +141 -0
- package/templates/design-library/professional/provenance.yaml +9 -0
- package/templates/design-library/publication/DESIGN.md +141 -0
- package/templates/design-library/publication/provenance.yaml +9 -0
- package/templates/design-library/refined/DESIGN.md +141 -0
- package/templates/design-library/refined/provenance.yaml +8 -0
- package/templates/design-library/retro/DESIGN.md +141 -0
- package/templates/design-library/retro/provenance.yaml +9 -0
- package/templates/design-library/shadcn/DESIGN.md +141 -0
- package/templates/design-library/shadcn/provenance.yaml +8 -0
- package/templates/design-library/simple/DESIGN.md +141 -0
- package/templates/design-library/simple/provenance.yaml +8 -0
- package/templates/design-library/skeumorphism/DESIGN.md +141 -0
- package/templates/design-library/skeumorphism/provenance.yaml +8 -0
- package/templates/design-library/sleek/DESIGN.md +141 -0
- package/templates/design-library/sleek/provenance.yaml +10 -0
- package/templates/design-library/spacious/DESIGN.md +142 -0
- package/templates/design-library/spacious/provenance.yaml +9 -0
- package/templates/design-library/storytelling/DESIGN.md +141 -0
- package/templates/design-library/storytelling/provenance.yaml +9 -0
- package/templates/design-library/tetris/DESIGN.md +141 -0
- package/templates/design-library/tetris/provenance.yaml +10 -0
- package/templates/design-library/vercel/DESIGN.md +265 -0
- package/templates/design-library/vercel/provenance.yaml +15 -0
- package/templates/design-library/vibrant/DESIGN.md +143 -0
- package/templates/design-library/vibrant/provenance.yaml +8 -0
- package/templates/design-library/vintage/DESIGN.md +134 -0
- package/templates/design-library/vintage/provenance.yaml +8 -0
- package/templates/design-taste/README.md +76 -0
- package/templates/design-taste/brutalist.yaml +43 -0
- package/templates/design-taste/editorial.yaml +46 -0
- package/templates/design-taste/enterprise-clean.yaml +48 -0
- package/templates/design-taste/playful.yaml +46 -0
- package/templates/docs-policy-defaults.json +13 -0
- package/templates/docs-product/README.md.template +39 -0
- package/templates/docs-product/feature-doc.md.template +24 -0
- package/templates/docs-product/persona-landing.md.template +16 -0
- package/templates/gitignore-aperant +5 -0
- package/templates/mockup.html +13 -0
- package/templates/personas-schema.json +302 -0
- package/templates/product-context.schema.json +64 -0
- package/templates/project-md.md +59 -0
- package/templates/proof-verification.md +315 -0
- package/templates/rationalizations/claude-opus-4-6.md +80 -0
- package/templates/state.json +9 -0
- package/templates/wireframe.md +54 -0
- package/workflows/debug.md +277 -0
- package/workflows/docs.md +325 -0
- package/workflows/examples/diamond.yaml +59 -0
- package/workflows/examples/plan-execute-verify.yaml +58 -0
- package/workflows/scan-features.md +308 -0
- package/workflows/verify-proof.md +481 -0
|
@@ -0,0 +1,1756 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apt:pr-review
|
|
3
|
+
description: "Multi-agent PR review — 6 parallel specialists, validator, fixer, self-reviewer"
|
|
4
|
+
apt-skill-version: {{APT_VERSION}}
|
|
5
|
+
stage: review
|
|
6
|
+
intent: ship
|
|
7
|
+
when_to_use: "Use when the user asks to review a GitHub PR — by number, URL, 'the PR', 'my PR', 'Adam's PR', 'deep-verify this PR'. Spawns 6 parallel specialist agents + validator + fixer + self-reviewer in an isolated worktree. Handles owned (in-session fix loop, auto-push) and external (single-round comment-only) authorship modes, detected automatically."
|
|
8
|
+
user_invocable: true
|
|
9
|
+
internal: false
|
|
10
|
+
spawns_agent: false
|
|
11
|
+
agent_name: null
|
|
12
|
+
default_execution_mode: auto
|
|
13
|
+
execution_modes:
|
|
14
|
+
- auto
|
|
15
|
+
- step
|
|
16
|
+
allowed-tools: "Bash, Read, Write, Edit, Grep, Glob, Task"
|
|
17
|
+
argument-hint: "apt:pr-review [pr-number-or-url]"
|
|
18
|
+
gates: []
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /apt:pr-review -- Multi-Agent PR Review System
|
|
22
|
+
|
|
23
|
+
You are a **senior staff engineer and orchestrator** performing a thorough code review using a team of specialized agents. Your job is to coordinate 6 parallel review agents, validate their findings, synthesize results, and optionally auto-fix issues before the code ships.
|
|
24
|
+
|
|
25
|
+
**You orchestrate agents using Claude Code's `Agent` tool.** Review agents write detailed findings to files. Fix agents read those files directly and verify their own work. A self-review agent reviews and fixes autonomously. **Your context stays minimal throughout.**
|
|
26
|
+
|
|
27
|
+
**Finding output format**: All agents write findings per the schema defined in `SCHEMA.md` (in this skill directory). Read it now if you have not already.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Architecture Overview
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
YOU (Orchestrator) -- LIGHTWEIGHT COORDINATOR ONLY
|
|
35
|
+
Phase -1: Resolve orchestration mode + CREATE WORKFLOW GATE
|
|
36
|
+
Phase 0: Set up isolated worktree (for PR/branch reviews)
|
|
37
|
+
Phase 1: Gather diff, create review directory, detect triggers + toolchain
|
|
38
|
+
Phase 2: Spawn 1 agent for auto-checks (runs in worktree)
|
|
39
|
+
Phase 3: Spawn 6 review agents (parallel, read files from worktree)
|
|
40
|
+
Phase 4: Spawn 1 validator agent (reads from worktree)
|
|
41
|
+
Phase 5: Read validated findings, synthesize, write review.json
|
|
42
|
+
Phase 6: Spawn fix agents (edit files in worktree, up to 4 iterations)
|
|
43
|
+
Phase 7: Spawn 1 self-reviewer agent (works in worktree)
|
|
44
|
+
Phase 8: Push fixes, cleanup worktree, write final report
|
|
45
|
+
|
|
46
|
+
WORKFLOW GATE: Each phase requires `apt-tools workflow advance` before entry.
|
|
47
|
+
Skipping phases causes a hard CLI error. This is enforced by the tool, not by you.
|
|
48
|
+
|
|
49
|
+
PHASE 2 -- AUTO-CHECKS (1 agent):
|
|
50
|
+
auto-checks -> Run lint, typecheck, tests using detected toolchain
|
|
51
|
+
|
|
52
|
+
PHASE 3 -- PARALLEL REVIEW (6 agents, independent, all spawned in ONE message):
|
|
53
|
+
security -> OWASP, injection, auth bypass, secrets
|
|
54
|
+
quality -> Error handling, duplication, complexity, naming
|
|
55
|
+
logic -> Off-by-one, null handling, edge cases, race conditions
|
|
56
|
+
codebase-fit -> Naming conventions, import patterns, architecture
|
|
57
|
+
test-integrity -> Deleted tests, weakened assertions, coverage gaps
|
|
58
|
+
performance -> N+1 queries, re-renders, memory leaks, bundle size
|
|
59
|
+
|
|
60
|
+
** Each has Read/Grep/Glob tools for evidence verification **
|
|
61
|
+
** Each writes DETAILED findings to .aperant/pr-reviews/{review-id}/findings/{name}.md **
|
|
62
|
+
** Each returns ONLY a brief 3-5 line summary to orchestrator **
|
|
63
|
+
|
|
64
|
+
PHASE 4 -- VALIDATION (1 agent):
|
|
65
|
+
validator -> Re-investigates every finding, confirms or dismisses
|
|
66
|
+
|
|
67
|
+
PHASE 6 -- FIX LOOP (up to 3 agents per iteration, max 4 iterations):
|
|
68
|
+
fixer-1, fixer-2, fixer-3
|
|
69
|
+
- Read validated finding files directly
|
|
70
|
+
- Fix assigned issues, run verification, stage changes
|
|
71
|
+
- Report brief status to orchestrator
|
|
72
|
+
|
|
73
|
+
PHASE 7 -- SELF-REVIEW (1 fresh agent):
|
|
74
|
+
self-reviewer
|
|
75
|
+
- Reviews fix diffs with zero context pollution
|
|
76
|
+
- Fixes issues itself (up to 2 internal iterations)
|
|
77
|
+
- Reports final pass/fail
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Why This Architecture Prevents Context Compaction
|
|
81
|
+
|
|
82
|
+
| Aspect | Bad Design (context blowup) | This Design (orchestrator stays light) |
|
|
83
|
+
|--------|----------------------------|----------------------------------------|
|
|
84
|
+
| Review findings | Verbose reports returned to orchestrator | Detailed findings written to FILES; orchestrator gets 3-line summaries |
|
|
85
|
+
| Synthesis | Orchestrator processes all findings in context | Orchestrator reads finding FILES via Read tool |
|
|
86
|
+
| Fix coordination | Orchestrator receives verbose fix reports | Fix agents self-verify; send brief status only |
|
|
87
|
+
| Verification | Orchestrator runs checks (output fills context) | Fix agents run checks themselves |
|
|
88
|
+
| Self-review loop | Orchestrator manages iteration loop | Self-reviewer fixes issues ITSELF, no loop back |
|
|
89
|
+
|
|
90
|
+
### Context Budget Rules
|
|
91
|
+
|
|
92
|
+
Large PRs (17k+ diff lines) can exhaust orchestrator context before later phases run. Follow these rules to stay under budget:
|
|
93
|
+
|
|
94
|
+
1. **NEVER embed the full diff in your own context.** Write it to `{REVIEW_DIR}/diff.patch` and reference it. Agents read it themselves.
|
|
95
|
+
2. **NEVER embed the full diff in agent prompts for PRs > 500 changed lines.** Instead, embed only the changed file list and tell agents: `"Read {REVIEW_DIR}/diff.patch for the full diff, or read individual changed files directly from the worktree."`
|
|
96
|
+
3. **For agent prompts**: Do NOT read agent definition files into your context and then copy them into prompts. The `subagent_type` parameter loads the agent definition automatically. Your prompt only needs to fill in the placeholder values (FINDINGS_PATH, WORKTREE_PATH, etc.) and append the Working Directory + Review Context blocks.
|
|
97
|
+
4. **In Phase 5 synthesis**: Read ONLY `validated.md` first. Only read original agent finding files if you need to resolve a specific cross-validation question.
|
|
98
|
+
5. **Do not self-estimate context or skip phases preemptively.** The query loop auto-compacts when it needs to — trust it. Run Phase 6 (auto-fix) and Phase 7 (self-review) every time the preconditions are met (findings exist, fix mode enabled). If auto-compact fires mid-phase, the per-phase findings files on disk are the source of truth; re-read them and continue. The earlier "skip phase 6/7 if context low" rule is removed because it short-circuited auto-compact and forced humans to re-drive the pipeline.
|
|
99
|
+
6. **Phase 6 re-review**: Only re-spawn agents whose categories had findings. If only security and logic had findings, only re-spawn those 2 — not all 6.
|
|
100
|
+
|
|
101
|
+
### Key Design Decision: Review Agents Stay Independent
|
|
102
|
+
|
|
103
|
+
Review agents do NOT communicate with each other during Phase 3. This is intentional:
|
|
104
|
+
- Independent analysis prevents anchoring bias
|
|
105
|
+
- Parallel execution has no waiting on other agents
|
|
106
|
+
- Two agents independently flagging the same issue is a STRONGER signal than one agent telling the other
|
|
107
|
+
- Cross-validation happens in Phase 5 (orchestrator reads the FILES)
|
|
108
|
+
|
|
109
|
+
### Key Design Decision: Findings Flow Through Files, Not Agent Output
|
|
110
|
+
|
|
111
|
+
This is the CRITICAL architectural decision that prevents context compaction:
|
|
112
|
+
- Review agents write verbose findings to `.aperant/pr-reviews/{review-id}/findings/{name}.md`
|
|
113
|
+
- Fix agents READ those files directly -- the data never passes through orchestrator context
|
|
114
|
+
- Orchestrator only ever sees brief summaries (finding count + severity breakdown)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Review Directory Structure
|
|
119
|
+
|
|
120
|
+
Every review creates a self-contained directory under `.aperant/pr-reviews/`:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
.aperant/pr-reviews/{review-id}/
|
|
124
|
+
metadata.json # Review metadata, status, stats
|
|
125
|
+
diff.patch # The diff being reviewed (captured at review start)
|
|
126
|
+
triggers.json # Detected contract change triggers
|
|
127
|
+
toolchain.json # Detected project toolchain
|
|
128
|
+
findings/
|
|
129
|
+
security.md # Security agent findings
|
|
130
|
+
quality.md # Quality agent findings
|
|
131
|
+
logic.md # Logic agent findings
|
|
132
|
+
codebase-fit.md # Codebase-fit agent findings
|
|
133
|
+
test-integrity.md # Test-integrity agent findings
|
|
134
|
+
performance.md # Performance agent findings
|
|
135
|
+
auto-checks.md # Auto-checks agent results
|
|
136
|
+
validated.md # Post-validation consolidated findings
|
|
137
|
+
iterations/
|
|
138
|
+
1/
|
|
139
|
+
fixes-applied.md # What was fixed in this iteration
|
|
140
|
+
diff.patch # Diff of fixes applied
|
|
141
|
+
findings/ # Re-review findings after fixes
|
|
142
|
+
2/
|
|
143
|
+
...
|
|
144
|
+
review.json # Final structured output
|
|
145
|
+
self-review.md # Self-review agent report
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
See `SCHEMA.md` sections 4-7 for the complete schema definitions of `metadata.json`, `review.json`, and the findings file format.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Phase -1: Resolve Orchestration Mode
|
|
153
|
+
|
|
154
|
+
Before anything else, resolve the review orchestration strategy:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
node packages/framework/bin/apt-tools.mjs reconcile .
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Parse the result and display:
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
[APT] Review orchestration: {resolved.review_mode}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
If `downgrades` contains an entry for `review_mode`, display the warning:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
[APT] Warning: review_mode requested '{requested}' but host does not support it — using '{resolved}'. {reason}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Store `resolved.review_mode` as `REVIEW_MODE`. This determines how the 6 specialist agents in Phase 3 are launched:
|
|
173
|
+
|
|
174
|
+
- **`agent-team`**: Use TeamCreate to spawn all 6 reviewers as a coordinated team
|
|
175
|
+
- **`sub-agents`**: Spawn all 6 agents in a single message using the Agent tool (current default behavior)
|
|
176
|
+
- **`sequential`**: Run each of the 6 review perspectives inline, one at a time — the orchestrator adopts each specialist role in sequence, writing findings to the same finding files
|
|
177
|
+
|
|
178
|
+
**Runtime fallback (FRAMEWORK-BUG-003):** if `REVIEW_MODE` resolves to `sub-agents` or `agent-team` BUT the orchestrator runtime doesn't actually expose the `Agent` / `Task` / `TeamCreate` tool (e.g. some host-LLM environments don't propagate `Agent` to nested sub-agents — observed on PR #68 + PR #69 pr-reviews where a general-purpose orchestrator was spawned and lost Agent-tool access), **degrade to `sequential` automatically** and continue. Record the downgrade in `metadata.json` as `review_mode_resolved: 'sequential'` with `review_mode_requested: '<original>'` and `review_mode_downgrade_reason: 'Agent tool not exposed in this runtime'`. Findings rigor is identical — same 6 perspectives, same evidence rule, same audit gate. Only the spawn shape changes.
|
|
179
|
+
|
|
180
|
+
### Create Workflow Gate
|
|
181
|
+
|
|
182
|
+
After resolving orchestration mode, register the workflow so phase transitions are **enforced by the tool, not by you**. You CANNOT proceed to a later phase without advancing through each required phase first.
|
|
183
|
+
|
|
184
|
+
Write the workflow definition to a temporary file and create it:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
cat > /tmp/pr-review-workflow-${REVIEW_ID}.json << 'WFEOF'
|
|
188
|
+
{
|
|
189
|
+
"id": "${REVIEW_ID}",
|
|
190
|
+
"phases": [
|
|
191
|
+
{ "name": "setup", "required": true },
|
|
192
|
+
{ "name": "diff-analysis", "required": true },
|
|
193
|
+
{ "name": "auto-checks", "required": true },
|
|
194
|
+
{ "name": "specialist-review", "required": true },
|
|
195
|
+
{ "name": "validation", "required": true },
|
|
196
|
+
{ "name": "synthesis", "required": true },
|
|
197
|
+
{ "name": "fix-loop", "required": true },
|
|
198
|
+
{ "name": "self-review", "required": false },
|
|
199
|
+
{ "name": "report", "required": true }
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
WFEOF
|
|
203
|
+
|
|
204
|
+
node packages/framework/bin/apt-tools.mjs workflow create . --definition /tmp/pr-review-workflow-${REVIEW_ID}.json
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**MANDATORY**: Before starting any phase below, you MUST call `apt-tools workflow advance` for that phase. If you try to skip a required phase, the tool will reject the call and you must go back and complete it. This is not optional — it is a hard gate enforced by the CLI.
|
|
208
|
+
|
|
209
|
+
### PR-Level State: Init + Lock (PR reviews only)
|
|
210
|
+
|
|
211
|
+
When the review target is `--pr $PR_NUMBER` (GitHub PR review — not a local branch or diff), initialize the per-PR persistent folder and take the PR-level lock BEFORE entering Phase 0. This is R3 of the /apt:pr-review hardening spec: concurrent `/apt:pr-review --pr $PR` invocations refuse to race, and per-round artifacts live under `.aperant/pr-reviews/pr-${PR_NUMBER}/rounds/${ROUND}/`.
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# 1. Seed pr-state.json if this is the first round for this PR.
|
|
215
|
+
node packages/framework/bin/apt-tools.mjs pr-review init-pr . \
|
|
216
|
+
--pr ${PR_NUMBER} \
|
|
217
|
+
--head-ref "${PR_HEAD_REF}" \
|
|
218
|
+
--base-ref "${PR_BASE_REF}"
|
|
219
|
+
|
|
220
|
+
# 2. Take the PR-level lock. Exit non-zero if another agent holds it.
|
|
221
|
+
OWNER="agent-$$-$(date +%s)"
|
|
222
|
+
if ! node packages/framework/bin/apt-tools.mjs pr-review acquire-lock . \
|
|
223
|
+
--pr ${PR_NUMBER} --owner "${OWNER}"; then
|
|
224
|
+
echo "[apt:pr-review] pr_review_locked — another agent is reviewing PR ${PR_NUMBER}. Exiting." >&2
|
|
225
|
+
# The acquire-lock command reports the current lock owner in JSON on stdout.
|
|
226
|
+
exit 2
|
|
227
|
+
fi
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Error path `pr_review_locked`**: exit code 2 from `acquire-lock` means the lock is held by another agent. The JSON body carries the current owner + acquired_at. Do NOT steal the lock; abort the run and instruct the user to wait (or to pass `--ttl-ms` if they believe the held lock is stale).
|
|
231
|
+
|
|
232
|
+
You MUST call `pr-review release-lock` in Phase 8 cleanup regardless of success/failure. Using `close-round` implicitly clears the lock on successful round completion.
|
|
233
|
+
|
|
234
|
+
### Authorship Detection (PR reviews only)
|
|
235
|
+
|
|
236
|
+
Before Phase 0, decide whether this is an **owned** PR (written by us → fix-and-push pipeline) or an **external** PR (fork / outside contributor → comment-only pipeline). This is R4 of the hardening spec. The field is `authorship_mode` (NOT `review_mode` — that's an existing orchestration knob).
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Calls gh CLI, applies .aperant/config.json:pr_review overrides, persists result.
|
|
240
|
+
node packages/framework/bin/apt-tools.mjs pr-review detect-authorship . \
|
|
241
|
+
--pr ${PR_NUMBER}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The command resolves in this precedence order:
|
|
245
|
+
|
|
246
|
+
1. `config.json:pr_review.authorship_overrides['pr-${PR_NUMBER}']` (per-PR pin)
|
|
247
|
+
2. `config.json:pr_review.authorship_override` (global: `owned` | `external` | `auto`)
|
|
248
|
+
3. `gh pr view` → `authorAssociation` + `headRepository.owner.login` vs. viewer login
|
|
249
|
+
- `authorAssociation IN (OWNER, MEMBER, COLLABORATOR)` AND same-repo branch → **owned**
|
|
250
|
+
- Fork OR `authorAssociation IN (NONE, CONTRIBUTOR, FIRST_TIME_CONTRIBUTOR)` → **external**
|
|
251
|
+
4. Offline / gh unavailable / ambiguous payload → **unknown**
|
|
252
|
+
|
|
253
|
+
When the result is `unknown`, treat it as `external` for safety and prompt the user:
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
Authorship could not be auto-detected for PR #${PR_NUMBER}. Treat as [owned / external]? (default: external)
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
If `autonomy_level >= 3` (yolo), skip the prompt and lock in `external`. Persist the user's answer to BOTH `pr-state.json:authorship` AND `config.json:pr_review.authorship_overrides['pr-${PR_NUMBER}']` so subsequent rounds don't re-ask.
|
|
260
|
+
|
|
261
|
+
Store the result as `AUTHORSHIP_MODE` and use it as a gate at every later phase:
|
|
262
|
+
|
|
263
|
+
| Phase | owned | external |
|
|
264
|
+
|---|---|---|
|
|
265
|
+
| 6 (auto-fix loop) | Runs | Skipped |
|
|
266
|
+
| 6b (post-comment) | Skipped | Runs (see below) |
|
|
267
|
+
| 7 (self-review) | Runs | Skipped |
|
|
268
|
+
| 8 (push) | Pushes fixes | No push; close round and comment only |
|
|
269
|
+
|
|
270
|
+
Rationale: external PRs come from forks where we typically cannot push back to the author's branch, and even if we could, unsolicited pushes to contributor branches are hostile. Comment-only is the safe default.
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Phase 0: Worktree Setup
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase setup
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**This phase is executed by YOU (the orchestrator) before anything else.**
|
|
281
|
+
|
|
282
|
+
### Why a Worktree?
|
|
283
|
+
|
|
284
|
+
Review agents have Read/Grep/Glob tools but they need the PR's files on disk to use them. Without a worktree:
|
|
285
|
+
- Agents can't grep callers, trace data flow, or verify handling elsewhere
|
|
286
|
+
- The Evidence Rule breaks — agents can't copy-paste real code if the files don't exist locally
|
|
287
|
+
- Auto-checks would require `gh pr checkout` on the main worktree, polluting the user's branch
|
|
288
|
+
|
|
289
|
+
A git worktree creates a lightweight isolated checkout — the PR's code exists on disk without touching the user's working directory.
|
|
290
|
+
|
|
291
|
+
### When to Create a Worktree
|
|
292
|
+
|
|
293
|
+
| Review target | Worktree needed? | Reason |
|
|
294
|
+
|---------------|------------------|--------|
|
|
295
|
+
| `--pr NUMBER` | **YES** | PR branch is not checked out locally |
|
|
296
|
+
| `--branch NAME` | **YES** | Branch may differ from current checkout |
|
|
297
|
+
| HEAD vs main (default) | **NO** | Files already on disk in current checkout |
|
|
298
|
+
| `--staged` | **NO** | Staged changes are in current working tree |
|
|
299
|
+
|
|
300
|
+
If no worktree is needed, set `WORKTREE_PATH=.` (current directory) and skip the rest of Phase 0.
|
|
301
|
+
|
|
302
|
+
### Step 1: Fetch the PR/Branch
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# For PRs:
|
|
306
|
+
git fetch origin pull/${PR_NUMBER}/head:pr-review-${REVIEW_ID}
|
|
307
|
+
|
|
308
|
+
# For branches:
|
|
309
|
+
git fetch origin ${BRANCH_NAME}
|
|
310
|
+
git branch pr-review-${REVIEW_ID} origin/${BRANCH_NAME}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Step 2: Check for Stale Worktrees
|
|
314
|
+
|
|
315
|
+
Before creating a new worktree, check for and clean up stale ones:
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# Check if worktree path already exists
|
|
319
|
+
if [ -d ".aperant/pr-reviews/${REVIEW_ID}/worktree" ]; then
|
|
320
|
+
git worktree remove --force .aperant/pr-reviews/${REVIEW_ID}/worktree 2>/dev/null
|
|
321
|
+
fi
|
|
322
|
+
|
|
323
|
+
# Check if branch already exists (from a previous aborted review)
|
|
324
|
+
if git rev-parse --verify pr-review-${REVIEW_ID} &>/dev/null; then
|
|
325
|
+
git branch -D pr-review-${REVIEW_ID}
|
|
326
|
+
fi
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Step 3: Create the Worktree
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
git worktree add .aperant/pr-reviews/${REVIEW_ID}/worktree pr-review-${REVIEW_ID}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Step 4: Set WORKTREE_PATH
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
WORKTREE_PATH=.aperant/pr-reviews/${REVIEW_ID}/worktree
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Store this path — every subsequent phase references it.
|
|
342
|
+
|
|
343
|
+
### Step 5: Install Dependencies (if needed)
|
|
344
|
+
|
|
345
|
+
If the project uses a package manager with a lockfile, install dependencies in the worktree so toolchain commands work:
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
cd ${WORKTREE_PATH}
|
|
349
|
+
# Detect package manager and install
|
|
350
|
+
if [ -f "pnpm-lock.yaml" ]; then pnpm install --frozen-lockfile
|
|
351
|
+
elif [ -f "yarn.lock" ]; then yarn install --frozen-lockfile
|
|
352
|
+
elif [ -f "bun.lockb" ]; then bun install --frozen-lockfile
|
|
353
|
+
elif [ -f "package-lock.json" ]; then npm ci
|
|
354
|
+
fi
|
|
355
|
+
cd -
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**Note:** This step may be slow for large projects. If the review target is `--pr` and the dependency tree hasn't changed (check `git diff main...pr-review-${REVIEW_ID} -- *lock*`), you can skip this step.
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Phase 1: Diff Analysis + Trigger Detection
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase diff-analysis
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
**This phase is executed by YOU (the orchestrator), not by a sub-agent.**
|
|
369
|
+
|
|
370
|
+
### Step 1: Generate Review ID
|
|
371
|
+
|
|
372
|
+
Generate a unique review ID from the target + date + random hash.
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
REVIEW_DATE=$(date +%y%m%d)
|
|
376
|
+
REVIEW_HASH=$(head -c 2 /dev/urandom | xxd -p)
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Combine with the target type:
|
|
380
|
+
|
|
381
|
+
| Target | review-id format | Example |
|
|
382
|
+
|--------|-----------------|---------|
|
|
383
|
+
| PR number | `pr-{NUMBER}-{YYMMDD}-{HASH}` | `pr-123-260413-a8f2` |
|
|
384
|
+
| Branch name | `{BRANCH}-{YYMMDD}-{HASH}` | `feat-auth-260413-b3c1` |
|
|
385
|
+
| HEAD vs main (default) | `main-compare-{YYMMDD}-{HASH}` | `main-compare-260413-c7d4` |
|
|
386
|
+
| Staged changes | `staged-{YYMMDD}-{HASH}` | `staged-260413-e1a9` |
|
|
387
|
+
|
|
388
|
+
Store the review ID. You will reference it throughout the entire review pipeline:
|
|
389
|
+
```
|
|
390
|
+
REVIEW_ID={generated-id}
|
|
391
|
+
REVIEW_DIR=.aperant/pr-reviews/${REVIEW_ID}
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Step 2: Create Review Directory
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
mkdir -p .aperant/pr-reviews/${REVIEW_ID}/findings
|
|
398
|
+
mkdir -p .aperant/pr-reviews/${REVIEW_ID}/iterations
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### Step 3: Write Initial metadata.json
|
|
402
|
+
|
|
403
|
+
Write the initial metadata file to track review progress:
|
|
404
|
+
|
|
405
|
+
```json
|
|
406
|
+
{
|
|
407
|
+
"review_id": "{REVIEW_ID}",
|
|
408
|
+
"target": {
|
|
409
|
+
"type": "pr|branch|staged|commits",
|
|
410
|
+
"ref": "{PR number, branch name, or commit range}"
|
|
411
|
+
},
|
|
412
|
+
"created_at": "{ISO 8601 timestamp}",
|
|
413
|
+
"status": "in-progress",
|
|
414
|
+
"iterations_completed": 0,
|
|
415
|
+
"max_iterations": 4,
|
|
416
|
+
"toolchain": "",
|
|
417
|
+
"trigger_count": 0,
|
|
418
|
+
"stats": {
|
|
419
|
+
"total": 0,
|
|
420
|
+
"critical": 0,
|
|
421
|
+
"high": 0,
|
|
422
|
+
"medium": 0,
|
|
423
|
+
"low": 0
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Step 4: Gather Diff
|
|
429
|
+
|
|
430
|
+
Parse `$ARGUMENTS` to determine what to review:
|
|
431
|
+
|
|
432
|
+
| Input | Diff command |
|
|
433
|
+
|-------|-------------|
|
|
434
|
+
| `--pr NUMBER` or bare number | `gh pr diff {NUMBER}` |
|
|
435
|
+
| `--branch NAME` | `git diff main...{NAME}` |
|
|
436
|
+
| No argument (default) | `git diff main...HEAD` |
|
|
437
|
+
| `--staged` | `git diff --staged` |
|
|
438
|
+
|
|
439
|
+
Run the appropriate diff command and save the output:
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
# Example for default HEAD vs main:
|
|
443
|
+
git diff main...HEAD > .aperant/pr-reviews/${REVIEW_ID}/diff.patch
|
|
444
|
+
git diff main...HEAD --name-status > /tmp/review-changed-files.txt
|
|
445
|
+
git diff main...HEAD --stat
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Also capture the changed file list for embedding in agent prompts:
|
|
449
|
+
```bash
|
|
450
|
+
CHANGED_FILES=$(git diff main...HEAD --name-only)
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
If the diff is empty, report "No changes to review" and exit.
|
|
454
|
+
|
|
455
|
+
**R3: pin the reviewed head SHA (PR reviews only).** After `gh pr diff` fetches into `pr-review-${REVIEW_ID}`, capture the SHA and pass it to `pr-review start-round`. All subsequent evidence reads within this round should reference this pinned SHA, not a fresh `gh pr view` call — otherwise a mid-round force-push invalidates cited line numbers.
|
|
456
|
+
|
|
457
|
+
```bash
|
|
458
|
+
# PR-mode only: pin the reviewed head SHA and open a new round.
|
|
459
|
+
if [ -n "$PR_NUMBER" ]; then
|
|
460
|
+
PINNED_HEAD_SHA=$(git rev-parse pr-review-${REVIEW_ID})
|
|
461
|
+
node packages/framework/bin/apt-tools.mjs pr-review start-round . \
|
|
462
|
+
--pr ${PR_NUMBER} --head-sha "${PINNED_HEAD_SHA}"
|
|
463
|
+
# start-round exits with code 2 and JSON status "exhausted" if rounds_completed >= max_rounds.
|
|
464
|
+
# In that case, post a final "budget exhausted" comment (external mode) or fail cleanly.
|
|
465
|
+
fi
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
After this point, the per-round artifact root is `.aperant/pr-reviews/pr-${PR_NUMBER}/rounds/${ROUND}/` (the `${REVIEW_ID}` is still used for the git worktree branch and temporary files). Subsequent `git diff` invocations within the round use `${PINNED_HEAD_SHA}` as the head ref.
|
|
469
|
+
|
|
470
|
+
### Step 5: Read All Changed Files
|
|
471
|
+
|
|
472
|
+
For every file in the changed file list, read it in full using the Read tool **from the worktree**:
|
|
473
|
+
|
|
474
|
+
```
|
|
475
|
+
Read(file_path: "${WORKTREE_PATH}/{relative_file_path}")
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
If `WORKTREE_PATH=.` (HEAD vs main or staged reviews), read from the current directory as normal.
|
|
479
|
+
|
|
480
|
+
**Never skip a file.** Even config files, test files, and type definitions can contain reviewable changes.
|
|
481
|
+
|
|
482
|
+
Store the complete list of changed files and their rough change descriptions. You will embed this in every agent prompt.
|
|
483
|
+
|
|
484
|
+
### Step 6: Trigger Detection
|
|
485
|
+
|
|
486
|
+
Analyze the diff for **contract change patterns**. These are the changes most likely to cause downstream bugs. They tell review agents exactly what to investigate beyond the surface-level diff.
|
|
487
|
+
|
|
488
|
+
**CONTRACT CHANGE TRIGGERS:**
|
|
489
|
+
|
|
490
|
+
#### 1. OUTPUT CONTRACT CHANGED
|
|
491
|
+
A function now returns a different type, shape, or value range.
|
|
492
|
+
- **Detection**: Return type changed in signature, new return paths added, return value structure modified
|
|
493
|
+
- **Question for agents**: "Do callers expect the old return type/shape?"
|
|
494
|
+
- **STOP condition**: Checked 3-5 call sites and confirmed they handle the new output
|
|
495
|
+
|
|
496
|
+
#### 2. INPUT CONTRACT CHANGED
|
|
497
|
+
Parameters added, removed, reordered, or retyped.
|
|
498
|
+
- **Detection**: Function signature modified, new required parameters, default values changed
|
|
499
|
+
- **Question for agents**: "Do callers pass the correct arguments for the new signature?"
|
|
500
|
+
- **STOP condition**: Checked all call sites and confirmed they pass valid arguments
|
|
501
|
+
|
|
502
|
+
#### 3. BEHAVIORAL CONTRACT CHANGED
|
|
503
|
+
Internal behavior differs in timing, ordering, concurrency, or flow.
|
|
504
|
+
- **Detection**: Async added/removed, operation ordering changed, concurrency introduced
|
|
505
|
+
- **Question for agents**: "Does code after the call assume the old ordering/timing?"
|
|
506
|
+
- **STOP condition**: Checked 3-5 dependent call sites
|
|
507
|
+
|
|
508
|
+
#### 4. SIDE EFFECT CONTRACT CHANGED
|
|
509
|
+
Observable effects added or removed (events, cleanup, logging, network calls).
|
|
510
|
+
- **Detection**: Event emissions added/removed, logging added/removed, cleanup functions modified
|
|
511
|
+
- **Question for agents**: "Did callers depend on the removed effect? Do they handle the new one?"
|
|
512
|
+
- **STOP condition**: Checked all listeners/subscribers for the changed effect
|
|
513
|
+
|
|
514
|
+
#### 5. FAILURE CONTRACT CHANGED
|
|
515
|
+
Error handling differs (throws vs returns null, new error types, different error shape).
|
|
516
|
+
- **Detection**: Try/catch modified, error types changed, null returns added where throws existed
|
|
517
|
+
- **Question for agents**: "Can callers handle the new failure mode?"
|
|
518
|
+
- **STOP condition**: Checked all callers for compatible error handling
|
|
519
|
+
|
|
520
|
+
#### 6. STATE LIFECYCLE CHANGED
|
|
521
|
+
New state variables, flags, or counters introduced or modified.
|
|
522
|
+
- **Detection**: New boolean flags, counters, status enums, state machine transitions
|
|
523
|
+
- **Question for agents**: "Is this state properly initialized, updated, AND reset across ALL code paths?"
|
|
524
|
+
- **STOP condition**: Found both SET and RESET paths, or confirmed RESET is missing
|
|
525
|
+
|
|
526
|
+
**For each trigger found, generate a trigger instruction block:**
|
|
527
|
+
|
|
528
|
+
```
|
|
529
|
+
TRIGGER: {TYPE} -- {function/variable name} {description of the change}
|
|
530
|
+
EXPLORATION REQUIRED: {specific question to investigate using Read/Grep tools}
|
|
531
|
+
STOP WHEN: {condition that satisfies the investigation}
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
**Example trigger instructions:**
|
|
535
|
+
```
|
|
536
|
+
TRIGGER: FAILURE CONTRACT -- parseConfig() now throws ConfigError instead of returning null
|
|
537
|
+
EXPLORATION REQUIRED: Read all callers of parseConfig() and verify they have try/catch for ConfigError. Check if any caller uses `if (result === null)` pattern.
|
|
538
|
+
STOP WHEN: Verified all callers handle the new error type, or confirmed a caller is missing the handler.
|
|
539
|
+
|
|
540
|
+
TRIGGER: STATE LIFECYCLE -- isLoading flag added to ChatStore
|
|
541
|
+
EXPLORATION REQUIRED: Grep for all usages of isLoading to verify it has SET (true), RESET (false), and is properly initialized. Check if any code path sets it to true without a corresponding reset.
|
|
542
|
+
STOP WHEN: Found complete lifecycle (init + set + reset) or confirmed a path is missing.
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
Save all trigger instructions to the triggers file:
|
|
546
|
+
|
|
547
|
+
```bash
|
|
548
|
+
# Write triggers.json with structure:
|
|
549
|
+
# {
|
|
550
|
+
# "triggers": [
|
|
551
|
+
# {
|
|
552
|
+
# "type": "OUTPUT_CONTRACT_CHANGED",
|
|
553
|
+
# "target": "parseConfig()",
|
|
554
|
+
# "description": "Now throws ConfigError instead of returning null",
|
|
555
|
+
# "exploration": "Read all callers...",
|
|
556
|
+
# "stop_condition": "Verified all callers..."
|
|
557
|
+
# }
|
|
558
|
+
# ],
|
|
559
|
+
# "trigger_instructions_text": "TRIGGER: FAILURE CONTRACT -- parseConfig()..."
|
|
560
|
+
# }
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
If no triggers detected, save an empty triggers array and set `trigger_instructions_text` to `"No contract change triggers detected."`.
|
|
564
|
+
|
|
565
|
+
### Step 7: Detect Toolchain
|
|
566
|
+
|
|
567
|
+
Detect the project's toolchain for use in auto-checks and fix verification. Run detection **in the worktree** so it picks up the PR's config files:
|
|
568
|
+
|
|
569
|
+
```bash
|
|
570
|
+
node packages/framework/bin/apt-tools.mjs toolchain-detect ${WORKTREE_PATH}
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
If `toolchain-detect` is not available, detect manually by checking for config files **in `${WORKTREE_PATH}`**:
|
|
574
|
+
|
|
575
|
+
1. **Linter**: `biome.json`/`biome.jsonc` (biome), `.eslintrc*`/`eslint.config.*` (eslint)
|
|
576
|
+
2. **Formatter**: `biome.json` (biome), `.prettierrc*` (prettier)
|
|
577
|
+
3. **Type checker**: `tsconfig.json` (tsc)
|
|
578
|
+
4. **Test runner**: `vitest.config.*` (vitest), `jest.config.*` (jest)
|
|
579
|
+
5. **Build**: Check `package.json` for `build` script
|
|
580
|
+
6. **Package.json scripts**: Fall back to `lint`, `typecheck`, `test`, `build` scripts
|
|
581
|
+
|
|
582
|
+
Construct a toolchain commands object:
|
|
583
|
+
|
|
584
|
+
```json
|
|
585
|
+
{
|
|
586
|
+
"lint": "npx biome check .",
|
|
587
|
+
"typecheck": "npx tsc --noEmit",
|
|
588
|
+
"test": "npx vitest run",
|
|
589
|
+
"build": "pnpm build",
|
|
590
|
+
"all": "npx biome check . && npx tsc --noEmit && npx vitest run"
|
|
591
|
+
}
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
Save to `.aperant/pr-reviews/${REVIEW_ID}/toolchain.json`.
|
|
595
|
+
|
|
596
|
+
Update `metadata.json` with the toolchain summary and trigger count.
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
## Phase 2: Auto-Checks
|
|
601
|
+
|
|
602
|
+
```bash
|
|
603
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase auto-checks
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
Spawn 1 Agent to run the detected toolchain commands and report results.
|
|
607
|
+
|
|
608
|
+
**Spawn the auto-checks agent:**
|
|
609
|
+
|
|
610
|
+
```
|
|
611
|
+
Agent(
|
|
612
|
+
name: "auto-checks",
|
|
613
|
+
description: "Run automated lint, typecheck, and test checks",
|
|
614
|
+
prompt: <see AUTO-CHECKS AGENT PROMPT below>,
|
|
615
|
+
)
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
Wait for the agent to complete. Read its brief summary.
|
|
619
|
+
|
|
620
|
+
**If auto-checks report failures:**
|
|
621
|
+
|
|
622
|
+
First, classify each failure:
|
|
623
|
+
|
|
624
|
+
| Classification | When | Action |
|
|
625
|
+
|---------------|------|--------|
|
|
626
|
+
| **PR-caused** | Failure is in a file changed by the diff | Becomes a finding (severity by type below) |
|
|
627
|
+
| **Pre-existing** | Failure is in unchanged files or infra | Note in report, do NOT create findings |
|
|
628
|
+
| **Environment** | Dependency install failed, module not found in worktree | Skip auto-checks entirely, note in metadata |
|
|
629
|
+
|
|
630
|
+
For PR-caused failures, severity:
|
|
631
|
+
- Lint errors: `medium` (unless they indicate real bugs, then `high`)
|
|
632
|
+
- Type errors: `high` (type safety is broken)
|
|
633
|
+
- Test failures: `critical` (existing behavior is broken)
|
|
634
|
+
- Build failures: `critical` (code cannot ship)
|
|
635
|
+
|
|
636
|
+
For PR-caused failures only:
|
|
637
|
+
- Include failure context in the trigger instructions for Phase 3 review agents
|
|
638
|
+
- Append to trigger instructions: `"AUTO-CHECK FAILURES: {summary of failures}. Factor this into your review -- the codebase has broken checks that may affect your analysis."`
|
|
639
|
+
|
|
640
|
+
**If auto-checks pass OR only have pre-existing/environment failures:** Proceed to Phase 3 with no additional finding context. Note any pre-existing failures in `metadata.json` under `auto_checks_notes`.
|
|
641
|
+
|
|
642
|
+
### AUTO-CHECKS AGENT PROMPT
|
|
643
|
+
|
|
644
|
+
```
|
|
645
|
+
You are an automated checks agent spawned by the /apt:pr-review orchestrator.
|
|
646
|
+
|
|
647
|
+
## Working Directory
|
|
648
|
+
|
|
649
|
+
All commands MUST run inside the worktree: {WORKTREE_PATH}
|
|
650
|
+
Run `cd {WORKTREE_PATH}` before executing any toolchain command.
|
|
651
|
+
|
|
652
|
+
## Your Job
|
|
653
|
+
|
|
654
|
+
Run all project checks using the detected toolchain and report results.
|
|
655
|
+
|
|
656
|
+
## Toolchain Commands
|
|
657
|
+
|
|
658
|
+
Run these commands in order FROM THE WORKTREE. If a command fails, continue running the remaining commands.
|
|
659
|
+
|
|
660
|
+
```bash
|
|
661
|
+
cd {WORKTREE_PATH}
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
1. Lint: {LINT_COMMAND}
|
|
665
|
+
2. Typecheck: {TYPECHECK_COMMAND}
|
|
666
|
+
3. Tests: {TEST_COMMAND}
|
|
667
|
+
|
|
668
|
+
## Output
|
|
669
|
+
|
|
670
|
+
Write your DETAILED results to {REVIEW_DIR}/findings/auto-checks.md using this format:
|
|
671
|
+
|
|
672
|
+
```markdown
|
|
673
|
+
# Auto-Checks Results
|
|
674
|
+
|
|
675
|
+
**Review ID:** {REVIEW_ID}
|
|
676
|
+
**Status:** PASS | FAIL
|
|
677
|
+
|
|
678
|
+
## Results
|
|
679
|
+
|
|
680
|
+
### Lint
|
|
681
|
+
- **Status**: PASS | FAIL
|
|
682
|
+
- **Command**: {command}
|
|
683
|
+
- **Output** (if failed):
|
|
684
|
+
```
|
|
685
|
+
{full error output}
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
### Typecheck
|
|
689
|
+
- **Status**: PASS | FAIL
|
|
690
|
+
- **Command**: {command}
|
|
691
|
+
- **Output** (if failed):
|
|
692
|
+
```
|
|
693
|
+
{full error output}
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
### Tests
|
|
697
|
+
- **Status**: PASS | FAIL
|
|
698
|
+
- **Command**: {command}
|
|
699
|
+
- **Output** (if failed):
|
|
700
|
+
```
|
|
701
|
+
{full error output}
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
## Summary
|
|
705
|
+
- Passed: {N} of 3
|
|
706
|
+
- Failed: {list of failed checks}
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
Return ONLY a brief summary to the orchestrator:
|
|
710
|
+
"STATUS: {PASS/FAIL} | lint: {P/F} | typecheck: {P/F} | tests: {P/F}"
|
|
711
|
+
|
|
712
|
+
DO NOT return full error output in your response -- write it to the file.
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
---
|
|
716
|
+
|
|
717
|
+
## Phase 3: Parallel Review
|
|
718
|
+
|
|
719
|
+
```bash
|
|
720
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase specialist-review
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
**CRITICAL: Spawn all 6 review agents in ONE message using 6 parallel Agent tool calls.**
|
|
724
|
+
|
|
725
|
+
Each agent receives:
|
|
726
|
+
1. The changed file list
|
|
727
|
+
2. The full git diff (or a reference to `{REVIEW_DIR}/diff.patch` -- for large diffs, reference the file)
|
|
728
|
+
3. All trigger instructions from Phase 1 (including auto-check failure context if applicable)
|
|
729
|
+
4. The path to write findings: `{REVIEW_DIR}/findings/{name}.md`
|
|
730
|
+
5. A reference to read `SCHEMA.md` for finding format details
|
|
731
|
+
|
|
732
|
+
**For each agent, construct the prompt by reading the corresponding agent definition file and filling in placeholders.**
|
|
733
|
+
|
|
734
|
+
### Agent Spawning Pattern
|
|
735
|
+
|
|
736
|
+
In a SINGLE message, make 6 Agent tool calls:
|
|
737
|
+
|
|
738
|
+
```
|
|
739
|
+
Agent(
|
|
740
|
+
name: "security-reviewer",
|
|
741
|
+
subagent_type: "apt-pr-review-security",
|
|
742
|
+
description: "Security review of PR changes",
|
|
743
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
744
|
+
)
|
|
745
|
+
|
|
746
|
+
Agent(
|
|
747
|
+
name: "quality-reviewer",
|
|
748
|
+
subagent_type: "apt-pr-review-quality",
|
|
749
|
+
description: "Code quality review of PR changes",
|
|
750
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
751
|
+
)
|
|
752
|
+
|
|
753
|
+
Agent(
|
|
754
|
+
name: "logic-reviewer",
|
|
755
|
+
subagent_type: "apt-pr-review-logic",
|
|
756
|
+
description: "Logic and correctness review of PR changes",
|
|
757
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
758
|
+
)
|
|
759
|
+
|
|
760
|
+
Agent(
|
|
761
|
+
name: "codebase-fit-reviewer",
|
|
762
|
+
subagent_type: "apt-pr-review-codebase-fit",
|
|
763
|
+
description: "Codebase fit and convention review of PR changes",
|
|
764
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
765
|
+
)
|
|
766
|
+
|
|
767
|
+
Agent(
|
|
768
|
+
name: "test-integrity-reviewer",
|
|
769
|
+
subagent_type: "apt-pr-review-test-integrity",
|
|
770
|
+
description: "Test integrity review of PR changes",
|
|
771
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
772
|
+
)
|
|
773
|
+
|
|
774
|
+
Agent(
|
|
775
|
+
name: "performance-reviewer",
|
|
776
|
+
subagent_type: "apt-pr-review-performance",
|
|
777
|
+
description: "Performance review of PR changes",
|
|
778
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
779
|
+
)
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
### Constructing Agent Prompts
|
|
783
|
+
|
|
784
|
+
For each of the 6 specialist agents, read the agent definition from `.claude/agents/apt-pr-review-{name}.md` and fill in these placeholders:
|
|
785
|
+
|
|
786
|
+
| Placeholder | Value |
|
|
787
|
+
|-------------|-------|
|
|
788
|
+
| `[FINDINGS_PATH]` | `.aperant/pr-reviews/{REVIEW_ID}/findings/{agent-name}.md` |
|
|
789
|
+
| `[TRIGGER_INSTRUCTIONS]` | The complete trigger instruction text from Phase 1 step 6 (or `"No contract change triggers detected."`) |
|
|
790
|
+
| `[CHANGED_FILES]` | The list of changed files from Phase 1 step 4 |
|
|
791
|
+
| `[GIT_DIFF]` | The git diff output from Phase 1 step 4 |
|
|
792
|
+
| `[WORKTREE_PATH]` | The worktree path from Phase 0 (or `.` for HEAD vs main / staged reviews) |
|
|
793
|
+
| `[LOCKED_DECISIONS]` | **(R6)** ≤500-token digest from `.aperant/context/notes/{task-id}.md` if a task-id can be derived from the PR/branch. Empty string if no ledger found. |
|
|
794
|
+
|
|
795
|
+
**R6 — Decision ledger inject (required):** Before spawning the 6 specialist agents, look for `.aperant/context/notes/{task-id}.md` (where task-id is parseable from the PR branch name or the latest task directory). If found, read the file and extract a ≤500-token digest of locked decisions. Pass it into every specialist prompt as `[LOCKED_DECISIONS]` so reviewers don't flag decisions the team already settled. If no ledger exists, pass an empty string and skip the block.
|
|
796
|
+
|
|
797
|
+
Append to each agent prompt:
|
|
798
|
+
|
|
799
|
+
```
|
|
800
|
+
## Working Directory
|
|
801
|
+
|
|
802
|
+
All file reads and searches MUST target the worktree: {WORKTREE_PATH}
|
|
803
|
+
When using Read, Grep, or Glob tools, prefix file paths with {WORKTREE_PATH}/.
|
|
804
|
+
The diff is at: {REVIEW_DIR}/diff.patch (use as a guide for what changed).
|
|
805
|
+
Read actual source files in the worktree — do NOT rely on the diff alone.
|
|
806
|
+
|
|
807
|
+
## Locked Decisions (R6 — respect or flag as out-of-scope)
|
|
808
|
+
{LOCKED_DECISIONS}
|
|
809
|
+
|
|
810
|
+
## Review Context
|
|
811
|
+
|
|
812
|
+
Review ID: {REVIEW_ID}
|
|
813
|
+
Review Directory: {REVIEW_DIR}
|
|
814
|
+
|
|
815
|
+
## Changed Files
|
|
816
|
+
{CHANGED_FILES}
|
|
817
|
+
|
|
818
|
+
## Git Diff (Reference -- Read actual files in the worktree for full context)
|
|
819
|
+
{GIT_DIFF}
|
|
820
|
+
|
|
821
|
+
Use the diff as a GUIDE, but ALWAYS Read actual files from {WORKTREE_PATH} before reporting findings.
|
|
822
|
+
|
|
823
|
+
## Finding Output Path
|
|
824
|
+
Write your findings to: {FINDINGS_PATH}
|
|
825
|
+
|
|
826
|
+
## Schema Reference
|
|
827
|
+
Read .claude/skills/apt-pr-review/SCHEMA.md for the complete finding format specification.
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
### Handling Large Diffs
|
|
831
|
+
|
|
832
|
+
If the diff exceeds approximately 3000 lines:
|
|
833
|
+
- Do NOT embed the full diff in each agent prompt (this wastes agent context)
|
|
834
|
+
- Instead, embed only the changed file list and tell agents to read `{REVIEW_DIR}/diff.patch` directly
|
|
835
|
+
- Append to the prompt: `"The diff is large. Read {REVIEW_DIR}/diff.patch for the full diff, or read individual changed files directly."`
|
|
836
|
+
|
|
837
|
+
### Waiting for Completion
|
|
838
|
+
|
|
839
|
+
Wait for all 6 agents to complete. Each returns a brief 3-5 line summary:
|
|
840
|
+
- Finding count
|
|
841
|
+
- Severity breakdown
|
|
842
|
+
- Most critical issue (if any)
|
|
843
|
+
|
|
844
|
+
Note the summaries for use in Phase 5 prioritization, but do NOT read the full finding files yet. The finding files are for Phase 4 (validator) and Phase 5 (synthesis).
|
|
845
|
+
|
|
846
|
+
---
|
|
847
|
+
|
|
848
|
+
## Phase 4: Finding Validation
|
|
849
|
+
|
|
850
|
+
```bash
|
|
851
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase validation
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
Spawn 1 Agent to re-investigate every finding from all review agents.
|
|
855
|
+
|
|
856
|
+
**Why validate?** Review agents working from a diff can produce false positives -- issues that look real in the diff but are handled elsewhere, or code that has changed since the diff was captured. The validator independently verifies each finding against the actual codebase.
|
|
857
|
+
|
|
858
|
+
### Spawn the Validator Agent
|
|
859
|
+
|
|
860
|
+
```
|
|
861
|
+
Agent(
|
|
862
|
+
name: "finding-validator",
|
|
863
|
+
subagent_type: "apt-pr-review-validator",
|
|
864
|
+
description: "Re-investigate and validate all review findings",
|
|
865
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
866
|
+
)
|
|
867
|
+
```
|
|
868
|
+
|
|
869
|
+
Read the validator agent definition from `.claude/agents/apt-pr-review-validator.md` and fill in:
|
|
870
|
+
|
|
871
|
+
| Placeholder | Value |
|
|
872
|
+
|-------------|-------|
|
|
873
|
+
| `[REVIEW_DIR]` | `.aperant/pr-reviews/{REVIEW_ID}` |
|
|
874
|
+
|
|
875
|
+
Append to the prompt:
|
|
876
|
+
|
|
877
|
+
```
|
|
878
|
+
## Working Directory
|
|
879
|
+
|
|
880
|
+
All file reads and searches to verify findings MUST target the worktree: {WORKTREE_PATH}
|
|
881
|
+
When using Read, Grep, or Glob tools, prefix file paths with {WORKTREE_PATH}/.
|
|
882
|
+
This ensures you are validating against the actual PR code, not the user's working directory.
|
|
883
|
+
|
|
884
|
+
## Validation Context
|
|
885
|
+
|
|
886
|
+
Review ID: {REVIEW_ID}
|
|
887
|
+
Review Directory: {REVIEW_DIR}
|
|
888
|
+
|
|
889
|
+
Read all finding files from {REVIEW_DIR}/findings/ (excluding validated.md if it exists).
|
|
890
|
+
The finding files are: security.md, quality.md, logic.md, codebase-fit.md, test-integrity.md, performance.md
|
|
891
|
+
|
|
892
|
+
For each finding in each file, run the hypothesis-validation process from your instructions.
|
|
893
|
+
|
|
894
|
+
Write your validated results to: {REVIEW_DIR}/findings/validated.md
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
Wait for the validator to complete. It returns a brief summary:
|
|
898
|
+
```
|
|
899
|
+
VALIDATED: X confirmed | Y dismissed | A ambiguous | J author_judgment
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
### Step E: Deterministic Evidence Rule (R6)
|
|
903
|
+
|
|
904
|
+
After the LLM validator writes `findings/validated.md`, run the deterministic Evidence Rule check. This is a code-level guardrail against two classes of false positive that the LLM validator reliably misses:
|
|
905
|
+
|
|
906
|
+
1. **Fabricated / paraphrased evidence** — the reviewer's `Evidence:` code block was not a literal substring of the cited file range. Caught by literal substring match (whitespace-normalized).
|
|
907
|
+
2. **Multi-file claims without cross-file evidence** — title or description cites more than one file but only the primary file has an evidence snippet. Caught by the file-extension-token regex + `cross_file_evidence` array check.
|
|
908
|
+
|
|
909
|
+
```bash
|
|
910
|
+
node packages/framework/bin/apt-tools.mjs validate-evidence \
|
|
911
|
+
.aperant/pr-reviews/${REVIEW_ID}/findings/ \
|
|
912
|
+
--worktree ${WORKTREE_PATH}
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
The command mutates the findings markdown in place, stamping each finding with one of:
|
|
916
|
+
- `confirmed_valid` (unchanged) — evidence passed the literal + cross-file checks
|
|
917
|
+
- `dismissed_evidence_not_literal` — primary evidence wasn't literal
|
|
918
|
+
- `dismissed_multi_file_evidence_missing` — multi-file claim without matching `cross_file_evidence`
|
|
919
|
+
|
|
920
|
+
The JSON summary on stdout (`{validated, rejected, rejections: [...]}`) should be logged. Rejected findings never reach Phase 6/6b. This is the primary defense against the /apt:pr-review FIT-class regression where paraphrased evidence hit production PR comments.
|
|
921
|
+
|
|
922
|
+
---
|
|
923
|
+
|
|
924
|
+
## Phase 5: Synthesis
|
|
925
|
+
|
|
926
|
+
```bash
|
|
927
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase synthesis
|
|
928
|
+
```
|
|
929
|
+
|
|
930
|
+
**This phase is executed by YOU (the orchestrator), not by a sub-agent.**
|
|
931
|
+
|
|
932
|
+
### Step 1: Read Validated Findings
|
|
933
|
+
|
|
934
|
+
Read `.aperant/pr-reviews/{REVIEW_ID}/findings/validated.md` using the Read tool.
|
|
935
|
+
|
|
936
|
+
Parse the validated findings into three groups:
|
|
937
|
+
- **Confirmed valid** -- these proceed to fix/report
|
|
938
|
+
- **Dismissed (false positives)** -- these are counted in stats but not acted on
|
|
939
|
+
- **Needs human review** -- these are included in the report with a flag
|
|
940
|
+
|
|
941
|
+
### Step 2: Cross-Validate
|
|
942
|
+
|
|
943
|
+
Check which findings were independently flagged by multiple review agents. To do this:
|
|
944
|
+
- Read each original finding file (`security.md`, `quality.md`, etc.)
|
|
945
|
+
- Compare file + line + issue description across agents
|
|
946
|
+
- When the same issue appears in multiple agent findings, mark it with `flagged_by: [agent1, agent2]`
|
|
947
|
+
- Cross-validated findings have stronger signal -- note this in the review.json
|
|
948
|
+
|
|
949
|
+
### Step 3: Deduplicate
|
|
950
|
+
|
|
951
|
+
For findings that overlap (same file, same line range, same fundamental issue):
|
|
952
|
+
- Merge into a single finding
|
|
953
|
+
- Keep the most detailed description
|
|
954
|
+
- Combine `flagged_by` arrays
|
|
955
|
+
- Keep the highest severity among duplicates
|
|
956
|
+
|
|
957
|
+
### Step 4: Group for Fix Tasks
|
|
958
|
+
|
|
959
|
+
Group confirmed findings into fix assignments by file overlap (max 3 groups):
|
|
960
|
+
|
|
961
|
+
1. **By file overlap**: Issues touching the same files go in the same group
|
|
962
|
+
2. **By logical domain**: Related concerns together (e.g., all import pattern issues)
|
|
963
|
+
3. **By complexity**: Simple fixes batched, complex fixes get dedicated groups
|
|
964
|
+
|
|
965
|
+
### Step 5: Compute Scores
|
|
966
|
+
|
|
967
|
+
Score each dimension 1-10 based on validated findings:
|
|
968
|
+
|
|
969
|
+
| Dimension | What lowers the score |
|
|
970
|
+
|-----------|----------------------|
|
|
971
|
+
| Security | Security findings (critical = -4, high = -2, medium = -1) |
|
|
972
|
+
| Quality | Quality findings (same scale) |
|
|
973
|
+
| Logic | Logic findings (same scale) |
|
|
974
|
+
| Architecture | Codebase-fit findings (same scale) |
|
|
975
|
+
| Performance | Performance findings (same scale) |
|
|
976
|
+
|
|
977
|
+
Start at 10 for each dimension. Subtract based on finding severity. Floor at 1.
|
|
978
|
+
|
|
979
|
+
### Step 6: Determine Assessment
|
|
980
|
+
|
|
981
|
+
| Assessment | Condition |
|
|
982
|
+
|-----------|-----------|
|
|
983
|
+
| `approve` | Zero critical or high findings remaining after validation. |
|
|
984
|
+
| `request-changes` | One or more critical or high findings remain. |
|
|
985
|
+
| `comment` | Only medium/low findings remain. Informational review. |
|
|
986
|
+
|
|
987
|
+
### Step 7: Write review.json
|
|
988
|
+
|
|
989
|
+
Write the structured review output to `.aperant/pr-reviews/{REVIEW_ID}/review.json`:
|
|
990
|
+
|
|
991
|
+
```json
|
|
992
|
+
{
|
|
993
|
+
"review_id": "{REVIEW_ID}",
|
|
994
|
+
"assessment": "approve|request-changes|comment",
|
|
995
|
+
"summary": "1-2 sentence human-readable assessment of the changes",
|
|
996
|
+
"scores": {
|
|
997
|
+
"security": 9,
|
|
998
|
+
"quality": 8,
|
|
999
|
+
"logic": 8,
|
|
1000
|
+
"architecture": 9,
|
|
1001
|
+
"performance": 8
|
|
1002
|
+
},
|
|
1003
|
+
"findings": [
|
|
1004
|
+
{
|
|
1005
|
+
"id": "SEC-001",
|
|
1006
|
+
"severity": "high",
|
|
1007
|
+
"category": "security",
|
|
1008
|
+
"title": "...",
|
|
1009
|
+
"description": "...",
|
|
1010
|
+
"impact": "...",
|
|
1011
|
+
"file": "...",
|
|
1012
|
+
"line": 42,
|
|
1013
|
+
"evidence": "...",
|
|
1014
|
+
"evidence_context": { "...": "..." },
|
|
1015
|
+
"suggested_fix": "...",
|
|
1016
|
+
"fixable": true,
|
|
1017
|
+
"flagged_by": ["security", "quality"],
|
|
1018
|
+
"validation_status": "confirmed_valid"
|
|
1019
|
+
}
|
|
1020
|
+
],
|
|
1021
|
+
"stats": {
|
|
1022
|
+
"files_reviewed": 12,
|
|
1023
|
+
"findings_total": 5,
|
|
1024
|
+
"critical": 0,
|
|
1025
|
+
"high": 1,
|
|
1026
|
+
"medium": 3,
|
|
1027
|
+
"low": 1,
|
|
1028
|
+
"false_positives_dismissed": 2
|
|
1029
|
+
},
|
|
1030
|
+
"iterations": {
|
|
1031
|
+
"total": 0,
|
|
1032
|
+
"findings_per_iteration": []
|
|
1033
|
+
},
|
|
1034
|
+
"created_at": "{ISO timestamp}",
|
|
1035
|
+
"completed_at": null
|
|
1036
|
+
}
|
|
1037
|
+
```
|
|
1038
|
+
|
|
1039
|
+
### Step 8: Print Intermediate Report
|
|
1040
|
+
|
|
1041
|
+
Before proceeding to Phase 6, output an intermediate report to the user:
|
|
1042
|
+
|
|
1043
|
+
```
|
|
1044
|
+
Review Synthesis (Before Auto-Fix)
|
|
1045
|
+
|
|
1046
|
+
Auto-Checks: {PASS/FAIL}
|
|
1047
|
+
lint: {P/F} | typecheck: {P/F} | tests: {P/F}
|
|
1048
|
+
|
|
1049
|
+
Validated Findings:
|
|
1050
|
+
CRITICAL: {N}
|
|
1051
|
+
HIGH: {N}
|
|
1052
|
+
MEDIUM: {N}
|
|
1053
|
+
LOW: {N}
|
|
1054
|
+
|
|
1055
|
+
False Positives Dismissed: {N}
|
|
1056
|
+
Evidence Ambiguous: {A}
|
|
1057
|
+
Author Judgment Required: {J}
|
|
1058
|
+
|
|
1059
|
+
Cross-Validated (multiple agents agreed):
|
|
1060
|
+
{list of findings flagged by 2+ agents}
|
|
1061
|
+
|
|
1062
|
+
Assessment: {approve / request-changes / comment}
|
|
1063
|
+
|
|
1064
|
+
Proceeding to auto-fix {N} fixable issues in {M} groups...
|
|
1065
|
+
```
|
|
1066
|
+
|
|
1067
|
+
**IMPORTANT: Immediately proceed to Phase 6 if any fixable issues were found and autonomy allows it.** Do not ask the user unless the assessment is `request-changes` with critical findings.
|
|
1068
|
+
|
|
1069
|
+
### Step 9: Cross-Model FP Gate (external mode only — R6)
|
|
1070
|
+
|
|
1071
|
+
**Only runs when `AUTHORSHIP_MODE == "external"`.** Owned-mode PRs skip this step — the auto-fix path is reversible, so a single-model false positive has a bounded blast radius (a diff commit can be reverted). External-mode findings are going straight to a public PR comment the author will read, so a second opinion from a different model is worth the latency.
|
|
1072
|
+
|
|
1073
|
+
For every finding with `validation_status == "confirmed_valid"` AND `severity ∈ {high, medium}`:
|
|
1074
|
+
|
|
1075
|
+
1. Read the cited file range (`file` + `evidence_context.line_range_examined`). Include 5 lines of context on either side.
|
|
1076
|
+
2. Render the prompt from `packages/framework/skills/apt-pr-review/prompts/fp-gate-codex.md`, substituting:
|
|
1077
|
+
- `{FINDING_JSON}` — the finding's full JSON (severity, title, description, evidence, file, line).
|
|
1078
|
+
- `{FILE_SNIPPET}` — the lines read in step 1.
|
|
1079
|
+
- `{CLAUDE_MD}` — first 4k characters of the project's `CLAUDE.md` (for project conventions).
|
|
1080
|
+
- `{REVIEWER_EVIDENCE}` — the finding's `evidence` field verbatim.
|
|
1081
|
+
3. Invoke codex using the shape configured at `.aperant/config.json:router.llm.providers.codex`:
|
|
1082
|
+
```bash
|
|
1083
|
+
codex exec --model gpt-5.3-codex --input-file /tmp/fp-gate-${FINDING_ID}.md
|
|
1084
|
+
```
|
|
1085
|
+
Parse the JSON response `{verdict, reasoning, evidence_quote, severity_assessment}`.
|
|
1086
|
+
4. If `verdict == "falsify"`, set the finding's `validation_status = "dismissed_cross_model_falsification"` and copy the codex response into `fp_gate_result`. If `verdict == "confirm"`, pass through unchanged.
|
|
1087
|
+
|
|
1088
|
+
**Graceful degradation:** if codex CLI is missing (`host-detect` capability check), or the call times out, write a `fp-gate-degraded-${TIMESTAMP}.json` event to `.aperant/events/` (same pattern as `fs-lock` timeouts) and let findings through unchanged — the deterministic Evidence Rule check above (Phase 4 Step E) is the non-negotiable floor; the cross-model gate is an additional, best-effort guard.
|
|
1089
|
+
|
|
1090
|
+
**Critical findings bypass this gate.** Suppressing a critical regression because codex disagrees is a worse failure mode than a false-positive critical comment — a human will read it either way.
|
|
1091
|
+
|
|
1092
|
+
Typical cost: 3-8 codex calls per external round. Keep `--timeout-ms` conservative (15000) so a flaky codex session doesn't stall the whole pipeline.
|
|
1093
|
+
|
|
1094
|
+
---
|
|
1095
|
+
|
|
1096
|
+
## Phase 6: Auto-Fix Loop
|
|
1097
|
+
|
|
1098
|
+
```bash
|
|
1099
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase fix-loop
|
|
1100
|
+
```
|
|
1101
|
+
|
|
1102
|
+
### Authorship Gate (R4)
|
|
1103
|
+
|
|
1104
|
+
**If `AUTHORSHIP_MODE == "external"`, SKIP this entire phase and jump to Phase 6b.** External PRs run a comment-only pipeline — we never push fixes to contributor branches. The `workflow advance --phase fix-loop` call still runs so the workflow state machine stays consistent, but the fix work itself is skipped.
|
|
1105
|
+
|
|
1106
|
+
For `AUTHORSHIP_MODE == "owned"`, continue normally.
|
|
1107
|
+
|
|
1108
|
+
### Principle: Fix Everything
|
|
1109
|
+
|
|
1110
|
+
AI agents have near-zero marginal cost per fix. The framework fixes **all** confirmed findings — critical, high, medium, and low — regardless of autonomy level. There is no severity gate and no "report for manual resolution" path. If a finding was confirmed by the validator, it gets fixed.
|
|
1111
|
+
|
|
1112
|
+
| Autonomy | Action |
|
|
1113
|
+
|----------|--------|
|
|
1114
|
+
| `< 2` | Show findings summary before fixing. Then proceed with auto-fix. |
|
|
1115
|
+
| `>= 2` | Proceed with auto-fix immediately. |
|
|
1116
|
+
|
|
1117
|
+
Read the autonomy level from `.aperant/config.json` to determine whether to show findings first:
|
|
1118
|
+
|
|
1119
|
+
```bash
|
|
1120
|
+
cat .aperant/config.json
|
|
1121
|
+
```
|
|
1122
|
+
|
|
1123
|
+
If config is missing or unreadable, default to autonomy `2` (fix immediately).
|
|
1124
|
+
|
|
1125
|
+
### Critical Finding Gate
|
|
1126
|
+
|
|
1127
|
+
Critical findings ALWAYS require explicit user confirmation before any fix attempt, regardless of autonomy level.
|
|
1128
|
+
|
|
1129
|
+
For each critical finding:
|
|
1130
|
+
1. Display the finding to the user (id, title, file, line, evidence, suggested fix)
|
|
1131
|
+
2. Ask: "Fix this critical finding? (y/n)"
|
|
1132
|
+
3. Track the response as `CRITICAL_APPROVAL` for each finding
|
|
1133
|
+
|
|
1134
|
+
Only findings with `CRITICAL_APPROVAL = true` are sent to fix agents.
|
|
1135
|
+
|
|
1136
|
+
Findings marked `fixable: false` are never sent to fix agents.
|
|
1137
|
+
|
|
1138
|
+
### Round Budget Model (R5)
|
|
1139
|
+
|
|
1140
|
+
`/apt:pr-review` uses two different loop shapes depending on `AUTHORSHIP_MODE`. The overall budget is the same (4 attempts max with a discovery/verification split) but the unit differs:
|
|
1141
|
+
|
|
1142
|
+
- **`owned` mode (same as before R5):** one `/apt:pr-review` invocation runs **up to 4 iterations in a single session** — the inner Iteration Loop below. Iterations 1-2 are discovery, 3-4 are verification-only. This is the existing behavior.
|
|
1143
|
+
- **`external` mode:** one `/apt:pr-review` invocation runs **exactly one round** against the current head SHA, then posts the Phase 6b comment and exits. Rounds persist across invocations in `pr-state.json:rounds_completed` (tracked by `pr-review start-round`). Rounds 1-2 are discovery, 3-4 are verification. Max rounds default to 4 (configurable via `pr_review.max_rounds`).
|
|
1144
|
+
|
|
1145
|
+
When `rounds_completed >= max_rounds`, `pr-review start-round` returns `{status: "exhausted", max_rounds}` and exits non-zero. The orchestrator must then exit cleanly and post a final "budget exhausted — no further review rounds will be attempted" comment in external mode, or stop iterating in owned mode.
|
|
1146
|
+
|
|
1147
|
+
#### Regression-From-Fix Carve-Out (verification rounds)
|
|
1148
|
+
|
|
1149
|
+
In verification phase (round/iteration >= 3) the default rule is "don't emit new findings — only verify existing ones." This prevents endless fishing. BUT: if the author's fix commits between rounds introduce a CRITICAL-severity regression, suppressing it would ship a real bug. The carve-out:
|
|
1150
|
+
|
|
1151
|
+
A specialist agent MAY emit a new finding in verification phase if ALL three hold:
|
|
1152
|
+
1. Severity is **critical**.
|
|
1153
|
+
2. The code is in the diff between `PRIOR_ROUND_HEAD_SHA` and the current head SHA, AND the diff modifies (not just adds to) that code.
|
|
1154
|
+
3. The finding is not present in the prior round's `findings/validated.json`.
|
|
1155
|
+
|
|
1156
|
+
The agent marks the finding with `regression_from_fix: true` and `regression_from_fix_round: {PRIOR_ROUND}`. The validator (Phase 4) honors this field and does NOT dismiss the finding as "out-of-scope for verification phase." Medium/low regressions are silently skipped — they'll be caught by the author or by a future cycle.
|
|
1157
|
+
|
|
1158
|
+
Each of the 6 Phase 3 specialist agent definitions carries a `## Regression Detection (verification rounds only)` block with this carve-out written out.
|
|
1159
|
+
|
|
1160
|
+
### Iteration Loop (owned mode — max 4 iterations, discovery/verification split)
|
|
1161
|
+
|
|
1162
|
+
This is the owned-mode path. External-mode invocations run Phase 6b instead of this loop and return control to the caller. The loop has two distinct phases to prevent infinite new-issue discovery:
|
|
1163
|
+
|
|
1164
|
+
- **Iterations 1-2 (discovery):** Fresh re-review may find new issues beyond the original set. All new findings are added to the backlog and fixed.
|
|
1165
|
+
- **Iterations 3-4 (verification-only):** Re-review ONLY checks whether previously found issues are resolved. New discoveries are ignored — they do not enter the backlog, UNLESS they satisfy the regression-from-fix carve-out above. If all prior issues are confirmed fixed, break immediately.
|
|
1166
|
+
|
|
1167
|
+
```
|
|
1168
|
+
for ITERATION in 1 2 3 4:
|
|
1169
|
+
1. Create iteration directory
|
|
1170
|
+
2. Group findings into fix assignments (max 3 groups)
|
|
1171
|
+
3. Spawn fix agents
|
|
1172
|
+
4. Wait for completion
|
|
1173
|
+
5. Generate new diff
|
|
1174
|
+
6. If fixes were applied: spawn fresh review on new diff
|
|
1175
|
+
7. If ITERATION <= 2: accept new findings into the backlog
|
|
1176
|
+
If ITERATION > 2: only check prior findings — ignore new discoveries
|
|
1177
|
+
8. If 0 outstanding findings: BREAK
|
|
1178
|
+
9. If findings remain: continue to next iteration
|
|
1179
|
+
```
|
|
1180
|
+
|
|
1181
|
+
#### Step 1: Create Iteration Directory
|
|
1182
|
+
|
|
1183
|
+
```bash
|
|
1184
|
+
mkdir -p .aperant/pr-reviews/${REVIEW_ID}/iterations/${ITERATION}
|
|
1185
|
+
mkdir -p .aperant/pr-reviews/${REVIEW_ID}/iterations/${ITERATION}/findings
|
|
1186
|
+
```
|
|
1187
|
+
|
|
1188
|
+
#### Step 2: Group Findings into Fix Assignments
|
|
1189
|
+
|
|
1190
|
+
Take all confirmed, fixable findings and group them into up to 3 independent groups by file overlap:
|
|
1191
|
+
- Issues touching the same files go in the same group
|
|
1192
|
+
- Each group gets a list of finding IDs and the files they cover
|
|
1193
|
+
- No two groups should share files (prevents concurrent edit conflicts)
|
|
1194
|
+
|
|
1195
|
+
#### Step 3: Spawn Fix Agents
|
|
1196
|
+
|
|
1197
|
+
For each fix group, spawn a fix agent. Read the agent definition from `.claude/agents/apt-pr-review-fixer.md` and fill in:
|
|
1198
|
+
|
|
1199
|
+
| Placeholder | Value |
|
|
1200
|
+
|-------------|-------|
|
|
1201
|
+
| `[REVIEW_DIR]` | `.aperant/pr-reviews/{REVIEW_ID}` |
|
|
1202
|
+
| `[FIX_ASSIGNMENT]` | List of finding IDs and files for this group |
|
|
1203
|
+
| `[N]` | Current iteration number |
|
|
1204
|
+
| `[FIXER_NAME]` | `fixer-1`, `fixer-2`, or `fixer-3` |
|
|
1205
|
+
| `[TOOLCHAIN_COMMANDS]` | Commands from `toolchain.json` (the `all` command, or individual commands) |
|
|
1206
|
+
| `[CRITICAL_APPROVAL]` | `true` or `false` for each critical finding in this group |
|
|
1207
|
+
| `[PARALLEL_FIXERS]` | `true` if more than 1 fixer is spawned this iteration |
|
|
1208
|
+
| `[WORKTREE_PATH]` | The worktree path — fix agents edit files HERE, not in the user's working directory |
|
|
1209
|
+
|
|
1210
|
+
```
|
|
1211
|
+
Agent(
|
|
1212
|
+
name: "fixer-1",
|
|
1213
|
+
subagent_type: "apt-pr-review-fixer",
|
|
1214
|
+
description: "Fix review findings group 1",
|
|
1215
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
1216
|
+
)
|
|
1217
|
+
```
|
|
1218
|
+
|
|
1219
|
+
If there are 2-3 groups, spawn all fix agents in ONE message for parallel execution.
|
|
1220
|
+
|
|
1221
|
+
#### Step 4: Wait for Completion
|
|
1222
|
+
|
|
1223
|
+
Wait for all fix agents to return their brief status:
|
|
1224
|
+
```
|
|
1225
|
+
FIXED: X | FAILED: Y | SKIPPED: Z | VERIFICATION: PASS/FAIL
|
|
1226
|
+
```
|
|
1227
|
+
|
|
1228
|
+
#### Step 4b: Audit Fixer Output (Hallucination Gate)
|
|
1229
|
+
|
|
1230
|
+
On 2026-04-20 a live fix agent returned `FIXED: 2 | FAILED: 0 | SKIPPED: 0 | VERIFICATION: PASS` and wrote a convincing 140-line `fixes-applied.md` — but the worktree had zero edits matching the claimed files. The orchestrator trusted the self-reported status line and nearly shipped two fabricated fixes. This step is the deterministic gate that closes that hole: for EACH fixer that returned in Step 4, run the audit CLI and cross-check the fixer's claims against the actual git state.
|
|
1231
|
+
|
|
1232
|
+
**Capture the iteration-start SHA BEFORE spawning fixers** so the audit can cover committed fixes (bug-5, 2026-04-23 — fixers that commit their edits before returning would otherwise present an empty working tree and trip a false-positive hallucination verdict):
|
|
1233
|
+
|
|
1234
|
+
```bash
|
|
1235
|
+
# Before Step 3 (Spawn Fix Agents), capture:
|
|
1236
|
+
ITERATION_START_SHA=$(cd "${WORKTREE_PATH}" && git rev-parse HEAD)
|
|
1237
|
+
```
|
|
1238
|
+
|
|
1239
|
+
Then, for each returned fixer, run:
|
|
1240
|
+
|
|
1241
|
+
```bash
|
|
1242
|
+
node packages/framework/bin/apt-tools.mjs pr-review audit-fixer . \
|
|
1243
|
+
--review-dir "${REVIEW_DIR}" \
|
|
1244
|
+
--iteration "${ITERATION}" \
|
|
1245
|
+
--fixer "${FIXER_NAME}" \
|
|
1246
|
+
--worktree "${WORKTREE_PATH}" \
|
|
1247
|
+
--status-line "${STATUS_LINE}" \
|
|
1248
|
+
--since-sha "${ITERATION_START_SHA}"
|
|
1249
|
+
```
|
|
1250
|
+
|
|
1251
|
+
`--since-sha <sha>` is **authoritative** and strongly recommended: when supplied, the audit window is the UNION of uncommitted diff (`git diff --cached` ∪ `git diff` ∪ `git ls-files --others`) AND committed diff (`git diff ${sinceSha}..HEAD --name-only`). This makes the gate robust to fixers that commit their edits before returning, and it scopes the committed window to exactly the CURRENT iteration.
|
|
1252
|
+
|
|
1253
|
+
If `--since-sha` is **omitted**, the CLI falls back to `git merge-base HEAD origin/main` (then `origin/master`) as a **best-effort** default. Semantics of each branch of the fallback chain:
|
|
1254
|
+
|
|
1255
|
+
1. **`--since-sha <sha>` supplied** → audit window is `[sha..HEAD]` ∪ uncommitted. This is the ONLY branch that bounds the committed window to the current iteration. `observed.since_sha_source = "flag"`. No stderr hint.
|
|
1256
|
+
2. **`--since-sha` omitted AND `git merge-base HEAD origin/main` (or `origin/master`) resolves** → audit window is `[merge-base..HEAD]` ∪ uncommitted. This widens the committed window to the **entire PR branch**, not the current iteration. A no-op fixer in iteration N can therefore still be stamped `verified` if ANY prior iteration committed matching files. `observed.since_sha_source = "merge-base"`. No stderr hint. **Orchestrators MUST pass `--since-sha` to avoid this degradation** — relying on the merge-base fallback silently loses per-iteration verification strictness.
|
|
1257
|
+
3. **`--since-sha` omitted AND `origin/main` is not fetched locally (no `refs/remotes/origin/main`)** → `merge-base` errors, `tryResolveDefaultSinceSha` returns `null`, and the audit stays on the legacy uncommitted-only window. `observed.since_sha = null`, `observed.since_sha_source = null`. **Stderr HINT fires** on any empty-diff hallucination verdict, pointing at `--since-sha` as the escape hatch.
|
|
1258
|
+
4. **`--since-sha` omitted AND HEAD has no common ancestor with `origin/main` or `origin/master`** (unrelated histories, e.g. an orphan branch) → same as case (3): `merge-base` errors in the try/catch, `null` returned, legacy window + stderr hint on empty-diff verdicts.
|
|
1259
|
+
|
|
1260
|
+
Rule of thumb: pass `--since-sha "${ITERATION_START_SHA}"` on every audit invocation. The merge-base fallback exists only so a missing flag doesn't flip every standard-branch-workflow repo into a false-positive hallucination — it is NOT a replacement for the explicit flag.
|
|
1261
|
+
|
|
1262
|
+
The CLI returns a JSON envelope with `verdict` ∈ `verified | hallucinated | skipped`, writes `iterations/${ITERATION}/audit.json` (append-only), and bumps `metadata.json.fixer_hallucinations_total` on every `hallucinated` outcome. The envelope's `observed.since_sha` + `observed.since_sha_source` fields record which SHA was used and where it came from (`flag` | `merge-base` | `null`). The same envelope is used for the fixer and the self-reviewer (Phase 7) — `--fixer self-reviewer` reads from `self-review.md` instead of `fixes-applied-group{N}.md`.
|
|
1263
|
+
|
|
1264
|
+
| Verdict | Orchestrator Action |
|
|
1265
|
+
|---------|---------------------|
|
|
1266
|
+
| `verified` | Proceed to Step 5 for this fixer. |
|
|
1267
|
+
| `skipped` | Proceed to Step 5 for this fixer. Log the entry in `audit.json` / `metadata.json.fixer_verdicts[]` — not a hallucination, the fixer legitimately skipped all findings (e.g. all `fixable: false`). |
|
|
1268
|
+
| `hallucinated` | Do **NOT** count the fixer's claimed fixes as resolved — leave those findings in the outstanding backlog. If `iteration <= 2` AND the fixer is not yet one-strike: re-spawn the same fixer with an `[HALLUCINATION_CALLOUT]` block prepended to its prompt quoting the `audit.json` entry and stating "your last run reported PASS but the worktree showed no edits; you MUST actually edit files this time." Mark the fixer one-strike in `audit.json`. If the fixer hallucinates twice OR `iteration > 2`, set `metadata.status = "needs-human-review"` and mark the unresolved findings `validation_status: "needs_human_review"`. Do NOT silently ship the review. |
|
|
1269
|
+
|
|
1270
|
+
Fail-closed: on parse/IO errors (missing `fixes-applied.md`, malformed status line, unreadable worktree) the CLI returns `verdict: "hallucinated"` with a human-readable `reason`. Trust that envelope — do not re-parse the fixer's markdown from the orchestrator context. This keeps the orchestrator context light: the gate is a deterministic Node CLI, not an LLM judgement.
|
|
1271
|
+
|
|
1272
|
+
#### Step 5: Read Fix Reports and Generate New Diff
|
|
1273
|
+
|
|
1274
|
+
Read each fixer's report from `.aperant/pr-reviews/${REVIEW_ID}/iterations/${ITERATION}/fixes-applied.md`.
|
|
1275
|
+
|
|
1276
|
+
Generate the new diff showing what was fixed (from the worktree):
|
|
1277
|
+
```bash
|
|
1278
|
+
cd ${WORKTREE_PATH} && git diff > ../${REVIEW_ID}/iterations/${ITERATION}/diff.patch
|
|
1279
|
+
```
|
|
1280
|
+
|
|
1281
|
+
Or if `WORKTREE_PATH=.`:
|
|
1282
|
+
```bash
|
|
1283
|
+
git diff > .aperant/pr-reviews/${REVIEW_ID}/iterations/${ITERATION}/diff.patch
|
|
1284
|
+
```
|
|
1285
|
+
|
|
1286
|
+
#### Step 6: Fresh Re-Review (if fixes were applied)
|
|
1287
|
+
|
|
1288
|
+
**IMPORTANT: Each iteration spawns FRESH review agents to prevent anchoring bias.**
|
|
1289
|
+
|
|
1290
|
+
If fixes were applied:
|
|
1291
|
+
|
|
1292
|
+
1. Capture the new diff (post-fix changes vs the original base)
|
|
1293
|
+
2. Spawn fresh review agents (same 6 specialists) on the NEW code state
|
|
1294
|
+
3. Each fresh agent writes to `.aperant/pr-reviews/${REVIEW_ID}/iterations/${ITERATION}/findings/`
|
|
1295
|
+
4. Spawn a fresh validator on the new findings
|
|
1296
|
+
5. Read validated results
|
|
1297
|
+
|
|
1298
|
+
This ensures review agents are not biased by previous findings -- they see the code fresh.
|
|
1299
|
+
|
|
1300
|
+
**For re-review iterations, ONLY spawn agents whose categories had findings in the previous round.** If security had 0 findings and no fixes touched security-relevant code, do not re-spawn the security agent. This saves time.
|
|
1301
|
+
|
|
1302
|
+
#### Step 7: Apply Discovery/Verification Split
|
|
1303
|
+
|
|
1304
|
+
**Iterations 1-2 (discovery):** Merge any new confirmed findings from the re-review into the outstanding backlog. These will be fixed in the next iteration.
|
|
1305
|
+
|
|
1306
|
+
**Iterations 3-4 (verification-only):** Ignore any newly discovered findings — they are not added to the backlog. Only check whether previously identified findings are now resolved. If `apt:pr-review` surfaces genuinely new issues at this stage, they'll be caught if the user runs another review cycle or during the next PR review.
|
|
1307
|
+
|
|
1308
|
+
#### Step 8: Check for Convergence
|
|
1309
|
+
|
|
1310
|
+
After applying the split:
|
|
1311
|
+
- If 0 outstanding findings remain: **BREAK the loop.** All issues resolved.
|
|
1312
|
+
- If findings remain and iterations left: continue to the next iteration.
|
|
1313
|
+
- If findings remain and all 4 iterations exhausted: mark remaining as `evidence_ambiguous` (or `author_judgment_required` if the blocker is design-intent, not evidence — see apt-pr-review-validator.md for the split, R6).
|
|
1314
|
+
|
|
1315
|
+
#### Step 9: Update Stats
|
|
1316
|
+
|
|
1317
|
+
After each iteration, update `metadata.json`:
|
|
1318
|
+
```json
|
|
1319
|
+
{
|
|
1320
|
+
"iterations_completed": {ITERATION},
|
|
1321
|
+
"stats": { "...updated counts..." }
|
|
1322
|
+
}
|
|
1323
|
+
```
|
|
1324
|
+
|
|
1325
|
+
### If All 4 Iterations Exhausted
|
|
1326
|
+
|
|
1327
|
+
If findings still remain after 4 iterations:
|
|
1328
|
+
- Set remaining findings' `validation_status` to `evidence_ambiguous` or `author_judgment_required` (R6 — see the validator agent's criteria table)
|
|
1329
|
+
- Include them in the final report
|
|
1330
|
+
- Set metadata status to `needs-human-review` (metadata key name kept for backward compat; the per-finding enum value is the new split)
|
|
1331
|
+
- Proceed to Phase 7
|
|
1332
|
+
|
|
1333
|
+
---
|
|
1334
|
+
|
|
1335
|
+
## Phase 6b: Post Comment to GitHub (external PRs only)
|
|
1336
|
+
|
|
1337
|
+
**Only runs when `AUTHORSHIP_MODE == "external"`.** Owned PRs skip straight to Phase 7.
|
|
1338
|
+
|
|
1339
|
+
Instead of pushing fixes, external PRs receive a single structured comment per round summarizing confirmed findings, dismissed false positives, and validator notes. Readers (the author, other maintainers, and future rounds of this same skill) rely on the comment being machine-parseable, so it ends with a tagged HTML footer.
|
|
1340
|
+
|
|
1341
|
+
### Step 1: Render the Comment Body
|
|
1342
|
+
|
|
1343
|
+
Use the `external-comment.md` template (`packages/framework/skills/apt-pr-review/templates/external-comment.md`) and substitute:
|
|
1344
|
+
|
|
1345
|
+
- `{ROUND}` — current round number (from `pr-state.json:rounds_completed`)
|
|
1346
|
+
- `{REVIEW_ID}` — this round's review id
|
|
1347
|
+
- `{CONFIRMED_FINDINGS_BY_SEVERITY}` — grouped markdown: CRITICAL → HIGH → MEDIUM → LOW
|
|
1348
|
+
- `{DISMISSED_FPS}` — transparency block listing validator-dismissed findings + reason
|
|
1349
|
+
- `{AUTO_CHECK_SUMMARY}` — lint/typecheck/test pass-fail table
|
|
1350
|
+
|
|
1351
|
+
Write the rendered body to `.aperant/pr-reviews/pr-${PR_NUMBER}/rounds/${ROUND}/comment.md`.
|
|
1352
|
+
|
|
1353
|
+
### Step 2: Post to GitHub
|
|
1354
|
+
|
|
1355
|
+
```bash
|
|
1356
|
+
COMMENT_BODY=".aperant/pr-reviews/pr-${PR_NUMBER}/rounds/${ROUND}/comment.md"
|
|
1357
|
+
COMMENT_URL=$(gh pr review ${PR_NUMBER} --comment --body-file "${COMMENT_BODY}" 2>&1 | tail -n1)
|
|
1358
|
+
BODY_HASH=$(shasum -a 256 "${COMMENT_BODY}" | awk '{print $1}')
|
|
1359
|
+
```
|
|
1360
|
+
|
|
1361
|
+
If `gh pr review` fails, retry up to 3 times with 2-second backoff. If all retries fail, surface the error to the user — do NOT mark the round successful with a missing comment.
|
|
1362
|
+
|
|
1363
|
+
### Step 3: Record in pr-state.json + comments/
|
|
1364
|
+
|
|
1365
|
+
Append an entry to `pr-state.json:comment_timeline` via the `record-comment` subcommand — this wraps the mutation in `withFileLock`, so it is safe under concurrent agents:
|
|
1366
|
+
|
|
1367
|
+
```bash
|
|
1368
|
+
node packages/framework/bin/apt-tools.mjs pr-review record-comment . \
|
|
1369
|
+
--pr ${PR_NUMBER} \
|
|
1370
|
+
--round ${ROUND} \
|
|
1371
|
+
--url "${COMMENT_URL}" \
|
|
1372
|
+
--body-hash "${BODY_HASH}" \
|
|
1373
|
+
--review-id "${REVIEW_ID}"
|
|
1374
|
+
```
|
|
1375
|
+
|
|
1376
|
+
Do NOT hand-edit `pr-state.json` from the orchestrator. Every other state mutation in this skill goes through an `apt-tools pr-review …` subcommand; `comment_timeline` follows the same rule (review M1).
|
|
1377
|
+
|
|
1378
|
+
Also write `.aperant/pr-reviews/pr-${PR_NUMBER}/comments/round-${ROUND}-posted.json` with the full payload (round, url, posted_at, body_hash, body text). Both files are allowlisted by `.aperant/.gitignore` so they survive across machines.
|
|
1379
|
+
|
|
1380
|
+
### Step 4: Skip Phases 7 + fix-push path in Phase 8
|
|
1381
|
+
|
|
1382
|
+
External PRs run no self-review (nothing local was fixed) and no push in Phase 8. Proceed directly to Phase 8 `Step 0c: Close Round + Release Lock`.
|
|
1383
|
+
|
|
1384
|
+
---
|
|
1385
|
+
|
|
1386
|
+
## Phase 7: Self-Review
|
|
1387
|
+
|
|
1388
|
+
```bash
|
|
1389
|
+
# self-review is optional (required: false) — if no fixes were applied, skip to Phase 8
|
|
1390
|
+
# and the workflow runner will auto-skip this phase
|
|
1391
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase self-review
|
|
1392
|
+
```
|
|
1393
|
+
|
|
1394
|
+
### Authorship Gate (R4)
|
|
1395
|
+
|
|
1396
|
+
**If `AUTHORSHIP_MODE == "external"`, SKIP this phase.** Nothing was committed locally, so there's nothing to self-review. The workflow marks `self-review` as optional so advancing past it is safe.
|
|
1397
|
+
|
|
1398
|
+
For `AUTHORSHIP_MODE == "owned"`, continue below.
|
|
1399
|
+
|
|
1400
|
+
Spawn 1 fresh Agent to review the fix diffs with zero context pollution.
|
|
1401
|
+
|
|
1402
|
+
### Gather Fix Diffs
|
|
1403
|
+
|
|
1404
|
+
Combine all fix diffs across iterations:
|
|
1405
|
+
|
|
1406
|
+
```bash
|
|
1407
|
+
# Concatenate all iteration diffs
|
|
1408
|
+
cat .aperant/pr-reviews/${REVIEW_ID}/iterations/*/diff.patch > /tmp/all-fix-diffs.patch
|
|
1409
|
+
```
|
|
1410
|
+
|
|
1411
|
+
If no fixes were applied (Phase 6 was skipped or found nothing to fix), **skip Phase 7**.
|
|
1412
|
+
|
|
1413
|
+
### Spawn Self-Review Agent
|
|
1414
|
+
|
|
1415
|
+
Read the agent definition from `.claude/agents/apt-pr-review-self-reviewer.md` and fill in:
|
|
1416
|
+
|
|
1417
|
+
| Placeholder | Value |
|
|
1418
|
+
|-------------|-------|
|
|
1419
|
+
| `[FIX_DIFF]` | The combined fix diff content or path to the concatenated file |
|
|
1420
|
+
| `[REVIEW_DIR]` | `.aperant/pr-reviews/{REVIEW_ID}` |
|
|
1421
|
+
| `[TOOLCHAIN_COMMANDS]` | Commands from `toolchain.json` |
|
|
1422
|
+
| `[WORKTREE_PATH]` | The worktree path — self-reviewer works HERE |
|
|
1423
|
+
|
|
1424
|
+
```
|
|
1425
|
+
Agent(
|
|
1426
|
+
name: "self-reviewer",
|
|
1427
|
+
subagent_type: "apt-pr-review-self-reviewer",
|
|
1428
|
+
description: "Self-review of all fix diffs with fresh eyes",
|
|
1429
|
+
prompt: "{CONSTRUCTED_PROMPT_WITH_FILLED_PLACEHOLDERS}",
|
|
1430
|
+
)
|
|
1431
|
+
```
|
|
1432
|
+
|
|
1433
|
+
Wait for the self-reviewer to return ONE of:
|
|
1434
|
+
- `CLEAN` -- no issues found in the fixes
|
|
1435
|
+
- `FIXED` -- found and fixed issues in the fixes
|
|
1436
|
+
- `NEEDS_HUMAN` -- found issues that could not be auto-fixed
|
|
1437
|
+
|
|
1438
|
+
Read `.aperant/pr-reviews/${REVIEW_ID}/self-review.md` for the detailed report.
|
|
1439
|
+
|
|
1440
|
+
---
|
|
1441
|
+
|
|
1442
|
+
## Phase 8: Push Fixes, Cleanup Worktree, Final Report
|
|
1443
|
+
|
|
1444
|
+
```bash
|
|
1445
|
+
node packages/framework/bin/apt-tools.mjs workflow advance . --id ${REVIEW_ID} --phase report
|
|
1446
|
+
```
|
|
1447
|
+
|
|
1448
|
+
**This phase is executed by YOU (the orchestrator).**
|
|
1449
|
+
|
|
1450
|
+
### Step 0: Push Fixes to PR Branch (if worktree was used and fixes were applied)
|
|
1451
|
+
|
|
1452
|
+
**If `AUTHORSHIP_MODE == "external"`, SKIP Step 0.** External PRs have already posted their comment in Phase 6b — pushing to a fork's branch is not our job (and usually not permitted). Jump straight to Step 0b (cleanup) and Step 0c (close round + release lock).
|
|
1453
|
+
|
|
1454
|
+
If `WORKTREE_PATH != .` AND fixes were applied in Phase 6/7:
|
|
1455
|
+
|
|
1456
|
+
```bash
|
|
1457
|
+
cd ${WORKTREE_PATH}
|
|
1458
|
+
|
|
1459
|
+
# Commit all staged fixes
|
|
1460
|
+
git add -A
|
|
1461
|
+
git commit -m "fix: auto-fix review findings from /apt:pr-review (review ${REVIEW_ID})"
|
|
1462
|
+
|
|
1463
|
+
# Push fixes back to the PR branch
|
|
1464
|
+
# For PRs: push to the PR's head ref
|
|
1465
|
+
git push origin HEAD:${PR_HEAD_REF}
|
|
1466
|
+
|
|
1467
|
+
cd -
|
|
1468
|
+
```
|
|
1469
|
+
|
|
1470
|
+
Where `PR_HEAD_REF` is the PR's head branch name (e.g., `feat/auth`). Get it from:
|
|
1471
|
+
```bash
|
|
1472
|
+
gh pr view ${PR_NUMBER} --json headRefName -q .headRefName
|
|
1473
|
+
```
|
|
1474
|
+
|
|
1475
|
+
For branch reviews: push to the branch name directly.
|
|
1476
|
+
|
|
1477
|
+
**IMPORTANT:** Ask the user for confirmation before pushing:
|
|
1478
|
+
```
|
|
1479
|
+
Fixes are ready in the worktree. Push to ${PR_HEAD_REF}? (y/n)
|
|
1480
|
+
```
|
|
1481
|
+
|
|
1482
|
+
If the user declines, skip the push but still write the report. The fixes remain in the worktree for manual review.
|
|
1483
|
+
|
|
1484
|
+
### Step 0b: Cleanup Worktree
|
|
1485
|
+
|
|
1486
|
+
After pushing (or if no fixes were applied), clean up:
|
|
1487
|
+
|
|
1488
|
+
```bash
|
|
1489
|
+
# Remove the worktree
|
|
1490
|
+
git worktree remove .aperant/pr-reviews/${REVIEW_ID}/worktree --force 2>/dev/null
|
|
1491
|
+
|
|
1492
|
+
# Delete the temporary branch
|
|
1493
|
+
git branch -D pr-review-${REVIEW_ID} 2>/dev/null
|
|
1494
|
+
```
|
|
1495
|
+
|
|
1496
|
+
If `WORKTREE_PATH = .`, skip this step (no worktree was created).
|
|
1497
|
+
|
|
1498
|
+
### Step 0c: Close Round + Release Lock (PR reviews only)
|
|
1499
|
+
|
|
1500
|
+
If `PR_NUMBER` is set (we're reviewing a GitHub PR), close the round and release the PR-level lock. Close-round writes a durable snapshot to `.aperant/pr-reviews/pr-${PR_NUMBER}/rounds/${ROUND}/pr-state-snapshot.json` (committed) and clears the live lock:
|
|
1501
|
+
|
|
1502
|
+
```bash
|
|
1503
|
+
if [ -n "$PR_NUMBER" ]; then
|
|
1504
|
+
node packages/framework/bin/apt-tools.mjs pr-review close-round . \
|
|
1505
|
+
--pr ${PR_NUMBER} --round ${ROUND}
|
|
1506
|
+
fi
|
|
1507
|
+
```
|
|
1508
|
+
|
|
1509
|
+
Close-round is idempotent on state but writes a fresh snapshot each time. If the review errored out before Step 0c, a subsequent `/apt:pr-review` invocation can still take the lock (stale after TTL) and re-open the round.
|
|
1510
|
+
|
|
1511
|
+
### Step 1: Read All Artifacts
|
|
1512
|
+
|
|
1513
|
+
Read the following files:
|
|
1514
|
+
- `.aperant/pr-reviews/${REVIEW_ID}/review.json` (from Phase 5)
|
|
1515
|
+
- `.aperant/pr-reviews/${REVIEW_ID}/self-review.md` (from Phase 7, if exists)
|
|
1516
|
+
- `.aperant/pr-reviews/${REVIEW_ID}/iterations/*/fixes-applied.md` (all iteration reports)
|
|
1517
|
+
- `.aperant/pr-reviews/${REVIEW_ID}/findings/validated.md` (validated findings)
|
|
1518
|
+
|
|
1519
|
+
### Step 2: Update review.json
|
|
1520
|
+
|
|
1521
|
+
Update the review.json with final data:
|
|
1522
|
+
|
|
1523
|
+
1. Recalculate finding counts (some may have been fixed)
|
|
1524
|
+
2. Update `iterations.total` and `iterations.findings_per_iteration`
|
|
1525
|
+
3. Set `completed_at` timestamp
|
|
1526
|
+
4. Update `stats.false_positives_dismissed` count
|
|
1527
|
+
5. Recalculate `assessment` based on remaining unfixed findings:
|
|
1528
|
+
- `approve`: 0 critical, 0 high remaining
|
|
1529
|
+
- `request-changes`: any critical or high remaining
|
|
1530
|
+
- `comment`: only medium/low remaining, or all issues were fixed
|
|
1531
|
+
|
|
1532
|
+
Write the updated review.json.
|
|
1533
|
+
|
|
1534
|
+
### Step 3: Update metadata.json
|
|
1535
|
+
|
|
1536
|
+
Update the metadata:
|
|
1537
|
+
```json
|
|
1538
|
+
{
|
|
1539
|
+
"status": "completed",
|
|
1540
|
+
"iterations_completed": {final count},
|
|
1541
|
+
"stats": { "...final counts..." }
|
|
1542
|
+
}
|
|
1543
|
+
```
|
|
1544
|
+
|
|
1545
|
+
If any findings have `validation_status` ∈ {`evidence_ambiguous`, `author_judgment_required`} (R6 — replaces the old `needs_human_review` status), set metadata status to `"needs-human-review"` instead of `"completed"`.
|
|
1546
|
+
|
|
1547
|
+
### Step 4: Print Final Report
|
|
1548
|
+
|
|
1549
|
+
Output the human-readable summary:
|
|
1550
|
+
|
|
1551
|
+
```
|
|
1552
|
+
=============================================
|
|
1553
|
+
/apt:pr-review -- Review Complete
|
|
1554
|
+
=============================================
|
|
1555
|
+
|
|
1556
|
+
Review ID: {REVIEW_ID}
|
|
1557
|
+
Assessment: {APPROVE / REQUEST CHANGES / COMMENT}
|
|
1558
|
+
|
|
1559
|
+
Scores:
|
|
1560
|
+
Security: {score}/10
|
|
1561
|
+
Quality: {score}/10
|
|
1562
|
+
Logic: {score}/10
|
|
1563
|
+
Architecture: {score}/10
|
|
1564
|
+
Performance: {score}/10
|
|
1565
|
+
|
|
1566
|
+
Findings: {total} ({critical} critical, {high} high, {medium} medium, {low} low)
|
|
1567
|
+
False Positives Dismissed: {N}
|
|
1568
|
+
Fix Iterations: {N}
|
|
1569
|
+
Self-Review: {CLEAN / FIXED / NEEDS_HUMAN}
|
|
1570
|
+
Fixer Hallucinations: {count}
|
|
1571
|
+
|
|
1572
|
+
Report: .aperant/pr-reviews/{REVIEW_ID}/review.json
|
|
1573
|
+
=============================================
|
|
1574
|
+
```
|
|
1575
|
+
|
|
1576
|
+
The `Fixer Hallucinations` line is sourced from `metadata.json.fixer_hallucinations_total` (bumped by the Phase 6 Step 4b audit gate). When the count is `> 0`, also list each hallucinated fixer + iteration under the Remaining Issues block so the operator can audit the gate trace.
|
|
1577
|
+
|
|
1578
|
+
If the assessment is `request-changes`, also list the remaining unfixed findings:
|
|
1579
|
+
|
|
1580
|
+
```
|
|
1581
|
+
Remaining Issues (require attention):
|
|
1582
|
+
[{severity}] {id} -- {title}
|
|
1583
|
+
{file}:{line}
|
|
1584
|
+
{description (first 100 chars)}
|
|
1585
|
+
```
|
|
1586
|
+
|
|
1587
|
+
If the assessment is `approve` and fixes were applied, list what was auto-fixed:
|
|
1588
|
+
|
|
1589
|
+
```
|
|
1590
|
+
Auto-Fixed Issues:
|
|
1591
|
+
{id} -- {title} ({file}:{line})
|
|
1592
|
+
```
|
|
1593
|
+
|
|
1594
|
+
### Step 5: Destroy Workflow
|
|
1595
|
+
|
|
1596
|
+
Clean up the workflow gate now that the review is complete:
|
|
1597
|
+
|
|
1598
|
+
```bash
|
|
1599
|
+
node packages/framework/bin/apt-tools.mjs workflow destroy . --id ${REVIEW_ID}
|
|
1600
|
+
```
|
|
1601
|
+
|
|
1602
|
+
---
|
|
1603
|
+
|
|
1604
|
+
## Key Principles
|
|
1605
|
+
|
|
1606
|
+
### 1. Evidence-Based, Not Confidence-Based
|
|
1607
|
+
Agents do NOT assign confidence percentages. Either they have evidence (actual code snippet from Read tool) or they do not have a finding. The validator independently verifies every finding against real code.
|
|
1608
|
+
|
|
1609
|
+
### 2. Fix Everything Found
|
|
1610
|
+
If it was found and confirmed, fix it. ALL severities. "This is minor" is NOT a valid skip reason. The only valid skip reasons are: `fixable: false`, critical findings without user approval, or files assigned to another fixer.
|
|
1611
|
+
|
|
1612
|
+
### 3. Findings Flow Through Files
|
|
1613
|
+
Agents write to `.aperant/pr-reviews/{review-id}/findings/`. The orchestrator reads with the Read tool. Fix agents read finding files directly. This keeps the orchestrator context under 30%.
|
|
1614
|
+
|
|
1615
|
+
### 4. Agents Are Autonomous
|
|
1616
|
+
Fix agents and the self-reviewer handle the full fix-verify-stage pipeline. They do NOT come back to the orchestrator for approval (except critical findings). The self-reviewer fixes its own findings internally.
|
|
1617
|
+
|
|
1618
|
+
### 5. Fresh Eyes for Each Iteration
|
|
1619
|
+
Each fix loop iteration spawns FRESH review agents. This prevents anchoring bias -- agents in iteration 2 do not know what iteration 1 found. They see the code with fresh perspective.
|
|
1620
|
+
|
|
1621
|
+
### 6. Trigger-Driven Exploration Is Mandatory
|
|
1622
|
+
When trigger instructions are provided, review agents MUST investigate them even if the surface-level diff looks correct. Triggers point to contract changes that cause downstream bugs -- the most dangerous class of defects.
|
|
1623
|
+
|
|
1624
|
+
### 7. The Evidence Rule
|
|
1625
|
+
**NO EVIDENCE = NO FINDING.** A finding without a literal code snippet in the `evidence` field is automatically rejected by the validator. Agents must copy-paste actual code from the Read tool, not describe it from memory.
|
|
1626
|
+
|
|
1627
|
+
### 8. Scope Discipline
|
|
1628
|
+
Review agents ONLY review code changed in the diff. Pre-existing issues in unchanged code are NOT reported. This prevents noise and keeps findings actionable.
|
|
1629
|
+
|
|
1630
|
+
### 9. Fixer Claims Are Audited Against Git State
|
|
1631
|
+
Fix agents self-report their outcome via a status line (`FIXED: X | FAILED: Y | SKIPPED: Z | VERIFICATION: PASS/FAIL`). That self-report is **not trusted on its own** — Phase 6 Step 4b runs `apt-tools pr-review audit-fixer` after every fixer returns, which cross-checks the claims against `git diff --cached --name-only ∪ git diff --name-only ∪ git ls-files --others`. A fixer that claims PASS with an empty diff is marked `hallucinated` deterministically and its findings stay in the backlog. This is the defense against the 2026-04-20 incident where an agent fabricated a 140-line fix report with zero matching edits.
|
|
1632
|
+
|
|
1633
|
+
**Dual-layer defense, explicitly:** the fixer and self-reviewer agent prompts include a Pre-Return Self-Audit step that asks them to run `git diff --stat` and refuse to emit `VERIFICATION: PASS` on an empty diff. This is **belt-and-suspenders only** — the same LLM that hallucinated a 140-line fix report would happily hallucinate a clean `git diff` output. Only the orchestrator-driven, out-of-process `apt-tools pr-review audit-fixer` check is a trusted defense. The self-audit catches the honest cases; the gate catches everything else.
|
|
1634
|
+
|
|
1635
|
+
---
|
|
1636
|
+
|
|
1637
|
+
## Common Mistakes (And How to Avoid Them)
|
|
1638
|
+
|
|
1639
|
+
### Mistake 1: Embedding Full Findings in Agent Summaries
|
|
1640
|
+
|
|
1641
|
+
**Wrong:** Reading the full finding text from agent responses and processing it in orchestrator context.
|
|
1642
|
+
**Right:** Agent responses are brief (3-5 lines). All detail goes to files. Orchestrator reads files via Read tool only when needed.
|
|
1643
|
+
|
|
1644
|
+
### Mistake 2: Spawning Agents Sequentially
|
|
1645
|
+
|
|
1646
|
+
**Wrong:** Spawn security agent, wait, spawn quality agent, wait, etc.
|
|
1647
|
+
**Right:** Spawn all 6 review agents in ONE message using 6 parallel Agent tool calls. They run concurrently.
|
|
1648
|
+
|
|
1649
|
+
### Mistake 3: Skipping the Validator
|
|
1650
|
+
|
|
1651
|
+
**Wrong:** Sending raw review findings directly to fix agents.
|
|
1652
|
+
**Right:** Always run the validator first. Review agents produce false positives. The validator catches them. Only validated findings go to fixers.
|
|
1653
|
+
|
|
1654
|
+
### Mistake 4: Re-Using Stale Agents for Re-Review
|
|
1655
|
+
|
|
1656
|
+
**Wrong:** Telling the same review agents to "look again" after fixes.
|
|
1657
|
+
**Right:** Spawn FRESH agents for each re-review iteration. Fresh agents have no memory of previous findings and no anchoring bias.
|
|
1658
|
+
|
|
1659
|
+
### Mistake 5: Auto-Fixing Critical Findings Without Approval
|
|
1660
|
+
|
|
1661
|
+
**Wrong:** Letting fix agents change critical findings without user confirmation.
|
|
1662
|
+
**Right:** Critical findings ALWAYS require explicit user confirmation. This is a hard gate regardless of autonomy level.
|
|
1663
|
+
|
|
1664
|
+
### Mistake 6: Sending Large Diffs in Agent Prompts
|
|
1665
|
+
|
|
1666
|
+
**Wrong:** Embedding a 5000-line diff in every agent prompt (6 copies = 30000 lines of context waste).
|
|
1667
|
+
**Right:** For large diffs (>3000 lines), tell agents to read `{REVIEW_DIR}/diff.patch` directly. Only embed the changed file list.
|
|
1668
|
+
|
|
1669
|
+
### Mistake 7: Skipping Fixes Based on Autonomy
|
|
1670
|
+
|
|
1671
|
+
**Wrong:** Skipping Phase 6 entirely when autonomy < 2.
|
|
1672
|
+
**Right:** Always fix all confirmed findings. At autonomy < 2, show findings summary first, then proceed with auto-fix. The only difference is whether findings are displayed before fixing — not whether they get fixed.
|
|
1673
|
+
|
|
1674
|
+
### Mistake 8: Forgetting to Update metadata.json
|
|
1675
|
+
|
|
1676
|
+
**Wrong:** Writing review.json but leaving metadata.json stuck at `"status": "in-progress"`.
|
|
1677
|
+
**Right:** Update metadata.json at every phase transition. Final state should be `"completed"` or `"needs-human-review"`.
|
|
1678
|
+
|
|
1679
|
+
### Mistake 9: Processing All Agent Files in Orchestrator Context
|
|
1680
|
+
|
|
1681
|
+
**Wrong:** Reading all 6 finding files + validated.md in one go, causing context bloat.
|
|
1682
|
+
**Right:** In Phase 5 synthesis, read validated.md first (it has the condensed verdicts). Only read original agent files if you need to resolve a specific cross-validation question.
|
|
1683
|
+
|
|
1684
|
+
### Mistake 10: Spawning Fixers for Non-Fixable Findings
|
|
1685
|
+
|
|
1686
|
+
**Wrong:** Including findings with `fixable: false` in fix agent assignments.
|
|
1687
|
+
**Right:** Filter fix assignments to only include findings with `fixable: true` AND `validation_status: "confirmed_valid"`.
|
|
1688
|
+
|
|
1689
|
+
---
|
|
1690
|
+
|
|
1691
|
+
## Argument Reference
|
|
1692
|
+
|
|
1693
|
+
| Argument | Description | Example |
|
|
1694
|
+
|----------|-------------|---------|
|
|
1695
|
+
| `--pr NUMBER` | Review a pull request by number | `/apt:pr-review --pr 42` |
|
|
1696
|
+
| `--branch NAME` | Review a branch vs main | `/apt:pr-review --branch feat/auth` |
|
|
1697
|
+
| `--staged` | Review staged changes only | `/apt:pr-review --staged` |
|
|
1698
|
+
| (no argument) | Review HEAD vs main | `/apt:pr-review` |
|
|
1699
|
+
| `--no-fix` | Skip the auto-fix phase (Phase 6) | `/apt:pr-review --no-fix` |
|
|
1700
|
+
| `--focus AREA` | Prioritize findings in a specific area | `/apt:pr-review --focus security` |
|
|
1701
|
+
|
|
1702
|
+
---
|
|
1703
|
+
|
|
1704
|
+
## Configuration Reference
|
|
1705
|
+
|
|
1706
|
+
### .aperant/config.json fields used by /apt:pr-review
|
|
1707
|
+
|
|
1708
|
+
| Field | Type | Default | Description |
|
|
1709
|
+
|-------|------|---------|-------------|
|
|
1710
|
+
| `autonomy` | number | 2 | Controls display behavior. `< 2` = show findings before fixing. `>= 2` = fix immediately. All findings are always fixed regardless of autonomy. |
|
|
1711
|
+
| `pipeline.skip_review` | boolean | false | If true, `/apt:run` skips the review phase. Does not affect direct `/apt:pr-review` invocation. |
|
|
1712
|
+
| `review.max_iterations` | number | 4 | Maximum fix-review iterations before stopping. |
|
|
1713
|
+
| `review.optional_agents` | string[] | [] | Reserved for future use. Additional specialist agents to spawn beyond the core 6. |
|
|
1714
|
+
|
|
1715
|
+
---
|
|
1716
|
+
|
|
1717
|
+
## Agent Tool Reference
|
|
1718
|
+
|
|
1719
|
+
The orchestrator spawns agents using Claude Code's `Agent` tool. Each agent call follows this pattern:
|
|
1720
|
+
|
|
1721
|
+
```
|
|
1722
|
+
Agent(
|
|
1723
|
+
name: "{human-readable-name}",
|
|
1724
|
+
subagent_type: "{agent-definition-filename-without-extension}",
|
|
1725
|
+
description: "{brief description of what this agent does}",
|
|
1726
|
+
prompt: "{the complete prompt with all placeholders filled in}",
|
|
1727
|
+
)
|
|
1728
|
+
```
|
|
1729
|
+
|
|
1730
|
+
### Agent Definitions (File Locations)
|
|
1731
|
+
|
|
1732
|
+
| Agent | Definition File | Tools | Phase |
|
|
1733
|
+
|-------|----------------|-------|-------|
|
|
1734
|
+
| Auto-checks | (inline prompt in this SKILL.md) | Bash, Read | 2 |
|
|
1735
|
+
| Security reviewer | `.claude/agents/apt-pr-review-security.md` | Read, Write, Grep, Glob | 3 |
|
|
1736
|
+
| Quality reviewer | `.claude/agents/apt-pr-review-quality.md` | Read, Write, Grep, Glob | 3 |
|
|
1737
|
+
| Logic reviewer | `.claude/agents/apt-pr-review-logic.md` | Read, Write, Grep, Glob | 3 |
|
|
1738
|
+
| Codebase-fit reviewer | `.claude/agents/apt-pr-review-codebase-fit.md` | Read, Write, Grep, Glob | 3 |
|
|
1739
|
+
| Test-integrity reviewer | `.claude/agents/apt-pr-review-test-integrity.md` | Read, Write, Grep, Glob | 3 |
|
|
1740
|
+
| Performance reviewer | `.claude/agents/apt-pr-review-performance.md` | Read, Write, Grep, Glob | 3 |
|
|
1741
|
+
| Finding validator | `.claude/agents/apt-pr-review-validator.md` | Read, Write, Grep, Glob | 4 |
|
|
1742
|
+
| Fix agent (x3) | `.claude/agents/apt-pr-review-fixer.md` | Read, Write, Edit, Bash, Grep, Glob | 6 |
|
|
1743
|
+
| Self-reviewer | `.claude/agents/apt-pr-review-self-reviewer.md` | Read, Write, Edit, Bash, Grep, Glob | 7 |
|
|
1744
|
+
|
|
1745
|
+
### Tool Scoping
|
|
1746
|
+
|
|
1747
|
+
Review agents (Phase 3) have Read/Write/Grep/Glob. Write is used ONLY for writing findings to files — agents must NOT modify source code. This separation is intentional:
|
|
1748
|
+
- Review agents write their findings to `.aperant/pr-reviews/{review-id}/findings/{name}.md`
|
|
1749
|
+
- They do NOT have Edit or Bash — they cannot modify source code or run commands
|
|
1750
|
+
- All source code changes go through the fix pipeline (Phase 6) with proper verification
|
|
1751
|
+
|
|
1752
|
+
Fix agents and self-reviewer have full editing tools (Read/Write/Edit/Bash/Grep/Glob). They:
|
|
1753
|
+
- Apply fixes
|
|
1754
|
+
- Run verification (lint, typecheck, tests)
|
|
1755
|
+
- Stage changes (`git add`)
|
|
1756
|
+
- Revert failed fixes (`git checkout -- {file}`)
|