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
package/README.md
CHANGED
|
@@ -1,435 +1,343 @@
|
|
|
1
1
|
# Forge
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/forge-workflow)
|
|
4
|
-
[](https://www.npmjs.com/package/forge-workflow)
|
|
5
4
|
[](https://github.com/harshanandak/forge/blob/master/LICENSE)
|
|
6
5
|
[](https://github.com/harshanandak/forge/actions/workflows/test.yml)
|
|
7
6
|
[](https://github.com/harshanandak/forge/actions/workflows/eslint.yml)
|
|
8
|
-
[](https://github.com/harshanandak/forge/actions/workflows/greptile-quality-gate.yml)
|
|
9
|
-
[](https://github.com/harshanandak/forge/actions/workflows/size-check.yml)
|
|
10
7
|
[](https://github.com/harshanandak/forge)
|
|
8
|
+
[](https://github.com/harshanandak/forge/actions/workflows/size-check.yml)
|
|
11
9
|
[](https://github.com/harshanandak/forge/actions/workflows/codeql.yml)
|
|
12
10
|
[](https://github.com/harshanandak/forge/blob/master/SECURITY.md)
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
/plan → /dev → /validate → /ship → /review → /premerge → /verify
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
✅ **TDD-First**: Write tests before code
|
|
21
|
-
✅ **Design-First**: One-question-at-a-time Q&A captures intent upfront
|
|
22
|
-
✅ **Multi-Agent**: Universal AGENTS.md works with 8 agents
|
|
23
|
-
|
|
24
|
-
---
|
|
12
|
+
## Never lose the thread of AI-assisted work.
|
|
25
13
|
|
|
26
|
-
|
|
14
|
+
Coding agents are fast — and forgetful. Sessions break. Context resets. The
|
|
15
|
+
agent forgets what it was doing, issues pile up untracked, and three months
|
|
16
|
+
later you can't reconstruct why a change was made or what's still unfinished.
|
|
17
|
+
Every new agent needs its own setup, and none of them share what the last one
|
|
18
|
+
knew.
|
|
27
19
|
|
|
28
|
-
**
|
|
20
|
+
**Forge fixes that.** It's an agent-agnostic control plane that gives your
|
|
21
|
+
coding agent — and you — a shared, durable memory of the work: issues,
|
|
22
|
+
dependencies, workflow state, decisions, and validation evidence, all kept in
|
|
23
|
+
your repo. Hand work to any agent, walk away mid-task, come back on another
|
|
24
|
+
machine, and pick up exactly where you left off.
|
|
29
25
|
|
|
30
26
|
```bash
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/ship # Create PR with full documentation
|
|
27
|
+
npx forge setup # install for your agent (Claude Code, Codex, Cursor, Hermes)
|
|
28
|
+
npx forge init # configure your workflow gates + change classification
|
|
29
|
+
npx forge status # one-glance: where you are, what's next, what's ready
|
|
35
30
|
```
|
|
36
31
|
|
|
37
|
-
**
|
|
38
|
-
|
|
39
|
-
**Without Forge** (chaotic):
|
|
40
|
-
- Code first, tests later (or never)
|
|
41
|
-
- No research or planning
|
|
42
|
-
- Security issues found in production
|
|
43
|
-
- Documentation forgotten
|
|
44
|
-
|
|
45
|
-
**With Forge** (systematic):
|
|
46
|
-
- Tests written BEFORE code (TDD)
|
|
47
|
-
- Research-backed decisions
|
|
48
|
-
- OWASP Top 10 analysis in every /plan
|
|
49
|
-
- Documentation at every stage
|
|
50
|
-
|
|
51
|
-
→ [See complete walkthrough in QUICKSTART.md](QUICKSTART.md)
|
|
32
|
+
**[See what's coming next → ROADMAP.md](ROADMAP.md)**
|
|
52
33
|
|
|
53
|
-
|
|
34
|
+
## Why Forge
|
|
54
35
|
|
|
55
|
-
|
|
36
|
+
### 🤝 Works with your agent — whichever it is
|
|
56
37
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
38
|
+
Claude Code, OpenAI Codex, Cursor, and Hermes today. You maintain **one
|
|
39
|
+
canonical source** — skills, rules, instructions, hook policy, safety
|
|
40
|
+
defaults — and Forge renders it into each agent's **native format**. Switch
|
|
41
|
+
agents, mix agents, onboard a teammate on a different agent: everyone gets the
|
|
42
|
+
same workflow, and nobody rewrites config.
|
|
60
43
|
|
|
61
|
-
|
|
62
|
-
|
|
44
|
+
```mermaid
|
|
45
|
+
flowchart LR
|
|
46
|
+
SRC["One canonical source<br/>skills/ · rules/ · AGENTS.md · .forge/"]
|
|
47
|
+
SRC --> C["Claude Code<br/>skills · settings · hooks · MCP"]
|
|
48
|
+
SRC --> U["Cursor<br/>skills · rules · hooks · ignore"]
|
|
49
|
+
SRC --> X["Codex<br/>skills · instructions · hooks"]
|
|
50
|
+
SRC --> H["Hermes<br/>skills · CLI orientation · hooks"]
|
|
63
51
|
```
|
|
64
52
|
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
- Setup agent-specific files (Claude, Cursor, etc.)
|
|
68
|
-
- Create docs/ folder with guides
|
|
53
|
+
No lock-in, no per-agent reinvention — and no silent drift, because the
|
|
54
|
+
rendered files are generated and drift-checked, never hand-copied.
|
|
69
55
|
|
|
70
|
-
|
|
71
|
-
**Optional tools**: Beads (issue tracking)
|
|
56
|
+
### 🛡️ Enforcement that actually enforces
|
|
72
57
|
|
|
73
|
-
|
|
58
|
+
Most "workflow" tooling is just prompts and hope. Forge wires its TDD gate and
|
|
59
|
+
protected-path policy into **native hooks on all four agents**, so the rules
|
|
60
|
+
hold even when the agent forgets them:
|
|
74
61
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
| `--sync` | Enable Beads GitHub sync (scaffolds workflow + PAT) |
|
|
83
|
-
| `--verbose` | Show file-by-file detail instead of summary |
|
|
84
|
-
| `--force` | Overwrite existing files even if content matches |
|
|
62
|
+
- **Claude Code & Cursor** — project-local hooks installed automatically at
|
|
63
|
+
setup: test-first gating plus protected-path denial (on Cursor, shell writes
|
|
64
|
+
to protected paths are blocked too).
|
|
65
|
+
- **Codex & Hermes** — those agents read hooks from global config, so Forge
|
|
66
|
+
never touches it silently: one explicit, consent-guarded command
|
|
67
|
+
(`forge hooks install --global`, with `--dry-run` preview) merges Forge's
|
|
68
|
+
hooks in without clobbering anything you already have.
|
|
85
69
|
|
|
86
|
-
|
|
70
|
+
Git hooks remain the always-on backstop underneath, for any agent — or any
|
|
71
|
+
human.
|
|
87
72
|
|
|
88
|
-
|
|
73
|
+
### 🧾 Nothing discussed goes missing
|
|
89
74
|
|
|
90
|
-
|
|
75
|
+
Every idea, bug, decision, and follow-up raised in a session gets filed to the
|
|
76
|
+
local issue kernel **immediately** — that's a default-on rail, rendered into
|
|
77
|
+
every agent's rules. Three weeks later, "that thing we noticed but didn't fix"
|
|
78
|
+
is a tracked, searchable issue instead of a lost chat message.
|
|
91
79
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
| **utility** | `/status` | Ranked issue dashboard with conflict detection |
|
|
95
|
-
| **1. Plan** | `/plan` | Design Q&A → research → branch + task list |
|
|
96
|
-
| **2. Dev** | `/dev` | Subagent TDD per task (spec + quality review) |
|
|
97
|
-
| **3. Validate** | `/validate` | Validate: types, lint, tests, security |
|
|
98
|
-
| **4. Ship** | `/ship` | Create PR with documentation |
|
|
99
|
-
| **5. Review** | `/review` | Address ALL PR feedback (Greptile, reviewers, CI/CD) |
|
|
100
|
-
| **6. Premerge** | `/premerge` | Complete docs on feature branch, hand off PR |
|
|
101
|
-
| **7. Verify** | `/verify` | Post-merge health check (CI on main) |
|
|
80
|
+
Like every Forge rail, it's yours to control:
|
|
81
|
+
`forge gate disable rail.kernel_tracking` turns it off deliberately.
|
|
102
82
|
|
|
103
|
-
|
|
83
|
+
### 🧵 Break anywhere, continue anywhere
|
|
104
84
|
|
|
105
|
-
|
|
85
|
+
Your project state lives in the repo, not in a chat window. Workflow stage,
|
|
86
|
+
claimed work, issues, memory, and handoff context survive session resets,
|
|
87
|
+
context compaction, and machine switches. Any agent reads the same source of
|
|
88
|
+
truth through `forge status`, `forge prime`, and `forge orient` — so a session
|
|
89
|
+
that dies at 2am resumes cleanly the next morning, on any device, with any
|
|
90
|
+
agent.
|
|
106
91
|
|
|
107
|
-
|
|
92
|
+
### 🧹 A lifecycle that cleans up after itself
|
|
108
93
|
|
|
109
|
-
|
|
94
|
+
Merged a PR with squash-merge? `forge clean` still knows the worktree is done —
|
|
95
|
+
it detects merges through three tiers (direct ancestry, squash-merge tree
|
|
96
|
+
matching, and merged-PR head refs) instead of leaving "active" ghosts around.
|
|
97
|
+
After merges, your local master is fast-forwarded automatically so the next
|
|
98
|
+
piece of work starts from reality, not from last week.
|
|
110
99
|
|
|
111
|
-
###
|
|
100
|
+
### 🔒 Safety by default
|
|
112
101
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
| **Cursor** | Native modes (Plan/Ask/Debug), .cursor/rules/ | 30 seconds |
|
|
119
|
-
| **Codex CLI** | OpenAI terminal agent, AGENTS.md | 30 seconds |
|
|
102
|
+
`forge setup` ships safe defaults for each agent's native safety surface: a
|
|
103
|
+
sane tool-permission allowlist for Claude Code (secrets denied, dev commands
|
|
104
|
+
allowed) and a `.cursorignore` secrets boundary for Cursor. Everything is
|
|
105
|
+
merge-preserving — your existing config is respected — and everything can be
|
|
106
|
+
opted out of.
|
|
120
107
|
|
|
121
|
-
###
|
|
108
|
+
### 🔎 Never lose track — down to the smallest thing
|
|
122
109
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
110
|
+
Forge ships a local issue **kernel** plus a project **memory** system. Capture
|
|
111
|
+
work the moment you spot it, wire up real dependencies, and everything stays
|
|
112
|
+
tracked: what's ready, what's blocked, what's stale, what's done. Searchable and
|
|
113
|
+
recoverable — find work from *months* ago in seconds instead of digging through
|
|
114
|
+
old branches and chat logs.
|
|
127
115
|
|
|
128
|
-
**Quick setup** (auto-detects agents):
|
|
129
116
|
```bash
|
|
130
|
-
|
|
117
|
+
forge create --title "Fix flaky auth test" --type bug
|
|
118
|
+
forge issue dep add <blocker-id> <blocked-id> # model real dependencies
|
|
119
|
+
forge ready # what can I pick up right now?
|
|
120
|
+
forge remember "auth uses rotating JWT — see lib/auth.js" # write memory
|
|
121
|
+
forge recall auth # read it back, later, anywhere
|
|
131
122
|
```
|
|
132
123
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
124
|
+
### 📋 Honest by construction
|
|
125
|
+
|
|
126
|
+
Forge keeps a machine-readable capability matrix of exactly what is delivered
|
|
127
|
+
on each agent — and its statuses come from a closed, test-enforced vocabulary,
|
|
128
|
+
so a claim can't quietly outrun the code. What's not delivered yet says
|
|
129
|
+
"not delivered", in the repo, verifiably. See
|
|
130
|
+
[the full per-agent capability reference](docs/reference/AGENT_SKILL_PARITY.md).
|
|
131
|
+
|
|
132
|
+
## Ready now vs. experimental
|
|
133
|
+
|
|
134
|
+
**Ready now** — installed and on by default:
|
|
135
|
+
|
|
136
|
+
| Capability | What you get |
|
|
137
|
+
| --- | --- |
|
|
138
|
+
| Multi-agent rendering | One canonical source → native skills, rules, instructions for Claude Code, Cursor, Codex, Hermes |
|
|
139
|
+
| Native enforcement hooks | TDD gate + protected-path denial on Claude Code and Cursor at setup; opt-in global install for Codex and Hermes |
|
|
140
|
+
| Kernel tracking rail | Everything discussed becomes a tracked issue, default-on, toggleable |
|
|
141
|
+
| Issue kernel | Create, claim, depend, close — local, fast, searchable |
|
|
142
|
+
| Project memory | `forge remember` / `forge recall`, file-backed local store |
|
|
143
|
+
| Lifecycle hygiene | Squash-merge-aware `forge clean`, automatic master fast-forward |
|
|
144
|
+
| Safety defaults | Claude permission allowlist + Cursor secrets ignore, merge-preserving |
|
|
145
|
+
| Quality-gated pushes | `forge push`: branch protection + lint + tests before anything leaves your machine |
|
|
146
|
+
| Verified issue writes | Every kernel write is re-read and confirmed (`verified: true` in the response) — it caught a real bug on its very first run. Opt out with `forge gate disable gate.issue_verify` |
|
|
147
|
+
|
|
148
|
+
**Experimental / opt-in** — real, shipped, and clearly labeled:
|
|
149
|
+
|
|
150
|
+
| Capability | How to opt in |
|
|
151
|
+
| --- | --- |
|
|
152
|
+
| Knowledge-graph memory (Graphiti) | `memory.backend: graphiti` in `.forge/config.yaml` — temporal, relational recall ([guide](docs/guides/memory-backends.md)) |
|
|
153
|
+
| Global hooks for Codex/Hermes | `forge hooks install --global` (consent-guarded, `--dry-run` first) |
|
|
154
|
+
| Conditional auto-merge | `forge merge --auto <pr>` — off by default, merges only when configured rules pass |
|
|
155
|
+
|
|
156
|
+
## A workflow you own
|
|
157
|
+
|
|
158
|
+
Forge installs a proven **TDD-first** workflow —
|
|
159
|
+
`/plan → /dev → /validate → /ship → /review` by default, with `/verify` added in
|
|
160
|
+
the profiles that need it — but it is *not* a fixed prompt pack. Every stage and
|
|
161
|
+
quality gate is a toggle, not a YAML archaeology project:
|
|
162
|
+
|
|
163
|
+
```mermaid
|
|
164
|
+
flowchart LR
|
|
165
|
+
subgraph defaults["Default-on rails and gates"]
|
|
166
|
+
R1["rail.kernel_tracking"]
|
|
167
|
+
G1["TDD pre-commit gate"]
|
|
168
|
+
G2["push quality gates"]
|
|
169
|
+
end
|
|
170
|
+
defaults -->|"forge gate disable <id>"| OFF["Deliberately off<br/>(recorded, reversible)"]
|
|
171
|
+
OFF -->|"forge gate enable <id>"| defaults
|
|
144
172
|
```
|
|
145
173
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
## What Makes Forge Different
|
|
151
|
-
|
|
152
|
-
### 1. TDD-First Development
|
|
153
|
-
Tests are written **BEFORE** code, every single time:
|
|
154
|
-
- **RED**: Write a failing test
|
|
155
|
-
- **GREEN**: Write minimal code to pass
|
|
156
|
-
- **REFACTOR**: Clean up and commit
|
|
157
|
-
- **REPEAT**: Next feature
|
|
158
|
-
|
|
159
|
-
No feature ships without tests. Period.
|
|
160
|
-
|
|
161
|
-
### 2. Research-First Planning
|
|
162
|
-
AI researches best practices before you write a line of code:
|
|
163
|
-
- Web search for latest patterns
|
|
164
|
-
- OWASP Top 10 security analysis
|
|
165
|
-
- Codebase pattern analysis
|
|
166
|
-
- Decisions documented with evidence
|
|
174
|
+
The default makes you productive on day one; the controls are yours from day
|
|
175
|
+
two. Change your change-classification, adapt the stages to how your team
|
|
176
|
+
actually works, and update it as you grow.
|
|
167
177
|
|
|
168
|
-
|
|
178
|
+
## Who it's for
|
|
169
179
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
|
|
175
|
-
-
|
|
180
|
+
- **Solo builders** using AI agents who are tired of lost handoffs and
|
|
181
|
+
half-remembered context.
|
|
182
|
+
- **Teams** coordinating multiple agent or developer sessions in one repo.
|
|
183
|
+
- **Quality-conscious engineers** who want agent output they can review, trust,
|
|
184
|
+
and release — grounded in local evidence, not vibes.
|
|
185
|
+
- **Maintainers** keeping agent-authored work safe enough to resume and ship.
|
|
176
186
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
### 4. Built-in TDD Enforcement
|
|
180
|
-
Git hooks automatically enforce TDD practices:
|
|
181
|
-
- **Pre-commit**: Blocks source commits without tests
|
|
182
|
-
- **Pre-push**: Runs full test suite before push
|
|
183
|
-
- **Interactive**: Guided recovery when violations occur
|
|
184
|
-
- **CI/CD aware**: Auto-aborts in non-interactive environments
|
|
187
|
+
## Quickstart
|
|
185
188
|
|
|
186
189
|
```bash
|
|
187
|
-
#
|
|
188
|
-
forge-
|
|
189
|
-
forge-preflight dev # Validate before /dev stage
|
|
190
|
-
forge-preflight ship # Validate before /ship stage
|
|
191
|
-
```
|
|
190
|
+
# Add to your project
|
|
191
|
+
bun add -D forge-workflow # or: npm install --save-dev forge-workflow
|
|
192
192
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
- **Budget modes**: free, open-source, startup, professional, custom
|
|
197
|
-
- **Portability-first**: MCPs included only when they add clear value over CLI alternatives
|
|
198
|
-
- **Free alternatives**: Every paid tool shows free alternatives
|
|
193
|
+
# Install for your agent(s) and configure the workflow
|
|
194
|
+
bunx forge setup --agents claude --yes
|
|
195
|
+
bunx forge init --profile minimal --classification standard --yes
|
|
199
196
|
|
|
200
|
-
|
|
201
|
-
bunx forge
|
|
202
|
-
bunx forge
|
|
197
|
+
# Orient — for you and your agent
|
|
198
|
+
bunx forge status # human one-glance view
|
|
199
|
+
bunx forge prime # session-entry orientation for agents
|
|
203
200
|
```
|
|
204
201
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
### 6. Enhanced Onboarding
|
|
208
|
-
Smart setup that adapts to your project:
|
|
209
|
-
|
|
210
|
-
**Intelligent File Merging**
|
|
211
|
-
- Preserves your existing AGENTS.md content
|
|
212
|
-
- Adds Forge workflow without overwriting
|
|
213
|
-
- Three options: smart merge, keep, or replace
|
|
214
|
-
```bash
|
|
215
|
-
bunx forge setup --merge=smart # Intelligent merge
|
|
216
|
-
```
|
|
202
|
+
Prefer a standalone binary (no Node/Bun runtime)? Install it in one line:
|
|
217
203
|
|
|
218
|
-
**Auto-Detection**
|
|
219
|
-
- Detects framework (Next.js, React, Vue, Express)
|
|
220
|
-
- Detects language (TypeScript, JavaScript)
|
|
221
|
-
- Analyzes git stats and CI/CD setup
|
|
222
|
-
- Infers project stage (new, active, stable)
|
|
223
|
-
- Saves to `.forge/context.json`
|
|
224
|
-
|
|
225
|
-
**Workflow Profiles** *(planned — not yet wired into setup)*
|
|
226
|
-
- Will adapt workflow based on work type (3-8 stages):
|
|
227
|
-
- `critical`: Full 8-stage workflow (auth, payments, security-sensitive)
|
|
228
|
-
- `standard`: 7-stage workflow (typical features)
|
|
229
|
-
- `refactor`: Behavior-preserving 5-stage workflow
|
|
230
|
-
- `simple`: Streamlined 4-stage workflow
|
|
231
|
-
- `hotfix`: Minimal 3-stage workflow (production fixes)
|
|
232
|
-
- `docs`: Minimal 3-stage workflow (documentation/config)
|
|
233
204
|
```bash
|
|
234
|
-
|
|
205
|
+
# macOS / Linux
|
|
206
|
+
curl -fsSL https://raw.githubusercontent.com/harshanandak/forge/master/scripts/install.sh | sh
|
|
235
207
|
```
|
|
236
208
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
209
|
+
```powershell
|
|
210
|
+
# Windows (PowerShell)
|
|
211
|
+
irm https://raw.githubusercontent.com/harshanandak/forge/master/scripts/install.ps1 | iex
|
|
240
212
|
```
|
|
241
213
|
|
|
242
|
-
|
|
214
|
+
See the [installation guide](docs/reference/INSTALL.md) for the supported
|
|
215
|
+
platforms, pinned versions, manual downloads, and the npm/npx alternative.
|
|
216
|
+
|
|
217
|
+
<details>
|
|
218
|
+
<summary><strong>Per-agent setup notes</strong></summary>
|
|
219
|
+
|
|
220
|
+
- **Claude Code** — `forge setup --agents claude` installs skills under
|
|
221
|
+
`.claude/skills/`, a `CLAUDE.md` shim over `AGENTS.md`, native enforcement
|
|
222
|
+
hooks and safe permission defaults in `.claude/settings.json`, and MCP config.
|
|
223
|
+
- **Cursor** — `forge setup --agents cursor` installs `.cursor/skills/`,
|
|
224
|
+
policy rules in `.cursor/rules/`, native hooks in `.cursor/hooks.json`, a
|
|
225
|
+
`.cursorignore` secrets boundary, and MCP config.
|
|
226
|
+
- **Codex** — `forge setup --agents codex` stages skills for the global Codex
|
|
227
|
+
install and commits a repo-local skills mirror so teammates get discovery on
|
|
228
|
+
clone. Hooks are global-config only: run `forge hooks install --global
|
|
229
|
+
--harness codex` when you want them.
|
|
230
|
+
- **Hermes** — Forge-owned skills are projected under `.hermes/skills/` and
|
|
231
|
+
consumed through `forge orient` / `forge recap`. Hooks:
|
|
232
|
+
`forge hooks install --global --harness hermes`.
|
|
233
|
+
|
|
234
|
+
The full, honest per-agent delivery status lives in the
|
|
235
|
+
[capability matrix reference](docs/reference/AGENT_SKILL_PARITY.md).
|
|
236
|
+
|
|
237
|
+
</details>
|
|
238
|
+
|
|
239
|
+
Full guides:
|
|
240
|
+
|
|
241
|
+
- [Quickstart](QUICKSTART.md) — clean first run, step by step
|
|
242
|
+
- [Installation guide](docs/reference/INSTALL.md) — standalone binary + npm/npx
|
|
243
|
+
- [Setup guide](docs/guides/SETUP.md)
|
|
244
|
+
- [Support and troubleshooting](docs/guides/SUPPORT.md)
|
|
245
|
+
- [Command reference](docs/reference/COMMANDS.md)
|
|
246
|
+
- [Workflow templates & customization](docs/guides/WORKFLOW_TEMPLATES.md)
|
|
247
|
+
|
|
248
|
+
Use `forge init` for the `.forge/` runtime config (gates + classification). Use
|
|
249
|
+
`forge setup` to install agent instructions, skills, and agent-specific files.
|
|
250
|
+
Use `bunx forge ...` (or `npx forge ...`) until the `forge` bin is on your PATH.
|
|
251
|
+
|
|
252
|
+
### Setup flags
|
|
253
|
+
|
|
254
|
+
| Flag | Use |
|
|
255
|
+
| --- | --- |
|
|
256
|
+
| `--agents claude,cursor` | Install for specific agents (or `--all` for every harness). |
|
|
257
|
+
| `--quick` | Use sensible defaults with minimal prompts. |
|
|
258
|
+
| `--yes` / `--non-interactive` | Run without prompts; `CI=true` also enables non-interactive behavior. |
|
|
259
|
+
| `--dry-run` | Preview planned writes without touching the repo. |
|
|
260
|
+
| `--symlink` | Link instruction files instead of copying, where supported. |
|
|
261
|
+
| `--merge smart\|preserve\|replace` | Choose how setup handles existing instruction files. |
|
|
262
|
+
| `--sync` | Deprecated. Removes old generated Beads/GitHub sync files; future issue sync belongs to Kernel/server authority. |
|
|
263
|
+
|
|
264
|
+
## What you get
|
|
265
|
+
|
|
266
|
+
- **Issue kernel** — `forge create`, `forge ready`, `forge show`, `forge claim`,
|
|
267
|
+
`forge close`, `forge issue dep`, `forge blocked`, `forge stale`. The Kernel is
|
|
268
|
+
the default backend; a Beads store can be imported (below) or selected as an
|
|
269
|
+
opt-out backend with `--issue-backend beads`.
|
|
270
|
+
- **Project memory** — `forge remember` / `forge recall` for durable, searchable
|
|
271
|
+
notes that outlive the session (no scattered `MEMORY.md` files), with an
|
|
272
|
+
opt-in knowledge-graph backend for temporal recall
|
|
273
|
+
([memory guide](docs/guides/memory-backends.md)).
|
|
274
|
+
- **One-glance state** — `forge status`, `forge board`, `forge orient`,
|
|
275
|
+
`forge prime`, `forge recap` for humans and agents.
|
|
276
|
+
- **Safe, isolated work** — `forge worktree create <slug>`, squash-merge-aware
|
|
277
|
+
`forge clean`.
|
|
278
|
+
- **Configurable quality gates** — `forge validate`, `forge push` (branch
|
|
279
|
+
protection + lint + tests), tuned per project via `forge gate` and
|
|
280
|
+
`forge init`.
|
|
281
|
+
- **Native agent enforcement** — TDD + protected-path hooks rendered for all
|
|
282
|
+
four agents; project-local and automatic where the agent allows it, one
|
|
283
|
+
consent-guarded command where it doesn't.
|
|
284
|
+
- **Ship & recover** — `forge ship`, `forge review`, `forge shepherd` (bounded PR
|
|
285
|
+
monitor), `forge merge` (opt-in conditional auto-merge, off by default),
|
|
286
|
+
`forge upgrade` (safe self-heal).
|
|
287
|
+
- **Coming from Beads?** `forge migrate --from beads` imports your existing issue
|
|
288
|
+
store into the Kernel in one command (`--dry-run` to preview first); the first
|
|
289
|
+
kernel use also auto-imports a detected store, so nothing is lost.
|
|
290
|
+
|
|
291
|
+
## Common commands
|
|
243
292
|
|
|
244
|
-
### 7. Automated Quality Gates 🆕
|
|
245
|
-
Multi-layer quality enforcement before merge:
|
|
246
|
-
|
|
247
|
-
**Greptile AI Code Review**
|
|
248
|
-
- AI-powered review on every PR
|
|
249
|
-
- Catches bugs, security issues, performance problems
|
|
250
|
-
- Detailed inline feedback with fix suggestions
|
|
251
|
-
- Automatic re-review after changes
|
|
252
293
|
```bash
|
|
253
|
-
|
|
254
|
-
#
|
|
294
|
+
forge --help
|
|
295
|
+
forge status # where am I, what's next
|
|
296
|
+
forge ready # available work
|
|
297
|
+
forge show <issue-id>
|
|
298
|
+
forge claim <issue-id>
|
|
299
|
+
forge remember "<note>" # write project memory
|
|
300
|
+
forge recall <query> # read it back
|
|
301
|
+
forge worktree create <slug>
|
|
302
|
+
forge board --json
|
|
303
|
+
forge validate
|
|
304
|
+
forge gate disable <gate-id> # every rail and gate is yours to toggle
|
|
255
305
|
```
|
|
256
306
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
- Test suite: All tests must pass
|
|
261
|
-
|
|
262
|
-
**Git Hooks (Lefthook)**
|
|
263
|
-
- Pre-commit: TDD enforcement (tests required)
|
|
264
|
-
- Pre-push: Full test suite + lint checks
|
|
265
|
-
- Branch protection: Blocks direct push to main/master
|
|
307
|
+
Stage commands such as `/plan`, `/dev`, `/review`, and `/verify` are agent
|
|
308
|
+
workflow stages installed by `forge setup`. Pre-merge is a documentation-and-
|
|
309
|
+
handoff gate embedded in `/ship` and `/review`, not a separate stage.
|
|
266
310
|
|
|
267
|
-
|
|
311
|
+
## Documentation map
|
|
268
312
|
|
|
269
|
-
|
|
313
|
+
- [Roadmap](ROADMAP.md) — what's shipping next, by theme
|
|
314
|
+
- [Docs index](docs/INDEX.md) — canonical reading order
|
|
315
|
+
- [Migration guide](docs/guides/MIGRATION.md) — moving to the Kernel and current workflow framing
|
|
316
|
+
- [Workflow templates & customization](docs/guides/WORKFLOW_TEMPLATES.md) — the default workflow and how to change it
|
|
317
|
+
- [Skills and command projections](docs/reference/SKILLS.md)
|
|
318
|
+
- [Agent capability matrix](docs/reference/AGENT_SKILL_PARITY.md) — honest per-agent delivery status
|
|
319
|
+
- [Memory backends](docs/guides/memory-backends.md) — local default and the opt-in graph backend
|
|
320
|
+
- [Adapters](docs/reference/ADAPTERS.md) — review adapter contract
|
|
321
|
+
- [Protected state surfaces](docs/reference/protected-state-surfaces.md)
|
|
322
|
+
- [Release reference](docs/reference/RELEASE.md)
|
|
270
323
|
|
|
271
|
-
##
|
|
324
|
+
## Terms
|
|
272
325
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
│ │ BEADS │ │ GITHUB │ │
|
|
282
|
-
│ │ Issue │ │ PR │ │
|
|
283
|
-
│ │ Tracking │ │ Workflow │ │
|
|
284
|
-
│ └──────────┘ └──────────┘ │
|
|
285
|
-
│ │ │ │
|
|
286
|
-
│ └──────────────────────────────┘ │
|
|
287
|
-
│ │ │
|
|
288
|
-
│ ┌─────▼─────┐ │
|
|
289
|
-
│ │ FORGE │ │
|
|
290
|
-
│ │ 7-Stage │ │
|
|
291
|
-
│ │ Workflow │ │
|
|
292
|
-
│ └───────────┘ │
|
|
293
|
-
│ │
|
|
294
|
-
└──────────────────────────────────────────────┘
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
**All tools are optional** - Forge works standalone.
|
|
298
|
-
|
|
299
|
-
**Beads** (optional): Git-backed issue tracking that survives context clearing
|
|
300
|
-
```bash
|
|
301
|
-
bun add -g @beads/bd && bd init
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**GitHub CLI** (recommended): Required for PR workflow
|
|
305
|
-
```bash
|
|
306
|
-
gh auth login
|
|
307
|
-
```
|
|
326
|
+
- **Control plane** — local commands, files, and checks that give agents a shared operating surface.
|
|
327
|
+
- **Kernel** — the default local issue-state store, backing `forge` issue commands.
|
|
328
|
+
- **Workflow template** — the default stage path Forge installs (`/plan → /dev → /validate → /ship → /review`, with `/verify` in the profiles that need it), fully configurable.
|
|
329
|
+
- **Harness** — an agent-specific instruction surface. Forge supports Claude Code, Codex, Cursor, and Hermes.
|
|
330
|
+
- **Rail** — a default-on behavior policy (like kernel tracking) rendered into every agent's rules and toggleable with `forge gate`.
|
|
331
|
+
- **Memory** — durable, searchable project notes written with `forge remember` and read with `forge recall`.
|
|
332
|
+
- **Adapter** — an integration boundary for review or issue tools.
|
|
333
|
+
- **Protected state** — files that should be changed through their owning command or API, not by casual edits.
|
|
308
334
|
|
|
309
|
-
|
|
335
|
+
## Package
|
|
310
336
|
|
|
311
|
-
|
|
337
|
+
Package name: `forge-workflow`
|
|
312
338
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
### Example 1: Simple Feature (20 minutes)
|
|
316
|
-
**Task**: Add a health check endpoint
|
|
317
|
-
|
|
318
|
-
```bash
|
|
319
|
-
/plan health-check-endpoint # Design Q&A → research → branch + task list
|
|
320
|
-
/dev # 8 min: TDD implementation
|
|
321
|
-
/validate # 2 min: All validations pass
|
|
322
|
-
/ship # 2 min: PR created
|
|
323
|
-
# → Greptile AI review completes (~2 min)
|
|
324
|
-
/review # 3 min: Address Greptile feedback
|
|
325
|
-
/premerge # 2 min: Complete docs, hand off PR
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### Example 2: Bug Fix with Security (30 minutes)
|
|
329
|
-
**Task**: Fix SQL injection vulnerability
|
|
330
|
-
|
|
331
|
-
```bash
|
|
332
|
-
/plan sql-injection-fix # Design Q&A → OWASP research → branch
|
|
333
|
-
/dev # 8 min: Fix + tests
|
|
334
|
-
/validate # 3 min: Security scan
|
|
335
|
-
/ship # 2 min: PR with security notes
|
|
336
|
-
# → Greptile validates security fix (~2 min)
|
|
337
|
-
/review # 5 min: Address security feedback
|
|
338
|
-
/premerge # 3 min: Complete docs, hand off PR
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
### Example 3: Architecture Change (2-3 days)
|
|
342
|
-
**Task**: Add authentication system
|
|
343
|
-
|
|
344
|
-
```bash
|
|
345
|
-
/plan user-authentication # Design Q&A → deep research → branch
|
|
346
|
-
/dev # 1-2 days: TDD implementation
|
|
347
|
-
/validate # 30 min: Full validation
|
|
348
|
-
/ship # 15 min: PR with docs
|
|
349
|
-
/review # Varies: Address feedback
|
|
350
|
-
/premerge # 15 min: Complete docs, hand off PR
|
|
351
|
-
/verify # 15 min: Post-merge health check
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
→ [More examples in docs/EXAMPLES.md](docs/EXAMPLES.md)
|
|
355
|
-
|
|
356
|
-
---
|
|
357
|
-
|
|
358
|
-
## Core Principles
|
|
359
|
-
|
|
360
|
-
**TDD-First**: Tests before code, always
|
|
361
|
-
**Design-First**: One-question-at-a-time Q&A captures intent before research
|
|
362
|
-
**Security Built-In**: OWASP Top 10 for every feature
|
|
363
|
-
**Documentation Progressive**: Update at each stage
|
|
364
|
-
**Multi-Session**: Work persists across sessions
|
|
365
|
-
|
|
366
|
-
→ [Read the philosophy in AGENTS.md](AGENTS.md)
|
|
367
|
-
|
|
368
|
-
---
|
|
369
|
-
|
|
370
|
-
## Next Steps
|
|
371
|
-
|
|
372
|
-
📚 **New to Forge?**
|
|
373
|
-
→ [QUICKSTART.md](QUICKSTART.md) - Your first feature in 5 minutes
|
|
374
|
-
|
|
375
|
-
📖 **Learn the workflow**
|
|
376
|
-
→ [AGENTS.md](AGENTS.md) - Complete guide with examples
|
|
377
|
-
|
|
378
|
-
🛠️ **Setup the toolchain**
|
|
379
|
-
→ [docs/TOOLCHAIN.md](docs/TOOLCHAIN.md) - Beads, GitHub CLI
|
|
380
|
-
|
|
381
|
-
🎯 **See real examples**
|
|
382
|
-
→ [docs/EXAMPLES.md](docs/EXAMPLES.md) - Real-world use cases
|
|
383
|
-
|
|
384
|
-
💬 **Have questions?**
|
|
385
|
-
→ [GitHub Discussions](https://github.com/harshanandak/forge/discussions)
|
|
386
|
-
|
|
387
|
-
🐛 **Found a bug?**
|
|
388
|
-
→ [GitHub Issues](https://github.com/harshanandak/forge/issues)
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
## Quick Reference
|
|
393
|
-
|
|
394
|
-
```bash
|
|
395
|
-
# Forge commands
|
|
396
|
-
/status # Check current context
|
|
397
|
-
/plan <feature> # Design Q&A → research → branch + task list
|
|
398
|
-
/dev # TDD development
|
|
399
|
-
/validate # Validate everything
|
|
400
|
-
/ship # Create PR
|
|
401
|
-
/review <pr> # Address feedback
|
|
402
|
-
/premerge <pr> # Complete docs, hand off PR
|
|
403
|
-
/verify # Post-merge health check
|
|
404
|
-
|
|
405
|
-
# Issue commands (via Forge)
|
|
406
|
-
bd init # Initialize Beads tracking
|
|
407
|
-
forge ready # Find ready work
|
|
408
|
-
forge create "title" # Create issue
|
|
409
|
-
forge update <id> --status X # Update status
|
|
410
|
-
forge sync # Sync Beads state
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
For advanced Beads operations that Forge does not wrap yet, use `bd` directly for
|
|
414
|
-
`bd comments`, `bd dep`, and `bd dolt`.
|
|
415
|
-
|
|
416
|
-
Forge is the preferred command surface for routine workflows, but Beads (`bd`)
|
|
417
|
-
remains the underlying source of truth for issue state and IDs.
|
|
418
|
-
|
|
419
|
-
---
|
|
339
|
+
Binary names: `forge`, `forge-workflow`, `forge-preflight`
|
|
420
340
|
|
|
421
341
|
## License
|
|
422
342
|
|
|
423
|
-
MIT
|
|
424
|
-
|
|
425
|
-
---
|
|
426
|
-
|
|
427
|
-
**Ready to start?**
|
|
428
|
-
|
|
429
|
-
```bash
|
|
430
|
-
bun add -D forge-workflow
|
|
431
|
-
bunx forge setup
|
|
432
|
-
/status
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
Then open [QUICKSTART.md](QUICKSTART.md) and ship your first feature! 🚀
|
|
343
|
+
MIT
|