forge-workflow 0.0.10 → 0.1.0-beta.3
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 +82 -5
- package/.forge/hooks/forge-native-hook.js +431 -0
- package/.forge/protected-paths.yaml +157 -0
- package/AGENTS.md +151 -61
- package/CHANGELOG.md +709 -0
- package/CLAUDE.md +9 -118
- package/QUICKSTART.md +175 -0
- package/README.md +275 -365
- package/bin/forge-cmd.js +120 -9
- package/bin/forge-preflight.js +26 -5
- package/bin/forge.js +532 -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/forge/TOOLCHAIN.md +670 -0
- 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 +121 -0
- package/docs/guides/SUPPORT.md +190 -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 +214 -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/{TOOLCHAIN.md → reference/TOOLCHAIN.md} +62 -47
- 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 +155 -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/activation/ensure-forge-home.js +135 -0
- package/lib/adapter-cli.js +307 -0
- package/lib/adapters/beads-issue-adapter.js +127 -0
- package/lib/adapters/beads-kernel-compat.js +1109 -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 +139 -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-detect.js +60 -0
- package/lib/beads-nudge.js +91 -0
- package/lib/beads-setup.js +121 -0
- package/lib/beads-sync-scaffold.js +25 -101
- package/lib/codex-skills.js +51 -1
- package/lib/commands/_aliases.js +248 -0
- package/lib/commands/_issue.js +780 -77
- package/lib/commands/_manifest.js +93 -0
- package/lib/commands/_registry.js +99 -34
- package/lib/commands/_resolve-command-opts.js +230 -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 +209 -0
- package/lib/commands/hooks.js +377 -0
- package/lib/commands/inbox.js +118 -0
- package/lib/commands/init.js +604 -0
- package/lib/commands/insights.js +79 -0
- package/lib/commands/issue.js +12 -1
- package/lib/commands/issues.js +17 -0
- package/lib/commands/lint.js +5 -0
- package/lib/commands/list.js +2 -2
- package/lib/commands/memory.js +81 -0
- package/lib/commands/merge.js +312 -0
- package/lib/commands/migrate.js +362 -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 +481 -29
- package/lib/commands/pr.js +88 -0
- package/lib/commands/preflight.js +211 -0
- package/lib/commands/prime.js +13 -0
- package/lib/commands/push.js +135 -2
- package/lib/commands/ready.js +2 -2
- package/lib/commands/recall.js +171 -0
- package/lib/commands/recap.js +75 -0
- package/lib/commands/recommend.js +0 -1
- package/lib/commands/release.js +104 -0
- package/lib/commands/remember.js +140 -0
- package/lib/commands/role.js +99 -0
- package/lib/commands/serve.js +581 -0
- package/lib/commands/setup.js +900 -971
- package/lib/commands/shepherd.js +501 -0
- package/lib/commands/ship.js +59 -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 +158 -21
- package/lib/commands/sync.js +34 -46
- package/lib/commands/team.js +4 -1
- package/lib/commands/test.js +43 -27
- package/lib/commands/update.js +2 -2
- package/lib/commands/upgrade.js +47 -0
- package/lib/commands/validate.js +43 -18
- package/lib/commands/worktree.js +362 -99
- package/lib/config-writer.js +202 -0
- package/lib/control-plane.js +236 -0
- package/lib/core/runtime-graph.js +977 -0
- package/lib/dep-guard/keyword-ripple.js +2 -2
- package/lib/deprecated-sync-cleanup.js +362 -0
- package/lib/detect-agent.js +2 -28
- package/lib/detect-worktree.js +35 -9
- 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 +382 -11
- package/lib/forge-lock.js +262 -0
- package/lib/gate-events.js +192 -0
- package/lib/global-flags.js +104 -0
- package/lib/greptile-match.js +7 -63
- package/lib/grounding/context-events.js +230 -0
- package/lib/grounding/read-first.js +112 -0
- package/lib/harness-capability-matrix.js +380 -0
- package/lib/hook-global-installer.js +347 -0
- package/lib/hook-renderer.js +541 -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/kernel/backing-issue.js +311 -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/owned-kernel.js +43 -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 +2540 -0
- package/lib/kernel/taxonomy-validator.js +394 -0
- package/lib/lefthook-check.js +3 -2
- 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/auto-actions.js +175 -0
- package/lib/pr-monitor/differ.js +195 -0
- package/lib/pr-monitor/digest.js +206 -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 +192 -0
- package/lib/pr-monitor/upsert-sticky.js +169 -0
- package/lib/pr-monitor/watch-lifecycle.js +95 -0
- package/lib/pr-monitor/watch.js +247 -0
- package/lib/pr-pull.js +1314 -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 +99 -497
- package/lib/protected-path-manifest.js +281 -0
- package/lib/protected-state-surfaces.js +387 -0
- package/lib/release-readiness.js +2105 -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 +241 -20
- 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/scoring.js +17 -3
- package/lib/status/beads-snapshot.js +45 -2
- package/lib/status/presenter.js +169 -18
- 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 +251 -0
- package/lib/workflow/enforce-stage.js +351 -45
- package/lib/workflow/stage-transition.js +115 -0
- package/lib/workflow/stages.js +30 -6
- package/lib/workflow/state-manager.js +11 -22
- package/lib/workflow/state.js +23 -1
- package/lib/workflow-profiles.js +17 -5
- package/package.json +37 -35
- 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 +81 -57
- package/scripts/beads-upgrade-smoke.sh +24 -3
- 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.sh +22 -3
- 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 +49 -84
- 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 +50 -83
- 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/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-auto-actions.js +93 -0
- package/scripts/pr-coordinator.sh +3 -0
- package/scripts/pr-verdict-label.js +50 -0
- package/scripts/preflight-sonar.eslint.config.mjs +44 -0
- package/scripts/preflight.sh +21 -94
- package/scripts/protected-state-check.js +104 -0
- package/scripts/smart-status.sh +60 -57
- 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-utils.sh +3 -0
- package/scripts/test-ci-shard.js +13 -6
- package/scripts/test.js +95 -12
- 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} +44 -50
- 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} +132 -157
- 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/{.github/prompts/ship.prompt.md → skills/ship/SKILL.md} +81 -45
- 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/{.github/prompts/status.prompt.md → skills/status/SKILL.md} +20 -10
- 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/verify.prompt.md +0 -271
- package/.github/workflows/beads-to-github.yml +0 -89
- package/.github/workflows/github-to-beads.yml +0 -100
- 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 -281
- 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-bootstrap.js +0 -225
- package/lib/beads-health-check.js +0 -188
- package/lib/commands/commands-reset.js +0 -147
- package/opencode.json +0 -67
- package/scripts/beads-context.test.js +0 -584
- 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 -356
- package/scripts/github-beads-sync/label-mapper.mjs +0 -54
- package/scripts/github-beads-sync/mapping.mjs +0 -132
- package/scripts/github-beads-sync/reverse-sync-cli.mjs +0 -31
- package/scripts/github-beads-sync/reverse-sync.mjs +0 -162
- package/scripts/github-beads-sync/run-bd.mjs +0 -161
- package/scripts/github-beads-sync/sanitize.mjs +0 -121
- package/scripts/github-beads-sync.config.json +0 -26
- package/scripts/sync-commands.js +0 -600
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Project Workflow Instructions
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Default TDD-First Workflow Template
|
|
4
4
|
|
|
5
|
-
This project
|
|
5
|
+
This project ships a **default TDD-first workflow template** with 6 workflow stages plus a composable **research** skill (a phase of `/plan` and usable standalone). In v3, these stages are one configurable composition over Forge runtime building blocks, not a product-wide mandatory ladder. Commands may be invoked as full stages or as smaller skill fragments when the active plan permits it. Pre-merge is an embedded gate in `/ship` and `/review` (not a numbered stage); `/status` and `/shepherd` are utilities (not stages).
|
|
6
6
|
|
|
7
7
|
| Stage | Command | Purpose | Required For |
|
|
8
8
|
|-------|-------------|-----------------------------------------------------------|--------------|
|
|
@@ -11,24 +11,27 @@ This project enforces a **strict TDD-first development workflow** with 7 stages:
|
|
|
11
11
|
| 3 | `/validate` | Validate + 4-phase debug mode on failure | All types |
|
|
12
12
|
| 4 | `/ship` | Create PR with documentation | All types |
|
|
13
13
|
| 5 | `/review` | Address ALL PR feedback | Critical, Standard |
|
|
14
|
-
| 6 | `/
|
|
15
|
-
|
|
14
|
+
| 6 | `/verify` | Post-merge health check (CI, deployments) | All types |
|
|
15
|
+
|
|
16
|
+
**Pre-merge gate (not a numbered stage)**: Completing docs on the feature branch and handing off the PR for merge is a **task-type gate and checkpoint**, not a standalone workflow stage. The gate runs for Critical, Standard, and Refactor work and is embedded in the `/ship` and `/review` stages — finish the doc updates, confirm CI is green, then hand off the PR. Simple, Hotfix, and Docs work skip the gate.
|
|
16
17
|
|
|
17
18
|
**Utility**: `/status` — Context check before starting work (not a numbered stage)
|
|
18
19
|
|
|
20
|
+
**Utility**: `/shepherd <pr>` — Monitor-driven PR shepherd: one bounded pass that reads CI and check state, re-runs a flaky required check (Tier-A), or escalates, then hands off. It is a utility command, **not** a workflow stage, and does not sit between `/review` and the handoff. It **never merges** (the human merges in the GitHub UI) and **never resolves review threads** (that stays with `/review`). `--auto-rebase` is opt-in and default OFF. See [docs/reference/shepherd.md](docs/reference/shepherd.md).
|
|
21
|
+
|
|
19
22
|
## Automatic Change Classification
|
|
20
23
|
|
|
21
24
|
When the user requests work, **you MUST automatically classify** the change type:
|
|
22
25
|
|
|
23
|
-
### Critical (Full
|
|
26
|
+
### Critical (Full default workflow template)
|
|
24
27
|
**Triggers:** Security, authentication, payments, breaking changes, new architecture, data migrations
|
|
25
28
|
**Example:** "Add OAuth login", "Migrate database schema", "Implement payment gateway"
|
|
26
|
-
**Workflow:** plan → dev → validate → ship → review →
|
|
29
|
+
**Workflow:** plan → dev → validate → ship → review → verify (pre-merge gate before merge)
|
|
27
30
|
|
|
28
|
-
### Standard (
|
|
31
|
+
### Standard (default workflow without post-merge verify)
|
|
29
32
|
**Triggers:** Normal features, enhancements, new components
|
|
30
33
|
**Example:** "Add user profile page", "Create notification system"
|
|
31
|
-
**Workflow:** plan → dev → validate → ship → review
|
|
34
|
+
**Workflow:** plan → dev → validate → ship → review (pre-merge gate before merge)
|
|
32
35
|
|
|
33
36
|
### Simple (3-stage workflow, skip plan)
|
|
34
37
|
**Triggers:** Bug fixes, UI tweaks, small changes, minor refactors
|
|
@@ -48,7 +51,7 @@ When the user requests work, **you MUST automatically classify** the change type
|
|
|
48
51
|
### Refactor (5-stage workflow for safe cleanup)
|
|
49
52
|
**Triggers:** Code cleanup, performance optimization, technical debt reduction
|
|
50
53
|
**Example:** "Refactor auth service", "Extract utility functions"
|
|
51
|
-
**Workflow:** plan → dev → validate → ship
|
|
54
|
+
**Workflow:** plan → dev → validate → ship (pre-merge gate before merge)
|
|
52
55
|
|
|
53
56
|
## Enforcement Philosophy
|
|
54
57
|
|
|
@@ -66,7 +69,7 @@ When the user requests work, **you MUST automatically classify** the change type
|
|
|
66
69
|
|
|
67
70
|
"Skipping tests creates technical debt. I'll:
|
|
68
71
|
✓ Allow this commit
|
|
69
|
-
✓ Create follow-up
|
|
72
|
+
✓ Create follow-up issue for tests
|
|
70
73
|
✓ Document in commit message as [tech-debt]
|
|
71
74
|
|
|
72
75
|
Proceed?"
|
|
@@ -75,11 +78,11 @@ When the user requests work, **you MUST automatically classify** the change type
|
|
|
75
78
|
|
|
76
79
|
Command files (`.claude/commands/*.md` and agent equivalents) must never hardcode example output when a script generates that output dynamically. Reference the script and describe what it does — don't duplicate its output with fake data that becomes stale.
|
|
77
80
|
|
|
78
|
-
## TDD Development (
|
|
81
|
+
## TDD Development (`/dev` Command)
|
|
79
82
|
|
|
80
83
|
**Subagent-driven per-task implementation loop:**
|
|
81
84
|
|
|
82
|
-
1. **Read task list** → Pre-made task list from `/plan` Phase 3 at `docs/
|
|
85
|
+
1. **Read task list** → Pre-made task list from `/plan` Phase 3 at `docs/work/YYYY-MM-DD-<slug>/tasks.md`
|
|
83
86
|
2. **Dispatch implementer subagent per task** → Fresh context, complete task text, relevant design doc sections
|
|
84
87
|
3. **TDD inside implementer** → RED-GREEN-REFACTOR enforced by HARD-GATE:
|
|
85
88
|
- RED: Write failing test first (must run test and show failing output)
|
|
@@ -92,8 +95,8 @@ Command files (`.claude/commands/*.md` and agent equivalents) must never hardcod
|
|
|
92
95
|
**Example execution:**
|
|
93
96
|
```
|
|
94
97
|
/dev starts:
|
|
95
|
-
✓ Read task list: docs/
|
|
96
|
-
✓ Created decisions log: docs/
|
|
98
|
+
✓ Read task list: docs/work/2026-02-26-stripe-billing/tasks.md (8 tasks)
|
|
99
|
+
✓ Created decisions log: docs/work/2026-02-26-stripe-billing/decisions.md
|
|
97
100
|
|
|
98
101
|
Task 1: Types and interfaces
|
|
99
102
|
✓ Implementer: test written → failing → implementation → passing → committed
|
|
@@ -112,13 +115,13 @@ Task 2: Validation logic
|
|
|
112
115
|
|
|
113
116
|
## State Management (Single Source of Truth)
|
|
114
117
|
|
|
115
|
-
> GitHub issue lifecycle may sync to Beads via CI -- see [docs/BEADS_GITHUB_SYNC.md](docs/BEADS_GITHUB_SYNC.md).
|
|
118
|
+
> GitHub issue lifecycle may sync to Beads via CI -- see [docs/guides/BEADS_GITHUB_SYNC.md](docs/guides/BEADS_GITHUB_SYNC.md).
|
|
116
119
|
|
|
117
|
-
**
|
|
120
|
+
**Current implementation**: The Forge Kernel is the default issue-state authority; issue commands read and write the kernel store unless Beads is explicitly selected (`--issue-backend beads`, `FORGE_ISSUE_BACKEND=beads`, or `issueBackend: beads` in `.forge/config.yaml`), where it serves as an import/export/projection compatibility layer. **Direction (D44)**: continue consolidating issue/workflow/run authority in the Kernel with Beads remaining a compatibility projection. New authority work must follow [docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md](docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md) and [docs/reference/FORGE_KERNEL_STORAGE_MODEL.md](docs/reference/FORGE_KERNEL_STORAGE_MODEL.md).
|
|
118
121
|
|
|
119
122
|
```json
|
|
120
123
|
{
|
|
121
|
-
"id": "
|
|
124
|
+
"id": "9f2c41d7-3a8e-4b6f-9c21-5e7d0a184c3b",
|
|
122
125
|
"type": "critical",
|
|
123
126
|
"currentStage": "dev",
|
|
124
127
|
"completedStages": ["plan"],
|
|
@@ -139,38 +142,98 @@ Task 2: Validation logic
|
|
|
139
142
|
}
|
|
140
143
|
```
|
|
141
144
|
|
|
142
|
-
## Git Hooks (Automatic Enforcement)
|
|
145
|
+
## Git Hooks & Push Workflow (Automatic Enforcement)
|
|
146
|
+
|
|
147
|
+
This project uses the **Professional Git Workflow** with Lefthook for automated quality gates.
|
|
143
148
|
|
|
144
149
|
**Pre-commit hook enforces TDD:**
|
|
145
150
|
- Blocks commits if source code modified without test files
|
|
146
151
|
- Offers guided recovery (add tests now, skip with tech debt tracking, emergency override)
|
|
147
152
|
- No AI decision required - automatic validation
|
|
153
|
+
- **Strong default, not a hard floor.** The TDD gate is the default-ON `rail.tdd_intent` rail; turn it off with `forge gate disable rail.tdd_intent` (the `minimal` adoption profile ships it off). The installed hooks read the resolved config at run time, so a disabled rail makes them genuinely inert — enforcement honestly follows your config.
|
|
148
154
|
|
|
149
155
|
**Pre-push hook validates tests:**
|
|
156
|
+
- Branch protection: blocks direct push to `main`/`master`
|
|
157
|
+
- ESLint: blocks on errors and warnings (strict mode, `--max-warnings 0`)
|
|
150
158
|
- All tests must pass before push
|
|
151
159
|
- Can skip for hotfixes with documentation
|
|
152
160
|
|
|
161
|
+
**Pull Request workflow:**
|
|
162
|
+
- PR template auto-fills with a standardized format; the self-review checklist catches most bugs before review
|
|
163
|
+
- Reference the issue id in the PR body (e.g. the Forge Kernel issue id); **all review comments must be resolved** before merge
|
|
164
|
+
- Squash-only merging for a clean, linear history
|
|
165
|
+
|
|
166
|
+
**⚠️ AI agents must NEVER use `LEFTHOOK=0`, `--no-verify`, or any hook bypass.** If a hook fails, fix the underlying issue. Only humans may bypass hooks in emergencies, documented in the PR description.
|
|
167
|
+
|
|
168
|
+
**Preferred push workflow (AI agents and humans):**
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
forge push # Branch protection + lint + tests, then push
|
|
172
|
+
forge push --quick # Review-cycle: lint-only push (CI runs full suite)
|
|
173
|
+
forge worktree create <slug> # Create a worktree
|
|
174
|
+
forge test # Run tests with correct timeouts
|
|
175
|
+
forge sync # Sync issue data
|
|
176
|
+
forge clean # Remove merged worktrees
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Build, Shell, and MCP
|
|
180
|
+
|
|
181
|
+
**Package manager**: Bun (preferred for performance).
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
bun install # Install dependencies
|
|
185
|
+
bun run dev # Start development
|
|
186
|
+
bun run build # Production build
|
|
187
|
+
bun test # Run tests
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**GitHub CLI**: `gh auth login` for the PR workflow.
|
|
191
|
+
|
|
192
|
+
### Shell Model
|
|
193
|
+
|
|
194
|
+
| Platform | Shell used by Forge commands and scripts |
|
|
195
|
+
| --- | --- |
|
|
196
|
+
| Windows | Git Bash for helper-backed Forge stage flows |
|
|
197
|
+
| macOS/Linux | Default login shell |
|
|
198
|
+
|
|
199
|
+
On Windows, Forge runtime health enforces Git Bash for helper-backed stage flows. Native PowerShell is still used by some bootstrap paths, and WSL may be useful for adjacent development tasks. See [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md#shell-model).
|
|
200
|
+
|
|
201
|
+
### MCP Servers (Optional)
|
|
202
|
+
|
|
203
|
+
If your agent supports MCP, these enhance research:
|
|
204
|
+
|
|
205
|
+
- **Context7** - up-to-date library documentation and API reference
|
|
206
|
+
- **grep.app** - search 1M+ GitHub repos for real-world code examples
|
|
207
|
+
|
|
208
|
+
See [.mcp.json.example](.mcp.json.example) for configuration (Claude Code: copy it to `.mcp.json`) and [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md) for detailed setup.
|
|
209
|
+
|
|
153
210
|
## Documentation Index (Context Pointers)
|
|
154
211
|
|
|
155
|
-
**Detailed
|
|
156
|
-
- [
|
|
157
|
-
- [
|
|
158
|
-
- [
|
|
159
|
-
- [
|
|
160
|
-
- [
|
|
161
|
-
- [
|
|
162
|
-
- [
|
|
163
|
-
- [
|
|
212
|
+
**Detailed stage skill instructions** are located in:
|
|
213
|
+
- [skills/status/SKILL.md](skills/status/SKILL.md) - How to check current context (utility)
|
|
214
|
+
- [skills/plan/SKILL.md](skills/plan/SKILL.md) - How to plan features (3 phases: design intent + research + branch/worktree/tasks)
|
|
215
|
+
- [skills/dev/SKILL.md](skills/dev/SKILL.md) - How to implement with subagent-driven TDD and decision gate
|
|
216
|
+
- [skills/validate/SKILL.md](skills/validate/SKILL.md) - How to run validation (with HARD-GATE exit)
|
|
217
|
+
- [skills/ship/SKILL.md](skills/ship/SKILL.md) - How to create PRs
|
|
218
|
+
- [skills/review/SKILL.md](skills/review/SKILL.md) - How to address PR feedback (with HARD-GATE exit)
|
|
219
|
+
- [skills/shepherd/SKILL.md](skills/shepherd/SKILL.md) - How to run a bounded PR monitor pass (utility; never merges, never resolves threads)
|
|
220
|
+
- [skills/verify/SKILL.md](skills/verify/SKILL.md) - How to verify post-merge health
|
|
164
221
|
|
|
165
222
|
**Planning documents** (created by `/plan`, consumed by `/dev`):
|
|
166
|
-
- `docs/
|
|
167
|
-
- `docs/
|
|
168
|
-
- `docs/
|
|
223
|
+
- `docs/work/YYYY-MM-DD-<slug>/plan.md` - Design intent + technical research
|
|
224
|
+
- `docs/work/YYYY-MM-DD-<slug>/tasks.md` - Task list with TDD steps
|
|
225
|
+
- `docs/work/YYYY-MM-DD-<slug>/decisions.md` - Decisions log from /dev
|
|
169
226
|
|
|
170
227
|
**Comprehensive workflow guide:**
|
|
171
228
|
- This file (AGENTS.md) is the single source of truth for the complete workflow
|
|
172
|
-
- [docs/TOOLCHAIN.md](docs/TOOLCHAIN.md) - Tool setup and configuration
|
|
173
|
-
- [docs/VALIDATION.md](docs/VALIDATION.md) - Enforcement and validation details
|
|
229
|
+
- [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md) - Tool setup and configuration
|
|
230
|
+
- [docs/reference/VALIDATION.md](docs/reference/VALIDATION.md) - Enforcement and validation details
|
|
231
|
+
|
|
232
|
+
**Forge v3 / Kernel Plan (active design):**
|
|
233
|
+
- [docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md](docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md) — canonical Forge Kernel authority reset plan for issue authority, local broker, team authority, adapters, storage, and gates
|
|
234
|
+
- [docs/work/2026-04-28-skeleton-pivot/locked-decisions.md](docs/work/2026-04-28-skeleton-pivot/locked-decisions.md) — D1–D44 decisions ledger with rationale + tradeoffs + anti-decisions; D44 supersedes Beads-only authority portions of earlier decisions
|
|
235
|
+
- [docs/work/2026-04-28-skeleton-pivot/v3-redesign-strategy.md](docs/work/2026-04-28-skeleton-pivot/v3-redesign-strategy.md) — historical v3 strategy and background; do not use its legacy default-substrate language over D44
|
|
236
|
+
- See [docs/INDEX.md](docs/INDEX.md) for the full reading order across the v3 design folder
|
|
174
237
|
|
|
175
238
|
**Load these files when you need detailed instructions for a specific stage.**
|
|
176
239
|
|
|
@@ -187,47 +250,40 @@ Every stage transition should carry structured context so the next stage (or a n
|
|
|
187
250
|
| /validate | All checks pass/fail summary | Failures diagnosed | Scripts/commands run | Ship readiness |
|
|
188
251
|
| /ship | PR created, checks pending | Template sections filled | PR URL, branch name | Review focus areas |
|
|
189
252
|
| /review | All feedback addressed | Comment resolutions | Fixed files, commit SHAs | Doc update needs |
|
|
190
|
-
|
|
|
253
|
+
| pre-merge gate | Docs updated, CI green | N/A | Updated doc files | Merge instructions |
|
|
191
254
|
|
|
192
|
-
###
|
|
255
|
+
### Recording Stage Context
|
|
193
256
|
|
|
194
|
-
|
|
257
|
+
Record the stage-exit context as a kernel issue comment so the next stage (or a
|
|
258
|
+
fresh session) can resume from the issue record itself:
|
|
195
259
|
|
|
196
260
|
```bash
|
|
197
|
-
|
|
261
|
+
forge issue comment <issue-id> "stage: dev -> validate
|
|
262
|
+
summary: All 5 tasks done, 1 decision gate fired
|
|
263
|
+
decisions: Used streaming parser over DOM for memory efficiency
|
|
264
|
+
artifacts: lib/parser.js test/parser.test.js
|
|
265
|
+
next: Run lint first — streaming approach may trigger no-await rule"
|
|
198
266
|
```
|
|
199
267
|
|
|
200
|
-
|
|
268
|
+
Check-after-write verification (`gate.issue_verify`, default-on) confirms the
|
|
269
|
+
comment actually landed. Read context back with `forge show <issue-id>` (or
|
|
270
|
+
`forge recap <issue-id>` for the bounded orientation envelope).
|
|
201
271
|
|
|
202
272
|
### Field Definitions
|
|
203
273
|
|
|
204
274
|
- **Summary**: 1-2 sentence recap of what was accomplished in this stage. Example: `--summary "All 5 tasks done, 1 decision gate fired"`
|
|
205
275
|
- **Decisions**: Key choices made during this stage that affect downstream work. Example: `--decisions "Used streaming parser over DOM for memory efficiency"`
|
|
206
|
-
- **Artifacts**: File paths or URLs produced by this stage. Example: `--artifacts "lib/parser.js test/parser.test.js docs/
|
|
276
|
+
- **Artifacts**: File paths or URLs produced by this stage. Example: `--artifacts "lib/parser.js test/parser.test.js docs/work/2026-03-26-parser/plan.md"`
|
|
207
277
|
- **Next**: Guidance for the next stage on what to focus on. Example: `--next "Run lint first — streaming approach may trigger no-await rule"`
|
|
208
278
|
|
|
209
|
-
### Usage in Stage Transitions
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
# Basic (backward compatible)
|
|
213
|
-
bash scripts/beads-context.sh stage-transition <id> dev validate
|
|
214
|
-
|
|
215
|
-
# With context fields (recommended)
|
|
216
|
-
bash scripts/beads-context.sh stage-transition <id> dev validate \
|
|
217
|
-
--summary "All 5 tasks done, 0 gates fired" \
|
|
218
|
-
--decisions "Used approach A per design doc" \
|
|
219
|
-
--artifacts "lib/foo.js test/foo.test.js" \
|
|
220
|
-
--next "Run type check and lint"
|
|
221
|
-
```
|
|
222
|
-
|
|
223
279
|
### Enforcement Level
|
|
224
280
|
|
|
225
|
-
This convention is **advisory only
|
|
281
|
+
This convention is **advisory only** — missing fields never block a stage
|
|
282
|
+
transition. The goal is to build good habits, not to create friction.
|
|
226
283
|
|
|
227
|
-
|
|
228
|
-
## Beads Issue Tracker
|
|
284
|
+
## Forge Issue Tracker
|
|
229
285
|
|
|
230
|
-
This project uses **
|
|
286
|
+
This project uses the **Forge Kernel** for issue tracking. Run `forge prime` to see full workflow context and commands.
|
|
231
287
|
|
|
232
288
|
### Quick Reference
|
|
233
289
|
|
|
@@ -238,11 +294,46 @@ forge claim <id> # Claim work
|
|
|
238
294
|
forge close <id> # Complete work
|
|
239
295
|
```
|
|
240
296
|
|
|
297
|
+
**More commands worth knowing** (run `forge <command> --help` for full usage):
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
forge remember <note> # Persist a project-memory note to a file-backed store
|
|
301
|
+
forge recall [query] # Retrieve project-memory notes back (the read half of remember)
|
|
302
|
+
forge insights # Detect recurring evidence patterns, suggest conservative follow-ups
|
|
303
|
+
forge upgrade # Preview and self-heal safe Forge upgrade readiness
|
|
304
|
+
forge gate <verb> <gate-id> # Toggle a workflow gate, or record/query human-gate approval events
|
|
305
|
+
forge role <role> --use <skill> # Bind a role to a skill/ideology in .forge/config.yaml
|
|
306
|
+
forge merge --auto <pr> # Opt-in conditional auto-merge — merges only when configured rules pass (OFF by default)
|
|
307
|
+
```
|
|
308
|
+
|
|
241
309
|
### Rules
|
|
242
310
|
|
|
243
|
-
- Use `forge` as the routine command surface for
|
|
244
|
-
- Run `
|
|
245
|
-
- Use `
|
|
311
|
+
- Use `forge` as the routine command surface for issue tracking and sync workflows — do NOT use TodoWrite, TaskCreate, or markdown TODO lists. Exception: `/plan` Phase 3 generates task lists at `docs/work/YYYY-MM-DD-<slug>/tasks.md` — these are approved artifacts consumed by `/dev`. New issue-authority work routes through the Forge Kernel design. Use `forge issue` subcommands (e.g. `forge issue dep`, `forge issue comment`) for operations beyond the shortcuts above. GitHub issues may be used for external/public tracking; CI may sync GitHub issue lifecycle to the issue store.
|
|
312
|
+
- Run `forge prime` for detailed command reference and session close protocol
|
|
313
|
+
- Use `forge remember` for persistent knowledge and `forge recall` to retrieve it back — do NOT use MEMORY.md files
|
|
314
|
+
|
|
315
|
+
### Kernel Tracking (nothing discussed goes missing)
|
|
316
|
+
|
|
317
|
+
**NON-NEGOTIABLE, default-on.** Anything raised in a session — a bug, an idea, a
|
|
318
|
+
design decision, a follow-up, a TODO, a risk noticed in passing — MUST become a
|
|
319
|
+
Forge Kernel issue **immediately** via `forge issue create`, before it can be
|
|
320
|
+
forgotten. Triage it (set a type, link its epic/parent) so it is discoverable.
|
|
321
|
+
When you defer scope, file the follow-up issue and reference it — never leave
|
|
322
|
+
work unfiled. The Kernel is the single source of truth; do NOT substitute
|
|
323
|
+
TodoWrite, markdown TODO lists, or memory notes for a filed issue.
|
|
324
|
+
|
|
325
|
+
This policy is canonicalized in `rules/kernel-tracking.md` (rendered to every
|
|
326
|
+
port: `.cursor/rules/kernel-tracking.mdc` for Cursor, this projection for
|
|
327
|
+
Claude/Codex/Hermes) and governed by the default-on `rail.kernel_tracking`
|
|
328
|
+
runtime rail. Turn it off only deliberately: `forge gate disable rail.kernel_tracking`.
|
|
329
|
+
|
|
330
|
+
## Project Learnings
|
|
331
|
+
|
|
332
|
+
- **Scope discipline**: Do ONLY what was explicitly asked. Answer a question → stop. Check something → stop. Never auto-continue to next steps or pending work unless told to.
|
|
333
|
+
- **Stage names**: The validation stage command is `/validate` — renamed in PR #50; do not use the old name.
|
|
334
|
+
- **Unused params**: Prefix with `_` (e.g., `_searchTerm`) — ESLint `no-unused-vars` enforced with `--max-warnings 0`.
|
|
335
|
+
- **Pre-push test env**: `test-env/` fixture tests can fail during actual `git push` due to git mid-push state. Fix the root cause — never use `LEFTHOOK=0`.
|
|
336
|
+
- **Skill sync**: Canonical skills live in `skills/<name>/SKILL.md`; per-agent copies are generated from them. `.agents/skills` (Codex's repo-local discovery path) is committed so a fresh clone gets discovery without `forge setup` — a pre-commit hook keeps it byte-identical to `skills/` and the drift gate enforces it. The other mirrors (`.claude/skills`, `.codex/skills`, `.cursor/skills`, `.hermes/skills`) are gitignored and regenerated at `forge setup`. Never hand-edit a generated mirror — edit the canonical `skills/` source.
|
|
246
337
|
|
|
247
338
|
## Session Completion
|
|
248
339
|
|
|
@@ -256,7 +347,7 @@ forge close <id> # Complete work
|
|
|
256
347
|
4. **PUSH TO REMOTE** - This is MANDATORY:
|
|
257
348
|
```bash
|
|
258
349
|
git pull --rebase
|
|
259
|
-
forge sync # wraps the supported
|
|
350
|
+
forge sync # wraps the supported issue-store sync flow when the issue store is configured
|
|
260
351
|
git push
|
|
261
352
|
git status # MUST show "up to date with origin"
|
|
262
353
|
```
|
|
@@ -270,4 +361,3 @@ forge close <id> # Complete work
|
|
|
270
361
|
- NEVER say "ready to push when you are" - YOU must push
|
|
271
362
|
- If push fails, resolve and retry until it succeeds
|
|
272
363
|
- After fixing review feedback, always push the changes and resolve the related GitHub review threads via the GraphQL API before considering the work complete
|
|
273
|
-
<!-- END BEADS INTEGRATION -->
|