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,59 @@
|
|
|
1
|
+
# Protected State Surfaces
|
|
2
|
+
|
|
3
|
+
Forge defines protected runtime state that agents must not hand-edit. When `scripts/protected-state-check.js` is wired into hooks or CI, the protected-state check blocks direct staged additions, copies, modifications, renames, and deletions, then prints a repair hint that points to the owning command or Forge API surface.
|
|
4
|
+
|
|
5
|
+
The committed manifest is `.forge/protected-paths.yaml`. Runtime enforcement is implemented in `lib/protected-state-surfaces.js`; the manifest keeps the protected surface contract visible to agents and reviewers.
|
|
6
|
+
|
|
7
|
+
## Protected Categories
|
|
8
|
+
|
|
9
|
+
| Surface | Examples | Required write surface |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `beads_state` | `.beads/issues.jsonl`, `.beads/config.yaml` | `bd` or Forge issue commands |
|
|
12
|
+
| `forge_config` | `.forge/config.yaml`, `.forge/protected-paths.yaml` | Forge config/setup API |
|
|
13
|
+
| `generated_harness` | `AGENTS.md`, `.claude/skills/`, `.codex/skills/`, `.cursor/rules/` | `forge setup` or harness generator |
|
|
14
|
+
| `memory_projection` | `docs/sessions/`, `docs/memory/`, `.forge/memory/` | Forge memory projection writer |
|
|
15
|
+
| `workflows` | `.github/workflows/`, `.claude/commands/`, `.forge/hooks/`, `lefthook.yml` | Forge workflow/setup commands |
|
|
16
|
+
| `lockfiles` | `bun.lock`, `package-lock.json`, `.forge/extensions.lock` | Package manager or extension installer |
|
|
17
|
+
| `extension_manifests` | `.forge/extensions/*/manifest.json`, `plugins/*/{plugin,extension,manifest}.json`, `.github/PLUGIN_TEMPLATE.json` | Forge extension/plugin manager |
|
|
18
|
+
| `secrets` | `.env.local`, `secrets.json`, credential files | Secret manager or local env setup |
|
|
19
|
+
| `immutable` | `.git/` | Git or owning runtime tool |
|
|
20
|
+
| `append_only_logs` | `.forge/log.jsonl`, `.forge/audit.log`, `.beads/interactions.jsonl` | Append-only audit writer |
|
|
21
|
+
|
|
22
|
+
## Behavior
|
|
23
|
+
|
|
24
|
+
- Direct edits, additions, modifications, renames, and deletions of protected files are blocked by `scripts/protected-state-check.js`.
|
|
25
|
+
- Allowed Forge API writes must declare the matching required surface. For example, a Forge config writer must call the protected writer with `surface: "forge_config"` and `viaForgeApi: true`.
|
|
26
|
+
- Forge-owned commands that intentionally stage generated protected changes can set `FORGE_PROTECTED_STATE_ALLOWED_SURFACES` to the comma-separated surfaces they own for that command invocation.
|
|
27
|
+
- Blocked decisions include actor, path, decision, required surface, reason, and repair hint.
|
|
28
|
+
- Audit-ready events use kind `protected_state_write` and are recorded through Beads audit when available.
|
|
29
|
+
|
|
30
|
+
## Repair Hint
|
|
31
|
+
|
|
32
|
+
Every blocked path prints a repair hint. A repair hint is specific guidance such as using `bd update` for `beads_state`, `forge setup` for generated harness files, or the package manager for `lockfiles`.
|
|
33
|
+
|
|
34
|
+
Example blocked output shape:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Protected state write blocked
|
|
38
|
+
path: .forge/config.yaml
|
|
39
|
+
required surface: forge_config
|
|
40
|
+
repair: use the Forge config/setup API for generated config changes
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Common support notes:
|
|
44
|
+
|
|
45
|
+
- If the check is not installed in hooks or CI, the model is documented but not enforced for that repository.
|
|
46
|
+
- If Beads metadata needs to change after a merge and branch protection rejects the push, use a follow-up PR or the configured sync workflow.
|
|
47
|
+
- Forge-owned commands may set `FORGE_PROTECTED_STATE_ALLOWED_SURFACES` narrowly for the surfaces they own.
|
|
48
|
+
|
|
49
|
+
## Forge API Example
|
|
50
|
+
|
|
51
|
+
```js
|
|
52
|
+
const { writeProtectedFile } = require('./lib/protected-state-surfaces');
|
|
53
|
+
|
|
54
|
+
writeProtectedFile(projectRoot, '.forge/config.yaml', yaml, {
|
|
55
|
+
actor: 'forge',
|
|
56
|
+
viaForgeApi: true,
|
|
57
|
+
surface: 'forge_config',
|
|
58
|
+
});
|
|
59
|
+
```
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# PR Shepherd
|
|
2
|
+
|
|
3
|
+
The shepherd is a **monitor-driven utility command** that automates the manual
|
|
4
|
+
polling / rerun / escalation loop a human otherwise runs by hand after
|
|
5
|
+
`/review`. It is **not** a workflow stage and does not replace `/review` or
|
|
6
|
+
the pre-merge gate (the embedded documentation-and-handoff gate in `/ship` and `/review`).
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
forge shepherd <pr-number>
|
|
10
|
+
forge shepherd <pr-number> --auto-rebase # opt-in, default OFF
|
|
11
|
+
forge shepherd <pr-number> --pull # read-only: WHY it is blocked + what to fix
|
|
12
|
+
forge shepherd <pr-number> --pull --json # same payload as machine-readable JSON
|
|
13
|
+
forge shepherd <pr-number> --bundle --json # read-only: the COMPLETE PR-state bundle
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## `--pull`: the actionable blocker payload
|
|
17
|
+
|
|
18
|
+
`--pull` is a **strictly read-only** signal-gather. It computes the decision
|
|
19
|
+
state via a dry-run pass (no rerun, no rebase, no merge, no thread resolution)
|
|
20
|
+
and returns ONE bounded, **actionable-only** payload so an agent gets "everything
|
|
21
|
+
blocking this PR + exactly what to fix" in a single call instead of running
|
|
22
|
+
`gh pr checks`, `gh run view --log-failed`, GraphQL thread queries, and branch
|
|
23
|
+
-protection lookups by hand. Default output is a compact human summary; `--json`
|
|
24
|
+
emits the structured payload. Every field is something to ACT on — passing
|
|
25
|
+
checks, resolved/outdated threads, and satisfied policy are omitted.
|
|
26
|
+
|
|
27
|
+
| Field | Meaning |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| `state` / `summary` | Decision state + a one-line WHY (leads with the primary blocker). |
|
|
30
|
+
| `mergeable` / `mergeStateStatus` | GitHub's raw merge signals (e.g. `BLOCKED`, `BEHIND`, `DIRTY`, `UNSTABLE`). |
|
|
31
|
+
| `blockers[]` | Ordered `{type, detail}` list — the human-readable WHY. Types: `draft`, `conflict`, `check-failing`, `check-missing`, `check-skipped`, `check-pending`, `behind`, `changes-requested`, `review-required`, `unresolved-threads`, `blocked-unknown`, `unstable`. |
|
|
32
|
+
| `requiredChecks` | Branch-protection required set classified vs what the PR produced: `missing` (never reported), `skipped` (a **required** check that resolved SKIPPED — NOT a pass to branch protection; this is why an all-green PR can stay `BLOCKED`), `pending`, `failing`. Omitted entirely when the required set is all green. |
|
|
33
|
+
| `failures[]` | Per failed check: `name`, `conclusion`, `jobUrl`, the exact failure **excerpt** pulled from the job log, and `alsoFailedOn` (matrix duplicates collapse to one). |
|
|
34
|
+
| `pendingChecks[]` | Names of checks still running. |
|
|
35
|
+
| `reviewThreads[]` | Every UNRESOLVED, non-outdated thread from a human or a review bot (CodeRabbit et al.): `file`, `line`, `author`, `body`, `threadId`, `commentId`. Never the shepherd's own or resolved threads. |
|
|
36
|
+
| `behind` | Commits behind base (present only when > 0). |
|
|
37
|
+
| `conflicts` | `{conflicted, files[]}` — present only when a merge would conflict. |
|
|
38
|
+
| `reviewDecision` | Present only when actionable (`CHANGES_REQUESTED` / `REVIEW_REQUIRED`); `APPROVED` is omitted. |
|
|
39
|
+
| `draft` | Present only when the PR is a draft. |
|
|
40
|
+
| `truncated` | Flags when `failures`/`reviewThreads` were capped for size. |
|
|
41
|
+
|
|
42
|
+
`--bundle --json` is the sibling COMPLETE (not-only-actionable) read-only state
|
|
43
|
+
bundle; `--pull` and `--bundle` are mutually exclusive.
|
|
44
|
+
|
|
45
|
+
## Why it is a utility, not a stage
|
|
46
|
+
|
|
47
|
+
Stages are a frozen, ordered ladder (`plan → dev → validate → ship → review →
|
|
48
|
+
premerge → verify`). Inserting a polling step into that ladder would break the
|
|
49
|
+
stage-transition chain and the harness parity model. The shepherd instead runs
|
|
50
|
+
*alongside* the review handoff: `/review` keeps owning semantic review and its
|
|
51
|
+
stage transition; the shepherd only automates the mechanical waiting and
|
|
52
|
+
re-running.
|
|
53
|
+
|
|
54
|
+
It is registered as a utility skill in the harness capability matrix
|
|
55
|
+
(`UTILITY_SKILL_IDS`), so cross-harness parity tests cover it without touching
|
|
56
|
+
the frozen stage list.
|
|
57
|
+
|
|
58
|
+
## Bounded-pass model
|
|
59
|
+
|
|
60
|
+
Each invocation is **one discrete bounded pass**: read PR state, take at most
|
|
61
|
+
one Tier-A action, then exit. There is no in-process loop. This preserves the
|
|
62
|
+
project's documented ergonomic — poll briefly, then stop and hand off. A pass
|
|
63
|
+
that finds checks still pending returns `PENDING`; the next scheduled pass picks
|
|
64
|
+
up from there.
|
|
65
|
+
|
|
66
|
+
`--watch`-style behavior, if desired, belongs in an external scheduler (cron, or
|
|
67
|
+
a `/loop`) that re-invokes the bounded pass with a debounce of at least 60
|
|
68
|
+
seconds and cancel-in-progress. The shepherd itself never waits in-process.
|
|
69
|
+
|
|
70
|
+
## Terminal states
|
|
71
|
+
|
|
72
|
+
| State | Meaning |
|
|
73
|
+
| ------------- | ------- |
|
|
74
|
+
| `MERGE_READY` | Required checks are green and the branch is up to date. The shepherd hands off — **a human merges in the GitHub UI.** |
|
|
75
|
+
| `ESCALATE` | A Tier-C condition (conflict, unreadable required set, persistent failure, oscillation, budget exhaustion). Context is posted to the PR. |
|
|
76
|
+
| `PENDING` | A Tier-A action was taken, or checks are still pending. Exit and await the next scheduled pass. |
|
|
77
|
+
| `HARD_STOP` | A permanent auth/scope failure that retrying cannot fix. Escalate to a human to widen token scope. |
|
|
78
|
+
|
|
79
|
+
## Action ladder
|
|
80
|
+
|
|
81
|
+
- **Tier-A (autonomous):** re-run a flaky **required** check via
|
|
82
|
+
`gh run rerun --failed` (capped by a rerun budget). Post status replies to
|
|
83
|
+
review threads (reply only).
|
|
84
|
+
- **Tier-B (opt-in, default OFF):** `--auto-rebase` rebases onto base and
|
|
85
|
+
force-pushes with lease, given a clean tree and an unchanged HEAD. A lease
|
|
86
|
+
rejection is a hard-stop — the shepherd never re-arms the lease.
|
|
87
|
+
- **Tier-C (escalate):** everything else.
|
|
88
|
+
|
|
89
|
+
## Safety invariants
|
|
90
|
+
|
|
91
|
+
- **Never merges.** No merge action, no server-side auto-merge latch.
|
|
92
|
+
- **Never resolves review threads.** It may post a status reply; resolution is
|
|
93
|
+
semantic and stays with `/review`.
|
|
94
|
+
- **Required-check gate.** Merge-ready is declared only when the
|
|
95
|
+
branch-protection required-check set is *known* (read from
|
|
96
|
+
`gh api repos/{owner}/{repo}/branches/{base}/protection/required_status_checks`)
|
|
97
|
+
and all of it is green. If protection is unreadable, the shepherd escalates
|
|
98
|
+
rather than guessing.
|
|
99
|
+
- **HEAD-changed abort.** Before any mutating action it re-reads the head SHA; if
|
|
100
|
+
HEAD moved during the pass, the action aborts. The `shepherd:active` marker is
|
|
101
|
+
advisory only — it is not mutual exclusion.
|
|
102
|
+
- **Auth taxonomy.** 401 (expiry) pauses and surfaces; 403 insufficient-scope is
|
|
103
|
+
a hard-stop; 403 with `Retry-After` honors the delay and resumes next pass.
|
|
104
|
+
|
|
105
|
+
## Per-harness behavior
|
|
106
|
+
|
|
107
|
+
- **Claude Code / Codex:** invoke `forge shepherd <pr>` directly; an external
|
|
108
|
+
scheduler may drive repeated bounded passes.
|
|
109
|
+
- **Cursor:** manually-invoked only — run it from a terminal. No polling-loop
|
|
110
|
+
affordance and no hook reliance on this surface.
|
|
111
|
+
|
|
112
|
+
## State
|
|
113
|
+
|
|
114
|
+
Progress is durable in GitHub PR comments and labels plus `git`. There is no
|
|
115
|
+
separate local state store.
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# Research: obra/superpowers — Integration Analysis for Forge
|
|
2
|
+
|
|
3
|
+
**Feature slug**: `superpowers`
|
|
4
|
+
**Status**: Historical analysis. Current user guidance lives in [Docs Index](../INDEX.md), [Command Reference](COMMANDS.md), and [Release Reference](RELEASE.md).
|
|
5
|
+
**Date**: 2026-02-26
|
|
6
|
+
**Sources**: All claims below cite exact URLs.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## What Is Superpowers?
|
|
11
|
+
|
|
12
|
+
**Repository**: https://github.com/obra/superpowers
|
|
13
|
+
**Author**: Jesse Vincent (@obra) — keyboard designer at keyboard.io, creator of K-9 Mail for Android, former Perl 5 project lead
|
|
14
|
+
**Description**: "An agentic skills framework & software development methodology that works."
|
|
15
|
+
**License**: MIT
|
|
16
|
+
**Version**: v4.3.1 (2026-02-21)
|
|
17
|
+
**Language**: Shell
|
|
18
|
+
**Stars**: ~62,000 (4th most installed plugin in Claude Code marketplace, surpassed GitHub's own plugin)
|
|
19
|
+
**Source**: https://www.threads.com/@obrajesse/post/DVANeBYEfuF/ — Jesse Vincent's own announcement
|
|
20
|
+
|
|
21
|
+
Superpowers is a **Claude Code plugin** (also supports Cursor, Codex, OpenCode) that ships a library of 14 composable "skills" — structured instructions the agent reads and follows automatically. Skills trigger based on context, not user commands. The agent reads the right skill before taking action.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
### Claude Code (Native Plugin Marketplace)
|
|
28
|
+
```bash
|
|
29
|
+
/plugin marketplace add obra/superpowers-marketplace
|
|
30
|
+
/plugin install superpowers@superpowers-marketplace
|
|
31
|
+
```
|
|
32
|
+
Marketplace repo: https://github.com/obra/superpowers-marketplace
|
|
33
|
+
|
|
34
|
+
### Cursor
|
|
35
|
+
```text
|
|
36
|
+
/plugin-add superpowers
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Codex / OpenCode
|
|
40
|
+
Manual: Fetch and follow `.codex/INSTALL.md` or `.opencode/INSTALL.md`
|
|
41
|
+
|
|
42
|
+
**Source**: https://github.com/obra/superpowers/blob/main/README.md
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Repository Structure
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
superpowers/
|
|
50
|
+
├── .claude-plugin/ # Claude Code plugin manifest
|
|
51
|
+
├── .codex/ # Codex integration
|
|
52
|
+
├── .cursor-plugin/ # Cursor integration
|
|
53
|
+
├── .opencode/ # OpenCode integration
|
|
54
|
+
├── agents/
|
|
55
|
+
│ └── code-reviewer.md # Custom code-reviewer agent definition
|
|
56
|
+
├── commands/ # CLI commands
|
|
57
|
+
├── docs/
|
|
58
|
+
│ ├── README.codex.md
|
|
59
|
+
│ ├── README.opencode.md
|
|
60
|
+
│ ├── plans/ # Design docs written here
|
|
61
|
+
│ └── testing.md
|
|
62
|
+
├── hooks/ # Git hooks
|
|
63
|
+
├── lib/ # Shared libraries
|
|
64
|
+
├── skills/ # 14 skills (core value)
|
|
65
|
+
└── tests/
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Source**: https://github.com/obra/superpowers (file tree)
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## The 14 Skills (Full List)
|
|
73
|
+
|
|
74
|
+
| Skill | Purpose |
|
|
75
|
+
|-------|---------|
|
|
76
|
+
| `brainstorming` | Socratic design refinement with hard gate — MUST complete before any code |
|
|
77
|
+
| `writing-plans` | Break approved design into 2-5 minute tasks with exact file paths and code |
|
|
78
|
+
| `executing-plans` | Batch execution with human checkpoints |
|
|
79
|
+
| `subagent-driven-development` | Dispatch fresh subagent per task, two-stage review |
|
|
80
|
+
| `dispatching-parallel-agents` | Concurrent subagent workflows |
|
|
81
|
+
| `test-driven-development` | Enforced RED-GREEN-REFACTOR cycle with anti-patterns reference |
|
|
82
|
+
| `systematic-debugging` | 4-phase root cause analysis (root-cause-tracing, defense-in-depth, condition-based-waiting) |
|
|
83
|
+
| `verification-before-completion` | Verify fix actually works before declaring done |
|
|
84
|
+
| `requesting-code-review` | Pre-review checklist |
|
|
85
|
+
| `receiving-code-review` | Structured response to feedback |
|
|
86
|
+
| `using-git-worktrees` | Isolated workspace per task on new branch |
|
|
87
|
+
| `finishing-a-development-branch` | Merge/PR decision workflow, worktree cleanup |
|
|
88
|
+
| `writing-skills` | Meta-skill: create new skills following best practices |
|
|
89
|
+
| `using-superpowers` | Introduction and dispatch logic |
|
|
90
|
+
|
|
91
|
+
**Source**: https://github.com/obra/superpowers/tree/main/skills
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Core Workflow (How It Runs)
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
1. brainstorming → Explore context → ask questions one at a time → propose 2-3 approaches
|
|
99
|
+
→ present design in sections → user approves → write design doc to
|
|
100
|
+
docs/plans/YYYY-MM-DD-<topic>-plan.md → commit
|
|
101
|
+
|
|
102
|
+
2. using-git-worktrees → Create isolated workspace on new branch → run project setup
|
|
103
|
+
→ verify clean test baseline
|
|
104
|
+
|
|
105
|
+
3. writing-plans → Break approved design into tasks (2-5 min each)
|
|
106
|
+
→ each task: exact file paths, complete code, verification steps
|
|
107
|
+
|
|
108
|
+
4. subagent-driven-development OR executing-plans
|
|
109
|
+
→ Fresh subagent per task
|
|
110
|
+
→ Two-stage review: (1) spec compliance, (2) code quality
|
|
111
|
+
|
|
112
|
+
5. test-driven-development → RED fails → GREEN passes → REFACTOR → commit
|
|
113
|
+
→ Deletes code written before tests
|
|
114
|
+
|
|
115
|
+
6. requesting-code-review → Reviews against plan, reports by severity
|
|
116
|
+
→ Critical issues block progress
|
|
117
|
+
|
|
118
|
+
7. finishing-a-development-branch → Verify tests → present options (merge/PR/keep/discard)
|
|
119
|
+
→ clean up worktree
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Key mechanic**: Skills auto-trigger based on context. The agent checks for relevant skills before any task. No user command needed.
|
|
123
|
+
|
|
124
|
+
**Source**: https://github.com/obra/superpowers/blob/main/README.md and https://blog.fsck.com/2025/10/09/superpowers/
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## The HARD-GATE Pattern
|
|
129
|
+
|
|
130
|
+
The brainstorming skill uses explicit blocking tags:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
<HARD-GATE>
|
|
134
|
+
Do NOT invoke any implementation skill, write any code, scaffold any project,
|
|
135
|
+
or take any implementation action until you have presented a design and the user
|
|
136
|
+
has approved it. This applies to EVERY project regardless of perceived simplicity.
|
|
137
|
+
</HARD-GATE>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Why this matters**: This is a structural enforcement mechanism — not a soft instruction. It explicitly names forbidden actions and conditions. Soft instructions ("read AGENTS.md first") fail. Hard gates with explicit prohibitions work.
|
|
141
|
+
|
|
142
|
+
**Source**: brainstorming/SKILL.md content from https://github.com/obra/superpowers/blob/main/skills/brainstorming/SKILL.md
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Community Reception
|
|
147
|
+
|
|
148
|
+
| Source | Signal |
|
|
149
|
+
|--------|--------|
|
|
150
|
+
| Hacker News | 435 points, 231 comments — https://news.ycombinator.com/item?id=45547344 |
|
|
151
|
+
| Simon Willison | "Jesse is one of the most creative users of coding agents I know" — https://simonwillison.net/2025/Oct/10/superpowers/ |
|
|
152
|
+
| Cornell Innovation Hub | "How I Built a 3600 Line Feature in 4 Hours Without Writing a Single Line of Code" — https://innovationhub.ai.cornell.edu/articles/how-i-built-a-3600-line-feature-in-4-hours-without-writing-a-single-line-of-code/ |
|
|
153
|
+
| Claude Code Marketplace | 4th most installed plugin, surpassed GitHub — https://www.threads.com/@obrajesse/post/DVANeBYEfuF/ |
|
|
154
|
+
| r/ClaudeCode | "actually delivers" — https://www.reddit.com/r/ClaudeCode/comments/1r9y2ka/ |
|
|
155
|
+
| Dev Genius | "the Claude plugin that enforces TDD, subagents, and planning" — https://blog.devgenius.io/superpowers-explained-the-claude-plugin-that-enforces-tdd-subagents-and-planning-c7fe698c3b82 |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Forge vs Superpowers: Side-by-Side
|
|
160
|
+
|
|
161
|
+
### What Both Do (Overlap)
|
|
162
|
+
|
|
163
|
+
| Capability | Forge | Superpowers |
|
|
164
|
+
|-----------|-------|------------|
|
|
165
|
+
| TDD enforcement | `/dev` RED-GREEN-REFACTOR | `test-driven-development` skill |
|
|
166
|
+
| Planning phase | `/plan` command + Beads | `writing-plans` skill |
|
|
167
|
+
| Code review | `/review` command | `requesting-code-review` + `receiving-code-review` |
|
|
168
|
+
| Parallel agents | Parallel AI skills | `dispatching-parallel-agents` skill |
|
|
169
|
+
| PR workflow | `/ship`, `/premerge` | `finishing-a-development-branch` |
|
|
170
|
+
|
|
171
|
+
### What Superpowers Has That Forge Doesn't
|
|
172
|
+
|
|
173
|
+
| Gap | Superpowers Solution | Forge Status |
|
|
174
|
+
|-----|---------------------|-------------|
|
|
175
|
+
| **Design before code** | `brainstorming` skill with HARD-GATE | No equivalent — `/plan` goes straight to beads/branch |
|
|
176
|
+
| **Git worktree isolation** | `using-git-worktrees` skill | Not in Forge workflow |
|
|
177
|
+
| **Systematic debugging** | `systematic-debugging` (4 phases) | No equivalent |
|
|
178
|
+
| **Verification before done** | `verification-before-completion` | Implicit in `/check` but not explicit |
|
|
179
|
+
| **Meta-skill authoring** | `writing-skills` skill | No equivalent |
|
|
180
|
+
| **Two-stage code review** | spec compliance → code quality | Single-stage review |
|
|
181
|
+
| **Hard gate enforcement** | `<HARD-GATE>` tags | Soft instructions only |
|
|
182
|
+
| **Design docs** | Saved to `docs/plans/YYYY-MM-DD-*.md` | Research docs only (`docs/research/`) |
|
|
183
|
+
| **Plugin distribution** | Claude Code + Cursor marketplace | Not distributable as plugin |
|
|
184
|
+
|
|
185
|
+
### What Forge Has That Superpowers Doesn't
|
|
186
|
+
|
|
187
|
+
| Capability | Forge | Superpowers Status |
|
|
188
|
+
|-----------|-------|-------------------|
|
|
189
|
+
| **Web research stage** | `/research` + parallel AI search | No research phase |
|
|
190
|
+
| **Formal spec proposals** | OpenSpec (`openspec/changes/`) | No equivalent |
|
|
191
|
+
| **Issue tracking** | Beads (`bd create`, `bd update`) | `obra/issue-cards` (separate repo, not integrated) |
|
|
192
|
+
| **Multi-agent file support** | AGENTS.md/CLAUDE.md/GEMINI.md | Claude Code + Cursor only |
|
|
193
|
+
| **Security analysis** | OWASP per feature in `/dev` | No security phase |
|
|
194
|
+
| **Full PR lifecycle** | `/ship`, `/review`, `/premerge`, `/verify` | Only `finishing-a-development-branch` |
|
|
195
|
+
| **SonarCloud integration** | `/sonarcloud` command | None |
|
|
196
|
+
| **Greptile integration** | `.claude/rules/greptile-review-process.md` | None |
|
|
197
|
+
| **Post-merge verification** | `/verify` | None |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Integration Options
|
|
202
|
+
|
|
203
|
+
### Option A: Install Superpowers Plugin Alongside Forge (Non-Breaking)
|
|
204
|
+
|
|
205
|
+
Install Superpowers as a Claude Code plugin. It adds its skills to your agent's context. Forge commands continue to work. Superpowers skills auto-trigger for gaps Forge doesn't cover.
|
|
206
|
+
|
|
207
|
+
**Benefit**: Immediately gets brainstorming gate, systematic debugging, git worktrees, verification
|
|
208
|
+
**Risk**: Workflow overlap — both have planning, review phases. Agent may get confused about which to use.
|
|
209
|
+
**Verdict**: Valid short-term, but needs clear role definition in AGENTS.md/CLAUDE.md
|
|
210
|
+
|
|
211
|
+
**Source on overlap concerns**: https://www.reddit.com/r/ClaudeCode/comments/1qlsdjb/superpowers_vs_gsd_vs_others/
|
|
212
|
+
|
|
213
|
+
### Option B: Cherry-Pick Key Skills Into Forge (Best Fit)
|
|
214
|
+
|
|
215
|
+
Import specific Superpowers skills into Forge's `skills/` directory:
|
|
216
|
+
- `brainstorming` → insert between `/research` and `/plan` as a new stage
|
|
217
|
+
- `systematic-debugging` → add as `/debug` command
|
|
218
|
+
- `writing-skills` → use for authoring new Forge skills
|
|
219
|
+
- `verification-before-completion` → integrate into `/check` command
|
|
220
|
+
- HARD-GATE pattern → add to `/research`, `/plan`, `/dev` commands
|
|
221
|
+
|
|
222
|
+
**Benefit**: Gets Superpowers' best ideas without workflow collision
|
|
223
|
+
**Risk**: Maintenance burden — skills diverge from upstream
|
|
224
|
+
**Verdict**: Best long-term approach for Forge as a standalone workflow
|
|
225
|
+
|
|
226
|
+
### Option C: Replace OpenSpec With Superpowers' `writing-plans`
|
|
227
|
+
|
|
228
|
+
Superpowers' `writing-plans` creates detailed task-level implementation plans. OpenSpec creates formal architecture proposals with `proposal.md`, `tasks.md`, `plan.md`.
|
|
229
|
+
|
|
230
|
+
**Assessment**: These solve different problems.
|
|
231
|
+
- `writing-plans` → task-level implementation checklist (tactical)
|
|
232
|
+
- OpenSpec → architecture-level proposals requiring approval (strategic)
|
|
233
|
+
- **Do not replace** — they are complementary. OpenSpec for "what to build", `writing-plans` for "how to build it."
|
|
234
|
+
|
|
235
|
+
### Option D: Adopt HARD-GATE Pattern Into Forge Commands (Quickest Win)
|
|
236
|
+
|
|
237
|
+
Add `<HARD-GATE>` blocks to existing Forge commands. Example for `/plan`:
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
<HARD-GATE>
|
|
241
|
+
Do NOT proceed to /dev or write any code until:
|
|
242
|
+
1. Research doc exists at docs/research/<slug>.md
|
|
243
|
+
2. Beads issue is created and in_progress
|
|
244
|
+
3. Branch exists at feat/<slug>
|
|
245
|
+
</HARD-GATE>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Benefit**: Addresses the core scope discipline problem without changing workflow
|
|
249
|
+
**Risk**: None — purely additive
|
|
250
|
+
**Verdict**: Should be done immediately regardless of other options
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Key Insight: Skills vs Commands
|
|
255
|
+
|
|
256
|
+
Superpowers skills auto-trigger. Forge uses explicit commands (`/plan`, `/dev`). These are philosophically different:
|
|
257
|
+
|
|
258
|
+
- **Forge**: User explicitly controls each stage. Good for learning, transparency.
|
|
259
|
+
- **Superpowers**: Agent decides when to invoke skills. Good for autonomy, fewer user interruptions.
|
|
260
|
+
|
|
261
|
+
For Forge's use case (multi-agent support, OpenSpec, Beads, full PR lifecycle), the explicit command model is correct. But Superpowers' brainstorming gate and systematic debugging are worth importing as skills, not auto-triggers.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Related obra Repos Worth Knowing
|
|
266
|
+
|
|
267
|
+
| Repo | Description | URL |
|
|
268
|
+
|------|-------------|-----|
|
|
269
|
+
| `obra/superpowers-marketplace` | Claude Code plugin marketplace | https://github.com/obra/superpowers-marketplace |
|
|
270
|
+
| `obra/issue-cards` | AI-optimized CLI issue tracker (similar to Beads) | https://github.com/obra/issue-cards |
|
|
271
|
+
| `obra/coderabbit-review-helper` | Extract CodeRabbit PR reviews for AI agent consumption | https://github.com/obra/coderabbit-review-helper |
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Recommendations for Forge
|
|
276
|
+
|
|
277
|
+
**Priority 1 (Quick wins, no new features needed):**
|
|
278
|
+
1. Adopt `<HARD-GATE>` pattern in `/research`, `/plan`, `/dev` commands — prevents stage-skipping
|
|
279
|
+
2. Add `brainstorming` as a new stage between `/research` and `/plan` (or make it optional in `/plan`)
|
|
280
|
+
3. Add `verification-before-completion` logic to `/check` command
|
|
281
|
+
|
|
282
|
+
**Priority 2 (New skills):**
|
|
283
|
+
4. Port `systematic-debugging` as `/debug` command
|
|
284
|
+
5. Port `writing-skills` as `/skill` command for authoring new Forge skills
|
|
285
|
+
6. Add git worktree support to `/dev` command (isolated implementation)
|
|
286
|
+
|
|
287
|
+
**Priority 3 (Infrastructure):**
|
|
288
|
+
7. Explore distributing Forge as a Claude Code plugin (`.claude-plugin/` directory) — same distribution model as Superpowers
|
|
289
|
+
8. Add two-stage code review to `/review` command (spec compliance first, then code quality)
|
|
290
|
+
|
|
291
|
+
**What NOT to take:**
|
|
292
|
+
- Don't replace Beads with `obra/issue-cards` — Beads has cross-session persistence and is already integrated
|
|
293
|
+
- Don't replace OpenSpec with `writing-plans` — different purpose levels
|
|
294
|
+
- Don't install Superpowers plugin directly — workflow collision risk until roles are defined
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Sources Index
|
|
299
|
+
|
|
300
|
+
| # | URL | Used For |
|
|
301
|
+
|---|-----|---------|
|
|
302
|
+
| 1 | https://github.com/obra/superpowers | Repo structure, README, skills list |
|
|
303
|
+
| 2 | https://github.com/obra/superpowers/blob/main/README.md | Workflow, installation, philosophy |
|
|
304
|
+
| 3 | https://blog.fsck.com/2025/10/09/superpowers/ | Origin story, session-start hook |
|
|
305
|
+
| 4 | https://simonwillison.net/2025/Oct/10/superpowers/ | Community reception, feelings journal mention |
|
|
306
|
+
| 5 | https://news.ycombinator.com/item?id=45547344 | HN reception (435 pts, 231 comments) |
|
|
307
|
+
| 6 | https://www.threads.com/@obrajesse/post/DVANeBYEfuF/ | 4th most installed in Claude marketplace |
|
|
308
|
+
| 7 | https://github.com/obra/superpowers-marketplace | Marketplace companion repo |
|
|
309
|
+
| 8 | https://github.com/obra/issue-cards | Related obra issue tracker |
|
|
310
|
+
| 9 | https://github.com/obra/coderabbit-review-helper | Related obra PR review tool |
|
|
311
|
+
| 10 | https://mcpmarket.com/server/superpowers | MCP market listing |
|
|
312
|
+
| 11 | https://www.reddit.com/r/ClaudeCode/comments/1r9y2ka/ | User experience reports |
|
|
313
|
+
| 12 | https://www.reddit.com/r/ClaudeCode/comments/1qlsdjb/superpowers_vs_gsd_vs_others/ | Comparison with GSD workflow |
|
|
314
|
+
| 13 | https://www.reddit.com/r/ClaudeCode/comments/1ra8rdy/plan_mode_vs_superpowers_brainstorming_which/ | Plan mode vs brainstorming comparison |
|
|
315
|
+
| 14 | https://blog.devgenius.io/superpowers-explained-the-claude-plugin-that-enforces-tdd-subagents-and-planning-c7fe698c3b82 | Technical explanation |
|
|
316
|
+
| 15 | https://innovationhub.ai.cornell.edu/articles/how-i-built-a-3600-line-feature-in-4-hours-without-writing-a-single-line-of-code/ | Real-world results |
|
|
317
|
+
| 16 | https://sitepoint.com/agentic-engineering-superpowers-framework-agent-capabilities/ | Architecture patterns analysis |
|
|
318
|
+
| 17 | https://st0012.dev/links/2026-01-15-a-claude-code-workflow-with-the-superpowers-plugin/ | `/superpowers:brainstorm` and `/superpowers:write-plan` usage |
|
|
319
|
+
| 18 | https://medium.com/vibe-coding/every-ai-tool-has-plan-mode-none-of-them-do-it-right-6bd540155690 | Plan mode vs Superpowers brainstorming |
|
|
320
|
+
| 19 | https://dev.to/tumf/superpowers-the-technology-to-persuade-ai-agents-why-psychological-principles-change-code-quality-2d2f | Psychological principles in AI instructions |
|