@moretea-labs/forge 1.5.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +120 -0
- package/CHANGELOG.md +36 -0
- package/CLAUDE.md +120 -0
- package/CODE_OF_CONDUCT.md +23 -0
- package/CONTRIBUTING.md +77 -0
- package/LICENSE +22 -0
- package/NOTICE +9 -0
- package/README.en.md +5 -0
- package/README.es.md +12 -0
- package/README.fr.md +12 -0
- package/README.ja.md +12 -0
- package/README.md +132 -0
- package/README.zh-CN.md +84 -0
- package/SECURITY.md +50 -0
- package/SKILL.md +431 -0
- package/SUPPORT.md +31 -0
- package/THIRD_PARTY_NOTICES.md +18 -0
- package/agents/openai.yaml +4 -0
- package/assets/AGENTS.md +68 -0
- package/assets/CLAUDE.md +68 -0
- package/assets/branding/README.md +10 -0
- package/assets/branding/forge-controller-flow.mmd +8 -0
- package/assets/hooks/AGENTS.md +75 -0
- package/assets/hooks/CLAUDE.md +75 -0
- package/assets/hooks/anti-simplification.sh +12 -0
- package/assets/hooks/changelog-guard.sh +80 -0
- package/assets/hooks/codex.hooks.template.json +60 -0
- package/assets/hooks/first-principles-guard.sh +72 -0
- package/assets/hooks/hook-input.sh +618 -0
- package/assets/hooks/lib/session-state.sh +106 -0
- package/assets/hooks/lib/workflow-state.sh +1730 -0
- package/assets/hooks/post-bash.sh +215 -0
- package/assets/hooks/post-edit-guard.sh +256 -0
- package/assets/hooks/post-tool-observer.sh +99 -0
- package/assets/hooks/pre-edit-guard.sh +240 -0
- package/assets/hooks/prompt-guard.sh +1077 -0
- package/assets/hooks/run-hook.sh +67 -0
- package/assets/hooks/security-sentinel.sh +115 -0
- package/assets/hooks/session-start-context.sh +593 -0
- package/assets/hooks/settings.template.json +60 -0
- package/assets/hooks/stop-orchestrator.sh +171 -0
- package/assets/hooks/subagent-return-channel-guard.sh +107 -0
- package/assets/hooks/worktree-guard.sh +39 -0
- package/assets/initializer-question-pack.v1.json +132 -0
- package/assets/initializer-question-pack.v1.schema.json +46 -0
- package/assets/initializer-question-pack.v2.json +174 -0
- package/assets/initializer-question-pack.v3.json +206 -0
- package/assets/initializer-question-pack.v3.schema.json +92 -0
- package/assets/initializer-question-pack.v4.json +557 -0
- package/assets/initializer-question-pack.v4.schema.json +169 -0
- package/assets/partials/01-header.partial.md +10 -0
- package/assets/partials/02-iron-rules.partial.md +30 -0
- package/assets/partials/03-philosophy.partial.md +32 -0
- package/assets/partials/04-project-structure.partial.md +56 -0
- package/assets/partials/05-workflow.partial.md +79 -0
- package/assets/partials/06-cloudflare.partial.md +20 -0
- package/assets/partials/07-footer.partial.md +38 -0
- package/assets/partials/08-orchestration.partial.md +49 -0
- package/assets/partials/09-compact-instructions.partial.md +11 -0
- package/assets/partials/_assembly-order.md +40 -0
- package/assets/partials-agents/01-header.partial.md +8 -0
- package/assets/partials-agents/02-operating-mode.partial.md +44 -0
- package/assets/partials-agents/03-orchestration.partial.md +45 -0
- package/assets/partials-agents/04-task-protocol.partial.md +69 -0
- package/assets/partials-agents/05-coding-constraints.partial.md +20 -0
- package/assets/partials-agents/06-quality-safety.partial.md +23 -0
- package/assets/partials-agents/07-cloudflare.partial.md +9 -0
- package/assets/partials-agents/08-deep-docs.partial.md +32 -0
- package/assets/plan-map.json +301 -0
- package/assets/plugin-registry.v1.json +8 -0
- package/assets/project-structures/ai-native-collaborative-editor.txt +25 -0
- package/assets/project-structures/ai-native-product-copilot.txt +21 -0
- package/assets/project-structures/ai-native-runtime-console.txt +25 -0
- package/assets/project-structures/ai-native-sidecar-kernel.txt +19 -0
- package/assets/project-structures/astro-ssr.txt +25 -0
- package/assets/project-structures/expo-nativewind.txt +52 -0
- package/assets/project-structures/monorepo.txt +63 -0
- package/assets/project-structures/remix.txt +50 -0
- package/assets/project-structures/tanstack-start-workers.txt +51 -0
- package/assets/project-structures/vite-tanstack.txt +58 -0
- package/assets/reference-configs/AGENTS.md +13 -0
- package/assets/reference-configs/CLAUDE.md +13 -0
- package/assets/reference-configs/agentic-development-flow.md +94 -0
- package/assets/reference-configs/ai-workflows.md +14 -0
- package/assets/reference-configs/changelog-versioning.md +13 -0
- package/assets/reference-configs/coding-standards.md +14 -0
- package/assets/reference-configs/development-protocol.md +21 -0
- package/assets/reference-configs/document-generation.md +38 -0
- package/assets/reference-configs/evaluator-rubric.md +19 -0
- package/assets/reference-configs/external-tooling.md +374 -0
- package/assets/reference-configs/git-strategy.md +14 -0
- package/assets/reference-configs/global-working-rules.md +64 -0
- package/assets/reference-configs/handoff-protocol.md +38 -0
- package/assets/reference-configs/harness-overview.md +124 -0
- package/assets/reference-configs/heartbeat-triage.md +57 -0
- package/assets/reference-configs/hook-operations.md +96 -0
- package/assets/reference-configs/release-deploy.md +40 -0
- package/assets/reference-configs/spa-day-protocol.md +14 -0
- package/assets/reference-configs/sprint-contracts.md +89 -0
- package/assets/reference-configs/workflow-orchestration.md +14 -0
- package/assets/skill-hooks.json +41 -0
- package/assets/skill-version.json +189 -0
- package/assets/skills/claude-review/SKILL.md +231 -0
- package/assets/skills/codex-review/SKILL.md +103 -0
- package/assets/templates/AGENTS.md +13 -0
- package/assets/templates/CLAUDE.md +13 -0
- package/assets/templates/architecture.template.md +80 -0
- package/assets/templates/brief.template.md +38 -0
- package/assets/templates/contract.template.md +104 -0
- package/assets/templates/decisions.template.md +85 -0
- package/assets/templates/factor-factory/factor-backtest-report.template.md +36 -0
- package/assets/templates/factor-factory/factor-hypothesis.template.md +30 -0
- package/assets/templates/factor-factory/factor-registry.template.json +5 -0
- package/assets/templates/gitignore.template +53 -0
- package/assets/templates/guides/metro-esm-gotchas.template.md +46 -0
- package/assets/templates/helpers/architecture-event.ts +822 -0
- package/assets/templates/helpers/architecture-queue.sh +647 -0
- package/assets/templates/helpers/archive-architecture-request.sh +244 -0
- package/assets/templates/helpers/archive-workflow.sh +295 -0
- package/assets/templates/helpers/capability-config.ts +394 -0
- package/assets/templates/helpers/capability-resolver.ts +505 -0
- package/assets/templates/helpers/capture-plan.sh +335 -0
- package/assets/templates/helpers/check-agent-tooling.sh +1533 -0
- package/assets/templates/helpers/check-architecture-sync.sh +287 -0
- package/assets/templates/helpers/check-brain-manifest.sh +255 -0
- package/assets/templates/helpers/check-context-files.sh +49 -0
- package/assets/templates/helpers/check-deploy-sql-order.sh +117 -0
- package/assets/templates/helpers/check-skill-version.ts +193 -0
- package/assets/templates/helpers/check-task-sync.sh +65 -0
- package/assets/templates/helpers/check-task-workflow.sh +1002 -0
- package/assets/templates/helpers/codex-handoff-resume.sh +269 -0
- package/assets/templates/helpers/context-contract-sync.sh +516 -0
- package/assets/templates/helpers/contract-run.ts +465 -0
- package/assets/templates/helpers/contract-worktree.sh +725 -0
- package/assets/templates/helpers/ensure-task-workflow.sh +1218 -0
- package/assets/templates/helpers/harness-trace-grade.sh +150 -0
- package/assets/templates/helpers/heartbeat-triage.sh +361 -0
- package/assets/templates/helpers/inspect-project-state.ts +280 -0
- package/assets/templates/helpers/maintenance-triage.sh +167 -0
- package/assets/templates/helpers/migrate-project-template.sh +54 -0
- package/assets/templates/helpers/migrate-workflow-docs.ts +413 -0
- package/assets/templates/helpers/new-plan.sh +183 -0
- package/assets/templates/helpers/new-spec.sh +50 -0
- package/assets/templates/helpers/new-sprint.sh +49 -0
- package/assets/templates/helpers/plan-to-todo.sh +799 -0
- package/assets/templates/helpers/prepare-codex-handoff.sh +203 -0
- package/assets/templates/helpers/prepare-handoff.sh +81 -0
- package/assets/templates/helpers/refresh-current-status.sh +469 -0
- package/assets/templates/helpers/select-agent-context-blocks.sh +66 -0
- package/assets/templates/helpers/ship-worktrees.sh +561 -0
- package/assets/templates/helpers/sprint-backlog.sh +837 -0
- package/assets/templates/helpers/summarize-failures.sh +125 -0
- package/assets/templates/helpers/switch-plan.sh +153 -0
- package/assets/templates/helpers/sync-brain-docs.sh +381 -0
- package/assets/templates/helpers/verify-contract.sh +705 -0
- package/assets/templates/helpers/verify-sprint.sh +680 -0
- package/assets/templates/helpers/workflow-contract.ts +202 -0
- package/assets/templates/helpers/workstream-sync.sh +263 -0
- package/assets/templates/implementation-notes.template.md +37 -0
- package/assets/templates/packages.template.md +45 -0
- package/assets/templates/plan.template.md +77 -0
- package/assets/templates/prd.template.md +165 -0
- package/assets/templates/research.template.md +25 -0
- package/assets/templates/review.template.md +78 -0
- package/assets/templates/spec.template.md +31 -0
- package/assets/templates/sprint.template.md +69 -0
- package/assets/templates/tech-stack.template.md +57 -0
- package/assets/versions.json +77 -0
- package/assets/workflow-contract.v1.json +671 -0
- package/bin/forge-desktop-helper.mjs +204 -0
- package/bin/forge-hook.mjs +32 -0
- package/bin/forge-runtime-service.mjs +34 -0
- package/bin/forge-runtime.mjs +30 -0
- package/bin/forge.mjs +32 -0
- package/docs/CHANGELOG.md +978 -0
- package/docs/README.md +72 -0
- package/docs/README.zh-CN.md +58 -0
- package/docs/architecture/chatgpt-handoff-facade.md +393 -0
- package/docs/architecture/current/README.md +158 -0
- package/docs/architecture/current/approved-target-architecture.zh-CN.md +1501 -0
- package/docs/architecture/current/architecture-invariants.md +331 -0
- package/docs/architecture/current/automation-and-schedule-engine.md +453 -0
- package/docs/architecture/current/codegraph-context-provider.md +226 -0
- package/docs/architecture/current/control-plane-authority-inventory.md +82 -0
- package/docs/architecture/current/controller-repository-decoupling.md +148 -0
- package/docs/architecture/current/dispatch-and-agent-strategy.md +354 -0
- package/docs/architecture/current/entity-model.md +619 -0
- package/docs/architecture/current/external-plugin-governance.md +396 -0
- package/docs/architecture/current/failure-recovery.md +471 -0
- package/docs/architecture/current/governance.md +213 -0
- package/docs/architecture/current/human-interaction-plane.md +87 -0
- package/docs/architecture/current/implementation-status.md +128 -0
- package/docs/architecture/current/job-and-run-lifecycle.md +413 -0
- package/docs/architecture/current/local-workspace-target-grants.md +70 -0
- package/docs/architecture/current/migration-roadmap.md +105 -0
- package/docs/architecture/current/multi-repository-execution.md +371 -0
- package/docs/architecture/current/operations-runbook.md +45 -0
- package/docs/architecture/current/peer-supercontroller-runtime.md +32 -0
- package/docs/architecture/current/personal-assistant-plugin-baseline.md +207 -0
- package/docs/architecture/current/repository-access-modes.md +102 -0
- package/docs/architecture/current/route-policy.md +15 -0
- package/docs/architecture/current/route-session-concurrency.md +85 -0
- package/docs/architecture/current/runtime-architecture-simplification.md +214 -0
- package/docs/architecture/current/runtime-directory-map.md +49 -0
- package/docs/architecture/current/runtime-health-and-resource-lifecycle.md +85 -0
- package/docs/architecture/current/scheduler-and-resource-claims.md +432 -0
- package/docs/architecture/current/session-aware-execution-and-authorization.md +77 -0
- package/docs/architecture/current/system-overview.md +144 -0
- package/docs/architecture/current/target-requirements-traceability.md +202 -0
- package/docs/architecture/current/thin-harness-governance-policy.md +32 -0
- package/docs/architecture/current/thin-harness-v1.md +313 -0
- package/docs/architecture/current/verification-and-release-gates.md +391 -0
- package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +100 -0
- package/docs/architecture/decisions/20260803-canonical-skill-surface.md +40 -0
- package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +53 -0
- package/docs/architecture/diagrams/.gitkeep +1 -0
- package/docs/architecture/diagrams/agentic-dev-plugin-architecture.html +186 -0
- package/docs/architecture/domains/.gitkeep +0 -0
- package/docs/architecture/domains/public-surface.md +30 -0
- package/docs/architecture/domains/runtime-harness.md +33 -0
- package/docs/architecture/domains/verification.md +33 -0
- package/docs/architecture/domains/workflow-engine.md +30 -0
- package/docs/architecture/global-hook-runtime.md +162 -0
- package/docs/architecture/history.md +38 -0
- package/docs/architecture/index.md +114 -0
- package/docs/architecture/ios-semantic-automation-provider-v2.md +166 -0
- package/docs/architecture/modules/.gitkeep +0 -0
- package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +24 -0
- package/docs/architecture/requests/.gitkeep +1 -0
- package/docs/architecture/requests/archive/2026/20260528-154740-ai-hooks-ai-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-154816-assets-hooks-assets-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-161851-ai-harness-workflow-contract-json-ai-harness-workflow-contract-json.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-161853-scripts-check-task-workflow-sh-scripts-check-task-workflow-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-161911-assets-workflow-contract-v1-json-assets-workflow-contract-v1-json.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222416-ai-hooks-ai-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222444-ai-hooks-ai-hooks-pre-edit-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222457-ai-hooks-ai-hooks-pre-edit-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222648-ai-hooks-ai-hooks-pre-edit-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222705-ai-hooks-ai-hooks-worktree-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222726-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222727-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-224736-ai-hooks-ai-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233259-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233335-assets-hooks-assets-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233456-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233457-assets-hooks-assets-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233637-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233638-assets-hooks-assets-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260529-000322-root-package-json.md +59 -0
- package/docs/architecture/requests/archive/2026/20260529-004238-ai-hooks-ai-hooks-lib-workflow-state-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260529-020654-ai-harness-policy-json-ai-harness-policy-json.md +63 -0
- package/docs/architecture/requests/archive/2026/20260529-094236-ai-hooks-ai-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094323-assets-hooks-assets-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094331-ai-hooks-ai-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094339-assets-hooks-assets-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094430-assets-hooks-assets-hooks-session-start-context-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094446-ai-hooks-ai-hooks-session-start-context-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260613-002040-runtime-harness-hook-adapters.md +68 -0
- package/docs/architecture/requests/archive/2026/root.md +68 -0
- package/docs/architecture/requests/archive/2026/runtime-harness-hook-adapters.md +76 -0
- package/docs/architecture/requests/archive/2026/verification-evals-checks.md +68 -0
- package/docs/architecture/requests/archive/2026/workflow-engine-contract-assets.md +69 -0
- package/docs/architecture/reviews/2026-07-11-access-surface-review.md +99 -0
- package/docs/architecture/snapshots/.gitkeep +1 -0
- package/docs/forge-autonomous-goal-loop.md +7 -0
- package/docs/forge-chatgpt-browser-engine.md +11 -0
- package/docs/forge-chatgpt-mcp-setup.md +239 -0
- package/docs/forge-chatgpt-supervised-automation.md +11 -0
- package/docs/forge-github-issue-launcher.md +7 -0
- package/docs/forge-plugin-management.md +95 -0
- package/docs/forge-provider-configuration.md +7 -0
- package/docs/forge-runtime-self-healing-loop.md +7 -0
- package/docs/images/forge-banner-cn.svg +1 -0
- package/docs/images/forge-banner.svg +1 -0
- package/docs/images/forge-controller-flow.svg +1 -0
- package/docs/images/image.png +0 -0
- package/docs/images/repo-harness-gptpro-cn.png +0 -0
- package/docs/images/repo-harness-gptpro.png +0 -0
- package/docs/images/repo-harness-hook-carrot.png +0 -0
- package/docs/operations/chatgpt-personal-assistant-runtime.md +83 -0
- package/docs/operations/checkout-route-integrity.md +22 -0
- package/docs/operations/controller-browser-plugin.md +299 -0
- package/docs/operations/controller-desktop-plugin.md +112 -0
- package/docs/operations/controller-performance-and-502.md +126 -0
- package/docs/operations/controller-reliability-runbook.md +134 -0
- package/docs/operations/environment-hardening.md +50 -0
- package/docs/operations/features.md +45 -0
- package/docs/operations/features.zh-CN.md +45 -0
- package/docs/operations/github-repository.md +60 -0
- package/docs/operations/gmail-assistant-routines.md +186 -0
- package/docs/operations/homebrew.md +26 -0
- package/docs/operations/local-system-assistant.md +46 -0
- package/docs/operations/local-system-assistant.zh-CN.md +46 -0
- package/docs/operations/mcp-tool-exposure.md +58 -0
- package/docs/operations/mobile-intents-shortcuts.md +117 -0
- package/docs/operations/open-source-release-hygiene.md +31 -0
- package/docs/operations/personal-assistant-operator-guide.md +61 -0
- package/docs/operations/platform-support.md +62 -0
- package/docs/operations/platform-support.zh-CN.md +61 -0
- package/docs/operations/provider-configuration.md +31 -0
- package/docs/operations/releasing.md +86 -0
- package/docs/operations/releasing.zh-CN.md +86 -0
- package/docs/operations/route-session-concurrency-baseline.json +893 -0
- package/docs/operations/route-session-concurrency-baseline.md +94 -0
- package/docs/operations/runtime-performance-diagnostics.md +14 -0
- package/docs/operations/sqlite-control-plane-recovery.md +65 -0
- package/docs/operations/standalone-disaster-recovery.md +136 -0
- package/docs/operations/troubleshooting.md +72 -0
- package/docs/operations/troubleshooting.zh-CN.md +70 -0
- package/docs/public-usage-guide.md +33 -0
- package/docs/public-usage-guide.zh-CN.md +33 -0
- package/docs/tutorials/01-install-and-start.md +93 -0
- package/docs/tutorials/01-install-and-start.zh-CN.md +93 -0
- package/docs/tutorials/02-connect-chatgpt.md +82 -0
- package/docs/tutorials/02-connect-chatgpt.zh-CN.md +80 -0
- package/docs/tutorials/03-first-repository-task.md +57 -0
- package/docs/tutorials/03-first-repository-task.zh-CN.md +57 -0
- package/docs/tutorials/README.md +13 -0
- package/docs/tutorials/README.zh-CN.md +13 -0
- package/docs/wiki/Architecture.md +85 -0
- package/docs/wiki/Core-Concepts.md +27 -0
- package/docs/wiki/Home.md +36 -0
- package/docs/wiki/Implementation.md +172 -0
- package/docs/wiki/Installation.md +50 -0
- package/docs/wiki/Integrations.md +29 -0
- package/docs/wiki/Operations.md +26 -0
- package/docs/wiki/Quick-Start.md +46 -0
- package/docs/wiki/Releases-and-Upgrades.md +34 -0
- package/docs/wiki/Runtime-Architecture.md +50 -0
- package/docs/wiki/Security-Model.md +31 -0
- package/docs/wiki/Troubleshooting.md +38 -0
- package/docs/wiki/Work-Lifecycle.md +31 -0
- package/docs/wiki/_Sidebar.md +21 -0
- package/install.ps1 +48 -0
- package/install.sh +66 -0
- package/package.json +156 -0
- package/scripts/activate-source-baseline.ts +335 -0
- package/scripts/architecture-event.ts +822 -0
- package/scripts/architecture-queue.sh +647 -0
- package/scripts/archive-architecture-request.sh +244 -0
- package/scripts/archive-workflow.sh +295 -0
- package/scripts/assemble-template.ts +1172 -0
- package/scripts/benchmark-controller-hotpath.ts +212 -0
- package/scripts/benchmark-controller-round2.ts +139 -0
- package/scripts/benchmark-ios-agent-device.ts +514 -0
- package/scripts/benchmark-route-session-concurrency.ts +714 -0
- package/scripts/benchmark-thin-harness-gateway-ab.ts +632 -0
- package/scripts/benchmark-thin-harness-mcp-e2e.ts +479 -0
- package/scripts/benchmark-thin-harness.ts +251 -0
- package/scripts/bootstrap-runtime-maintenance-recovery.sh +183 -0
- package/scripts/canary-global-hook.sh +263 -0
- package/scripts/capability-config.ts +394 -0
- package/scripts/capability-resolver.ts +505 -0
- package/scripts/capture-plan.sh +335 -0
- package/scripts/check-agent-tooling.sh +1549 -0
- package/scripts/check-architecture-sync.sh +373 -0
- package/scripts/check-brain-manifest.sh +255 -0
- package/scripts/check-ci.sh +16 -0
- package/scripts/check-context-files.sh +49 -0
- package/scripts/check-deploy-sql-order.sh +117 -0
- package/scripts/check-mcp-compatibility.ts +93 -0
- package/scripts/check-npm-release.sh +32 -0
- package/scripts/check-open-source-tracked-surface.sh +146 -0
- package/scripts/check-package-identity.mjs +117 -0
- package/scripts/check-platform-support.mjs +79 -0
- package/scripts/check-public-docs.sh +105 -0
- package/scripts/check-public-release-surface.sh +19 -0
- package/scripts/check-release-published.sh +57 -0
- package/scripts/check-release-readiness.sh +43 -0
- package/scripts/check-release-version.mjs +74 -0
- package/scripts/check-runtime-architecture.mjs +593 -0
- package/scripts/check-runtime-env.mjs +89 -0
- package/scripts/check-skill-version.ts +193 -0
- package/scripts/check-tarball-install-smoke.sh +66 -0
- package/scripts/check-task-sync.sh +65 -0
- package/scripts/check-task-workflow.sh +1002 -0
- package/scripts/check-third-party-notices.mjs +36 -0
- package/scripts/codex-handoff-resume.sh +269 -0
- package/scripts/complete-control-plane-cutover.ts +126 -0
- package/scripts/context-contract-sync.sh +516 -0
- package/scripts/contract-run.ts +465 -0
- package/scripts/contract-worktree.sh +725 -0
- package/scripts/controller-ngrok-rotation.sh +678 -0
- package/scripts/create-project-dirs.sh +282 -0
- package/scripts/ensure-codegraph.sh +16 -0
- package/scripts/ensure-task-workflow.sh +1218 -0
- package/scripts/export-requirement-portfolio.ts +28 -0
- package/scripts/factor-lab-check.sh +73 -0
- package/scripts/factor-lab-new.sh +96 -0
- package/scripts/factor-lab-promote.sh +86 -0
- package/scripts/factor-lab-reject.sh +68 -0
- package/scripts/harness-trace-grade.sh +150 -0
- package/scripts/heartbeat-triage.sh +361 -0
- package/scripts/hook-dispatch-diet-report.ts +234 -0
- package/scripts/hook-shim.sh +93 -0
- package/scripts/init-project.sh +505 -0
- package/scripts/initializer-question-pack.ts +200 -0
- package/scripts/inspect-project-state.ts +280 -0
- package/scripts/install-desktop-operator-registration.ts +45 -0
- package/scripts/install-standalone-recovery.ts +74 -0
- package/scripts/lib/AGENTS.md +13 -0
- package/scripts/lib/CLAUDE.md +13 -0
- package/scripts/lib/controller-home-env.sh +69 -0
- package/scripts/lib/project-init-lib.sh +2759 -0
- package/scripts/load-standalone-recovery.sh +17 -0
- package/scripts/loop-engine-cutover-gate.ts +324 -0
- package/scripts/maintenance-triage.sh +167 -0
- package/scripts/migrate-project-template.sh +1189 -0
- package/scripts/migrate-requirement-portfolio.ts +86 -0
- package/scripts/migrate-workflow-docs.ts +413 -0
- package/scripts/new-plan.sh +183 -0
- package/scripts/new-spec.sh +50 -0
- package/scripts/new-sprint.sh +49 -0
- package/scripts/open-source-audit-allowlist.txt +46 -0
- package/scripts/package-source-archive.sh +147 -0
- package/scripts/plan-to-todo.sh +799 -0
- package/scripts/prepare-codex-handoff.sh +203 -0
- package/scripts/prepare-handoff.sh +81 -0
- package/scripts/public-release-files.txt +39 -0
- package/scripts/public-release.ts +174 -0
- package/scripts/publish-release-tarball.sh +27 -0
- package/scripts/refresh-current-status.sh +469 -0
- package/scripts/refresh-ios-physical-runtime.ts +196 -0
- package/scripts/repair-executable-modes.ts +8 -0
- package/scripts/rollout-all-registered-repos.sh +7 -0
- package/scripts/route-nl-vs-ts-eval.ts +679 -0
- package/scripts/run-bun-test-file.ts +182 -0
- package/scripts/run-governed-gate.ts +140 -0
- package/scripts/run-mobile-monitor-bridge.ts +71 -0
- package/scripts/run-skill-evals.ts +1022 -0
- package/scripts/run-skill-hook.ts +244 -0
- package/scripts/run-supervised-command.ts +24 -0
- package/scripts/run-tests-portable.sh +20 -0
- package/scripts/select-agent-context-blocks.sh +66 -0
- package/scripts/setup-plugins.sh +43 -0
- package/scripts/ship-worktrees.sh +561 -0
- package/scripts/smoke-browser-cdp-bridge.ts +93 -0
- package/scripts/smoke-chatgpt-supervised-automation.ts +208 -0
- package/scripts/smoke-ios-physical-device.ts +114 -0
- package/scripts/smoke-mcp-http-runtime.ts +216 -0
- package/scripts/smoke-mcp-tool-surface.ts +117 -0
- package/scripts/smoke-runtime-recovery.ts +220 -0
- package/scripts/smoke-schedule-engine.ts +283 -0
- package/scripts/sprint-backlog.sh +837 -0
- package/scripts/stage-runtime-release.ts +38 -0
- package/scripts/summarize-failures.sh +125 -0
- package/scripts/switch-plan.sh +153 -0
- package/scripts/sync-brain-docs.sh +381 -0
- package/scripts/sync-codex-installed-copies.sh +183 -0
- package/scripts/test-governance.ts +75 -0
- package/scripts/verify-contract.sh +705 -0
- package/scripts/verify-forge-runtime.sh +31 -0
- package/scripts/verify-sprint.sh +680 -0
- package/scripts/windows-paths.d.mts +7 -0
- package/scripts/windows-paths.mjs +28 -0
- package/scripts/workflow-contract.ts +206 -0
- package/scripts/workstream-sync.sh +263 -0
- package/src/cli/agent-jobs/executable-resolver.ts +289 -0
- package/src/cli/agent-jobs/executor-health.ts +252 -0
- package/src/cli/agent-jobs/integration.ts +963 -0
- package/src/cli/agent-jobs/job-manager.ts +2030 -0
- package/src/cli/agent-jobs/types.ts +219 -0
- package/src/cli/agent-jobs/worker-lifecycle.ts +288 -0
- package/src/cli/chatgpt-browser/bind-server.ts +504 -0
- package/src/cli/chatgpt-browser/binding.ts +140 -0
- package/src/cli/chatgpt-browser/bridge-extension.ts +221 -0
- package/src/cli/chatgpt-browser/bridge-provider.ts +268 -0
- package/src/cli/chatgpt-browser/engine.ts +569 -0
- package/src/cli/chatgpt-browser/file-policy.ts +158 -0
- package/src/cli/chatgpt-browser/native-provider.ts +553 -0
- package/src/cli/chatgpt-browser/oracle-provider.ts +437 -0
- package/src/cli/chatgpt-browser/prompt-assembler.ts +29 -0
- package/src/cli/chatgpt-browser/session-store.ts +301 -0
- package/src/cli/chatgpt-browser/types.ts +172 -0
- package/src/cli/commands/adopt-plan.ts +186 -0
- package/src/cli/commands/brain-root.ts +132 -0
- package/src/cli/commands/brain.ts +609 -0
- package/src/cli/commands/capability-context.ts +613 -0
- package/src/cli/commands/chatgpt.ts +424 -0
- package/src/cli/commands/controller.ts +680 -0
- package/src/cli/commands/docs.ts +103 -0
- package/src/cli/commands/doctor.ts +476 -0
- package/src/cli/commands/global-runtime.ts +323 -0
- package/src/cli/commands/hook.ts +34 -0
- package/src/cli/commands/init-hook.ts +870 -0
- package/src/cli/commands/init.ts +829 -0
- package/src/cli/commands/install.ts +86 -0
- package/src/cli/commands/mcp.ts +315 -0
- package/src/cli/commands/migrate.ts +154 -0
- package/src/cli/commands/plugin.ts +74 -0
- package/src/cli/commands/prompt-guard-decision.ts +238 -0
- package/src/cli/commands/recovery.ts +667 -0
- package/src/cli/commands/repository.ts +224 -0
- package/src/cli/commands/run.ts +23 -0
- package/src/cli/commands/runtime.ts +191 -0
- package/src/cli/commands/security.ts +440 -0
- package/src/cli/commands/status.ts +137 -0
- package/src/cli/commands/tools.ts +167 -0
- package/src/cli/controller/check-runner.ts +1022 -0
- package/src/cli/controller/codex-continuation.ts +153 -0
- package/src/cli/controller/completion-backlog.ts +380 -0
- package/src/cli/controller/completion-orchestrator.ts +1807 -0
- package/src/cli/controller/completion-target.ts +96 -0
- package/src/cli/controller/composite-operations.ts +196 -0
- package/src/cli/controller/composite-result.ts +130 -0
- package/src/cli/controller/context-pack.ts +652 -0
- package/src/cli/controller/execution-completion.ts +175 -0
- package/src/cli/controller/execution-policy.ts +392 -0
- package/src/cli/controller/governance.ts +594 -0
- package/src/cli/controller/issue-store.ts +1421 -0
- package/src/cli/controller/launch-agents.ts +410 -0
- package/src/cli/controller/legacy-issue-cutover.ts +415 -0
- package/src/cli/controller/lifecycle-authority.ts +16 -0
- package/src/cli/controller/migrated-issue-decision.ts +237 -0
- package/src/cli/controller/operational-plan.ts +226 -0
- package/src/cli/controller/postcondition.ts +134 -0
- package/src/cli/controller/progress.ts +656 -0
- package/src/cli/controller/project-state.ts +147 -0
- package/src/cli/controller/requirement-portfolio-export.ts +146 -0
- package/src/cli/controller/requirement-portfolio-migration.ts +613 -0
- package/src/cli/controller/run-evidence.ts +43 -0
- package/src/cli/controller/runtime-config.ts +92 -0
- package/src/cli/controller/stuck-state-migration.ts +396 -0
- package/src/cli/controller/task-ledger.ts +632 -0
- package/src/cli/controller/task-status-resolver.ts +403 -0
- package/src/cli/controller/types.ts +273 -0
- package/src/cli/controller/work-mode.ts +186 -0
- package/src/cli/controller/worklog.ts +201 -0
- package/src/cli/diagnostic-entry.ts +39 -0
- package/src/cli/editing/edit-session.ts +1606 -0
- package/src/cli/editing/executable-modes.ts +70 -0
- package/src/cli/github/github.ts +274 -0
- package/src/cli/github/plugin.ts +345 -0
- package/src/cli/github/session.ts +104 -0
- package/src/cli/hook/prompt-guard-decision.ts +238 -0
- package/src/cli/hook/prompt-intents.ts +534 -0
- package/src/cli/hook/route-registry.ts +107 -0
- package/src/cli/hook/runtime.ts +303 -0
- package/src/cli/hook/state-snapshot.ts +388 -0
- package/src/cli/hook-entry.ts +51 -0
- package/src/cli/index.ts +574 -0
- package/src/cli/installer/managed-entries.ts +78 -0
- package/src/cli/installer/shared.ts +65 -0
- package/src/cli/installer/targets/claude.ts +136 -0
- package/src/cli/installer/targets/codex.ts +174 -0
- package/src/cli/installer/targets/registry.ts +28 -0
- package/src/cli/installer/types.ts +72 -0
- package/src/cli/local-bridge/connector-freshness.ts +529 -0
- package/src/cli/local-bridge/console-view-models.ts +324 -0
- package/src/cli/local-bridge/dashboard.ts +1312 -0
- package/src/cli/local-bridge/facade-api.ts +1877 -0
- package/src/cli/local-bridge/job-store.ts +1451 -0
- package/src/cli/local-bridge/mobile-intents.ts +344 -0
- package/src/cli/local-bridge/mobile-monitor.ts +209 -0
- package/src/cli/local-bridge/server.ts +3183 -0
- package/src/cli/local-bridge/types.ts +176 -0
- package/src/cli/mcp/access-mode.ts +132 -0
- package/src/cli/mcp/access-tools.ts +387 -0
- package/src/cli/mcp/audit.ts +32 -0
- package/src/cli/mcp/auth.ts +402 -0
- package/src/cli/mcp/instructions.ts +33 -0
- package/src/cli/mcp/legacy-context.ts +16 -0
- package/src/cli/mcp/legacy-tool-service.ts +5516 -0
- package/src/cli/mcp/multi-repository.ts +423 -0
- package/src/cli/mcp/oauth.ts +226 -0
- package/src/cli/mcp/paths.ts +134 -0
- package/src/cli/mcp/policy.ts +230 -0
- package/src/cli/mcp/proxy-env.ts +62 -0
- package/src/cli/mcp/readiness-projection.ts +24 -0
- package/src/cli/mcp/redaction.ts +21 -0
- package/src/cli/mcp/repo.ts +24 -0
- package/src/cli/mcp/repository-tools.ts +1295 -0
- package/src/cli/mcp/server.ts +341 -0
- package/src/cli/mcp/setup.ts +793 -0
- package/src/cli/mcp/tool-capability-cache.ts +87 -0
- package/src/cli/mcp/tools.ts +9 -0
- package/src/cli/mcp/toolset-names.ts +70 -0
- package/src/cli/mcp/toolset-selection.ts +41 -0
- package/src/cli/mcp/toolset.ts +300 -0
- package/src/cli/mcp/transports/AGENTS.md +39 -0
- package/src/cli/mcp/transports/CLAUDE.md +39 -0
- package/src/cli/mcp/transports/http.ts +1234 -0
- package/src/cli/mcp/transports/session-registry.ts +428 -0
- package/src/cli/mcp/transports/stdio.ts +8 -0
- package/src/cli/mcp/types.ts +41 -0
- package/src/cli/mcp/umbrella-tools.ts +117 -0
- package/src/cli/repo-adoption/reclaim-runtime.ts +681 -0
- package/src/cli/repositories/branch-name-policy.ts +57 -0
- package/src/cli/repositories/command-classifier.ts +600 -0
- package/src/cli/repositories/command-executor.ts +1066 -0
- package/src/cli/repositories/command-normalization.ts +53 -0
- package/src/cli/repositories/command-scope.ts +264 -0
- package/src/cli/repositories/controller-home.ts +88 -0
- package/src/cli/repositories/entity-migration.ts +199 -0
- package/src/cli/repositories/ephemeral-workspace.ts +62 -0
- package/src/cli/repositories/git-command-executor.ts +301 -0
- package/src/cli/repositories/goal-registry.ts +239 -0
- package/src/cli/repositories/identity.ts +64 -0
- package/src/cli/repositories/local-project-onboarding.ts +539 -0
- package/src/cli/repositories/locks.ts +262 -0
- package/src/cli/repositories/registry.ts +1057 -0
- package/src/cli/repositories/runtime-storage.ts +411 -0
- package/src/cli/repositories/safe-patch.ts +421 -0
- package/src/cli/repositories/selected-path-actions.ts +341 -0
- package/src/cli/repositories/structured-git.ts +257 -0
- package/src/cli/repositories/types.ts +155 -0
- package/src/cli/repositories/umbrella.ts +134 -0
- package/src/cli/repositories/workbench.ts +140 -0
- package/src/cli/repositories/worktree-storage.ts +137 -0
- package/src/cli/repository/inspector.ts +637 -0
- package/src/cli/repository/session-cache.ts +453 -0
- package/src/cli/runtime/helper-runner.ts +172 -0
- package/src/cli/runtime-invocation.ts +318 -0
- package/src/cli/tools/codegraph.ts +676 -0
- package/src/cli/v81-entry.ts +29 -0
- package/src/core/adoption/gitignore-plan.ts +127 -0
- package/src/core/adoption/helper-wrapper-plan.ts +159 -0
- package/src/core/adoption/manifest-templates.ts +60 -0
- package/src/core/adoption/modes.ts +7 -0
- package/src/core/adoption/operations.ts +126 -0
- package/src/core/adoption/plan.ts +149 -0
- package/src/core/adoption/render.ts +70 -0
- package/src/core/adoption/rollback.ts +62 -0
- package/src/core/adoption/summary.ts +43 -0
- package/src/core/adoption/workflow-contract-asset.ts +14 -0
- package/src/core/adoption/workflow-contract-plan.ts +31 -0
- package/src/effects/fs-transaction.ts +540 -0
- package/src/effects/git-executable.ts +59 -0
- package/src/effects/managed-block.ts +86 -0
- package/src/effects/path-safety.ts +47 -0
- package/src/effects/process-runner.ts +192 -0
- package/src/runtime/assistant/action-proposals.ts +279 -0
- package/src/runtime/assistant/intent.ts +395 -0
- package/src/runtime/assistant/model-provider.ts +460 -0
- package/src/runtime/assistant/openapi.ts +223 -0
- package/src/runtime/assistant/policy.ts +89 -0
- package/src/runtime/assistant/readiness.ts +258 -0
- package/src/runtime/assistant/routine-runtime.ts +477 -0
- package/src/runtime/assistant/schedule-binding.ts +171 -0
- package/src/runtime/assistant/standing-grants.ts +375 -0
- package/src/runtime/assistant/store.ts +243 -0
- package/src/runtime/assistant/types.ts +135 -0
- package/src/runtime/context/codegraph-read-provider.ts +347 -0
- package/src/runtime/context/codegraph-sidecar.cjs +207 -0
- package/src/runtime/control-plane/dispatch-priority.ts +67 -0
- package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +151 -0
- package/src/runtime/control-plane/execution/execution-identity.ts +456 -0
- package/src/runtime/control-plane/execution/session-store.ts +175 -0
- package/src/runtime/control-plane/execution/validation.ts +117 -0
- package/src/runtime/control-plane/execution/verification-evidence.ts +191 -0
- package/src/runtime/control-plane/execution/work-handle-store.ts +225 -0
- package/src/runtime/control-plane/execution/work-prepare-request-store.ts +159 -0
- package/src/runtime/control-plane/execution/work-task-receipt.ts +445 -0
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +821 -0
- package/src/runtime/control-plane/facade/capability-registry.ts +279 -0
- package/src/runtime/control-plane/facade/check-normalization.ts +233 -0
- package/src/runtime/control-plane/facade/codex-delegation.ts +196 -0
- package/src/runtime/control-plane/facade/controller-session-store.ts +199 -0
- package/src/runtime/control-plane/facade/facade-result.ts +41 -0
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +177 -0
- package/src/runtime/control-plane/facade/goal-workloop.ts +1216 -0
- package/src/runtime/control-plane/facade/handoff-inbox-store.ts +221 -0
- package/src/runtime/control-plane/facade/index.ts +16 -0
- package/src/runtime/control-plane/facade/operation-digest.ts +528 -0
- package/src/runtime/control-plane/facade/plan-contract-store.ts +403 -0
- package/src/runtime/control-plane/facade/policy-gate.ts +149 -0
- package/src/runtime/control-plane/facade/requirement-board.ts +280 -0
- package/src/runtime/control-plane/facade/self-healing-loop.ts +555 -0
- package/src/runtime/control-plane/facade/suggested-actions.ts +108 -0
- package/src/runtime/control-plane/facade/types.ts +729 -0
- package/src/runtime/control-plane/facade/work-admission-policy.ts +93 -0
- package/src/runtime/control-plane/facade/work-continuation.ts +104 -0
- package/src/runtime/control-plane/facade/work-contract-store.ts +1118 -0
- package/src/runtime/control-plane/facade/work-task-projection.ts +66 -0
- package/src/runtime/control-plane/global-scheduler/reconciliation.ts +365 -0
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +920 -0
- package/src/runtime/control-plane/global-scheduler/wake-signal.ts +89 -0
- package/src/runtime/control-plane/goal-loop/config-facade.ts +700 -0
- package/src/runtime/control-plane/goal-loop/config-store.ts +570 -0
- package/src/runtime/control-plane/goal-loop/config-types.ts +213 -0
- package/src/runtime/control-plane/goal-loop/executor-router.ts +109 -0
- package/src/runtime/control-plane/goal-loop/failure-taxonomy.ts +149 -0
- package/src/runtime/control-plane/goal-loop/goal-contract-store.ts +304 -0
- package/src/runtime/control-plane/goal-loop/goal-loop-engine.ts +1001 -0
- package/src/runtime/control-plane/goal-loop/handoff-packet.ts +160 -0
- package/src/runtime/control-plane/goal-loop/index.ts +13 -0
- package/src/runtime/control-plane/goal-loop/local-tools.ts +290 -0
- package/src/runtime/control-plane/goal-loop/policy-gates.ts +203 -0
- package/src/runtime/control-plane/goal-loop/provider-dispatch.ts +93 -0
- package/src/runtime/control-plane/goal-loop/provider-registry.ts +545 -0
- package/src/runtime/control-plane/goal-loop/types.ts +378 -0
- package/src/runtime/control-plane/governance/access-policy.ts +147 -0
- package/src/runtime/control-plane/governance/authorization.ts +195 -0
- package/src/runtime/control-plane/governance/external-effects.ts +43 -0
- package/src/runtime/control-plane/launcher/thin-launcher.ts +97 -0
- package/src/runtime/control-plane/persistence/metadata-payload-policy.ts +53 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +241 -0
- package/src/runtime/control-plane/persistence/sqlite-store.ts +539 -0
- package/src/runtime/control-plane/release-retention.ts +447 -0
- package/src/runtime/control-plane/repo-actor/actor.ts +181 -0
- package/src/runtime/control-plane/repo-actor/registry.ts +20 -0
- package/src/runtime/control-plane/routing/index.ts +1 -0
- package/src/runtime/control-plane/routing/route-policy.ts +379 -0
- package/src/runtime/control-plane/runtime-cleanup.ts +727 -0
- package/src/runtime/control-plane/runtime-generation.ts +509 -0
- package/src/runtime/control-plane/runtime-pid-ownership.ts +11 -0
- package/src/runtime/control-plane/runtime-status-client.ts +90 -0
- package/src/runtime/control-plane/startup-recovery.ts +198 -0
- package/src/runtime/diagnostics/connectivity-observability.ts +475 -0
- package/src/runtime/diagnostics/mcp-timing.ts +64 -0
- package/src/runtime/diagnostics/performance.ts +379 -0
- package/src/runtime/diagnostics/process-facade.ts +350 -0
- package/src/runtime/diagnostics/read-only-tool.ts +226 -0
- package/src/runtime/evidence/artifact-store.ts +154 -0
- package/src/runtime/evidence/event-ledger.ts +80 -0
- package/src/runtime/evidence/evidence-store.ts +68 -0
- package/src/runtime/evidence/process-check-receipt.ts +43 -0
- package/src/runtime/evidence/result-store.ts +209 -0
- package/src/runtime/evidence/sensitive-output.ts +353 -0
- package/src/runtime/execution/jobs/child-reference.ts +124 -0
- package/src/runtime/execution/jobs/legacy-adapter.ts +22 -0
- package/src/runtime/execution/jobs/receipt-recovery.ts +119 -0
- package/src/runtime/execution/jobs/receipt-store.ts +243 -0
- package/src/runtime/execution/jobs/store.ts +737 -0
- package/src/runtime/execution/jobs/timeouts.ts +109 -0
- package/src/runtime/execution/jobs/types.ts +230 -0
- package/src/runtime/execution/jobs/wait.ts +45 -0
- package/src/runtime/execution/process-runtime/canary.ts +26 -0
- package/src/runtime/execution/process-runtime/check-facade.ts +272 -0
- package/src/runtime/execution/process-runtime/check-receipt.ts +185 -0
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +60 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +321 -0
- package/src/runtime/execution/process-runtime/gc.ts +171 -0
- package/src/runtime/execution/process-runtime/index.ts +9 -0
- package/src/runtime/execution/process-runtime/interactive-admission.ts +23 -0
- package/src/runtime/execution/process-runtime/process-runner-entry.ts +466 -0
- package/src/runtime/execution/process-runtime/resource-claims.ts +440 -0
- package/src/runtime/execution/process-runtime/runtime.ts +1816 -0
- package/src/runtime/execution/process-runtime/store.ts +687 -0
- package/src/runtime/execution/process-runtime/types.ts +352 -0
- package/src/runtime/execution/thin-harness/async-process.ts +181 -0
- package/src/runtime/execution/thin-harness/batch-executor.ts +671 -0
- package/src/runtime/execution/thin-harness/execution-router.ts +700 -0
- package/src/runtime/execution/thin-harness/fast-executor.ts +1263 -0
- package/src/runtime/execution/thin-harness/fast-receipt.ts +235 -0
- package/src/runtime/execution/thin-harness/fingerprint-worker.ts +191 -0
- package/src/runtime/execution/thin-harness/index.ts +13 -0
- package/src/runtime/execution/thin-harness/latency-trace.ts +107 -0
- package/src/runtime/execution/thin-harness/lightweight-lanes.ts +745 -0
- package/src/runtime/execution/thin-harness/mutation-gate.ts +578 -0
- package/src/runtime/execution/thin-harness/proposal-store.ts +409 -0
- package/src/runtime/execution/thin-harness/request-ledger.ts +595 -0
- package/src/runtime/execution/thin-harness/search-worker.ts +114 -0
- package/src/runtime/execution/thin-harness/types.ts +313 -0
- package/src/runtime/execution/thin-harness/workspace-savepoint.ts +333 -0
- package/src/runtime/execution/workers/executor.ts +687 -0
- package/src/runtime/execution/workers/ownership.ts +94 -0
- package/src/runtime/execution/workers/worker-entry.ts +277 -0
- package/src/runtime/gateway/mcp/execution-tools.ts +2009 -0
- package/src/runtime/gateway/mcp/persisted-check-process.ts +255 -0
- package/src/runtime/gateway/mcp/process-tools.ts +230 -0
- package/src/runtime/gateway/mcp/resource-policy.ts +195 -0
- package/src/runtime/gateway/mcp/router.ts +1088 -0
- package/src/runtime/gateway/mcp/runtime-tools.ts +5994 -0
- package/src/runtime/gateway/mcp/work-validation-reconciler.ts +219 -0
- package/src/runtime/health/evaluator.ts +474 -0
- package/src/runtime/health/index.ts +2 -0
- package/src/runtime/health/operational-view.ts +198 -0
- package/src/runtime/maintenance/cleanup.ts +419 -0
- package/src/runtime/model-clients/deepseek-adapter.ts +312 -0
- package/src/runtime/model-clients/index.ts +2 -0
- package/src/runtime/model-clients/types.ts +101 -0
- package/src/runtime/observability/gateway-contention-metrics.ts +129 -0
- package/src/runtime/observability/route-session-benchmark.ts +110 -0
- package/src/runtime/personal-assistant/gmail-triage-manager.ts +231 -0
- package/src/runtime/personal-assistant/reporting-runtime.ts +344 -0
- package/src/runtime/personal-assistant/triage-runtime.ts +748 -0
- package/src/runtime/plugins/app-store-connect-adapter.ts +868 -0
- package/src/runtime/plugins/browser-adapter.ts +2812 -0
- package/src/runtime/plugins/browser-automation-service.ts +46 -0
- package/src/runtime/plugins/browser-handoff-host.ts +304 -0
- package/src/runtime/plugins/browser-handoff.ts +371 -0
- package/src/runtime/plugins/browser-macos-bridge.ts +865 -0
- package/src/runtime/plugins/browser-node-bridge-host.ts +64 -0
- package/src/runtime/plugins/browser-node-bridge.ts +249 -0
- package/src/runtime/plugins/desktop-adapter.ts +374 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +418 -0
- package/src/runtime/plugins/errors.ts +39 -0
- package/src/runtime/plugins/execution-origin.ts +26 -0
- package/src/runtime/plugins/external-adapter.ts +322 -0
- package/src/runtime/plugins/external-registration.ts +308 -0
- package/src/runtime/plugins/external-unix-socket-probe.cjs +79 -0
- package/src/runtime/plugins/external-unix-socket.ts +238 -0
- package/src/runtime/plugins/first-party-registry.ts +37 -0
- package/src/runtime/plugins/github-adapter.ts +266 -0
- package/src/runtime/plugins/gmail-adapter.ts +729 -0
- package/src/runtime/plugins/google-calendar-adapter.ts +468 -0
- package/src/runtime/plugins/google-shared.ts +578 -0
- package/src/runtime/plugins/google-tasks-adapter.ts +535 -0
- package/src/runtime/plugins/interaction-session.ts +252 -0
- package/src/runtime/plugins/ios/agent-device-capabilities.ts +258 -0
- package/src/runtime/plugins/ios/agent-device-failures.ts +95 -0
- package/src/runtime/plugins/ios/agent-device-provider.ts +63 -0
- package/src/runtime/plugins/ios/agent-device-typed-provider.ts +268 -0
- package/src/runtime/plugins/ios/app-adapters.ts +122 -0
- package/src/runtime/plugins/ios-adapter.ts +509 -0
- package/src/runtime/plugins/ios-agent-device.ts +2311 -0
- package/src/runtime/plugins/ios-physical-device.ts +955 -0
- package/src/runtime/plugins/local-system-adapter.ts +1016 -0
- package/src/runtime/plugins/macos-capability-broker.ts +73 -0
- package/src/runtime/plugins/managed-process-adapter.ts +366 -0
- package/src/runtime/plugins/resend-adapter.ts +506 -0
- package/src/runtime/plugins/store.ts +1025 -0
- package/src/runtime/plugins/types.ts +138 -0
- package/src/runtime/projections/controller-context.ts +596 -0
- package/src/runtime/projections/git-status-sampler.ts +84 -0
- package/src/runtime/projections/invalidation.ts +250 -0
- package/src/runtime/projections/materialized-view.ts +694 -0
- package/src/runtime/recovery/actions.ts +158 -0
- package/src/runtime/recovery/audit.ts +38 -0
- package/src/runtime/recovery/classifier.ts +163 -0
- package/src/runtime/recovery/index.ts +9 -0
- package/src/runtime/recovery/local-jobs-repair.ts +393 -0
- package/src/runtime/recovery/maintenance-executor.ts +822 -0
- package/src/runtime/recovery/patch-handoff.ts +50 -0
- package/src/runtime/recovery/probe.ts +308 -0
- package/src/runtime/recovery/store.ts +35 -0
- package/src/runtime/recovery/types.ts +175 -0
- package/src/runtime/release/identity.ts +101 -0
- package/src/runtime/release/release-gate.ts +137 -0
- package/src/runtime/resources/claims/conflicts.ts +205 -0
- package/src/runtime/resources/index.ts +1 -0
- package/src/runtime/resources/leases/store.ts +539 -0
- package/src/runtime/resources/leases/types.ts +50 -0
- package/src/runtime/resources/ownership.ts +72 -0
- package/src/runtime/root/controller-services.ts +42 -0
- package/src/runtime/root/entry.ts +70 -0
- package/src/runtime/root/gateway-adapter.ts +46 -0
- package/src/runtime/root/local-bridge.ts +72 -0
- package/src/runtime/root/mcp-transport.ts +198 -0
- package/src/runtime/root/ownership.ts +94 -0
- package/src/runtime/root/readiness.ts +69 -0
- package/src/runtime/root/release-manifest.ts +147 -0
- package/src/runtime/root/release-materialize.ts +509 -0
- package/src/runtime/root/release-store.ts +236 -0
- package/src/runtime/root/runtime.ts +318 -0
- package/src/runtime/root/scheduler.ts +58 -0
- package/src/runtime/root/service-runner-entry.ts +20 -0
- package/src/runtime/root/service-runner.ts +69 -0
- package/src/runtime/root/service.ts +291 -0
- package/src/runtime/root/status.ts +127 -0
- package/src/runtime/root/types.ts +112 -0
- package/src/runtime/root/write-fence.ts +309 -0
- package/src/runtime/safe-tooling/browser-safe.ts +133 -0
- package/src/runtime/safe-tooling/external-filesystem.ts +304 -0
- package/src/runtime/safe-tooling/google-credential-store.ts +95 -0
- package/src/runtime/safe-tooling/google-oauth-broker.ts +286 -0
- package/src/runtime/safe-tooling/index.ts +11 -0
- package/src/runtime/safe-tooling/ios-development.ts +1039 -0
- package/src/runtime/safe-tooling/job-summary.ts +361 -0
- package/src/runtime/safe-tooling/plugin-summary.ts +53 -0
- package/src/runtime/safe-tooling/resend-oauth.ts +387 -0
- package/src/runtime/safe-tooling/review-artifacts.ts +133 -0
- package/src/runtime/safe-tooling/types.ts +103 -0
- package/src/runtime/safe-tooling/workspace-auth.ts +116 -0
- package/src/runtime/shared/bounded-child-supervisor.ts +235 -0
- package/src/runtime/shared/idempotent-retry.ts +128 -0
- package/src/runtime/shared/json-files.ts +43 -0
- package/src/runtime/shared/local-bridge-surface.ts +231 -0
- package/src/runtime/shared/managed-env.ts +154 -0
- package/src/runtime/shared/node-ts-loader.mjs +50 -0
- package/src/runtime/shared/process-environment.ts +97 -0
- package/src/runtime/shared/process-identity.ts +72 -0
- package/src/runtime/shared/process-tree.ts +227 -0
- package/src/runtime/shared/response-budget.ts +246 -0
- package/src/runtime/standalone-recovery/core.ts +2275 -0
- package/src/runtime/standalone-recovery/entry.ts +686 -0
- package/src/runtime/standalone-recovery/http-transport.ts +317 -0
- package/src/runtime/standalone-recovery/installer.ts +747 -0
- package/src/runtime/standalone-recovery/release.ts +241 -0
- package/src/runtime/watchdog/workflow-watchdog.ts +118 -0
- package/src/runtime/workflow/campaigns/cleanup.ts +263 -0
- package/src/runtime/workflow/campaigns/engine.ts +112 -0
- package/src/runtime/workflow/campaigns/normalize.ts +100 -0
- package/src/runtime/workflow/campaigns/review.ts +315 -0
- package/src/runtime/workflow/campaigns/store.ts +526 -0
- package/src/runtime/workflow/campaigns/supervisor.ts +112 -0
- package/src/runtime/workflow/campaigns/types.ts +290 -0
- package/src/runtime/workflow/campaigns/workspace-agent.ts +155 -0
- package/src/runtime/workflow/campaigns/workspace.ts +200 -0
- package/src/runtime/workflow/findings/store.ts +165 -0
- package/src/runtime/workflow/findings/types.ts +36 -0
- package/src/runtime/workflow/portfolio/engine.ts +20 -0
- package/src/runtime/workflow/portfolio/store.ts +185 -0
- package/src/runtime/workflow/portfolio/types.ts +29 -0
- package/src/runtime/workflow/schedules/engine.ts +620 -0
- package/src/runtime/workflow/schedules/settlement.ts +144 -0
- package/src/runtime/workflow/schedules/store.ts +417 -0
- package/src/runtime/workflow/schedules/types.ts +124 -0
- package/src/runtime/workspace-targets/index.ts +24 -0
- package/src/runtime/workspace-targets/target-grant.ts +721 -0
- package/src/testing/test-governance.ts +626 -0
- package/src/version.ts +21 -0
|
@@ -0,0 +1,1218 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
+
if REPO_ROOT="$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel 2>/dev/null)"; then
|
|
6
|
+
cd "$REPO_ROOT"
|
|
7
|
+
elif [[ "$SCRIPT_DIR" == */.ai/harness/scripts ]]; then
|
|
8
|
+
cd "$SCRIPT_DIR/../../.."
|
|
9
|
+
else
|
|
10
|
+
cd "$SCRIPT_DIR/.."
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
usage() {
|
|
14
|
+
cat <<'USAGE_EOF'
|
|
15
|
+
Usage: scripts/ensure-task-workflow.sh [--new-plan] [--slug <slug>] [--title <title>]
|
|
16
|
+
USAGE_EOF
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
normalize_slug() {
|
|
20
|
+
printf '%s' "$1" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+//; s/-+$//; s/-{2,}/-/g'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
ACTIVE_PLAN_MARKER=".ai/harness/active-plan"
|
|
24
|
+
LEGACY_ACTIVE_PLAN_MARKER=".claude/.active-plan"
|
|
25
|
+
|
|
26
|
+
read_active_plan_marker() {
|
|
27
|
+
local marker_file="$1"
|
|
28
|
+
local marker_plan
|
|
29
|
+
|
|
30
|
+
if [[ -f "$marker_file" ]]; then
|
|
31
|
+
marker_plan="$(cat "$marker_file" 2>/dev/null | xargs)"
|
|
32
|
+
if [[ -n "$marker_plan" && -f "$marker_plan" ]]; then
|
|
33
|
+
printf '%s' "$marker_plan"
|
|
34
|
+
return 0
|
|
35
|
+
fi
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
return 1
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get_active_plan() {
|
|
42
|
+
read_active_plan_marker "$ACTIVE_PLAN_MARKER" \
|
|
43
|
+
|| read_active_plan_marker "$LEGACY_ACTIVE_PLAN_MARKER"
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
ensure_templates() {
|
|
47
|
+
mkdir -p .claude/templates
|
|
48
|
+
|
|
49
|
+
if [[ ! -f ".claude/templates/spec.template.md" ]]; then
|
|
50
|
+
cat > .claude/templates/spec.template.md <<'SPEC_TEMPLATE_EOF'
|
|
51
|
+
# Product Spec: {{PROJECT_NAME}}
|
|
52
|
+
|
|
53
|
+
> **Status**: Draft
|
|
54
|
+
> **Last Updated**: {{TIMESTAMP}}
|
|
55
|
+
> **Owner**: Planner
|
|
56
|
+
|
|
57
|
+
## Product Outcome
|
|
58
|
+
|
|
59
|
+
Describe the stable user or operator outcome this repo should deliver.
|
|
60
|
+
|
|
61
|
+
## Success Criteria
|
|
62
|
+
|
|
63
|
+
- Primary workflow:
|
|
64
|
+
- Quality bar:
|
|
65
|
+
- Out of scope:
|
|
66
|
+
|
|
67
|
+
## Constraints
|
|
68
|
+
|
|
69
|
+
- Technical:
|
|
70
|
+
- Compliance:
|
|
71
|
+
- Delivery:
|
|
72
|
+
|
|
73
|
+
## Acceptance Scenarios
|
|
74
|
+
|
|
75
|
+
- Given
|
|
76
|
+
When
|
|
77
|
+
Then
|
|
78
|
+
|
|
79
|
+
## Open Questions
|
|
80
|
+
|
|
81
|
+
- ...
|
|
82
|
+
SPEC_TEMPLATE_EOF
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
if [[ ! -f ".claude/templates/research.template.md" ]]; then
|
|
86
|
+
cat > .claude/templates/research.template.md <<'RESEARCH_TEMPLATE_EOF'
|
|
87
|
+
# {{PROJECT_NAME}} — Research Notes
|
|
88
|
+
|
|
89
|
+
> **Last Updated**: {{DATE}}
|
|
90
|
+
> **Scope**: (what area of the codebase was researched)
|
|
91
|
+
> **Usage**: Store deep codebase findings and hidden contracts here, not in chat-only summaries.
|
|
92
|
+
|
|
93
|
+
## Codebase Map
|
|
94
|
+
| File | Purpose | Key Exports |
|
|
95
|
+
|------|---------|-------------|
|
|
96
|
+
|
|
97
|
+
## Architecture Observations
|
|
98
|
+
### Patterns & Conventions
|
|
99
|
+
### Implicit Contracts
|
|
100
|
+
### Edge Cases & Intricacies
|
|
101
|
+
|
|
102
|
+
## Technical Debt / Risks
|
|
103
|
+
|
|
104
|
+
## Research Conclusions
|
|
105
|
+
### What to Preserve
|
|
106
|
+
### What to Change
|
|
107
|
+
### Open Questions
|
|
108
|
+
RESEARCH_TEMPLATE_EOF
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
if [[ ! -f ".claude/templates/prd.template.md" ]]; then
|
|
112
|
+
cat > .claude/templates/prd.template.md <<'PRD_TEMPLATE_EOF'
|
|
113
|
+
# PRD: {{PRD_TITLE}}
|
|
114
|
+
|
|
115
|
+
> **Status**: Draft
|
|
116
|
+
> **Slug**: {{PRD_SLUG}}
|
|
117
|
+
> **Created**: {{TIMESTAMP}}
|
|
118
|
+
> **Updated**: {{TIMESTAMP}}
|
|
119
|
+
> **Source Spec**: `docs/spec.md`
|
|
120
|
+
> **Tier**: compact
|
|
121
|
+
|
|
122
|
+
<!--
|
|
123
|
+
PRD tier contract:
|
|
124
|
+
- compact: one focused product/tool or fewer than three P0 modules, target 150-300 lines.
|
|
125
|
+
- standard: multi-module product, target 300-600 lines and hard cap 800 lines.
|
|
126
|
+
- If the PRD would exceed 800 lines, split it into smaller PRDs.
|
|
127
|
+
- Output files live in plans/prds/<YYYYMMDD>-<HHMM>-<slug>.prd.md.
|
|
128
|
+
- Inline responses should include only the AI Quick-Read Card and file path.
|
|
129
|
+
-->
|
|
130
|
+
|
|
131
|
+
## AI Quick-Read Card
|
|
132
|
+
|
|
133
|
+
- Problem:
|
|
134
|
+
- Users:
|
|
135
|
+
- Platform:
|
|
136
|
+
- P0 surface:
|
|
137
|
+
- Core metric:
|
|
138
|
+
- Hard constraint:
|
|
139
|
+
- Key risk:
|
|
140
|
+
- Unknowns:
|
|
141
|
+
- Acceptance scenarios:
|
|
142
|
+
- Suggested next step:
|
|
143
|
+
|
|
144
|
+
## Problem
|
|
145
|
+
|
|
146
|
+
### Product Direction
|
|
147
|
+
|
|
148
|
+
- Hard Constraints:
|
|
149
|
+
- Recommended Defaults:
|
|
150
|
+
- Freedoms:
|
|
151
|
+
|
|
152
|
+
### Feasibility Boundary
|
|
153
|
+
|
|
154
|
+
- Confirmed:
|
|
155
|
+
- [UNKNOWN]:
|
|
156
|
+
- [UNVERIFIED]:
|
|
157
|
+
|
|
158
|
+
## Users
|
|
159
|
+
|
|
160
|
+
### Primary Users
|
|
161
|
+
|
|
162
|
+
- User:
|
|
163
|
+
- Need:
|
|
164
|
+
- Success signal:
|
|
165
|
+
|
|
166
|
+
### Secondary Users
|
|
167
|
+
|
|
168
|
+
- User:
|
|
169
|
+
- Need:
|
|
170
|
+
- Success signal:
|
|
171
|
+
|
|
172
|
+
## Success Criteria
|
|
173
|
+
|
|
174
|
+
| Metric | Target | Measurement Method | Degradation Threshold |
|
|
175
|
+
|---|---:|---|---:|
|
|
176
|
+
| Example metric | 95% | Describe how to measure it | 90% |
|
|
177
|
+
|
|
178
|
+
## Acceptance Scenarios
|
|
179
|
+
|
|
180
|
+
### Scenario 1
|
|
181
|
+
|
|
182
|
+
- Given:
|
|
183
|
+
- When:
|
|
184
|
+
- Then:
|
|
185
|
+
- Machine-checkable evidence:
|
|
186
|
+
|
|
187
|
+
### Scenario 2
|
|
188
|
+
|
|
189
|
+
- Given:
|
|
190
|
+
- When:
|
|
191
|
+
- Then:
|
|
192
|
+
- Machine-checkable evidence:
|
|
193
|
+
|
|
194
|
+
## Non-goals
|
|
195
|
+
|
|
196
|
+
-
|
|
197
|
+
|
|
198
|
+
## Module Behaviors (P0)
|
|
199
|
+
|
|
200
|
+
### Module 1
|
|
201
|
+
|
|
202
|
+
- Purpose:
|
|
203
|
+
- Hard Constraints:
|
|
204
|
+
- Recommended Defaults:
|
|
205
|
+
- Freedoms:
|
|
206
|
+
- Normal path:
|
|
207
|
+
- Failure path 1:
|
|
208
|
+
- Failure path 2:
|
|
209
|
+
- States:
|
|
210
|
+
- Empty:
|
|
211
|
+
- Loading:
|
|
212
|
+
- Ready:
|
|
213
|
+
- Error:
|
|
214
|
+
- Dependencies:
|
|
215
|
+
- Open decisions: None
|
|
216
|
+
|
|
217
|
+
## Data Model
|
|
218
|
+
|
|
219
|
+
```jsonc
|
|
220
|
+
{
|
|
221
|
+
"version": "1",
|
|
222
|
+
"entities": [
|
|
223
|
+
{
|
|
224
|
+
"id": "example_entity",
|
|
225
|
+
"owner": "user", // who owns the data
|
|
226
|
+
"fields": {
|
|
227
|
+
"id": "string", // stable identifier
|
|
228
|
+
"created_at": "datetime" // creation timestamp
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
],
|
|
232
|
+
"relationships": []
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Performance Targets
|
|
237
|
+
|
|
238
|
+
| Target | Number | Measurement Method | Degradation Threshold |
|
|
239
|
+
|---|---:|---|---:|
|
|
240
|
+
| Initial usable response | 2 seconds | Local stopwatch or automated timing | 4 seconds |
|
|
241
|
+
|
|
242
|
+
## Known Unknowns
|
|
243
|
+
|
|
244
|
+
| Item | Impact | Resolution Path | Owner |
|
|
245
|
+
|---|---|---|---|
|
|
246
|
+
| [UNKNOWN] Example unknown | Explain impact | Explain how to resolve | Maintainer |
|
|
247
|
+
|
|
248
|
+
## Developer Handoff
|
|
249
|
+
|
|
250
|
+
You are implementing this PRD.
|
|
251
|
+
|
|
252
|
+
- Build first:
|
|
253
|
+
- Do not reinterpret:
|
|
254
|
+
- You may improve:
|
|
255
|
+
- Verify with:
|
|
256
|
+
|
|
257
|
+
### Acceptance Scripts
|
|
258
|
+
|
|
259
|
+
1.
|
|
260
|
+
2.
|
|
261
|
+
3.
|
|
262
|
+
|
|
263
|
+
## Adjacent Patterns
|
|
264
|
+
|
|
265
|
+
Use this section only in standard tier or when explicitly requested. Prefer adjacent product patterns and common workflow debt. Do not name a competitor, API, platform limit, or package size unless the fact is sourced; otherwise mark it `[UNVERIFIED]`.
|
|
266
|
+
|
|
267
|
+
## Commercialization Notes
|
|
268
|
+
|
|
269
|
+
Use only when the request involves pricing, packaging, monetization, or buyer/user separation.
|
|
270
|
+
|
|
271
|
+
## Frontend Perspective
|
|
272
|
+
|
|
273
|
+
Use only when the frontend shape affects product behavior, state ownership, accessibility, or implementation risk.
|
|
274
|
+
|
|
275
|
+
## Backend Perspective
|
|
276
|
+
|
|
277
|
+
Use only when APIs, persistence, jobs, permissions, or data ownership affect product behavior or implementation risk.
|
|
278
|
+
PRD_TEMPLATE_EOF
|
|
279
|
+
fi
|
|
280
|
+
|
|
281
|
+
if [[ ! -f ".claude/templates/plan.template.md" ]]; then
|
|
282
|
+
cat > .claude/templates/plan.template.md <<'PLAN_TEMPLATE_EOF'
|
|
283
|
+
# Plan: {{TITLE}}
|
|
284
|
+
|
|
285
|
+
> **Status**: Draft
|
|
286
|
+
> **Created**: {{TIMESTAMP}}
|
|
287
|
+
> **Slug**: {{SLUG}}
|
|
288
|
+
> **Spec**: `docs/spec.md`
|
|
289
|
+
> **Research**: See `docs/researches/`
|
|
290
|
+
> **Task Contract**: `tasks/contracts/{{ARTIFACT_STEM}}.contract.md`
|
|
291
|
+
> **Task Review**: `tasks/reviews/{{ARTIFACT_STEM}}.review.md`
|
|
292
|
+
> **Implementation Notes**: `tasks/notes/{{ARTIFACT_STEM}}.notes.md`
|
|
293
|
+
|
|
294
|
+
## Agentic Routing
|
|
295
|
+
- Selected route:
|
|
296
|
+
- Routing reason:
|
|
297
|
+
- Due diligence:
|
|
298
|
+
- P1 map:
|
|
299
|
+
- P2 trace:
|
|
300
|
+
- P3 decision rationale:
|
|
301
|
+
|
|
302
|
+
## Workflow Inventory
|
|
303
|
+
Complete this inventory before implementation. If any line is unknown, keep the plan in Draft and fill it before projection.
|
|
304
|
+
|
|
305
|
+
- Active plan: `{{PLAN_FILE}}`
|
|
306
|
+
- Sprint contract: `tasks/contracts/{{ARTIFACT_STEM}}.contract.md`
|
|
307
|
+
- Sprint review: `tasks/reviews/{{ARTIFACT_STEM}}.review.md`
|
|
308
|
+
- Implementation notes: `tasks/notes/{{ARTIFACT_STEM}}.notes.md`
|
|
309
|
+
- Deferred-goal ledger: `tasks/todos.md`
|
|
310
|
+
- Current checks: `.ai/harness/checks/latest.json`
|
|
311
|
+
- Run snapshots: `.ai/harness/runs/`
|
|
312
|
+
- Scope authority: `tasks/contracts/{{ARTIFACT_STEM}}.contract.md` `allowed_paths`
|
|
313
|
+
- Concurrency rule: `.ai/harness/active-plan` selects the active plan for this worktree when present; `.ai/harness/active-worktree` records the owning worktree; `.claude/.active-plan` is a legacy fallback during transition. If another worktree already owns active work, open or switch to the matching worktree instead of serializing unrelated plans.
|
|
314
|
+
- Execution isolation: approved contract-level work projects through `scripts/plan-to-todo.sh --plan {{PLAN_FILE}}` and may start `scripts/contract-worktree.sh start --plan {{PLAN_FILE}}`.
|
|
315
|
+
|
|
316
|
+
## Approach
|
|
317
|
+
### Strategy
|
|
318
|
+
### Trade-offs
|
|
319
|
+
| Option | Pros | Cons | Decision |
|
|
320
|
+
|--------|------|------|----------|
|
|
321
|
+
|
|
322
|
+
## Detailed Design
|
|
323
|
+
### File Changes
|
|
324
|
+
| File | Action | Description |
|
|
325
|
+
|------|--------|-------------|
|
|
326
|
+
|
|
327
|
+
### Code Snippets
|
|
328
|
+
### Data Flow
|
|
329
|
+
|
|
330
|
+
## Risk Assessment
|
|
331
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
332
|
+
|------|------------|--------|------------|
|
|
333
|
+
|
|
334
|
+
## Task Contracts
|
|
335
|
+
- Contract file: `tasks/contracts/{{ARTIFACT_STEM}}.contract.md`
|
|
336
|
+
- Review file: `tasks/reviews/{{ARTIFACT_STEM}}.review.md`
|
|
337
|
+
- Implementation notes file: `tasks/notes/{{ARTIFACT_STEM}}.notes.md`
|
|
338
|
+
- Template: `.claude/templates/contract.template.md`
|
|
339
|
+
- Verification command: `bash scripts/verify-contract.sh --contract tasks/contracts/{{ARTIFACT_STEM}}.contract.md --strict`
|
|
340
|
+
- Active plan rule: `.ai/harness/active-plan` is authoritative for this worktree when present; `.ai/harness/active-worktree` records the owning worktree; `.claude/.active-plan` is a legacy fallback during transition. Do not infer active execution from the latest non-archived plan.
|
|
341
|
+
|
|
342
|
+
## Handoff
|
|
343
|
+
|
|
344
|
+
- Checks file: `.ai/harness/checks/latest.json`
|
|
345
|
+
- Session handoff: `.ai/harness/handoff/current.md`
|
|
346
|
+
|
|
347
|
+
## Evidence Contract
|
|
348
|
+
|
|
349
|
+
- **State/progress path**:
|
|
350
|
+
- **Verification evidence**:
|
|
351
|
+
- **Evaluator rubric**:
|
|
352
|
+
- **Stop condition**:
|
|
353
|
+
- **Rollback surface**:
|
|
354
|
+
|
|
355
|
+
## Annotations
|
|
356
|
+
<!-- [NOTE]: prefixed inline. Claude processes all and revises. -->
|
|
357
|
+
|
|
358
|
+
## Task Breakdown
|
|
359
|
+
- [ ] ...
|
|
360
|
+
PLAN_TEMPLATE_EOF
|
|
361
|
+
fi
|
|
362
|
+
|
|
363
|
+
if [[ ! -f ".claude/templates/contract.template.md" ]]; then
|
|
364
|
+
cat > .claude/templates/contract.template.md <<'CONTRACT_TEMPLATE_EOF'
|
|
365
|
+
# Task Contract: {{TASK_SLUG}}
|
|
366
|
+
|
|
367
|
+
> **Status**: Pending
|
|
368
|
+
> **Plan**: {{PLAN_FILE}}
|
|
369
|
+
> **Task Profile**: {{TASK_PROFILE}}
|
|
370
|
+
> **Owner**: {{OWNER}}
|
|
371
|
+
> **Capability ID**: {{CAPABILITY_ID}}
|
|
372
|
+
> **Last Updated**: {{TIMESTAMP}}
|
|
373
|
+
> **Review File**: `{{REVIEW_FILE}}`
|
|
374
|
+
> **Notes File**: `{{NOTES_FILE}}`
|
|
375
|
+
|
|
376
|
+
## Goal
|
|
377
|
+
|
|
378
|
+
Describe the exact outcome this task must deliver.
|
|
379
|
+
|
|
380
|
+
## Scope
|
|
381
|
+
|
|
382
|
+
- In scope:
|
|
383
|
+
- Out of scope:
|
|
384
|
+
|
|
385
|
+
## Workflow Inventory
|
|
386
|
+
|
|
387
|
+
- Source plan: `{{PLAN_FILE}}`
|
|
388
|
+
- Deferred-goal ledger: `tasks/todos.md`
|
|
389
|
+
- Review file: `{{REVIEW_FILE}}`
|
|
390
|
+
- Notes file: `{{NOTES_FILE}}`
|
|
391
|
+
- Checks file: `.ai/harness/checks/latest.json`
|
|
392
|
+
- Run snapshots: `.ai/harness/runs/`
|
|
393
|
+
- Scope gate: edit only paths listed under `allowed_paths`; update this contract before widening scope.
|
|
394
|
+
- Completion gate: `scripts/verify-sprint.sh` must see this contract pass, the review recommend pass, and `## External Acceptance Advice` pass or record a manual override.
|
|
395
|
+
|
|
396
|
+
## Allowed Paths
|
|
397
|
+
|
|
398
|
+
```yaml
|
|
399
|
+
allowed_paths:
|
|
400
|
+
- plans/
|
|
401
|
+
- tasks/todos.md
|
|
402
|
+
- {{CONTRACT_FILE}}
|
|
403
|
+
- {{REVIEW_FILE}}
|
|
404
|
+
- {{NOTES_FILE}}
|
|
405
|
+
- .ai/context/capabilities.json
|
|
406
|
+
- src/
|
|
407
|
+
- tests/
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
## Delegation Contract
|
|
411
|
+
|
|
412
|
+
```yaml
|
|
413
|
+
delegation:
|
|
414
|
+
budget:
|
|
415
|
+
tokens: null
|
|
416
|
+
tool_calls: null
|
|
417
|
+
wall_time_minutes: null
|
|
418
|
+
permission_scope:
|
|
419
|
+
mode: inherit_allowed_paths
|
|
420
|
+
writable_paths: []
|
|
421
|
+
network: inherited
|
|
422
|
+
roles:
|
|
423
|
+
parent:
|
|
424
|
+
mode: narrate_and_gatekeep
|
|
425
|
+
purpose: approval_checkpoint_owner
|
|
426
|
+
explorer:
|
|
427
|
+
mode: read_only
|
|
428
|
+
purpose: codebase_research
|
|
429
|
+
worker:
|
|
430
|
+
mode: edit_within_allowed_paths
|
|
431
|
+
purpose: implementation
|
|
432
|
+
verifier:
|
|
433
|
+
mode: read_only
|
|
434
|
+
purpose: exit_criteria_review
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
## Exit Criteria (Machine Verifiable)
|
|
438
|
+
|
|
439
|
+
```yaml
|
|
440
|
+
exit_criteria:
|
|
441
|
+
files_exist:
|
|
442
|
+
- src/modules/{{TASK_SLUG}}/index.ts
|
|
443
|
+
- {{NOTES_FILE}}
|
|
444
|
+
tests_pass:
|
|
445
|
+
- path: tests/unit/{{TASK_SLUG}}.test.ts
|
|
446
|
+
commands_succeed:
|
|
447
|
+
- bun run typecheck
|
|
448
|
+
files_contain:
|
|
449
|
+
- path: src/modules/{{TASK_SLUG}}/index.ts
|
|
450
|
+
pattern: "export"
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
## Acceptance Notes (Human Review)
|
|
454
|
+
|
|
455
|
+
- Functional behavior:
|
|
456
|
+
- Edge cases:
|
|
457
|
+
- Regression risks:
|
|
458
|
+
|
|
459
|
+
## Rollback Point
|
|
460
|
+
|
|
461
|
+
- Commit / checkpoint:
|
|
462
|
+
- Revert strategy:
|
|
463
|
+
CONTRACT_TEMPLATE_EOF
|
|
464
|
+
fi
|
|
465
|
+
|
|
466
|
+
if [[ ! -f ".claude/templates/review.template.md" ]]; then
|
|
467
|
+
cat > .claude/templates/review.template.md <<'REVIEW_TEMPLATE_EOF'
|
|
468
|
+
# Task Review: {{TASK_SLUG}}
|
|
469
|
+
|
|
470
|
+
> **Status**: Pending
|
|
471
|
+
> **Plan**: {{PLAN_FILE}}
|
|
472
|
+
> **Contract**: {{CONTRACT_FILE}}
|
|
473
|
+
> **Notes File**: {{NOTES_FILE}}
|
|
474
|
+
> **Checks File**: {{CHECKS_FILE}}
|
|
475
|
+
> **Last Updated**: {{TIMESTAMP}}
|
|
476
|
+
> **Recommendation**: fail
|
|
477
|
+
|
|
478
|
+
## Human Review Card
|
|
479
|
+
|
|
480
|
+
- Verdict: pending
|
|
481
|
+
- Change type: code-change | docs-only | ledger-closeout | migration | eval-only | delegated-run
|
|
482
|
+
- Intended files changed:
|
|
483
|
+
- Actual files changed:
|
|
484
|
+
- Commands passed:
|
|
485
|
+
- External acceptance: unavailable
|
|
486
|
+
- Residual risks:
|
|
487
|
+
- Reviewer action required: inspect diff and card
|
|
488
|
+
- Rollback:
|
|
489
|
+
|
|
490
|
+
## Verification Evidence
|
|
491
|
+
|
|
492
|
+
- Waza /check run:
|
|
493
|
+
- Commands run:
|
|
494
|
+
- Manual checks:
|
|
495
|
+
- Supporting artifacts:
|
|
496
|
+
|
|
497
|
+
## External Acceptance Advice
|
|
498
|
+
|
|
499
|
+
> **External Acceptance**: unavailable
|
|
500
|
+
> **External Reviewer**:
|
|
501
|
+
> **External Source**:
|
|
502
|
+
> **External Started**:
|
|
503
|
+
> **External Completed**:
|
|
504
|
+
|
|
505
|
+
- P1 blockers:
|
|
506
|
+
- P2 advisories:
|
|
507
|
+
- Acceptance checklist:
|
|
508
|
+
|
|
509
|
+
## Scorecard
|
|
510
|
+
|
|
511
|
+
| Dimension | Score | Notes |
|
|
512
|
+
|-----------|-------|-------|
|
|
513
|
+
| Functionality | 0/10 | |
|
|
514
|
+
| Product depth | 0/10 | |
|
|
515
|
+
| Design quality | 0/10 | |
|
|
516
|
+
| Code quality | 0/10 | |
|
|
517
|
+
|
|
518
|
+
## Failing Items
|
|
519
|
+
|
|
520
|
+
- ...
|
|
521
|
+
|
|
522
|
+
## Retest Steps
|
|
523
|
+
|
|
524
|
+
- Re-run:
|
|
525
|
+
- Re-check:
|
|
526
|
+
|
|
527
|
+
## Summary
|
|
528
|
+
|
|
529
|
+
- ...
|
|
530
|
+
REVIEW_TEMPLATE_EOF
|
|
531
|
+
fi
|
|
532
|
+
|
|
533
|
+
if [[ ! -f ".claude/templates/implementation-notes.template.md" ]]; then
|
|
534
|
+
cat > .claude/templates/implementation-notes.template.md <<'NOTES_TEMPLATE_EOF'
|
|
535
|
+
# Implementation Notes: {{TASK_SLUG}}
|
|
536
|
+
|
|
537
|
+
> **Status**: Active
|
|
538
|
+
> **Plan**: {{PLAN_FILE}}
|
|
539
|
+
> **Contract**: {{CONTRACT_FILE}}
|
|
540
|
+
> **Review**: {{REVIEW_FILE}}
|
|
541
|
+
> **Last Updated**: {{TIMESTAMP}}
|
|
542
|
+
> **Lifecycle**: notes
|
|
543
|
+
|
|
544
|
+
## Design Decisions
|
|
545
|
+
|
|
546
|
+
- ...
|
|
547
|
+
|
|
548
|
+
## Deviations From Plan Or Spec
|
|
549
|
+
|
|
550
|
+
- None recorded.
|
|
551
|
+
|
|
552
|
+
## Tradeoffs Considered
|
|
553
|
+
|
|
554
|
+
| Option | Decision | Reason |
|
|
555
|
+
|--------|----------|--------|
|
|
556
|
+
| ... | ... | ... |
|
|
557
|
+
|
|
558
|
+
## Open Questions
|
|
559
|
+
|
|
560
|
+
- None.
|
|
561
|
+
|
|
562
|
+
## Evidence Links
|
|
563
|
+
|
|
564
|
+
- Checks: `.ai/harness/checks/latest.json`
|
|
565
|
+
- Run snapshots: `.ai/harness/runs/`
|
|
566
|
+
|
|
567
|
+
## Promotion Candidates
|
|
568
|
+
|
|
569
|
+
- Promote to `tasks/lessons.md` only after a repeated correction or failure pattern.
|
|
570
|
+
- Promote to `docs/researches/` only when it is durable repo knowledge with evidence.
|
|
571
|
+
- Promote to harness asset files only after verification across more than one task or fixture.
|
|
572
|
+
NOTES_TEMPLATE_EOF
|
|
573
|
+
fi
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
ensure_idle_todo() {
|
|
577
|
+
mkdir -p tasks
|
|
578
|
+
if [[ ! -f "tasks/todos.md" ]]; then
|
|
579
|
+
cat > tasks/todos.md <<'TODO_EOF'
|
|
580
|
+
# Deferred Goal Ledger
|
|
581
|
+
|
|
582
|
+
> **Status**: Backlog
|
|
583
|
+
> **Updated**: (ensure-task-workflow)
|
|
584
|
+
> **Scope**: Medium/long-term goals deferred from active plan execution
|
|
585
|
+
|
|
586
|
+
Current plan tasks live in the active plan's `## Task Breakdown`.
|
|
587
|
+
Do not duplicate that execution checklist here. Record only work intentionally deferred beyond this slice, with the tradeoff and revisit trigger.
|
|
588
|
+
|
|
589
|
+
## Deferred Goals
|
|
590
|
+
|
|
591
|
+
| Goal | Why Deferred | Tradeoff | Revisit Trigger |
|
|
592
|
+
|------|--------------|----------|-----------------|
|
|
593
|
+
| (none) | No deferred medium/long-term goal recorded yet. | Keep the current slice bounded. | Add a row when a real follow-up is postponed. |
|
|
594
|
+
TODO_EOF
|
|
595
|
+
fi
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
ensure_current_status_snapshot() {
|
|
599
|
+
mkdir -p tasks
|
|
600
|
+
if [[ -x "scripts/refresh-current-status.sh" ]]; then
|
|
601
|
+
bash "scripts/refresh-current-status.sh" --clear --write --reason "ensure-task-workflow" >/dev/null 2>&1 || true
|
|
602
|
+
return 0
|
|
603
|
+
fi
|
|
604
|
+
|
|
605
|
+
if [[ ! -f "tasks/current.md" ]]; then
|
|
606
|
+
cat > tasks/current.md <<'CURRENT_STATUS_EOF'
|
|
607
|
+
# Current Status Snapshot
|
|
608
|
+
|
|
609
|
+
<!-- generated-by: forge refresh-current-status v1 -->
|
|
610
|
+
<!-- updated_at: bootstrap -->
|
|
611
|
+
<!-- stale_after: 24h -->
|
|
612
|
+
|
|
613
|
+
> **Status**: Idle
|
|
614
|
+
> **Updated At**: bootstrap
|
|
615
|
+
> **Source Branch**: main
|
|
616
|
+
> **Source Commit**: bootstrap
|
|
617
|
+
> **Target Branch**: main
|
|
618
|
+
> **Stale After**: 24h
|
|
619
|
+
> **Reason**: bootstrap
|
|
620
|
+
> **Derived From**: active-plan, workstreams, handoff, checks, git status
|
|
621
|
+
|
|
622
|
+
This file is a tracked mainline snapshot derived from repo artifacts. It is not a live lock, not a kanban board, and not an implementation gate. If it is stale, read the source artifacts below.
|
|
623
|
+
CURRENT_STATUS_EOF
|
|
624
|
+
fi
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
ensure_auxiliary_files() {
|
|
628
|
+
mkdir -p plans plans/archive plans/prds plans/sprints tasks/issues tasks/archive tasks/contracts tasks/reviews tasks/notes tasks/workstreams docs/architecture/domains docs/architecture/modules docs/architecture/requests docs/architecture/snapshots docs/architecture/diagrams scripts .ai/context .ai/harness/checks .ai/harness/handoff .ai/harness/scripts .ai/harness/failures .ai/harness/security .ai/harness/planning .ai/harness/architecture .ai/harness/worktrees .ai/harness/runs .ai/harness/jobs .ai/harness/local-jobs .ai/harness/controller .ai/harness/edit-sessions
|
|
629
|
+
|
|
630
|
+
if [[ ! -f "docs/spec.md" ]]; then
|
|
631
|
+
cat > docs/spec.md <<'SPEC_EOF'
|
|
632
|
+
# Product Spec
|
|
633
|
+
|
|
634
|
+
> **Status**: Draft
|
|
635
|
+
> **Owner**: Planner
|
|
636
|
+
SPEC_EOF
|
|
637
|
+
fi
|
|
638
|
+
|
|
639
|
+
if [[ ! -f "tasks/lessons.md" ]]; then
|
|
640
|
+
cat > tasks/lessons.md <<'LESSONS_EOF'
|
|
641
|
+
# Lessons Learned (Self-Improvement Loop)
|
|
642
|
+
|
|
643
|
+
> Capture correction-derived prevention rules here.
|
|
644
|
+
> Promote repeated patterns into durable project rules during spa day.
|
|
645
|
+
|
|
646
|
+
## Template
|
|
647
|
+
- Date:
|
|
648
|
+
- Triggered by correction:
|
|
649
|
+
- Mistake pattern:
|
|
650
|
+
- Prevention rule:
|
|
651
|
+
- Where to apply next time:
|
|
652
|
+
LESSONS_EOF
|
|
653
|
+
fi
|
|
654
|
+
|
|
655
|
+
mkdir -p docs/researches
|
|
656
|
+
if [[ ! -f "docs/researches/README.md" ]]; then
|
|
657
|
+
cat > docs/researches/README.md <<'RESEARCH_README_EOF'
|
|
658
|
+
# Research Reports
|
|
659
|
+
|
|
660
|
+
Durable research reports live in this directory as dated Markdown files.
|
|
661
|
+
|
|
662
|
+
Use `YYYYMMDD-topic.md` names for new reports. Keep task-local implementation
|
|
663
|
+
decisions in `tasks/notes/`, and keep repeated correction-derived rules in
|
|
664
|
+
`tasks/lessons.md`.
|
|
665
|
+
RESEARCH_README_EOF
|
|
666
|
+
fi
|
|
667
|
+
|
|
668
|
+
if [[ ! -f ".ai/harness/checks/latest.json" ]]; then
|
|
669
|
+
echo "{}" > ".ai/harness/checks/latest.json"
|
|
670
|
+
fi
|
|
671
|
+
|
|
672
|
+
if [[ ! -f ".ai/harness/handoff/current.md" ]]; then
|
|
673
|
+
cat > ".ai/harness/handoff/current.md" <<'HANDOFF_EOF'
|
|
674
|
+
# Harness Handoff
|
|
675
|
+
|
|
676
|
+
> **Reason**: bootstrap
|
|
677
|
+
HANDOFF_EOF
|
|
678
|
+
fi
|
|
679
|
+
|
|
680
|
+
if [[ ! -f ".ai/harness/handoff/resume.md" ]]; then
|
|
681
|
+
cat > ".ai/harness/handoff/resume.md" <<'RESUME_EOF'
|
|
682
|
+
# Codex Resume Packet
|
|
683
|
+
|
|
684
|
+
> **Reason**: bootstrap
|
|
685
|
+
RESUME_EOF
|
|
686
|
+
fi
|
|
687
|
+
|
|
688
|
+
if [[ ! -f ".ai/harness/events.jsonl" ]]; then
|
|
689
|
+
: > ".ai/harness/events.jsonl"
|
|
690
|
+
fi
|
|
691
|
+
|
|
692
|
+
if [[ ! -f ".ai/harness/architecture/events.jsonl" ]]; then
|
|
693
|
+
: > ".ai/harness/architecture/events.jsonl"
|
|
694
|
+
fi
|
|
695
|
+
|
|
696
|
+
if [[ ! -f ".ai/harness/architecture/.gitkeep" ]]; then
|
|
697
|
+
: > ".ai/harness/architecture/.gitkeep"
|
|
698
|
+
fi
|
|
699
|
+
|
|
700
|
+
if [[ ! -f ".ai/harness/failures/latest.jsonl" ]]; then
|
|
701
|
+
: > ".ai/harness/failures/latest.jsonl"
|
|
702
|
+
fi
|
|
703
|
+
|
|
704
|
+
if [[ ! -f ".ai/harness/security/.gitkeep" ]]; then
|
|
705
|
+
: > ".ai/harness/security/.gitkeep"
|
|
706
|
+
fi
|
|
707
|
+
|
|
708
|
+
if [[ ! -f ".ai/harness/runs/.gitkeep" ]]; then
|
|
709
|
+
: > ".ai/harness/runs/.gitkeep"
|
|
710
|
+
fi
|
|
711
|
+
if [[ ! -f ".ai/harness/worktrees/.gitkeep" ]]; then
|
|
712
|
+
: > ".ai/harness/worktrees/.gitkeep"
|
|
713
|
+
fi
|
|
714
|
+
if [[ ! -f ".ai/harness/jobs/.gitkeep" ]]; then
|
|
715
|
+
: > ".ai/harness/jobs/.gitkeep"
|
|
716
|
+
fi
|
|
717
|
+
if [[ ! -f ".ai/harness/edit-sessions/.gitkeep" ]]; then
|
|
718
|
+
: > ".ai/harness/edit-sessions/.gitkeep"
|
|
719
|
+
fi
|
|
720
|
+
|
|
721
|
+
if [[ ! -f "docs/architecture/requests/.gitkeep" ]]; then
|
|
722
|
+
: > "docs/architecture/requests/.gitkeep"
|
|
723
|
+
fi
|
|
724
|
+
|
|
725
|
+
if [[ ! -f "docs/architecture/snapshots/.gitkeep" ]]; then
|
|
726
|
+
: > "docs/architecture/snapshots/.gitkeep"
|
|
727
|
+
fi
|
|
728
|
+
|
|
729
|
+
if [[ ! -f "docs/architecture/diagrams/.gitkeep" ]]; then
|
|
730
|
+
: > "docs/architecture/diagrams/.gitkeep"
|
|
731
|
+
fi
|
|
732
|
+
|
|
733
|
+
if [[ ! -f "docs/architecture/domains/.gitkeep" ]]; then
|
|
734
|
+
: > "docs/architecture/domains/.gitkeep"
|
|
735
|
+
fi
|
|
736
|
+
|
|
737
|
+
if [[ ! -f "docs/architecture/modules/.gitkeep" ]]; then
|
|
738
|
+
: > "docs/architecture/modules/.gitkeep"
|
|
739
|
+
fi
|
|
740
|
+
|
|
741
|
+
if [[ ! -f "tasks/workstreams/.gitkeep" ]]; then
|
|
742
|
+
: > "tasks/workstreams/.gitkeep"
|
|
743
|
+
fi
|
|
744
|
+
|
|
745
|
+
if [[ ! -f ".ai/context/capabilities.json" ]]; then
|
|
746
|
+
cat > ".ai/context/capabilities.json" <<'CAPABILITIES_EOF'
|
|
747
|
+
{
|
|
748
|
+
"version": 1,
|
|
749
|
+
"capabilities": []
|
|
750
|
+
}
|
|
751
|
+
CAPABILITIES_EOF
|
|
752
|
+
fi
|
|
753
|
+
|
|
754
|
+
if [[ ! -f "docs/architecture/index.md" ]]; then
|
|
755
|
+
cat > "docs/architecture/index.md" <<'ARCHITECTURE_INDEX_EOF'
|
|
756
|
+
# Architecture Index
|
|
757
|
+
|
|
758
|
+
> Umbrella architecture ledger for current boundaries, drift requests, snapshots, and diagrams.
|
|
759
|
+
|
|
760
|
+
## Current Snapshot
|
|
761
|
+
|
|
762
|
+
- Latest snapshot: (none yet)
|
|
763
|
+
- Semantic diagram source: (none yet)
|
|
764
|
+
- Latest human diagram: (none yet)
|
|
765
|
+
|
|
766
|
+
## Architecture Drift Flow
|
|
767
|
+
|
|
768
|
+
- `scripts/architecture-queue.sh` records architecture-sensitive edits as requests.
|
|
769
|
+
- `scripts/archive-architecture-request.sh` archives handled requests after an agent records the resolution status and linked artifacts.
|
|
770
|
+
- `scripts/context-contract-sync.sh` keeps only the controlled architecture block in functional-block `AGENTS.md` and `CLAUDE.md` files aligned.
|
|
771
|
+
- `scripts/workstream-sync.sh` keeps durable multi-session progress under `tasks/workstreams/<domain>/<capability>/` and projects only pointers into local contracts.
|
|
772
|
+
- Semantic architecture diagrams live as Mermaid fenced blocks in the relevant module or snapshot Markdown.
|
|
773
|
+
- Human-readable architecture diagrams are optional `mermaid` HTML files in `docs/architecture/diagrams/` and should link back to the Markdown semantic source.
|
|
774
|
+
|
|
775
|
+
## Pending Requests
|
|
776
|
+
|
|
777
|
+
<!-- BEGIN ARCHITECTURE PENDING REQUESTS -->
|
|
778
|
+
- (none)
|
|
779
|
+
<!-- END ARCHITECTURE PENDING REQUESTS -->
|
|
780
|
+
|
|
781
|
+
ARCHITECTURE_INDEX_EOF
|
|
782
|
+
fi
|
|
783
|
+
|
|
784
|
+
if [[ ! -f ".ai/harness/policy.json" ]]; then
|
|
785
|
+
cat > ".ai/harness/policy.json" <<'POLICY_EOF'
|
|
786
|
+
{
|
|
787
|
+
"version": 1,
|
|
788
|
+
"active_plan": {
|
|
789
|
+
"marker_file": ".ai/harness/active-plan",
|
|
790
|
+
"legacy_marker_file": ".claude/.active-plan",
|
|
791
|
+
"directory": "plans",
|
|
792
|
+
"archive_directory": "plans/archive",
|
|
793
|
+
"glob": "plan-*.md",
|
|
794
|
+
"active_worktree_marker_file": ".ai/harness/active-worktree",
|
|
795
|
+
"source_of_truth": "per-worktree explicit marker with active-worktree owner; legacy Claude marker fallback only"
|
|
796
|
+
},
|
|
797
|
+
"tasks": {
|
|
798
|
+
"todo_file": "tasks/todos.md",
|
|
799
|
+
"current_status_file": "tasks/current.md",
|
|
800
|
+
"lessons_file": "tasks/lessons.md",
|
|
801
|
+
"research_dir": "docs/researches",
|
|
802
|
+
"workstreams_dir": "tasks/workstreams",
|
|
803
|
+
"contracts_dir": "tasks/contracts",
|
|
804
|
+
"reviews_dir": "tasks/reviews",
|
|
805
|
+
"notes_dir": "tasks/notes"
|
|
806
|
+
},
|
|
807
|
+
"reference_material": {
|
|
808
|
+
"dir": "_ref",
|
|
809
|
+
"mode": "external-ignored",
|
|
810
|
+
"commit_policy": "never commit _ref contents",
|
|
811
|
+
"rule": "use _ref as an occasional ignored external reference checkout cache for upstream/source comparison only; refresh from external sources instead of editing as product code; when it influences a decision, cite the source repo plus commit/tag and path in tasks/notes/ or docs/researches/"
|
|
812
|
+
},
|
|
813
|
+
"operations": {
|
|
814
|
+
"dir": "deploy",
|
|
815
|
+
"private_dir": "_ops",
|
|
816
|
+
"tracked": ["deploy/README.md", "deploy/scripts/", "deploy/submissions/", "deploy/runbooks/", "deploy/release-checklists/", "deploy/sql/", "deploy/*.md", "deploy/env/.env.example"],
|
|
817
|
+
"ignored": ["_ops/"],
|
|
818
|
+
"rule": "commit deployment runbooks, submission materials, release checklists, helper scripts, ordered SQL files, and env examples under deploy/; keep deploy SQL in deploy/sql/ with 4-digit ascending prefixes; keep keys, tokens, real env values, provider state, artifacts, logs, and scratch files in ignored _ops/ only"
|
|
819
|
+
},
|
|
820
|
+
"context": {
|
|
821
|
+
"profile": "stable-root-progressive-subdir",
|
|
822
|
+
"map_file": ".ai/context/context-map.json",
|
|
823
|
+
"capability_registry_file": ".ai/context/capabilities.json",
|
|
824
|
+
"capability_resolver": "scripts/capability-resolver.ts",
|
|
825
|
+
"capability_match_rule": "longest-prefix; same-length ambiguity fails",
|
|
826
|
+
"functional_block_selector": {
|
|
827
|
+
"script": "scripts/select-agent-context-blocks.sh",
|
|
828
|
+
"config_file": ".ai/context/agent-context-blocks.txt",
|
|
829
|
+
"env": "FORGE_CONTEXT_BLOCKS",
|
|
830
|
+
"rule": "compatibility selector; capability registry is the source of truth"
|
|
831
|
+
}
|
|
832
|
+
},
|
|
833
|
+
"harness": {
|
|
834
|
+
"policy_file": ".ai/harness/policy.json",
|
|
835
|
+
"checks_file": ".ai/harness/checks/latest.json",
|
|
836
|
+
"handoff_file": ".ai/harness/handoff/current.md",
|
|
837
|
+
"failure_log_file": ".ai/harness/failures/latest.jsonl",
|
|
838
|
+
"events_file": ".ai/harness/events.jsonl",
|
|
839
|
+
"architecture_events_file": ".ai/harness/architecture/events.jsonl",
|
|
840
|
+
"runs_dir": ".ai/harness/runs",
|
|
841
|
+
"helper_runtime_dir": "scripts",
|
|
842
|
+
"helper_compat_dir": "scripts",
|
|
843
|
+
"helper_source": "compat-bootstrap"
|
|
844
|
+
},
|
|
845
|
+
"architecture": {
|
|
846
|
+
"index_file": "docs/architecture/index.md",
|
|
847
|
+
"requests_dir": "docs/architecture/requests",
|
|
848
|
+
"snapshots_dir": "docs/architecture/snapshots",
|
|
849
|
+
"diagrams_dir": "docs/architecture/diagrams",
|
|
850
|
+
"domains_dir": "docs/architecture/domains",
|
|
851
|
+
"modules_dir": "docs/architecture/modules",
|
|
852
|
+
"diagram_skill": "mermaid",
|
|
853
|
+
"diagram_skill_source": "~/.codex/skills/mermaid",
|
|
854
|
+
"vendoring_policy": "do-not-vendor-diagram-skill-assets",
|
|
855
|
+
"freshness_gate": "advisory",
|
|
856
|
+
"gate_min_severity": "medium",
|
|
857
|
+
"pending_card_scope": "capability",
|
|
858
|
+
"pending_block_begin": "<!-- BEGIN ARCHITECTURE PENDING REQUESTS -->",
|
|
859
|
+
"pending_block_end": "<!-- END ARCHITECTURE PENDING REQUESTS -->",
|
|
860
|
+
"queue_script": "scripts/architecture-queue.sh",
|
|
861
|
+
"contract_block_begin": "<!-- BEGIN ARCHITECTURE CONTRACT -->",
|
|
862
|
+
"contract_block_end": "<!-- END ARCHITECTURE CONTRACT -->",
|
|
863
|
+
"rule": "hooks record architecture queue cards and sync controlled local context blocks; agents author semantic snapshots and diagrams"
|
|
864
|
+
},
|
|
865
|
+
"workstreams": {
|
|
866
|
+
"dir": "tasks/workstreams",
|
|
867
|
+
"scope": "capability",
|
|
868
|
+
"projection": "local-contract-active-pointer-and-current-slice",
|
|
869
|
+
"todo_projection": "tasks/todos.md",
|
|
870
|
+
"rule": "durable multi-session progress lives under tasks/workstreams/<domain>/<capability>; current plan execution lives in the plan Task Breakdown; tasks/todos.md records deferred goals only"
|
|
871
|
+
},
|
|
872
|
+
"information_lifecycle": {
|
|
873
|
+
"notes": {
|
|
874
|
+
"dir": "tasks/notes",
|
|
875
|
+
"purpose": "task-local implementation decisions, deviations, tradeoffs, and open questions",
|
|
876
|
+
"promotion": "archive on workflow close; promote only repeated or durable findings"
|
|
877
|
+
},
|
|
878
|
+
"evidence": {
|
|
879
|
+
"latest": ".ai/harness/checks/latest.json",
|
|
880
|
+
"snapshots_dir": ".ai/harness/runs",
|
|
881
|
+
"purpose": "raw verification records used to audit notes, reviews, and future promotion"
|
|
882
|
+
},
|
|
883
|
+
"assets": {
|
|
884
|
+
"sources": [".ai/harness/policy.json", ".ai/harness/workflow-contract.json", ".ai/hooks/", "scripts/", "docs/reference-configs/"],
|
|
885
|
+
"promotion_rule": "only promote patterns after verified reuse across tasks or fixtures"
|
|
886
|
+
},
|
|
887
|
+
"memory": {
|
|
888
|
+
"sources": ["docs/researches/", "tasks/lessons.md", "gbrain"],
|
|
889
|
+
"rule": "memory is advisory; current repo state and evidence override summaries"
|
|
890
|
+
},
|
|
891
|
+
"external_knowledge": {
|
|
892
|
+
"default_brain_path": "brain/<project>/*",
|
|
893
|
+
"project_path": "brain/<project>/*",
|
|
894
|
+
"manifest_file": ".ai/harness/brain-manifest.json",
|
|
895
|
+
"drift_check": "scripts/check-brain-manifest.sh",
|
|
896
|
+
"sync_script": "scripts/sync-brain-docs.sh",
|
|
897
|
+
"hook_trigger": "PostToolUse Edit|Write for manifest entries with sync.direction=repo-to-brain",
|
|
898
|
+
"rule": "external knowledge stores long-lived explanations, runbooks, and patterns only; repo-local contracts, hooks, scripts, checks, and evidence remain authoritative",
|
|
899
|
+
"sync_rule": "only explicitly opted-in repo-to-brain manifest entries may be written to the default brain vault; pointer-only externalized stubs remain check-only"
|
|
900
|
+
}
|
|
901
|
+
},
|
|
902
|
+
"handoff_resume": {
|
|
903
|
+
"resume_packet_file": ".ai/harness/handoff/resume.md",
|
|
904
|
+
"global_handoff_dir": "~/.codex/handoffs",
|
|
905
|
+
"auto_start_new_session": false
|
|
906
|
+
},
|
|
907
|
+
"plan_capture": {
|
|
908
|
+
"script": "scripts/capture-plan.sh",
|
|
909
|
+
"sources": ["codex-plan-mode", "waza-think", "forge-plan"],
|
|
910
|
+
"rule": "Codex Plan mode and Waza think planning should capture decision-complete plans into plans/plan-*.md; implementation approval then projects the active approved plan through scripts/plan-to-todo.sh"
|
|
911
|
+
},
|
|
912
|
+
"planning": {
|
|
913
|
+
"pending_orchestration_file": ".ai/harness/planning/pending.json",
|
|
914
|
+
"source_of_truth": "transient host planning bridge only; plans/ and .ai/harness/active-plan remain authoritative"
|
|
915
|
+
},
|
|
916
|
+
"guards": {
|
|
917
|
+
"edit_plan_gate": "advice",
|
|
918
|
+
"edit_plan_gate_modes": ["enforce", "advice", "off"],
|
|
919
|
+
"rule": "pre-edit-guard advises when implementation lacks an active plan; execution remains available unless a real safety boundary blocks it"
|
|
920
|
+
},
|
|
921
|
+
"sidecar_research": {
|
|
922
|
+
"default": true,
|
|
923
|
+
"output_dir": "docs/researches",
|
|
924
|
+
"preferred_runners": ["subagent", "codex exec --json", "main-thread trace"],
|
|
925
|
+
"spawn_decision": "main agent decides from task breadth, context impact, raw-log volume, and callable runner availability; do not ask the user for spawn confirmation",
|
|
926
|
+
"fallback_runner": "main-thread trace",
|
|
927
|
+
"main_thread_policy": "if spawning is not worthwhile or no sidecar runner is callable, perform bounded research in the main thread; consume conclusions and evidence paths, not raw logs"
|
|
928
|
+
},
|
|
929
|
+
"documentation": {
|
|
930
|
+
"profile": "minimal-agentic",
|
|
931
|
+
"required": ["docs/spec.md", "docs/architecture/index.md"],
|
|
932
|
+
"on_demand": ["docs/brief.md", "docs/tech-stack.md", "docs/decisions.md", "docs/architecture.md", "docs/packages.md"],
|
|
933
|
+
"reference_configs": ["harness-overview.md", "agentic-development-flow.md", "external-tooling.md", "sprint-contracts.md", "handoff-protocol.md", "document-generation.md", "global-working-rules.md"],
|
|
934
|
+
"reference_source": "user-level-runtime-docs",
|
|
935
|
+
"reference_stub_marker": "<!-- forge: reference-config-stub v1 -->",
|
|
936
|
+
"reference_resolver": "forge docs path <doc-id>",
|
|
937
|
+
"rule": "create optional docs only when the agent has concrete repo evidence or the user asks; docs/reference-configs contains repo-local pointer stubs while full generic runtime docs live in the user-level/package forge install"
|
|
938
|
+
},
|
|
939
|
+
"lsp_profiles": {
|
|
940
|
+
"default": "typescript-lsp",
|
|
941
|
+
"selection": "functional-block-first",
|
|
942
|
+
"rule": "use block-level LSP/tooling hints before broad repo assumptions"
|
|
943
|
+
},
|
|
944
|
+
"worktree_strategy": {
|
|
945
|
+
"auto_on_conflict": true,
|
|
946
|
+
"auto_for_contract_tasks": true,
|
|
947
|
+
"branch_prefix": "codex/",
|
|
948
|
+
"base_branch": "main",
|
|
949
|
+
"worktree_dir_template": "../{{repo}}-wt-{{slug}}",
|
|
950
|
+
"start_script": "scripts/contract-worktree.sh start --plan <plan-file>",
|
|
951
|
+
"finish_script": "scripts/contract-worktree.sh finish",
|
|
952
|
+
"cleanup_script": "scripts/contract-worktree.sh cleanup --slug <slug>",
|
|
953
|
+
"conflict_signals": [
|
|
954
|
+
"dirty_worktree_overlaps_task_files",
|
|
955
|
+
"current_branch_not_suitable_for_task",
|
|
956
|
+
"existing_changes_unrelated_but_would_block_review",
|
|
957
|
+
"task_requires_clean_validation_surface"
|
|
958
|
+
],
|
|
959
|
+
"validation_route": "waza:check",
|
|
960
|
+
"merge_back": {
|
|
961
|
+
"target": "main",
|
|
962
|
+
"requires_clean_check": true,
|
|
963
|
+
"preserve_unrelated_changes": true
|
|
964
|
+
}
|
|
965
|
+
},
|
|
966
|
+
"upgrade": {
|
|
967
|
+
"strategy_version": 1,
|
|
968
|
+
"supported_legacy_versions": ["pre-tasks-first", "tasks-first-without-contract-manifest", "current-v1"],
|
|
969
|
+
"action_classes": {
|
|
970
|
+
"preserve": "keep user-authored hooks, ignored reference material, private operations state, secrets, and local env files unchanged",
|
|
971
|
+
"archive": "move user-authored legacy workflow documents or checklists into archive/research surfaces before refresh",
|
|
972
|
+
"reconfigure": "merge managed config defaults without overwriting explicit repo overrides",
|
|
973
|
+
"remove": "delete only workflow-contract actions marked ownership=known_generated"
|
|
974
|
+
},
|
|
975
|
+
"cleanup": {
|
|
976
|
+
"source": ".ai/harness/workflow-contract.json#migrations.upgrade.actions",
|
|
977
|
+
"remove_only_ownership": "known_generated",
|
|
978
|
+
"unknown_files": "preserve-or-archive",
|
|
979
|
+
"custom_hooks": "preserve",
|
|
980
|
+
"ignored_reference_material": "preserve",
|
|
981
|
+
"local_operations_state": "preserve",
|
|
982
|
+
"local_secrets": "preserve"
|
|
983
|
+
},
|
|
984
|
+
"reporting": {
|
|
985
|
+
"inspector_field": "upgrade_plan",
|
|
986
|
+
"dry_run_required": true
|
|
987
|
+
}
|
|
988
|
+
},
|
|
989
|
+
"profiles": {
|
|
990
|
+
"orchestration": "shared-long-running-harness",
|
|
991
|
+
"evaluation": "browser-qa",
|
|
992
|
+
"handoff": "artifact-aware",
|
|
993
|
+
"recovery": "hybrid",
|
|
994
|
+
"state": "file-backed"
|
|
995
|
+
},
|
|
996
|
+
"external_tooling": {
|
|
997
|
+
"routing": {
|
|
998
|
+
"complex": "gstack",
|
|
999
|
+
"simple": "waza",
|
|
1000
|
+
"knowledge": "gbrain"
|
|
1001
|
+
},
|
|
1002
|
+
"hosts": [
|
|
1003
|
+
"claude-code",
|
|
1004
|
+
"codex"
|
|
1005
|
+
],
|
|
1006
|
+
"mode": "agent-readiness-required",
|
|
1007
|
+
"detection": "init-migrate",
|
|
1008
|
+
"readiness_gate": "scripts/check-agent-tooling.sh --host codex --strict-readiness",
|
|
1009
|
+
"waza": {
|
|
1010
|
+
"source_repo": "tw93/Waza",
|
|
1011
|
+
"source_url": "https://github.com/tw93/Waza.git",
|
|
1012
|
+
"managed_skills": ["think", "hunt", "check", "health"],
|
|
1013
|
+
"primary_host": "codex",
|
|
1014
|
+
"codex_primary_path": "~/.codex/skills",
|
|
1015
|
+
"staging_cache_path": "~/.agents/skills",
|
|
1016
|
+
"sync_mode": "stage-upstream-then-copy-to-codex",
|
|
1017
|
+
"host_drift_policy": "report-per-host-version-staging-and-upstream-drift"
|
|
1018
|
+
},
|
|
1019
|
+
"codex_automation_profile": {
|
|
1020
|
+
"required_skills": ["health", "check", "mermaid"],
|
|
1021
|
+
"optional_skills": [],
|
|
1022
|
+
"mode": "codex-runtime-reference",
|
|
1023
|
+
"source": "~/.codex/skills",
|
|
1024
|
+
"routes": {
|
|
1025
|
+
"workflow_health": "waza:health",
|
|
1026
|
+
"review_gate": "waza:check",
|
|
1027
|
+
"architecture_diagram": "mermaid"
|
|
1028
|
+
},
|
|
1029
|
+
"vendoring_policy": "do-not-vendor-skill-body"
|
|
1030
|
+
},
|
|
1031
|
+
"diagram_design": {
|
|
1032
|
+
"skill_name": "mermaid",
|
|
1033
|
+
"primary_host": "codex",
|
|
1034
|
+
"codex_primary_path": "~/.codex/skills/mermaid",
|
|
1035
|
+
"sync_mode": "external-installed-skill",
|
|
1036
|
+
"vendoring_policy": "do-not-vendor"
|
|
1037
|
+
},
|
|
1038
|
+
"gbrain": {
|
|
1039
|
+
"mcp": "candidate-disabled"
|
|
1040
|
+
},
|
|
1041
|
+
"codegraph": {
|
|
1042
|
+
"package": "@colbymchenry/codegraph",
|
|
1043
|
+
"primary_host": "both",
|
|
1044
|
+
"install_mode": "target-aware-mcp",
|
|
1045
|
+
"codex_config_path": "~/.codex/config.toml",
|
|
1046
|
+
"claude_config_path": "~/.claude.json",
|
|
1047
|
+
"index_dir": ".codegraph",
|
|
1048
|
+
"readiness": "required-for-agent-code-navigation",
|
|
1049
|
+
"hook_policy": "do-not-block-hooks",
|
|
1050
|
+
"install_command": "bun add -g @colbymchenry/codegraph && forge tools configure codegraph --target codex --location global",
|
|
1051
|
+
"project_init_command": "codegraph init -i .",
|
|
1052
|
+
"sync_command": "codegraph sync .",
|
|
1053
|
+
"vendoring_policy": "do-not-add-package-dependency"
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"agentic_development": {
|
|
1057
|
+
"routing": {
|
|
1058
|
+
"product_discovery": "gstack:office-hours",
|
|
1059
|
+
"complex_engineering_plan": "gstack:plan-eng-review",
|
|
1060
|
+
"design_plan": "gstack:plan-design-review",
|
|
1061
|
+
"small_or_medium_plan": "waza:think",
|
|
1062
|
+
"bug_or_regression": "waza:hunt",
|
|
1063
|
+
"post_implementation_review": "waza:check"
|
|
1064
|
+
},
|
|
1065
|
+
"due_diligence": {
|
|
1066
|
+
"levels": ["P1_GLOBAL_ARCHITECTURE", "P2_DATA_FLOW_TRACE", "P3_DESIGN_DECISION"],
|
|
1067
|
+
"explicit_report_required_for": ["plan-eng-review", "hunt", "risky_refactor", "deployment", "auth_payment_data", "shared_contract"]
|
|
1068
|
+
}
|
|
1069
|
+
},
|
|
1070
|
+
"enforcement": {
|
|
1071
|
+
"worktree_guard": "warn-by-default",
|
|
1072
|
+
"verification_gate": "contract-and-review",
|
|
1073
|
+
"completion_requires_checks": true
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
POLICY_EOF
|
|
1077
|
+
fi
|
|
1078
|
+
|
|
1079
|
+
if [[ ! -f ".ai/harness/brain-manifest.json" ]]; then
|
|
1080
|
+
cat > ".ai/harness/brain-manifest.json" <<'BRAIN_MANIFEST_EOF'
|
|
1081
|
+
{
|
|
1082
|
+
"version": 1,
|
|
1083
|
+
"project": "<project>",
|
|
1084
|
+
"mode": "repo-contract-external-knowledge",
|
|
1085
|
+
"default_brain_path": "brain/<project>/*",
|
|
1086
|
+
"rules": [
|
|
1087
|
+
"repo-local contracts, hooks, scripts, checks, and evidence remain authoritative",
|
|
1088
|
+
"default brain stores long-lived explanations, runbooks, decisions, references, and patterns",
|
|
1089
|
+
"hook runtime may sync explicitly opted-in repo-to-brain entries only; it must not query gbrain, MCP, or unregistered default brain paths"
|
|
1090
|
+
],
|
|
1091
|
+
"entries": []
|
|
1092
|
+
}
|
|
1093
|
+
BRAIN_MANIFEST_EOF
|
|
1094
|
+
fi
|
|
1095
|
+
|
|
1096
|
+
if [[ ! -f ".ai/context/context-map.json" ]]; then
|
|
1097
|
+
cat > ".ai/context/context-map.json" <<'CONTEXT_EOF'
|
|
1098
|
+
{
|
|
1099
|
+
"version": 1,
|
|
1100
|
+
"profile": "stable-root-progressive-subdir",
|
|
1101
|
+
"functional_block_selector": {
|
|
1102
|
+
"script": "scripts/select-agent-context-blocks.sh",
|
|
1103
|
+
"config_file": ".ai/context/agent-context-blocks.txt",
|
|
1104
|
+
"env": "FORGE_CONTEXT_BLOCKS",
|
|
1105
|
+
"rule": "compatibility selector; capability registry is the source of truth"
|
|
1106
|
+
},
|
|
1107
|
+
"lsp_profiles": {
|
|
1108
|
+
"default": "typescript-lsp",
|
|
1109
|
+
"selection": "functional-block-first"
|
|
1110
|
+
},
|
|
1111
|
+
"root_context_files": [
|
|
1112
|
+
"CLAUDE.md",
|
|
1113
|
+
"AGENTS.md",
|
|
1114
|
+
"docs/spec.md",
|
|
1115
|
+
"tasks/current.md",
|
|
1116
|
+
"tasks/todos.md",
|
|
1117
|
+
"tasks/lessons.md",
|
|
1118
|
+
".ai/context/capabilities.json",
|
|
1119
|
+
".ai/harness/policy.json"
|
|
1120
|
+
],
|
|
1121
|
+
"discoverable_contexts": [
|
|
1122
|
+
{
|
|
1123
|
+
"path": "docs/reference-configs/*.md",
|
|
1124
|
+
"priority": "low",
|
|
1125
|
+
"char_budget": 900,
|
|
1126
|
+
"purpose": "deep-doc"
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
"path": "tasks/workstreams/**/*.md",
|
|
1130
|
+
"priority": "high",
|
|
1131
|
+
"char_budget": 1200,
|
|
1132
|
+
"purpose": "capability-workstream"
|
|
1133
|
+
}
|
|
1134
|
+
],
|
|
1135
|
+
"budgets": {
|
|
1136
|
+
"root_total_chars": 12000,
|
|
1137
|
+
"per_discoverable_file_chars": 1200
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
CONTEXT_EOF
|
|
1141
|
+
fi
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
slug=""
|
|
1145
|
+
title=""
|
|
1146
|
+
new_plan=0
|
|
1147
|
+
|
|
1148
|
+
while [[ $# -gt 0 ]]; do
|
|
1149
|
+
case "$1" in
|
|
1150
|
+
--new-plan)
|
|
1151
|
+
new_plan=1
|
|
1152
|
+
shift
|
|
1153
|
+
;;
|
|
1154
|
+
--slug)
|
|
1155
|
+
[[ -n "${2:-}" ]] || { echo "Error: --slug requires a value" >&2; usage; exit 1; }
|
|
1156
|
+
slug="$2"
|
|
1157
|
+
shift 2
|
|
1158
|
+
;;
|
|
1159
|
+
--title)
|
|
1160
|
+
[[ -n "${2:-}" ]] || { echo "Error: --title requires a value" >&2; usage; exit 1; }
|
|
1161
|
+
title="$2"
|
|
1162
|
+
shift 2
|
|
1163
|
+
;;
|
|
1164
|
+
--help|-h)
|
|
1165
|
+
usage
|
|
1166
|
+
exit 0
|
|
1167
|
+
;;
|
|
1168
|
+
*)
|
|
1169
|
+
echo "Unknown argument: $1" >&2
|
|
1170
|
+
usage
|
|
1171
|
+
exit 1
|
|
1172
|
+
;;
|
|
1173
|
+
esac
|
|
1174
|
+
done
|
|
1175
|
+
|
|
1176
|
+
ensure_templates
|
|
1177
|
+
ensure_auxiliary_files
|
|
1178
|
+
ensure_idle_todo
|
|
1179
|
+
ensure_current_status_snapshot
|
|
1180
|
+
|
|
1181
|
+
active_plan="$(get_active_plan || true)"
|
|
1182
|
+
if [[ -n "$active_plan" && "$new_plan" -eq 0 ]]; then
|
|
1183
|
+
echo "Workflow ready. Active plan: $active_plan"
|
|
1184
|
+
exit 0
|
|
1185
|
+
fi
|
|
1186
|
+
|
|
1187
|
+
if [[ ! -f "docs/spec.md" ]]; then
|
|
1188
|
+
if [[ -x "scripts/new-spec.sh" ]]; then
|
|
1189
|
+
bash "scripts/new-spec.sh"
|
|
1190
|
+
fi
|
|
1191
|
+
fi
|
|
1192
|
+
|
|
1193
|
+
if [[ -z "$slug" ]]; then
|
|
1194
|
+
if [[ "$new_plan" -eq 1 ]]; then
|
|
1195
|
+
echo "--new-plan requires --slug" >&2
|
|
1196
|
+
exit 1
|
|
1197
|
+
fi
|
|
1198
|
+
echo "Workflow ready. No active plan present."
|
|
1199
|
+
echo "Create one with: bash scripts/ensure-task-workflow.sh --slug <slug> --title <title>"
|
|
1200
|
+
exit 0
|
|
1201
|
+
fi
|
|
1202
|
+
|
|
1203
|
+
slug="$(normalize_slug "$slug")"
|
|
1204
|
+
if [[ -z "$slug" ]]; then
|
|
1205
|
+
echo "Slug is empty after normalization" >&2
|
|
1206
|
+
exit 1
|
|
1207
|
+
fi
|
|
1208
|
+
|
|
1209
|
+
if [[ -z "$title" ]]; then
|
|
1210
|
+
title="$slug"
|
|
1211
|
+
fi
|
|
1212
|
+
|
|
1213
|
+
if [[ -x "scripts/new-plan.sh" ]]; then
|
|
1214
|
+
bash "scripts/new-plan.sh" --slug "$slug" --title "$title"
|
|
1215
|
+
else
|
|
1216
|
+
echo "Missing scripts/new-plan.sh" >&2
|
|
1217
|
+
exit 1
|
|
1218
|
+
fi
|