@lvlup-sw/exarchos 2.5.0 → 2.6.1
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 +1 -1
- package/AGENTS.md +1 -1
- package/README.md +24 -1
- package/commands/dogfood.md +31 -0
- package/commands/oneshot.md +178 -0
- package/commands/prune.md +90 -0
- package/dist/exarchos.js +286 -280
- package/package.json +7 -3
- package/skills/{cleanup → claude/cleanup}/SKILL.md +6 -0
- package/skills/{delegation → claude/delegation}/SKILL.md +50 -29
- package/skills/{delegation → claude/delegation}/references/troubleshooting.md +2 -2
- 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/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 +2 -0
- package/skills/{shepherd → claude/shepherd}/SKILL.md +4 -0
- package/skills/{spec-review → claude/spec-review}/SKILL.md +2 -0
- package/skills/{synthesis → claude/synthesis}/SKILL.md +40 -0
- package/skills/{workflow-state → claude/workflow-state}/SKILL.md +40 -4
- package/skills/{workflow-state → claude/workflow-state}/references/phase-transitions.md +22 -0
- 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/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/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 -39
- package/skills/shared/references/skill-path-resolution.md +0 -10
- package/skills/shared/references/tdd.md +0 -58
- package/skills/shared/references/telemetry-awareness.md +0 -9
- /package/skills/{brainstorming → claude/brainstorming}/SKILL.md +0 -0
- /package/skills/{brainstorming → claude/brainstorming}/references/design-template.md +0 -0
- /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}/SKILL.md +0 -0
- /package/skills/{debug → claude/debug}/references/hotfix-track.md +0 -0
- /package/skills/{debug → claude/debug}/references/investigation-checklist.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/thorough-track.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/agent-teams-saga.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/fix-mode.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/fixer-prompt.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/implementer-prompt.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/parallel-strategy.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/state-management.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/{delegation → claude/delegation}/references/workflow-steps.md +0 -0
- /package/skills/{delegation → claude/delegation}/references/worktree-enforcement.md +0 -0
- /package/skills/{git-worktrees → claude/git-worktrees}/SKILL.md +0 -0
- /package/skills/{git-worktrees → claude/git-worktrees}/references/commands-reference.md +0 -0
- /package/skills/{implementation-planning → claude/implementation-planning}/SKILL.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/{implementation-planning → claude/implementation-planning}/references/task-template.md +0 -0
- /package/skills/{implementation-planning → claude/implementation-planning}/references/testing-strategy-guide.md +0 -0
- /package/skills/{implementation-planning → claude/implementation-planning}/references/worked-example.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/auto-transition.md +0 -0
- /package/skills/{quality-review → claude/quality-review}/references/axiom-integration.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}/SKILL.md +0 -0
- /package/skills/{refactor → claude/refactor}/references/brief-template.md +0 -0
- /package/skills/{refactor → claude/refactor}/references/doc-update-checklist.md +0 -0
- /package/skills/{refactor → claude/refactor}/references/explore-checklist.md +0 -0
- /package/skills/{refactor → claude/refactor}/references/overhaul-track.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/polish-implement.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/polish-validate.md +0 -0
- /package/skills/{refactor → claude/refactor/references}/phases/update-docs.md +0 -0
- /package/skills/{refactor → claude/refactor}/references/polish-track.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/fix-strategies.md +0 -0
- /package/skills/{shepherd → claude/shepherd}/references/gate-event-emission.md +0 -0
- /package/skills/{shepherd → claude/shepherd}/references/shepherd-event-schemas.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/{spec-review → claude/spec-review}/references/worked-example.md +0 -0
- /package/skills/{synthesis → claude/synthesis}/references/github-native-stacking.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/synthesis-steps.md +0 -0
- /package/skills/{synthesis → claude/synthesis}/references/troubleshooting.md +0 -0
- /package/skills/{workflow-state → claude/workflow-state}/references/mcp-tool-reference.md +0 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prune-workflows
|
|
3
|
+
description: "Interactively prune stale non-terminal workflows from the pipeline. Use when the user says 'prune workflows', 'clean stale workflows', 'pipeline cleanup', or runs /prune. Runs a dry-run preview, displays candidates with staleness and safeguard skips, prompts the user to proceed/abort/force, then bulk-cancels approved workflows with a workflow.pruned audit event. Safeguards skip workflows with open PRs or recent commits unless force is set."
|
|
4
|
+
metadata:
|
|
5
|
+
author: exarchos
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
mcp-server: exarchos
|
|
8
|
+
category: maintenance
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Prune Workflows Skill
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
Bulk-cancel stale non-terminal workflows that have accumulated in the pipeline. Wraps the `prune_stale_workflows` orchestrate action with an interactive dry-run-then-confirm UX so the user always sees the candidate set before any state mutates.
|
|
16
|
+
|
|
17
|
+
Pruning is a maintenance operation -- not a workflow phase. It produces `workflow.pruned` events alongside the standard `workflow.cancelled` events emitted by the underlying cancel path, so downstream views can distinguish user-intent cancellations from batch cleanup.
|
|
18
|
+
|
|
19
|
+
## Triggers
|
|
20
|
+
|
|
21
|
+
Activate this skill when:
|
|
22
|
+
- User runs `/exarchos:prune` command
|
|
23
|
+
- User says "prune workflows", "clean stale workflows", "pipeline cleanup"
|
|
24
|
+
- `mcp__plugin_exarchos_exarchos__exarchos_view({ action: "pipeline" })` shows many inactive workflows the user wants to clear in bulk
|
|
25
|
+
|
|
26
|
+
## Prerequisites
|
|
27
|
+
|
|
28
|
+
- An exarchos state directory with one or more non-terminal workflows
|
|
29
|
+
- For safeguard checks against live PRs: `gh` available in PATH (the orchestrate handler shells out)
|
|
30
|
+
- For safeguard checks against branch activity: `git` available in PATH
|
|
31
|
+
|
|
32
|
+
## Process
|
|
33
|
+
|
|
34
|
+
### Step 1: Dry-Run Preview
|
|
35
|
+
|
|
36
|
+
Always start with `dryRun: true`. This call performs candidate selection and safeguard evaluation but does not mutate any workflow state.
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
mcp__plugin_exarchos_exarchos__exarchos_orchestrate({
|
|
40
|
+
action: "prune_stale_workflows",
|
|
41
|
+
args: {
|
|
42
|
+
dryRun: true
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The response shape is:
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
{
|
|
51
|
+
candidates: [
|
|
52
|
+
{ featureId: string, phase: string, workflowType: string, stalenessMinutes: number }
|
|
53
|
+
],
|
|
54
|
+
skipped: [
|
|
55
|
+
{ featureId: string, reason: "open-pr" | "active-branch" }
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Optional args:
|
|
61
|
+
- `thresholdMinutes` -- staleness cutoff. Default is 10080 (7 days).
|
|
62
|
+
- `includeOneShot` -- whether to include `oneshot` workflows in the candidate set. Default `true`.
|
|
63
|
+
- `force` -- not relevant in dry-run; only honored in apply mode (Step 4).
|
|
64
|
+
|
|
65
|
+
### Step 2: Display Candidate Table
|
|
66
|
+
|
|
67
|
+
Render a table to the user so they can review what would be pruned. Use this format:
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
## Prune Candidates (3)
|
|
71
|
+
|
|
72
|
+
| Feature ID | Type | Phase | Stale (min) |
|
|
73
|
+
|---|---|---|---|
|
|
74
|
+
| feat-old-experiment | feature | implementing | 14430 |
|
|
75
|
+
| oneshot-typo-fix | oneshot | plan | 9120 |
|
|
76
|
+
| debug-flaky-test | debug | investigate | 8650 |
|
|
77
|
+
|
|
78
|
+
## Skipped by Safeguards (2)
|
|
79
|
+
|
|
80
|
+
| Feature ID | Reason |
|
|
81
|
+
|---|---|
|
|
82
|
+
| feat-active-pr | open-pr |
|
|
83
|
+
| feat-recent-work | active-branch |
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
If `candidates.length === 0` AND `skipped.length === 0`, output:
|
|
87
|
+
|
|
88
|
+
> No stale workflows to prune. Pipeline is clean.
|
|
89
|
+
|
|
90
|
+
Then exit -- no further action.
|
|
91
|
+
|
|
92
|
+
### Step 3: Prompt for Confirmation
|
|
93
|
+
|
|
94
|
+
Ask the user one of three choices:
|
|
95
|
+
|
|
96
|
+
> **proceed** -- prune the listed candidates (skipped workflows stay)
|
|
97
|
+
> **abort** -- exit without changes
|
|
98
|
+
> **force** -- bypass safeguards and prune skipped workflows too
|
|
99
|
+
|
|
100
|
+
Wait for explicit user input. Do **not** auto-proceed.
|
|
101
|
+
|
|
102
|
+
### Step 4a: Apply (proceed)
|
|
103
|
+
|
|
104
|
+
On `proceed`, invoke the same action with `dryRun: false`. Pass through `thresholdMinutes` and `includeOneShot` if the user set them in Step 1.
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
mcp__plugin_exarchos_exarchos__exarchos_orchestrate({
|
|
108
|
+
action: "prune_stale_workflows",
|
|
109
|
+
args: {
|
|
110
|
+
dryRun: false
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The response now includes a `pruned` array:
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
{
|
|
119
|
+
candidates: [...],
|
|
120
|
+
skipped: [...],
|
|
121
|
+
pruned: [
|
|
122
|
+
{ featureId: string, previousPhase: string }
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Each entry in `pruned` corresponds to a workflow that transitioned to `cancelled` and emitted a `workflow.pruned` event.
|
|
128
|
+
|
|
129
|
+
### Step 4b: Apply (force)
|
|
130
|
+
|
|
131
|
+
On `force`, set `force: true`. Safeguards are bypassed but the bypass is recorded in the `workflow.pruned` event payload as `skippedSafeguards: [...]` so the audit trail is intact.
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
mcp__plugin_exarchos_exarchos__exarchos_orchestrate({
|
|
135
|
+
action: "prune_stale_workflows",
|
|
136
|
+
args: {
|
|
137
|
+
dryRun: false,
|
|
138
|
+
force: true
|
|
139
|
+
}
|
|
140
|
+
})
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
In force mode, workflows that were in the `skipped` list during dry-run are now eligible for pruning.
|
|
144
|
+
|
|
145
|
+
### Step 4c: Apply (abort)
|
|
146
|
+
|
|
147
|
+
On `abort`, exit without invoking the action a second time. The dry-run has not mutated any state.
|
|
148
|
+
|
|
149
|
+
### Step 5: Report Results
|
|
150
|
+
|
|
151
|
+
After the apply call returns, summarize the outcome:
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
## Prune Complete
|
|
155
|
+
|
|
156
|
+
**Pruned:** 3 workflows transitioned to cancelled
|
|
157
|
+
**Skipped:** 2 workflows preserved by safeguards
|
|
158
|
+
**Force bypass:** no
|
|
159
|
+
|
|
160
|
+
### Pruned Workflows
|
|
161
|
+
- feat-old-experiment (was: implementing)
|
|
162
|
+
- oneshot-typo-fix (was: plan)
|
|
163
|
+
- debug-flaky-test (was: investigate)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
If `force` was used, also list any safeguards that were bypassed:
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
### Safeguards Bypassed
|
|
170
|
+
- feat-active-pr: open-pr
|
|
171
|
+
- feat-recent-work: active-branch
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Safeguards Explained
|
|
175
|
+
|
|
176
|
+
Two safeguards run automatically in the orchestrate handler before each cancel:
|
|
177
|
+
|
|
178
|
+
| Safeguard | Behavior | Reason key |
|
|
179
|
+
|---|---|---|
|
|
180
|
+
| **Open PR** | Skip if `gh pr list --head <branch> --state open` returns any results | `open-pr` |
|
|
181
|
+
| **Recent commits** | Skip if `git log --since "24 hours ago" origin/<branch>` shows commits | `active-branch` |
|
|
182
|
+
|
|
183
|
+
A workflow without a `branchName` in state (e.g., abandoned at ideate/plan before delegation) cannot have a PR or branch activity, so safeguards short-circuit and the workflow is eligible for pruning.
|
|
184
|
+
|
|
185
|
+
`force: true` bypasses both checks but does not bypass the audit -- the bypassed safeguard names are recorded in the `workflow.pruned` event payload.
|
|
186
|
+
|
|
187
|
+
## Anti-Patterns
|
|
188
|
+
|
|
189
|
+
| Don't | Do Instead |
|
|
190
|
+
|---|---|
|
|
191
|
+
| Skip the dry-run step | Always start with `dryRun: true` so the user sees candidates first |
|
|
192
|
+
| Auto-confirm without showing the table | Render the candidate table and wait for explicit user input |
|
|
193
|
+
| Use `force: true` by default | Reserve `force` for cases where the user has explicitly opted in |
|
|
194
|
+
| Manually call `cancel` for each stale workflow | Use this skill -- it batches the cancel loop and emits the `workflow.pruned` audit event |
|
|
195
|
+
| Run on every session | Pruning is a maintenance operation; run when pipeline accumulation is observable |
|
|
196
|
+
|
|
197
|
+
## Examples
|
|
198
|
+
|
|
199
|
+
### Example 1: Clean dry-run, user proceeds
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
> /exarchos:prune
|
|
203
|
+
|
|
204
|
+
## Prune Candidates (2)
|
|
205
|
+
|
|
206
|
+
| Feature ID | Type | Phase | Stale (min) |
|
|
207
|
+
|---|---|---|---|
|
|
208
|
+
| feat-old-spike | feature | plan | 12880 |
|
|
209
|
+
| oneshot-readme-tweak | oneshot | implementing | 9700 |
|
|
210
|
+
|
|
211
|
+
## Skipped by Safeguards (0)
|
|
212
|
+
|
|
213
|
+
(none)
|
|
214
|
+
|
|
215
|
+
Proceed? (proceed/abort/force)
|
|
216
|
+
|
|
217
|
+
> proceed
|
|
218
|
+
|
|
219
|
+
## Prune Complete
|
|
220
|
+
|
|
221
|
+
**Pruned:** 2 workflows transitioned to cancelled
|
|
222
|
+
**Skipped:** 0
|
|
223
|
+
**Force bypass:** no
|
|
224
|
+
|
|
225
|
+
### Pruned Workflows
|
|
226
|
+
- feat-old-spike (was: plan)
|
|
227
|
+
- oneshot-readme-tweak (was: implementing)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Example 2: Safeguard skip, user forces
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
> /exarchos:prune
|
|
234
|
+
|
|
235
|
+
## Prune Candidates (1)
|
|
236
|
+
|
|
237
|
+
| Feature ID | Type | Phase | Stale (min) |
|
|
238
|
+
|---|---|---|---|
|
|
239
|
+
| feat-stale-no-pr | feature | implementing | 11200 |
|
|
240
|
+
|
|
241
|
+
## Skipped by Safeguards (1)
|
|
242
|
+
|
|
243
|
+
| Feature ID | Reason |
|
|
244
|
+
|---|---|
|
|
245
|
+
| feat-stale-with-pr | open-pr |
|
|
246
|
+
|
|
247
|
+
Proceed? (proceed/abort/force)
|
|
248
|
+
|
|
249
|
+
> force
|
|
250
|
+
|
|
251
|
+
## Prune Complete
|
|
252
|
+
|
|
253
|
+
**Pruned:** 2 workflows transitioned to cancelled
|
|
254
|
+
**Skipped:** 0
|
|
255
|
+
**Force bypass:** yes
|
|
256
|
+
|
|
257
|
+
### Pruned Workflows
|
|
258
|
+
- feat-stale-no-pr (was: implementing)
|
|
259
|
+
- feat-stale-with-pr (was: implementing)
|
|
260
|
+
|
|
261
|
+
### Safeguards Bypassed
|
|
262
|
+
- feat-stale-with-pr: open-pr
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Example 3: Empty pipeline
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
> /exarchos:prune
|
|
269
|
+
|
|
270
|
+
No stale workflows to prune. Pipeline is clean.
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Schema Discovery
|
|
274
|
+
|
|
275
|
+
For the canonical argument schema and any future fields, use:
|
|
276
|
+
|
|
277
|
+
```typescript
|
|
278
|
+
mcp__plugin_exarchos_exarchos__exarchos_orchestrate({
|
|
279
|
+
action: "describe",
|
|
280
|
+
actions: ["prune_stale_workflows"]
|
|
281
|
+
})
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
## Exarchos Integration
|
|
285
|
+
|
|
286
|
+
The `prune_stale_workflows` action emits two events per pruned workflow:
|
|
287
|
+
- `workflow.cancelled` (auto-emitted by the underlying `handleCancel` path)
|
|
288
|
+
- `workflow.pruned` (emitted by this handler with `triggeredBy: 'manual'` and optional `skippedSafeguards`)
|
|
289
|
+
|
|
290
|
+
Both are projected into the workflow state's `_events` array by the standard projection. Downstream views can filter on `workflow.pruned` to identify batch cleanups versus user-initiated cancels.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prune-safeguards
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Prune Safeguards
|
|
6
|
+
|
|
7
|
+
The `prune_stale_workflows` orchestrate action runs two safeguards on each
|
|
8
|
+
candidate before it will actually cancel the workflow. Both must pass for
|
|
9
|
+
the candidate to be pruned, unless the caller passes `force: true` to
|
|
10
|
+
bypass them.
|
|
11
|
+
|
|
12
|
+
## Safeguard 1: `hasOpenPR`
|
|
13
|
+
|
|
14
|
+
Checks whether there's an open pull request targeting the workflow's
|
|
15
|
+
branch. Implementation: `gh pr list --state open --head <branchName>` —
|
|
16
|
+
if the list is non-empty, the safeguard fails and the candidate is
|
|
17
|
+
skipped with reason `open-pr`.
|
|
18
|
+
|
|
19
|
+
Rationale: an open PR means human work is still in-flight on this feature.
|
|
20
|
+
Cancelling the workflow would orphan the PR from its event-sourced state,
|
|
21
|
+
which makes it invisible to `exarchos_view` and breaks auto-merge gates.
|
|
22
|
+
We refuse to prune workflows with open PRs by default.
|
|
23
|
+
|
|
24
|
+
## Safeguard 2: `hasRecentCommits` (user-facing: `active-branch`)
|
|
25
|
+
|
|
26
|
+
Checks whether any commits landed on the workflow's branch within a
|
|
27
|
+
24-hour window. Implementation: `git log --since="24 hours ago"
|
|
28
|
+
<branchName>` — if the output is non-empty, the safeguard fails and the
|
|
29
|
+
candidate is skipped with reason `active-branch`.
|
|
30
|
+
|
|
31
|
+
Rationale: commits on the branch mean the workflow isn't actually stale,
|
|
32
|
+
it just missed the last event checkpoint. The underlying branch is the
|
|
33
|
+
ground truth for "is this work still alive?" — if someone is committing,
|
|
34
|
+
we don't care what the checkpoint timestamp says.
|
|
35
|
+
|
|
36
|
+
The window is locked at 24 hours for v1. It's exposed as a module
|
|
37
|
+
constant (`RECENT_COMMITS_WINDOW_HOURS` in `prune-stale-workflows.ts`)
|
|
38
|
+
so tests can see the contract, but it's not yet configurable through
|
|
39
|
+
the public handler args.
|
|
40
|
+
|
|
41
|
+
## Short-circuit: missing `branchName`
|
|
42
|
+
|
|
43
|
+
If the workflow state has no top-level `branchName` field, both
|
|
44
|
+
safeguards are skipped entirely (they have nothing to look up). The
|
|
45
|
+
candidate still proceeds to cancel. This is safe because a workflow
|
|
46
|
+
without a branch can't have an open PR or recent commits by definition.
|
|
47
|
+
|
|
48
|
+
## `force: true` bypass semantics
|
|
49
|
+
|
|
50
|
+
Passing `force: true` skips safeguard evaluation for every candidate.
|
|
51
|
+
The handler still does everything else — the cancel, the event emission,
|
|
52
|
+
the audit trail — but `hasOpenPR` and `hasRecentCommits` are never
|
|
53
|
+
called.
|
|
54
|
+
|
|
55
|
+
Every `workflow.pruned` event emitted during a `force: true` run carries
|
|
56
|
+
a `skippedSafeguards: ['open-pr', 'active-branch']` marker on its payload.
|
|
57
|
+
This makes forced prunes distinguishable in the audit stream from
|
|
58
|
+
safeguard-approved ones, so operators reviewing the event log can see
|
|
59
|
+
exactly which workflows were cancelled despite having open PRs or active
|
|
60
|
+
branches.
|
|
61
|
+
|
|
62
|
+
The marker list is intentionally hardcoded to *all* safeguards, not just
|
|
63
|
+
the ones that would have failed. Running `force: true` is a blanket
|
|
64
|
+
"I know what I'm doing" override — we want the audit trail to reflect
|
|
65
|
+
that the user chose to bypass the whole safeguard layer, not to imply
|
|
66
|
+
selective bypassing.
|
|
67
|
+
|
|
68
|
+
## See also
|
|
69
|
+
|
|
70
|
+
- `servers/exarchos-mcp/src/orchestrate/prune-safeguards.ts` — the
|
|
71
|
+
default implementations (gh/git backends) and the `PruneSafeguards`
|
|
72
|
+
interface for DI.
|
|
73
|
+
- `servers/exarchos-mcp/src/orchestrate/prune-stale-workflows.ts` —
|
|
74
|
+
the handler that composes safeguards with selection and cancel.
|
|
@@ -264,6 +264,8 @@ If an issue spans multiple tasks:
|
|
|
264
264
|
|
|
265
265
|
## State Management
|
|
266
266
|
|
|
267
|
+
> **Key format:** The review key MUST be kebab-case `reviews["quality-review"]`, not camelCase `reviews.qualityReview`. The guard matches on the exact key string.
|
|
268
|
+
|
|
267
269
|
**On review complete:**
|
|
268
270
|
```text
|
|
269
271
|
action: "set", featureId: "<id>", updates: {
|
|
@@ -21,6 +21,10 @@ Iterative loop that shepherds published PRs through CI checks and code reviews t
|
|
|
21
21
|
^^^^^^^^^ runs within synthesize phase
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
## Pipeline Hygiene
|
|
25
|
+
|
|
26
|
+
When `mcp__plugin_exarchos_exarchos__exarchos_view pipeline` accumulates stale workflows (inactive > 7 days), run `@skills/prune-workflows/SKILL.md` to bulk-cancel abandoned workflows before starting a new shepherd cycle. Safeguards skip workflows with open PRs or recent commits, so active shepherd targets are never touched. A clean pipeline makes shepherd iteration reporting easier to read and reduces noise in the stale-count view.
|
|
27
|
+
|
|
24
28
|
## Triggers
|
|
25
29
|
|
|
26
30
|
Activate when:
|
|
@@ -249,6 +249,8 @@ Before invoking quality-review:
|
|
|
249
249
|
1. Verify `reviews["spec-review"].status === "pass"` in workflow state (all tasks passed)
|
|
250
250
|
2. If not: "Spec review did not pass, cannot proceed to quality review"
|
|
251
251
|
|
|
252
|
+
> **Guard shape:** The `all-reviews-passed` guard requires `reviews["spec-review"]` to be an object with a `status` field set to a passing value (`pass`, `passed`, `approved`, `fixes-applied`). Flat strings like `reviews: { "spec-review": "pass" }` are silently ignored and will block the `review → synthesize` transition.
|
|
253
|
+
|
|
252
254
|
### If PASS:
|
|
253
255
|
1. Record results — the reviews value MUST be an object with a `status` field, not a flat string:
|
|
254
256
|
```
|
|
@@ -22,12 +22,22 @@ Submit stacked PRs after review phase completes. The `prepare_synthesis` composi
|
|
|
22
22
|
|
|
23
23
|
Do NOT proceed if either review is incomplete or failed -- return to `/exarchos:review` first.
|
|
24
24
|
|
|
25
|
+
**Entry points:** Synthesis is normally reached from the `review` phase of
|
|
26
|
+
feature / debug / refactor workflows. It is also reachable from `oneshot`
|
|
27
|
+
workflows via the opt-in path — when a user signals "let's open a PR for
|
|
28
|
+
this" during `plan` or `implementing`, the `request_synthesize` event is
|
|
29
|
+
appended, and `finalize_oneshot` then resolves the choice state and
|
|
30
|
+
transitions the workflow to `synthesize`. See
|
|
31
|
+
`@skills/oneshot-workflow/SKILL.md` for the opt-in mechanics and
|
|
32
|
+
`synthesisPolicy` semantics.
|
|
33
|
+
|
|
25
34
|
## Triggers
|
|
26
35
|
|
|
27
36
|
Activate this skill when:
|
|
28
37
|
- User runs `/exarchos:synthesize` command
|
|
29
38
|
- All reviews have passed successfully
|
|
30
39
|
- Ready to submit PRs
|
|
40
|
+
- Oneshot workflow resolved to `synthesize` via `finalize_oneshot`
|
|
31
41
|
|
|
32
42
|
## Process
|
|
33
43
|
|
|
@@ -128,6 +138,36 @@ For merge ordering strategy, see `references/merge-ordering.md`.
|
|
|
128
138
|
- **'feedback'** -- Route to `/exarchos:delegate --pr-fixes [PR_URL]` to address comments, then return here
|
|
129
139
|
- **'no'** -- Pause workflow; resume later with `/exarchos:rehydrate`
|
|
130
140
|
|
|
141
|
+
### Event Emissions (REQUIRED)
|
|
142
|
+
|
|
143
|
+
After PRs are created and auto-merge is enabled, emit the `stack.submitted` event:
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
mcp__plugin_exarchos_exarchos__exarchos_event({ action: "append", stream: "<featureId>", event: {
|
|
147
|
+
type: "stack.submitted",
|
|
148
|
+
data: {
|
|
149
|
+
branches: ["task-001-branch", "task-002-branch"],
|
|
150
|
+
prNumbers: [101, 102]
|
|
151
|
+
}
|
|
152
|
+
}})
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
During shepherd iterations (CI monitoring loop), emit after each assessment:
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
mcp__plugin_exarchos_exarchos__exarchos_event({ action: "append", stream: "<featureId>", event: {
|
|
159
|
+
type: "shepherd.iteration",
|
|
160
|
+
data: {
|
|
161
|
+
iteration: 1,
|
|
162
|
+
prsAssessed: 2,
|
|
163
|
+
fixesApplied: 0,
|
|
164
|
+
status: "all-green"
|
|
165
|
+
}
|
|
166
|
+
}})
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
These events are checked by `check-event-emissions` during workflow validation. Missing emissions will trigger warnings.
|
|
170
|
+
|
|
131
171
|
### Post-Merge Cleanup
|
|
132
172
|
|
|
133
173
|
After PRs merge, invoke cleanup:
|
|
@@ -38,7 +38,10 @@ Valid transitions, guards, and prerequisites for all workflow types are document
|
|
|
38
38
|
|
|
39
39
|
Use `exarchos_workflow({ action: "describe", actions: ["set", "init", "get"] })` for
|
|
40
40
|
parameter schemas and `exarchos_workflow({ action: "describe", playbook: "feature" })`
|
|
41
|
-
for phase transitions, guards, and playbook guidance.
|
|
41
|
+
for phase transitions, guards, and playbook guidance. For the lightweight
|
|
42
|
+
oneshot variant (with its `implementing → synthesize|completed` choice state
|
|
43
|
+
driven by `synthesisPolicy`), call `exarchos_workflow({ action: "describe", playbook: "oneshot" })`
|
|
44
|
+
— oneshot is a first-class playbook alongside feature/debug/refactor. Use
|
|
42
45
|
`exarchos_event({ action: "describe", eventTypes: ["workflow.transition", "task.completed"] })`
|
|
43
46
|
for event data schemas.
|
|
44
47
|
|
|
@@ -54,9 +57,25 @@ For full MCP tool signatures, error handling, and anti-patterns, see `references
|
|
|
54
57
|
|
|
55
58
|
At the start of `/exarchos:ideate`, use `mcp__plugin_exarchos_exarchos__exarchos_workflow` with `action: "init"` with:
|
|
56
59
|
- `featureId`: the workflow identifier (e.g., `"user-authentication"`)
|
|
57
|
-
- `workflowType`: one of `"feature"`, `"debug"`, `"refactor"`
|
|
60
|
+
- `workflowType`: one of `"feature"`, `"debug"`, `"refactor"`, `"oneshot"`
|
|
61
|
+
- `synthesisPolicy` *(optional, oneshot only)*: one of `"always"`, `"never"`, `"on-request"` (default `"on-request"`) — silently ignored for non-oneshot types
|
|
58
62
|
|
|
59
|
-
This creates a new state
|
|
63
|
+
This creates a new workflow state entry. The initial phase depends on
|
|
64
|
+
`workflowType`:
|
|
65
|
+
|
|
66
|
+
- `feature` → starts in `ideate`
|
|
67
|
+
- `debug` → starts in `triage`
|
|
68
|
+
- `refactor` → starts in `explore`
|
|
69
|
+
- `oneshot` → starts in `plan` (skips ideate entirely)
|
|
70
|
+
|
|
71
|
+
### Workflow Types at a Glance
|
|
72
|
+
|
|
73
|
+
- `feature` — full `ideate → plan → delegate → review → synthesize` for real features with subagent dispatch and two-stage review
|
|
74
|
+
- `debug` — `triage → investigate → (thorough | hotfix)` for bug workflows with track selection
|
|
75
|
+
- `refactor` — `explore → brief → (polish | overhaul)` for code improvements, polish for small and overhaul for multi-task
|
|
76
|
+
- `oneshot` — `plan → implementing → (completed | synthesize)` for trivial changes; direct-commit by default with an opt-in PR path resolved via a choice-state guard driven by `synthesisPolicy` and the `synthesize.requested` event
|
|
77
|
+
|
|
78
|
+
See `@skills/oneshot-workflow/SKILL.md` for the lightweight variant's full prose, including the choice-state mechanics and `finalize_oneshot` trigger.
|
|
60
79
|
|
|
61
80
|
### Read State
|
|
62
81
|
|
|
@@ -117,6 +136,23 @@ exarchos_orchestrate({
|
|
|
117
136
|
| PR created | Set `artifacts.pr`, `synthesis.prUrl` |
|
|
118
137
|
| PR feedback | Append to `synthesis.prFeedback` |
|
|
119
138
|
|
|
139
|
+
#### Oneshot-specific state updates
|
|
140
|
+
|
|
141
|
+
Oneshot is a first-class workflow type with a compressed lifecycle and an
|
|
142
|
+
opt-in PR path. The rows below mirror the feature-workflow table above.
|
|
143
|
+
|
|
144
|
+
| Phase | State updates | Events emitted |
|
|
145
|
+
|-------|---------------|----------------|
|
|
146
|
+
| `plan` (oneshot) | `oneshot.planSummary`, `artifacts.plan`, optional `oneshot.synthesisPolicy` | `workflow.transition` |
|
|
147
|
+
| `implementing` (oneshot) | `tasks[].status`, `artifacts.tests` | `task.*`, optional `synthesize.requested` (via `request_synthesize`) |
|
|
148
|
+
| `synthesize` (oneshot) | `synthesis.prUrl`, `artifacts.pr` | `workflow.transition`, `stack.submitted` |
|
|
149
|
+
| `completed` (oneshot) | — | `workflow.transition` (to `completed`) |
|
|
150
|
+
|
|
151
|
+
The `implementing → synthesize | completed` fork is a choice state resolved
|
|
152
|
+
by `finalize_oneshot`, which reads the `synthesisOptedIn` guard
|
|
153
|
+
(`synthesisPolicy` + `synthesize.requested` events). See
|
|
154
|
+
`@skills/oneshot-workflow/SKILL.md` for the full opt-in mechanics.
|
|
155
|
+
|
|
120
156
|
### Automatic State Updates
|
|
121
157
|
|
|
122
158
|
Skills should update state at key moments:
|
|
@@ -154,7 +190,7 @@ See `docs/schemas/workflow-state.schema.json` for full schema.
|
|
|
154
190
|
Key sections:
|
|
155
191
|
- `version`: Schema version (currently "1.1")
|
|
156
192
|
- `featureId`: Unique workflow identifier
|
|
157
|
-
- `workflowType`: Required. One of "feature", "debug", or "
|
|
193
|
+
- `workflowType`: Required. One of "feature", "debug", "refactor", or "oneshot"
|
|
158
194
|
- `phase`: Current workflow phase
|
|
159
195
|
- `artifacts`: Paths to design, plan, PR
|
|
160
196
|
- `tasks`: Task list with status
|
|
@@ -118,6 +118,28 @@ explore → brief → [polish-track | overhaul-track] → completed
|
|
|
118
118
|
|
|
119
119
|
**Compound state:** `overhaul-track` contains `overhaul-plan`, `overhaul-plan-review`, `overhaul-delegate`, `overhaul-review`, and `overhaul-update-docs`. Max 3 fix cycles.
|
|
120
120
|
|
|
121
|
+
## Oneshot Workflow
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
plan → implementing ─┬→ completed (direct-commit path)
|
|
125
|
+
└→ synthesize → completed (PR path, opt-in)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
| From | To | Guard | Prerequisite |
|
|
129
|
+
|------|----|-------|-------------|
|
|
130
|
+
| `plan` | `implementing` | `oneshot-plan-set` | Set `artifacts.plan` (non-empty string; `oneshot.planSummary` is optional metadata but does **not** satisfy the guard) |
|
|
131
|
+
| `implementing` | `synthesize` | `synthesis-opted-in` | Policy `always` OR (`on-request` + `synthesize.requested` event) |
|
|
132
|
+
| `implementing` | `completed` | `synthesis-opted-out` | Policy `never` OR (`on-request` + no event) |
|
|
133
|
+
| `synthesize` | `completed` | `pr-url-exists` | Set `synthesis.prUrl` or `artifacts.pr` |
|
|
134
|
+
|
|
135
|
+
**Choice state (end of `implementing`).** The fork after `implementing` is a UML choice state, implemented as two mutually-exclusive HSM transitions whose guards are pure functions of `state.oneshot.synthesisPolicy` and the `synthesize.requested` event count on the stream. At init, the user declares intent via `synthesisPolicy` (`always`, `never`, or `on-request` — default). During implementing, the user can opt in at any time by calling `exarchos_orchestrate request_synthesize`, which appends a `synthesize.requested` event without changing the phase. The decision is only evaluated when `finalize_oneshot` is called: the handler hydrates events, runs the guards, and calls `handleSet` with the resolved target. **Policy wins over event** — if policy is `never`, any `synthesize.requested` event is ignored and the guard routes to `completed`. Policy `always` short-circuits the event check and always routes to `synthesize`.
|
|
136
|
+
|
|
137
|
+
**How to trigger:** `exarchos_orchestrate finalize_oneshot { featureId }` — this is the only way to exit `implementing`. The handler evaluates the choice state and calls `handleSet` with the correct target phase. The HSM re-evaluates the guard at the transition boundary, so any race between read and transition is caught safely.
|
|
138
|
+
|
|
139
|
+
**No compound state.** Oneshot has no multi-agent loop, no review-fix cycle, and therefore no circuit breaker. If the in-session TDD loop gets stuck, cancel via `exarchos_workflow cancel` and restart with a different approach (or escalate to the full `feature` workflow).
|
|
140
|
+
|
|
141
|
+
See `@skills/oneshot-workflow/SKILL.md` for the full prose walkthrough including worked examples.
|
|
142
|
+
|
|
121
143
|
## Circuit Breaker
|
|
122
144
|
|
|
123
145
|
Compound states enforce a maximum number of fix cycles to prevent infinite review-fix loops. When the limit is exceeded, the HSM rejects the transition with a `CIRCUIT_OPEN` error and emits a `workflow.circuit-open` event.
|