forge-workflow 0.0.9 → 0.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/rules/{greptile-review-process.md → review-process.md} +56 -41
- package/.claude/scripts/{greptile-resolve.sh → review-resolve.sh} +13 -3
- package/.cursor/rules/permissions-guidance.mdc +2 -2
- package/.forge/hooks/check-tdd.js +3 -0
- package/.forge/hooks/forge-native-hook.js +245 -0
- package/.forge/protected-paths.yaml +157 -0
- package/AGENTS.md +151 -61
- package/CHANGELOG.md +681 -0
- package/CLAUDE.md +9 -106
- package/QUICKSTART.md +171 -0
- package/README.md +271 -363
- package/bin/forge-cmd.js +120 -9
- package/bin/forge-preflight.js +26 -5
- package/bin/forge.js +466 -489
- package/docs/INDEX.md +93 -0
- package/docs/PROJECT_DESIGN.md +685 -0
- package/docs/architecture/index.md +66 -0
- package/docs/architecture/notes/README.md +35 -0
- package/docs/architecture/subsystems/README.md +46 -0
- package/docs/{TOOLCHAIN.md → forge/TOOLCHAIN.md} +56 -47
- package/docs/forge/VALIDATION.md +82 -0
- package/docs/{AGENT_INSTALL_PROMPT.md → guides/AGENT_INSTALL_PROMPT.md} +3 -3
- package/docs/guides/BEADS_GITHUB_SYNC.md +32 -0
- package/docs/{ENHANCED_ONBOARDING.md → guides/ENHANCED_ONBOARDING.md} +16 -12
- package/docs/guides/GREPTILE_SETUP.md +46 -0
- package/docs/guides/MANUAL_REVIEW_GUIDE.md +58 -0
- package/docs/guides/MIGRATION.md +56 -0
- package/docs/guides/SETUP.md +118 -0
- package/docs/guides/SUPPORT.md +185 -0
- package/docs/guides/WORKFLOW_TEMPLATES.md +74 -0
- package/docs/guides/memory-backends.md +183 -0
- package/docs/reference/ADAPTERS.md +128 -0
- package/docs/reference/AGENT_SKILL_PARITY.md +175 -0
- package/docs/reference/COMMANDS.md +205 -0
- package/docs/reference/DECISION_DRIFT_GUARDS.md +97 -0
- package/docs/{EXAMPLES.md → reference/EXAMPLES.md} +7 -5
- package/docs/reference/FORGE_KERNEL_STORAGE_MODEL.md +135 -0
- package/docs/reference/HERMES_INTEGRATION.md +118 -0
- package/docs/reference/INSIGHTS_RECAP.md +63 -0
- package/docs/reference/INSTALL.md +164 -0
- package/docs/reference/KERNEL_TAXONOMY_VALIDATION.md +161 -0
- package/docs/reference/PROTECTED_PATH_MANIFEST.md +25 -0
- package/docs/reference/RELEASE.md +68 -0
- package/docs/reference/RESEARCH_TEMPLATE.md +292 -0
- package/docs/{ROADMAP.md → reference/ROADMAP.md} +12 -9
- package/docs/reference/SKILLS.md +35 -0
- package/docs/reference/STATUS_BOARD.md +80 -0
- package/docs/reference/TEMPLATES.md +106 -0
- package/docs/reference/TOOLCHAIN.md +658 -0
- package/docs/reference/VALIDATION.md +82 -0
- package/docs/reference/agent-permissions.md +169 -0
- package/docs/reference/beads-to-kernel-migration-ux.md +61 -0
- package/docs/reference/control-plane-guarantees.md +125 -0
- package/docs/reference/dependency-chain.md +331 -0
- package/docs/reference/forge-kernel-issue-command-contract.md +161 -0
- package/docs/reference/forge-kernel-schema.md +72 -0
- package/docs/reference/kernel-conflict-evaluators.md +27 -0
- package/docs/reference/patch-md-format.md +77 -0
- package/docs/reference/protected-state-surfaces.md +59 -0
- package/docs/reference/shepherd.md +115 -0
- package/docs/reference/superpowers-analysis.md +320 -0
- package/docs/reference/superpowers-integration-options.md +404 -0
- package/docs/reference/test-environment.md +519 -0
- package/docs/reference/upgrade-safety.md +59 -0
- package/lefthook.yml +18 -0
- package/lib/adapter-cli.js +307 -0
- package/lib/adapters/beads-issue-adapter.js +127 -0
- package/lib/adapters/beads-kernel-compat.js +1042 -0
- package/lib/adapters/greptile-review-adapter.js +141 -0
- package/lib/adapters/kernel-issue-adapter.js +101 -0
- package/lib/adapters/pr-state-adapter.js +484 -0
- package/lib/adoption-profiles.js +126 -0
- package/lib/agents/README.md +2 -6
- package/lib/agents/claude.plugin.json +3 -8
- package/lib/agents/codex.plugin.json +9 -1
- package/lib/agents/cursor.plugin.json +2 -6
- package/lib/agents/hermes.plugin.json +22 -0
- package/lib/agents-config.js +39 -1236
- package/lib/audit-evidence.js +282 -0
- package/lib/beads-setup.js +225 -28
- package/lib/beads-sync-scaffold.js +36 -107
- package/lib/codex-skills.js +51 -1
- package/lib/commands/_issue.js +744 -70
- package/lib/commands/_manifest.js +91 -0
- package/lib/commands/_registry.js +85 -34
- package/lib/commands/_resolve-command-opts.js +261 -0
- package/lib/commands/_serve-security.js +270 -0
- package/lib/commands/adapter.js +12 -0
- package/lib/commands/add.js +118 -0
- package/lib/commands/audit.js +70 -0
- package/lib/commands/blocked.js +5 -0
- package/lib/commands/board.js +64 -0
- package/lib/commands/claim.js +21 -2
- package/lib/commands/claims.js +7 -0
- package/lib/commands/clean.js +485 -75
- package/lib/commands/close.js +2 -2
- package/lib/commands/comment.js +5 -0
- package/lib/commands/control.js +148 -0
- package/lib/commands/create.js +2 -2
- package/lib/commands/dev.js +185 -7
- package/lib/commands/doc-gate.js +336 -0
- package/lib/commands/doctor.js +156 -0
- package/lib/commands/explain.js +15 -0
- package/lib/commands/export.js +237 -0
- package/lib/commands/gate.js +192 -0
- package/lib/commands/hooks.js +242 -0
- package/lib/commands/inbox.js +118 -0
- package/lib/commands/init.js +598 -0
- package/lib/commands/insights.js +79 -0
- package/lib/commands/issue.js +12 -1
- package/lib/commands/issues.js +66 -0
- package/lib/commands/lint.js +5 -0
- package/lib/commands/list.js +2 -2
- package/lib/commands/merge.js +312 -0
- package/lib/commands/migrate.js +523 -0
- package/lib/commands/new.js +12 -0
- package/lib/commands/options.js +241 -0
- package/lib/commands/orient.js +13 -0
- package/lib/commands/orphans.js +5 -0
- package/lib/commands/patch.js +67 -0
- package/lib/commands/plan.js +436 -24
- package/lib/commands/preflight.js +211 -0
- package/lib/commands/prime.js +13 -0
- package/lib/commands/push.js +69 -2
- package/lib/commands/ready.js +2 -2
- package/lib/commands/recall.js +116 -0
- package/lib/commands/recap.js +61 -0
- package/lib/commands/recommend.js +22 -2
- package/lib/commands/release.js +91 -0
- package/lib/commands/remember.js +74 -0
- package/lib/commands/role.js +99 -0
- package/lib/commands/serve.js +581 -0
- package/lib/commands/setup.js +851 -979
- package/lib/commands/shepherd.js +436 -0
- package/lib/commands/ship.js +23 -1
- package/lib/commands/show.js +2 -2
- package/lib/commands/stage.js +192 -0
- package/lib/commands/stale.js +5 -0
- package/lib/commands/status.js +329 -11
- package/lib/commands/sync.js +34 -46
- package/lib/commands/team.js +15 -2
- package/lib/commands/test.js +58 -7
- package/lib/commands/update.js +2 -2
- package/lib/commands/upgrade.js +47 -0
- package/lib/commands/validate.js +56 -25
- package/lib/commands/worktree.js +308 -128
- package/lib/config-writer.js +202 -0
- package/lib/control-plane.js +236 -0
- package/lib/core/runtime-graph.js +946 -0
- package/lib/dep-guard/keyword-ripple.js +184 -0
- package/lib/deprecated-sync-cleanup.js +362 -0
- package/lib/detect-agent.js +2 -28
- package/lib/detect-worktree.js +42 -17
- package/lib/doc-gate/declaration.js +177 -0
- package/lib/doc-gate/detect.js +289 -0
- package/lib/doc-gate/gate.js +375 -0
- package/lib/doc-gate/okf-config.js +128 -0
- package/lib/doc-gate/okf.js +429 -0
- package/lib/docs-command.js +1161 -6
- package/lib/forge-issues.js +697 -0
- package/lib/forge-lock.js +262 -0
- package/lib/gate-events.js +193 -0
- package/lib/global-flags.js +74 -0
- package/lib/greptile-match.js +7 -63
- package/lib/harness-capability-matrix.js +380 -0
- package/lib/hook-global-installer.js +347 -0
- package/lib/hook-renderer.js +451 -0
- package/lib/inbox.js +391 -0
- package/lib/insights.js +397 -0
- package/lib/issue-adapter.js +156 -0
- package/lib/issue-backend.js +145 -0
- package/lib/issue-render.js +220 -0
- package/lib/issue-sync/authority.js +100 -0
- package/lib/issue-sync/github-pull.js +184 -0
- package/lib/issue-sync/import-primitives.js +98 -0
- package/lib/issue-sync/legacy-link-bridge.js +436 -0
- package/lib/issue-sync/link-store.js +292 -0
- package/lib/issue-sync/project-github.js +123 -0
- package/lib/issue-sync/reconcile.js +195 -0
- package/lib/issue-sync/schema.js +126 -0
- package/lib/kernel/backing-issue.js +305 -0
- package/lib/kernel/broker.js +1218 -0
- package/lib/kernel/cli-broker-factory.js +130 -0
- package/lib/kernel/conflict-signal.js +82 -0
- package/lib/kernel/evaluators.js +195 -0
- package/lib/kernel/fs-class.js +495 -0
- package/lib/kernel/issue-command-contract.js +559 -0
- package/lib/kernel/issue-id-resolver.js +186 -0
- package/lib/kernel/lease-enforcer.js +158 -0
- package/lib/kernel/migrations.js +333 -0
- package/lib/kernel/planning-buckets-schema.js +109 -0
- package/lib/kernel/projection-jsonl-writer.js +450 -0
- package/lib/kernel/readiness-model.js +329 -0
- package/lib/kernel/schema.js +356 -0
- package/lib/kernel/sqlite-driver.js +2504 -0
- package/lib/kernel/taxonomy-validator.js +394 -0
- package/lib/lefthook-check.js +8 -4
- package/lib/lefthook-wiring.js +413 -0
- package/lib/mcp-config-renderer.js +288 -0
- package/lib/memory/graphiti-mcp.js +106 -0
- package/lib/memory/router.js +387 -0
- package/lib/memory/typed-api.js +102 -0
- package/lib/memory-digest.js +195 -0
- package/lib/merge-rules.js +395 -0
- package/lib/migrate-dry-run.js +466 -0
- package/lib/orientation.js +863 -0
- package/lib/package-manager-remediation.js +103 -0
- package/lib/package-root.js +381 -0
- package/lib/patch-intent.js +890 -0
- package/lib/plugin-catalog.js +3 -4
- package/lib/plugin-manager.js +0 -5
- package/lib/pr-bundle.js +186 -0
- package/lib/pr-monitor/differ.js +195 -0
- package/lib/pr-monitor/events.js +0 -0
- package/lib/pr-monitor/gather.js +124 -0
- package/lib/pr-monitor/journal.js +299 -0
- package/lib/pr-monitor/monitor.js +146 -0
- package/lib/pr-monitor/render-sticky.js +157 -0
- package/lib/pr-monitor/watch-lifecycle.js +95 -0
- package/lib/pr-monitor/watch.js +247 -0
- package/lib/pr-pull.js +1273 -0
- package/lib/pr-shepherd.js +494 -0
- package/lib/pr-state-validator.js +59 -0
- package/lib/preflight/gates.js +237 -0
- package/lib/preflight/runner.js +116 -0
- package/lib/project-discovery.js +0 -53
- package/lib/project-memory.js +166 -0
- package/lib/protected-path-manifest.js +281 -0
- package/lib/protected-state-surfaces.js +387 -0
- package/lib/release-readiness.js +2089 -0
- package/lib/reset.js +59 -45
- package/lib/review-adapter.js +68 -0
- package/lib/rules-sync.js +260 -0
- package/lib/runtime-health.js +332 -23
- package/lib/safety-config-renderer.js +268 -0
- package/lib/setup-action-log.js +1 -7
- package/lib/setup.js +27 -65
- package/lib/shell-utils.js +76 -6
- package/lib/skills-sync.js +330 -0
- package/lib/smart-status/conflicts.js +205 -0
- package/lib/smart-status/scoring.js +191 -0
- package/lib/status/beads-snapshot.js +145 -0
- package/lib/status/presenter.js +216 -0
- package/lib/status/snapshot.js +186 -0
- package/lib/sync-backend.js +202 -0
- package/lib/untrusted-content.js +52 -0
- package/lib/upgrade-safety.js +199 -0
- package/lib/workflow/enforce-stage.js +298 -47
- package/lib/workflow/stage-transition.js +115 -0
- package/lib/workflow/stages.js +30 -6
- package/lib/workflow/state-manager.js +159 -14
- package/lib/workflow/state.js +23 -1
- package/lib/workflow-profiles.js +17 -5
- package/package.json +46 -36
- package/rules/documentation.md +19 -0
- package/rules/kernel-tracking.md +26 -0
- package/rules/security.md +22 -0
- package/rules/tdd.md +20 -0
- package/rules/workflow.md +27 -0
- package/scripts/auto-backing-issue.js +47 -0
- package/scripts/beads-context.sh +165 -22
- package/scripts/beads-migrate-to-dolt.sh +7 -0
- package/scripts/beads-upgrade-smoke.sh +284 -0
- package/scripts/behavioral-judge.sh +115 -11
- package/scripts/benchmark.js +349 -63
- package/scripts/bootstrap-windows-tools.sh +78 -0
- package/scripts/branch-protection.js +2 -3
- package/scripts/check-agents.js +34 -137
- package/scripts/commitlint.js +3 -1
- package/scripts/conflict-detect.sh +3 -0
- package/scripts/dep-guard-analyze.js +52 -17
- package/scripts/dep-guard-keyword-ripple.js +29 -0
- package/scripts/dep-guard-render-review.js +86 -0
- package/scripts/dep-guard.sh +64 -232
- package/scripts/file-index.sh +3 -0
- package/scripts/forge-team/lib/claim.sh +34 -18
- package/scripts/forge-team/lib/dashboard.sh +61 -86
- package/scripts/forge-team/lib/epic.sh +99 -263
- package/scripts/forge-team/lib/hooks.sh +26 -28
- package/scripts/forge-team/lib/identity.sh +4 -4
- package/scripts/forge-team/lib/sync-github.sh +144 -47
- package/scripts/forge-team/lib/verify.sh +93 -83
- package/scripts/forge-team/lib/workload.sh +41 -65
- package/scripts/forge-team/tests/claim.test.sh +25 -19
- package/scripts/forge-team/tests/dashboard.test.sh +31 -46
- package/scripts/forge-team/tests/epic.test.sh +52 -71
- package/scripts/forge-team/tests/hooks.test.sh +38 -50
- package/scripts/forge-team/tests/identity.test.sh +3 -3
- package/scripts/forge-team/tests/integration.test.sh +44 -66
- package/scripts/forge-team/tests/sync-github.test.sh +183 -79
- package/scripts/forge-team/tests/verify.test.sh +37 -46
- package/scripts/forge-team/tests/workflow-integration.test.sh +4 -4
- package/scripts/forge-team/tests/workload.test.sh +32 -66
- package/scripts/gen-command-manifest.js +153 -0
- package/scripts/gen-embedded-assets.mjs +129 -0
- package/scripts/install.ps1 +139 -0
- package/scripts/install.sh +268 -0
- package/scripts/lib/beads-migrate-to-dolt.mjs +503 -0
- package/scripts/lib/release-asset.mjs +84 -0
- package/scripts/parity-check.mjs +145 -0
- package/scripts/parity-check.test.mjs +58 -0
- package/scripts/pin-agentic-workflow-images.js +112 -0
- package/scripts/pr-coordinator.sh +3 -0
- package/scripts/preflight-sonar.eslint.config.mjs +44 -0
- package/scripts/preflight.sh +108 -0
- package/scripts/protected-state-check.js +104 -0
- package/scripts/smart-status-score.js +31 -0
- package/scripts/smart-status-sessions.js +51 -0
- package/scripts/smart-status.sh +117 -369
- package/scripts/spikes/config-race-bench.js +111 -0
- package/scripts/spikes/harness-capability-matrix.js +13 -0
- package/scripts/spikes/patch-anchor-stability-bench.js +125 -0
- package/scripts/spikes/protected-path-manifest.js +20 -0
- package/scripts/spikes/skill-auto-invoke-parity.js +292 -0
- package/scripts/sync-agent-skills.js +62 -0
- package/scripts/sync-agentic-workflow.js +48 -0
- package/scripts/sync-utils.sh +3 -0
- package/scripts/test-ci-shard.js +251 -0
- package/scripts/test-dashboard.js +188 -52
- package/scripts/test-full-suite.js +186 -0
- package/scripts/test-profile.js +278 -0
- package/scripts/test.js +302 -28
- package/scripts/validate.js +143 -0
- package/scripts/validate.sh +18 -1
- package/skills/claim-safety/SKILL.md +102 -0
- package/skills/claim-safety/evals/evals.json +46 -0
- package/{.github/prompts/dev.prompt.md → skills/dev/SKILL.md} +46 -52
- package/skills/dev/evals/evals.json +50 -0
- package/skills/hermes-forge/SKILL.md +185 -0
- package/skills/hermes-forge/evals/evals.json +46 -0
- package/skills/issue-basics/SKILL.md +111 -0
- package/skills/issue-basics/evals/evals.json +46 -0
- package/skills/kernel/SKILL.md +166 -0
- package/skills/kernel/evals/evals.json +50 -0
- package/skills/memory/SKILL.md +102 -0
- package/skills/parallel-deep-research/SKILL.md +14 -11
- package/skills/parallel-deep-research/evals/evals.json +11 -27
- package/{.github/prompts/plan.prompt.md → skills/plan/SKILL.md} +134 -159
- package/skills/plan/evals/evals.json +42 -0
- package/skills/research/SKILL.md +195 -0
- package/skills/research/evals/evals.json +42 -0
- package/{.github/prompts/review.prompt.md → skills/review/SKILL.md} +98 -62
- package/skills/review/evals/evals.json +42 -0
- package/skills/rollback/SKILL.md +110 -0
- package/skills/rollback/evals/evals.json +46 -0
- package/skills/rollback/references/methods.md +204 -0
- package/{.cursor/commands/rollback.md → skills/rollback/references/workflow-integration.md} +10 -284
- package/skills/shepherd/SKILL.md +66 -0
- package/skills/shepherd/evals/evals.json +42 -0
- package/skills/ship/SKILL.md +251 -0
- package/skills/ship/evals/evals.json +42 -0
- package/skills/smith/SKILL.md +142 -0
- package/skills/smith/evals/evals.json +46 -0
- package/skills/smith/references/autonomy-and-gates.md +94 -0
- package/{.github/prompts/sonarcloud.prompt.md → skills/sonarcloud/SKILL.md} +14 -3
- package/skills/sonarcloud/evals/evals.json +46 -0
- package/skills/sonarcloud-analysis/SKILL.md +18 -13
- package/skills/sonarcloud-analysis/evals/evals.json +11 -15
- package/skills/status/SKILL.md +102 -0
- package/skills/status/evals/evals.json +50 -0
- package/skills/triage-ready/SKILL.md +121 -0
- package/skills/triage-ready/evals/evals.json +42 -0
- package/{.github/prompts/validate.prompt.md → skills/validate/SKILL.md} +52 -29
- package/skills/validate/evals/evals.json +42 -0
- package/skills/verify/SKILL.md +299 -0
- package/skills/verify/evals/evals.json +50 -0
- package/.claude/commands/dev.md +0 -345
- package/.claude/commands/plan.md +0 -566
- package/.claude/commands/premerge.md +0 -186
- package/.claude/commands/research.md +0 -42
- package/.claude/commands/review.md +0 -451
- package/.claude/commands/rollback.md +0 -721
- package/.claude/commands/ship.md +0 -213
- package/.claude/commands/sonarcloud.md +0 -152
- package/.claude/commands/status.md +0 -90
- package/.claude/commands/validate.md +0 -288
- package/.claude/commands/verify.md +0 -269
- package/.claude/rules/workflow.md +0 -121
- package/.cline/workflows/dev.md +0 -342
- package/.cline/workflows/plan.md +0 -563
- package/.cline/workflows/premerge.md +0 -183
- package/.cline/workflows/research.md +0 -39
- package/.cline/workflows/review.md +0 -448
- package/.cline/workflows/rollback.md +0 -718
- package/.cline/workflows/ship.md +0 -210
- package/.cline/workflows/sonarcloud.md +0 -146
- package/.cline/workflows/status.md +0 -87
- package/.cline/workflows/validate.md +0 -285
- package/.cline/workflows/verify.md +0 -266
- package/.codex/config.toml +0 -11
- package/.codex/skills/dev/SKILL.md +0 -345
- package/.codex/skills/plan/SKILL.md +0 -566
- package/.codex/skills/premerge/SKILL.md +0 -186
- package/.codex/skills/research/SKILL.md +0 -42
- package/.codex/skills/review/SKILL.md +0 -451
- package/.codex/skills/rollback/SKILL.md +0 -721
- package/.codex/skills/ship/SKILL.md +0 -213
- package/.codex/skills/sonarcloud/SKILL.md +0 -149
- package/.codex/skills/status/SKILL.md +0 -90
- package/.codex/skills/validate/SKILL.md +0 -288
- package/.codex/skills/verify/SKILL.md +0 -269
- package/.cursor/commands/dev.md +0 -342
- package/.cursor/commands/plan.md +0 -563
- package/.cursor/commands/premerge.md +0 -183
- package/.cursor/commands/research.md +0 -39
- package/.cursor/commands/review.md +0 -448
- package/.cursor/commands/ship.md +0 -210
- package/.cursor/commands/sonarcloud.md +0 -146
- package/.cursor/commands/status.md +0 -87
- package/.cursor/commands/validate.md +0 -285
- package/.cursor/commands/verify.md +0 -266
- package/.cursorrules +0 -149
- package/.github/prompts/premerge.prompt.md +0 -188
- package/.github/prompts/research.prompt.md +0 -44
- package/.github/prompts/rollback.prompt.md +0 -723
- package/.github/prompts/ship.prompt.md +0 -215
- package/.github/prompts/status.prompt.md +0 -92
- package/.github/prompts/verify.prompt.md +0 -271
- package/.github/workflows/beads-to-github.yml +0 -56
- package/.github/workflows/github-to-beads.yml +0 -97
- package/.kilocode/workflows/dev.md +0 -346
- package/.kilocode/workflows/plan.md +0 -567
- package/.kilocode/workflows/premerge.md +0 -187
- package/.kilocode/workflows/research.md +0 -43
- package/.kilocode/workflows/review.md +0 -452
- package/.kilocode/workflows/rollback.md +0 -722
- package/.kilocode/workflows/ship.md +0 -214
- package/.kilocode/workflows/sonarcloud.md +0 -150
- package/.kilocode/workflows/status.md +0 -91
- package/.kilocode/workflows/validate.md +0 -289
- package/.kilocode/workflows/verify.md +0 -270
- package/.opencode/commands/dev.md +0 -345
- package/.opencode/commands/plan.md +0 -566
- package/.opencode/commands/premerge.md +0 -186
- package/.opencode/commands/research.md +0 -42
- package/.opencode/commands/review.md +0 -451
- package/.opencode/commands/rollback.md +0 -721
- package/.opencode/commands/ship.md +0 -213
- package/.opencode/commands/sonarcloud.md +0 -149
- package/.opencode/commands/status.md +0 -90
- package/.opencode/commands/validate.md +0 -288
- package/.opencode/commands/verify.md +0 -269
- package/.roo/commands/dev.md +0 -346
- package/.roo/commands/plan.md +0 -567
- package/.roo/commands/premerge.md +0 -187
- package/.roo/commands/research.md +0 -43
- package/.roo/commands/review.md +0 -452
- package/.roo/commands/rollback.md +0 -722
- package/.roo/commands/ship.md +0 -214
- package/.roo/commands/sonarcloud.md +0 -150
- package/.roo/commands/status.md +0 -91
- package/.roo/commands/validate.md +0 -289
- package/.roo/commands/verify.md +0 -270
- package/docs/BEADS_GITHUB_SYNC.md +0 -255
- package/docs/GREPTILE_SETUP.md +0 -400
- package/docs/MANUAL_REVIEW_GUIDE.md +0 -106
- package/docs/SETUP.md +0 -663
- package/docs/VALIDATION.md +0 -363
- package/lib/agents/cline.plugin.json +0 -29
- package/lib/agents/copilot.plugin.json +0 -24
- package/lib/agents/kilocode.plugin.json +0 -22
- package/lib/agents/opencode.plugin.json +0 -23
- package/lib/agents/roo.plugin.json +0 -30
- package/lib/beads-health-check.js +0 -143
- package/lib/commands/commands-reset.js +0 -147
- package/opencode.json +0 -67
- package/scripts/beads-context.test.js +0 -567
- package/scripts/github-beads-sync/comment.mjs +0 -64
- package/scripts/github-beads-sync/config.mjs +0 -148
- package/scripts/github-beads-sync/github-api.mjs +0 -131
- package/scripts/github-beads-sync/index.mjs +0 -332
- package/scripts/github-beads-sync/label-mapper.mjs +0 -54
- package/scripts/github-beads-sync/mapping.mjs +0 -78
- package/scripts/github-beads-sync/reverse-sync-cli.mjs +0 -31
- package/scripts/github-beads-sync/reverse-sync.mjs +0 -138
- package/scripts/github-beads-sync/run-bd.mjs +0 -161
- package/scripts/github-beads-sync/sanitize.mjs +0 -121
- package/scripts/github-beads-sync.config.json +0 -26
- package/scripts/sync-commands.js +0 -600
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
schemaVersion: 1.0.0
|
|
3
|
+
kind: ProtectedPathManifest
|
|
4
|
+
manifestPath: .forge/protected-paths.yaml
|
|
5
|
+
surfacesDeprecated: true
|
|
6
|
+
surfacesMigrationNote: Legacy surfaces remain for 0.0.19 protected-state docs/runtime parity; every example below must be covered by the authoritative W1 categories.
|
|
7
|
+
surfaces:
|
|
8
|
+
immutable:
|
|
9
|
+
examples:
|
|
10
|
+
- .git/
|
|
11
|
+
repair: Use git or the owning runtime tool.
|
|
12
|
+
secrets:
|
|
13
|
+
examples:
|
|
14
|
+
- .env.local
|
|
15
|
+
- secrets.json
|
|
16
|
+
repair: Use the secret manager or local environment setup command.
|
|
17
|
+
append_only_logs:
|
|
18
|
+
examples:
|
|
19
|
+
- .forge/log.jsonl
|
|
20
|
+
- .forge/audit.log
|
|
21
|
+
- .beads/interactions.jsonl
|
|
22
|
+
repair: Use the append-only Forge or Beads audit writer.
|
|
23
|
+
beads_state:
|
|
24
|
+
examples:
|
|
25
|
+
- .beads/issues.jsonl
|
|
26
|
+
- .beads/config.yaml
|
|
27
|
+
repair: Use bd or Forge issue commands.
|
|
28
|
+
forge_config:
|
|
29
|
+
examples:
|
|
30
|
+
- .forge/config.yaml
|
|
31
|
+
- .forge/protected-paths.yaml
|
|
32
|
+
repair: Use Forge setup/config commands or the protected Forge API writer.
|
|
33
|
+
extension_manifests:
|
|
34
|
+
examples:
|
|
35
|
+
- .forge/extensions/example/manifest.json
|
|
36
|
+
- .github/PLUGIN_TEMPLATE.json
|
|
37
|
+
repair: Use the Forge extension/plugin manager.
|
|
38
|
+
lockfiles:
|
|
39
|
+
examples:
|
|
40
|
+
- bun.lock
|
|
41
|
+
- package-lock.json
|
|
42
|
+
- .forge/extensions.lock
|
|
43
|
+
repair: Regenerate through the package manager or extension installer.
|
|
44
|
+
workflows:
|
|
45
|
+
examples:
|
|
46
|
+
- .github/workflows/
|
|
47
|
+
- .claude/commands/
|
|
48
|
+
- .forge/hooks/
|
|
49
|
+
- lefthook.yml
|
|
50
|
+
repair: Use Forge workflow/setup commands.
|
|
51
|
+
generated_harness:
|
|
52
|
+
examples:
|
|
53
|
+
- AGENTS.md
|
|
54
|
+
- CLAUDE.md
|
|
55
|
+
- .codex/skills/
|
|
56
|
+
- .cursor/rules/
|
|
57
|
+
repair: Regenerate with forge setup or the owning Forge API surface.
|
|
58
|
+
memory_projection:
|
|
59
|
+
examples:
|
|
60
|
+
- docs/sessions/
|
|
61
|
+
- docs/memory/
|
|
62
|
+
- .forge/memory/
|
|
63
|
+
repair: Use the Forge memory projection writer.
|
|
64
|
+
categories:
|
|
65
|
+
- id: forge_core
|
|
66
|
+
mode: checksum-verified
|
|
67
|
+
paths:
|
|
68
|
+
- lib/**
|
|
69
|
+
- bin/**
|
|
70
|
+
- scripts/**
|
|
71
|
+
- skills/**
|
|
72
|
+
ownerSurface: Forge core release or checksum updater
|
|
73
|
+
repairHint: Use the Forge release/update flow; do not hand-edit checksum-protected core files.
|
|
74
|
+
- id: user_protocol
|
|
75
|
+
mode: cli-only
|
|
76
|
+
paths:
|
|
77
|
+
- AGENTS.md
|
|
78
|
+
- CLAUDE.md
|
|
79
|
+
- .cursorrules
|
|
80
|
+
- .mcp.json
|
|
81
|
+
- .forge/config.yaml
|
|
82
|
+
- .forge/config.yml
|
|
83
|
+
- .forge/config.json
|
|
84
|
+
- .forge/protected-paths.yaml
|
|
85
|
+
ownerSurface: forge setup or forge options
|
|
86
|
+
repairHint: Use Forge setup/options commands so harness protocol files stay synchronized.
|
|
87
|
+
- id: generated_artifacts
|
|
88
|
+
mode: ci-blocked
|
|
89
|
+
paths:
|
|
90
|
+
- .claude/commands/**
|
|
91
|
+
- .claude/skills/**
|
|
92
|
+
- .cursor/rules/**
|
|
93
|
+
- .cursor/skills/**
|
|
94
|
+
- .codex/skills/**
|
|
95
|
+
- .github/workflows/**
|
|
96
|
+
- .forge/hooks/**
|
|
97
|
+
- lefthook.yml
|
|
98
|
+
- .forge/extensions/*/manifest.json
|
|
99
|
+
- .github/PLUGIN_TEMPLATE.json
|
|
100
|
+
- plugins/*/plugin.json
|
|
101
|
+
- plugins/*/extension.json
|
|
102
|
+
- plugins/*/manifest.json
|
|
103
|
+
- bun.lock
|
|
104
|
+
- package-lock.json
|
|
105
|
+
- pnpm-lock.yaml
|
|
106
|
+
- yarn.lock
|
|
107
|
+
- requirements.lock
|
|
108
|
+
- poetry.lock
|
|
109
|
+
- Cargo.lock
|
|
110
|
+
- go.sum
|
|
111
|
+
- .forge/extensions.lock
|
|
112
|
+
- docs/sessions/**
|
|
113
|
+
- docs/memory/**
|
|
114
|
+
- .forge/memory/**
|
|
115
|
+
- memory.md
|
|
116
|
+
- MEMORY.md
|
|
117
|
+
- "**/memory.md"
|
|
118
|
+
- "**/MEMORY.md"
|
|
119
|
+
ownerSurface: Forge harness renderer
|
|
120
|
+
repairHint: Regenerate harness artifacts from the canonical Forge contract.
|
|
121
|
+
- id: append_only_logs
|
|
122
|
+
mode: runtime-only
|
|
123
|
+
paths:
|
|
124
|
+
- .forge/*.jsonl
|
|
125
|
+
- .forge/audit.log
|
|
126
|
+
- .forge/agent-log.ndjson
|
|
127
|
+
- .beads/*.jsonl
|
|
128
|
+
- .beads/interactions.jsonl
|
|
129
|
+
ownerSurface: Forge or Beads audit writer
|
|
130
|
+
repairHint: Append through the runtime writer; do not rewrite audit history.
|
|
131
|
+
- id: secrets
|
|
132
|
+
mode: secret-scan-blocked
|
|
133
|
+
paths:
|
|
134
|
+
- .env
|
|
135
|
+
- .env.*
|
|
136
|
+
- "**/.env"
|
|
137
|
+
- "**/.env.*"
|
|
138
|
+
- secrets.json
|
|
139
|
+
- "**/secrets.json"
|
|
140
|
+
- credentials.json
|
|
141
|
+
- "**/credentials.json"
|
|
142
|
+
ownerSurface: secret manager
|
|
143
|
+
repairHint: Move secrets to the configured secret manager or local ignored env file.
|
|
144
|
+
- id: beads_state
|
|
145
|
+
mode: bd-cli-only
|
|
146
|
+
paths:
|
|
147
|
+
- .beads/**
|
|
148
|
+
ownerSurface: bd CLI or Forge issue adapter
|
|
149
|
+
repairHint: Use bd or Forge issue commands instead of editing Beads state files.
|
|
150
|
+
- id: immutable
|
|
151
|
+
mode: tool-owned
|
|
152
|
+
paths:
|
|
153
|
+
- .git/**
|
|
154
|
+
- .hg/**
|
|
155
|
+
- .svn/**
|
|
156
|
+
ownerSurface: VCS tool
|
|
157
|
+
repairHint: Use the owning VCS command instead of editing runtime internals.
|
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Project Workflow Instructions
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Default TDD-First Workflow Template
|
|
4
4
|
|
|
5
|
-
This project
|
|
5
|
+
This project ships a **default TDD-first workflow template** with 6 workflow stages plus a composable **research** skill (a phase of `/plan` and usable standalone). In v3, these stages are one configurable composition over Forge runtime building blocks, not a product-wide mandatory ladder. Commands may be invoked as full stages or as smaller skill fragments when the active plan permits it. Pre-merge is an embedded gate in `/ship` and `/review` (not a numbered stage); `/status` and `/shepherd` are utilities (not stages).
|
|
6
6
|
|
|
7
7
|
| Stage | Command | Purpose | Required For |
|
|
8
8
|
|-------|-------------|-----------------------------------------------------------|--------------|
|
|
@@ -11,24 +11,27 @@ This project enforces a **strict TDD-first development workflow** with 7 stages:
|
|
|
11
11
|
| 3 | `/validate` | Validate + 4-phase debug mode on failure | All types |
|
|
12
12
|
| 4 | `/ship` | Create PR with documentation | All types |
|
|
13
13
|
| 5 | `/review` | Address ALL PR feedback | Critical, Standard |
|
|
14
|
-
| 6 | `/
|
|
15
|
-
|
|
14
|
+
| 6 | `/verify` | Post-merge health check (CI, deployments) | All types |
|
|
15
|
+
|
|
16
|
+
**Pre-merge gate (not a numbered stage)**: Completing docs on the feature branch and handing off the PR for merge is a **task-type gate and checkpoint**, not a standalone workflow stage. The gate runs for Critical, Standard, and Refactor work and is embedded in the `/ship` and `/review` stages — finish the doc updates, confirm CI is green, then hand off the PR. Simple, Hotfix, and Docs work skip the gate.
|
|
16
17
|
|
|
17
18
|
**Utility**: `/status` — Context check before starting work (not a numbered stage)
|
|
18
19
|
|
|
20
|
+
**Utility**: `/shepherd <pr>` — Monitor-driven PR shepherd: one bounded pass that reads CI and check state, re-runs a flaky required check (Tier-A), or escalates, then hands off. It is a utility command, **not** a workflow stage, and does not sit between `/review` and the handoff. It **never merges** (the human merges in the GitHub UI) and **never resolves review threads** (that stays with `/review`). `--auto-rebase` is opt-in and default OFF. See [docs/reference/shepherd.md](docs/reference/shepherd.md).
|
|
21
|
+
|
|
19
22
|
## Automatic Change Classification
|
|
20
23
|
|
|
21
24
|
When the user requests work, **you MUST automatically classify** the change type:
|
|
22
25
|
|
|
23
|
-
### Critical (Full
|
|
26
|
+
### Critical (Full default workflow template)
|
|
24
27
|
**Triggers:** Security, authentication, payments, breaking changes, new architecture, data migrations
|
|
25
28
|
**Example:** "Add OAuth login", "Migrate database schema", "Implement payment gateway"
|
|
26
|
-
**Workflow:** plan → dev → validate → ship → review →
|
|
29
|
+
**Workflow:** plan → dev → validate → ship → review → verify (pre-merge gate before merge)
|
|
27
30
|
|
|
28
|
-
### Standard (
|
|
31
|
+
### Standard (default workflow without post-merge verify)
|
|
29
32
|
**Triggers:** Normal features, enhancements, new components
|
|
30
33
|
**Example:** "Add user profile page", "Create notification system"
|
|
31
|
-
**Workflow:** plan → dev → validate → ship → review
|
|
34
|
+
**Workflow:** plan → dev → validate → ship → review (pre-merge gate before merge)
|
|
32
35
|
|
|
33
36
|
### Simple (3-stage workflow, skip plan)
|
|
34
37
|
**Triggers:** Bug fixes, UI tweaks, small changes, minor refactors
|
|
@@ -48,7 +51,7 @@ When the user requests work, **you MUST automatically classify** the change type
|
|
|
48
51
|
### Refactor (5-stage workflow for safe cleanup)
|
|
49
52
|
**Triggers:** Code cleanup, performance optimization, technical debt reduction
|
|
50
53
|
**Example:** "Refactor auth service", "Extract utility functions"
|
|
51
|
-
**Workflow:** plan → dev → validate → ship
|
|
54
|
+
**Workflow:** plan → dev → validate → ship (pre-merge gate before merge)
|
|
52
55
|
|
|
53
56
|
## Enforcement Philosophy
|
|
54
57
|
|
|
@@ -66,7 +69,7 @@ When the user requests work, **you MUST automatically classify** the change type
|
|
|
66
69
|
|
|
67
70
|
"Skipping tests creates technical debt. I'll:
|
|
68
71
|
✓ Allow this commit
|
|
69
|
-
✓ Create follow-up
|
|
72
|
+
✓ Create follow-up issue for tests
|
|
70
73
|
✓ Document in commit message as [tech-debt]
|
|
71
74
|
|
|
72
75
|
Proceed?"
|
|
@@ -75,11 +78,11 @@ When the user requests work, **you MUST automatically classify** the change type
|
|
|
75
78
|
|
|
76
79
|
Command files (`.claude/commands/*.md` and agent equivalents) must never hardcode example output when a script generates that output dynamically. Reference the script and describe what it does — don't duplicate its output with fake data that becomes stale.
|
|
77
80
|
|
|
78
|
-
## TDD Development (
|
|
81
|
+
## TDD Development (`/dev` Command)
|
|
79
82
|
|
|
80
83
|
**Subagent-driven per-task implementation loop:**
|
|
81
84
|
|
|
82
|
-
1. **Read task list** → Pre-made task list from `/plan` Phase 3 at `docs/
|
|
85
|
+
1. **Read task list** → Pre-made task list from `/plan` Phase 3 at `docs/work/YYYY-MM-DD-<slug>/tasks.md`
|
|
83
86
|
2. **Dispatch implementer subagent per task** → Fresh context, complete task text, relevant design doc sections
|
|
84
87
|
3. **TDD inside implementer** → RED-GREEN-REFACTOR enforced by HARD-GATE:
|
|
85
88
|
- RED: Write failing test first (must run test and show failing output)
|
|
@@ -92,8 +95,8 @@ Command files (`.claude/commands/*.md` and agent equivalents) must never hardcod
|
|
|
92
95
|
**Example execution:**
|
|
93
96
|
```
|
|
94
97
|
/dev starts:
|
|
95
|
-
✓ Read task list: docs/
|
|
96
|
-
✓ Created decisions log: docs/
|
|
98
|
+
✓ Read task list: docs/work/2026-02-26-stripe-billing/tasks.md (8 tasks)
|
|
99
|
+
✓ Created decisions log: docs/work/2026-02-26-stripe-billing/decisions.md
|
|
97
100
|
|
|
98
101
|
Task 1: Types and interfaces
|
|
99
102
|
✓ Implementer: test written → failing → implementation → passing → committed
|
|
@@ -112,13 +115,13 @@ Task 2: Validation logic
|
|
|
112
115
|
|
|
113
116
|
## State Management (Single Source of Truth)
|
|
114
117
|
|
|
115
|
-
> GitHub issue lifecycle may sync to Beads via CI -- see [docs/BEADS_GITHUB_SYNC.md](docs/BEADS_GITHUB_SYNC.md).
|
|
118
|
+
> GitHub issue lifecycle may sync to Beads via CI -- see [docs/guides/BEADS_GITHUB_SYNC.md](docs/guides/BEADS_GITHUB_SYNC.md).
|
|
116
119
|
|
|
117
|
-
**
|
|
120
|
+
**Current implementation**: The Forge Kernel is the default issue-state authority; issue commands read and write the kernel store unless Beads is explicitly selected (`--issue-backend beads`, `FORGE_ISSUE_BACKEND=beads`, or `issueBackend: beads` in `.forge/config.yaml`), where it serves as an import/export/projection compatibility layer. **Direction (D44)**: continue consolidating issue/workflow/run authority in the Kernel with Beads remaining a compatibility projection. New authority work must follow [docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md](docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md) and [docs/reference/FORGE_KERNEL_STORAGE_MODEL.md](docs/reference/FORGE_KERNEL_STORAGE_MODEL.md).
|
|
118
121
|
|
|
119
122
|
```json
|
|
120
123
|
{
|
|
121
|
-
"id": "
|
|
124
|
+
"id": "9f2c41d7-3a8e-4b6f-9c21-5e7d0a184c3b",
|
|
122
125
|
"type": "critical",
|
|
123
126
|
"currentStage": "dev",
|
|
124
127
|
"completedStages": ["plan"],
|
|
@@ -139,7 +142,9 @@ Task 2: Validation logic
|
|
|
139
142
|
}
|
|
140
143
|
```
|
|
141
144
|
|
|
142
|
-
## Git Hooks (Automatic Enforcement)
|
|
145
|
+
## Git Hooks & Push Workflow (Automatic Enforcement)
|
|
146
|
+
|
|
147
|
+
This project uses the **Professional Git Workflow** with Lefthook for automated quality gates.
|
|
143
148
|
|
|
144
149
|
**Pre-commit hook enforces TDD:**
|
|
145
150
|
- Blocks commits if source code modified without test files
|
|
@@ -147,30 +152,87 @@ Task 2: Validation logic
|
|
|
147
152
|
- No AI decision required - automatic validation
|
|
148
153
|
|
|
149
154
|
**Pre-push hook validates tests:**
|
|
155
|
+
- Branch protection: blocks direct push to `main`/`master`
|
|
156
|
+
- ESLint: blocks on errors and warnings (strict mode, `--max-warnings 0`)
|
|
150
157
|
- All tests must pass before push
|
|
151
158
|
- Can skip for hotfixes with documentation
|
|
152
159
|
|
|
160
|
+
**Pull Request workflow:**
|
|
161
|
+
- PR template auto-fills with a standardized format; the self-review checklist catches most bugs before review
|
|
162
|
+
- Reference the issue id in the PR body (e.g. the Forge Kernel issue id); **all review comments must be resolved** before merge
|
|
163
|
+
- Squash-only merging for a clean, linear history
|
|
164
|
+
|
|
165
|
+
**⚠️ AI agents must NEVER use `LEFTHOOK=0`, `--no-verify`, or any hook bypass.** If a hook fails, fix the underlying issue. Only humans may bypass hooks in emergencies, documented in the PR description.
|
|
166
|
+
|
|
167
|
+
**Preferred push workflow (AI agents and humans):**
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
forge push # Branch protection + lint + tests, then push
|
|
171
|
+
forge push --quick # Review-cycle: lint-only push (CI runs full suite)
|
|
172
|
+
forge worktree create <slug> # Create a worktree
|
|
173
|
+
forge test # Run tests with correct timeouts
|
|
174
|
+
forge sync # Sync issue data
|
|
175
|
+
forge clean # Remove merged worktrees
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Build, Shell, and MCP
|
|
179
|
+
|
|
180
|
+
**Package manager**: Bun (preferred for performance).
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
bun install # Install dependencies
|
|
184
|
+
bun run dev # Start development
|
|
185
|
+
bun run build # Production build
|
|
186
|
+
bun test # Run tests
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**GitHub CLI**: `gh auth login` for the PR workflow.
|
|
190
|
+
|
|
191
|
+
### Shell Model
|
|
192
|
+
|
|
193
|
+
| Platform | Shell used by Forge commands and scripts |
|
|
194
|
+
| --- | --- |
|
|
195
|
+
| Windows | Git Bash for helper-backed Forge stage flows |
|
|
196
|
+
| macOS/Linux | Default login shell |
|
|
197
|
+
|
|
198
|
+
On Windows, Forge runtime health enforces Git Bash for helper-backed stage flows. Native PowerShell is still used by some bootstrap paths, and WSL may be useful for adjacent development tasks. See [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md#shell-model).
|
|
199
|
+
|
|
200
|
+
### MCP Servers (Optional)
|
|
201
|
+
|
|
202
|
+
If your agent supports MCP, these enhance research:
|
|
203
|
+
|
|
204
|
+
- **Context7** - up-to-date library documentation and API reference
|
|
205
|
+
- **grep.app** - search 1M+ GitHub repos for real-world code examples
|
|
206
|
+
|
|
207
|
+
See [.mcp.json.example](.mcp.json.example) for configuration (Claude Code: copy it to `.mcp.json`) and [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md) for detailed setup.
|
|
208
|
+
|
|
153
209
|
## Documentation Index (Context Pointers)
|
|
154
210
|
|
|
155
|
-
**Detailed
|
|
156
|
-
- [
|
|
157
|
-
- [
|
|
158
|
-
- [
|
|
159
|
-
- [
|
|
160
|
-
- [
|
|
161
|
-
- [
|
|
162
|
-
- [
|
|
163
|
-
- [
|
|
211
|
+
**Detailed stage skill instructions** are located in:
|
|
212
|
+
- [skills/status/SKILL.md](skills/status/SKILL.md) - How to check current context (utility)
|
|
213
|
+
- [skills/plan/SKILL.md](skills/plan/SKILL.md) - How to plan features (3 phases: design intent + research + branch/worktree/tasks)
|
|
214
|
+
- [skills/dev/SKILL.md](skills/dev/SKILL.md) - How to implement with subagent-driven TDD and decision gate
|
|
215
|
+
- [skills/validate/SKILL.md](skills/validate/SKILL.md) - How to run validation (with HARD-GATE exit)
|
|
216
|
+
- [skills/ship/SKILL.md](skills/ship/SKILL.md) - How to create PRs
|
|
217
|
+
- [skills/review/SKILL.md](skills/review/SKILL.md) - How to address PR feedback (with HARD-GATE exit)
|
|
218
|
+
- [skills/shepherd/SKILL.md](skills/shepherd/SKILL.md) - How to run a bounded PR monitor pass (utility; never merges, never resolves threads)
|
|
219
|
+
- [skills/verify/SKILL.md](skills/verify/SKILL.md) - How to verify post-merge health
|
|
164
220
|
|
|
165
221
|
**Planning documents** (created by `/plan`, consumed by `/dev`):
|
|
166
|
-
- `docs/
|
|
167
|
-
- `docs/
|
|
168
|
-
- `docs/
|
|
222
|
+
- `docs/work/YYYY-MM-DD-<slug>/plan.md` - Design intent + technical research
|
|
223
|
+
- `docs/work/YYYY-MM-DD-<slug>/tasks.md` - Task list with TDD steps
|
|
224
|
+
- `docs/work/YYYY-MM-DD-<slug>/decisions.md` - Decisions log from /dev
|
|
169
225
|
|
|
170
226
|
**Comprehensive workflow guide:**
|
|
171
227
|
- This file (AGENTS.md) is the single source of truth for the complete workflow
|
|
172
|
-
- [docs/TOOLCHAIN.md](docs/TOOLCHAIN.md) - Tool setup and configuration
|
|
173
|
-
- [docs/VALIDATION.md](docs/VALIDATION.md) - Enforcement and validation details
|
|
228
|
+
- [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md) - Tool setup and configuration
|
|
229
|
+
- [docs/reference/VALIDATION.md](docs/reference/VALIDATION.md) - Enforcement and validation details
|
|
230
|
+
|
|
231
|
+
**Forge v3 / Kernel Plan (active design):**
|
|
232
|
+
- [docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md](docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md) — canonical Forge Kernel authority reset plan for issue authority, local broker, team authority, adapters, storage, and gates
|
|
233
|
+
- [docs/work/2026-04-28-skeleton-pivot/locked-decisions.md](docs/work/2026-04-28-skeleton-pivot/locked-decisions.md) — D1–D44 decisions ledger with rationale + tradeoffs + anti-decisions; D44 supersedes Beads-only authority portions of earlier decisions
|
|
234
|
+
- [docs/work/2026-04-28-skeleton-pivot/v3-redesign-strategy.md](docs/work/2026-04-28-skeleton-pivot/v3-redesign-strategy.md) — historical v3 strategy and background; do not use its legacy default-substrate language over D44
|
|
235
|
+
- See [docs/INDEX.md](docs/INDEX.md) for the full reading order across the v3 design folder
|
|
174
236
|
|
|
175
237
|
**Load these files when you need detailed instructions for a specific stage.**
|
|
176
238
|
|
|
@@ -187,47 +249,40 @@ Every stage transition should carry structured context so the next stage (or a n
|
|
|
187
249
|
| /validate | All checks pass/fail summary | Failures diagnosed | Scripts/commands run | Ship readiness |
|
|
188
250
|
| /ship | PR created, checks pending | Template sections filled | PR URL, branch name | Review focus areas |
|
|
189
251
|
| /review | All feedback addressed | Comment resolutions | Fixed files, commit SHAs | Doc update needs |
|
|
190
|
-
|
|
|
252
|
+
| pre-merge gate | Docs updated, CI green | N/A | Updated doc files | Merge instructions |
|
|
191
253
|
|
|
192
|
-
###
|
|
254
|
+
### Recording Stage Context
|
|
193
255
|
|
|
194
|
-
|
|
256
|
+
Record the stage-exit context as a kernel issue comment so the next stage (or a
|
|
257
|
+
fresh session) can resume from the issue record itself:
|
|
195
258
|
|
|
196
259
|
```bash
|
|
197
|
-
|
|
260
|
+
forge issue comment <issue-id> "stage: dev -> validate
|
|
261
|
+
summary: All 5 tasks done, 1 decision gate fired
|
|
262
|
+
decisions: Used streaming parser over DOM for memory efficiency
|
|
263
|
+
artifacts: lib/parser.js test/parser.test.js
|
|
264
|
+
next: Run lint first — streaming approach may trigger no-await rule"
|
|
198
265
|
```
|
|
199
266
|
|
|
200
|
-
|
|
267
|
+
Check-after-write verification (`gate.issue_verify`, default-on) confirms the
|
|
268
|
+
comment actually landed. Read context back with `forge show <issue-id>` (or
|
|
269
|
+
`forge recap <issue-id>` for the bounded orientation envelope).
|
|
201
270
|
|
|
202
271
|
### Field Definitions
|
|
203
272
|
|
|
204
273
|
- **Summary**: 1-2 sentence recap of what was accomplished in this stage. Example: `--summary "All 5 tasks done, 1 decision gate fired"`
|
|
205
274
|
- **Decisions**: Key choices made during this stage that affect downstream work. Example: `--decisions "Used streaming parser over DOM for memory efficiency"`
|
|
206
|
-
- **Artifacts**: File paths or URLs produced by this stage. Example: `--artifacts "lib/parser.js test/parser.test.js docs/
|
|
275
|
+
- **Artifacts**: File paths or URLs produced by this stage. Example: `--artifacts "lib/parser.js test/parser.test.js docs/work/2026-03-26-parser/plan.md"`
|
|
207
276
|
- **Next**: Guidance for the next stage on what to focus on. Example: `--next "Run lint first — streaming approach may trigger no-await rule"`
|
|
208
277
|
|
|
209
|
-
### Usage in Stage Transitions
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
# Basic (backward compatible)
|
|
213
|
-
bash scripts/beads-context.sh stage-transition <id> dev validate
|
|
214
|
-
|
|
215
|
-
# With context fields (recommended)
|
|
216
|
-
bash scripts/beads-context.sh stage-transition <id> dev validate \
|
|
217
|
-
--summary "All 5 tasks done, 0 gates fired" \
|
|
218
|
-
--decisions "Used approach A per design doc" \
|
|
219
|
-
--artifacts "lib/foo.js test/foo.test.js" \
|
|
220
|
-
--next "Run type check and lint"
|
|
221
|
-
```
|
|
222
|
-
|
|
223
278
|
### Enforcement Level
|
|
224
279
|
|
|
225
|
-
This convention is **advisory only
|
|
280
|
+
This convention is **advisory only** — missing fields never block a stage
|
|
281
|
+
transition. The goal is to build good habits, not to create friction.
|
|
226
282
|
|
|
227
|
-
|
|
228
|
-
## Beads Issue Tracker
|
|
283
|
+
## Forge Issue Tracker
|
|
229
284
|
|
|
230
|
-
This project uses **
|
|
285
|
+
This project uses the **Forge Kernel** for issue tracking. Run `forge prime` to see full workflow context and commands.
|
|
231
286
|
|
|
232
287
|
### Quick Reference
|
|
233
288
|
|
|
@@ -238,11 +293,46 @@ forge claim <id> # Claim work
|
|
|
238
293
|
forge close <id> # Complete work
|
|
239
294
|
```
|
|
240
295
|
|
|
296
|
+
**More commands worth knowing** (run `forge <command> --help` for full usage):
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
forge remember <note> # Persist a project-memory note to a file-backed store
|
|
300
|
+
forge recall [query] # Retrieve project-memory notes back (the read half of remember)
|
|
301
|
+
forge insights # Detect recurring evidence patterns, suggest conservative follow-ups
|
|
302
|
+
forge upgrade # Preview and self-heal safe Forge upgrade readiness
|
|
303
|
+
forge gate <verb> <gate-id> # Toggle a workflow gate, or record/query human-gate approval events
|
|
304
|
+
forge role <role> --use <skill> # Bind a role to a skill/ideology in .forge/config.yaml
|
|
305
|
+
forge merge --auto <pr> # Opt-in conditional auto-merge — merges only when configured rules pass (OFF by default)
|
|
306
|
+
```
|
|
307
|
+
|
|
241
308
|
### Rules
|
|
242
309
|
|
|
243
|
-
- Use `forge` as the routine command surface for
|
|
244
|
-
- Run `
|
|
245
|
-
- Use `
|
|
310
|
+
- Use `forge` as the routine command surface for issue tracking and sync workflows — do NOT use TodoWrite, TaskCreate, or markdown TODO lists. Exception: `/plan` Phase 3 generates task lists at `docs/work/YYYY-MM-DD-<slug>/tasks.md` — these are approved artifacts consumed by `/dev`. New issue-authority work routes through the Forge Kernel design. Use `forge issue` subcommands (e.g. `forge issue dep`, `forge issue comment`) for operations beyond the shortcuts above. GitHub issues may be used for external/public tracking; CI may sync GitHub issue lifecycle to the issue store.
|
|
311
|
+
- Run `forge prime` for detailed command reference and session close protocol
|
|
312
|
+
- Use `forge remember` for persistent knowledge and `forge recall` to retrieve it back — do NOT use MEMORY.md files
|
|
313
|
+
|
|
314
|
+
### Kernel Tracking (nothing discussed goes missing)
|
|
315
|
+
|
|
316
|
+
**NON-NEGOTIABLE, default-on.** Anything raised in a session — a bug, an idea, a
|
|
317
|
+
design decision, a follow-up, a TODO, a risk noticed in passing — MUST become a
|
|
318
|
+
Forge Kernel issue **immediately** via `forge issue create`, before it can be
|
|
319
|
+
forgotten. Triage it (set a type, link its epic/parent) so it is discoverable.
|
|
320
|
+
When you defer scope, file the follow-up issue and reference it — never leave
|
|
321
|
+
work unfiled. The Kernel is the single source of truth; do NOT substitute
|
|
322
|
+
TodoWrite, markdown TODO lists, or memory notes for a filed issue.
|
|
323
|
+
|
|
324
|
+
This policy is canonicalized in `rules/kernel-tracking.md` (rendered to every
|
|
325
|
+
port: `.cursor/rules/kernel-tracking.mdc` for Cursor, this projection for
|
|
326
|
+
Claude/Codex/Hermes) and governed by the default-on `rail.kernel_tracking`
|
|
327
|
+
runtime rail. Turn it off only deliberately: `forge gate disable rail.kernel_tracking`.
|
|
328
|
+
|
|
329
|
+
## Project Learnings
|
|
330
|
+
|
|
331
|
+
- **Scope discipline**: Do ONLY what was explicitly asked. Answer a question → stop. Check something → stop. Never auto-continue to next steps or pending work unless told to.
|
|
332
|
+
- **Stage names**: The validation stage command is `/validate` — renamed in PR #50; do not use the old name.
|
|
333
|
+
- **Unused params**: Prefix with `_` (e.g., `_searchTerm`) — ESLint `no-unused-vars` enforced with `--max-warnings 0`.
|
|
334
|
+
- **Pre-push test env**: `test-env/` fixture tests can fail during actual `git push` due to git mid-push state. Fix the root cause — never use `LEFTHOOK=0`.
|
|
335
|
+
- **Skill sync**: Canonical skills live in `skills/<name>/SKILL.md`; per-agent copies are generated from them. `.agents/skills` (Codex's repo-local discovery path) is committed so a fresh clone gets discovery without `forge setup` — a pre-commit hook keeps it byte-identical to `skills/` and the drift gate enforces it. The other mirrors (`.claude/skills`, `.codex/skills`, `.cursor/skills`, `.hermes/skills`) are gitignored and regenerated at `forge setup`. Never hand-edit a generated mirror — edit the canonical `skills/` source.
|
|
246
336
|
|
|
247
337
|
## Session Completion
|
|
248
338
|
|
|
@@ -256,7 +346,7 @@ forge close <id> # Complete work
|
|
|
256
346
|
4. **PUSH TO REMOTE** - This is MANDATORY:
|
|
257
347
|
```bash
|
|
258
348
|
git pull --rebase
|
|
259
|
-
forge sync # wraps the supported
|
|
349
|
+
forge sync # wraps the supported issue-store sync flow when the issue store is configured
|
|
260
350
|
git push
|
|
261
351
|
git status # MUST show "up to date with origin"
|
|
262
352
|
```
|
|
@@ -269,4 +359,4 @@ forge close <id> # Complete work
|
|
|
269
359
|
- NEVER stop before pushing - that leaves work stranded locally
|
|
270
360
|
- NEVER say "ready to push when you are" - YOU must push
|
|
271
361
|
- If push fails, resolve and retry until it succeeds
|
|
272
|
-
|
|
362
|
+
- After fixing review feedback, always push the changes and resolve the related GitHub review threads via the GraphQL API before considering the work complete
|