@open-agent-toolkit/cli 0.0.10
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/README.md +50 -0
- package/assets/agents/oat-codebase-mapper.md +275 -0
- package/assets/agents/oat-reviewer.md +350 -0
- package/assets/agents/skeptical-evaluator.md +126 -0
- package/assets/docs/contributing/code.md +95 -0
- package/assets/docs/contributing/commit-conventions.md +41 -0
- package/assets/docs/contributing/design-principles.md +124 -0
- package/assets/docs/contributing/documentation.md +69 -0
- package/assets/docs/contributing/hooks-and-safety.md +31 -0
- package/assets/docs/contributing/index.md +18 -0
- package/assets/docs/contributing/markdown-features.md +117 -0
- package/assets/docs/contributing/skills.md +68 -0
- package/assets/docs/guide/cli-reference.md +211 -0
- package/assets/docs/guide/concepts.md +88 -0
- package/assets/docs/guide/configuration.md +130 -0
- package/assets/docs/guide/documentation/commands.md +157 -0
- package/assets/docs/guide/documentation/index.md +27 -0
- package/assets/docs/guide/documentation/quickstart.md +164 -0
- package/assets/docs/guide/documentation/workflows.md +67 -0
- package/assets/docs/guide/getting-started.md +63 -0
- package/assets/docs/guide/ideas/index.md +34 -0
- package/assets/docs/guide/ideas/lifecycle.md +106 -0
- package/assets/docs/guide/index.md +20 -0
- package/assets/docs/guide/provider-sync/commands.md +100 -0
- package/assets/docs/guide/provider-sync/config.md +77 -0
- package/assets/docs/guide/provider-sync/index.md +65 -0
- package/assets/docs/guide/provider-sync/manifest-and-drift.md +55 -0
- package/assets/docs/guide/provider-sync/providers.md +67 -0
- package/assets/docs/guide/provider-sync/scope-and-surface.md +64 -0
- package/assets/docs/guide/skills/index.md +115 -0
- package/assets/docs/guide/tool-packs.md +167 -0
- package/assets/docs/guide/workflow/artifacts.md +44 -0
- package/assets/docs/guide/workflow/hill-checkpoints.md +53 -0
- package/assets/docs/guide/workflow/index.md +34 -0
- package/assets/docs/guide/workflow/lifecycle.md +207 -0
- package/assets/docs/guide/workflow/pr-flow.md +55 -0
- package/assets/docs/guide/workflow/repo-analysis.md +96 -0
- package/assets/docs/guide/workflow/reviews.md +98 -0
- package/assets/docs/guide/workflow/state-machine.md +74 -0
- package/assets/docs/index.md +45 -0
- package/assets/docs/quickstart.md +162 -0
- package/assets/docs/reference/docs-index-contract.md +53 -0
- package/assets/docs/reference/file-locations.md +109 -0
- package/assets/docs/reference/index.md +29 -0
- package/assets/docs/reference/oat-directory-structure.md +236 -0
- package/assets/docs/reference/troubleshooting.md +63 -0
- package/assets/public-package-versions.json +6 -0
- package/assets/scripts/resolve-tracking.sh +233 -0
- package/assets/skills/analyze/SKILL.md +358 -0
- package/assets/skills/compare/SKILL.md +276 -0
- package/assets/skills/create-agnostic-skill/SKILL.md +410 -0
- package/assets/skills/create-agnostic-skill/references/skill-template.md +195 -0
- package/assets/skills/deep-research/SKILL.md +350 -0
- package/assets/skills/deep-research/references/schema-analysis.md +93 -0
- package/assets/skills/deep-research/references/schema-architectural.md +75 -0
- package/assets/skills/deep-research/references/schema-base.md +70 -0
- package/assets/skills/deep-research/references/schema-comparative.md +72 -0
- package/assets/skills/deep-research/references/schema-conceptual.md +68 -0
- package/assets/skills/deep-research/references/schema-technical.md +64 -0
- package/assets/skills/oat-agent-instructions-analyze/SKILL.md +500 -0
- package/assets/skills/oat-agent-instructions-analyze/references/analysis-artifact-template.md +248 -0
- package/assets/skills/oat-agent-instructions-analyze/references/bundle-summary-template.md +31 -0
- package/assets/skills/oat-agent-instructions-analyze/references/directory-assessment-criteria.md +93 -0
- package/assets/skills/oat-agent-instructions-analyze/references/docs/agent-instruction.md +575 -0
- package/assets/skills/oat-agent-instructions-analyze/references/docs/cursor-rules-files.md +510 -0
- package/assets/skills/oat-agent-instructions-analyze/references/docs/provider-reference.md +429 -0
- package/assets/skills/oat-agent-instructions-analyze/references/docs/rules-files.md +594 -0
- package/assets/skills/oat-agent-instructions-analyze/references/file-type-discovery-checklist.md +273 -0
- package/assets/skills/oat-agent-instructions-analyze/references/quality-checklist.md +125 -0
- package/assets/skills/oat-agent-instructions-analyze/references/recommendation-pack-template.md +45 -0
- package/assets/skills/oat-agent-instructions-analyze/references/recommendations-manifest-template.yaml +27 -0
- package/assets/skills/oat-agent-instructions-analyze/scripts/resolve-instruction-files.sh +120 -0
- package/assets/skills/oat-agent-instructions-analyze/scripts/resolve-providers.sh +135 -0
- package/assets/skills/oat-agent-instructions-apply/SKILL.md +507 -0
- package/assets/skills/oat-agent-instructions-apply/references/apply-plan-template.md +80 -0
- package/assets/skills/oat-agent-instructions-apply/references/docs/agent-instruction.md +575 -0
- package/assets/skills/oat-agent-instructions-apply/references/docs/cursor-rules-files.md +510 -0
- package/assets/skills/oat-agent-instructions-apply/references/docs/provider-reference.md +429 -0
- package/assets/skills/oat-agent-instructions-apply/references/docs/rules-files.md +594 -0
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/agents-md-root.md +85 -0
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/agents-md-scoped.md +62 -0
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/claude-rule.md +67 -0
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/copilot-instruction.md +70 -0
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/copilot-shim.md +35 -0
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/cursor-rule.md +84 -0
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/glob-scoped-rule.md +59 -0
- package/assets/skills/oat-docs/SKILL.md +214 -0
- package/assets/skills/oat-docs-analyze/SKILL.md +355 -0
- package/assets/skills/oat-docs-analyze/references/analysis-artifact-template.md +192 -0
- package/assets/skills/oat-docs-analyze/references/directory-assessment-criteria.md +46 -0
- package/assets/skills/oat-docs-analyze/references/quality-checklist.md +48 -0
- package/assets/skills/oat-docs-apply/SKILL.md +339 -0
- package/assets/skills/oat-docs-apply/references/apply-plan-template.md +69 -0
- package/assets/skills/oat-doctor/SKILL.md +293 -0
- package/assets/skills/oat-idea-ideate/SKILL.md +187 -0
- package/assets/skills/oat-idea-new/SKILL.md +152 -0
- package/assets/skills/oat-idea-scratchpad/SKILL.md +115 -0
- package/assets/skills/oat-idea-summarize/SKILL.md +172 -0
- package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +155 -0
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +171 -0
- package/assets/skills/oat-pjm-review-backlog/references/backlog-review-template.md +172 -0
- package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +128 -0
- package/assets/skills/oat-project-capture/SKILL.md +306 -0
- package/assets/skills/oat-project-clear-active/SKILL.md +50 -0
- package/assets/skills/oat-project-complete/SKILL.md +461 -0
- package/assets/skills/oat-project-design/SKILL.md +461 -0
- package/assets/skills/oat-project-discover/SKILL.md +395 -0
- package/assets/skills/oat-project-document/SKILL.md +468 -0
- package/assets/skills/oat-project-implement/SKILL.md +736 -0
- package/assets/skills/oat-project-import-plan/SKILL.md +228 -0
- package/assets/skills/oat-project-import-plan/scripts/find-recent-provider-plans.sh +149 -0
- package/assets/skills/oat-project-new/SKILL.md +74 -0
- package/assets/skills/oat-project-next/SKILL.md +345 -0
- package/assets/skills/oat-project-open/SKILL.md +47 -0
- package/assets/skills/oat-project-plan/SKILL.md +415 -0
- package/assets/skills/oat-project-plan-writing/SKILL.md +116 -0
- package/assets/skills/oat-project-pr-final/SKILL.md +391 -0
- package/assets/skills/oat-project-pr-progress/SKILL.md +354 -0
- package/assets/skills/oat-project-progress/SKILL.md +342 -0
- package/assets/skills/oat-project-promote-spec-driven/SKILL.md +155 -0
- package/assets/skills/oat-project-quick-start/SKILL.md +363 -0
- package/assets/skills/oat-project-reconcile/SKILL.md +738 -0
- package/assets/skills/oat-project-review-provide/SKILL.md +728 -0
- package/assets/skills/oat-project-review-receive/SKILL.md +641 -0
- package/assets/skills/oat-project-review-receive-remote/SKILL.md +235 -0
- package/assets/skills/oat-project-revise/SKILL.md +316 -0
- package/assets/skills/oat-project-spec/SKILL.md +471 -0
- package/assets/skills/oat-project-subagent-implement/SKILL.md +549 -0
- package/assets/skills/oat-project-subagent-implement/examples/pattern-hill-checkpoint.md +110 -0
- package/assets/skills/oat-project-subagent-implement/examples/pattern-parallel-phases.md +118 -0
- package/assets/skills/oat-project-subagent-implement/scripts/dispatch.sh +133 -0
- package/assets/skills/oat-project-subagent-implement/scripts/reconcile.sh +182 -0
- package/assets/skills/oat-project-subagent-implement/scripts/review-gate.sh +187 -0
- package/assets/skills/oat-project-subagent-implement/tests/fixtures/sample-plan.md +234 -0
- package/assets/skills/oat-project-subagent-implement/tests/test-dry-run.sh +126 -0
- package/assets/skills/oat-project-subagent-implement/tests/test-hill-checkpoint.sh +127 -0
- package/assets/skills/oat-project-subagent-implement/tests/test-reconcile.sh +254 -0
- package/assets/skills/oat-project-subagent-implement/tests/test-review-gate.sh +220 -0
- package/assets/skills/oat-project-summary/SKILL.md +227 -0
- package/assets/skills/oat-repo-knowledge-index/SKILL.md +724 -0
- package/assets/skills/oat-repo-knowledge-index/references/templates/architecture.md +83 -0
- package/assets/skills/oat-repo-knowledge-index/references/templates/concerns.md +97 -0
- package/assets/skills/oat-repo-knowledge-index/references/templates/conventions.md +100 -0
- package/assets/skills/oat-repo-knowledge-index/references/templates/integrations.md +91 -0
- package/assets/skills/oat-repo-knowledge-index/references/templates/stack.md +86 -0
- package/assets/skills/oat-repo-knowledge-index/references/templates/structure.md +88 -0
- package/assets/skills/oat-repo-knowledge-index/references/templates/testing.md +137 -0
- package/assets/skills/oat-repo-maintainability-review/SKILL.md +198 -0
- package/assets/skills/oat-repo-maintainability-review/references/dx-checklist.md +33 -0
- package/assets/skills/oat-repo-maintainability-review/references/repo-review-artifact-template.md +72 -0
- package/assets/skills/oat-repo-maintainability-review/references/repo-review-rubric.md +66 -0
- package/assets/skills/oat-repo-maintainability-review/scripts/resolve-analysis-output.sh +162 -0
- package/assets/skills/oat-review-provide/SKILL.md +231 -0
- package/assets/skills/oat-review-provide/references/review-artifact-template.md +55 -0
- package/assets/skills/oat-review-provide/scripts/resolve-review-output.sh +124 -0
- package/assets/skills/oat-review-receive/SKILL.md +238 -0
- package/assets/skills/oat-review-receive-remote/SKILL.md +250 -0
- package/assets/skills/oat-worktree-bootstrap/SKILL.md +208 -0
- package/assets/skills/oat-worktree-bootstrap/references/worktree-conventions.md +58 -0
- package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +245 -0
- package/assets/skills/oat-worktree-bootstrap-auto/scripts/bootstrap.sh +194 -0
- package/assets/skills/skeptic/SKILL.md +261 -0
- package/assets/skills/synthesize/SKILL.md +361 -0
- package/assets/templates/backlog-item.md +24 -0
- package/assets/templates/design.md +315 -0
- package/assets/templates/discovery.md +135 -0
- package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +30 -0
- package/assets/templates/docs-app-fuma/app/api/search/route.ts +8 -0
- package/assets/templates/docs-app-fuma/app/globals.css +69 -0
- package/assets/templates/docs-app-fuma/app/layout.tsx +26 -0
- package/assets/templates/docs-app-fuma/docs/contributing.md +71 -0
- package/assets/templates/docs-app-fuma/docs/getting-started.md +40 -0
- package/assets/templates/docs-app-fuma/docs/index.md +13 -0
- package/assets/templates/docs-app-fuma/lib/source.ts +8 -0
- package/assets/templates/docs-app-fuma/next.config.js +6 -0
- package/assets/templates/docs-app-fuma/package.json.template +38 -0
- package/assets/templates/docs-app-fuma/postcss.config.mjs +7 -0
- package/assets/templates/docs-app-fuma/source.config.ts +14 -0
- package/assets/templates/docs-app-fuma/tsconfig.json +25 -0
- package/assets/templates/docs-app-mkdocs/docs/contributing.md +122 -0
- package/assets/templates/docs-app-mkdocs/docs/getting-started.md +28 -0
- package/assets/templates/docs-app-mkdocs/docs/index.md +8 -0
- package/assets/templates/docs-app-mkdocs/mkdocs.yml +47 -0
- package/assets/templates/docs-app-mkdocs/package.json.template +19 -0
- package/assets/templates/docs-app-mkdocs/requirements.txt +6 -0
- package/assets/templates/docs-app-mkdocs/setup-docs.sh +18 -0
- package/assets/templates/ideas/idea-discovery.md +39 -0
- package/assets/templates/ideas/idea-summary.md +42 -0
- package/assets/templates/ideas/ideas-backlog.md +21 -0
- package/assets/templates/ideas/ideas-scratchpad.md +10 -0
- package/assets/templates/implementation.md +207 -0
- package/assets/templates/plan.md +171 -0
- package/assets/templates/roadmap.md +24 -0
- package/assets/templates/spec.md +138 -0
- package/assets/templates/state.md +49 -0
- package/assets/templates/summary.md +82 -0
- package/dist/agents/canonical/index.d.ts +4 -0
- package/dist/agents/canonical/index.d.ts.map +1 -0
- package/dist/agents/canonical/index.js +2 -0
- package/dist/agents/canonical/parse.d.ts +4 -0
- package/dist/agents/canonical/parse.d.ts.map +1 -0
- package/dist/agents/canonical/parse.js +97 -0
- package/dist/agents/canonical/render.d.ts +3 -0
- package/dist/agents/canonical/render.d.ts.map +1 -0
- package/dist/agents/canonical/render.js +17 -0
- package/dist/agents/canonical/types.d.ts +22 -0
- package/dist/agents/canonical/types.d.ts.map +1 -0
- package/dist/agents/canonical/types.js +1 -0
- package/dist/app/command-context.d.ts +21 -0
- package/dist/app/command-context.d.ts.map +1 -0
- package/dist/app/command-context.js +18 -0
- package/dist/app/create-program.d.ts +3 -0
- package/dist/app/create-program.d.ts.map +1 -0
- package/dist/app/create-program.js +17 -0
- package/dist/commands/__tests__/helpers.d.ts +12 -0
- package/dist/commands/__tests__/helpers.d.ts.map +1 -0
- package/dist/commands/__tests__/helpers.js +36 -0
- package/dist/commands/backlog/index.d.ts +14 -0
- package/dist/commands/backlog/index.d.ts.map +1 -0
- package/dist/commands/backlog/index.js +80 -0
- package/dist/commands/backlog/init.d.ts +2 -0
- package/dist/commands/backlog/init.d.ts.map +1 -0
- package/dist/commands/backlog/init.js +66 -0
- package/dist/commands/backlog/regenerate-index.d.ts +2 -0
- package/dist/commands/backlog/regenerate-index.d.ts.map +1 -0
- package/dist/commands/backlog/regenerate-index.js +78 -0
- package/dist/commands/backlog/shared/generate-id.d.ts +4 -0
- package/dist/commands/backlog/shared/generate-id.d.ts.map +1 -0
- package/dist/commands/backlog/shared/generate-id.js +65 -0
- package/dist/commands/cleanup/artifacts/artifacts.d.ts +44 -0
- package/dist/commands/cleanup/artifacts/artifacts.d.ts.map +1 -0
- package/dist/commands/cleanup/artifacts/artifacts.js +381 -0
- package/dist/commands/cleanup/artifacts/artifacts.types.d.ts +13 -0
- package/dist/commands/cleanup/artifacts/artifacts.types.d.ts.map +1 -0
- package/dist/commands/cleanup/artifacts/artifacts.types.js +1 -0
- package/dist/commands/cleanup/artifacts/artifacts.utils.d.ts +14 -0
- package/dist/commands/cleanup/artifacts/artifacts.utils.d.ts.map +1 -0
- package/dist/commands/cleanup/artifacts/artifacts.utils.js +74 -0
- package/dist/commands/cleanup/cleanup.types.d.ts +26 -0
- package/dist/commands/cleanup/cleanup.types.d.ts.map +1 -0
- package/dist/commands/cleanup/cleanup.types.js +1 -0
- package/dist/commands/cleanup/cleanup.utils.d.ts +17 -0
- package/dist/commands/cleanup/cleanup.utils.d.ts.map +1 -0
- package/dist/commands/cleanup/cleanup.utils.js +44 -0
- package/dist/commands/cleanup/index.d.ts +3 -0
- package/dist/commands/cleanup/index.d.ts.map +1 -0
- package/dist/commands/cleanup/index.js +9 -0
- package/dist/commands/cleanup/project/project.d.ts +20 -0
- package/dist/commands/cleanup/project/project.d.ts.map +1 -0
- package/dist/commands/cleanup/project/project.js +263 -0
- package/dist/commands/cleanup/project/project.utils.d.ts +8 -0
- package/dist/commands/cleanup/project/project.utils.d.ts.map +1 -0
- package/dist/commands/cleanup/project/project.utils.js +48 -0
- package/dist/commands/config/index.d.ts +16 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +700 -0
- package/dist/commands/docs/analyze.d.ts +8 -0
- package/dist/commands/docs/analyze.d.ts.map +1 -0
- package/dist/commands/docs/analyze.js +45 -0
- package/dist/commands/docs/apply.d.ts +8 -0
- package/dist/commands/docs/apply.d.ts.map +1 -0
- package/dist/commands/docs/apply.js +45 -0
- package/dist/commands/docs/index-generate/generator.d.ts +9 -0
- package/dist/commands/docs/index-generate/generator.d.ts.map +1 -0
- package/dist/commands/docs/index-generate/generator.js +114 -0
- package/dist/commands/docs/index-generate/index.d.ts +16 -0
- package/dist/commands/docs/index-generate/index.d.ts.map +1 -0
- package/dist/commands/docs/index-generate/index.js +72 -0
- package/dist/commands/docs/index.d.ts +3 -0
- package/dist/commands/docs/index.d.ts.map +1 -0
- package/dist/commands/docs/index.js +17 -0
- package/dist/commands/docs/init/index.d.ts +18 -0
- package/dist/commands/docs/init/index.d.ts.map +1 -0
- package/dist/commands/docs/init/index.js +129 -0
- package/dist/commands/docs/init/resolve-options.d.ts +41 -0
- package/dist/commands/docs/init/resolve-options.d.ts.map +1 -0
- package/dist/commands/docs/init/resolve-options.js +120 -0
- package/dist/commands/docs/init/scaffold.d.ts +18 -0
- package/dist/commands/docs/init/scaffold.d.ts.map +1 -0
- package/dist/commands/docs/init/scaffold.js +233 -0
- package/dist/commands/docs/migrate/codemod.d.ts +6 -0
- package/dist/commands/docs/migrate/codemod.d.ts.map +1 -0
- package/dist/commands/docs/migrate/codemod.js +62 -0
- package/dist/commands/docs/migrate/frontmatter.d.ts +12 -0
- package/dist/commands/docs/migrate/frontmatter.d.ts.map +1 -0
- package/dist/commands/docs/migrate/frontmatter.js +55 -0
- package/dist/commands/docs/migrate/index.d.ts +18 -0
- package/dist/commands/docs/migrate/index.d.ts.map +1 -0
- package/dist/commands/docs/migrate/index.js +138 -0
- package/dist/commands/docs/nav/contents.d.ts +14 -0
- package/dist/commands/docs/nav/contents.d.ts.map +1 -0
- package/dist/commands/docs/nav/contents.js +106 -0
- package/dist/commands/docs/nav/index.d.ts +3 -0
- package/dist/commands/docs/nav/index.d.ts.map +1 -0
- package/dist/commands/docs/nav/index.js +7 -0
- package/dist/commands/docs/nav/sync.d.ts +20 -0
- package/dist/commands/docs/nav/sync.d.ts.map +1 -0
- package/dist/commands/docs/nav/sync.js +92 -0
- package/dist/commands/doctor/index.d.ts +32 -0
- package/dist/commands/doctor/index.d.ts.map +1 -0
- package/dist/commands/doctor/index.js +373 -0
- package/dist/commands/index-cmd/index.d.ts +11 -0
- package/dist/commands/index-cmd/index.d.ts.map +1 -0
- package/dist/commands/index-cmd/index.js +62 -0
- package/dist/commands/index-cmd/thin-index.d.ts +19 -0
- package/dist/commands/index-cmd/thin-index.d.ts.map +1 -0
- package/dist/commands/index-cmd/thin-index.js +330 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +38 -0
- package/dist/commands/init/detect-docs.d.ts +11 -0
- package/dist/commands/init/detect-docs.d.ts.map +1 -0
- package/dist/commands/init/detect-docs.js +51 -0
- package/dist/commands/init/gitignore.d.ts +6 -0
- package/dist/commands/init/gitignore.d.ts.map +1 -0
- package/dist/commands/init/gitignore.js +41 -0
- package/dist/commands/init/index.d.ts +70 -0
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/init/index.js +570 -0
- package/dist/commands/init/tools/core/index.d.ts +12 -0
- package/dist/commands/init/tools/core/index.d.ts.map +1 -0
- package/dist/commands/init/tools/core/index.js +67 -0
- package/dist/commands/init/tools/core/install-core.d.ts +30 -0
- package/dist/commands/init/tools/core/install-core.d.ts.map +1 -0
- package/dist/commands/init/tools/core/install-core.js +50 -0
- package/dist/commands/init/tools/docs/index.d.ts +17 -0
- package/dist/commands/init/tools/docs/index.d.ts.map +1 -0
- package/dist/commands/init/tools/docs/index.js +110 -0
- package/dist/commands/init/tools/docs/install-docs.d.ts +23 -0
- package/dist/commands/init/tools/docs/install-docs.d.ts.map +1 -0
- package/dist/commands/init/tools/docs/install-docs.js +58 -0
- package/dist/commands/init/tools/ideas/index.d.ts +16 -0
- package/dist/commands/init/tools/ideas/index.d.ts.map +1 -0
- package/dist/commands/init/tools/ideas/index.js +94 -0
- package/dist/commands/init/tools/ideas/install-ideas.d.ts +25 -0
- package/dist/commands/init/tools/ideas/install-ideas.d.ts.map +1 -0
- package/dist/commands/init/tools/ideas/install-ideas.js +78 -0
- package/dist/commands/init/tools/index.d.ts +51 -0
- package/dist/commands/init/tools/index.d.ts.map +1 -0
- package/dist/commands/init/tools/index.js +387 -0
- package/dist/commands/init/tools/project-management/index.d.ts +12 -0
- package/dist/commands/init/tools/project-management/index.d.ts.map +1 -0
- package/dist/commands/init/tools/project-management/index.js +61 -0
- package/dist/commands/init/tools/project-management/install-project-management.d.ts +22 -0
- package/dist/commands/init/tools/project-management/install-project-management.d.ts.map +1 -0
- package/dist/commands/init/tools/project-management/install-project-management.js +52 -0
- package/dist/commands/init/tools/research/index.d.ts +17 -0
- package/dist/commands/init/tools/research/index.d.ts.map +1 -0
- package/dist/commands/init/tools/research/index.js +110 -0
- package/dist/commands/init/tools/research/install-research.d.ts +23 -0
- package/dist/commands/init/tools/research/install-research.d.ts.map +1 -0
- package/dist/commands/init/tools/research/install-research.js +52 -0
- package/dist/commands/init/tools/shared/copy-helpers.d.ts +12 -0
- package/dist/commands/init/tools/shared/copy-helpers.d.ts.map +1 -0
- package/dist/commands/init/tools/shared/copy-helpers.js +52 -0
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +22 -0
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -0
- package/dist/commands/init/tools/shared/skill-manifest.js +102 -0
- package/dist/commands/init/tools/shared/version.d.ts +3 -0
- package/dist/commands/init/tools/shared/version.d.ts.map +1 -0
- package/dist/commands/init/tools/shared/version.js +27 -0
- package/dist/commands/init/tools/utility/index.d.ts +17 -0
- package/dist/commands/init/tools/utility/index.d.ts.map +1 -0
- package/dist/commands/init/tools/utility/index.js +109 -0
- package/dist/commands/init/tools/utility/install-utility.d.ts +20 -0
- package/dist/commands/init/tools/utility/install-utility.d.ts.map +1 -0
- package/dist/commands/init/tools/utility/install-utility.js +35 -0
- package/dist/commands/init/tools/workflows/index.d.ts +14 -0
- package/dist/commands/init/tools/workflows/index.d.ts.map +1 -0
- package/dist/commands/init/tools/workflows/index.js +84 -0
- package/dist/commands/init/tools/workflows/install-workflows.d.ts +32 -0
- package/dist/commands/init/tools/workflows/install-workflows.d.ts.map +1 -0
- package/dist/commands/init/tools/workflows/install-workflows.js +135 -0
- package/dist/commands/instructions/index.d.ts +3 -0
- package/dist/commands/instructions/index.d.ts.map +1 -0
- package/dist/commands/instructions/index.js +9 -0
- package/dist/commands/instructions/instructions.types.d.ts +52 -0
- package/dist/commands/instructions/instructions.types.d.ts.map +1 -0
- package/dist/commands/instructions/instructions.types.js +1 -0
- package/dist/commands/instructions/instructions.utils.d.ts +13 -0
- package/dist/commands/instructions/instructions.utils.d.ts.map +1 -0
- package/dist/commands/instructions/instructions.utils.js +211 -0
- package/dist/commands/instructions/sync/sync.d.ts +4 -0
- package/dist/commands/instructions/sync/sync.d.ts.map +1 -0
- package/dist/commands/instructions/sync/sync.js +142 -0
- package/dist/commands/instructions/validate/validate.d.ts +4 -0
- package/dist/commands/instructions/validate/validate.d.ts.map +1 -0
- package/dist/commands/instructions/validate/validate.js +53 -0
- package/dist/commands/internal/index.d.ts +3 -0
- package/dist/commands/internal/index.d.ts.map +1 -0
- package/dist/commands/internal/index.js +7 -0
- package/dist/commands/internal/validate-oat-skills.d.ts +10 -0
- package/dist/commands/internal/validate-oat-skills.d.ts.map +1 -0
- package/dist/commands/internal/validate-oat-skills.js +66 -0
- package/dist/commands/local/apply.d.ts +6 -0
- package/dist/commands/local/apply.d.ts.map +1 -0
- package/dist/commands/local/apply.js +56 -0
- package/dist/commands/local/expand.d.ts +8 -0
- package/dist/commands/local/expand.d.ts.map +1 -0
- package/dist/commands/local/expand.js +83 -0
- package/dist/commands/local/index.d.ts +3 -0
- package/dist/commands/local/index.d.ts.map +1 -0
- package/dist/commands/local/index.js +248 -0
- package/dist/commands/local/manage.d.ts +18 -0
- package/dist/commands/local/manage.d.ts.map +1 -0
- package/dist/commands/local/manage.js +66 -0
- package/dist/commands/local/status.d.ts +7 -0
- package/dist/commands/local/status.d.ts.map +1 -0
- package/dist/commands/local/status.js +46 -0
- package/dist/commands/local/sync.d.ts +20 -0
- package/dist/commands/local/sync.d.ts.map +1 -0
- package/dist/commands/local/sync.js +40 -0
- package/dist/commands/project/archive/archive-utils.d.ts +70 -0
- package/dist/commands/project/archive/archive-utils.d.ts.map +1 -0
- package/dist/commands/project/archive/archive-utils.js +236 -0
- package/dist/commands/project/archive/index.d.ts +20 -0
- package/dist/commands/project/archive/index.d.ts.map +1 -0
- package/dist/commands/project/archive/index.js +217 -0
- package/dist/commands/project/index.d.ts +3 -0
- package/dist/commands/project/index.d.ts.map +1 -0
- package/dist/commands/project/index.js +15 -0
- package/dist/commands/project/new/index.d.ts +17 -0
- package/dist/commands/project/new/index.d.ts.map +1 -0
- package/dist/commands/project/new/index.js +76 -0
- package/dist/commands/project/new/scaffold.d.ts +24 -0
- package/dist/commands/project/new/scaffold.d.ts.map +1 -0
- package/dist/commands/project/new/scaffold.js +177 -0
- package/dist/commands/project/open/index.d.ts +26 -0
- package/dist/commands/project/open/index.d.ts.map +1 -0
- package/dist/commands/project/open/index.js +139 -0
- package/dist/commands/project/pause/index.d.ts +27 -0
- package/dist/commands/project/pause/index.d.ts.map +1 -0
- package/dist/commands/project/pause/index.js +120 -0
- package/dist/commands/project/set-mode/index.d.ts +14 -0
- package/dist/commands/project/set-mode/index.d.ts.map +1 -0
- package/dist/commands/project/set-mode/index.js +115 -0
- package/dist/commands/providers/index.d.ts +4 -0
- package/dist/commands/providers/index.d.ts.map +1 -0
- package/dist/commands/providers/index.js +11 -0
- package/dist/commands/providers/inspect/inspect.d.ts +4 -0
- package/dist/commands/providers/inspect/inspect.d.ts.map +1 -0
- package/dist/commands/providers/inspect/inspect.js +156 -0
- package/dist/commands/providers/list/list.d.ts +4 -0
- package/dist/commands/providers/list/list.d.ts.map +1 -0
- package/dist/commands/providers/list/list.js +163 -0
- package/dist/commands/providers/providers.types.d.ts +63 -0
- package/dist/commands/providers/providers.types.d.ts.map +1 -0
- package/dist/commands/providers/providers.types.js +1 -0
- package/dist/commands/providers/set/index.d.ts +4 -0
- package/dist/commands/providers/set/index.d.ts.map +1 -0
- package/dist/commands/providers/set/index.js +138 -0
- package/dist/commands/remove/index.d.ts +3 -0
- package/dist/commands/remove/index.d.ts.map +1 -0
- package/dist/commands/remove/index.js +9 -0
- package/dist/commands/remove/skill/index.d.ts +2 -0
- package/dist/commands/remove/skill/index.d.ts.map +1 -0
- package/dist/commands/remove/skill/index.js +1 -0
- package/dist/commands/remove/skill/remove-skill.d.ts +23 -0
- package/dist/commands/remove/skill/remove-skill.d.ts.map +1 -0
- package/dist/commands/remove/skill/remove-skill.js +231 -0
- package/dist/commands/remove/skills/index.d.ts +2 -0
- package/dist/commands/remove/skills/index.d.ts.map +1 -0
- package/dist/commands/remove/skills/index.js +1 -0
- package/dist/commands/remove/skills/remove-skills.d.ts +14 -0
- package/dist/commands/remove/skills/remove-skills.d.ts.map +1 -0
- package/dist/commands/remove/skills/remove-skills.js +98 -0
- package/dist/commands/repo/index.d.ts +3 -0
- package/dist/commands/repo/index.d.ts.map +1 -0
- package/dist/commands/repo/index.js +7 -0
- package/dist/commands/repo/pr-comments/collect/collect-comments.d.ts +9 -0
- package/dist/commands/repo/pr-comments/collect/collect-comments.d.ts.map +1 -0
- package/dist/commands/repo/pr-comments/collect/collect-comments.js +284 -0
- package/dist/commands/repo/pr-comments/collect/graphql-queries.d.ts +3 -0
- package/dist/commands/repo/pr-comments/collect/graphql-queries.d.ts.map +1 -0
- package/dist/commands/repo/pr-comments/collect/graphql-queries.js +56 -0
- package/dist/commands/repo/pr-comments/collect/index.d.ts +4 -0
- package/dist/commands/repo/pr-comments/collect/index.d.ts.map +1 -0
- package/dist/commands/repo/pr-comments/collect/index.js +25 -0
- package/dist/commands/repo/pr-comments/collect/pr-comments.types.d.ts +62 -0
- package/dist/commands/repo/pr-comments/collect/pr-comments.types.d.ts.map +1 -0
- package/dist/commands/repo/pr-comments/collect/pr-comments.types.js +1 -0
- package/dist/commands/repo/pr-comments/index.d.ts +3 -0
- package/dist/commands/repo/pr-comments/index.d.ts.map +1 -0
- package/dist/commands/repo/pr-comments/index.js +9 -0
- package/dist/commands/repo/pr-comments/triage-collection/index.d.ts +4 -0
- package/dist/commands/repo/pr-comments/triage-collection/index.d.ts.map +1 -0
- package/dist/commands/repo/pr-comments/triage-collection/index.js +21 -0
- package/dist/commands/repo/pr-comments/triage-collection/triage-comments.d.ts +13 -0
- package/dist/commands/repo/pr-comments/triage-collection/triage-comments.d.ts.map +1 -0
- package/dist/commands/repo/pr-comments/triage-collection/triage-comments.js +81 -0
- package/dist/commands/shared/adopt-stray.d.ts +22 -0
- package/dist/commands/shared/adopt-stray.d.ts.map +1 -0
- package/dist/commands/shared/adopt-stray.js +135 -0
- package/dist/commands/shared/agents-md.d.ts +18 -0
- package/dist/commands/shared/agents-md.d.ts.map +1 -0
- package/dist/commands/shared/agents-md.js +81 -0
- package/dist/commands/shared/codex-strays.d.ts +16 -0
- package/dist/commands/shared/codex-strays.d.ts.map +1 -0
- package/dist/commands/shared/codex-strays.js +116 -0
- package/dist/commands/shared/frontmatter-write.d.ts +8 -0
- package/dist/commands/shared/frontmatter-write.d.ts.map +1 -0
- package/dist/commands/shared/frontmatter-write.js +27 -0
- package/dist/commands/shared/frontmatter.d.ts +6 -0
- package/dist/commands/shared/frontmatter.d.ts.map +1 -0
- package/dist/commands/shared/frontmatter.js +35 -0
- package/dist/commands/shared/messages.d.ts +2 -0
- package/dist/commands/shared/messages.d.ts.map +1 -0
- package/dist/commands/shared/messages.js +1 -0
- package/dist/commands/shared/oat-paths.d.ts +2 -0
- package/dist/commands/shared/oat-paths.d.ts.map +1 -0
- package/dist/commands/shared/oat-paths.js +13 -0
- package/dist/commands/shared/shared.prompts.d.ts +21 -0
- package/dist/commands/shared/shared.prompts.d.ts.map +1 -0
- package/dist/commands/shared/shared.prompts.js +107 -0
- package/dist/commands/shared/shared.utils.d.ts +6 -0
- package/dist/commands/shared/shared.utils.d.ts.map +1 -0
- package/dist/commands/shared/shared.utils.js +9 -0
- package/dist/commands/state/generate.d.ts +21 -0
- package/dist/commands/state/generate.d.ts.map +1 -0
- package/dist/commands/state/generate.js +440 -0
- package/dist/commands/state/index.d.ts +11 -0
- package/dist/commands/state/index.d.ts.map +1 -0
- package/dist/commands/state/index.js +58 -0
- package/dist/commands/status/index.d.ts +44 -0
- package/dist/commands/status/index.d.ts.map +1 -0
- package/dist/commands/status/index.js +340 -0
- package/dist/commands/sync/apply.d.ts +4 -0
- package/dist/commands/sync/apply.d.ts.map +1 -0
- package/dist/commands/sync/apply.js +100 -0
- package/dist/commands/sync/dry-run.d.ts +4 -0
- package/dist/commands/sync/dry-run.d.ts.map +1 -0
- package/dist/commands/sync/dry-run.js +74 -0
- package/dist/commands/sync/index.d.ts +4 -0
- package/dist/commands/sync/index.d.ts.map +1 -0
- package/dist/commands/sync/index.js +225 -0
- package/dist/commands/sync/sync.types.d.ts +80 -0
- package/dist/commands/sync/sync.types.d.ts.map +1 -0
- package/dist/commands/sync/sync.types.js +1 -0
- package/dist/commands/sync/sync.utils.d.ts +3 -0
- package/dist/commands/sync/sync.utils.d.ts.map +1 -0
- package/dist/commands/sync/sync.utils.js +8 -0
- package/dist/commands/tools/index.d.ts +3 -0
- package/dist/commands/tools/index.d.ts.map +1 -0
- package/dist/commands/tools/index.js +17 -0
- package/dist/commands/tools/info/index.d.ts +4 -0
- package/dist/commands/tools/info/index.d.ts.map +1 -0
- package/dist/commands/tools/info/index.js +74 -0
- package/dist/commands/tools/info/info-tool.d.ts +21 -0
- package/dist/commands/tools/info/info-tool.d.ts.map +1 -0
- package/dist/commands/tools/info/info-tool.js +52 -0
- package/dist/commands/tools/install/index.d.ts +4 -0
- package/dist/commands/tools/install/index.d.ts.map +1 -0
- package/dist/commands/tools/install/index.js +34 -0
- package/dist/commands/tools/list/index.d.ts +4 -0
- package/dist/commands/tools/list/index.d.ts.map +1 -0
- package/dist/commands/tools/list/index.js +25 -0
- package/dist/commands/tools/list/list-tools.d.ts +13 -0
- package/dist/commands/tools/list/list-tools.d.ts.map +1 -0
- package/dist/commands/tools/list/list-tools.js +43 -0
- package/dist/commands/tools/outdated/index.d.ts +4 -0
- package/dist/commands/tools/outdated/index.d.ts.map +1 -0
- package/dist/commands/tools/outdated/index.js +25 -0
- package/dist/commands/tools/outdated/outdated-tools.d.ts +13 -0
- package/dist/commands/tools/outdated/outdated-tools.d.ts.map +1 -0
- package/dist/commands/tools/outdated/outdated-tools.js +43 -0
- package/dist/commands/tools/remove/index.d.ts +5 -0
- package/dist/commands/tools/remove/index.d.ts.map +1 -0
- package/dist/commands/tools/remove/index.js +122 -0
- package/dist/commands/tools/remove/remove-tools.d.ts +31 -0
- package/dist/commands/tools/remove/remove-tools.d.ts.map +1 -0
- package/dist/commands/tools/remove/remove-tools.js +41 -0
- package/dist/commands/tools/shared/auto-sync.d.ts +16 -0
- package/dist/commands/tools/shared/auto-sync.d.ts.map +1 -0
- package/dist/commands/tools/shared/auto-sync.js +17 -0
- package/dist/commands/tools/shared/scan-tools.d.ts +18 -0
- package/dist/commands/tools/shared/scan-tools.d.ts.map +1 -0
- package/dist/commands/tools/shared/scan-tools.js +128 -0
- package/dist/commands/tools/shared/types.d.ts +12 -0
- package/dist/commands/tools/shared/types.d.ts.map +1 -0
- package/dist/commands/tools/shared/types.js +1 -0
- package/dist/commands/tools/update/index.d.ts +8 -0
- package/dist/commands/tools/update/index.d.ts.map +1 -0
- package/dist/commands/tools/update/index.js +149 -0
- package/dist/commands/tools/update/update-tools.d.ts +29 -0
- package/dist/commands/tools/update/update-tools.d.ts.map +1 -0
- package/dist/commands/tools/update/update-tools.js +148 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/config/oat-config.d.ts +61 -0
- package/dist/config/oat-config.d.ts.map +1 -0
- package/dist/config/oat-config.js +319 -0
- package/dist/config/runtime.d.ts +2 -0
- package/dist/config/runtime.d.ts.map +1 -0
- package/dist/config/runtime.js +3 -0
- package/dist/config/sync-config.d.ts +49 -0
- package/dist/config/sync-config.d.ts.map +1 -0
- package/dist/config/sync-config.js +94 -0
- package/dist/drift/detector.d.ts +4 -0
- package/dist/drift/detector.d.ts.map +1 -0
- package/dist/drift/detector.js +69 -0
- package/dist/drift/drift.types.d.ts +17 -0
- package/dist/drift/drift.types.d.ts.map +1 -0
- package/dist/drift/drift.types.js +1 -0
- package/dist/drift/index.d.ts +4 -0
- package/dist/drift/index.d.ts.map +1 -0
- package/dist/drift/index.js +2 -0
- package/dist/drift/strays.d.ts +7 -0
- package/dist/drift/strays.d.ts.map +1 -0
- package/dist/drift/strays.js +153 -0
- package/dist/engine/compute-plan.d.ts +16 -0
- package/dist/engine/compute-plan.d.ts.map +1 -0
- package/dist/engine/compute-plan.js +234 -0
- package/dist/engine/engine.types.d.ts +28 -0
- package/dist/engine/engine.types.d.ts.map +1 -0
- package/dist/engine/engine.types.js +8 -0
- package/dist/engine/execute-plan.d.ts +5 -0
- package/dist/engine/execute-plan.d.ts.map +1 -0
- package/dist/engine/execute-plan.js +141 -0
- package/dist/engine/hook.d.ts +23 -0
- package/dist/engine/hook.d.ts.map +1 -0
- package/dist/engine/hook.js +254 -0
- package/dist/engine/index.d.ts +9 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +6 -0
- package/dist/engine/markers.d.ts +6 -0
- package/dist/engine/markers.d.ts.map +1 -0
- package/dist/engine/markers.js +24 -0
- package/dist/engine/scanner.d.ts +11 -0
- package/dist/engine/scanner.d.ts.map +1 -0
- package/dist/engine/scanner.js +65 -0
- package/dist/engine/test-helpers.d.ts +3 -0
- package/dist/engine/test-helpers.d.ts.map +1 -0
- package/dist/engine/test-helpers.js +31 -0
- package/dist/errors/cli-error.d.ts +5 -0
- package/dist/errors/cli-error.d.ts.map +1 -0
- package/dist/errors/cli-error.js +8 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/fs/assets.d.ts +2 -0
- package/dist/fs/assets.d.ts.map +1 -0
- package/dist/fs/assets.js +22 -0
- package/dist/fs/index.d.ts +4 -0
- package/dist/fs/index.d.ts.map +1 -0
- package/dist/fs/index.js +3 -0
- package/dist/fs/io.d.ts +9 -0
- package/dist/fs/io.d.ts.map +1 -0
- package/dist/fs/io.js +74 -0
- package/dist/fs/paths.d.ts +9 -0
- package/dist/fs/paths.d.ts.map +1 -0
- package/dist/fs/paths.js +42 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/manifest/hash.d.ts +5 -0
- package/dist/manifest/hash.d.ts.map +1 -0
- package/dist/manifest/hash.js +75 -0
- package/dist/manifest/index.d.ts +5 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +3 -0
- package/dist/manifest/manager.d.ts +8 -0
- package/dist/manifest/manager.d.ts.map +1 -0
- package/dist/manifest/manager.js +86 -0
- package/dist/manifest/manifest.types.d.ts +157 -0
- package/dist/manifest/manifest.types.d.ts.map +1 -0
- package/dist/manifest/manifest.types.js +56 -0
- package/dist/providers/claude/adapter.d.ts +3 -0
- package/dist/providers/claude/adapter.d.ts.map +1 -0
- package/dist/providers/claude/adapter.js +20 -0
- package/dist/providers/claude/index.d.ts +3 -0
- package/dist/providers/claude/index.d.ts.map +1 -0
- package/dist/providers/claude/index.js +2 -0
- package/dist/providers/claude/paths.d.ts +4 -0
- package/dist/providers/claude/paths.d.ts.map +1 -0
- package/dist/providers/claude/paths.js +38 -0
- package/dist/providers/claude/rule-transform.d.ts +3 -0
- package/dist/providers/claude/rule-transform.d.ts.map +1 -0
- package/dist/providers/claude/rule-transform.js +22 -0
- package/dist/providers/codex/adapter.d.ts +3 -0
- package/dist/providers/codex/adapter.d.ts.map +1 -0
- package/dist/providers/codex/adapter.js +20 -0
- package/dist/providers/codex/codec/config-merge.d.ts +17 -0
- package/dist/providers/codex/codec/config-merge.d.ts.map +1 -0
- package/dist/providers/codex/codec/config-merge.js +61 -0
- package/dist/providers/codex/codec/export-to-codex.d.ts +9 -0
- package/dist/providers/codex/codec/export-to-codex.d.ts.map +1 -0
- package/dist/providers/codex/codec/export-to-codex.js +45 -0
- package/dist/providers/codex/codec/import-from-codex.d.ts +9 -0
- package/dist/providers/codex/codec/import-from-codex.d.ts.map +1 -0
- package/dist/providers/codex/codec/import-from-codex.js +52 -0
- package/dist/providers/codex/codec/shared.d.ts +7 -0
- package/dist/providers/codex/codec/shared.d.ts.map +1 -0
- package/dist/providers/codex/codec/shared.js +21 -0
- package/dist/providers/codex/codec/sync-extension.d.ts +32 -0
- package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -0
- package/dist/providers/codex/codec/sync-extension.js +227 -0
- package/dist/providers/codex/index.d.ts +6 -0
- package/dist/providers/codex/index.d.ts.map +1 -0
- package/dist/providers/codex/index.js +5 -0
- package/dist/providers/codex/paths.d.ts +4 -0
- package/dist/providers/codex/paths.d.ts.map +1 -0
- package/dist/providers/codex/paths.js +28 -0
- package/dist/providers/copilot/adapter.d.ts +3 -0
- package/dist/providers/copilot/adapter.d.ts.map +1 -0
- package/dist/providers/copilot/adapter.js +30 -0
- package/dist/providers/copilot/index.d.ts +3 -0
- package/dist/providers/copilot/index.d.ts.map +1 -0
- package/dist/providers/copilot/index.js +2 -0
- package/dist/providers/copilot/paths.d.ts +4 -0
- package/dist/providers/copilot/paths.d.ts.map +1 -0
- package/dist/providers/copilot/paths.js +38 -0
- package/dist/providers/copilot/rule-transform.d.ts +3 -0
- package/dist/providers/copilot/rule-transform.d.ts.map +1 -0
- package/dist/providers/copilot/rule-transform.js +58 -0
- package/dist/providers/cursor/adapter.d.ts +3 -0
- package/dist/providers/cursor/adapter.d.ts.map +1 -0
- package/dist/providers/cursor/adapter.js +20 -0
- package/dist/providers/cursor/index.d.ts +3 -0
- package/dist/providers/cursor/index.d.ts.map +1 -0
- package/dist/providers/cursor/index.js +2 -0
- package/dist/providers/cursor/paths.d.ts +4 -0
- package/dist/providers/cursor/paths.d.ts.map +1 -0
- package/dist/providers/cursor/paths.js +38 -0
- package/dist/providers/cursor/rule-transform.d.ts +3 -0
- package/dist/providers/cursor/rule-transform.d.ts.map +1 -0
- package/dist/providers/cursor/rule-transform.js +48 -0
- package/dist/providers/gemini/adapter.d.ts +3 -0
- package/dist/providers/gemini/adapter.d.ts.map +1 -0
- package/dist/providers/gemini/adapter.js +20 -0
- package/dist/providers/gemini/index.d.ts +3 -0
- package/dist/providers/gemini/index.d.ts.map +1 -0
- package/dist/providers/gemini/index.js +2 -0
- package/dist/providers/gemini/paths.d.ts +4 -0
- package/dist/providers/gemini/paths.d.ts.map +1 -0
- package/dist/providers/gemini/paths.js +28 -0
- package/dist/providers/shared/adapter.types.d.ts +21 -0
- package/dist/providers/shared/adapter.types.d.ts.map +1 -0
- package/dist/providers/shared/adapter.types.js +1 -0
- package/dist/providers/shared/adapter.utils.d.ts +12 -0
- package/dist/providers/shared/adapter.utils.d.ts.map +1 -0
- package/dist/providers/shared/adapter.utils.js +57 -0
- package/dist/providers/shared/agent-codec.types.d.ts +13 -0
- package/dist/providers/shared/agent-codec.types.d.ts.map +1 -0
- package/dist/providers/shared/agent-codec.types.js +1 -0
- package/dist/providers/shared/index.d.ts +6 -0
- package/dist/providers/shared/index.d.ts.map +1 -0
- package/dist/providers/shared/index.js +2 -0
- package/dist/providers/shared/markdown-agent-codec.d.ts +5 -0
- package/dist/providers/shared/markdown-agent-codec.d.ts.map +1 -0
- package/dist/providers/shared/markdown-agent-codec.js +12 -0
- package/dist/release/public-package-contract.d.ts +14 -0
- package/dist/release/public-package-contract.d.ts.map +1 -0
- package/dist/release/public-package-contract.js +97 -0
- package/dist/rules/canonical/index.d.ts +6 -0
- package/dist/rules/canonical/index.d.ts.map +1 -0
- package/dist/rules/canonical/index.js +4 -0
- package/dist/rules/canonical/parse.d.ts +9 -0
- package/dist/rules/canonical/parse.d.ts.map +1 -0
- package/dist/rules/canonical/parse.js +103 -0
- package/dist/rules/canonical/provider-filenames.d.ts +3 -0
- package/dist/rules/canonical/provider-filenames.d.ts.map +1 -0
- package/dist/rules/canonical/provider-filenames.js +13 -0
- package/dist/rules/canonical/render.d.ts +5 -0
- package/dist/rules/canonical/render.d.ts.map +1 -0
- package/dist/rules/canonical/render.js +32 -0
- package/dist/rules/canonical/types.d.ts +16 -0
- package/dist/rules/canonical/types.d.ts.map +1 -0
- package/dist/rules/canonical/types.js +6 -0
- package/dist/shared/index.d.ts +3 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/types.d.ts +10 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +14 -0
- package/dist/ui/ansi.d.ts +2 -0
- package/dist/ui/ansi.d.ts.map +1 -0
- package/dist/ui/ansi.js +19 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/logger.d.ts +15 -0
- package/dist/ui/logger.d.ts.map +1 -0
- package/dist/ui/logger.js +52 -0
- package/dist/ui/output.d.ts +16 -0
- package/dist/ui/output.d.ts.map +1 -0
- package/dist/ui/output.js +135 -0
- package/dist/ui/spinner.d.ts +16 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +46 -0
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +1 -0
- package/dist/validation/skills.d.ts +10 -0
- package/dist/validation/skills.d.ts.map +1 -0
- package/dist/validation/skills.js +166 -0
- package/package.json +62 -0
|
@@ -0,0 +1,728 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oat-project-review-provide
|
|
3
|
+
version: 1.2.3
|
|
4
|
+
description: Use when completed work in an active OAT project needs a quality gate before merge. Performs a lifecycle-scoped review after a task, phase, or full implementation, unlike oat-review-provide.
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Bash(git:*), AskUserQuestion
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Request Review
|
|
11
|
+
|
|
12
|
+
Request and execute a code or artifact review for the current project scope.
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Produce an independent review artifact that verifies requirements/design alignment (mode-aware) and code quality.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
**Required:** Active project with at least one completed task.
|
|
21
|
+
|
|
22
|
+
## Mode Assertion
|
|
23
|
+
|
|
24
|
+
**OAT MODE: Review Request**
|
|
25
|
+
|
|
26
|
+
**Purpose:** Determine review scope and execute a fresh-context review.
|
|
27
|
+
|
|
28
|
+
## Progress Indicators (User-Facing)
|
|
29
|
+
|
|
30
|
+
When executing this skill, provide lightweight progress feedback so the user can tell what’s happening after they confirm.
|
|
31
|
+
|
|
32
|
+
- Print a phase banner once at start using horizontal separators, e.g.:
|
|
33
|
+
|
|
34
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
35
|
+
OAT ▸ PROVIDE REVIEW
|
|
36
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
+
|
|
38
|
+
- Before multi-step work (scope resolution, file gathering, writing artifact), print 2–5 short step indicators, e.g.:
|
|
39
|
+
- `[1/5] Resolving scope + range…`
|
|
40
|
+
- `[2/5] Collecting files + context…`
|
|
41
|
+
- `[3/5] Checking subagent availability…`
|
|
42
|
+
- `[4/5] Running review…`
|
|
43
|
+
- `[5/5] Writing review artifact…`
|
|
44
|
+
- For long-running operations (reviewing large diffs, running verification commands), print a start line and a completion line (duration optional).
|
|
45
|
+
- Keep it concise; don’t print a line for every shell command.
|
|
46
|
+
|
|
47
|
+
**BLOCKED Activities:**
|
|
48
|
+
|
|
49
|
+
- No code changes during review
|
|
50
|
+
- No fixing issues found (that comes in receive-review)
|
|
51
|
+
|
|
52
|
+
**ALLOWED Activities:**
|
|
53
|
+
|
|
54
|
+
- Reading artifacts and code
|
|
55
|
+
- Running verification commands
|
|
56
|
+
- Writing review artifact
|
|
57
|
+
|
|
58
|
+
## Usage
|
|
59
|
+
|
|
60
|
+
### With arguments (if supported)
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
oat-project-review-provide code p02 # Code review for phase
|
|
64
|
+
oat-project-review-provide code p02-p03 # Code review for contiguous phase range
|
|
65
|
+
oat-project-review-provide code p02-t03 # Code review for task
|
|
66
|
+
oat-project-review-provide code final # Final code review
|
|
67
|
+
oat-project-review-provide code base_sha=abc # Review since specific SHA
|
|
68
|
+
oat-project-review-provide artifact discovery # Artifact review of discovery.md
|
|
69
|
+
oat-project-review-provide artifact spec # Artifact review of spec.md
|
|
70
|
+
oat-project-review-provide artifact design # Artifact review of design.md
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Without arguments
|
|
74
|
+
|
|
75
|
+
Run the `oat-project-review-provide` skill and it will:
|
|
76
|
+
|
|
77
|
+
1. Ask review type (code or artifact)
|
|
78
|
+
2. Ask scope (task/phase/final/range)
|
|
79
|
+
3. Confirm before running
|
|
80
|
+
|
|
81
|
+
## Process
|
|
82
|
+
|
|
83
|
+
### Step 0: Resolve Active Project (Hard Requirement)
|
|
84
|
+
|
|
85
|
+
OAT stores active project context in `.oat/config.local.json` (`activeProject`, local-only).
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
PROJECT_PATH=$(oat config get activeProject 2>/dev/null || true)
|
|
89
|
+
PROJECTS_ROOT="${OAT_PROJECTS_ROOT:-$(oat config get projects.root 2>/dev/null || echo ".oat/projects/shared")}"
|
|
90
|
+
PROJECTS_ROOT="${PROJECTS_ROOT%/}"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Validation rules:
|
|
94
|
+
|
|
95
|
+
- `PROJECT_PATH` must be set and point to an existing directory.
|
|
96
|
+
- `"$PROJECT_PATH/state.md"` must exist for mode-aware review validation.
|
|
97
|
+
|
|
98
|
+
If either check fails, **stop and route**. Do not create/guess project pointers in this skill.
|
|
99
|
+
|
|
100
|
+
Tell user:
|
|
101
|
+
|
|
102
|
+
- This is a project-scoped skill and needs an initialized OAT project (`activeProject` in `.oat/config.local.json` + project `state.md`).
|
|
103
|
+
- Without project state, review can still proceed via non-project skill: `oat-review-provide`.
|
|
104
|
+
- To continue with project workflow instead, run one of:
|
|
105
|
+
- `oat-project-open` (existing project)
|
|
106
|
+
- `oat-project-quick-start` (new quick project)
|
|
107
|
+
- `oat-project-import-plan` (external plan import)
|
|
108
|
+
|
|
109
|
+
If validation passes, derive `{project-name}` as basename of `PROJECT_PATH`.
|
|
110
|
+
|
|
111
|
+
### Step 1: Parse Arguments or Ask
|
|
112
|
+
|
|
113
|
+
**If arguments provided:**
|
|
114
|
+
|
|
115
|
+
- Parse `$ARGUMENTS[0]` as review type: `code` or `artifact`
|
|
116
|
+
- Parse `$ARGUMENTS[1]` as scope token
|
|
117
|
+
|
|
118
|
+
**If no arguments — infer from project state:**
|
|
119
|
+
|
|
120
|
+
Read `state.md` frontmatter to propose the most likely review type and scope:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
PHASE=$(grep "^oat_phase:" "$PROJECT_PATH/state.md" 2>/dev/null | awk '{print $2}')
|
|
124
|
+
PHASE_STATUS=$(grep "^oat_phase_status:" "$PROJECT_PATH/state.md" 2>/dev/null | awk '{print $2}')
|
|
125
|
+
WORKFLOW_MODE=$(grep "^oat_workflow_mode:" "$PROJECT_PATH/state.md" 2>/dev/null | awk '{print $2}')
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Inference rules (first match wins):
|
|
129
|
+
|
|
130
|
+
| Phase | Status | Inferred review |
|
|
131
|
+
| ----------- | ------------- | ------------------------------------------------------------------------------ |
|
|
132
|
+
| `discovery` | `complete` | `artifact discovery` |
|
|
133
|
+
| `spec` | `complete` | `artifact spec` |
|
|
134
|
+
| `design` | `complete` | `artifact design` |
|
|
135
|
+
| `plan` | `complete` | `artifact plan` |
|
|
136
|
+
| `implement` | `in_progress` | `code` with current phase scope (derive from `implementation.md` current task) |
|
|
137
|
+
| `implement` | `complete` | `code final` |
|
|
138
|
+
|
|
139
|
+
If inference produces a result, propose it and proceed unless the user overrides:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Based on project state ({phase}, {phase_status}), I'd run: {type} {scope}
|
|
143
|
+
Proceed? (Y / or specify different type scope)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
If the user confirms (or just presses enter), use the inferred type and scope. If the user provides an alternative, use that instead.
|
|
147
|
+
|
|
148
|
+
**If state.md is missing or phase is unrecognized:** fall back to asking:
|
|
149
|
+
|
|
150
|
+
- Ask: "What type of review? (code / artifact)"
|
|
151
|
+
- Ask: "What scope?"
|
|
152
|
+
- For code: `pNN-tNN` task / `pNN` phase / `pNN-pMM` contiguous phase range / `final` / `base_sha=SHA` / `SHA..HEAD` range
|
|
153
|
+
- For artifact: `discovery` / `spec` / `design` (and optionally `plan`)
|
|
154
|
+
|
|
155
|
+
### Step 1.5: Resolve Target Branch and Working Directory
|
|
156
|
+
|
|
157
|
+
Before validating artifacts or gathering files, verify that the review will run and write artifacts against the correct branch and working directory. This step must run before Step 2 so that `PROJECT_PATH` points to the correct checkout for all downstream operations.
|
|
158
|
+
|
|
159
|
+
**Detect current state:**
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Handle detached HEAD:** If `CURRENT_BRANCH` is empty (detached HEAD), resolve the branch from the current worktree entry:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
if [[ -z "$CURRENT_BRANCH" ]]; then
|
|
169
|
+
REPO_ROOT=$(git rev-parse --show-toplevel)
|
|
170
|
+
CURRENT_BRANCH=$(git worktree list --porcelain | awk -v wt="$REPO_ROOT" '
|
|
171
|
+
/^worktree / { cur=$2 }
|
|
172
|
+
/^branch / { if (cur == wt) { sub("refs/heads/", "", $2); print $2 } }
|
|
173
|
+
')
|
|
174
|
+
fi
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
If still empty after worktree lookup, ask user: "Unable to detect current branch (detached HEAD). Which branch should the review target?"
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
TARGET_BRANCH="${TARGET_BRANCH:-$CURRENT_BRANCH}" # from user scope, worktree context, or default
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**If target branch matches current branch:** proceed normally — no path adjustment needed.
|
|
184
|
+
|
|
185
|
+
**If target branch differs from current branch:**
|
|
186
|
+
|
|
187
|
+
1. Check if the target branch has a worktree:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
WORKTREE_PATH=$(git worktree list --porcelain | awk -v branch="$TARGET_BRANCH" '
|
|
191
|
+
/^worktree / { wt=$2 }
|
|
192
|
+
/^branch / { if ($2 == "refs/heads/" branch) print wt }
|
|
193
|
+
')
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
2. **If worktree exists for target branch:**
|
|
197
|
+
- Compute the project's relative path within the repo: `REL_PROJECT=$(realpath --relative-to="$(git rev-parse --show-toplevel)" "$PROJECT_PATH")`
|
|
198
|
+
- Update `PROJECT_PATH` to resolve inside the worktree: `PROJECT_PATH="$WORKTREE_PATH/$REL_PROJECT"`
|
|
199
|
+
- All subsequent steps (artifact validation, git diff/log, artifact writes, commits) use the updated `PROJECT_PATH`.
|
|
200
|
+
- Run git commands scoped to the worktree: `git -C "$WORKTREE_PATH" ...`
|
|
201
|
+
- Print: `Review target: worktree at {WORKTREE_PATH} (branch: {TARGET_BRANCH})`
|
|
202
|
+
|
|
203
|
+
3. **If no worktree exists (regular branch on main worktree):**
|
|
204
|
+
- **Stop and notify the user.** Do not silently write to the wrong branch.
|
|
205
|
+
- Print:
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
⚠️ Target branch "{TARGET_BRANCH}" differs from current branch "{CURRENT_BRANCH}".
|
|
209
|
+
No worktree found for "{TARGET_BRANCH}".
|
|
210
|
+
|
|
211
|
+
Options:
|
|
212
|
+
1. Switch to branch "{TARGET_BRANCH}" (git checkout) — artifact will be written on that branch
|
|
213
|
+
2. Provide review inline only (no artifact written to disk)
|
|
214
|
+
3. Cancel and create a worktree first
|
|
215
|
+
|
|
216
|
+
Choose:
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
- If user chooses option 1: run `git checkout {TARGET_BRANCH}`, then proceed.
|
|
220
|
+
- If user chooses option 2: set `INLINE_ONLY=true` — skip artifact write (Step 7/8) and output review findings directly in the session. The user can manually save the output.
|
|
221
|
+
- If user chooses option 3: stop and suggest `oat-worktree-bootstrap-auto`.
|
|
222
|
+
|
|
223
|
+
### Step 2: Validate Artifacts Exist (Mode-Aware)
|
|
224
|
+
|
|
225
|
+
Resolve workflow mode from state (default `spec-driven`):
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
WORKFLOW_MODE=$(grep "^oat_workflow_mode:" "$PROJECT_PATH/state.md" 2>/dev/null | head -1 | awk '{print $2}')
|
|
229
|
+
WORKFLOW_MODE=${WORKFLOW_MODE:-spec-driven}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**Required for code review (by mode):**
|
|
233
|
+
|
|
234
|
+
- `spec-driven`: `spec.md`, `design.md`, `plan.md`
|
|
235
|
+
- `quick`: `discovery.md`, `plan.md` (`spec.md`/`design.md` optional if present)
|
|
236
|
+
- `import`: `plan.md` (`references/imported-plan.md` recommended, `spec.md`/`design.md` optional)
|
|
237
|
+
|
|
238
|
+
**Required for artifact review:**
|
|
239
|
+
|
|
240
|
+
- The artifact being reviewed must exist.
|
|
241
|
+
- Upstream dependencies are required only when relevant to that artifact:
|
|
242
|
+
- reviewing `spec` requires `discovery.md`
|
|
243
|
+
- reviewing `design` in `spec-driven` mode requires `spec.md`
|
|
244
|
+
- reviewing `design` in `quick/import` mode requires only `discovery.md` (spec is skipped in these modes)
|
|
245
|
+
- in `quick/import` mode, missing `spec.md` must not be treated as a project review gate failure for `artifact design`; proceed with normal project-scoped review flow, artifact writing, and bookkeeping
|
|
246
|
+
- reviewing `plan` in `spec-driven` mode requires `spec.md` + `design.md`
|
|
247
|
+
- reviewing `plan` in `quick/import` mode may use `discovery.md` and/or `references/imported-plan.md` instead
|
|
248
|
+
|
|
249
|
+
**If missing:** Report missing required artifacts for the current mode and stop if requirements are not met.
|
|
250
|
+
|
|
251
|
+
### Step 3: Determine Scope and Commits
|
|
252
|
+
|
|
253
|
+
If review type is `artifact`:
|
|
254
|
+
|
|
255
|
+
- Interpret the scope token as the artifact name (`discovery`, `spec`, `design`, or `plan`)
|
|
256
|
+
- Set `SCOPE_RANGE=""` (no git range required)
|
|
257
|
+
- Proceed to Step 5 (metadata); Step 4 uses artifact files, not git diff
|
|
258
|
+
|
|
259
|
+
If review type is `code`, use the scope resolution below.
|
|
260
|
+
|
|
261
|
+
**Step 3a: Detect Re-Review Context**
|
|
262
|
+
|
|
263
|
+
Before resolving scope, check if this is a re-review of fixes from a prior review cycle:
|
|
264
|
+
|
|
265
|
+
1. Scan `plan.md` for tasks tagged with `(review)` in the scope being reviewed (e.g., `(p02-review)` fix tasks for a `p02` phase review or `(p02-p03-review)` for a contiguous phase-range review).
|
|
266
|
+
2. If `(review)` fix tasks exist **and** their status is `completed`:
|
|
267
|
+
- This is a re-review. Offer the user a narrowed scope:
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
Detected completed review fix tasks for this scope:
|
|
271
|
+
- {task IDs and descriptions}
|
|
272
|
+
|
|
273
|
+
Scope to fix task commits only? (Y/n)
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
- **If yes (default):** gather only the commits associated with those fix tasks using commit convention grep (e.g., `git log --oneline --grep="\(pNN-tNN\)" HEAD~50..HEAD` for each fix task ID). Set `SCOPE_RANGE` to cover only those commits.
|
|
277
|
+
- **If no:** proceed with full scope resolution below (re-review everything).
|
|
278
|
+
|
|
279
|
+
3. If no `(review)` fix tasks exist, or they are not yet completed, proceed with normal scope resolution.
|
|
280
|
+
|
|
281
|
+
**Priority order for scope resolution:**
|
|
282
|
+
|
|
283
|
+
1. **Explicit user input (preferred):**
|
|
284
|
+
- `base_sha=<sha>` → review range is `<sha>..HEAD`
|
|
285
|
+
- `<sha1>..<sha2>` → exact range review
|
|
286
|
+
- `pNN-tNN` → task scope
|
|
287
|
+
- `pNN` → phase scope
|
|
288
|
+
- `pNN-pMM` → contiguous inclusive phase-range scope (for example `p02-p03`)
|
|
289
|
+
- `final` → full project review
|
|
290
|
+
|
|
291
|
+
**Phase-range semantics:**
|
|
292
|
+
|
|
293
|
+
- `pNN-pMM` scopes are inclusive and must represent contiguous implementation phases.
|
|
294
|
+
- This is the canonical scope format for checkpoint auto-reviews that need to cover multiple previously unpassed phases in one review.
|
|
295
|
+
- When a phase-range token is used, treat it as a range review for artifact naming/storage, but preserve the exact `oat_review_scope` value (for example `p02-p03`) in frontmatter and plan review rows.
|
|
296
|
+
|
|
297
|
+
2. **Automatic phase detection (if invoked at phase boundary):**
|
|
298
|
+
- Derive current phase from plan.md + implementation.md
|
|
299
|
+
- Use commit convention grep to find commits:
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
# Task commits: grep for (pNN-tNN)
|
|
303
|
+
git log --oneline --grep="\(p${PHASE}-t" HEAD~50..HEAD
|
|
304
|
+
|
|
305
|
+
# Phase commits: grep for (pNN-
|
|
306
|
+
git log --oneline --grep="\(p${PHASE}-" HEAD~50..HEAD
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
- For contiguous phase-range scopes (`pNN-pMM`), aggregate commit matches for each phase in the inclusive range:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
for PHASE_NUM in $(seq "$START_PHASE_NUM" "$END_PHASE_NUM"); do
|
|
313
|
+
PHASE_ID=$(printf "p%02d" "$PHASE_NUM")
|
|
314
|
+
git log --oneline --grep="\\(${PHASE_ID}-" HEAD~50..HEAD
|
|
315
|
+
done
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
3. **Fallback (if commit conventions missing/inconsistent):**
|
|
319
|
+
- Prompt user to choose:
|
|
320
|
+
- Provide `base_sha=<sha>`
|
|
321
|
+
- Provide `<sha1>..<sha2>` range
|
|
322
|
+
- Confirm "review merge-base..HEAD" (all changes on branch)
|
|
323
|
+
|
|
324
|
+
**Merge-base approach:**
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
MERGE_BASE=$(git merge-base origin/main HEAD 2>/dev/null || git merge-base main HEAD 2>/dev/null)
|
|
328
|
+
SCOPE_RANGE="$MERGE_BASE..HEAD"
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### Step 4: Get Files Changed
|
|
332
|
+
|
|
333
|
+
If review type is `code`, once scope range is determined:
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
FILES_CHANGED=$(git diff --name-only "$SCOPE_RANGE" 2>/dev/null)
|
|
337
|
+
FILE_COUNT=$(echo "$FILES_CHANGED" | wc -l | tr -d ' ')
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
If review type is `artifact`, the "files in scope" are the artifact(s):
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
case "$SCOPE_TOKEN" in
|
|
344
|
+
discovery) FILES_CHANGED=$(printf "%s\n" "$PROJECT_PATH/discovery.md") ;;
|
|
345
|
+
spec) FILES_CHANGED=$(printf "%s\n" "$PROJECT_PATH/spec.md" "$PROJECT_PATH/discovery.md") ;;
|
|
346
|
+
design)
|
|
347
|
+
if [[ "$WORKFLOW_MODE" == "spec-driven" ]]; then
|
|
348
|
+
FILES_CHANGED=$(printf "%s\n" "$PROJECT_PATH/design.md" "$PROJECT_PATH/spec.md")
|
|
349
|
+
else
|
|
350
|
+
FILES_CHANGED=$(printf "%s\n" "$PROJECT_PATH/design.md" "$PROJECT_PATH/discovery.md")
|
|
351
|
+
fi
|
|
352
|
+
;;
|
|
353
|
+
plan)
|
|
354
|
+
if [[ "$WORKFLOW_MODE" == "spec-driven" ]]; then
|
|
355
|
+
FILES_CHANGED=$(printf "%s\n" "$PROJECT_PATH/plan.md" "$PROJECT_PATH/spec.md" "$PROJECT_PATH/design.md")
|
|
356
|
+
elif [[ "$WORKFLOW_MODE" == "quick" ]]; then
|
|
357
|
+
FILES_CHANGED=$(printf "%s\n" "$PROJECT_PATH/plan.md" "$PROJECT_PATH/discovery.md")
|
|
358
|
+
else
|
|
359
|
+
FILES_CHANGED=$(printf "%s\n" "$PROJECT_PATH/plan.md" "$PROJECT_PATH/references/imported-plan.md")
|
|
360
|
+
fi
|
|
361
|
+
;;
|
|
362
|
+
esac
|
|
363
|
+
FILE_COUNT=$(echo "$FILES_CHANGED" | wc -l | tr -d ' ')
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
Display to user:
|
|
367
|
+
|
|
368
|
+
```
|
|
369
|
+
Review scope: {scope}
|
|
370
|
+
Range: {SCOPE_RANGE} (code reviews only; artifact reviews have no git range)
|
|
371
|
+
Files changed: {FILE_COUNT}
|
|
372
|
+
|
|
373
|
+
{FILE_LIST preview - first 20 files}
|
|
374
|
+
|
|
375
|
+
Proceed with review?
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### Step 4.5: Gather Deferred Findings Ledger (Final Scope Only)
|
|
379
|
+
|
|
380
|
+
If `review type == code` and `scope == final`, gather unresolved deferred findings from prior review cycles.
|
|
381
|
+
|
|
382
|
+
Preferred sources:
|
|
383
|
+
|
|
384
|
+
- `implementation.md` sections titled `Deferred Findings (...)`
|
|
385
|
+
- prior review artifacts under `reviews/archived/` when implementation notes are incomplete (plus the current active review file in `reviews/`, if one exists for the in-flight cycle)
|
|
386
|
+
|
|
387
|
+
Build:
|
|
388
|
+
|
|
389
|
+
- `DEFERRED_MEDIUM_COUNT`
|
|
390
|
+
- `DEFERRED_MINOR_COUNT`
|
|
391
|
+
- `DEFERRED_LEDGER` (one-line summary per finding with source artifact)
|
|
392
|
+
|
|
393
|
+
Rules:
|
|
394
|
+
|
|
395
|
+
- Include this ledger in review metadata so final review explicitly re-evaluates carry-forward debt.
|
|
396
|
+
- Final review should call out whether each deferred Medium remains acceptable or should now be fixed.
|
|
397
|
+
|
|
398
|
+
### Step 5: Prepare Review Metadata Block
|
|
399
|
+
|
|
400
|
+
Build the "Review Scope" metadata for the reviewer:
|
|
401
|
+
|
|
402
|
+
```markdown
|
|
403
|
+
## Review Scope
|
|
404
|
+
|
|
405
|
+
**Project:** {PROJECT_PATH}
|
|
406
|
+
**Type:** {code|artifact}
|
|
407
|
+
**Scope:** {scope}{optional: " (" + SCOPE_RANGE + ")"}
|
|
408
|
+
**Date:** {today}
|
|
409
|
+
|
|
410
|
+
**Artifact Paths:**
|
|
411
|
+
|
|
412
|
+
- Spec: {PROJECT_PATH}/spec.md (required in spec-driven mode; optional in quick/import)
|
|
413
|
+
- Design: {PROJECT_PATH}/design.md (required in spec-driven mode; optional in quick/import)
|
|
414
|
+
- Plan: {PROJECT_PATH}/plan.md
|
|
415
|
+
- Implementation: {PROJECT_PATH}/implementation.md
|
|
416
|
+
- Discovery: {PROJECT_PATH}/discovery.md
|
|
417
|
+
- Imported Plan Reference: {PROJECT_PATH}/references/imported-plan.md (optional; import mode)
|
|
418
|
+
|
|
419
|
+
**Tasks in Scope (code review only):** {task IDs from plan.md matching scope}
|
|
420
|
+
|
|
421
|
+
**Files Changed ({FILE_COUNT}):**
|
|
422
|
+
{FILE_LIST}
|
|
423
|
+
|
|
424
|
+
**Commits (code review only):**
|
|
425
|
+
{git log --oneline for SCOPE_RANGE}
|
|
426
|
+
|
|
427
|
+
**Deferred Findings Ledger (final scope only):**
|
|
428
|
+
|
|
429
|
+
- Deferred Medium count: {DEFERRED_MEDIUM_COUNT}
|
|
430
|
+
- Deferred Minor count: {DEFERRED_MINOR_COUNT}
|
|
431
|
+
{DEFERRED_LEDGER}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Step 6: Execute Review (3-Tier Capability Model)
|
|
435
|
+
|
|
436
|
+
**Step 6a: Probe Subagent Availability**
|
|
437
|
+
|
|
438
|
+
Before selecting a tier, announce the probe and its result so the user can see what's happening:
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
[3/5] Checking subagent availability…
|
|
442
|
+
→ oat-reviewer: {available | authorization required | not resolved} ({reason})
|
|
443
|
+
→ Selected: Tier {1|2|3} — {Subagent (fresh context) | Fresh session (recommended) | Inline review}
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
Detection logic:
|
|
447
|
+
|
|
448
|
+
- If the host is Claude Code, use Task-style subagent dispatch with `subagent_type: "oat-reviewer"` and resolve from `.claude/agents/oat-reviewer.md`.
|
|
449
|
+
- If the host is Cursor, invoke `oat-reviewer` using Cursor-native explicit invocation (`/oat-reviewer`) or natural mention, and resolve from `.cursor/agents/oat-reviewer.md` (or `.claude/agents/oat-reviewer.md` compatibility path).
|
|
450
|
+
- If the host is Codex multi-agent, verify Codex requirements first:
|
|
451
|
+
- `[features] multi_agent = true` is enabled in active Codex config.
|
|
452
|
+
- If explicit role pinning is desired, `agent_type` must be a built-in role (`default`/`worker`/`explorer`) or a custom role declared under `[agents.<name>]`.
|
|
453
|
+
- Codex may also auto-select and spawn agents without explicit role pinning.
|
|
454
|
+
- If the current Codex host requires explicit user authorization before calling `spawn_agent`, do not mark `oat-reviewer` as unresolved. Announce `authorization required` and ask one concise confirmation question before selecting Tier 2 or Tier 3:
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
Delegate this review to `oat-reviewer`?
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
- If the user authorizes delegation and Codex role prerequisites are satisfied, use **Tier 1**.
|
|
461
|
+
- If the user declines delegation, continue with the existing Tier 2 / Tier 3 fallback flow.
|
|
462
|
+
|
|
463
|
+
- If the runtime can dispatch reviewer work (`subagent_type` in Claude Code, Cursor invocation via `/name` or natural mention, or Codex multi-agent spawn/auto-spawn) → **Tier 1**.
|
|
464
|
+
- If the Task tool is not available or subagent dispatch is not supported → **Tier 2**.
|
|
465
|
+
- If user explicitly requests inline or confirms they are already in a fresh session → **Tier 3**.
|
|
466
|
+
|
|
467
|
+
**Step 6b: Tier 1 — Subagent (if available)**
|
|
468
|
+
|
|
469
|
+
First, pre-compute the review artifact path using Step 7 naming conventions so it can be passed to the subagent.
|
|
470
|
+
|
|
471
|
+
Then spawn the reviewer:
|
|
472
|
+
|
|
473
|
+
- Use provider-appropriate dispatch:
|
|
474
|
+
- Claude Code: Task tool with `subagent_type: "oat-reviewer"` (resolves from `.claude/agents/oat-reviewer.md`).
|
|
475
|
+
- Cursor: explicit invocation `/oat-reviewer` (or natural mention) with agent resolved from `.cursor/agents/oat-reviewer.md` or `.claude/agents/oat-reviewer.md` compatibility path.
|
|
476
|
+
- Codex style: ask Codex to spawn agent(s) for review work and wait for all results; optionally pin `agent_type` when a specific built-in/custom role is required.
|
|
477
|
+
- Pass the Review Scope metadata block from Step 5 as the prompt
|
|
478
|
+
- Include the pre-computed artifact path for the subagent to write to
|
|
479
|
+
- **If a worktree was resolved in Step 1.5:** include the worktree path in the prompt so the subagent writes the artifact to the worktree directory, not the current session's working directory
|
|
480
|
+
- Run in background if supported (`run_in_background: true`)
|
|
481
|
+
|
|
482
|
+
The `oat-reviewer` agent definition contains the full review process, mode contract, severity categories, artifact template, and critical rules. No additional instructions need to be injected.
|
|
483
|
+
|
|
484
|
+
After the subagent completes:
|
|
485
|
+
|
|
486
|
+
- Verify the review artifact was written to the expected path
|
|
487
|
+
- Continue with Step 9 (plan update) and Step 9.5 (commit)
|
|
488
|
+
|
|
489
|
+
**Step 6c: Tier 2 — Fresh Session (recommended fallback)**
|
|
490
|
+
|
|
491
|
+
If subagent not available:
|
|
492
|
+
|
|
493
|
+
- If user is already in a fresh session (confirmed), proceed to Tier 3.
|
|
494
|
+
- If Codex reported `authorization required` and the user approved delegation, do **not** use Tier 2. Return to Tier 1 and delegate to `oat-reviewer`.
|
|
495
|
+
- If user prefers fresh session: provide instructions and exit.
|
|
496
|
+
|
|
497
|
+
Instructions for fresh session:
|
|
498
|
+
|
|
499
|
+
```
|
|
500
|
+
To run review in a fresh session:
|
|
501
|
+
1. Open a new terminal/session
|
|
502
|
+
2. Run the oat-project-review-provide skill with: code {scope}
|
|
503
|
+
3. When complete, return to this session
|
|
504
|
+
4. Run the oat-project-review-receive skill
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
**Step 6d: Tier 3 — Inline Reset (fallback)**
|
|
508
|
+
|
|
509
|
+
If user insists on inline review in current session:
|
|
510
|
+
|
|
511
|
+
- Run "reset protocol":
|
|
512
|
+
1. Re-read required artifacts for current workflow mode from scratch
|
|
513
|
+
2. Read all files in FILES_CHANGED
|
|
514
|
+
3. Apply oat-reviewer checklist inline
|
|
515
|
+
4. Write review artifact
|
|
516
|
+
|
|
517
|
+
### Step 7: Determine Review Artifact Path
|
|
518
|
+
|
|
519
|
+
**If `INLINE_ONLY=true`** (user chose inline-only in Step 1.5): skip this step — no artifact path needed.
|
|
520
|
+
|
|
521
|
+
Review storage contract:
|
|
522
|
+
|
|
523
|
+
- Write new review artifacts to the active tracked directory: `{PROJECT_PATH}/reviews/`
|
|
524
|
+
- Do **not** write new artifacts directly into `{PROJECT_PATH}/reviews/archived/`
|
|
525
|
+
- After `oat-project-review-receive` consumes a review, that skill moves it into `reviews/archived/` for local-only historical storage
|
|
526
|
+
|
|
527
|
+
**Naming convention:**
|
|
528
|
+
|
|
529
|
+
- Phase review: `{PROJECT_PATH}/reviews/pNN-review-YYYY-MM-DD.md`
|
|
530
|
+
- Task review: `{PROJECT_PATH}/reviews/pNN-tNN-review-YYYY-MM-DD.md`
|
|
531
|
+
- Final review: `{PROJECT_PATH}/reviews/final-review-YYYY-MM-DD.md`
|
|
532
|
+
- Range review: `{PROJECT_PATH}/reviews/range-review-YYYY-MM-DD.md`
|
|
533
|
+
- Artifact review: `{PROJECT_PATH}/reviews/artifact-{artifact}-review-YYYY-MM-DD.md`
|
|
534
|
+
|
|
535
|
+
**If file exists for today:** append `-v2`, `-v3`, etc.
|
|
536
|
+
|
|
537
|
+
**Important:** `PROJECT_PATH` here must be the resolved path from Step 1.5. If a worktree was detected, this path is relative to the worktree root, ensuring the artifact is written on the correct branch.
|
|
538
|
+
|
|
539
|
+
```bash
|
|
540
|
+
mkdir -p "$PROJECT_PATH/reviews"
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
### Step 8: Write Review Artifact (if Tier 3)
|
|
544
|
+
|
|
545
|
+
If running inline (Tier 3), execute the review and write artifact.
|
|
546
|
+
|
|
547
|
+
**Review checklist (from oat-reviewer):**
|
|
548
|
+
|
|
549
|
+
1. Verify scope (don't review out-of-scope changes)
|
|
550
|
+
2. If code review: verify alignment to available requirements sources (`spec`/`design` for spec-driven mode; `discovery`/import reference for quick/import)
|
|
551
|
+
3. If code review: verify code quality (correctness, tests, security, maintainability)
|
|
552
|
+
4. If artifact review: verify completeness/clarity/readiness of the artifact and its alignment with upstream artifacts
|
|
553
|
+
5. Categorize findings (Critical/Important/Medium/Minor)
|
|
554
|
+
6. For final scope: explicitly disposition deferred Medium ledger items (fix now vs accept defer)
|
|
555
|
+
7. Write artifact with file:line references and fix guidance
|
|
556
|
+
|
|
557
|
+
**Review artifact template:** (see `.agents/agents/oat-reviewer.md` for full format)
|
|
558
|
+
|
|
559
|
+
Shared ad-hoc companion reference (non-project mode):
|
|
560
|
+
|
|
561
|
+
- `.agents/skills/oat-review-provide/references/review-artifact-template.md`
|
|
562
|
+
|
|
563
|
+
```markdown
|
|
564
|
+
---
|
|
565
|
+
oat_generated: true
|
|
566
|
+
oat_generated_at: { today }
|
|
567
|
+
oat_review_scope: { scope }
|
|
568
|
+
oat_review_type: { code|artifact }
|
|
569
|
+
oat_review_invocation: { manual|auto }
|
|
570
|
+
oat_project: { PROJECT_PATH }
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
# {Code|Artifact} Review: {scope}
|
|
574
|
+
|
|
575
|
+
**Reviewed:** {today}
|
|
576
|
+
**Scope:** {scope description}
|
|
577
|
+
**Files reviewed:** {N}
|
|
578
|
+
**Commits:** {range}
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
**Frontmatter field: `oat_review_invocation`**
|
|
582
|
+
|
|
583
|
+
- `manual` (default): Review was manually triggered by the user. `oat-project-review-receive` uses standard disposition behavior (user prompts for triage, minors auto-deferred for non-final scopes).
|
|
584
|
+
- `auto`: Review was spawned by the auto-review checkpoint trigger in `oat-project-implement`. `oat-project-review-receive` uses relaxed disposition: minors are auto-converted to fix tasks (not deferred), no user prompts for disposition decisions.
|
|
585
|
+
|
|
586
|
+
When `oat-project-implement` spawns this skill for auto-review at checkpoints, it passes context indicating auto invocation. Set `oat_review_invocation: auto` in the artifact frontmatter. For all other invocations (user-triggered, fresh session), use `manual`.
|
|
587
|
+
|
|
588
|
+
## Summary
|
|
589
|
+
|
|
590
|
+
{2-3 sentence summary}
|
|
591
|
+
|
|
592
|
+
## Findings
|
|
593
|
+
|
|
594
|
+
### Critical
|
|
595
|
+
|
|
596
|
+
{findings or "None"}
|
|
597
|
+
|
|
598
|
+
### Important
|
|
599
|
+
|
|
600
|
+
{findings or "None"}
|
|
601
|
+
|
|
602
|
+
### Medium
|
|
603
|
+
|
|
604
|
+
{findings or "None"}
|
|
605
|
+
|
|
606
|
+
### Minor
|
|
607
|
+
|
|
608
|
+
{findings or "None"}
|
|
609
|
+
|
|
610
|
+
## Spec/Design Alignment
|
|
611
|
+
|
|
612
|
+
### Requirements Coverage
|
|
613
|
+
|
|
614
|
+
| Requirement | Status | Notes |
|
|
615
|
+
| ----------- | ------------------------------- | ------- |
|
|
616
|
+
| {ID} | implemented / missing / partial | {notes} |
|
|
617
|
+
|
|
618
|
+
### Extra Work (not in requirements)
|
|
619
|
+
|
|
620
|
+
{list or "None"}
|
|
621
|
+
|
|
622
|
+
## Verification Commands
|
|
623
|
+
|
|
624
|
+
{commands to verify fixes}
|
|
625
|
+
|
|
626
|
+
## Recommended Next Step
|
|
627
|
+
|
|
628
|
+
Run the `oat-project-review-receive` skill to convert findings into plan tasks.
|
|
629
|
+
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
### Step 9: Update Plan Reviews Section
|
|
633
|
+
|
|
634
|
+
After review artifact is written, update `plan.md` `## Reviews` table _if plan.md exists_.
|
|
635
|
+
|
|
636
|
+
Update or add a row matching `{scope}`:
|
|
637
|
+
|
|
638
|
+
- `Scope`: `{scope}` (examples: `p02`, `final`, `spec`, `design`)
|
|
639
|
+
- Phase-range examples such as `p02-p03` are valid code-review scopes and should be preserved exactly.
|
|
640
|
+
- `Type`: `code` or `artifact`
|
|
641
|
+
- `Status`: `received` (receive-review will decide `fixes_added` vs `passed`; `passed` now requires no unresolved Critical/Important/Medium and final deferred-medium disposition when applicable)
|
|
642
|
+
- `Date`: `{today}`
|
|
643
|
+
- `Artifact`: `reviews/{filename}.md`
|
|
644
|
+
|
|
645
|
+
If plan.md is missing (e.g., spec/design review before planning), skip this update and rely on the review artifact + next-step routing.
|
|
646
|
+
|
|
647
|
+
### Step 9.5: Commit Review Bookkeeping Atomically (Required)
|
|
648
|
+
|
|
649
|
+
**If `INLINE_ONLY=true`:** skip this step — no artifact was written to disk.
|
|
650
|
+
|
|
651
|
+
After writing the review artifact and applying the Step 9 Reviews-table update, create an atomic bookkeeping commit.
|
|
652
|
+
|
|
653
|
+
**If a worktree was resolved in Step 1.5:** run git commands scoped to the worktree (`git -C "$WORKTREE_PATH" ...`) so the commit lands on the worktree branch, not the current session's branch.
|
|
654
|
+
|
|
655
|
+
**Commit scope:**
|
|
656
|
+
|
|
657
|
+
- Always include the active review artifact file: `reviews/{filename}.md`
|
|
658
|
+
- Include `plan.md` when Step 9 updated the Reviews table
|
|
659
|
+
- Do not write or commit new review artifacts directly into `reviews/archived/`
|
|
660
|
+
- Do not include unrelated implementation/code files in this commit
|
|
661
|
+
|
|
662
|
+
**Commit message:**
|
|
663
|
+
|
|
664
|
+
- `chore(oat): record {scope} review artifact`
|
|
665
|
+
|
|
666
|
+
**If the user asks to defer commit:**
|
|
667
|
+
|
|
668
|
+
- Require explicit user confirmation to proceed without commit
|
|
669
|
+
- Warn that uncommitted review bookkeeping can desync workflow routing/restart behavior
|
|
670
|
+
- In the summary, clearly state: "bookkeeping not committed (user-approved defer)"
|
|
671
|
+
|
|
672
|
+
### Step 10: Output Summary
|
|
673
|
+
|
|
674
|
+
**If subagent used (Tier 1):**
|
|
675
|
+
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
Review requested via subagent.
|
|
679
|
+
|
|
680
|
+
When the reviewer finishes, run the oat-project-review-receive skill to process findings.
|
|
681
|
+
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
**If fresh session recommended (Tier 2):**
|
|
685
|
+
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
For best review quality, run in a fresh session:
|
|
689
|
+
|
|
690
|
+
1. Open new terminal/session
|
|
691
|
+
2. Run the oat-project-review-provide skill with: code {scope}
|
|
692
|
+
3. Return here and run the oat-project-review-receive skill
|
|
693
|
+
|
|
694
|
+
Or say "inline" to run review in current session (less reliable).
|
|
695
|
+
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
**If inline review completed (Tier 3):**
|
|
699
|
+
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
Review complete for {project-name}.
|
|
703
|
+
|
|
704
|
+
Scope: {scope}
|
|
705
|
+
Files reviewed: {N}
|
|
706
|
+
Findings: {N} critical, {N} important, {N} medium, {N} minor
|
|
707
|
+
|
|
708
|
+
Review artifact: {path}
|
|
709
|
+
Bookkeeping commit: {sha or "deferred with user approval"}
|
|
710
|
+
|
|
711
|
+
Next: Run the oat-project-review-receive skill to convert findings into plan tasks.
|
|
712
|
+
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
## Success Criteria
|
|
716
|
+
|
|
717
|
+
- Active project resolved
|
|
718
|
+
- Review type and scope determined
|
|
719
|
+
- Target branch and working directory resolved (worktree detection in Step 1.5)
|
|
720
|
+
- Commit range identified
|
|
721
|
+
- Files changed list obtained
|
|
722
|
+
- Review executed (subagent, fresh session guidance, or inline)
|
|
723
|
+
- Review artifact written to the correct branch's working directory (worktree path if applicable; inline-only if user chose that option)
|
|
724
|
+
- Plan.md Reviews section updated
|
|
725
|
+
- Review artifact + plan bookkeeping committed atomically on the correct branch (or explicitly deferred with user approval)
|
|
726
|
+
- For final scope, deferred findings ledger included in reviewer context
|
|
727
|
+
- User guided to next step (`oat-project-review-receive`)
|
|
728
|
+
```
|