@lvlup-sw/exarchos 2.4.3 → 2.6.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/.claude-plugin/plugin.json +7 -2
- package/AGENTS.md +2 -2
- package/README.md +91 -57
- package/agents/.gitkeep +0 -0
- package/agents/fixer.md +62 -0
- package/agents/implementer.md +68 -0
- package/agents/reviewer.md +50 -0
- package/commands/dogfood.md +31 -0
- package/commands/ideate.md +1 -1
- package/commands/oneshot.md +178 -0
- package/commands/plan.md +1 -1
- package/commands/prune.md +90 -0
- package/commands/review.md +58 -0
- package/dist/exarchos.js +582 -142
- package/hooks/hooks.json +8 -0
- package/package.json +18 -6
- package/scripts/sync-versions.sh +31 -22
- package/skills/{brainstorming → claude/brainstorming}/SKILL.md +16 -0
- package/skills/{brainstorming → claude/brainstorming}/references/design-template.md +9 -0
- package/skills/{cleanup → claude/cleanup}/SKILL.md +6 -0
- package/skills/{debug → claude/debug}/SKILL.md +41 -0
- package/skills/{debug → claude/debug}/references/hotfix-track.md +12 -49
- package/skills/{debug → claude/debug}/references/investigation-checklist.md +3 -3
- package/skills/{debug → claude/debug}/references/thorough-track.md +12 -42
- package/skills/{delegation → claude/delegation}/SKILL.md +128 -40
- package/skills/{delegation → claude/delegation}/references/agent-teams-saga.md +4 -1
- package/skills/claude/delegation/references/fix-mode.md +118 -0
- package/skills/{delegation → claude/delegation}/references/implementer-prompt.md +29 -1
- package/skills/{delegation → claude/delegation}/references/parallel-strategy.md +1 -1
- package/skills/{delegation → claude/delegation}/references/state-management.md +33 -0
- package/skills/{delegation → claude/delegation}/references/troubleshooting.md +2 -2
- package/skills/{delegation → claude/delegation}/references/workflow-steps.md +6 -10
- package/skills/{delegation → claude/delegation}/references/worktree-enforcement.md +13 -7
- package/skills/claude/dogfood/SKILL.md +235 -0
- package/skills/claude/dogfood/references/report-template.md +109 -0
- package/skills/claude/dogfood/references/root-cause-patterns.md +227 -0
- package/skills/{git-worktrees → claude/git-worktrees}/SKILL.md +6 -9
- package/skills/{implementation-planning → claude/implementation-planning}/SKILL.md +32 -27
- package/skills/claude/implementation-planning/references/task-template.md +63 -0
- package/skills/{implementation-planning → claude/implementation-planning}/references/testing-strategy-guide.md +22 -1
- package/skills/{implementation-planning → claude/implementation-planning}/references/worked-example.md +2 -2
- package/skills/claude/oneshot-workflow/SKILL.md +468 -0
- package/skills/claude/oneshot-workflow/references/choice-state.md +65 -0
- package/skills/claude/prune-workflows/SKILL.md +290 -0
- package/skills/claude/prune-workflows/references/safeguards.md +74 -0
- package/skills/{quality-review → claude/quality-review}/SKILL.md +105 -10
- package/skills/{quality-review → claude/quality-review}/references/auto-transition.md +1 -1
- package/skills/claude/quality-review/references/axiom-integration.md +135 -0
- package/skills/{refactor → claude/refactor}/SKILL.md +32 -39
- package/skills/{refactor → claude/refactor}/references/doc-update-checklist.md +2 -3
- package/skills/{refactor → claude/refactor}/references/explore-checklist.md +4 -6
- package/skills/{refactor → claude/refactor}/references/overhaul-track.md +20 -50
- package/skills/{refactor → claude/refactor/references}/phases/polish-implement.md +2 -2
- package/skills/{refactor → claude/refactor/references}/phases/polish-validate.md +1 -1
- package/skills/{refactor → claude/refactor}/references/polish-track.md +18 -46
- package/skills/{shepherd → claude/shepherd}/SKILL.md +42 -10
- package/skills/{shepherd → claude/shepherd}/references/fix-strategies.md +1 -2
- package/skills/claude/shepherd/references/shepherd-event-schemas.md +56 -0
- package/skills/{spec-review → claude/spec-review}/SKILL.md +48 -10
- package/skills/{spec-review → claude/spec-review}/references/worked-example.md +1 -1
- package/skills/{synthesis → claude/synthesis}/SKILL.md +72 -10
- package/skills/{synthesis → claude/synthesis}/references/github-native-stacking.md +3 -4
- package/skills/{synthesis → claude/synthesis}/references/synthesis-steps.md +11 -13
- package/skills/{workflow-state → claude/workflow-state}/SKILL.md +50 -6
- package/skills/{workflow-state → claude/workflow-state}/references/mcp-tool-reference.md +5 -5
- package/skills/{workflow-state → claude/workflow-state}/references/phase-transitions.md +28 -3
- package/skills/codex/brainstorming/SKILL.md +182 -0
- package/skills/codex/brainstorming/references/design-template.md +107 -0
- package/skills/codex/brainstorming/references/worked-example.md +58 -0
- package/skills/codex/cleanup/SKILL.md +169 -0
- package/skills/codex/cleanup/references/merge-verification.md +40 -0
- package/skills/codex/debug/SKILL.md +247 -0
- package/skills/codex/debug/references/hotfix-track.md +105 -0
- package/skills/codex/debug/references/investigation-checklist.md +217 -0
- package/skills/codex/debug/references/rca-template.md +150 -0
- package/skills/codex/debug/references/state-schema.md +294 -0
- package/skills/codex/debug/references/thorough-track.md +171 -0
- package/skills/codex/debug/references/triage-questions.md +155 -0
- package/skills/codex/debug/references/troubleshooting.md +47 -0
- package/skills/codex/delegation/SKILL.md +353 -0
- package/skills/codex/delegation/references/adaptive-orchestration.md +31 -0
- package/skills/codex/delegation/references/agent-teams-saga.md +254 -0
- package/skills/codex/delegation/references/fix-mode.md +118 -0
- package/skills/codex/delegation/references/fixer-prompt.md +174 -0
- package/skills/codex/delegation/references/implementer-prompt.md +401 -0
- package/skills/codex/delegation/references/parallel-strategy.md +124 -0
- package/skills/codex/delegation/references/pbt-patterns.md +172 -0
- package/skills/codex/delegation/references/pr-fixes-mode.md +155 -0
- package/skills/codex/delegation/references/rationalization-refutation.md +15 -0
- package/skills/codex/delegation/references/state-management.md +84 -0
- package/skills/codex/delegation/references/testing-patterns.md +146 -0
- package/skills/codex/delegation/references/troubleshooting.md +109 -0
- package/skills/codex/delegation/references/worked-example.md +104 -0
- package/skills/codex/delegation/references/workflow-steps.md +131 -0
- package/skills/codex/delegation/references/worktree-enforcement.md +71 -0
- package/skills/codex/dogfood/SKILL.md +235 -0
- package/skills/codex/dogfood/references/report-template.md +109 -0
- package/skills/codex/dogfood/references/root-cause-patterns.md +227 -0
- package/skills/codex/git-worktrees/SKILL.md +193 -0
- package/skills/codex/git-worktrees/references/commands-reference.md +78 -0
- package/skills/codex/implementation-planning/SKILL.md +289 -0
- package/skills/codex/implementation-planning/references/plan-document-template.md +42 -0
- package/skills/codex/implementation-planning/references/rationalization-refutation.md +13 -0
- package/skills/codex/implementation-planning/references/spec-tracing-guide.md +51 -0
- package/skills/codex/implementation-planning/references/task-template.md +63 -0
- package/skills/codex/implementation-planning/references/testing-strategy-guide.md +109 -0
- package/skills/codex/implementation-planning/references/worked-example.md +76 -0
- package/skills/codex/oneshot-workflow/SKILL.md +468 -0
- package/skills/codex/oneshot-workflow/references/choice-state.md +65 -0
- package/skills/codex/prune-workflows/SKILL.md +290 -0
- package/skills/codex/prune-workflows/references/safeguards.md +74 -0
- package/skills/codex/quality-review/SKILL.md +371 -0
- package/skills/codex/quality-review/references/auto-transition.md +47 -0
- package/skills/codex/quality-review/references/axiom-integration.md +135 -0
- package/skills/codex/quality-review/references/code-quality-checklist.md +171 -0
- package/skills/codex/quality-review/references/convergence-and-verdict.md +48 -0
- package/skills/codex/quality-review/references/gate-execution.md +60 -0
- package/skills/codex/quality-review/references/rationalization-refutation.md +13 -0
- package/skills/codex/quality-review/references/review-report-template.md +65 -0
- package/skills/codex/quality-review/references/security-checklist.md +79 -0
- package/skills/codex/quality-review/references/typescript-standards.md +24 -0
- package/skills/codex/refactor/SKILL.md +196 -0
- package/skills/codex/refactor/references/brief-template.md +81 -0
- package/skills/codex/refactor/references/doc-update-checklist.md +113 -0
- package/skills/codex/refactor/references/explore-checklist.md +79 -0
- package/skills/codex/refactor/references/overhaul-track.md +194 -0
- package/skills/codex/refactor/references/phases/auto-chain.md +267 -0
- package/skills/codex/refactor/references/phases/brief.md +176 -0
- package/skills/codex/refactor/references/phases/explore.md +132 -0
- package/skills/codex/refactor/references/phases/overhaul-delegate.md +136 -0
- package/skills/codex/refactor/references/phases/overhaul-plan.md +312 -0
- package/skills/codex/refactor/references/phases/overhaul-review.md +304 -0
- package/skills/codex/refactor/references/phases/polish-implement.md +347 -0
- package/skills/codex/refactor/references/phases/polish-validate.md +218 -0
- package/skills/codex/refactor/references/phases/update-docs.md +234 -0
- package/skills/codex/refactor/references/polish-track.md +152 -0
- package/skills/codex/shepherd/SKILL.md +251 -0
- package/skills/codex/shepherd/references/assess-checklist.md +170 -0
- package/skills/codex/shepherd/references/escalation-criteria.md +53 -0
- package/skills/codex/shepherd/references/fix-strategies.md +289 -0
- package/skills/codex/shepherd/references/gate-event-emission.md +47 -0
- package/skills/codex/shepherd/references/shepherd-event-schemas.md +56 -0
- package/skills/codex/spec-review/SKILL.md +294 -0
- package/skills/codex/spec-review/references/rationalization-refutation.md +13 -0
- package/skills/codex/spec-review/references/review-checklist.md +79 -0
- package/skills/codex/spec-review/references/worked-example.md +72 -0
- package/skills/codex/synthesis/SKILL.md +217 -0
- package/skills/codex/synthesis/references/github-native-stacking.md +135 -0
- package/skills/codex/synthesis/references/merge-ordering.md +50 -0
- package/skills/codex/synthesis/references/pr-descriptions.md +87 -0
- package/skills/codex/synthesis/references/synthesis-steps.md +145 -0
- package/skills/codex/synthesis/references/troubleshooting.md +115 -0
- package/skills/codex/workflow-state/SKILL.md +254 -0
- package/skills/codex/workflow-state/references/mcp-tool-reference.md +89 -0
- package/skills/codex/workflow-state/references/phase-transitions.md +206 -0
- package/skills/copilot/brainstorming/SKILL.md +182 -0
- package/skills/copilot/brainstorming/references/design-template.md +107 -0
- package/skills/copilot/brainstorming/references/worked-example.md +58 -0
- package/skills/copilot/cleanup/SKILL.md +169 -0
- package/skills/copilot/cleanup/references/merge-verification.md +40 -0
- package/skills/copilot/debug/SKILL.md +247 -0
- package/skills/copilot/debug/references/hotfix-track.md +105 -0
- package/skills/copilot/debug/references/investigation-checklist.md +217 -0
- package/skills/copilot/debug/references/rca-template.md +150 -0
- package/skills/copilot/debug/references/state-schema.md +294 -0
- package/skills/copilot/debug/references/thorough-track.md +171 -0
- package/skills/copilot/debug/references/triage-questions.md +155 -0
- package/skills/copilot/debug/references/troubleshooting.md +47 -0
- package/skills/copilot/delegation/SKILL.md +345 -0
- package/skills/copilot/delegation/references/adaptive-orchestration.md +31 -0
- package/skills/copilot/delegation/references/agent-teams-saga.md +254 -0
- package/skills/copilot/delegation/references/fix-mode.md +118 -0
- package/skills/copilot/delegation/references/fixer-prompt.md +174 -0
- package/skills/copilot/delegation/references/implementer-prompt.md +401 -0
- package/skills/copilot/delegation/references/parallel-strategy.md +124 -0
- package/skills/copilot/delegation/references/pbt-patterns.md +172 -0
- package/skills/copilot/delegation/references/pr-fixes-mode.md +155 -0
- package/skills/copilot/delegation/references/rationalization-refutation.md +15 -0
- package/skills/copilot/delegation/references/state-management.md +84 -0
- package/skills/copilot/delegation/references/testing-patterns.md +146 -0
- package/skills/copilot/delegation/references/troubleshooting.md +109 -0
- package/skills/copilot/delegation/references/worked-example.md +104 -0
- package/skills/copilot/delegation/references/workflow-steps.md +131 -0
- package/skills/copilot/delegation/references/worktree-enforcement.md +71 -0
- package/skills/copilot/dogfood/SKILL.md +235 -0
- package/skills/copilot/dogfood/references/report-template.md +109 -0
- package/skills/copilot/dogfood/references/root-cause-patterns.md +227 -0
- package/skills/copilot/git-worktrees/SKILL.md +193 -0
- package/skills/copilot/git-worktrees/references/commands-reference.md +78 -0
- package/skills/copilot/implementation-planning/SKILL.md +289 -0
- package/skills/copilot/implementation-planning/references/plan-document-template.md +42 -0
- package/skills/copilot/implementation-planning/references/rationalization-refutation.md +13 -0
- package/skills/copilot/implementation-planning/references/spec-tracing-guide.md +51 -0
- package/skills/copilot/implementation-planning/references/task-template.md +63 -0
- package/skills/copilot/implementation-planning/references/testing-strategy-guide.md +109 -0
- package/skills/copilot/implementation-planning/references/worked-example.md +76 -0
- package/skills/copilot/oneshot-workflow/SKILL.md +468 -0
- package/skills/copilot/oneshot-workflow/references/choice-state.md +65 -0
- package/skills/copilot/prune-workflows/SKILL.md +290 -0
- package/skills/copilot/prune-workflows/references/safeguards.md +74 -0
- package/skills/copilot/quality-review/SKILL.md +371 -0
- package/skills/copilot/quality-review/references/auto-transition.md +47 -0
- package/skills/copilot/quality-review/references/axiom-integration.md +135 -0
- package/skills/copilot/quality-review/references/code-quality-checklist.md +171 -0
- package/skills/copilot/quality-review/references/convergence-and-verdict.md +48 -0
- package/skills/copilot/quality-review/references/gate-execution.md +60 -0
- package/skills/copilot/quality-review/references/rationalization-refutation.md +13 -0
- package/skills/copilot/quality-review/references/review-report-template.md +65 -0
- package/skills/copilot/quality-review/references/security-checklist.md +79 -0
- package/skills/copilot/quality-review/references/typescript-standards.md +24 -0
- package/skills/copilot/refactor/SKILL.md +196 -0
- package/skills/copilot/refactor/references/brief-template.md +81 -0
- package/skills/copilot/refactor/references/doc-update-checklist.md +113 -0
- package/skills/copilot/refactor/references/explore-checklist.md +79 -0
- package/skills/copilot/refactor/references/overhaul-track.md +194 -0
- package/skills/copilot/refactor/references/phases/auto-chain.md +267 -0
- package/skills/copilot/refactor/references/phases/brief.md +176 -0
- package/skills/copilot/refactor/references/phases/explore.md +132 -0
- package/skills/copilot/refactor/references/phases/overhaul-delegate.md +136 -0
- package/skills/copilot/refactor/references/phases/overhaul-plan.md +312 -0
- package/skills/copilot/refactor/references/phases/overhaul-review.md +304 -0
- package/skills/copilot/refactor/references/phases/polish-implement.md +347 -0
- package/skills/copilot/refactor/references/phases/polish-validate.md +218 -0
- package/skills/copilot/refactor/references/phases/update-docs.md +234 -0
- package/skills/copilot/refactor/references/polish-track.md +152 -0
- package/skills/copilot/shepherd/SKILL.md +251 -0
- package/skills/copilot/shepherd/references/assess-checklist.md +170 -0
- package/skills/copilot/shepherd/references/escalation-criteria.md +53 -0
- package/skills/copilot/shepherd/references/fix-strategies.md +289 -0
- package/skills/copilot/shepherd/references/gate-event-emission.md +47 -0
- package/skills/copilot/shepherd/references/shepherd-event-schemas.md +56 -0
- package/skills/copilot/spec-review/SKILL.md +294 -0
- package/skills/copilot/spec-review/references/rationalization-refutation.md +13 -0
- package/skills/copilot/spec-review/references/review-checklist.md +79 -0
- package/skills/copilot/spec-review/references/worked-example.md +72 -0
- package/skills/copilot/synthesis/SKILL.md +217 -0
- package/skills/copilot/synthesis/references/github-native-stacking.md +135 -0
- package/skills/copilot/synthesis/references/merge-ordering.md +50 -0
- package/skills/copilot/synthesis/references/pr-descriptions.md +87 -0
- package/skills/copilot/synthesis/references/synthesis-steps.md +145 -0
- package/skills/copilot/synthesis/references/troubleshooting.md +115 -0
- package/skills/copilot/workflow-state/SKILL.md +254 -0
- package/skills/copilot/workflow-state/references/mcp-tool-reference.md +89 -0
- package/skills/copilot/workflow-state/references/phase-transitions.md +206 -0
- package/skills/cursor/brainstorming/SKILL.md +182 -0
- package/skills/cursor/brainstorming/references/design-template.md +107 -0
- package/skills/cursor/brainstorming/references/worked-example.md +58 -0
- package/skills/cursor/cleanup/SKILL.md +169 -0
- package/skills/cursor/cleanup/references/merge-verification.md +40 -0
- package/skills/cursor/debug/SKILL.md +247 -0
- package/skills/cursor/debug/references/hotfix-track.md +105 -0
- package/skills/cursor/debug/references/investigation-checklist.md +217 -0
- package/skills/cursor/debug/references/rca-template.md +150 -0
- package/skills/cursor/debug/references/state-schema.md +294 -0
- package/skills/cursor/debug/references/thorough-track.md +171 -0
- package/skills/cursor/debug/references/triage-questions.md +155 -0
- package/skills/cursor/debug/references/troubleshooting.md +47 -0
- package/skills/cursor/delegation/SKILL.md +351 -0
- package/skills/cursor/delegation/references/adaptive-orchestration.md +31 -0
- package/skills/cursor/delegation/references/agent-teams-saga.md +254 -0
- package/skills/cursor/delegation/references/fix-mode.md +118 -0
- package/skills/cursor/delegation/references/fixer-prompt.md +174 -0
- package/skills/cursor/delegation/references/implementer-prompt.md +401 -0
- package/skills/cursor/delegation/references/parallel-strategy.md +124 -0
- package/skills/cursor/delegation/references/pbt-patterns.md +172 -0
- package/skills/cursor/delegation/references/pr-fixes-mode.md +155 -0
- package/skills/cursor/delegation/references/rationalization-refutation.md +15 -0
- package/skills/cursor/delegation/references/state-management.md +84 -0
- package/skills/cursor/delegation/references/testing-patterns.md +146 -0
- package/skills/cursor/delegation/references/troubleshooting.md +109 -0
- package/skills/cursor/delegation/references/worked-example.md +104 -0
- package/skills/cursor/delegation/references/workflow-steps.md +131 -0
- package/skills/cursor/delegation/references/worktree-enforcement.md +71 -0
- package/skills/cursor/dogfood/SKILL.md +235 -0
- package/skills/cursor/dogfood/references/report-template.md +109 -0
- package/skills/cursor/dogfood/references/root-cause-patterns.md +227 -0
- package/skills/cursor/git-worktrees/SKILL.md +193 -0
- package/skills/cursor/git-worktrees/references/commands-reference.md +78 -0
- package/skills/cursor/implementation-planning/SKILL.md +289 -0
- package/skills/cursor/implementation-planning/references/plan-document-template.md +42 -0
- package/skills/cursor/implementation-planning/references/rationalization-refutation.md +13 -0
- package/skills/cursor/implementation-planning/references/spec-tracing-guide.md +51 -0
- package/skills/cursor/implementation-planning/references/task-template.md +63 -0
- package/skills/cursor/implementation-planning/references/testing-strategy-guide.md +109 -0
- package/skills/cursor/implementation-planning/references/worked-example.md +76 -0
- package/skills/cursor/oneshot-workflow/SKILL.md +468 -0
- package/skills/cursor/oneshot-workflow/references/choice-state.md +65 -0
- package/skills/cursor/prune-workflows/SKILL.md +290 -0
- package/skills/cursor/prune-workflows/references/safeguards.md +74 -0
- package/skills/cursor/quality-review/SKILL.md +371 -0
- package/skills/cursor/quality-review/references/auto-transition.md +47 -0
- package/skills/cursor/quality-review/references/axiom-integration.md +135 -0
- package/skills/cursor/quality-review/references/code-quality-checklist.md +171 -0
- package/skills/cursor/quality-review/references/convergence-and-verdict.md +48 -0
- package/skills/cursor/quality-review/references/gate-execution.md +60 -0
- package/skills/cursor/quality-review/references/rationalization-refutation.md +13 -0
- package/skills/cursor/quality-review/references/review-report-template.md +65 -0
- package/skills/cursor/quality-review/references/security-checklist.md +79 -0
- package/skills/cursor/quality-review/references/typescript-standards.md +24 -0
- package/skills/cursor/refactor/SKILL.md +196 -0
- package/skills/cursor/refactor/references/brief-template.md +81 -0
- package/skills/cursor/refactor/references/doc-update-checklist.md +113 -0
- package/skills/cursor/refactor/references/explore-checklist.md +79 -0
- package/skills/cursor/refactor/references/overhaul-track.md +194 -0
- package/skills/cursor/refactor/references/phases/auto-chain.md +267 -0
- package/skills/cursor/refactor/references/phases/brief.md +176 -0
- package/skills/cursor/refactor/references/phases/explore.md +132 -0
- package/skills/cursor/refactor/references/phases/overhaul-delegate.md +136 -0
- package/skills/cursor/refactor/references/phases/overhaul-plan.md +312 -0
- package/skills/cursor/refactor/references/phases/overhaul-review.md +304 -0
- package/skills/cursor/refactor/references/phases/polish-implement.md +347 -0
- package/skills/cursor/refactor/references/phases/polish-validate.md +218 -0
- package/skills/cursor/refactor/references/phases/update-docs.md +234 -0
- package/skills/cursor/refactor/references/polish-track.md +152 -0
- package/skills/cursor/shepherd/SKILL.md +251 -0
- package/skills/cursor/shepherd/references/assess-checklist.md +170 -0
- package/skills/cursor/shepherd/references/escalation-criteria.md +53 -0
- package/skills/cursor/shepherd/references/fix-strategies.md +289 -0
- package/skills/cursor/shepherd/references/gate-event-emission.md +47 -0
- package/skills/cursor/shepherd/references/shepherd-event-schemas.md +56 -0
- package/skills/cursor/spec-review/SKILL.md +294 -0
- package/skills/cursor/spec-review/references/rationalization-refutation.md +13 -0
- package/skills/cursor/spec-review/references/review-checklist.md +79 -0
- package/skills/cursor/spec-review/references/worked-example.md +72 -0
- package/skills/cursor/synthesis/SKILL.md +217 -0
- package/skills/cursor/synthesis/references/github-native-stacking.md +135 -0
- package/skills/cursor/synthesis/references/merge-ordering.md +50 -0
- package/skills/cursor/synthesis/references/pr-descriptions.md +87 -0
- package/skills/cursor/synthesis/references/synthesis-steps.md +145 -0
- package/skills/cursor/synthesis/references/troubleshooting.md +115 -0
- package/skills/cursor/workflow-state/SKILL.md +254 -0
- package/skills/cursor/workflow-state/references/mcp-tool-reference.md +89 -0
- package/skills/cursor/workflow-state/references/phase-transitions.md +206 -0
- package/skills/generic/brainstorming/SKILL.md +182 -0
- package/skills/generic/brainstorming/references/design-template.md +107 -0
- package/skills/generic/brainstorming/references/worked-example.md +58 -0
- package/skills/generic/cleanup/SKILL.md +169 -0
- package/skills/generic/cleanup/references/merge-verification.md +40 -0
- package/skills/generic/debug/SKILL.md +247 -0
- package/skills/generic/debug/references/hotfix-track.md +105 -0
- package/skills/generic/debug/references/investigation-checklist.md +217 -0
- package/skills/generic/debug/references/rca-template.md +150 -0
- package/skills/generic/debug/references/state-schema.md +294 -0
- package/skills/generic/debug/references/thorough-track.md +171 -0
- package/skills/generic/debug/references/triage-questions.md +155 -0
- package/skills/generic/debug/references/troubleshooting.md +47 -0
- package/skills/generic/delegation/SKILL.md +345 -0
- package/skills/generic/delegation/references/adaptive-orchestration.md +31 -0
- package/skills/generic/delegation/references/agent-teams-saga.md +254 -0
- package/skills/generic/delegation/references/fix-mode.md +118 -0
- package/skills/generic/delegation/references/fixer-prompt.md +174 -0
- package/skills/generic/delegation/references/implementer-prompt.md +401 -0
- package/skills/generic/delegation/references/parallel-strategy.md +124 -0
- package/skills/generic/delegation/references/pbt-patterns.md +172 -0
- package/skills/generic/delegation/references/pr-fixes-mode.md +155 -0
- package/skills/generic/delegation/references/rationalization-refutation.md +15 -0
- package/skills/generic/delegation/references/state-management.md +84 -0
- package/skills/generic/delegation/references/testing-patterns.md +146 -0
- package/skills/generic/delegation/references/troubleshooting.md +109 -0
- package/skills/generic/delegation/references/worked-example.md +104 -0
- package/skills/generic/delegation/references/workflow-steps.md +131 -0
- package/skills/generic/delegation/references/worktree-enforcement.md +71 -0
- package/skills/generic/dogfood/SKILL.md +235 -0
- package/skills/generic/dogfood/references/report-template.md +109 -0
- package/skills/generic/dogfood/references/root-cause-patterns.md +227 -0
- package/skills/generic/git-worktrees/SKILL.md +193 -0
- package/skills/generic/git-worktrees/references/commands-reference.md +78 -0
- package/skills/generic/implementation-planning/SKILL.md +289 -0
- package/skills/generic/implementation-planning/references/plan-document-template.md +42 -0
- package/skills/generic/implementation-planning/references/rationalization-refutation.md +13 -0
- package/skills/generic/implementation-planning/references/spec-tracing-guide.md +51 -0
- package/skills/generic/implementation-planning/references/task-template.md +63 -0
- package/skills/generic/implementation-planning/references/testing-strategy-guide.md +109 -0
- package/skills/generic/implementation-planning/references/worked-example.md +76 -0
- package/skills/generic/oneshot-workflow/SKILL.md +468 -0
- package/skills/generic/oneshot-workflow/references/choice-state.md +65 -0
- package/skills/generic/prune-workflows/SKILL.md +290 -0
- package/skills/generic/prune-workflows/references/safeguards.md +74 -0
- package/skills/generic/quality-review/SKILL.md +371 -0
- package/skills/generic/quality-review/references/auto-transition.md +47 -0
- package/skills/generic/quality-review/references/axiom-integration.md +135 -0
- package/skills/generic/quality-review/references/code-quality-checklist.md +171 -0
- package/skills/generic/quality-review/references/convergence-and-verdict.md +48 -0
- package/skills/generic/quality-review/references/gate-execution.md +60 -0
- package/skills/generic/quality-review/references/rationalization-refutation.md +13 -0
- package/skills/generic/quality-review/references/review-report-template.md +65 -0
- package/skills/generic/quality-review/references/security-checklist.md +79 -0
- package/skills/generic/quality-review/references/typescript-standards.md +24 -0
- package/skills/generic/refactor/SKILL.md +196 -0
- package/skills/generic/refactor/references/brief-template.md +81 -0
- package/skills/generic/refactor/references/doc-update-checklist.md +113 -0
- package/skills/generic/refactor/references/explore-checklist.md +79 -0
- package/skills/generic/refactor/references/overhaul-track.md +194 -0
- package/skills/generic/refactor/references/phases/auto-chain.md +267 -0
- package/skills/generic/refactor/references/phases/brief.md +176 -0
- package/skills/generic/refactor/references/phases/explore.md +132 -0
- package/skills/generic/refactor/references/phases/overhaul-delegate.md +136 -0
- package/skills/generic/refactor/references/phases/overhaul-plan.md +312 -0
- package/skills/generic/refactor/references/phases/overhaul-review.md +304 -0
- package/skills/generic/refactor/references/phases/polish-implement.md +347 -0
- package/skills/generic/refactor/references/phases/polish-validate.md +218 -0
- package/skills/generic/refactor/references/phases/update-docs.md +234 -0
- package/skills/generic/refactor/references/polish-track.md +152 -0
- package/skills/generic/shepherd/SKILL.md +251 -0
- package/skills/generic/shepherd/references/assess-checklist.md +170 -0
- package/skills/generic/shepherd/references/escalation-criteria.md +53 -0
- package/skills/generic/shepherd/references/fix-strategies.md +289 -0
- package/skills/generic/shepherd/references/gate-event-emission.md +47 -0
- package/skills/generic/shepherd/references/shepherd-event-schemas.md +56 -0
- package/skills/generic/spec-review/SKILL.md +294 -0
- package/skills/generic/spec-review/references/rationalization-refutation.md +13 -0
- package/skills/generic/spec-review/references/review-checklist.md +79 -0
- package/skills/generic/spec-review/references/worked-example.md +72 -0
- package/skills/generic/synthesis/SKILL.md +217 -0
- package/skills/generic/synthesis/references/github-native-stacking.md +135 -0
- package/skills/generic/synthesis/references/merge-ordering.md +50 -0
- package/skills/generic/synthesis/references/pr-descriptions.md +87 -0
- package/skills/generic/synthesis/references/synthesis-steps.md +145 -0
- package/skills/generic/synthesis/references/troubleshooting.md +115 -0
- package/skills/generic/workflow-state/SKILL.md +254 -0
- package/skills/generic/workflow-state/references/mcp-tool-reference.md +89 -0
- package/skills/generic/workflow-state/references/phase-transitions.md +206 -0
- package/skills/opencode/brainstorming/SKILL.md +182 -0
- package/skills/opencode/brainstorming/references/design-template.md +107 -0
- package/skills/opencode/brainstorming/references/worked-example.md +58 -0
- package/skills/opencode/cleanup/SKILL.md +169 -0
- package/skills/opencode/cleanup/references/merge-verification.md +40 -0
- package/skills/opencode/debug/SKILL.md +247 -0
- package/skills/opencode/debug/references/hotfix-track.md +105 -0
- package/skills/opencode/debug/references/investigation-checklist.md +217 -0
- package/skills/opencode/debug/references/rca-template.md +150 -0
- package/skills/opencode/debug/references/state-schema.md +294 -0
- package/skills/opencode/debug/references/thorough-track.md +171 -0
- package/skills/opencode/debug/references/triage-questions.md +155 -0
- package/skills/opencode/debug/references/troubleshooting.md +47 -0
- package/skills/opencode/delegation/SKILL.md +353 -0
- package/skills/opencode/delegation/references/adaptive-orchestration.md +31 -0
- package/skills/opencode/delegation/references/agent-teams-saga.md +254 -0
- package/skills/opencode/delegation/references/fix-mode.md +118 -0
- package/skills/opencode/delegation/references/fixer-prompt.md +174 -0
- package/skills/opencode/delegation/references/implementer-prompt.md +401 -0
- package/skills/opencode/delegation/references/parallel-strategy.md +124 -0
- package/skills/opencode/delegation/references/pbt-patterns.md +172 -0
- package/skills/opencode/delegation/references/pr-fixes-mode.md +155 -0
- package/skills/opencode/delegation/references/rationalization-refutation.md +15 -0
- package/skills/opencode/delegation/references/state-management.md +84 -0
- package/skills/opencode/delegation/references/testing-patterns.md +146 -0
- package/skills/opencode/delegation/references/troubleshooting.md +109 -0
- package/skills/opencode/delegation/references/worked-example.md +104 -0
- package/skills/opencode/delegation/references/workflow-steps.md +131 -0
- package/skills/opencode/delegation/references/worktree-enforcement.md +71 -0
- package/skills/opencode/dogfood/SKILL.md +235 -0
- package/skills/opencode/dogfood/references/report-template.md +109 -0
- package/skills/opencode/dogfood/references/root-cause-patterns.md +227 -0
- package/skills/opencode/git-worktrees/SKILL.md +193 -0
- package/skills/opencode/git-worktrees/references/commands-reference.md +78 -0
- package/skills/opencode/implementation-planning/SKILL.md +289 -0
- package/skills/opencode/implementation-planning/references/plan-document-template.md +42 -0
- package/skills/opencode/implementation-planning/references/rationalization-refutation.md +13 -0
- package/skills/opencode/implementation-planning/references/spec-tracing-guide.md +51 -0
- package/skills/opencode/implementation-planning/references/task-template.md +63 -0
- package/skills/opencode/implementation-planning/references/testing-strategy-guide.md +109 -0
- package/skills/opencode/implementation-planning/references/worked-example.md +76 -0
- package/skills/opencode/oneshot-workflow/SKILL.md +468 -0
- package/skills/opencode/oneshot-workflow/references/choice-state.md +65 -0
- package/skills/opencode/prune-workflows/SKILL.md +290 -0
- package/skills/opencode/prune-workflows/references/safeguards.md +74 -0
- package/skills/opencode/quality-review/SKILL.md +371 -0
- package/skills/opencode/quality-review/references/auto-transition.md +47 -0
- package/skills/opencode/quality-review/references/axiom-integration.md +135 -0
- package/skills/opencode/quality-review/references/code-quality-checklist.md +171 -0
- package/skills/opencode/quality-review/references/convergence-and-verdict.md +48 -0
- package/skills/opencode/quality-review/references/gate-execution.md +60 -0
- package/skills/opencode/quality-review/references/rationalization-refutation.md +13 -0
- package/skills/opencode/quality-review/references/review-report-template.md +65 -0
- package/skills/opencode/quality-review/references/security-checklist.md +79 -0
- package/skills/opencode/quality-review/references/typescript-standards.md +24 -0
- package/skills/opencode/refactor/SKILL.md +196 -0
- package/skills/opencode/refactor/references/brief-template.md +81 -0
- package/skills/opencode/refactor/references/doc-update-checklist.md +113 -0
- package/skills/opencode/refactor/references/explore-checklist.md +79 -0
- package/skills/opencode/refactor/references/overhaul-track.md +194 -0
- package/skills/opencode/refactor/references/phases/auto-chain.md +267 -0
- package/skills/opencode/refactor/references/phases/brief.md +176 -0
- package/skills/opencode/refactor/references/phases/explore.md +132 -0
- package/skills/opencode/refactor/references/phases/overhaul-delegate.md +136 -0
- package/skills/opencode/refactor/references/phases/overhaul-plan.md +312 -0
- package/skills/opencode/refactor/references/phases/overhaul-review.md +304 -0
- package/skills/opencode/refactor/references/phases/polish-implement.md +347 -0
- package/skills/opencode/refactor/references/phases/polish-validate.md +218 -0
- package/skills/opencode/refactor/references/phases/update-docs.md +234 -0
- package/skills/opencode/refactor/references/polish-track.md +152 -0
- package/skills/opencode/shepherd/SKILL.md +251 -0
- package/skills/opencode/shepherd/references/assess-checklist.md +170 -0
- package/skills/opencode/shepherd/references/escalation-criteria.md +53 -0
- package/skills/opencode/shepherd/references/fix-strategies.md +289 -0
- package/skills/opencode/shepherd/references/gate-event-emission.md +47 -0
- package/skills/opencode/shepherd/references/shepherd-event-schemas.md +56 -0
- package/skills/opencode/spec-review/SKILL.md +294 -0
- package/skills/opencode/spec-review/references/rationalization-refutation.md +13 -0
- package/skills/opencode/spec-review/references/review-checklist.md +79 -0
- package/skills/opencode/spec-review/references/worked-example.md +72 -0
- package/skills/opencode/synthesis/SKILL.md +217 -0
- package/skills/opencode/synthesis/references/github-native-stacking.md +135 -0
- package/skills/opencode/synthesis/references/merge-ordering.md +50 -0
- package/skills/opencode/synthesis/references/pr-descriptions.md +87 -0
- package/skills/opencode/synthesis/references/synthesis-steps.md +145 -0
- package/skills/opencode/synthesis/references/troubleshooting.md +115 -0
- package/skills/opencode/workflow-state/SKILL.md +254 -0
- package/skills/opencode/workflow-state/references/mcp-tool-reference.md +89 -0
- package/skills/opencode/workflow-state/references/phase-transitions.md +206 -0
- package/.claude-plugin/marketplace.json +0 -34
- package/dist/node_modules/electron/index.js +0 -1
- package/dist/node_modules/electron/package.json +0 -1
- package/dist/node_modules/playwright-core/index.js +0 -1
- package/dist/node_modules/playwright-core/package.json +0 -1
- package/scripts/assess-refactor-scope.sh +0 -239
- package/scripts/check-coderabbit.sh +0 -288
- package/scripts/check-context-economy.sh +0 -405
- package/scripts/check-coverage-thresholds.sh +0 -194
- package/scripts/check-operational-resilience.sh +0 -306
- package/scripts/check-polish-scope.sh +0 -245
- package/scripts/check-post-merge.sh +0 -185
- package/scripts/check-pr-comments.sh +0 -127
- package/scripts/check-task-decomposition.sh +0 -451
- package/scripts/check-tdd-compliance.sh +0 -265
- package/scripts/check-workflow-determinism.sh +0 -312
- package/scripts/debug-review-gate.sh +0 -201
- package/scripts/extract-fix-tasks.sh +0 -179
- package/scripts/extract-task.sh +0 -67
- package/scripts/generate-traceability.sh +0 -209
- package/scripts/investigation-timer.sh +0 -171
- package/scripts/needs-schema-sync.sh +0 -174
- package/scripts/new-project.sh +0 -103
- package/scripts/post-delegation-check.sh +0 -317
- package/scripts/pre-synthesis-check.sh +0 -475
- package/scripts/reconcile-state.sh +0 -346
- package/scripts/review-diff.sh +0 -63
- package/scripts/review-verdict.sh +0 -169
- package/scripts/security-scan.sh +0 -248
- package/scripts/select-debug-track.sh +0 -186
- package/scripts/setup-worktree.sh +0 -323
- package/scripts/spec-coverage-check.sh +0 -230
- package/scripts/static-analysis-gate.sh +0 -261
- package/scripts/validate-companion.sh +0 -161
- package/scripts/validate-pr-body.sh +0 -158
- package/scripts/validate-pr-stack.sh +0 -146
- package/scripts/verify-delegation-saga.sh +0 -240
- package/scripts/verify-doc-links.sh +0 -211
- package/scripts/verify-ideate-artifacts.sh +0 -296
- package/scripts/verify-plan-coverage.sh +0 -408
- package/scripts/verify-provenance-chain.sh +0 -310
- package/scripts/verify-review-triage.sh +0 -219
- package/scripts/verify-worktree-baseline.sh +0 -159
- package/scripts/verify-worktree.sh +0 -84
- package/skills/delegation/references/fix-mode.md +0 -78
- package/skills/implementation-planning/references/task-template.md +0 -43
- package/skills/shared/prompts/context-reading.md +0 -66
- package/skills/shared/prompts/report-format.md +0 -54
- package/skills/shared/prompts/tdd-requirements.md +0 -39
- package/skills/shared/references/coding-standards.md +0 -46
- package/skills/shared/references/mcp-tool-guidance.md +0 -26
- package/skills/shared/references/skill-path-resolution.md +0 -10
- package/skills/shared/references/tdd.md +0 -41
- package/skills/shared/references/telemetry-awareness.md +0 -9
- /package/skills/{brainstorming → claude/brainstorming}/references/worked-example.md +0 -0
- /package/skills/{cleanup → claude/cleanup}/references/merge-verification.md +0 -0
- /package/skills/{debug → claude/debug}/references/rca-template.md +0 -0
- /package/skills/{debug → claude/debug}/references/state-schema.md +0 -0
- /package/skills/{debug → claude/debug}/references/triage-questions.md +0 -0
- /package/skills/{debug → claude/debug}/references/troubleshooting.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/adaptive-orchestration.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/fixer-prompt.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/pbt-patterns.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/pr-fixes-mode.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/rationalization-refutation.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/testing-patterns.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/worked-example.md +0 -0
- /package/skills/{git-worktrees → claude/git-worktrees}/references/commands-reference.md +0 -0
- /package/skills/{implementation-planning → claude/implementation-planning}/references/plan-document-template.md +0 -0
- /package/skills/{implementation-planning → claude/implementation-planning}/references/rationalization-refutation.md +0 -0
- /package/skills/{implementation-planning → claude/implementation-planning}/references/spec-tracing-guide.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/code-quality-checklist.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/convergence-and-verdict.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/gate-execution.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/rationalization-refutation.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/review-report-template.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/security-checklist.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/typescript-standards.md +0 -0
- /package/skills/{refactor → claude/refactor}/references/brief-template.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/auto-chain.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/brief.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/explore.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/overhaul-delegate.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/overhaul-plan.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/overhaul-review.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/update-docs.md +0 -0
- /package/skills/{shepherd → claude/shepherd}/references/assess-checklist.md +0 -0
- /package/skills/{shepherd → claude/shepherd}/references/escalation-criteria.md +0 -0
- /package/skills/{shepherd → claude/shepherd}/references/gate-event-emission.md +0 -0
- /package/skills/{spec-review → claude/spec-review}/references/rationalization-refutation.md +0 -0
- /package/skills/{spec-review → claude/spec-review}/references/review-checklist.md +0 -0
- /package/skills/{synthesis → claude/synthesis}/references/merge-ordering.md +0 -0
- /package/skills/{synthesis → claude/synthesis}/references/pr-descriptions.md +0 -0
- /package/skills/{synthesis → claude/synthesis}/references/troubleshooting.md +0 -0
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oneshot-workflow
|
|
3
|
+
description: "Lightweight workflow for straightforward changes — plan → implement → optional PR. Direct-commit by default; synthesize is opt-in via synthesisPolicy or a runtime request_synthesize event. Use for trivial fixes, config tweaks, single-file changes, or exploratory work that doesn't warrant subagent dispatch or two-stage review. Triggers: 'oneshot', 'quick fix', 'small change', or /oneshot."
|
|
4
|
+
metadata:
|
|
5
|
+
author: exarchos
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
mcp-server: exarchos
|
|
8
|
+
category: workflow
|
|
9
|
+
phase-affinity: plan
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Oneshot Workflow Skill
|
|
13
|
+
|
|
14
|
+
A lean, four-phase workflow type for changes that are too small to justify the
|
|
15
|
+
full `feature` flow (`ideate → plan → plan-review → delegate → review → synthesize → completed`)
|
|
16
|
+
but still deserve event-sourced auditability and a planning step. The workflow is
|
|
17
|
+
**direct-commit by default** with an opt-in PR path; the choice between the
|
|
18
|
+
two is resolved at the end of `implementing` via a pure event-sourced guard,
|
|
19
|
+
not a heuristic.
|
|
20
|
+
|
|
21
|
+
> **Read this first if you have never run a oneshot:** the workflow has a
|
|
22
|
+
> *choice state* at the end of `implementing`. Whether you land on
|
|
23
|
+
> `completed` (direct commit) or transition through `synthesize` (PR) is
|
|
24
|
+
> decided by two inputs: the `synthesisPolicy` set at init, and whether the
|
|
25
|
+
> user emitted a `synthesize.requested` event during implementing. Both
|
|
26
|
+
> inputs are persisted; the decision is replay-safe.
|
|
27
|
+
|
|
28
|
+
## When to use oneshot
|
|
29
|
+
|
|
30
|
+
Reach for oneshot when **all** of the following are true:
|
|
31
|
+
|
|
32
|
+
- The change is bounded — typically a single file, or a tightly-coupled
|
|
33
|
+
cluster of 2-3 files
|
|
34
|
+
- No subagent dispatch is needed — the work fits comfortably in one TDD
|
|
35
|
+
loop in a single session
|
|
36
|
+
- No design document is required — the goal is obvious from the task
|
|
37
|
+
description, and a one-page plan is enough scaffolding
|
|
38
|
+
- No two-stage review is required — either the change is trivial enough
|
|
39
|
+
that direct-commit is acceptable, or a single PR review will suffice
|
|
40
|
+
|
|
41
|
+
Concrete examples that fit oneshot:
|
|
42
|
+
- Fixing a typo in a README
|
|
43
|
+
- Bumping a dependency version
|
|
44
|
+
- Adding a missing null-check in one function
|
|
45
|
+
- Tweaking a CI workflow YAML
|
|
46
|
+
- Renaming a config key everywhere it's referenced
|
|
47
|
+
- Adding a one-off helper script
|
|
48
|
+
- Exploratory spikes that may or may not be kept
|
|
49
|
+
|
|
50
|
+
## When NOT to use oneshot
|
|
51
|
+
|
|
52
|
+
Do not use oneshot for any of the following — use the full `feature`
|
|
53
|
+
workflow instead (`/ideate`):
|
|
54
|
+
|
|
55
|
+
- Cross-cutting refactors that touch many files or modules
|
|
56
|
+
- Multi-file features that benefit from subagent decomposition
|
|
57
|
+
- Anything that needs design exploration or competing approaches weighed
|
|
58
|
+
- Anything that needs spec-review + quality-review (two-stage)
|
|
59
|
+
- Anything that needs to coordinate with another agent team
|
|
60
|
+
- Changes that should land in stages (stacked PRs)
|
|
61
|
+
- Anything where you'd want a written design doc to look back at
|
|
62
|
+
|
|
63
|
+
If you start a oneshot and discover the change is bigger than expected, the
|
|
64
|
+
right move is `/cancel` and restart with `/ideate`.
|
|
65
|
+
Don't try to grow a oneshot into a feature workflow mid-stream; the
|
|
66
|
+
playbooks have different shapes and you'll fight the state machine.
|
|
67
|
+
|
|
68
|
+
## Synthesis policy — three options
|
|
69
|
+
|
|
70
|
+
The `synthesisPolicy` field on a oneshot workflow declares the user's
|
|
71
|
+
intent up front about whether the change should be turned into a PR. It
|
|
72
|
+
takes one of three values, persisted on `state.oneshot.synthesisPolicy`:
|
|
73
|
+
|
|
74
|
+
| Policy | Behavior | When to use |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `always` | Always transition `implementing → synthesize` at finalize, regardless of events. A PR is always created. | The user wants a paper trail / review for every change in this workflow, even small ones. |
|
|
77
|
+
| `never` | Always transition `implementing → completed` at finalize, regardless of events. No PR is created — commits go directly to the current branch. | The user is iterating on personal/scratch work and explicitly opts out of PRs. |
|
|
78
|
+
| `on-request` *(default)* | Direct-commit by default. The user can opt in to a PR mid-implementing by calling `request_synthesize`; if any `synthesize.requested` event is on the stream at finalize, the workflow transitions to `synthesize` instead of `completed`. | The common case: start with the assumption of direct-commit, but leave the door open for the user to change their mind once they see the diff. |
|
|
79
|
+
|
|
80
|
+
The default is `on-request` because it's the least surprising: the user
|
|
81
|
+
gets the lightweight path until they explicitly ask for the heavy one.
|
|
82
|
+
|
|
83
|
+
**Policy wins over event.** If `synthesisPolicy: 'never'` is set and a
|
|
84
|
+
`synthesize.requested` event is somehow on the stream (e.g. the user
|
|
85
|
+
called the action on a workflow they thought was `on-request`), the
|
|
86
|
+
guard still routes to `completed`. Policy is the user's declared intent
|
|
87
|
+
and overrides runtime signal.
|
|
88
|
+
|
|
89
|
+
## Lifecycle
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
plan ──────► implementing ──┬── [synthesisOptedOut] ──► completed
|
|
93
|
+
│
|
|
94
|
+
└── [synthesisOptedIn] ──► synthesize ──► completed
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Four phases. The fork after `implementing` is a UML *choice state*,
|
|
98
|
+
implemented via two mutually-exclusive HSM transitions whose guards are
|
|
99
|
+
pure functions of `state.oneshot.synthesisPolicy` and the
|
|
100
|
+
`synthesize.requested` event count.
|
|
101
|
+
|
|
102
|
+
| Phase | What happens | Exit criteria |
|
|
103
|
+
|---|---|---|
|
|
104
|
+
| `plan` | Lightweight one-page plan: goal, approach, files to touch, tests to add. No design doc. No subagent dispatch. | `artifacts.plan` set → transition to `implementing` |
|
|
105
|
+
| `implementing` | In-session TDD loop. Write a failing test, make it pass, refactor. Commit as you go. The TDD iron law applies — *no production code without a failing test first*. | Tests pass + typecheck clean + finalize_oneshot called |
|
|
106
|
+
| `synthesize` | Reached **only** when `synthesisOptedIn` is true. Hands off to the existing synthesis flow — see `@skills/synthesis/SKILL.md`. PR created via `gh pr create`, auto-merge enabled, CI gates apply. | PR merged → `completed` |
|
|
107
|
+
| `completed` | Terminal. For direct-commit path, commits are already on the branch — there's nothing more to do. For synthesize path, the PR merge event terminates the workflow. | — |
|
|
108
|
+
|
|
109
|
+
`cancelled` is also reachable from any phase via the universal cancel
|
|
110
|
+
transition, same as every other workflow type.
|
|
111
|
+
|
|
112
|
+
## Step-by-step
|
|
113
|
+
|
|
114
|
+
### Step 1 — Init
|
|
115
|
+
|
|
116
|
+
Call `exarchos_workflow` with `action: 'init'`, `workflowType: 'oneshot'`,
|
|
117
|
+
and an optional `synthesisPolicy`:
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
mcp__exarchos__exarchos_workflow({
|
|
121
|
+
action: "init",
|
|
122
|
+
featureId: "fix-readme-typo",
|
|
123
|
+
workflowType: "oneshot",
|
|
124
|
+
synthesisPolicy: "on-request" // optional — defaults to 'on-request'
|
|
125
|
+
})
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If the user has been clear up front ("I want a PR for this"), pass
|
|
129
|
+
`synthesisPolicy: "always"`. If they've been clear ("don't open a PR,
|
|
130
|
+
just commit it"), pass `synthesisPolicy: "never"`. Otherwise, omit the
|
|
131
|
+
field and rely on the `on-request` default — you can always escalate
|
|
132
|
+
later in the implementing phase.
|
|
133
|
+
|
|
134
|
+
The init returns the new workflow state; the workflow lands in `plan`.
|
|
135
|
+
|
|
136
|
+
### Step 2 — Plan phase
|
|
137
|
+
|
|
138
|
+
Produce a one-page plan. This is intentionally lightweight — no design
|
|
139
|
+
doc, no parallelization analysis, no decomposition into N tasks. The
|
|
140
|
+
plan should answer four questions in 5-10 lines each:
|
|
141
|
+
|
|
142
|
+
1. **Goal** — what is the user trying to accomplish?
|
|
143
|
+
2. **Approach** — what's the one-line implementation strategy?
|
|
144
|
+
3. **Files** — which files will be touched? (1-5 typically)
|
|
145
|
+
4. **Tests** — which test cases will be added? (named, not described)
|
|
146
|
+
|
|
147
|
+
Persist the plan and transition to `implementing` in a single set call.
|
|
148
|
+
`phase` is a top-level argument of `set`, not a field inside `updates`:
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
mcp__exarchos__exarchos_workflow({
|
|
152
|
+
action: "set",
|
|
153
|
+
featureId: "fix-readme-typo",
|
|
154
|
+
phase: "implementing",
|
|
155
|
+
updates: {
|
|
156
|
+
"artifacts.plan": "<plan text>",
|
|
157
|
+
"oneshot.planSummary": "<one-line summary>"
|
|
158
|
+
}
|
|
159
|
+
})
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The plan goes on `artifacts.plan` for parity with the `feature` workflow;
|
|
163
|
+
the human-readable one-liner goes on `oneshot.planSummary` for the
|
|
164
|
+
pipeline view. Only `artifacts.plan` is enforced by the
|
|
165
|
+
`oneshot-plan-set` guard — `planSummary` is an optional pipeline-view
|
|
166
|
+
label and is not a substitute for a real plan artifact.
|
|
167
|
+
|
|
168
|
+
### Step 3 — Implementing phase
|
|
169
|
+
|
|
170
|
+
Run an in-session TDD loop. Same iron law as every other workflow:
|
|
171
|
+
|
|
172
|
+
> **NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST**
|
|
173
|
+
|
|
174
|
+
For each behavior in the plan:
|
|
175
|
+
|
|
176
|
+
1. **[RED]** Write a failing test. Run the test. Confirm it fails for
|
|
177
|
+
the right reason.
|
|
178
|
+
2. **[GREEN]** Write the minimum production code to make the test pass.
|
|
179
|
+
Run the test. Confirm it passes.
|
|
180
|
+
3. **[REFACTOR]** Clean up while keeping the test green.
|
|
181
|
+
|
|
182
|
+
Commit each red-green-refactor cycle as a single commit. Do not batch
|
|
183
|
+
multiple unrelated changes into one commit — keeping commits atomic
|
|
184
|
+
matters even more in oneshot, where there's no separate review phase
|
|
185
|
+
to catch bundled changes.
|
|
186
|
+
|
|
187
|
+
There is **no subagent dispatch** in oneshot. The main agent does the
|
|
188
|
+
work directly. There is **no separate review phase**. Quality is
|
|
189
|
+
maintained by the TDD loop and (if the user opts in) the synthesize PR
|
|
190
|
+
review.
|
|
191
|
+
|
|
192
|
+
#### Mid-workflow: opting in to a PR
|
|
193
|
+
|
|
194
|
+
If at any point during `plan` or `implementing` the user decides they
|
|
195
|
+
want a PR after all (policy is `on-request`, default), they can opt in
|
|
196
|
+
by calling the `request_synthesize` orchestrate action:
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
mcp__exarchos__exarchos_orchestrate({
|
|
200
|
+
action: "request_synthesize",
|
|
201
|
+
featureId: "fix-readme-typo",
|
|
202
|
+
reason: "user requested review of the parser changes"
|
|
203
|
+
})
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**The trigger for this is conversational, not a magic keyword.** Listen
|
|
207
|
+
for phrases like:
|
|
208
|
+
- "actually, let's open a PR for this"
|
|
209
|
+
- "I want a review on this before it lands"
|
|
210
|
+
- "make this a PR"
|
|
211
|
+
- "let's get eyes on this"
|
|
212
|
+
- "synthesize this"
|
|
213
|
+
|
|
214
|
+
When you hear any of those, call `request_synthesize` immediately. The
|
|
215
|
+
handler appends a `synthesize.requested` event to the workflow's event
|
|
216
|
+
stream; the `synthesisOptedIn` guard reads the stream at finalize and
|
|
217
|
+
routes accordingly.
|
|
218
|
+
|
|
219
|
+
`request_synthesize` is accepted from both `plan` and `implementing`
|
|
220
|
+
phases — call it whenever you know you want the PR path, even before
|
|
221
|
+
`implementing` starts. Terminal phases (`synthesize`, `completed`,
|
|
222
|
+
`cancelled`) are rejected.
|
|
223
|
+
|
|
224
|
+
Duplicate calls are **routing-idempotent** but not event-idempotent:
|
|
225
|
+
each call appends a new `synthesize.requested` event, but the guard
|
|
226
|
+
treats any count >= 1 as "opted in", so the routing decision is the
|
|
227
|
+
same whether you call once or five times. The event stream will
|
|
228
|
+
contain each duplicate for audit purposes.
|
|
229
|
+
|
|
230
|
+
Calling `request_synthesize` does **not** transition the phase. The
|
|
231
|
+
workflow stays in its current phase. The decision is only acted on
|
|
232
|
+
when you call `finalize_oneshot` in step 4.
|
|
233
|
+
|
|
234
|
+
### Step 4 — Finalize (the choice point)
|
|
235
|
+
|
|
236
|
+
When the implementing loop is done — tests pass, typecheck clean, all
|
|
237
|
+
commits made — call `finalize_oneshot` to resolve the choice state:
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
mcp__exarchos__exarchos_orchestrate({
|
|
241
|
+
action: "finalize_oneshot",
|
|
242
|
+
featureId: "fix-readme-typo"
|
|
243
|
+
})
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
The handler:
|
|
247
|
+
|
|
248
|
+
1. Reads the current state and verifies `workflowType === 'oneshot'` and
|
|
249
|
+
`phase === 'implementing'`.
|
|
250
|
+
2. Hydrates `_events` from the event store so the guard sees the same
|
|
251
|
+
view the HSM will see during the actual transition.
|
|
252
|
+
3. Evaluates `guards.synthesisOptedIn` against the state. The guard
|
|
253
|
+
inspects `state.oneshot.synthesisPolicy` and the `_events` array.
|
|
254
|
+
4. Calls `handleSet` with the resolved target phase (`synthesize` or
|
|
255
|
+
`completed`). The HSM re-evaluates the guard at the transition
|
|
256
|
+
boundary, so any race between the read and the transition is caught
|
|
257
|
+
safely.
|
|
258
|
+
|
|
259
|
+
Possible outcomes:
|
|
260
|
+
|
|
261
|
+
| `synthesisPolicy` | `synthesize.requested` event present? | Resolved target | Path |
|
|
262
|
+
|---|---|---|---|
|
|
263
|
+
| `always` | (any) | `synthesize` | PR path |
|
|
264
|
+
| `never` | (any) | `completed` | direct-commit path |
|
|
265
|
+
| `on-request` (default) | yes | `synthesize` | PR path |
|
|
266
|
+
| `on-request` (default) | no | `completed` | direct-commit path |
|
|
267
|
+
|
|
268
|
+
### Step 5a — Direct-commit path (terminal)
|
|
269
|
+
|
|
270
|
+
If finalize resolved to `completed`, you're done. The commits made
|
|
271
|
+
during implementing are already on the current branch. Push them if
|
|
272
|
+
they aren't already pushed:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
git push
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
The workflow is now in `completed` and will not appear in the default
|
|
279
|
+
pipeline view.
|
|
280
|
+
|
|
281
|
+
### Step 5b — Synthesize path
|
|
282
|
+
|
|
283
|
+
If finalize resolved to `synthesize`, hand off to the standard synthesis
|
|
284
|
+
flow — see `@skills/synthesis/SKILL.md`. The same `prepare_synthesis` /
|
|
285
|
+
`validate_pr_body` / `gh pr create` machinery used by the `feature`
|
|
286
|
+
workflow applies. After the PR merges, the workflow transitions
|
|
287
|
+
`synthesize → completed` via the existing `mergeVerified` guard, same as
|
|
288
|
+
every other workflow type.
|
|
289
|
+
|
|
290
|
+
You do **not** need to run `/delegate` or
|
|
291
|
+
`/review` for an opt-in oneshot synthesize. Those phases
|
|
292
|
+
do not exist in the oneshot playbook. The PR review is the only review.
|
|
293
|
+
|
|
294
|
+
## Example invocations
|
|
295
|
+
|
|
296
|
+
### Example A — Direct-commit (default `on-request` policy, no opt-in)
|
|
297
|
+
|
|
298
|
+
```text
|
|
299
|
+
User: "Quick fix — there's a typo in the README, 'recieve' should be 'receive'.
|
|
300
|
+
Use oneshot."
|
|
301
|
+
|
|
302
|
+
Agent:
|
|
303
|
+
1. exarchos_workflow init { featureId: "fix-readme-typo", workflowType: "oneshot" }
|
|
304
|
+
→ workflow created in 'plan' phase, synthesisPolicy defaults to 'on-request'
|
|
305
|
+
2. Produces a 4-line plan: goal=fix typo, approach=sed, files=[README.md],
|
|
306
|
+
tests=[readme has no occurrence of 'recieve']
|
|
307
|
+
3. exarchos_workflow set {
|
|
308
|
+
featureId: "fix-readme-typo",
|
|
309
|
+
phase: "implementing", // top-level
|
|
310
|
+
updates: {
|
|
311
|
+
"artifacts.plan": "...",
|
|
312
|
+
"oneshot.planSummary": "..."
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
4. [RED] writes test that greps README for 'recieve' and expects 0 matches
|
|
316
|
+
— fails (1 match exists)
|
|
317
|
+
5. [GREEN] edits README, fixes typo
|
|
318
|
+
— test passes
|
|
319
|
+
6. git commit -m "docs: fix 'recieve' typo in README"
|
|
320
|
+
7. exarchos_orchestrate finalize_oneshot { featureId: "fix-readme-typo" }
|
|
321
|
+
→ guard sees policy='on-request' + no synthesize.requested event
|
|
322
|
+
→ resolves to 'completed'
|
|
323
|
+
8. git push
|
|
324
|
+
"Done. Workflow completed via direct-commit path."
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Example B — Mid-implementing opt-in (`on-request` → user changes mind)
|
|
328
|
+
|
|
329
|
+
```text
|
|
330
|
+
User: "Add input validation to the parseConfig helper. Oneshot."
|
|
331
|
+
|
|
332
|
+
Agent:
|
|
333
|
+
1. exarchos_workflow init { workflowType: "oneshot" }
|
|
334
|
+
→ 'plan' phase, default 'on-request'
|
|
335
|
+
2. plans (goal: validate input, files: [parser.ts, parser.test.ts])
|
|
336
|
+
3. transitions to 'implementing'
|
|
337
|
+
4. [RED] writes test for null-input case
|
|
338
|
+
5. [GREEN] adds null check
|
|
339
|
+
6. [REFACTOR] extracts validateInput helper
|
|
340
|
+
7. commits
|
|
341
|
+
|
|
342
|
+
User: "Actually, this is touching the parser — I want a review on it before
|
|
343
|
+
it lands."
|
|
344
|
+
|
|
345
|
+
Agent:
|
|
346
|
+
8. exarchos_orchestrate request_synthesize {
|
|
347
|
+
featureId, reason: "user requested review of parser changes"
|
|
348
|
+
}
|
|
349
|
+
→ appends synthesize.requested event
|
|
350
|
+
9. exarchos_orchestrate finalize_oneshot { featureId }
|
|
351
|
+
→ guard sees policy='on-request' + 1 synthesize.requested event
|
|
352
|
+
→ resolves to 'synthesize'
|
|
353
|
+
10. hands off to @skills/synthesis/SKILL.md → prepare_synthesis →
|
|
354
|
+
validate_pr_body → gh pr create → merge
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Example C — `synthesisPolicy: 'always'` (PR mandatory)
|
|
358
|
+
|
|
359
|
+
```text
|
|
360
|
+
User: "I want a PR for any change to the auth module, even small ones.
|
|
361
|
+
Use oneshot but always make a PR."
|
|
362
|
+
|
|
363
|
+
Agent:
|
|
364
|
+
1. exarchos_workflow init {
|
|
365
|
+
workflowType: "oneshot",
|
|
366
|
+
synthesisPolicy: "always"
|
|
367
|
+
}
|
|
368
|
+
2-7. plan + TDD + commits, identical to Example A
|
|
369
|
+
8. exarchos_orchestrate finalize_oneshot { featureId }
|
|
370
|
+
→ guard sees policy='always' (short-circuits — no event check needed)
|
|
371
|
+
→ resolves to 'synthesize'
|
|
372
|
+
9. synthesis flow → PR
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
## State management
|
|
376
|
+
|
|
377
|
+
Track oneshot-specific state under the `oneshot` key on the workflow state:
|
|
378
|
+
|
|
379
|
+
```typescript
|
|
380
|
+
mcp__exarchos__exarchos_workflow({
|
|
381
|
+
action: "set",
|
|
382
|
+
featureId: "<id>",
|
|
383
|
+
updates: {
|
|
384
|
+
"oneshot": {
|
|
385
|
+
"synthesisPolicy": "on-request",
|
|
386
|
+
"planSummary": "Fix off-by-one in pagination helper"
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
})
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
The `synthesisPolicy` field is optional and defaults to `'on-request'` per
|
|
393
|
+
the schema in `servers/exarchos-mcp/src/workflow/schemas.ts`. Setting it
|
|
394
|
+
explicitly is recommended when the user has stated a preference.
|
|
395
|
+
|
|
396
|
+
## Phase Transitions and Guards
|
|
397
|
+
|
|
398
|
+
For the full transition table for oneshot, consult
|
|
399
|
+
`@skills/workflow-state/references/phase-transitions.md`.
|
|
400
|
+
|
|
401
|
+
> **Note:** The engine's `exarchos_workflow describe playbook="oneshot"`
|
|
402
|
+
> output and the HSM definitions in `hsm-definitions.ts` are the
|
|
403
|
+
> canonical sources for transition behavior. `phase-transitions.md` is
|
|
404
|
+
> a prose reference that can drift — when discrepancies arise, prefer
|
|
405
|
+
> engine `describe` output.
|
|
406
|
+
|
|
407
|
+
**Quick reference for oneshot:**
|
|
408
|
+
|
|
409
|
+
| From | To | Guard |
|
|
410
|
+
|---|---|---|
|
|
411
|
+
| `plan` | `implementing` | `oneshotPlanSet` (requires non-empty `artifacts.plan`) |
|
|
412
|
+
| `implementing` | `synthesize` | `synthesisOptedIn` |
|
|
413
|
+
| `implementing` | `completed` | `synthesisOptedOut` |
|
|
414
|
+
| `synthesize` | `completed` | `mergeVerified` |
|
|
415
|
+
| (any) | `cancelled` | universal — always allowed |
|
|
416
|
+
|
|
417
|
+
`synthesisOptedIn` and `synthesisOptedOut` are pure functions of
|
|
418
|
+
`state.oneshot.synthesisPolicy` and `state._events`. They are mutually
|
|
419
|
+
exclusive across all 4 meaningful combinations — `always` and `never`
|
|
420
|
+
each map to one outcome (ignoring the event flag), and `on-request`
|
|
421
|
+
branches on whether a `synthesize.requested` event is present or
|
|
422
|
+
absent. Exactly one guard returns true at any given time.
|
|
423
|
+
|
|
424
|
+
### Schema discovery
|
|
425
|
+
|
|
426
|
+
Use `exarchos_workflow({ action: "describe", actions: ["init", "set"] })`
|
|
427
|
+
for parameter schemas (including the `synthesisPolicy` enum) and
|
|
428
|
+
`exarchos_workflow({ action: "describe", playbook: "oneshot" })` for the
|
|
429
|
+
phase transitions, guard names, and playbook prose. Use
|
|
430
|
+
`exarchos_orchestrate({ action: "describe", actions: ["request_synthesize", "finalize_oneshot"] })`
|
|
431
|
+
for the orchestrate action schemas.
|
|
432
|
+
|
|
433
|
+
## TDD is still mandatory
|
|
434
|
+
|
|
435
|
+
The iron law from `@rules/tdd.md` applies to oneshot. There is no
|
|
436
|
+
exemption for "small" changes. Specifically:
|
|
437
|
+
|
|
438
|
+
- Every behavior change starts with a failing test
|
|
439
|
+
- Every test must fail before its implementation is written
|
|
440
|
+
- Tests must be run after each change to verify state
|
|
441
|
+
- Commits stay atomic — one logical change per commit
|
|
442
|
+
|
|
443
|
+
The temptation in a oneshot is to skip the test "because it's just one
|
|
444
|
+
line". Resist that. The test is what makes the change auditable, and
|
|
445
|
+
auditability is the entire reason oneshot exists alongside the lighter
|
|
446
|
+
"bypass workflows entirely" path.
|
|
447
|
+
|
|
448
|
+
## Anti-patterns
|
|
449
|
+
|
|
450
|
+
| Don't | Do Instead |
|
|
451
|
+
|-------|------------|
|
|
452
|
+
| Skip the plan phase ("it's obvious") | Write the four-line plan anyway — it's the artifact future-you reads |
|
|
453
|
+
| Skip the TDD loop in implementing | Always RED → GREEN → REFACTOR, even for one-liners |
|
|
454
|
+
| Use oneshot for multi-file refactors | Use `/ideate` and the full feature workflow |
|
|
455
|
+
| Try to grow a oneshot into a feature workflow mid-stream | Cancel and restart with `/ideate` |
|
|
456
|
+
| Call `request_synthesize` without listening for the user's intent | Wait for the user to ask for a PR, then call it |
|
|
457
|
+
| Bundle unrelated changes into one commit "since it's a oneshot" | Keep commits atomic — there's no review phase to catch bundling |
|
|
458
|
+
| Forget to call `finalize_oneshot` at the end | The workflow stays in `implementing` forever otherwise — call it explicitly |
|
|
459
|
+
|
|
460
|
+
## Completion criteria
|
|
461
|
+
|
|
462
|
+
- [ ] `exarchos_workflow init` called with `workflowType: "oneshot"`
|
|
463
|
+
- [ ] One-page plan persisted to `artifacts.plan`
|
|
464
|
+
- [ ] Phase transitioned to `implementing`
|
|
465
|
+
- [ ] All planned behaviors implemented via TDD with atomic commits
|
|
466
|
+
- [ ] `finalize_oneshot` called and resolved to either `completed` or `synthesize`
|
|
467
|
+
- [ ] If direct-commit path: commits pushed
|
|
468
|
+
- [ ] If synthesize path: PR created via `@skills/synthesis/SKILL.md` and merged
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oneshot-choice-state
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Oneshot Choice State: `implementing → ?`
|
|
6
|
+
|
|
7
|
+
The oneshot workflow has a UML *choice state* at the end of `implementing`.
|
|
8
|
+
Whether the workflow lands on `completed` (direct-commit) or transitions
|
|
9
|
+
through `synthesize` (PR) is decided by two mutually-exclusive pure-function
|
|
10
|
+
guards: `synthesisOptedIn` and `synthesisOptedOut`. Both are evaluated against
|
|
11
|
+
the current workflow state at the transition boundary; exactly one returns
|
|
12
|
+
`true` for every possible input.
|
|
13
|
+
|
|
14
|
+
## Inputs read by the guards
|
|
15
|
+
|
|
16
|
+
Both guards read exactly two things from state:
|
|
17
|
+
|
|
18
|
+
1. `state.oneshot.synthesisPolicy` — one of `'always' | 'never' | 'on-request'`,
|
|
19
|
+
defaulted to `'on-request'` by the init schema.
|
|
20
|
+
2. `state._events` — the hydrated event stream. The guard counts
|
|
21
|
+
`synthesize.requested` events on the stream (any count ≥ 1 means "opted in").
|
|
22
|
+
|
|
23
|
+
Nothing else. No clock reads, no filesystem, no network, no git state. This
|
|
24
|
+
is load-bearing for replay safety: given the same persisted state, the same
|
|
25
|
+
target resolves every time, and re-running finalize is idempotent.
|
|
26
|
+
|
|
27
|
+
## Decision table
|
|
28
|
+
|
|
29
|
+
| `synthesisPolicy` | `synthesize.requested` count | `synthesisOptedIn` | `synthesisOptedOut` | Resolved target |
|
|
30
|
+
|---|---|---|---|---|
|
|
31
|
+
| `'always'` | 0 | `true` | `false` | `synthesize` |
|
|
32
|
+
| `'always'` | ≥1 | `true` | `false` | `synthesize` |
|
|
33
|
+
| `'never'` | 0 | `false` | `true` | `completed` |
|
|
34
|
+
| `'never'` | ≥1 | `false` | `true` | `completed` |
|
|
35
|
+
| `'on-request'` | 0 | `false` | `true` | `completed` |
|
|
36
|
+
| `'on-request'` | ≥1 | `true` | `false` | `synthesize` |
|
|
37
|
+
|
|
38
|
+
**Policy wins over event.** On `'never'`, even if a stray `synthesize.requested`
|
|
39
|
+
event is on the stream, the guard still routes to `completed`. Policy is the
|
|
40
|
+
user's declared intent; runtime events only matter when the policy explicitly
|
|
41
|
+
defers to them (`'on-request'`).
|
|
42
|
+
|
|
43
|
+
## Why a choice state, not a single transition with branching logic
|
|
44
|
+
|
|
45
|
+
Keeping the fork at the HSM level (two transitions, two mutually-exclusive
|
|
46
|
+
guards) means:
|
|
47
|
+
|
|
48
|
+
- The state machine graph visibly encodes both paths — operators reading
|
|
49
|
+
`hsm-definitions.ts` see `implementing → completed` and `implementing →
|
|
50
|
+
synthesize` as sibling transitions, not a hidden conditional.
|
|
51
|
+
- The HSM re-evaluates guards at the transition boundary, so any race
|
|
52
|
+
between `finalize_oneshot` reading state and `handleSet` performing the
|
|
53
|
+
transition is caught safely — if a last-millisecond event changed the
|
|
54
|
+
evaluation, the HSM will refuse the wrong transition.
|
|
55
|
+
- Guard logic stays testable in isolation (`guards.test.ts`) without
|
|
56
|
+
needing to spin up the handler.
|
|
57
|
+
|
|
58
|
+
## See also
|
|
59
|
+
|
|
60
|
+
- `servers/exarchos-mcp/src/workflow/guards.ts` — `synthesisOptedIn`,
|
|
61
|
+
`synthesisOptedOut`, `oneshotPlanSet` guard implementations.
|
|
62
|
+
- `servers/exarchos-mcp/src/workflow/hsm-definitions.ts` — the oneshot HSM
|
|
63
|
+
with the two sibling transitions from `implementing`.
|
|
64
|
+
- `servers/exarchos-mcp/src/orchestrate/finalize-oneshot.ts` — the handler
|
|
65
|
+
that resolves the choice state and calls `handleSet`.
|