@khoavu882/doflow 2.0.0-beta.4 โ 2.0.0
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/README.md +12 -11
- package/bin/doflow.js +21 -11
- package/core/.antigravity-plugin/plugin.json +1 -3
- package/core/.claude-plugin/plugin.json +1 -1
- package/core/.codex-plugin/plugin.json +1 -1
- package/core/.plugin/plugin.json +1 -1
- package/core/harnesses/claude/hooks/lib.sh +43 -24
- package/core/harnesses/claude/hooks/mcp-tool-guard.sh +7 -17
- package/core/harnesses/claude/hooks/permission-audit.sh +3 -0
- package/core/harnesses/claude/hooks/post-compact.sh +35 -32
- package/core/harnesses/claude/hooks/post-edit-lint.sh +2 -0
- package/core/harnesses/claude/hooks/post-shell-observe.sh +48 -0
- package/core/harnesses/claude/hooks/post-tool-failure.sh +3 -0
- package/core/harnesses/claude/hooks/pre-bash-guard.sh +7 -17
- package/core/harnesses/claude/hooks/pre-compact.sh +23 -27
- package/core/harnesses/claude/hooks/pre-implement-gate.sh +7 -18
- package/core/harnesses/claude/hooks/session-end.sh +23 -10
- package/core/harnesses/claude/hooks/session-start.sh +5 -3
- package/core/harnesses/claude/hooks/skill-config-audit.sh +3 -0
- package/core/harnesses/claude/hooks/stop-check.sh +5 -3
- package/core/harnesses/claude/hooks/subagent-audit.sh +5 -5
- package/core/harnesses/claude/hooks/user-prompt-submit.sh +5 -3
- package/core/harnesses/claude/settings/settings.json +18 -0
- package/core/harnesses/claude/statusline/doflow-statusline.sh +1 -0
- package/core/harnesses/codex/agents/core-implementer.toml +1 -0
- package/core/harnesses/codex/agents/delivery-lead.toml +10 -0
- package/core/harnesses/codex/agents/quality-guardian.toml +1 -1
- package/core/harnesses/codex/agents/research-writer.toml +1 -1
- package/core/harnesses/codex/agents/reviewer.toml +10 -0
- package/core/harnesses/codex/agents/spec-analyst.toml +1 -1
- package/core/harnesses/codex/agents/system-architect.toml +1 -1
- package/core/harnesses/codex/hooks/lib.sh +44 -25
- package/core/harnesses/codex/hooks/mcp-tool-guard.sh +7 -15
- package/core/harnesses/codex/hooks/post-edit-lint.impl.sh +3 -1
- package/core/harnesses/codex/hooks/pre-bash-guard.sh +7 -15
- package/core/harnesses/codex/hooks/pre-compact.impl.sh +29 -26
- package/core/harnesses/codex/hooks/pre-implement-gate.sh +7 -16
- package/core/harnesses/codex/hooks/session-end.impl.sh +23 -10
- package/core/harnesses/codex/hooks/session-start.sh +5 -3
- package/core/harnesses/codex/hooks/stop-check.sh +6 -5
- package/core/harnesses/codex/hooks/subagent-audit.sh +18 -6
- package/core/harnesses/codex/hooks/user-prompt-submit.sh +5 -4
- package/core/harnesses/copilot/hooks/doflow-lib.sh +93 -0
- package/core/harnesses/copilot/hooks/doflow-mcp-tool-guard.sh +9 -0
- package/core/harnesses/copilot/hooks/doflow-pre-bash-guard.sh +9 -0
- package/core/harnesses/copilot/hooks/doflow-pre-implement-gate.sh +9 -0
- package/core/harnesses/copilot/hooks/doflow-session-start.sh +9 -0
- package/core/harnesses/copilot/hooks/doflow-stop-check.sh +9 -0
- package/core/harnesses/copilot/hooks/doflow-subagent-start.sh +9 -0
- package/core/harnesses/copilot/hooks/doflow-subagent-stop.sh +9 -0
- package/core/harnesses/copilot/hooks/doflow.json +57 -0
- package/core/harnesses/kiro/agents/doflow.json +1 -1
- package/core/harnesses/kiro/hooks/lib.sh +26 -6
- package/core/harnesses/kiro/hooks/mcp-tool-guard.sh +21 -5
- package/core/harnesses/kiro/hooks/pre-bash-guard.sh +21 -5
- package/core/harnesses/kiro/hooks/pre-implement-gate.sh +21 -5
- package/core/harnesses/kiro/hooks/session-start.sh +12 -5
- package/core/harnesses/kiro/hooks/stop-check.sh +22 -30
- package/core/harnesses/pi/extensions/doflow-guard.js +167 -0
- package/core/harnesses/shared/hooks/ENVELOPE_MIGRATION.md +27 -12
- package/core/harnesses/shared/hooks/adapters/antigravity.js +14 -57
- package/core/harnesses/shared/hooks/bridge/bridge.sh +277 -0
- package/core/harnesses/shared/hooks/bridge/envelope.jq +129 -0
- package/core/harnesses/shared/hooks/bridge/observe-model.sh +75 -0
- package/core/harnesses/shared/hooks/bridge/respond.sh +70 -0
- package/core/harnesses/shared/hooks/policies/blocked-patterns.conf +28 -14
- package/core/harnesses/shared/hooks/policies/capture-failure.sh +51 -16
- package/core/harnesses/shared/hooks/policies/compact-text.sh +46 -0
- package/core/harnesses/shared/hooks/policies/contract.sh +78 -0
- package/core/harnesses/shared/hooks/policies/deny-json.sh +35 -9
- package/core/harnesses/shared/hooks/policies/emission-rules.sh +37 -0
- package/core/harnesses/shared/hooks/policies/emission.jq +209 -0
- package/core/harnesses/shared/hooks/policies/emission.sh +383 -0
- package/core/harnesses/shared/hooks/policies/identity.sh +177 -0
- package/core/harnesses/shared/hooks/policies/lib.sh +65 -40
- package/core/harnesses/shared/hooks/policies/mcp-tool-guard.sh +48 -35
- package/core/harnesses/shared/hooks/policies/pre-bash-guard.sh +284 -33
- package/core/harnesses/shared/hooks/policies/pre-implementation-gate.sh +180 -110
- package/core/harnesses/shared/hooks/policies/session-context.sh +66 -7
- package/core/harnesses/shared/hooks/policies/stop-check.sh +61 -23
- package/core/harnesses/shared/hooks/policies/subagent-audit.sh +39 -6
- package/core/harnesses/shared/hooks/policies/summary-store.sh +347 -0
- package/core/harnesses/shared/hooks/policies/user-prompt-submit.sh +97 -159
- package/core/harnesses/shared/hooks/stream-hook-runner.js +114 -187
- package/core/harnesses/shared/locator/doflow-run +2 -3
- package/core/registry/advice.json +3 -3
- package/core/registry/assets.json +72 -80
- package/core/registry/capabilities.json +12 -0
- package/core/registry/contracts.json +60 -33
- package/core/registry/contribution-points.json +32 -0
- package/core/registry/gates.json +32 -0
- package/core/registry/guidance-caps.json +40 -0
- package/core/registry/harnesses.json +1542 -277
- package/core/registry/lifecycle.json +2837 -37
- package/core/registry/mcp.json +5 -1
- package/core/registry/models.json +7 -1
- package/core/registry/package-templates/README.md +19 -0
- package/core/registry/package-templates/agent/files/agent.md +9 -0
- package/core/registry/package-templates/agent/template.json +4 -0
- package/core/registry/package-templates/capability-provider/files/provider.json +9 -0
- package/core/registry/package-templates/capability-provider/template.json +11 -0
- package/core/registry/package-templates/debate-preset/files/preset.json +26 -0
- package/core/registry/package-templates/debate-preset/template.json +4 -0
- package/core/registry/package-templates/review-preset/files/preset.json +30 -0
- package/core/registry/package-templates/review-preset/template.json +4 -0
- package/core/registry/package-templates/skill/files/SKILL.md +8 -0
- package/core/registry/package-templates/skill/template.json +4 -0
- package/core/registry/package-templates/worker/files/worker.json +92 -0
- package/core/registry/package-templates/worker/template.json +11 -0
- package/core/registry/packages/doflow/doflow-package.json +15 -0
- package/core/registry/packages/doflow/presets/debate-3.json +26 -0
- package/core/registry/protocols.json +61 -0
- package/core/registry/routes.json +17 -0
- package/core/registry/rules.json +431 -0
- package/core/registry/settings.json +276 -0
- package/core/registry/storage.json +701 -30
- package/core/registry/telemetry.json +236 -0
- package/core/registry/transcripts.json +142 -0
- package/core/registry/verification.json +76 -1
- package/core/registry/workflows.json +55 -0
- package/core/shared/agent-specs/core-implementer.md +3 -0
- package/core/shared/agent-specs/delivery-lead.md +68 -0
- package/core/shared/agent-specs/quality-guardian.md +5 -1
- package/core/shared/agent-specs/research-writer.md +10 -3
- package/core/shared/agent-specs/reviewer.md +53 -0
- package/core/shared/agent-specs/spec-analyst.md +5 -6
- package/core/shared/agent-specs/system-architect.md +5 -1
- package/core/shared/guidance/DOFLOW_CORE.md +1 -5
- package/core/shared/guidance/modes/MODE_DeepResearch.md +1 -1
- package/core/shared/guidance/modes/MODE_Orchestration.md +4 -3
- package/core/shared/guidance/modes/MODE_Task_Management.md +14 -14
- package/core/shared/guidance/pointers/codex.md +1 -4
- package/core/shared/guidance/references/ARTIFACT_FORMAT.md +30 -16
- package/core/shared/guidance/references/ARTIFACT_VOICE.md +3 -2
- package/core/shared/guidance/references/CONSTITUTION_BASE.md +17 -15
- package/core/shared/guidance/references/DIAGRAM_GUIDE.md +1 -1
- package/core/shared/guidance/references/DOFLOW_CHAIN.md +17 -19
- package/core/shared/guidance/references/EVIDENCE_LEDGER.md +7 -8
- package/core/shared/guidance/references/MODEL_SELECTION.md +5 -3
- package/core/shared/guidance/references/ORCHESTRATION.md +1 -2
- package/core/shared/guidance/rules/RULES.md +45 -0
- package/core/shared/scripts/doflow/bash/do-args.sh +37 -0
- package/core/shared/scripts/doflow/bash/do-exec-paths.sh +4 -0
- package/core/shared/scripts/doflow/bash/do-git-state.sh +15 -4
- package/core/shared/scripts/doflow/bash/do-parallel-check.sh +4 -0
- package/core/shared/scripts/doflow/bash/do-paths.sh +40 -2
- package/core/shared/scripts/doflow/bash/do-prereqs.sh +2 -1
- package/core/shared/scripts/doflow/bash/do-review-package.sh +4 -0
- package/core/shared/scripts/doflow/bash/do-task-brief.sh +58 -16
- package/core/shared/scripts/doflow/bash/render-audit.sh +26 -2
- package/core/shared/scripts/doflow/bash/render-diagrams.sh +1 -0
- package/core/shared/scripts/doflow/bash/render-puml.sh +2 -1
- package/core/shared/scripts/doflow/bash/validate-artifacts.sh +48 -4
- package/core/shared/scripts/doflow/bin/doflow-run +154 -35
- package/core/shared/skills/do/SKILL.md +12 -10
- package/core/shared/skills/do/references/advice_calls.md +26 -0
- package/core/shared/skills/do/references/pm_routing.md +1 -2
- package/core/shared/skills/do/references/program_mode.md +31 -0
- package/core/shared/skills/do-brainstorm/SKILL.md +20 -74
- package/core/shared/skills/do-brainstorm/references/handoff_branches.md +35 -0
- package/core/shared/skills/do-brainstorm/references/intent_seed.md +21 -0
- package/core/shared/skills/do-brainstorm/references/round_log.md +17 -0
- package/core/shared/skills/do-code-review/SKILL.md +41 -144
- package/core/shared/skills/do-code-review/content-types/markdown.md +24 -2
- package/core/shared/skills/do-code-review/references/tools.md +90 -0
- package/core/shared/skills/do-code-review/scripts/doc_quality_checker.py +549 -7
- package/core/shared/skills/do-design/SKILL.md +24 -23
- package/core/shared/skills/do-diagnose/SKILL.md +14 -4
- package/core/shared/skills/do-document/SKILL.md +11 -1
- package/core/shared/skills/do-document/references/deep_research.md +1 -2
- package/core/shared/skills/do-document/references/embedded-research.md +18 -6
- package/core/shared/skills/do-document/references/implementation-flow.md +5 -6
- package/core/shared/skills/do-execute-plan/SKILL.md +17 -59
- package/core/shared/skills/do-execute-plan/references/handoff_record.md +7 -2
- package/core/shared/skills/do-execute-plan/references/parallel_dispatch.md +13 -0
- package/core/shared/skills/do-execute-plan/references/readiness_gate.md +28 -1
- package/core/shared/skills/do-execute-plan/references/run_position.md +13 -1
- package/core/shared/skills/do-execute-plan/references/scaffold.md +17 -9
- package/core/shared/skills/do-execute-plan/references/state_checkpoint.md +11 -0
- package/core/shared/skills/do-execute-plan/references/task_attempts.md +78 -24
- package/core/shared/skills/do-flow/SKILL.md +8 -9
- package/core/shared/skills/do-flow/references/task_classes.md +2 -2
- package/core/shared/skills/do-git/SKILL.md +4 -0
- package/core/shared/skills/do-implement/SKILL.md +7 -9
- package/core/shared/skills/do-plan/SKILL.md +29 -19
- package/core/shared/skills/do-test/SKILL.md +7 -4
- package/core/shared/templates/doflow/constitution-template.md +9 -3
- package/core/shared/templates/doflow/data-model-template.md +1 -1
- package/core/shared/templates/doflow/design-template.md +113 -16
- package/core/shared/templates/doflow/plan-template.md +11 -10
- package/core/shared/templates/doflow/question-log-template.md +14 -2
- package/core/shared/templates/doflow/requirement-template.md +1 -1
- package/core/worker-evidence/antigravity/checks.json +14 -0
- package/core/worker-evidence/codex/2026-10-18-cli-check.json +107 -0
- package/core/worker-evidence/codex/2026-10-18-live-run-edit.json +73 -0
- package/core/worker-evidence/codex/2026-10-18-live-run-read-only.json +62 -0
- package/core/worker-evidence/codex/2026-10-24-cli-check.json +126 -0
- package/core/worker-evidence/codex/checks.json +38 -0
- package/package.json +10 -6
- package/src/adapters/antigravity/index.js +226 -113
- package/src/adapters/claude/index.js +39 -5
- package/src/adapters/codex/agents.js +25 -15
- package/src/adapters/codex/hooks.js +40 -5
- package/src/adapters/codex/index.js +100 -22
- package/src/adapters/codex/native-projection.js +6 -2
- package/src/adapters/copilot/index.js +58 -23
- package/src/adapters/copy-tree.js +294 -48
- package/src/adapters/guidance-manifest.js +71 -0
- package/src/adapters/guidance-pointer.js +19 -0
- package/src/adapters/hook-commands.js +6 -10
- package/src/adapters/index.js +1 -0
- package/src/adapters/kiro/index.js +38 -13
- package/src/adapters/opencode/index.js +8 -8
- package/src/adapters/pi/hooks.js +120 -0
- package/src/adapters/pi/index.js +48 -16
- package/src/adapters/resolve-source.js +26 -2
- package/src/cli/commands/install.js +3 -2
- package/src/cli/commands/reconcile.js +53 -9
- package/src/cli/commands/remove.js +2 -2
- package/src/cli/commands/rollback.js +6 -3
- package/src/cli/commands/self-update.js +18 -9
- package/src/cli/commands/status.js +21 -2
- package/src/cli/commands/ui.js +99 -0
- package/src/cli/commands/update.js +3 -2
- package/src/cli/index.js +338 -33
- package/src/cli/runtime-commands.js +243 -52
- package/src/cli/shared.js +0 -2
- package/src/helper/git.js +1 -1
- package/src/helper/guardrails.js +1 -1
- package/src/helper/marker-merge.js +31 -13
- package/src/helper/package-ids.js +37 -0
- package/src/helper/semver.js +94 -0
- package/src/install/backup.js +105 -15
- package/src/install/context.js +1 -1
- package/src/install/targets.js +31 -16
- package/src/lifecycle/coverage.js +74 -0
- package/src/lifecycle/hook-step.js +61 -0
- package/src/lifecycle/hook-tier.js +160 -0
- package/src/lifecycle/index.js +434 -86
- package/src/lifecycle/retired-harnesses.js +318 -0
- package/src/lifecycle/view.js +35 -15
- package/src/registry/index.js +686 -32
- package/src/registry/worker-ids.js +45 -0
- package/src/release/build-package.js +0 -3
- package/src/release/docs-blocks.js +492 -0
- package/src/release/preflight.js +425 -0
- package/src/release/rehearse.js +401 -0
- package/src/release/release-workflow.js +733 -0
- package/src/release/sync-plugin-versions.js +43 -7
- package/src/runtime/advice/bench-gate.js +25 -0
- package/src/runtime/advice/cli.js +59 -16
- package/src/runtime/advice/client.js +32 -9
- package/src/runtime/advice/config.js +98 -133
- package/src/runtime/advice/doctor.js +1 -1
- package/src/runtime/advice/elevation.js +97 -0
- package/src/runtime/advice/endpoint-guard.js +9 -3
- package/src/runtime/advice/mode.js +37 -0
- package/src/runtime/advice/record.js +18 -5
- package/src/runtime/advice/registry.js +4 -1
- package/src/runtime/advice/shadow-config.js +229 -0
- package/src/runtime/advice/shadow-dispatcher.js +276 -0
- package/src/runtime/brief-rules.js +81 -0
- package/src/runtime/brief-tools.js +111 -34
- package/src/runtime/candidate.js +514 -0
- package/src/runtime/capabilities/executor.js +450 -0
- package/src/runtime/capabilities/loopback.js +41 -0
- package/src/runtime/capabilities/sanitizer.js +88 -0
- package/src/runtime/capability-router.js +135 -3
- package/src/runtime/checkouts.js +73 -11
- package/src/runtime/claims.js +27 -12
- package/src/runtime/cli-result.js +11 -4
- package/src/runtime/cli.js +221 -277
- package/src/runtime/config-home.js +42 -0
- package/src/runtime/context/arbitrate.js +767 -0
- package/src/runtime/context/budget.js +203 -0
- package/src/runtime/context/compose.js +1367 -0
- package/src/runtime/context/delivery-store.js +100 -0
- package/src/runtime/context/emission-rules.js +118 -0
- package/src/runtime/context/identity.js +227 -0
- package/src/runtime/context/mandatory.js +594 -0
- package/src/runtime/context/pointer.js +142 -0
- package/src/runtime/context/primary-command.js +117 -0
- package/src/runtime/context/primary.js +344 -0
- package/src/runtime/context/summary-store.js +655 -0
- package/src/runtime/context-pack.js +1106 -245
- package/src/runtime/decision-register.js +13 -4
- package/src/runtime/dispatch/admission.js +392 -0
- package/src/runtime/dispatch/attempt-end.js +274 -0
- package/src/runtime/dispatch/command.js +628 -0
- package/src/runtime/dispatch/controls.js +904 -0
- package/src/runtime/dispatch/envelope.js +276 -0
- package/src/runtime/dispatch/grants.js +310 -0
- package/src/runtime/dispatch/integrate.js +617 -0
- package/src/runtime/dispatch/loop.js +1835 -0
- package/src/runtime/dispatch/store.js +352 -0
- package/src/runtime/dispatch/verify-run.js +201 -0
- package/src/runtime/evidence-fields.js +39 -0
- package/src/runtime/evidence-ledger.js +41 -7
- package/src/runtime/failure/capture.js +3 -1
- package/src/runtime/failure/cli.js +25 -9
- package/src/runtime/failure/home.js +57 -30
- package/src/runtime/failure/store.js +7 -2
- package/src/runtime/feature-pointer.js +174 -0
- package/src/runtime/feature-resolve.js +13 -2
- package/src/runtime/fleet/command.js +77 -0
- package/src/runtime/fleet/projects.js +178 -0
- package/src/runtime/fleet/tree.js +383 -0
- package/src/runtime/freshness.js +77 -10
- package/src/runtime/git-memo.js +46 -0
- package/src/runtime/guidance/ablation.js +427 -0
- package/src/runtime/health.js +565 -17
- package/src/runtime/history-compactor.js +13 -3
- package/src/runtime/implementation-gate.js +277 -22
- package/src/runtime/inventory/coverage.js +1 -1
- package/src/runtime/inventory/index.js +1 -1
- package/src/runtime/inventory/precedence.js +2 -2
- package/src/runtime/inventory/siblings.js +6 -4
- package/src/runtime/knowledge/code-corpus.js +277 -0
- package/src/runtime/knowledge/code-lexical.js +130 -0
- package/src/runtime/knowledge/code-retrieval.js +307 -0
- package/src/runtime/knowledge/code-validation.js +106 -0
- package/src/runtime/knowledge/gp3-gate.js +74 -0
- package/src/runtime/knowledge/graph-adapter.js +288 -0
- package/src/runtime/knowledge/graph-fallback.js +394 -0
- package/src/runtime/knowledge/hybrid.js +136 -8
- package/src/runtime/knowledge/retrieval.js +34 -1
- package/src/runtime/knowledge/rtk-compress.js +77 -0
- package/src/runtime/knowledge/semble-bridge.py +106 -0
- package/src/runtime/knowledge/semble-lifecycle.js +114 -0
- package/src/runtime/knowledge/semble-provider.js +365 -0
- package/src/runtime/lifecycle/cli.js +16 -6
- package/src/runtime/lifecycle/event-store.js +8 -6
- package/src/runtime/lifecycle/followup.js +6 -1
- package/src/runtime/lifecycle/overview.js +24 -1
- package/src/runtime/lifecycle/report-store.js +8 -10
- package/src/runtime/lifecycle/retention.js +95 -31
- package/src/runtime/lifecycle/root.js +9 -1
- package/src/runtime/lifecycle/status.js +34 -17
- package/src/runtime/lifecycle/store-upkeep.js +56 -7
- package/src/runtime/mask.js +134 -7
- package/src/runtime/mcp-consultations.js +40 -6
- package/src/runtime/model-router.js +79 -7
- package/src/runtime/models/catalogue.js +191 -0
- package/src/runtime/models/command.js +153 -0
- package/src/runtime/off-words.js +12 -0
- package/src/runtime/outcome.js +3 -3
- package/src/runtime/packages/command.js +1009 -0
- package/src/runtime/packages/contributions.js +116 -0
- package/src/runtime/packages/digest.js +132 -0
- package/src/runtime/packages/fetch.js +182 -0
- package/src/runtime/packages/grants.js +192 -0
- package/src/runtime/packages/index-file.js +134 -0
- package/src/runtime/packages/instruction.js +90 -0
- package/src/runtime/packages/manifest.js +331 -0
- package/src/runtime/packages/points.js +477 -0
- package/src/runtime/packages/programs.js +216 -0
- package/src/runtime/packages/scaffold.js +277 -0
- package/src/runtime/packages/source.js +90 -0
- package/src/runtime/packages/state.js +164 -0
- package/src/runtime/packages/store.js +449 -0
- package/src/runtime/packages/tar.js +106 -0
- package/src/runtime/packages/view.js +406 -0
- package/src/runtime/plan-check.js +59 -0
- package/src/runtime/plan-content.js +324 -0
- package/src/runtime/policy-init.js +118 -0
- package/src/runtime/profiles/doctor.js +96 -0
- package/src/runtime/profiles/resolve.js +244 -0
- package/src/runtime/profiles/rollback.js +254 -0
- package/src/runtime/profiles/sampler.js +41 -0
- package/src/runtime/readiness-record.js +16 -11
- package/src/runtime/readiness.js +127 -16
- package/src/runtime/research-request.js +50 -25
- package/src/runtime/retrieval-plan.js +402 -73
- package/src/runtime/retrieval-record.js +293 -0
- package/src/runtime/review/command.js +246 -0
- package/src/runtime/review/dominance.js +68 -0
- package/src/runtime/review/findings.js +434 -0
- package/src/runtime/review/identity.js +255 -0
- package/src/runtime/review/protocol-command.js +109 -0
- package/src/runtime/review/protocols.js +405 -0
- package/src/runtime/review/resolve-protocol.js +302 -0
- package/src/runtime/review/start.js +530 -0
- package/src/runtime/roadmap/facts.js +479 -0
- package/src/runtime/roadmap/gates.js +270 -0
- package/src/runtime/roadmap/loop.js +1636 -0
- package/src/runtime/roadmap/merge.js +381 -0
- package/src/runtime/roadmap/rows.js +1113 -0
- package/src/runtime/roadmap/seed.js +951 -0
- package/src/runtime/rules-report.js +336 -0
- package/src/runtime/scaffold/artifacts.js +63 -9
- package/src/runtime/scaffold/generate.js +21 -9
- package/src/runtime/settings/autopilot.js +106 -0
- package/src/runtime/settings/cli.js +280 -0
- package/src/runtime/settings/config-write.js +314 -0
- package/src/runtime/settings/files.js +271 -0
- package/src/runtime/settings/legacy.js +154 -0
- package/src/runtime/settings/lexical.js +56 -0
- package/src/runtime/settings/prepared-run.js +269 -0
- package/src/runtime/settings/project-layers.js +118 -0
- package/src/runtime/settings/refs.js +288 -0
- package/src/runtime/settings/registry.js +553 -0
- package/src/runtime/settings/resolve.js +713 -0
- package/src/runtime/settings/shared.js +37 -0
- package/src/runtime/settings/worker-billing.js +107 -0
- package/src/runtime/settings/write.js +269 -0
- package/src/runtime/slot-command.js +78 -0
- package/src/runtime/slots.js +671 -0
- package/src/runtime/source-version.js +290 -0
- package/src/runtime/state-root.js +217 -0
- package/src/runtime/storage/cli.js +12 -5
- package/src/runtime/storage/engine.js +9 -2
- package/src/runtime/storage/registry.js +14 -1
- package/src/runtime/storage/roots.js +66 -16
- package/src/runtime/storage/rules.js +82 -10
- package/src/runtime/storage/upkeep.js +10 -2
- package/src/runtime/storage/work-status.js +245 -26
- package/src/runtime/task-attempts.js +589 -69
- package/src/runtime/task-classifier.js +47 -11
- package/src/runtime/task-graph.js +373 -0
- package/src/runtime/task-run.js +778 -0
- package/src/runtime/task-scope.js +202 -56
- package/src/runtime/task-sources.js +147 -0
- package/src/runtime/task-state.js +440 -65
- package/src/runtime/team/admission.js +301 -0
- package/src/runtime/team/envelope.js +324 -0
- package/src/runtime/team/review-guard.js +156 -0
- package/src/runtime/trace/analyze.js +427 -0
- package/src/runtime/trace/baseline.js +770 -0
- package/src/runtime/trace/ledger.js +63 -140
- package/src/runtime/trace/otlp-export.js +568 -0
- package/src/runtime/trace/otlp-map.js +481 -0
- package/src/runtime/trace/spans.js +745 -0
- package/src/runtime/trace/telemetry.js +225 -0
- package/src/runtime/trace/views.js +1 -0
- package/src/runtime/transcripts/command.js +98 -0
- package/src/runtime/transcripts/cursor.js +326 -0
- package/src/runtime/transcripts/read.js +126 -0
- package/src/runtime/transcripts/readers/claude-jsonl.js +74 -0
- package/src/runtime/transcripts/readers/codex-rollout.js +70 -0
- package/src/runtime/transcripts/readers/copilot-events.js +90 -0
- package/src/runtime/transcripts/readers/kiro-jsonl.js +77 -0
- package/src/runtime/transcripts/readers/pi-jsonl.js +59 -0
- package/src/runtime/transcripts/registry.js +161 -0
- package/src/runtime/transcripts/stats.js +161 -0
- package/src/runtime/verification/check-key.js +628 -0
- package/src/runtime/verification/contract-runner.js +546 -11
- package/src/runtime/verification/engine.js +499 -9
- package/src/runtime/verification/impact.js +617 -0
- package/src/runtime/verification/inflight.js +205 -0
- package/src/runtime/verification/registry.js +176 -0
- package/src/runtime/verification/reuse.js +184 -0
- package/src/runtime/verification/telemetry-emit.js +254 -0
- package/src/runtime/verification/test-selection.js +67 -7
- package/src/runtime/worker/active.js +90 -0
- package/src/runtime/worker/cancel.js +222 -0
- package/src/runtime/worker/catalogue.js +122 -0
- package/src/runtime/worker/command.js +677 -0
- package/src/runtime/worker/evidence.js +288 -0
- package/src/runtime/worker/launch.js +288 -0
- package/src/runtime/worker/models.js +137 -0
- package/src/runtime/worker/parsers.js +218 -0
- package/src/runtime/worker/probes/index.js +706 -0
- package/src/runtime/worker/process-tree.js +415 -0
- package/src/runtime/worker/quota.js +43 -0
- package/src/runtime/worker/readiness.js +713 -0
- package/src/runtime/worker/run-store.js +166 -0
- package/src/runtime/worker/supervisor.js +541 -0
- package/src/runtime/worker/worktree-check.js +252 -0
- package/src/runtime/workflow-engine.js +5 -1
- package/src/runtime/workflow-orchestrator.js +578 -63
- package/src/runtime/worktree.js +149 -22
- package/src/state/index.js +1 -1
- package/src/state/lockfile.js +64 -10
- package/src/state/run-lock.js +1 -1
- package/types/node-commonjs.d.ts +106 -7
- package/core/.antigravity-plugin/hooks.json +0 -39
- package/core/harnesses/gemini/hooks/hooks.json +0 -77
- package/core/harnesses/gemini/hooks/lib.sh +0 -302
- package/core/harnesses/gemini/hooks/mcp-tool-guard.sh +0 -21
- package/core/harnesses/gemini/hooks/post-edit-lint.sh +0 -39
- package/core/harnesses/gemini/hooks/pre-bash-guard.sh +0 -21
- package/core/harnesses/gemini/hooks/pre-compact.sh +0 -38
- package/core/harnesses/gemini/hooks/pre-implement-gate.sh +0 -22
- package/core/harnesses/gemini/hooks/session-end.impl.sh +0 -89
- package/core/harnesses/gemini/hooks/session-end.sh +0 -5
- package/core/harnesses/gemini/hooks/session-start.sh +0 -5
- package/core/harnesses/gemini/settings/adapter-defaults.json +0 -4
- package/core/harnesses/shared/hooks/adapters/arg-fields.js +0 -19
- package/core/harnesses/shared/hooks/adapters/gemini.js +0 -114
- package/core/harnesses/shared/hooks/hooks.json +0 -47
- package/core/shared/guidance/FLAGS.md +0 -25
- package/core/shared/guidance/rules/RULE_01_SAFETY.md +0 -25
- package/core/shared/guidance/rules/RULE_02_WORKFLOW.md +0 -23
- package/core/shared/guidance/rules/RULE_03_QUALITY.md +0 -14
- package/core/shared/guidance/rules/RULE_04_QUESTIONS.md +0 -46
- package/src/adapters/gemini/hooks.js +0 -210
- package/src/adapters/gemini/index.js +0 -390
|
@@ -71,6 +71,27 @@
|
|
|
71
71
|
"reason": "Repository governance. No workflow declares a governance stage and none should: the constitution is what workflows are checked against, not a step inside one. A classify call from here is a routing mistake rather than a class mistake, and is rejected as such."
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
|
+
"agents": {
|
|
75
|
+
"description": "The `access` of every agent spec in core/shared/agent-specs/, for the runtime: an installed runtime ships core/registry but not core/shared, so `review --action start` and `protocol` read a seat agent's access here. test/guards/agent-roster.test.js (G63) holds it equal to each spec's frontmatter `access`; edit the spec and this entry together.",
|
|
76
|
+
"access": {
|
|
77
|
+
"core-implementer": "write",
|
|
78
|
+
"delivery-lead": "write",
|
|
79
|
+
"quality-guardian": "write",
|
|
80
|
+
"research-writer": "write",
|
|
81
|
+
"reviewer": "read-only",
|
|
82
|
+
"spec-analyst": "write",
|
|
83
|
+
"system-architect": "write"
|
|
84
|
+
},
|
|
85
|
+
"handback": {
|
|
86
|
+
"description": "The hand-back status enum (row 135): every agent spec ends its report with `Status: <id>`, and a caller that consumes a hand-back branches on it. Defined only here; test/guards/handback-status.test.ts (G76) holds each spec's status line and each consumer's branch line to this list.",
|
|
87
|
+
"statuses": [
|
|
88
|
+
{ "id": "done", "meaning": "complete; the evidence is in the report", "caller": "accept after checking the evidence" },
|
|
89
|
+
{ "id": "done-with-concerns", "meaning": "complete, with doubts the report lists", "caller": "verify the concerns before accepting" },
|
|
90
|
+
{ "id": "needs-context", "meaning": "cannot finish without information the brief lacks; the report names it", "caller": "resend with the missing context" },
|
|
91
|
+
{ "id": "blocked", "meaning": "cannot proceed for a reason only the caller can resolve: a denied permission, a broken environment or an open decision", "caller": "stop and surface it" }
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
},
|
|
74
95
|
"classes": {
|
|
75
96
|
"feature": {
|
|
76
97
|
"name": "Feature Delivery",
|
|
@@ -81,6 +102,7 @@
|
|
|
81
102
|
{
|
|
82
103
|
"id": "discovery",
|
|
83
104
|
"skill": "do-brainstorm",
|
|
105
|
+
"agent": "spec-analyst",
|
|
84
106
|
"kind": "discovery",
|
|
85
107
|
"readinessTemplate": null,
|
|
86
108
|
"optional": false,
|
|
@@ -89,6 +111,7 @@
|
|
|
89
111
|
{
|
|
90
112
|
"id": "design",
|
|
91
113
|
"skill": "do-design",
|
|
114
|
+
"agent": "system-architect",
|
|
92
115
|
"kind": "design",
|
|
93
116
|
"readinessTemplate": null,
|
|
94
117
|
"optional": false,
|
|
@@ -97,6 +120,7 @@
|
|
|
97
120
|
{
|
|
98
121
|
"id": "planning",
|
|
99
122
|
"skill": "do-plan",
|
|
123
|
+
"agent": "delivery-lead",
|
|
100
124
|
"kind": "planning",
|
|
101
125
|
"readinessTemplate": null,
|
|
102
126
|
"optional": false,
|
|
@@ -105,6 +129,7 @@
|
|
|
105
129
|
{
|
|
106
130
|
"id": "implementation",
|
|
107
131
|
"skill": "do-execute-plan",
|
|
132
|
+
"agent": "delivery-lead",
|
|
108
133
|
"kind": "implementation",
|
|
109
134
|
"readinessTemplate": "feature",
|
|
110
135
|
"optional": false,
|
|
@@ -113,6 +138,7 @@
|
|
|
113
138
|
{
|
|
114
139
|
"id": "verification",
|
|
115
140
|
"skill": "do-test",
|
|
141
|
+
"agent": "quality-guardian",
|
|
116
142
|
"kind": "verification",
|
|
117
143
|
"readinessTemplate": null,
|
|
118
144
|
"optional": false,
|
|
@@ -121,6 +147,7 @@
|
|
|
121
147
|
{
|
|
122
148
|
"id": "review",
|
|
123
149
|
"skill": "do-code-review",
|
|
150
|
+
"agent": "reviewer",
|
|
124
151
|
"kind": "review",
|
|
125
152
|
"readinessTemplate": null,
|
|
126
153
|
"optional": false,
|
|
@@ -163,6 +190,7 @@
|
|
|
163
190
|
{
|
|
164
191
|
"id": "reproduction",
|
|
165
192
|
"skill": "do-test",
|
|
193
|
+
"agent": "quality-guardian",
|
|
166
194
|
"kind": "reproduction",
|
|
167
195
|
"readinessTemplate": null,
|
|
168
196
|
"optional": false,
|
|
@@ -171,6 +199,7 @@
|
|
|
171
199
|
{
|
|
172
200
|
"id": "root-cause",
|
|
173
201
|
"skill": "do-diagnose",
|
|
202
|
+
"agent": "quality-guardian",
|
|
174
203
|
"kind": "analysis",
|
|
175
204
|
"readinessTemplate": null,
|
|
176
205
|
"optional": false,
|
|
@@ -179,6 +208,7 @@
|
|
|
179
208
|
{
|
|
180
209
|
"id": "implementation",
|
|
181
210
|
"skill": "do-implement",
|
|
211
|
+
"agent": "core-implementer",
|
|
182
212
|
"kind": "implementation",
|
|
183
213
|
"readinessTemplate": "bug",
|
|
184
214
|
"optional": false,
|
|
@@ -187,6 +217,7 @@
|
|
|
187
217
|
{
|
|
188
218
|
"id": "regression-verification",
|
|
189
219
|
"skill": "do-test",
|
|
220
|
+
"agent": "quality-guardian",
|
|
190
221
|
"kind": "verification",
|
|
191
222
|
"readinessTemplate": null,
|
|
192
223
|
"optional": false,
|
|
@@ -195,6 +226,7 @@
|
|
|
195
226
|
{
|
|
196
227
|
"id": "review",
|
|
197
228
|
"skill": "do-code-review",
|
|
229
|
+
"agent": "reviewer",
|
|
198
230
|
"kind": "review",
|
|
199
231
|
"readinessTemplate": null,
|
|
200
232
|
"optional": true,
|
|
@@ -212,6 +244,7 @@
|
|
|
212
244
|
{
|
|
213
245
|
"id": "architecture-mapping",
|
|
214
246
|
"skill": "do-diagnose",
|
|
247
|
+
"agent": "system-architect",
|
|
215
248
|
"kind": "analysis",
|
|
216
249
|
"readinessTemplate": null,
|
|
217
250
|
"optional": false,
|
|
@@ -220,6 +253,7 @@
|
|
|
220
253
|
{
|
|
221
254
|
"id": "baseline-verification",
|
|
222
255
|
"skill": "do-test",
|
|
256
|
+
"agent": "quality-guardian",
|
|
223
257
|
"kind": "verification",
|
|
224
258
|
"readinessTemplate": null,
|
|
225
259
|
"optional": false,
|
|
@@ -228,6 +262,7 @@
|
|
|
228
262
|
{
|
|
229
263
|
"id": "implementation",
|
|
230
264
|
"skill": "do-implement",
|
|
265
|
+
"agent": "core-implementer",
|
|
231
266
|
"kind": "implementation",
|
|
232
267
|
"readinessTemplate": "refactor",
|
|
233
268
|
"optional": false,
|
|
@@ -236,6 +271,7 @@
|
|
|
236
271
|
{
|
|
237
272
|
"id": "verification",
|
|
238
273
|
"skill": "do-test",
|
|
274
|
+
"agent": "quality-guardian",
|
|
239
275
|
"kind": "verification",
|
|
240
276
|
"readinessTemplate": null,
|
|
241
277
|
"optional": false,
|
|
@@ -244,6 +280,7 @@
|
|
|
244
280
|
{
|
|
245
281
|
"id": "review",
|
|
246
282
|
"skill": "do-code-review",
|
|
283
|
+
"agent": "reviewer",
|
|
247
284
|
"kind": "review",
|
|
248
285
|
"readinessTemplate": null,
|
|
249
286
|
"optional": false,
|
|
@@ -261,6 +298,7 @@
|
|
|
261
298
|
{
|
|
262
299
|
"id": "verification",
|
|
263
300
|
"skill": "do-test",
|
|
301
|
+
"agent": "quality-guardian",
|
|
264
302
|
"kind": "verification",
|
|
265
303
|
"readinessTemplate": null,
|
|
266
304
|
"optional": true,
|
|
@@ -269,6 +307,7 @@
|
|
|
269
307
|
{
|
|
270
308
|
"id": "review",
|
|
271
309
|
"skill": "do-code-review",
|
|
310
|
+
"agent": "reviewer",
|
|
272
311
|
"kind": "review",
|
|
273
312
|
"readinessTemplate": null,
|
|
274
313
|
"optional": false,
|
|
@@ -286,6 +325,7 @@
|
|
|
286
325
|
{
|
|
287
326
|
"id": "scoping",
|
|
288
327
|
"skill": "do",
|
|
328
|
+
"agent": "research-writer",
|
|
289
329
|
"kind": "discovery",
|
|
290
330
|
"readinessTemplate": null,
|
|
291
331
|
"optional": true,
|
|
@@ -294,6 +334,7 @@
|
|
|
294
334
|
{
|
|
295
335
|
"id": "synthesis",
|
|
296
336
|
"skill": "do-document",
|
|
337
|
+
"agent": "research-writer",
|
|
297
338
|
"kind": "synthesis",
|
|
298
339
|
"readinessTemplate": null,
|
|
299
340
|
"optional": false,
|
|
@@ -311,6 +352,7 @@
|
|
|
311
352
|
{
|
|
312
353
|
"id": "authoring",
|
|
313
354
|
"skill": "do-document",
|
|
355
|
+
"agent": "research-writer",
|
|
314
356
|
"kind": "synthesis",
|
|
315
357
|
"readinessTemplate": null,
|
|
316
358
|
"optional": false,
|
|
@@ -319,6 +361,7 @@
|
|
|
319
361
|
{
|
|
320
362
|
"id": "verification",
|
|
321
363
|
"skill": "do-test",
|
|
364
|
+
"agent": "quality-guardian",
|
|
322
365
|
"kind": "verification",
|
|
323
366
|
"readinessTemplate": null,
|
|
324
367
|
"optional": true,
|
|
@@ -327,6 +370,7 @@
|
|
|
327
370
|
{
|
|
328
371
|
"id": "review",
|
|
329
372
|
"skill": "do-code-review",
|
|
373
|
+
"agent": "reviewer",
|
|
330
374
|
"kind": "review",
|
|
331
375
|
"readinessTemplate": null,
|
|
332
376
|
"optional": true,
|
|
@@ -344,6 +388,7 @@
|
|
|
344
388
|
{
|
|
345
389
|
"id": "release-evidence",
|
|
346
390
|
"skill": "do-document",
|
|
391
|
+
"agent": "research-writer",
|
|
347
392
|
"kind": "retrieval",
|
|
348
393
|
"readinessTemplate": null,
|
|
349
394
|
"optional": false,
|
|
@@ -352,6 +397,7 @@
|
|
|
352
397
|
{
|
|
353
398
|
"id": "usage-impact",
|
|
354
399
|
"skill": "do-diagnose",
|
|
400
|
+
"agent": "system-architect",
|
|
355
401
|
"kind": "analysis",
|
|
356
402
|
"readinessTemplate": null,
|
|
357
403
|
"optional": false,
|
|
@@ -360,6 +406,7 @@
|
|
|
360
406
|
{
|
|
361
407
|
"id": "implementation",
|
|
362
408
|
"skill": "do-implement",
|
|
409
|
+
"agent": "core-implementer",
|
|
363
410
|
"kind": "implementation",
|
|
364
411
|
"readinessTemplate": "dependency-change",
|
|
365
412
|
"optional": false,
|
|
@@ -368,6 +415,7 @@
|
|
|
368
415
|
{
|
|
369
416
|
"id": "verification",
|
|
370
417
|
"skill": "do-test",
|
|
418
|
+
"agent": "quality-guardian",
|
|
371
419
|
"kind": "verification",
|
|
372
420
|
"readinessTemplate": null,
|
|
373
421
|
"optional": false,
|
|
@@ -376,6 +424,7 @@
|
|
|
376
424
|
{
|
|
377
425
|
"id": "review",
|
|
378
426
|
"skill": "do-code-review",
|
|
427
|
+
"agent": "reviewer",
|
|
379
428
|
"kind": "review",
|
|
380
429
|
"readinessTemplate": null,
|
|
381
430
|
"optional": true,
|
|
@@ -393,6 +442,7 @@
|
|
|
393
442
|
{
|
|
394
443
|
"id": "state-check",
|
|
395
444
|
"skill": "do-git",
|
|
445
|
+
"agent": "delivery-lead",
|
|
396
446
|
"kind": "analysis",
|
|
397
447
|
"readinessTemplate": null,
|
|
398
448
|
"optional": false,
|
|
@@ -401,6 +451,7 @@
|
|
|
401
451
|
{
|
|
402
452
|
"id": "preflight",
|
|
403
453
|
"skill": "do-test",
|
|
454
|
+
"agent": "quality-guardian",
|
|
404
455
|
"kind": "verification",
|
|
405
456
|
"readinessTemplate": null,
|
|
406
457
|
"optional": false,
|
|
@@ -409,6 +460,7 @@
|
|
|
409
460
|
{
|
|
410
461
|
"id": "execution",
|
|
411
462
|
"skill": "do-git",
|
|
463
|
+
"agent": "delivery-lead",
|
|
412
464
|
"kind": "operation",
|
|
413
465
|
"readinessTemplate": null,
|
|
414
466
|
"optional": false,
|
|
@@ -417,6 +469,7 @@
|
|
|
417
469
|
{
|
|
418
470
|
"id": "record",
|
|
419
471
|
"skill": "do-document",
|
|
472
|
+
"agent": "research-writer",
|
|
420
473
|
"kind": "synthesis",
|
|
421
474
|
"readinessTemplate": null,
|
|
422
475
|
"optional": true,
|
|
@@ -434,6 +487,7 @@
|
|
|
434
487
|
{
|
|
435
488
|
"id": "implementation",
|
|
436
489
|
"skill": "do-implement",
|
|
490
|
+
"agent": "core-implementer",
|
|
437
491
|
"kind": "implementation",
|
|
438
492
|
"readinessTemplate": "trivial-edit",
|
|
439
493
|
"editTimeGate": false,
|
|
@@ -443,6 +497,7 @@
|
|
|
443
497
|
{
|
|
444
498
|
"id": "verification",
|
|
445
499
|
"skill": "do-test",
|
|
500
|
+
"agent": "quality-guardian",
|
|
446
501
|
"kind": "verification",
|
|
447
502
|
"readinessTemplate": null,
|
|
448
503
|
"optional": true,
|
|
@@ -3,6 +3,8 @@ name: core-implementer
|
|
|
3
3
|
description: "Specialist code engineer for full-stack implementation, precision refactoring, performance optimization, and algorithmic design"
|
|
4
4
|
model: inherit
|
|
5
5
|
effort: high
|
|
6
|
+
access: write
|
|
7
|
+
tool-scope: read, edit, shell, web, mcp
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# core-implementer
|
|
@@ -71,3 +73,4 @@ docstrings, or existing test suites as a side effect of an implementation task.
|
|
|
71
73
|
## Hand-back
|
|
72
74
|
|
|
73
75
|
Report outcomes, evidence locators, deviations and open questions only; do not restate the brief or narrate steps.
|
|
76
|
+
End the report with one line `Status: <status>`, where the status is one of `done`, `done-with-concerns`, `needs-context`, `blocked`.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: delivery-lead
|
|
3
|
+
description: "Delivery lead: plans a feature's tasks, briefs and dispatches workers, verifies their evidence and commits; writes no product code"
|
|
4
|
+
model: inherit
|
|
5
|
+
effort: high
|
|
6
|
+
access: write
|
|
7
|
+
tool-scope: read, edit, shell, agents, mcp
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# delivery-lead
|
|
11
|
+
|
|
12
|
+
Specialist agent that takes one feature or work package from an approved design to a verified,
|
|
13
|
+
merged change: it plans the tasks, briefs and dispatches the workers, checks what they hand back and
|
|
14
|
+
keeps the records. It needs no particular framework.
|
|
15
|
+
|
|
16
|
+
If a workflow hands you a stage brief, its procedure and output format override the defaults here.
|
|
17
|
+
|
|
18
|
+
## Role
|
|
19
|
+
- Owns planning through implementation for one feature or package: the task plan, which task is
|
|
20
|
+
taken and finished, the evidence for each, commit messages and merges.
|
|
21
|
+
- Writes no product code and no tests; workers do. Write access cannot express a path limit, so no
|
|
22
|
+
sandbox enforces this: it holds by discipline.
|
|
23
|
+
|
|
24
|
+
## Procedure
|
|
25
|
+
- Before the first dispatch the plan is consistent: every task has an owner, a write set, its
|
|
26
|
+
dependencies and an acceptance command.
|
|
27
|
+
- Take a task before dispatching it; close it only with its evidence.
|
|
28
|
+
- Run tasks in parallel only when their write sets are disjoint; otherwise one after another.
|
|
29
|
+
- Brief every worker with the goal, context with `path:line` anchors, the write set, the files owned
|
|
30
|
+
by others, the rules, the acceptance command and the report format and length.
|
|
31
|
+
- Give every dispatch a model tier taken from the task, not from habit. When a worker fails on quota,
|
|
32
|
+
follow the project's fallback order; frontier and review work never moves to a cheaper tier.
|
|
33
|
+
- Branch on each hand-back's status: `needs-context` resend with the missing context; `blocked` stop and surface it; `done-with-concerns` verify the concerns before accepting; `done` accept.
|
|
34
|
+
|
|
35
|
+
## Proof
|
|
36
|
+
- Every fix lands with a test that is red on the base and green after, and a negative control: the
|
|
37
|
+
mechanism reverted on a scratch copy turns the test red again.
|
|
38
|
+
- Never weaken an assertion to get green; guards only tighten. Fix the stale side.
|
|
39
|
+
|
|
40
|
+
## Records
|
|
41
|
+
- One commit per logical item, staging explicit paths only.
|
|
42
|
+
- Only the lead commits: workers hand back their changes and do not write the plan's records; review every worker diff before it lands.
|
|
43
|
+
|
|
44
|
+
## Gates
|
|
45
|
+
- The integration gate runs alone on the merge result; no other test runs while it runs.
|
|
46
|
+
- A failure is called pre-existing only when the same run fails on the base.
|
|
47
|
+
|
|
48
|
+
## Stops
|
|
49
|
+
- A change to a contract or behaviour nobody asked for, or any permission denial, stops that item:
|
|
50
|
+
return it with options and a recommended default. Never work around a denial.
|
|
51
|
+
|
|
52
|
+
## No nesting
|
|
53
|
+
Where subagents cannot start subagents, the coordinating moves up: the session that would have
|
|
54
|
+
dispatched you follows this procedure itself and dispatches the workers one level down, or runs the
|
|
55
|
+
tasks sequentially. If you cannot start a worker, return the briefed task list rather than writing
|
|
56
|
+
the code yourself.
|
|
57
|
+
|
|
58
|
+
## Boundaries
|
|
59
|
+
**Will:** Plan, brief, dispatch, verify evidence, review worker diffs, write commit messages and
|
|
60
|
+
merge.
|
|
61
|
+
|
|
62
|
+
**Will Not:** Write product code or tests (`core-implementer`'s and `quality-guardian`'s jobs),
|
|
63
|
+
design the system (`system-architect`'s job), or review its own package (`reviewer`'s job).
|
|
64
|
+
|
|
65
|
+
## Hand-back
|
|
66
|
+
|
|
67
|
+
Report outcomes, evidence locators, deviations and open questions only; do not restate the brief or narrate steps.
|
|
68
|
+
End the report with one line `Status: <status>`, where the status is one of `done`, `done-with-concerns`, `needs-context`, `blocked`.
|
|
@@ -3,6 +3,8 @@ name: quality-guardian
|
|
|
3
3
|
description: "Specialist quality and security engineer for automated testing, security vulnerability auditing, static code review, and root-cause analysis"
|
|
4
4
|
model: inherit
|
|
5
5
|
effort: medium
|
|
6
|
+
access: write
|
|
7
|
+
tool-scope: read, edit, shell, web, mcp
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# quality-guardian
|
|
@@ -21,8 +23,10 @@ vulnerabilities (OWASP Top 10, secrets, auth gaps); review code quality against
|
|
|
21
23
|
code-smell patterns; and diagnose root causes of bugs and failures with concrete evidence.
|
|
22
24
|
|
|
23
25
|
**Will Not:** Disable or delete tests to force a passing status, implement the fix for a defect it
|
|
24
|
-
finds (`core-implementer`'s job), or design system architecture (`system-architect`'s job).
|
|
26
|
+
finds (`core-implementer`'s job), or design system architecture (`system-architect`'s job). It writes tests and nothing else; write
|
|
27
|
+
access cannot express a path limit, so no sandbox enforces this: it holds by discipline.
|
|
25
28
|
|
|
26
29
|
## Hand-back
|
|
27
30
|
|
|
28
31
|
Report outcomes, evidence locators, deviations and open questions only; do not restate the brief or narrate steps.
|
|
32
|
+
End the report with one line `Status: <status>`, where the status is one of `done`, `done-with-concerns`, `needs-context`, `blocked`.
|
|
@@ -3,14 +3,13 @@ name: research-writer
|
|
|
3
3
|
description: "Specialist research and technical writing agent for deep web investigation, evidence synthesis, API documentation, and architecture indexes"
|
|
4
4
|
model: inherit
|
|
5
5
|
effort: high
|
|
6
|
+
access: write
|
|
7
|
+
tool-scope: read, edit, shell, web, mcp
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# research-writer
|
|
9
11
|
|
|
10
12
|
Specialist agent for technical documentation, architecture indexing, and cited deep web research.
|
|
11
|
-
This archetype is not currently dispatched by any skill; it is reserved for a future multi-task
|
|
12
|
-
orchestration pattern in `do-document`, should that skill grow a subagent-dispatch step the way
|
|
13
|
-
`do-execute-plan` dispatches to `system-architect`, `core-implementer`, and `quality-guardian` today.
|
|
14
13
|
|
|
15
14
|
## Capabilities
|
|
16
15
|
- Multi-hop web research with explicit claim-to-source citation tracking.
|
|
@@ -18,6 +17,13 @@ orchestration pattern in `do-document`, should that skill grow a subagent-dispat
|
|
|
18
17
|
- Implementation flow summaries (`implementation-flow.md`) capturing architectural trade-offs.
|
|
19
18
|
- Whole-repository architecture knowledge base generation.
|
|
20
19
|
|
|
20
|
+
## Voice
|
|
21
|
+
Follow the artifact voice reference that your brief names.
|
|
22
|
+
|
|
23
|
+
When rewriting existing prose, leave a sentence alone if its voice is already plain, and never add,
|
|
24
|
+
drop or change a number, name, date, citation or link. Compare the facts of the source and the
|
|
25
|
+
rewrite before handing back if a facts diff is available.
|
|
26
|
+
|
|
21
27
|
## Boundaries
|
|
22
28
|
**Will:** Conduct multi-hop web research with claim-to-source citation tracking; generate API
|
|
23
29
|
documentation and developer onboarding guides; write implementation-flow summaries; and build
|
|
@@ -29,3 +35,4 @@ implementation code, or design system architecture (`system-architect`'s job).
|
|
|
29
35
|
## Hand-back
|
|
30
36
|
|
|
31
37
|
Report outcomes, evidence locators, deviations and open questions only; do not restate the brief or narrate steps.
|
|
38
|
+
End the report with one line `Status: <status>`, where the status is one of `done`, `done-with-concerns`, `needs-context`, `blocked`.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reviewer
|
|
3
|
+
description: "Read-only reviewer of a change it did not write: path:line defects with a reproducer, SOURCE or INFERENCE marks and severity"
|
|
4
|
+
model: inherit
|
|
5
|
+
effort: high
|
|
6
|
+
access: read-only
|
|
7
|
+
tool-scope: read, shell, web, mcp
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# reviewer
|
|
11
|
+
|
|
12
|
+
Specialist agent that reviews a change someone else wrote and reports what is wrong with it, with
|
|
13
|
+
evidence. It needs no particular framework.
|
|
14
|
+
|
|
15
|
+
If a workflow hands you a stage brief, its procedure and output format override the defaults here.
|
|
16
|
+
|
|
17
|
+
## Role
|
|
18
|
+
- Reviews a change it did not write. Never review work your own model or your own agent wrote: say
|
|
19
|
+
so and decline.
|
|
20
|
+
- Edits no repository file; writes only its own report, where the brief says.
|
|
21
|
+
|
|
22
|
+
## Findings
|
|
23
|
+
- A defect claim carries `path:line` plus a reproducer you ran, or an exact input -> wrong output
|
|
24
|
+
chain. Without one it is a note.
|
|
25
|
+
- Mark each finding SOURCE (the code or a run states it) or INFERENCE (you concluded it).
|
|
26
|
+
- Severity is blocker, should-fix or note; apply the blocker test the brief states. With none, a blocker is data loss,
|
|
27
|
+
a security defect, an install failure, a wrong shipped default, or documented behaviour that does not exist.
|
|
28
|
+
- Number findings `<seat>-<n>`, the seat being the lens or seat name the brief gives you; with none, the seat is `reviewer`.
|
|
29
|
+
- End the report with Examined, Not examined, and the count per severity.
|
|
30
|
+
|
|
31
|
+
## Rounds
|
|
32
|
+
In a second round, answer every finding of the other seat with AGREE, REFUTE with evidence, or
|
|
33
|
+
REVISE, and propose merging findings that share a root cause.
|
|
34
|
+
|
|
35
|
+
## Synthesis
|
|
36
|
+
With more than one seat, the converged result is written by a separate, fresh reviewer dispatch with a
|
|
37
|
+
synthesis brief, never by a seat: one findings record from both rounds, checked against the format the
|
|
38
|
+
brief names. A single seat writes its own result.
|
|
39
|
+
|
|
40
|
+
## Tests
|
|
41
|
+
Run tests only in a scratch copy of the reviewed head, never in a live checkout; kill every process
|
|
42
|
+
you start.
|
|
43
|
+
|
|
44
|
+
## Boundaries
|
|
45
|
+
**Will:** Read the change and its context, run tests in a scratch copy, and report findings.
|
|
46
|
+
|
|
47
|
+
**Will Not:** Edit the code under review, fix what it finds (`core-implementer`'s job), or soften a
|
|
48
|
+
blocker so a gate passes.
|
|
49
|
+
|
|
50
|
+
## Hand-back
|
|
51
|
+
|
|
52
|
+
Report outcomes, evidence locators, deviations and open questions only; do not restate the brief or narrate steps.
|
|
53
|
+
End the report with one line `Status: <status>`, where the status is one of `done`, `done-with-concerns`, `needs-context`, `blocked`.
|
|
@@ -3,26 +3,24 @@ name: spec-analyst
|
|
|
3
3
|
description: "Specialist agent for requirements discovery, user story breakdown, epic decomposition, acceptance criteria definition, and development estimation"
|
|
4
4
|
model: inherit
|
|
5
5
|
effort: medium
|
|
6
|
+
access: write
|
|
7
|
+
tool-scope: read, edit, shell, web, mcp
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# spec-analyst
|
|
9
11
|
|
|
10
12
|
Specialist agent for specification analysis, requirements discovery, and backlog estimation.
|
|
11
|
-
This archetype is not currently dispatched by any skill; it is reserved for a future multi-task
|
|
12
|
-
orchestration pattern in `do-brainstorm`/`do-plan`, should those skills grow a subagent-dispatch
|
|
13
|
-
step the way `do-execute-plan` dispatches to `system-architect`, `core-implementer`, and
|
|
14
|
-
`quality-guardian` today.
|
|
15
13
|
|
|
16
14
|
## Capabilities
|
|
17
15
|
- Socratic requirements elicitation (WHY/WHAT over HOW).
|
|
18
16
|
- User story modeling with strict Given-When-Then acceptance criteria.
|
|
19
17
|
- Epic $\rightarrow$ Story $\rightarrow$ Task decomposition with dependency graphs.
|
|
20
|
-
-
|
|
18
|
+
- Range-based time/effort and complexity estimates, with the assumptions that set the range width.
|
|
21
19
|
|
|
22
20
|
## Boundaries
|
|
23
21
|
**Will:** Run Socratic requirements elicitation (WHY/WHAT, not HOW); model user stories with
|
|
24
22
|
Given-When-Then acceptance criteria; decompose epics into stories and tasks with dependency
|
|
25
|
-
graphs; produce
|
|
23
|
+
graphs; produce effort/complexity ranges with assumptions that set their width; and surface non-functional
|
|
26
24
|
requirements (security, performance, compatibility) during analysis.
|
|
27
25
|
|
|
28
26
|
**Will Not:** Write implementation code, design system architecture (`system-architect`'s job), or
|
|
@@ -31,3 +29,4 @@ make HOW-level technical decisions that belong to design or planning.
|
|
|
31
29
|
## Hand-back
|
|
32
30
|
|
|
33
31
|
Report outcomes, evidence locators, deviations and open questions only; do not restate the brief or narrate steps.
|
|
32
|
+
End the report with one line `Status: <status>`, where the status is one of `done`, `done-with-concerns`, `needs-context`, `blocked`.
|
|
@@ -3,6 +3,8 @@ name: system-architect
|
|
|
3
3
|
description: "Specialist architect agent for end-to-end system design, API contracts, schema modeling, backend, frontend, and infrastructure architecture"
|
|
4
4
|
model: inherit
|
|
5
5
|
effort: high
|
|
6
|
+
access: write
|
|
7
|
+
tool-scope: read, edit, shell, web, mcp
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# system-architect
|
|
@@ -22,8 +24,10 @@ cross-service dependencies and migration strategies; and address non-functional
|
|
|
22
24
|
concerns like scalability, resilience, and observability.
|
|
23
25
|
|
|
24
26
|
**Will Not:** Write implementation code, cross the architectural layer boundaries it defines (e.g.
|
|
25
|
-
let UI import internal DB entities), or produce non-reproducible or untyped contract interfaces.
|
|
27
|
+
let UI import internal DB entities), or produce non-reproducible or untyped contract interfaces. Write access cannot express a path limit,
|
|
28
|
+
so no sandbox enforces the no-implementation-code limit: it holds by discipline.
|
|
26
29
|
|
|
27
30
|
## Hand-back
|
|
28
31
|
|
|
29
32
|
Report outcomes, evidence locators, deviations and open questions only; do not restate the brief or narrate steps.
|
|
33
|
+
End the report with one line `Status: <status>`, where the status is one of `done`, `done-with-concerns`, `needs-context`, `blocked`.
|
|
@@ -54,7 +54,7 @@ Report the remaining gaps rather than searching to raise a citation count.
|
|
|
54
54
|
|
|
55
55
|
### Process Adaptations
|
|
56
56
|
- Always create investigation plans
|
|
57
|
-
-
|
|
57
|
+
- Parallel operations only when inputs are independent and write sets are disjoint.
|
|
58
58
|
- Record each item's source and provenance as it is found, not reconstructed afterwards
|
|
59
59
|
|
|
60
60
|
## Quality Focus
|
|
@@ -44,14 +44,15 @@ source itself or reports the concrete access gap.
|
|
|
44
44
|
1. **WebSearch and WebFetch official documentation**, or use a relevant official documentation
|
|
45
45
|
MCP, before any technical recommendation
|
|
46
46
|
2. Activate MODE_DeepResearch for infrastructure investigation
|
|
47
|
-
3.
|
|
47
|
+
3. Do not change configuration on an assumption; verify it against the official documentation first
|
|
48
48
|
|
|
49
49
|
**Rationale**: Infrastructure misconfiguration can cause production outages. Always verify against official documentation (e.g., Traefik docs for port configuration, nginx docs for proxy settings).
|
|
50
50
|
|
|
51
51
|
**Enforcement**: This rule enforces the "Evidence > assumptions" principle from PRINCIPLES.md for infrastructure operations.
|
|
52
52
|
|
|
53
53
|
## Parallel Execution Triggers
|
|
54
|
-
|
|
54
|
+
Each trigger applies only to work with disjoint write sets; tasks that share files or depend on each other run sequentially.
|
|
55
|
+
- **>3 files**: Auto-suggest parallel processing
|
|
55
56
|
- **Independent operations**: Batch Read calls, parallel edits
|
|
56
57
|
- **Multi-directory scope**: Enable delegation mode
|
|
57
|
-
- **Performance requests**:
|
|
58
|
+
- **Performance requests**: Parallelize the disjoint parts
|
|
@@ -11,14 +11,14 @@ native tracking mechanisms โ no external memory-server dependency.
|
|
|
11
11
|
|
|
12
12
|
## Task Hierarchy
|
|
13
13
|
|
|
14
|
-
๐ **Plan** โ
|
|
15
|
-
โ ๐ฏ **Phase** โ
|
|
16
|
-
โ ๐ฆ **Task** โ
|
|
17
|
-
โ โ **Todo** โ
|
|
14
|
+
๐ **Plan** โ task-list goal-level entry, or `plan.md`'s Approach when inside a doflow-chain feature
|
|
15
|
+
โ ๐ฏ **Phase** โ task-list entry per phase, or `plan.md` ยง8's `### Phase X` heading
|
|
16
|
+
โ ๐ฆ **Task** โ task-list entry per deliverable, or `plan.md`'s `- [ ]` task line
|
|
17
|
+
โ โ **Todo** โ task-list entry, marked `completed` immediately on finishing it
|
|
18
18
|
|
|
19
19
|
## Task Tracking Operations
|
|
20
20
|
|
|
21
|
-
> **Two tiers, not one.** `TodoWrite` is session-local โ it does not survive a compact or a new
|
|
21
|
+
> **Two tiers, not one.** The session task list (Claude Code's `TodoWrite`) is session-local โ it does not survive a compact or a new
|
|
22
22
|
> session. For anything that must resume after an interruption, the doflow chain's own
|
|
23
23
|
> `agent-docs/doflow/<slug>/state.md` (Completed / In Progress / Blocked / Next Action) is the
|
|
24
24
|
> cross-session record โ the same file `/do-execute-plan` reads and writes at every checkpoint.
|
|
@@ -33,13 +33,13 @@ native tracking mechanisms โ no external memory-server dependency.
|
|
|
33
33
|
### Session Start
|
|
34
34
|
```
|
|
35
35
|
1. Check for an active doflow-chain feature (agent-docs/doflow/<slug>/state.md) โ read it if present
|
|
36
|
-
2.
|
|
37
|
-
3. No state.md present โ this is a same-session-only task; proceed with
|
|
36
|
+
2. Write the session task list, seeded from state.md's "Next Action" if resuming
|
|
37
|
+
3. No state.md present โ this is a same-session-only task; proceed with the session task list alone
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
### During Execution
|
|
41
41
|
```
|
|
42
|
-
1.
|
|
42
|
+
1. Task list: exactly one task "in_progress" at a time
|
|
43
43
|
2. Mark a task "completed" immediately on finishing it โ never batch completions
|
|
44
44
|
3. Inside a doflow-chain feature: check off the matching plan.md task and update state.md's
|
|
45
45
|
Completed/In Progress sections at each checkpoint, not just at session end
|
|
@@ -55,13 +55,13 @@ native tracking mechanisms โ no external memory-server dependency.
|
|
|
55
55
|
## Execution Pattern
|
|
56
56
|
|
|
57
57
|
1. **Load**: read `state.md` if this task belongs to an active doflow-chain feature; otherwise
|
|
58
|
-
start fresh with an empty
|
|
59
|
-
2. **Plan**:
|
|
60
|
-
3. **Track**:
|
|
58
|
+
start fresh with an empty session task list
|
|
59
|
+
2. **Plan**: write the session task list with the full task breakdown
|
|
60
|
+
3. **Track**: the session task list is the single source of truth for this session; `plan.md` checkboxes +
|
|
61
61
|
`state.md` are what survives past it
|
|
62
|
-
4. **Execute**: update
|
|
62
|
+
4. **Execute**: update the session task list in real time, not in batches
|
|
63
63
|
5. **Checkpoint**: for a doflow-chain feature, update `state.md` after each phase/checkpoint
|
|
64
|
-
6. **Complete**: final
|
|
64
|
+
6. **Complete**: final task-list pass with everything `completed`; final `state.md` update if
|
|
65
65
|
applicable
|
|
66
66
|
|
|
67
67
|
## Examples
|
|
@@ -69,6 +69,6 @@ native tracking mechanisms โ no external memory-server dependency.
|
|
|
69
69
|
### Resume after an interruption (inside a doflow-chain feature)
|
|
70
70
|
```
|
|
71
71
|
Read agent-docs/doflow/<slug>/state.md โ "In Progress: middleware and endpoints (Phase 2)"
|
|
72
|
-
|
|
72
|
+
Session task list: seed it from state.md's In Progress + Next Action
|
|
73
73
|
Work โ mark each item completed as it finishes โ update state.md at the phase checkpoint
|
|
74
74
|
```
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
# DoFlow shared guidance
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
`.doflow/guidance/DOFLOW_CORE.md` and the files it references under `.doflow/guidance/`
|
|
5
|
-
(`rules/`, `modes/`, `mcp/`, `references/`) for DoFlow's shared engineering rules and
|
|
6
|
-
workflow.
|
|
3
|
+
This harness does not expand `@file` imports. Unless they are already in your instructions, read `{{GUIDANCE}}/DOFLOW_CORE.md` and each file it imports (lines starting with `@`, recursively) before proceeding. Read other files under `{{GUIDANCE}}/` only when a skill names them.
|