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,68 @@
|
|
|
1
|
+
# Release Reference
|
|
2
|
+
|
|
3
|
+
This page documents release readiness. Package publishing still requires the explicit publish step after merge.
|
|
4
|
+
|
|
5
|
+
## v0.0.11 Boundary
|
|
6
|
+
|
|
7
|
+
v0.0.11 is the public documentation and positioning package release. The release branch bumps package metadata to `0.0.11`; publish only after the release PR is merged, tagged, and validated.
|
|
8
|
+
|
|
9
|
+
Keep these release steps explicit:
|
|
10
|
+
|
|
11
|
+
- Release PR with documentation and package metadata
|
|
12
|
+
- GitHub Release
|
|
13
|
+
- npm publish
|
|
14
|
+
- DeepWiki refresh
|
|
15
|
+
|
|
16
|
+
## Pre-Release Validation
|
|
17
|
+
|
|
18
|
+
Run from a clean release branch or worktree:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
git status --short --branch
|
|
22
|
+
bun run check
|
|
23
|
+
npm pack --dry-run
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
For docs-heavy changes, also run a Markdown link check if available. If no docs checker exists and adding one would broaden the PR, create a follow-up issue instead.
|
|
27
|
+
|
|
28
|
+
## Packaging Check
|
|
29
|
+
|
|
30
|
+
`npm pack --dry-run` should show the package contents without publishing. Confirm new canonical docs that should ship are included and generated junk is not.
|
|
31
|
+
|
|
32
|
+
## Release Notes
|
|
33
|
+
|
|
34
|
+
Release notes should include:
|
|
35
|
+
|
|
36
|
+
- user value
|
|
37
|
+
- migration notes
|
|
38
|
+
- feature flags or experimental areas
|
|
39
|
+
- known limitations
|
|
40
|
+
- rollback path
|
|
41
|
+
- adapter compatibility
|
|
42
|
+
- DeepWiki refresh checklist
|
|
43
|
+
|
|
44
|
+
The v0.0.11 release notes live in [CHANGELOG.md](../../CHANGELOG.md).
|
|
45
|
+
|
|
46
|
+
## Rollback
|
|
47
|
+
|
|
48
|
+
For a release PR:
|
|
49
|
+
|
|
50
|
+
1. Revert the PR if the combined package metadata and public docs create release confusion.
|
|
51
|
+
2. Do not publish until README, CHANGELOG, quickstart, package metadata, and support docs agree.
|
|
52
|
+
3. If DeepWiki generated output is wrong, fix repository docs first, then refresh DeepWiki.
|
|
53
|
+
|
|
54
|
+
## Post-Merge DeepWiki Checklist
|
|
55
|
+
|
|
56
|
+
After merge to `master`:
|
|
57
|
+
|
|
58
|
+
1. Refresh DeepWiki for `harshanandak/forge`.
|
|
59
|
+
2. Confirm the generated index date and commit changed to the merged commit.
|
|
60
|
+
3. Compare generated Overview, Getting Started, and Core Concepts against:
|
|
61
|
+
- [README](../../README.md)
|
|
62
|
+
- [Quickstart](../../QUICKSTART.md)
|
|
63
|
+
- [Docs index](../INDEX.md)
|
|
64
|
+
- [Workflow templates](../guides/WORKFLOW_TEMPLATES.md)
|
|
65
|
+
- [Skills and command projections](SKILLS.md)
|
|
66
|
+
- [Command reference](COMMANDS.md)
|
|
67
|
+
4. File a follow-up issue if generated docs still reflect old seven-stage-only framing.
|
|
68
|
+
5. Record evidence in a PR comment or follow-up issue: DeepWiki index date, indexed commit, pages checked, pass/fail result, and any repository-doc corrections needed.
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
# Research: [Feature Name]
|
|
2
|
+
|
|
3
|
+
**Date**: YYYY-MM-DD
|
|
4
|
+
**Researcher**: Claude AI
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
[What we're trying to achieve - clear problem statement and goals]
|
|
8
|
+
|
|
9
|
+
## Codebase Analysis
|
|
10
|
+
|
|
11
|
+
### Existing Patterns
|
|
12
|
+
- **File**: `path/to/file.ts`
|
|
13
|
+
- **Pattern**: [Description of existing implementation]
|
|
14
|
+
- **Reusability**: [Yes/No + reasoning]
|
|
15
|
+
- **Lessons learned**: [What worked, what didn't]
|
|
16
|
+
|
|
17
|
+
### Affected Modules
|
|
18
|
+
- **Module**: [name]
|
|
19
|
+
- **Changes needed**: [Description]
|
|
20
|
+
- **Impact**: [Low/Medium/High]
|
|
21
|
+
- **Dependencies**: [List any dependencies]
|
|
22
|
+
|
|
23
|
+
### Test Infrastructure
|
|
24
|
+
- **Existing tests**: `path/to/tests/`
|
|
25
|
+
- **Test utilities**: [Available testing tools/helpers]
|
|
26
|
+
- **Coverage**: [Current state - percentage, gaps]
|
|
27
|
+
- **Test patterns**: [What patterns are used - unit, integration, E2E]
|
|
28
|
+
|
|
29
|
+
## Web Research
|
|
30
|
+
|
|
31
|
+
### Best Practices (parallel-web-search)
|
|
32
|
+
1. **Source**: [URL]
|
|
33
|
+
- **Key insight**: [Summary of best practice]
|
|
34
|
+
- **Applicability**: [How it applies to our project]
|
|
35
|
+
- **Decision impact**: [What decision this influences]
|
|
36
|
+
- **Implementation notes**: [How to apply]
|
|
37
|
+
|
|
38
|
+
2. **Source**: [URL]
|
|
39
|
+
- [...]
|
|
40
|
+
|
|
41
|
+
### Known Issues (parallel-web-search)
|
|
42
|
+
1. **Issue**: [Description]
|
|
43
|
+
- **Source**: [GitHub/SO/Blog URL]
|
|
44
|
+
- **Mitigation**: [How to avoid]
|
|
45
|
+
- **Decision impact**: [Changes to approach]
|
|
46
|
+
- **Frequency**: [How common is this issue]
|
|
47
|
+
|
|
48
|
+
2. **Issue**: [...]
|
|
49
|
+
|
|
50
|
+
### Library Documentation (Context7)
|
|
51
|
+
1. **Library**: [name and version]
|
|
52
|
+
- **API**: [Relevant methods/patterns]
|
|
53
|
+
- **Compatibility**: [Version requirements, breaking changes]
|
|
54
|
+
- **Decision impact**: [Implementation details]
|
|
55
|
+
- **Example usage**: [Code snippet]
|
|
56
|
+
|
|
57
|
+
2. **Library**: [...]
|
|
58
|
+
|
|
59
|
+
### Case Studies
|
|
60
|
+
1. **Source**: [URL]
|
|
61
|
+
- **Company/Project**: [Who implemented this]
|
|
62
|
+
- **Scale**: [Production scale, users, data volume]
|
|
63
|
+
- **Lessons**: [What they learned]
|
|
64
|
+
- **Applicability**: [How it relates to our use case]
|
|
65
|
+
|
|
66
|
+
2. **Source**: [...]
|
|
67
|
+
|
|
68
|
+
## Key Decisions & Reasoning
|
|
69
|
+
|
|
70
|
+
### Decision 1: [Decision Title]
|
|
71
|
+
- **Decision**: [What we decided]
|
|
72
|
+
- **Reasoning**: [Why we chose this approach]
|
|
73
|
+
- **Evidence**: [Research that supports this - links to sources]
|
|
74
|
+
- **Alternatives considered**:
|
|
75
|
+
1. [Alternative 1]: [Why rejected]
|
|
76
|
+
2. [Alternative 2]: [Why rejected]
|
|
77
|
+
- **Trade-offs**: [What we're giving up, what we're gaining]
|
|
78
|
+
- **Risk**: [Low/Medium/High] - [Risk description]
|
|
79
|
+
|
|
80
|
+
### Decision 2: [Decision Title]
|
|
81
|
+
- [...]
|
|
82
|
+
|
|
83
|
+
## TDD Test Scenarios (Identified Upfront)
|
|
84
|
+
|
|
85
|
+
### Unit Tests
|
|
86
|
+
1. **Test**: [Scenario description]
|
|
87
|
+
- **File**: `test/path/test.ts`
|
|
88
|
+
- **Function under test**: `functionName()`
|
|
89
|
+
- **Assertions**: [What to verify]
|
|
90
|
+
- **Test data**: [Required test data/mocks]
|
|
91
|
+
- **Edge cases**: [List edge cases to cover]
|
|
92
|
+
|
|
93
|
+
2. **Test**: [...]
|
|
94
|
+
|
|
95
|
+
### Integration Tests
|
|
96
|
+
1. **Test**: [Scenario description]
|
|
97
|
+
- **File**: `test/integration/test.ts`
|
|
98
|
+
- **Components**: [What components are being tested together]
|
|
99
|
+
- **Assertions**: [What to verify]
|
|
100
|
+
- **Test data**: [Database fixtures, API mocks]
|
|
101
|
+
|
|
102
|
+
2. **Test**: [...]
|
|
103
|
+
|
|
104
|
+
### E2E Tests
|
|
105
|
+
1. **Test**: [User flow scenario]
|
|
106
|
+
- **File**: `test/e2e/test.ts`
|
|
107
|
+
- **User flow**: [Step-by-step user actions]
|
|
108
|
+
- **Assertions**: [What user should see/experience]
|
|
109
|
+
- **Test data**: [Complete test environment setup]
|
|
110
|
+
|
|
111
|
+
2. **Test**: [...]
|
|
112
|
+
|
|
113
|
+
## Security Analysis (OWASP Top 10 + Feature-Specific)
|
|
114
|
+
|
|
115
|
+
### OWASP Top 10 Applicability
|
|
116
|
+
|
|
117
|
+
#### A01: Broken Access Control
|
|
118
|
+
- **Risk**: [High/Medium/Low]
|
|
119
|
+
- **Applicable**: [Yes/No]
|
|
120
|
+
- **Mitigation**: [How addressed - RLS policies, permission checks]
|
|
121
|
+
- **Tests**: [Security test scenarios]
|
|
122
|
+
- **Evidence**: [Links to security research]
|
|
123
|
+
|
|
124
|
+
#### A02: Cryptographic Failures
|
|
125
|
+
- **Risk**: [High/Medium/Low]
|
|
126
|
+
- **Applicable**: [Yes/No]
|
|
127
|
+
- **Mitigation**: [Encryption at rest/transit, key management]
|
|
128
|
+
- **Tests**: [Encryption tests]
|
|
129
|
+
- **Compliance**: [Data protection requirements]
|
|
130
|
+
|
|
131
|
+
#### A03: Injection
|
|
132
|
+
- **Risk**: [High/Medium/Low]
|
|
133
|
+
- **Applicable**: [Yes/No]
|
|
134
|
+
- **Mitigation**: [Parameterized queries, input validation, sanitization]
|
|
135
|
+
- **Tests**: [SQL injection tests, XSS tests, command injection tests]
|
|
136
|
+
- **Libraries**: [What libraries help prevent injection]
|
|
137
|
+
|
|
138
|
+
#### A04: Insecure Design
|
|
139
|
+
- **Risk**: [High/Medium/Low]
|
|
140
|
+
- **Threat model**: [Key threats identified]
|
|
141
|
+
- **Secure design patterns**: [Patterns used - zero trust, defense in depth]
|
|
142
|
+
- **Architecture review**: [Security considerations in design]
|
|
143
|
+
- **Tests**: [Security design validation]
|
|
144
|
+
|
|
145
|
+
#### A05: Security Misconfiguration
|
|
146
|
+
- **Risk**: [High/Medium/Low]
|
|
147
|
+
- **Configuration reviewed**: [Yes/No]
|
|
148
|
+
- **Security headers**: [CSP, HSTS, X-Frame-Options, etc.]
|
|
149
|
+
- **Error handling**: [No sensitive info in errors]
|
|
150
|
+
- **Default accounts**: [No default/test credentials]
|
|
151
|
+
- **Tests**: [Configuration security tests]
|
|
152
|
+
|
|
153
|
+
#### A06: Vulnerable Components
|
|
154
|
+
- **Risk**: [High/Medium/Low]
|
|
155
|
+
- **Dependencies scanned**: [Yes/No - tool used]
|
|
156
|
+
- **Known CVEs**: [Count and severity from scan]
|
|
157
|
+
- **Update plan**: [If vulnerabilities found]
|
|
158
|
+
- **Monitoring**: [Dependabot, Snyk, etc.]
|
|
159
|
+
- **Tests**: [Dependency security checks]
|
|
160
|
+
|
|
161
|
+
#### A07: Identification and Authentication Failures
|
|
162
|
+
- **Risk**: [High/Medium/Low]
|
|
163
|
+
- **Auth mechanism**: [OAuth2/JWT/Session/etc.]
|
|
164
|
+
- **Session management**: [Secure/reviewed - timeout, rotation]
|
|
165
|
+
- **Password policy**: [Requirements if applicable]
|
|
166
|
+
- **MFA**: [Required/Optional/Not applicable]
|
|
167
|
+
- **Brute force protection**: [Rate limiting, account lockout]
|
|
168
|
+
- **Tests**: [Authentication tests, session tests]
|
|
169
|
+
|
|
170
|
+
#### A08: Software and Data Integrity Failures
|
|
171
|
+
- **Risk**: [High/Medium/Low]
|
|
172
|
+
- **Integrity checks**: [Where implemented - signatures, checksums]
|
|
173
|
+
- **Code signing**: [Yes/No]
|
|
174
|
+
- **CI/CD security**: [Pipeline reviewed, secrets management]
|
|
175
|
+
- **Supply chain**: [Trusted sources, verification]
|
|
176
|
+
- **Tests**: [Integrity validation tests]
|
|
177
|
+
|
|
178
|
+
#### A09: Security Logging and Monitoring Failures
|
|
179
|
+
- **Risk**: [High/Medium/Low]
|
|
180
|
+
- **Security events logged**: [List what's tracked]
|
|
181
|
+
- **Audit trail**: [What's tracked for compliance]
|
|
182
|
+
- **No sensitive data**: [Verified - no passwords/tokens in logs]
|
|
183
|
+
- **Alerting**: [Security alerts configured]
|
|
184
|
+
- **Log retention**: [Duration and compliance]
|
|
185
|
+
- **Tests**: [Logging tests, no sensitive data tests]
|
|
186
|
+
|
|
187
|
+
#### A10: Server-Side Request Forgery (SSRF)
|
|
188
|
+
- **Risk**: [High/Medium/Low]
|
|
189
|
+
- **External requests**: [Where made in code]
|
|
190
|
+
- **URL validation**: [Whitelist/validation rules]
|
|
191
|
+
- **Network restrictions**: [Firewall rules, VPC]
|
|
192
|
+
- **Input sanitization**: [User-controlled URLs]
|
|
193
|
+
- **Tests**: [SSRF prevention tests]
|
|
194
|
+
|
|
195
|
+
### Feature-Specific Security Risks
|
|
196
|
+
|
|
197
|
+
1. **Risk**: [Specific risk for this feature]
|
|
198
|
+
- **Likelihood**: High/Medium/Low
|
|
199
|
+
- **Impact**: High/Medium/Low
|
|
200
|
+
- **Attack vector**: [How this could be exploited]
|
|
201
|
+
- **Mitigation**: [Specific solution]
|
|
202
|
+
- **Evidence**: [Research source showing this risk]
|
|
203
|
+
- **Tests**: [Security test scenarios]
|
|
204
|
+
- **Monitoring**: [How to detect attacks]
|
|
205
|
+
|
|
206
|
+
2. **Risk**: [Next risk]
|
|
207
|
+
- [...]
|
|
208
|
+
|
|
209
|
+
### Security Test Scenarios (TDD)
|
|
210
|
+
|
|
211
|
+
1. **Test**: Unauthorized access attempt should fail
|
|
212
|
+
- **File**: `test/security/access-control.test.ts`
|
|
213
|
+
- **Scenario**: User tries to access another team's data
|
|
214
|
+
- **Expected**: 403 Forbidden, no data leak
|
|
215
|
+
|
|
216
|
+
2. **Test**: SQL injection attempt should be blocked
|
|
217
|
+
- **File**: `test/security/injection.test.ts`
|
|
218
|
+
- **Scenario**: Malicious input in query parameter
|
|
219
|
+
- **Expected**: Input sanitized, no SQL execution, error logged
|
|
220
|
+
|
|
221
|
+
3. **Test**: XSS attempt should be sanitized
|
|
222
|
+
- **File**: `test/security/xss.test.ts`
|
|
223
|
+
- **Scenario**: Script tag in user input
|
|
224
|
+
- **Expected**: HTML escaped, no script execution
|
|
225
|
+
|
|
226
|
+
4. **Test**: [Additional security tests]
|
|
227
|
+
- [...]
|
|
228
|
+
|
|
229
|
+
## Scope Assessment
|
|
230
|
+
|
|
231
|
+
- **Type**: Tactical / Strategic
|
|
232
|
+
- **Rationale**: [Why this classification]
|
|
233
|
+
- **OpenSpec needed**: Yes / No
|
|
234
|
+
|
|
235
|
+
- **Complexity**: Low / Medium / High
|
|
236
|
+
- **Rationale**: [Number of files, systems involved, dependencies]
|
|
237
|
+
- **Estimated effort**: [Without time, describe scope]
|
|
238
|
+
|
|
239
|
+
- **Parallel opportunity**: Yes / No
|
|
240
|
+
- **Rationale**: [Independent tracks available?]
|
|
241
|
+
- **Tracks**: [If yes, list potential parallel tracks]
|
|
242
|
+
|
|
243
|
+
- **Estimated files**: [Count]
|
|
244
|
+
- **New files**: [List]
|
|
245
|
+
- **Modified files**: [List]
|
|
246
|
+
|
|
247
|
+
- **Dependencies**:
|
|
248
|
+
- **Internal**: [Other features/modules]
|
|
249
|
+
- **External**: [Third-party libraries]
|
|
250
|
+
- **Blockers**: [Any blocking dependencies]
|
|
251
|
+
|
|
252
|
+
- **Security risk level**: Low / Medium / High / Critical
|
|
253
|
+
- **Rationale**: [Based on OWASP analysis]
|
|
254
|
+
- **Mitigation priority**: [When to address]
|
|
255
|
+
|
|
256
|
+
## Next Steps
|
|
257
|
+
|
|
258
|
+
1. **If Strategic**: Create OpenSpec proposal
|
|
259
|
+
- `openspec proposal create <feature-slug>`
|
|
260
|
+
- Write proposal.md, tasks.md, plan.md
|
|
261
|
+
- Reference this research doc for evidence
|
|
262
|
+
|
|
263
|
+
2. **Create Beads issue**:
|
|
264
|
+
- `bd create "<feature-name>"`
|
|
265
|
+
- Link to this research doc
|
|
266
|
+
- Link to OpenSpec if strategic
|
|
267
|
+
|
|
268
|
+
3. **Create branch**:
|
|
269
|
+
- `git checkout -b feat/<feature-slug>`
|
|
270
|
+
|
|
271
|
+
4. **Proceed to /plan**:
|
|
272
|
+
- Read this research doc
|
|
273
|
+
- Create formal implementation plan
|
|
274
|
+
- Wait for OpenSpec approval if strategic
|
|
275
|
+
|
|
276
|
+
## Research Checklist
|
|
277
|
+
|
|
278
|
+
- [ ] Codebase exploration complete
|
|
279
|
+
- [ ] parallel-web-search web research complete (multiple sources)
|
|
280
|
+
- [ ] Context7 library documentation reviewed
|
|
281
|
+
- [ ] Case studies analyzed
|
|
282
|
+
- [ ] All key decisions documented with evidence
|
|
283
|
+
- [ ] TDD test scenarios identified upfront
|
|
284
|
+
- [ ] OWASP Top 10 analysis complete
|
|
285
|
+
- [ ] Feature-specific security risks identified
|
|
286
|
+
- [ ] Security test scenarios defined
|
|
287
|
+
- [ ] Scope assessment complete
|
|
288
|
+
- [ ] Next steps clear
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
**Note**: This research document serves as the single source of truth for all architectural and implementation decisions. Reference it throughout the development lifecycle (in OpenSpec proposals, PR descriptions, code reviews, and documentation).
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# Forge Enhancement Roadmap
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Historical design artifact. Do not use this page for current package release planning, command availability, or public positioning. Current public release guidance lives in [Release Reference](RELEASE.md), [CHANGELOG](../../CHANGELOG.md), [Workflow templates](../guides/WORKFLOW_TEMPLATES.md), and [Skills and command projections](SKILLS.md).
|
|
4
|
+
> Historical snapshot: this roadmap is preserved for context only. Current public release guidance lives in [Release Reference](RELEASE.md), [CHANGELOG](../../CHANGELOG.md), and the runtime building-block work under `docs/work/2026-04-28-skeleton-pivot/`. References to `v3`, `/research`, or old PR sequences are historical/internal labels, not current package release instructions.
|
|
5
|
+
|
|
6
|
+
**Historical implementation plan for an earlier automation-heavy Forge direction.**
|
|
4
7
|
|
|
5
8
|
**Plan Created**: 2026-02-10
|
|
6
9
|
**Status**: Phase 2 complete. PRs 0-6 merged, PR7-PR8 pending.
|
|
@@ -22,7 +25,7 @@
|
|
|
22
25
|
|
|
23
26
|
## Overview
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
Historical goal from this snapshot:
|
|
26
29
|
|
|
27
30
|
- ✅ **Enhanced Multi-Agent Support**: Universal AGENTS.md + 8 supported agents (Claude Code, Cursor, Cline, OpenCode, Copilot, Kilo Code, Roo Code, Codex)
|
|
28
31
|
- ✅ **Comprehensive Testing**: 80%+ code coverage, E2E tests, mutation testing
|
|
@@ -175,7 +178,7 @@ PR0 (Simplification) → PR1 (Fixes) → PR2 (Security) → PR3 (Test Infra)
|
|
|
175
178
|
|
|
176
179
|
### **PR5: Advanced Testing Expansion** 🔬
|
|
177
180
|
**Beads Issue**: `forge-01p`
|
|
178
|
-
**Research**:
|
|
181
|
+
**Research**: historical `docs/research/advanced-testing.md` (PR #36)
|
|
179
182
|
**Status**: Research complete, ready for `/plan`
|
|
180
183
|
**Timeline**: 2-3 days
|
|
181
184
|
**Impact**: Medium
|
|
@@ -204,7 +207,7 @@ PR0 (Simplification) → PR1 (Fixes) → PR2 (Security) → PR3 (Test Infra)
|
|
|
204
207
|
|
|
205
208
|
### **PR6: Plugin Architecture & Smart Recommendations** 🔌
|
|
206
209
|
**Beads Issue**: `forge-a7n`
|
|
207
|
-
**Research**:
|
|
210
|
+
**Research**: historical `docs/research/plugin-architecture.md` (PR #37)
|
|
208
211
|
**Status**: Research complete, ready for `/plan`
|
|
209
212
|
**Timeline**: 4-5 days
|
|
210
213
|
**Impact**: High (flagship feature)
|
|
@@ -310,7 +313,7 @@ Each PR follows the Forge workflow:
|
|
|
310
313
|
|
|
311
314
|
- **Master Plan**: `docs/plans/*.md` (global, tracked by Claude Code)
|
|
312
315
|
- **Roadmap**: `docs/ROADMAP.md` (repository, git-tracked)
|
|
313
|
-
- **Beads Tracking**: `.beads/
|
|
316
|
+
- **Beads Tracking**: `.beads/` local runtime state; shared tracking must use sync/server authority or explicit projection/import artifacts.
|
|
314
317
|
|
|
315
318
|
---
|
|
316
319
|
|
|
@@ -336,8 +339,8 @@ Each PR is self-contained and can be rolled back independently:
|
|
|
336
339
|
1. ✅ **PR4 Completed** — CLI command automation merged (PR #33)
|
|
337
340
|
|
|
338
341
|
2. ✅ **Research complete** for PR5 and PR6:
|
|
339
|
-
- PR5 research:
|
|
340
|
-
- PR6 research:
|
|
342
|
+
- PR5 research: historical `docs/research/advanced-testing.md` (PR #36)
|
|
343
|
+
- PR6 research: historical `docs/research/plugin-architecture.md` (PR #37)
|
|
341
344
|
- PR6 scope expanded: smart plugin recommendations, CLI-first, pricing transparency
|
|
342
345
|
- forge-mlm absorbed into PR5.5 + PR6 + PR8
|
|
343
346
|
|
|
@@ -349,8 +352,8 @@ Each PR is self-contained and can be rolled back independently:
|
|
|
349
352
|
|
|
350
353
|
- **Master Plan**: `docs/plans/*.md`
|
|
351
354
|
- **Beads Issues**: `forge list` or `forge show <issue-id>`
|
|
352
|
-
- **Workflow Guide**: [AGENTS.md](
|
|
353
|
-
- **Architecture Docs**:
|
|
355
|
+
- **Workflow Guide**: [AGENTS.md](../../AGENTS.md)
|
|
356
|
+
- **Architecture Docs**: historical PR0 placeholder, superseded by [Docs Index](../INDEX.md)
|
|
354
357
|
|
|
355
358
|
---
|
|
356
359
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Skills And Command Projections
|
|
2
|
+
|
|
3
|
+
Forge uses both skills and command files today. They are related, but they are not the same surface.
|
|
4
|
+
|
|
5
|
+
## Current v0.0.11 Reality
|
|
6
|
+
|
|
7
|
+
- Codex stage workflows are packaged as `.codex/skills/<stage>/SKILL.md`.
|
|
8
|
+
- Claude Code and Cursor receive command projections. Forge currently supports Claude Code, Codex, and Cursor; Hermes support is planned.
|
|
9
|
+
- `scripts/check-agents.js` currently treats Codex as the exception where command capability is satisfied through `.codex/skills/`.
|
|
10
|
+
- `test/agent-gaps.test.js` still asserts `.claude/commands/` as the current canonical sync source for command projection checks.
|
|
11
|
+
|
|
12
|
+
That means `docs/reference/COMMANDS.md` should remain the CLI command reference. It should not be renamed into a skills reference until the source, sync script, tests, and package contents move together.
|
|
13
|
+
|
|
14
|
+
## Product Direction
|
|
15
|
+
|
|
16
|
+
The intended direction is skills-first agent packaging:
|
|
17
|
+
|
|
18
|
+
- Stage behavior becomes portable `SKILL.md` packages.
|
|
19
|
+
- Command files become harness-specific projections or compatibility aliases.
|
|
20
|
+
- `skills sync` and Forge setup project the same stage behavior into each supported harness.
|
|
21
|
+
- Extension manifests can contribute stages, substages, evaluator regions, adapters, hooks, and evidence collectors.
|
|
22
|
+
|
|
23
|
+
This direction is documented as roadmap material until the implementation and tests make it current behavior.
|
|
24
|
+
|
|
25
|
+
## Documentation Rule
|
|
26
|
+
|
|
27
|
+
Use these names consistently:
|
|
28
|
+
|
|
29
|
+
- Command reference: current `forge` CLI commands and package binaries.
|
|
30
|
+
- Workflow templates: default stage paths and customization rules.
|
|
31
|
+
- Skills: agent-facing stage packages and future portable extension units.
|
|
32
|
+
- Harness projections: generated command, prompt, workflow, or skill files for a specific agent.
|
|
33
|
+
|
|
34
|
+
Do not claim that commands have fully moved to skills until source, tests, generated files, and package contents prove that migration.
|
|
35
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Status And Board
|
|
2
|
+
|
|
3
|
+
`forge status` is a local personal focus surface. With no arguments it reads git context plus local Beads runtime files and shows active assigned work, ready work, blocked work, stale work, recent completions, and workflow state when available.
|
|
4
|
+
|
|
5
|
+
`forge board` is a local team runtime board. It consumes the same snapshot as `forge status` and groups all local issues into active, ready, blocked, stale, and recent completion columns.
|
|
6
|
+
|
|
7
|
+
## JSON Mode
|
|
8
|
+
|
|
9
|
+
Both commands support `--json`.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
forge status --json
|
|
13
|
+
forge board --json
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The JSON shape mirrors each command's human sections:
|
|
17
|
+
|
|
18
|
+
- `forge status --json` returns `context`, `personal`, `workflow` when detected, and `limits`.
|
|
19
|
+
- `forge board --json` returns `context`, `board`, and `limits`.
|
|
20
|
+
- `personal` contains the status-focused issue groups for the current developer.
|
|
21
|
+
- `board` contains the team issue groups over the same local snapshot.
|
|
22
|
+
|
|
23
|
+
## Sample Output
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Context
|
|
27
|
+
Branch: codex/0.0.18-team-status
|
|
28
|
+
Worktree: linked
|
|
29
|
+
Working tree: clean
|
|
30
|
+
|
|
31
|
+
Active Issues
|
|
32
|
+
forge-sxg2 0.0.18 forge status command for personal work focus [in_progress]
|
|
33
|
+
|
|
34
|
+
Ready
|
|
35
|
+
forge-next Follow-up issue
|
|
36
|
+
|
|
37
|
+
Blocked
|
|
38
|
+
forge-11ds 0.0.18 team runtime board [open]
|
|
39
|
+
|
|
40
|
+
Stale
|
|
41
|
+
none
|
|
42
|
+
|
|
43
|
+
Recent Completions
|
|
44
|
+
forge-besw.12 0.0.17 insights and recap
|
|
45
|
+
|
|
46
|
+
Workflow
|
|
47
|
+
Development (dev)
|
|
48
|
+
Run now: /dev
|
|
49
|
+
Next after this: /validate
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
Team Runtime Board
|
|
54
|
+
Source: local Beads runtime state
|
|
55
|
+
Branch: codex/0.0.18-team-status
|
|
56
|
+
Working tree: clean
|
|
57
|
+
|
|
58
|
+
Active
|
|
59
|
+
forge-sxg2 0.0.18 forge status command for personal work focus [in_progress]
|
|
60
|
+
|
|
61
|
+
Ready
|
|
62
|
+
none
|
|
63
|
+
|
|
64
|
+
Blocked
|
|
65
|
+
forge-11ds 0.0.18 team runtime board [open]
|
|
66
|
+
|
|
67
|
+
Stale
|
|
68
|
+
none
|
|
69
|
+
|
|
70
|
+
Recent Completions
|
|
71
|
+
forge-besw.12 0.0.17 insights and recap
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Limits
|
|
75
|
+
|
|
76
|
+
These commands are read-only and local. They do not create orchestration, mutate issue state, query GitHub, inspect review providers, infer CI health, or sync remote project fields. The data is only as current as `.beads/issues.jsonl` in the current checkout.
|
|
77
|
+
|
|
78
|
+
## Non-Scope
|
|
79
|
+
|
|
80
|
+
This surface does not implement ReviewAdapter, IssueAdapter, GitHub sync, GitHub Projects v2, sprint velocity, or remote review-response detection.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Adoption Templates
|
|
2
|
+
|
|
3
|
+
Forge templates are adoption scaffolds over runtime graph primitives. They are not the product surface: the generated `.forge/config.yaml` stays inspectable with `forge options`.
|
|
4
|
+
|
|
5
|
+
## Entry Point
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
forge init
|
|
9
|
+
forge init --yes
|
|
10
|
+
forge init --profile minimal --classification standard --harness codex --yes
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`forge init` is the day-one entry door for fresh repositories. It creates the local `.forge/` skeleton without assuming a prior v2 install or running the `forge new` onboarding wizard.
|
|
14
|
+
|
|
15
|
+
Generated files:
|
|
16
|
+
|
|
17
|
+
- `.forge/config.yaml` records the adoption profile, default classification, Layer 1 rail confirmation, and harness targets.
|
|
18
|
+
- `.forge/patch.md` is an empty patch-intent placeholder for future local overrides.
|
|
19
|
+
- `.forge/protected-paths.yaml` records the protected path manifest scaffold. Currently, only the manifest structure is generated; protected-state enforcement is not yet implemented.
|
|
20
|
+
|
|
21
|
+
When run interactively, `forge init` asks for:
|
|
22
|
+
|
|
23
|
+
- default classification: `critical`, `standard`, or `refactor`.
|
|
24
|
+
- Layer 1 rail confirmation.
|
|
25
|
+
- harness targets: `claude`, `cursor`, and/or `codex`.
|
|
26
|
+
|
|
27
|
+
Harness defaults are detected from filesystem markers where supported:
|
|
28
|
+
|
|
29
|
+
- `.claude` selects `claude`.
|
|
30
|
+
- `.cursor` selects `cursor`.
|
|
31
|
+
- `.codex` selects `codex`.
|
|
32
|
+
|
|
33
|
+
`forge init --yes` is deterministic for automation: it uses the `standard` profile, `standard` classification, confirms Layer 1 rails, and selects detected harness targets or `codex` when none are detected.
|
|
34
|
+
|
|
35
|
+
`forge init` does not overwrite existing generated files. Re-run with `--force` only when replacing `.forge/config.yaml`, `.forge/patch.md`, and `.forge/protected-paths.yaml` is intentional.
|
|
36
|
+
|
|
37
|
+
Profile shortcuts remain available:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
forge init --minimal
|
|
41
|
+
forge init --standard
|
|
42
|
+
forge init --full
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`forge setup --minimal` remains a separate shortcut for repositories that want setup behavior rather than only the day-one `.forge/` skeleton.
|
|
46
|
+
|
|
47
|
+
Stage commands such as `/review` and `/verify` are agent workflow stages. Do not present them as standalone `forge review` or `forge verify` CLI commands unless those commands exist in the current CLI registry. Pre-merge is not a stage or a `/premerge` command — it is a documentation-and-handoff gate embedded in `/ship` and `/review`.
|
|
48
|
+
|
|
49
|
+
## Planning Template
|
|
50
|
+
|
|
51
|
+
`/plan` is represented as a configurable planning template in the runtime graph. The default template runs the full planning loop:
|
|
52
|
+
|
|
53
|
+
- `plan.intent_capture`
|
|
54
|
+
- `plan.parallel_research`
|
|
55
|
+
- `plan.parallel_critics`
|
|
56
|
+
- `plan.synthesis`
|
|
57
|
+
- `plan.final_lock`
|
|
58
|
+
|
|
59
|
+
Projects can tune planning depth in `.forge/config.yaml` without introducing another planner-specific config file:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
planning:
|
|
63
|
+
template:
|
|
64
|
+
mode: partial
|
|
65
|
+
convergenceThreshold: 0.8
|
|
66
|
+
criticSet:
|
|
67
|
+
- spec
|
|
68
|
+
- security
|
|
69
|
+
partialInvocation:
|
|
70
|
+
only:
|
|
71
|
+
- plan.parallel_critics
|
|
72
|
+
skip:
|
|
73
|
+
- plan.parallel_research
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Inspect the resolved behavior with:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
forge options why plan.parallel_critics
|
|
80
|
+
forge options diff
|
|
81
|
+
forge options lint
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Invalid planning modes, thresholds outside `0..1`, blank critics, and unknown planning sub-skills fail through `forge options lint`.
|
|
85
|
+
|
|
86
|
+
## Profiles
|
|
87
|
+
|
|
88
|
+
| Profile | Purpose | Output |
|
|
89
|
+
|---------|---------|--------|
|
|
90
|
+
| `minimal` | Smallest adoption skeleton for a clean repository. | Writes the day-one `.forge/` files with workflow gates and issue adapters disabled unless selected later. |
|
|
91
|
+
| `standard` | Default Forge command flow metadata. | Writes the day-one `.forge/` files with default gates enabled and Beads/GitHub issue adapter metadata. |
|
|
92
|
+
| `full` | Explicit full scaffold. | Writes the day-one `.forge/` files with rails, gates, adapters, and protected paths made explicit. |
|
|
93
|
+
|
|
94
|
+
## Inspect The Result
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
forge options lint
|
|
98
|
+
forge options diff
|
|
99
|
+
forge options stages --json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The generated config includes `template.kind`, `template.version`, `template.profile`, and `template.ancestry` so users can see which scaffold produced the current defaults.
|
|
103
|
+
|
|
104
|
+
## Non-Scope
|
|
105
|
+
|
|
106
|
+
This flow does not implement harness translation, adapter marketplace installation, upgrade or rollback, guaranteed protected-state enforcement in every repository, `forge new`, or patch intent execution.
|