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,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research
|
|
3
|
+
description: >
|
|
4
|
+
Forge RESEARCH — a first-class, freely-invocable investigation skill any agent can call
|
|
5
|
+
standalone OR mid-workflow (mid-/dev, mid-/validate, mid-/plan), not a plan-only stage. Use
|
|
6
|
+
it to verify/fact-check a claim against primary sources; web-search best practices, gotchas,
|
|
7
|
+
and docs; find better options/patterns and weigh trade-offs; see both sides (steelman the
|
|
8
|
+
right way AND red-team the wrong way); pull inspiration from stronger sources; and run the
|
|
9
|
+
/plan Phase 2 bundle (web research + OWASP Top 10 + DRY/blast-radius codebase exploration +
|
|
10
|
+
3+ TDD scenarios) under `## Technical Research`. Trigger on "verify/fact-check this",
|
|
11
|
+
"research X",
|
|
12
|
+
"find a better way/option", "is this true", "get inspiration", "run the research phase", or
|
|
13
|
+
mid-task "investigate before I decide". Pick over siblings: `parallel-deep-research` for a
|
|
14
|
+
heavyweight EXTERNAL market/competitive report (paid Parallel AI); `plan` for the full plan
|
|
15
|
+
stage (brainstorm + tasks); `dev` or `validate` to implement or scan rather than investigate.
|
|
16
|
+
allowed-tools: Bash, Read, Write, Grep, Glob, WebSearch, WebFetch
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Investigate anything, from anywhere: verify a claim, search the web, find better options, pull
|
|
20
|
+
inspiration from stronger sources, weigh perspectives, and package technical research for a plan.
|
|
21
|
+
|
|
22
|
+
# Research
|
|
23
|
+
|
|
24
|
+
`/research` is a **first-class capability**, not a stage. Any agent may invoke it at any point —
|
|
25
|
+
standalone, or in the middle of another skill — whenever a question needs evidence before a
|
|
26
|
+
decision. It is broader than `parallel-deep-research`: that sibling is a heavyweight external
|
|
27
|
+
market/industry report; this skill is your everyday "go find out and come back with evidence."
|
|
28
|
+
|
|
29
|
+
## When to use it
|
|
30
|
+
|
|
31
|
+
- **Verify a claim** — "is this API deprecated?", "does this library support X?", "is this the
|
|
32
|
+
current best practice?" Confirm or refute against primary sources.
|
|
33
|
+
- **Find a better way / better options** — enumerate real alternatives and compare trade-offs.
|
|
34
|
+
- **Web research** — best practices, gotchas, current docs, changelogs, version differences.
|
|
35
|
+
- **Inspiration / prior art** — pull stronger plans, patterns, and reference implementations
|
|
36
|
+
from better sources than memory.
|
|
37
|
+
- **Multi-perspective** — see it done the right way AND the wrong way; steelman and red-team.
|
|
38
|
+
- **Codebase research** — DRY, blast-radius, reusable patterns already in the repo.
|
|
39
|
+
- **/plan Phase 2 bundle** — the packaged deliverable `plan` delegates to (see "Plan bundle").
|
|
40
|
+
|
|
41
|
+
## How to invoke
|
|
42
|
+
|
|
43
|
+
Standalone (user asks directly):
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
/research <question or claim>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
From inside another skill or agent — call the Skill tool mid-flow:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Skill("research") # then hand it the specific question + why you're asking
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Always give research: (1) the concrete question or claim, (2) the decision it feeds, and
|
|
56
|
+
(3) any constraints (stack, versions, repo area). Research returns **evidence, not opinion**:
|
|
57
|
+
cited findings, and — when a caller needs it — a recommendation with the trade-offs shown.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Modes
|
|
62
|
+
|
|
63
|
+
Pick the mode(s) that fit the question. Most investigations combine two or three.
|
|
64
|
+
|
|
65
|
+
### Mode A — Verify / fact-check a claim
|
|
66
|
+
|
|
67
|
+
1. State the claim in one sentence and what would confirm vs refute it.
|
|
68
|
+
2. Pull **primary sources** first (official docs, source code, specs, changelogs) via WebSearch
|
|
69
|
+
→ WebFetch. Secondary sources (blogs, SO) only corroborate.
|
|
70
|
+
3. Adversarially check: look for the counter-evidence, not just confirmation.
|
|
71
|
+
4. Return: `CONFIRMED / REFUTED / MIXED / UNKNOWN` + the cited evidence + a one-line reason.
|
|
72
|
+
|
|
73
|
+
Never answer a factual claim from memory. Fetch the source, cite it (URL + the line that
|
|
74
|
+
settles it). "I'm confident" is not evidence.
|
|
75
|
+
|
|
76
|
+
### Mode B — Explore options / find a better way
|
|
77
|
+
|
|
78
|
+
1. Frame the decision and the constraints (perf, safety, complexity, lock-in, maturity).
|
|
79
|
+
2. Enumerate 2–4 concrete options — include the "boring/obvious" one and at least one you did
|
|
80
|
+
not start with.
|
|
81
|
+
3. For each: what it is, when it wins, when it loses, adoption/maintenance signal.
|
|
82
|
+
4. Recommend one, with the trade-off that decides it. Show the runners-up so the caller can
|
|
83
|
+
overrule.
|
|
84
|
+
|
|
85
|
+
### Mode C — Web search (quick → deep)
|
|
86
|
+
|
|
87
|
+
Depth ladder — escalate only as needed:
|
|
88
|
+
|
|
89
|
+
| Depth | Tool | Use for |
|
|
90
|
+
|-------|------|---------|
|
|
91
|
+
| Quick | built-in `WebSearch` / `WebFetch` | a fact, a doc page, one gotcha |
|
|
92
|
+
| Deep, cited | `Skill("deep-research")` | multi-source, adversarially verified report |
|
|
93
|
+
| External report | `Skill("parallel-deep-research")` | market/competitive/industry landscape (paid) |
|
|
94
|
+
|
|
95
|
+
Search terms that work: `"[stack] [feature] best practices [year]"`,
|
|
96
|
+
`"[library] [feature] pitfalls"`, `"[approach] known issues"`. Prefer official docs via
|
|
97
|
+
Context7/grep.app MCP when available for library/API questions.
|
|
98
|
+
|
|
99
|
+
### Mode D — Inspiration / better plans from better sources
|
|
100
|
+
|
|
101
|
+
Look outward before inventing: canonical implementations, well-run OSS repos, design docs,
|
|
102
|
+
RFCs. Pull the *shape* of a stronger solution and adapt it — don't copy blindly. Note the
|
|
103
|
+
source so the plan can cite where the idea came from.
|
|
104
|
+
|
|
105
|
+
### Mode E — Multi-perspective (steelman + red-team)
|
|
106
|
+
|
|
107
|
+
For anything consequential, gather both:
|
|
108
|
+
|
|
109
|
+
- **Steelman (the right way)** — the strongest case for the approach and how experts do it.
|
|
110
|
+
- **Red-team (the wrong way)** — failure modes, anti-patterns, "why teams regret this",
|
|
111
|
+
security and edge-case traps.
|
|
112
|
+
|
|
113
|
+
Return both columns so the decision is made with eyes open, not just the happy path.
|
|
114
|
+
|
|
115
|
+
### Mode F — Codebase research (DRY + blast-radius)
|
|
116
|
+
|
|
117
|
+
Use actual search tools — never rely on memory:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Grep("<function or concept>") # existing implementations to reuse
|
|
121
|
+
Glob("**/*.<ext>") # narrow to affected file types
|
|
122
|
+
Read(<match>) # inspect matches in context
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
- **DRY**: if a match exists, prefer "extend existing <file>:<line>" over "create new".
|
|
126
|
+
- **Blast-radius** (for remove/rename/replace): grep the entire repo (exact + case-insensitive
|
|
127
|
+
+ `Glob("**/*<thing>*")`), then list every hit — including `package.json`, install/setup
|
|
128
|
+
scripts, CI workflows, agent config, and docs — so nothing is missed.
|
|
129
|
+
|
|
130
|
+
For broad multi-location sweeps, spawn the `Explore` agent and keep only its summary.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Plan bundle (what `/plan` Phase 2 delegates to)
|
|
135
|
+
|
|
136
|
+
When invoked by `/plan` for a feature's design doc, run the full technical bundle and append it
|
|
137
|
+
under a `## Technical Research` section in `docs/work/YYYY-MM-DD-<slug>/plan.md`:
|
|
138
|
+
|
|
139
|
+
1. **Web research** (Mode C) — best practices, gotchas, patterns for the chosen approach.
|
|
140
|
+
2. **OWASP Top 10 pass** — for each relevant category (A01–A10): the risk, whether it applies,
|
|
141
|
+
and the planned mitigation.
|
|
142
|
+
3. **DRY check** (Mode F) — reusable existing implementations.
|
|
143
|
+
4. **Blast-radius search** (Mode F) — required for any remove/rename/replace; every reference
|
|
144
|
+
captured for the task list.
|
|
145
|
+
5. **Codebase exploration** — similar patterns, affected files, test infra to leverage.
|
|
146
|
+
6. **TDD scenarios** — at minimum 3: happy path, error/failure path, and one Phase-1 edge case.
|
|
147
|
+
|
|
148
|
+
The caller's HARD-GATE (in `/plan`) still verifies these outputs exist — research produces
|
|
149
|
+
them; the gate enforces them. Do not treat delegation as a way to skip the gate.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Invoked mid-flow (examples)
|
|
154
|
+
|
|
155
|
+
- **Mid-/validate** — a security or type failure surfaces and the fix is unclear: call
|
|
156
|
+
`Skill("research")` to verify the correct API/pattern against primary sources before editing
|
|
157
|
+
(feeds the D2 root-cause trace), then return to validation.
|
|
158
|
+
- **Mid-/dev** — a decision gate fires on a spec gap: research the options (Mode B) and current
|
|
159
|
+
best practice (Mode C) so the decision is evidence-backed, then log the decision and continue.
|
|
160
|
+
- **Mid-/plan** — an approach looks shaky during brainstorming: research alternatives and
|
|
161
|
+
red-team the front-runner (Mode E) before committing the design.
|
|
162
|
+
- **Any agent, any time** — "before I decide, let me check" is always a valid reason to invoke.
|
|
163
|
+
|
|
164
|
+
## Output contract
|
|
165
|
+
|
|
166
|
+
- Cite every non-obvious claim (URL or `file:line`) — findings without sources are opinions.
|
|
167
|
+
- Lead with the answer/recommendation, then the evidence, then the runners-up.
|
|
168
|
+
- When invoked by `/plan`, append to the design doc's `## Technical Research` section (not a
|
|
169
|
+
separate file). When invoked mid-flow, return a concise evidence-backed answer to the caller.
|
|
170
|
+
- Flag what you could NOT verify as `UNKNOWN` rather than guessing.
|
|
171
|
+
|
|
172
|
+
## Integration with workflow
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Utility: /status -> Understand current context before starting
|
|
176
|
+
|
|
177
|
+
Default template:
|
|
178
|
+
/plan -> Optional default planner; delegates its Phase 2 technical research to /research
|
|
179
|
+
/dev -> Implement each task with subagent-driven TDD (may call /research at a spec gap)
|
|
180
|
+
/validate -> Type check, lint, tests, security (may call /research to root-cause a failure)
|
|
181
|
+
/ship -> Push + create PR
|
|
182
|
+
/review -> Address PR feedback
|
|
183
|
+
/verify -> Post-merge health check
|
|
184
|
+
|
|
185
|
+
Research is callable standalone or from any of the above — it is a capability, not a gate.
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Tips
|
|
189
|
+
|
|
190
|
+
- **Evidence beats memory** — always fetch and cite; never settle a fact from recall.
|
|
191
|
+
- **Escalate depth deliberately** — quick WebSearch first; reach for `deep-research` or
|
|
192
|
+
`parallel-deep-research` only when a single search can't answer it.
|
|
193
|
+
- **Both perspectives** — for consequential calls, always red-team, not just steelman.
|
|
194
|
+
- **Delegation ≠ skipping gates** — when `/plan` delegates the bundle, its HARD-GATE still
|
|
195
|
+
checks OWASP + 3 TDD scenarios + blast-radius are present.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "The design doc for the rate-limiter is already written — now go do the technical research: best practices, known gotchas for this approach, and drop it under Technical Research in the doc.",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "Run an OWASP Top 10 pass over this new file-upload feature and record which categories actually apply and how we'll mitigate each.",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Before we build the caching layer, search the codebase for anything we can reuse and make sure we're not duplicating an existing helper.",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Just do the research phase for this feature — web plus codebase investigation and at least three TDD scenarios — skip the brainstorm and the worktree setup.",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Pull together the security and best-practices research for the OAuth integration and append it to the feature's design doc.",
|
|
20
|
+
"should_trigger": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Let's plan this feature from scratch — brainstorm the design with me one question at a time, then create the branch, worktree, and task list.",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "I need a competitive landscape report comparing Datadog, Grafana Cloud, and New Relic on pricing and features for a 500-node cluster.",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Give me a comprehensive market analysis of the vector-database space — top players, funding, and the 3-5 year outlook.",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"query": "Start implementing task 1 with TDD — write the failing test first, then make it pass.",
|
|
36
|
+
"should_trigger": false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"query": "Run the security scan, lint, and full test suite before we open the PR.",
|
|
40
|
+
"should_trigger": false
|
|
41
|
+
}
|
|
42
|
+
]
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >
|
|
4
|
+
Forge REVIEW stage — drives an already-open PR to all-green by resolving EVERY piece of
|
|
5
|
+
feedback: failing GitHub Actions / CI checks, Greptile and CodeRabbit inline comments and
|
|
6
|
+
summaries, and the SonarCloud quality gate. It fixes the code, replies to each thread and
|
|
7
|
+
marks it resolved until checks pass, then runs the pre-merge doc gate and hands the PR off
|
|
8
|
+
for MANUAL merge — never runs `gh pr merge`. Use whenever a PR has review feedback or red
|
|
9
|
+
checks: "address the review comments on PR #123", "the bots flagged issues / Greptile score
|
|
10
|
+
is low", "fix the failing checks and resolve the threads", "CodeRabbit and SonarCloud left
|
|
11
|
+
comments", "get my PR merge-ready". This MUTATING feedback-resolution stage is distinct from
|
|
12
|
+
shepherd (only WATCHES an open PR, changes nothing), verify (POST-merge CI health check +
|
|
13
|
+
closing issues), ship (pushes the branch + opens the PR), validate (PRE-PR local
|
|
14
|
+
type/lint/test/security), and sonarcloud / sonarcloud-analysis (only QUERY SonarCloud data).
|
|
15
|
+
allowed-tools: Bash, Read, Edit, Grep, Glob
|
|
5
16
|
---
|
|
6
17
|
|
|
7
|
-
Process ALL pull request issues including GitHub Actions failures,
|
|
18
|
+
Process ALL pull request issues including GitHub Actions failures, review-agent inline comments (Greptile, CodeRabbit, Qodo, or human reviewers), SonarCloud analysis, and other CI/CD checks.
|
|
8
19
|
|
|
9
20
|
# Review
|
|
10
21
|
|
|
11
|
-
This
|
|
22
|
+
This skill handles ALL issues that arise after creating a pull request.
|
|
12
23
|
|
|
13
24
|
## Usage
|
|
14
25
|
|
|
@@ -16,7 +27,7 @@ This command handles ALL issues that arise after creating a pull request.
|
|
|
16
27
|
/review <pr-number>
|
|
17
28
|
```
|
|
18
29
|
|
|
19
|
-
## What This
|
|
30
|
+
## What This Skill Does
|
|
20
31
|
|
|
21
32
|
### Step 1: Fetch Complete PR Status
|
|
22
33
|
```bash
|
|
@@ -64,22 +75,22 @@ gh run view <run-id> --log-failed
|
|
|
64
75
|
- Type failures: TypeScript type errors
|
|
65
76
|
- Deployment failures: Env vars, configuration issues
|
|
66
77
|
|
|
67
|
-
### Step 3: Process
|
|
78
|
+
### Step 3: Process Review-Agent Feedback
|
|
68
79
|
|
|
69
|
-
Greptile
|
|
80
|
+
Review agents (Greptile, CodeRabbit, Qodo, or human reviewers) provide TWO types of feedback:
|
|
70
81
|
1. **Inline comments** on specific code lines
|
|
71
82
|
2. **Summary** with overall recommendations
|
|
72
83
|
|
|
73
|
-
**IMPORTANT**: Use the **systematic
|
|
84
|
+
**IMPORTANT**: Use the **systematic review-thread resolution process** documented in `.claude/rules/review-process.md`. This process is author-agnostic — it works the same whichever tool or person left the comment — and has been standardized to ensure:
|
|
74
85
|
- All threads are replied to directly (not as separate PR comments)
|
|
75
86
|
- All threads are marked as resolved after fixing
|
|
76
87
|
- No manual tracking overhead for maintainers
|
|
77
88
|
|
|
78
|
-
#### 3A. Check
|
|
89
|
+
#### 3A. Check Inline Review Comments (Use Systematic Process)
|
|
79
90
|
|
|
80
91
|
**Step 1: List all unresolved threads**
|
|
81
92
|
```bash
|
|
82
|
-
bash .claude/scripts/
|
|
93
|
+
bash .claude/scripts/review-resolve.sh list <pr-number> --unresolved
|
|
83
94
|
```
|
|
84
95
|
|
|
85
96
|
This shows:
|
|
@@ -96,7 +107,7 @@ This shows:
|
|
|
96
107
|
|
|
97
108
|
2. **Categorize the comment**:
|
|
98
109
|
- **Valid**: Should be implemented (security issue, bug, clear improvement)
|
|
99
|
-
- **Invalid**:
|
|
110
|
+
- **Invalid**: the review agent misunderstood context
|
|
100
111
|
- **Conflicting**: Contradicts research decisions with good reason
|
|
101
112
|
- **Out of scope**: Valid but not for this PR
|
|
102
113
|
|
|
@@ -107,7 +118,7 @@ This shows:
|
|
|
107
118
|
4. **Reply and resolve** (for ALL comments, even invalid ones)
|
|
108
119
|
```bash
|
|
109
120
|
# For valid issues (fixed):
|
|
110
|
-
bash .claude/scripts/
|
|
121
|
+
bash .claude/scripts/review-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
|
|
111
122
|
"✅ Fixed: [description]
|
|
112
123
|
|
|
113
124
|
Changed: [what was changed]
|
|
@@ -115,27 +126,27 @@ This shows:
|
|
|
115
126
|
Commit: [commit-sha]"
|
|
116
127
|
|
|
117
128
|
# For invalid/conflicting issues:
|
|
118
|
-
bash .claude/scripts/
|
|
129
|
+
bash .claude/scripts/review-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
|
|
119
130
|
"This approach is correct because:
|
|
120
131
|
- Reasoning: [from design doc]
|
|
121
132
|
- Evidence: [link to source]
|
|
122
|
-
- Alternative considered: [what
|
|
133
|
+
- Alternative considered: [what the review agent suggested]
|
|
123
134
|
- Why rejected: [specific reason]
|
|
124
135
|
|
|
125
|
-
See: docs/
|
|
136
|
+
See: docs/work/YYYY-MM-DD-<slug>/plan.md (Decision #X)"
|
|
126
137
|
```
|
|
127
138
|
|
|
128
139
|
**Step 3: Verify all resolved**
|
|
129
140
|
```bash
|
|
130
|
-
bash .claude/scripts/
|
|
141
|
+
bash .claude/scripts/review-resolve.sh stats <pr-number>
|
|
131
142
|
```
|
|
132
|
-
Should show:
|
|
143
|
+
Should show: all review threads resolved.
|
|
133
144
|
|
|
134
|
-
**See complete process**: `.claude/rules/
|
|
145
|
+
**See complete process**: `.claude/rules/review-process.md`
|
|
135
146
|
|
|
136
|
-
#### 3B. Check
|
|
147
|
+
#### 3B. Check the Review-Agent Summary
|
|
137
148
|
```bash
|
|
138
|
-
#
|
|
149
|
+
# Review agents usually post a summary comment on the PR
|
|
139
150
|
# Review the overall assessment and recommendations
|
|
140
151
|
```
|
|
141
152
|
|
|
@@ -186,8 +197,8 @@ Review any other automated checks:
|
|
|
186
197
|
|
|
187
198
|
Create a master list of all issues from:
|
|
188
199
|
- GitHub Actions failures
|
|
189
|
-
-
|
|
190
|
-
-
|
|
200
|
+
- Review-agent inline comments
|
|
201
|
+
- Review-agent summary recommendations
|
|
191
202
|
- SonarCloud issues
|
|
192
203
|
- Other CI/CD tool failures
|
|
193
204
|
|
|
@@ -214,13 +225,13 @@ git push
|
|
|
214
225
|
# Actions will auto-rerun
|
|
215
226
|
```
|
|
216
227
|
|
|
217
|
-
For **
|
|
228
|
+
For **inline review comments** (Use Systematic Script):
|
|
218
229
|
```bash
|
|
219
|
-
# Use the standardized
|
|
220
|
-
# See .claude/rules/
|
|
230
|
+
# Use the standardized review-thread resolution script
|
|
231
|
+
# See .claude/rules/review-process.md for complete process
|
|
221
232
|
|
|
222
233
|
# For valid comments (fixed):
|
|
223
|
-
bash .claude/scripts/
|
|
234
|
+
bash .claude/scripts/review-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
|
|
224
235
|
"✅ Fixed: [description]
|
|
225
236
|
|
|
226
237
|
Changed: [what was changed]
|
|
@@ -228,28 +239,28 @@ bash .claude/scripts/greptile-resolve.sh reply-and-resolve <pr-number> <comment-
|
|
|
228
239
|
Commit: [commit-sha]"
|
|
229
240
|
|
|
230
241
|
# For invalid/conflicting comments:
|
|
231
|
-
bash .claude/scripts/
|
|
242
|
+
bash .claude/scripts/review-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
|
|
232
243
|
"This approach is correct because:
|
|
233
244
|
- Reasoning: [from design doc]
|
|
234
245
|
- Evidence: [link to source]
|
|
235
|
-
- Alternative considered: [what
|
|
246
|
+
- Alternative considered: [what the review agent suggested]
|
|
236
247
|
- Why rejected: [specific reason]
|
|
237
248
|
|
|
238
|
-
See: docs/
|
|
249
|
+
See: docs/work/YYYY-MM-DD-<slug>/plan.md (Decision #X)"
|
|
239
250
|
|
|
240
251
|
# Verify all threads resolved:
|
|
241
|
-
bash .claude/scripts/
|
|
252
|
+
bash .claude/scripts/review-resolve.sh stats <pr-number>
|
|
242
253
|
```
|
|
243
254
|
|
|
244
|
-
For **
|
|
255
|
+
For **review-agent summary recommendations**:
|
|
245
256
|
```bash
|
|
246
257
|
# Add a PR comment addressing the summary
|
|
247
|
-
gh pr comment <pr-number> --body "##
|
|
258
|
+
gh pr comment <pr-number> --body "## Review Summary Response
|
|
248
259
|
|
|
249
260
|
Addressed all key recommendations:
|
|
250
261
|
- [Recommendation 1]: ✓ Fixed in commit <sha>
|
|
251
262
|
- [Recommendation 2]: ✓ Explained (see inline response)
|
|
252
|
-
- [Recommendation 3]: ⏭️ Out of scope for this PR (created issue
|
|
263
|
+
- [Recommendation 3]: ⏭️ Out of scope for this PR (created issue forge-xxx)
|
|
253
264
|
|
|
254
265
|
All critical and high-priority items resolved."
|
|
255
266
|
```
|
|
@@ -280,7 +291,7 @@ git commit -m "fix: address ALL PR review feedback
|
|
|
280
291
|
GitHub Actions:
|
|
281
292
|
- Fixed: [list of workflow failures resolved]
|
|
282
293
|
|
|
283
|
-
|
|
294
|
+
Review agents:
|
|
284
295
|
- Fixed: [list of valid inline comments addressed]
|
|
285
296
|
- Explained: [list of invalid comments with reasoning]
|
|
286
297
|
- Summary: [key recommendations addressed]
|
|
@@ -308,16 +319,16 @@ gh pr checks <pr-number>
|
|
|
308
319
|
#
|
|
309
320
|
# Ensure all completed status checks are green:
|
|
310
321
|
# ✓ GitHub Actions workflows
|
|
311
|
-
# ✓
|
|
322
|
+
# ✓ Review agents (no unresolved critical comments)
|
|
312
323
|
# ✓ SonarCloud quality gate
|
|
313
324
|
# ✓ Other CI/CD checks
|
|
314
325
|
```
|
|
315
326
|
|
|
316
|
-
### Step 10: Update
|
|
327
|
+
### Step 10: Update the Forge issue
|
|
317
328
|
|
|
318
329
|
```bash
|
|
319
|
-
|
|
320
|
-
|
|
330
|
+
forge comment <id> "PR review complete: all issues addressed, all checks passing"
|
|
331
|
+
forge sync
|
|
321
332
|
```
|
|
322
333
|
|
|
323
334
|
## Example Output
|
|
@@ -328,7 +339,7 @@ bd sync
|
|
|
328
339
|
- Tests: ✓ Passing
|
|
329
340
|
- Deploy Preview: ✓ Passing
|
|
330
341
|
|
|
331
|
-
✓
|
|
342
|
+
✓ Review-Agent Feedback:
|
|
332
343
|
Inline Comments: 8 total
|
|
333
344
|
- Valid: 5 → Fixed & replied inline
|
|
334
345
|
- Invalid: 2 → Explained with research evidence & replied inline
|
|
@@ -358,38 +369,63 @@ bd sync
|
|
|
358
369
|
|
|
359
370
|
✓ Fixes committed: 3c4d5e6
|
|
360
371
|
✓ All checks passing: ✓
|
|
361
|
-
✓
|
|
372
|
+
✓ Forge issue updated: Ready for merge
|
|
362
373
|
|
|
363
|
-
Next:
|
|
374
|
+
Next: pre-merge gate — finish docs + confirm CI green, then hand off the PR for merge
|
|
364
375
|
```
|
|
365
376
|
|
|
366
377
|
```
|
|
367
378
|
<HARD-GATE: /review exit>
|
|
368
379
|
Do NOT declare /review complete until:
|
|
369
|
-
1. bash .claude/scripts/
|
|
380
|
+
1. bash .claude/scripts/review-resolve.sh stats <pr-number> shows all review threads resolved
|
|
370
381
|
2. ALL human reviewer comments are either resolved or have a reply with explanation
|
|
371
382
|
3. gh pr checks <pr-number> shows all checks passing
|
|
372
|
-
4. Context check:
|
|
373
|
-
5. Stage transition
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
383
|
+
4. Context check: confirm design + acceptance on the Forge issue (`forge issue show <id>`); if the beads-context helper is present, run `bash scripts/beads-context.sh validate <id>` and address any warnings
|
|
384
|
+
5. Stage transition recorded (structured helper when present; kernel-native comment otherwise):
|
|
385
|
+
if [ -f scripts/beads-context.sh ]; then
|
|
386
|
+
bash scripts/beads-context.sh stage-transition <id> review verify \
|
|
387
|
+
--summary "<all feedback addressed summary>" \
|
|
388
|
+
--decisions "<comment resolutions — valid fixes and justified rejections>" \
|
|
389
|
+
--artifacts "<fixed files, commit SHAs>" \
|
|
390
|
+
--next "<pre-merge gate: finish docs + CI green, then hand off for merge>"
|
|
391
|
+
else
|
|
392
|
+
forge comment <id> "Stage: review complete → ready for verify
|
|
393
|
+
Summary: <all feedback addressed summary>
|
|
394
|
+
Decisions: <comment resolutions — valid fixes and justified rejections>
|
|
395
|
+
Artifacts: <fixed files, commit SHAs>
|
|
396
|
+
Next: <pre-merge gate: finish docs + CI green, then hand off for merge>"
|
|
397
|
+
fi
|
|
379
398
|
</HARD-GATE>
|
|
380
399
|
```
|
|
381
400
|
|
|
401
|
+
## Pre-merge gate (before merge)
|
|
402
|
+
|
|
403
|
+
Pre-merge is a doc-update **gate/checkpoint**, not a separate stage — run it here, once feedback is addressed and before the PR is handed off for merge, whenever the change touches anything documented:
|
|
404
|
+
|
|
405
|
+
1. **Finish the docs on the feature branch** (update only what genuinely changed):
|
|
406
|
+
- `CHANGELOG.md` (always) — entry under `## [Unreleased]` using Keep a Changelog categories, with PR number + issue ID.
|
|
407
|
+
- `README.md` (user-facing), `docs/reference/API_REFERENCE.md` (API), architecture docs (structural).
|
|
408
|
+
- `CLAUDE.md` — **USER section only** (between the USER markers); never touch other managed blocks.
|
|
409
|
+
- `AGENTS.md` (agent config, skills, or cross-agent workflow changes).
|
|
410
|
+
Commit the doc updates to the feature branch and push.
|
|
411
|
+
2. **Confirm CI is green** — doc commits re-trigger CI; poll briefly (~60s), then hand off if still pending.
|
|
412
|
+
3. **Sync the issue store** — `forge sync`.
|
|
413
|
+
4. **Hand off for MANUAL merge** — present the PR and stop. **Never run `gh pr merge`; never auto-merge.** The user merges in the GitHub UI, then runs `/verify`.
|
|
414
|
+
|
|
382
415
|
## Integration with Workflow
|
|
383
416
|
|
|
384
417
|
```
|
|
385
|
-
Utility: /status
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
418
|
+
Utility: /status -> Understand current context before starting
|
|
419
|
+
|
|
420
|
+
Default template:
|
|
421
|
+
/plan -> Optional default planner; external planners may satisfy /dev entry
|
|
422
|
+
/dev -> Implement each task with subagent-driven TDD
|
|
423
|
+
/validate -> Type check, lint, tests, security
|
|
424
|
+
/ship -> Push + create PR
|
|
425
|
+
/review -> Address PR feedback
|
|
426
|
+
/verify -> Post-merge health check
|
|
427
|
+
|
|
428
|
+
Pre-merge gate: doc updates + CI-green checkpoint embedded in /ship and /review (not a separate stage).
|
|
393
429
|
```
|
|
394
430
|
|
|
395
431
|
## Understanding the Tools
|
|
@@ -441,13 +477,13 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
441
477
|
|
|
442
478
|
## Tips
|
|
443
479
|
|
|
444
|
-
- **Address ALL issues**: Not just
|
|
480
|
+
- **Address ALL issues**: Not just one review agent and SonarCloud
|
|
445
481
|
- **Prioritize critical**: Fix blockers first (GitHub Actions failures, security issues)
|
|
446
|
-
- **Reply inline to
|
|
447
|
-
- **Post summary response**: Address
|
|
482
|
+
- **Reply inline to review agents**: Respond to each comment directly
|
|
483
|
+
- **Post summary response**: Address the review agent's overall assessment
|
|
448
484
|
- **Use sonarcloud skill**: Don't just check the web UI
|
|
449
|
-
- **Verify all checks**: Ensure everything is green before /
|
|
450
|
-
- **Update
|
|
485
|
+
- **Verify all checks**: Ensure everything is green before the pre-merge gate / merge
|
|
486
|
+
- **Update the Forge issue**: Keep issue status current
|
|
451
487
|
- **Research if needed**: Use WebSearch for unclear suggestions
|
|
452
488
|
- **Document fixes**: Clear commit messages for all fixes
|
|
453
489
|
- **Don't leave unresolved**: Address every comment and check
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "PR #204 has three red checks and a pile of Greptile comments — work through all of it and get the PR green.",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "CodeRabbit and SonarCloud both left feedback on my pull request; fix what's valid, reply to the rest, and resolve the threads.",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "The GitHub Actions build is failing on my PR and there are unresolved review threads — sort them out before I merge.",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "My Greptile confidence score is low. Address the inline comments and keep pushing fixes until the quality gate passes.",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Handle all the reviewer feedback on the auth PR, then update the changelog and docs before we hand it off to merge.",
|
|
20
|
+
"should_trigger": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Just keep an eye on PR #150 — watch the checks and review threads and ping me when it's settled and mergeable. Don't touch the code.",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "The PR is merged to master now — run the post-merge health check and close out the issue.",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "My branch passed validation; push it and open the pull request with the design-doc link.",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"query": "Before I open a PR, run the type-check, lint, full test suite, and security scan on my branch.",
|
|
36
|
+
"should_trigger": false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"query": "Just pull up this PR's SonarCloud issues and quality-gate status so I can eyeball them.",
|
|
40
|
+
"should_trigger": false
|
|
41
|
+
}
|
|
42
|
+
]
|