oh-my-claude-sisyphus 3.5.7 → 3.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.
Files changed (112) hide show
  1. package/agents/executor-high.md +2 -0
  2. package/agents/executor-low.md +2 -0
  3. package/agents/executor.md +2 -0
  4. package/agents/templates/base-agent.md +9 -0
  5. package/commands/cancel.md +8 -8
  6. package/commands/swarm.md +350 -148
  7. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +7 -0
  8. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +1 -0
  9. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +374 -0
  10. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +1 -0
  11. package/dist/__tests__/hooks/learner/bridge.test.d.ts +11 -0
  12. package/dist/__tests__/hooks/learner/bridge.test.d.ts.map +1 -0
  13. package/dist/__tests__/hooks/learner/bridge.test.js +199 -0
  14. package/dist/__tests__/hooks/learner/bridge.test.js.map +1 -0
  15. package/dist/__tests__/hooks.test.js +10 -9
  16. package/dist/__tests__/hooks.test.js.map +1 -1
  17. package/dist/__tests__/installer.test.js +1 -1
  18. package/dist/agents/codex-agents.d.ts +20 -0
  19. package/dist/agents/codex-agents.d.ts.map +1 -0
  20. package/dist/agents/codex-agents.js +36 -0
  21. package/dist/agents/codex-agents.js.map +1 -0
  22. package/dist/agents/preamble.d.ts +14 -0
  23. package/dist/agents/preamble.d.ts.map +1 -0
  24. package/dist/agents/preamble.js +26 -0
  25. package/dist/agents/preamble.js.map +1 -0
  26. package/dist/hooks/autopilot/__tests__/cancel.test.js +14 -4
  27. package/dist/hooks/autopilot/__tests__/cancel.test.js.map +1 -1
  28. package/dist/hooks/autopilot/__tests__/state.test.js +1 -0
  29. package/dist/hooks/autopilot/__tests__/state.test.js.map +1 -1
  30. package/dist/hooks/autopilot/__tests__/summary.test.js +38 -3
  31. package/dist/hooks/autopilot/__tests__/summary.test.js.map +1 -1
  32. package/dist/hooks/autopilot/state.d.ts +1 -1
  33. package/dist/hooks/autopilot/state.d.ts.map +1 -1
  34. package/dist/hooks/autopilot/state.js +15 -8
  35. package/dist/hooks/autopilot/state.js.map +1 -1
  36. package/dist/hooks/index.d.ts +2 -0
  37. package/dist/hooks/index.d.ts.map +1 -1
  38. package/dist/hooks/index.js +7 -0
  39. package/dist/hooks/index.js.map +1 -1
  40. package/dist/hooks/learner/bridge.d.ts +71 -0
  41. package/dist/hooks/learner/bridge.d.ts.map +1 -0
  42. package/dist/hooks/learner/bridge.js +426 -0
  43. package/dist/hooks/learner/bridge.js.map +1 -0
  44. package/dist/hooks/mode-registry/index.d.ts +135 -0
  45. package/dist/hooks/mode-registry/index.d.ts.map +1 -0
  46. package/dist/hooks/mode-registry/index.js +445 -0
  47. package/dist/hooks/mode-registry/index.js.map +1 -0
  48. package/dist/hooks/mode-registry/types.d.ts +31 -0
  49. package/dist/hooks/mode-registry/types.d.ts.map +1 -0
  50. package/dist/hooks/mode-registry/types.js +7 -0
  51. package/dist/hooks/mode-registry/types.js.map +1 -0
  52. package/dist/hooks/ralph/loop.js +6 -6
  53. package/dist/hooks/ralph/loop.js.map +1 -1
  54. package/dist/hooks/skill-bridge.cjs +349 -0
  55. package/dist/hooks/swarm/__tests__/claiming.test.d.ts +2 -0
  56. package/dist/hooks/swarm/__tests__/claiming.test.d.ts.map +1 -0
  57. package/dist/hooks/swarm/__tests__/claiming.test.js +170 -0
  58. package/dist/hooks/swarm/__tests__/claiming.test.js.map +1 -0
  59. package/dist/hooks/swarm/__tests__/index.test.d.ts +2 -0
  60. package/dist/hooks/swarm/__tests__/index.test.d.ts.map +1 -0
  61. package/dist/hooks/swarm/__tests__/index.test.js +157 -0
  62. package/dist/hooks/swarm/__tests__/index.test.js.map +1 -0
  63. package/dist/hooks/swarm/__tests__/mode-registry.test.d.ts +2 -0
  64. package/dist/hooks/swarm/__tests__/mode-registry.test.d.ts.map +1 -0
  65. package/dist/hooks/swarm/__tests__/mode-registry.test.js +177 -0
  66. package/dist/hooks/swarm/__tests__/mode-registry.test.js.map +1 -0
  67. package/dist/hooks/swarm/claiming.d.ts +101 -0
  68. package/dist/hooks/swarm/claiming.d.ts.map +1 -0
  69. package/dist/hooks/swarm/claiming.js +460 -0
  70. package/dist/hooks/swarm/claiming.js.map +1 -0
  71. package/dist/hooks/swarm/index.d.ts +221 -0
  72. package/dist/hooks/swarm/index.d.ts.map +1 -0
  73. package/dist/hooks/swarm/index.js +413 -0
  74. package/dist/hooks/swarm/index.js.map +1 -0
  75. package/dist/hooks/swarm/state.d.ts +94 -0
  76. package/dist/hooks/swarm/state.d.ts.map +1 -0
  77. package/dist/hooks/swarm/state.js +530 -0
  78. package/dist/hooks/swarm/state.js.map +1 -0
  79. package/dist/hooks/swarm/types.d.ts +116 -0
  80. package/dist/hooks/swarm/types.d.ts.map +1 -0
  81. package/dist/hooks/swarm/types.js +22 -0
  82. package/dist/hooks/swarm/types.js.map +1 -0
  83. package/dist/hooks/ultrapilot/decomposer.d.ts +141 -0
  84. package/dist/hooks/ultrapilot/decomposer.d.ts.map +1 -0
  85. package/dist/hooks/ultrapilot/decomposer.js +377 -0
  86. package/dist/hooks/ultrapilot/decomposer.js.map +1 -0
  87. package/dist/hooks/ultrapilot/index.d.ts +31 -0
  88. package/dist/hooks/ultrapilot/index.d.ts.map +1 -1
  89. package/dist/hooks/ultrapilot/index.js +43 -2
  90. package/dist/hooks/ultrapilot/index.js.map +1 -1
  91. package/dist/hooks/ultrapilot/state.d.ts +1 -1
  92. package/dist/hooks/ultrapilot/state.d.ts.map +1 -1
  93. package/dist/hooks/ultrapilot/state.js +7 -0
  94. package/dist/hooks/ultrapilot/state.js.map +1 -1
  95. package/dist/hooks/ultraqa/index.js +5 -5
  96. package/dist/hooks/ultraqa/index.js.map +1 -1
  97. package/dist/hooks/ultrawork/index.js +3 -3
  98. package/dist/hooks/ultrawork/index.js.map +1 -1
  99. package/dist/installer/index.d.ts +1 -1
  100. package/dist/installer/index.js +1 -1
  101. package/package.json +6 -2
  102. package/scripts/build-skill-bridge.mjs +32 -0
  103. package/scripts/skill-injector.mjs +77 -26
  104. package/skills/autopilot/SKILL.md +18 -0
  105. package/skills/cancel/SKILL.md +166 -141
  106. package/skills/ecomode/SKILL.md +14 -0
  107. package/skills/pipeline/SKILL.md +13 -0
  108. package/skills/ralph/SKILL.md +22 -1
  109. package/skills/swarm/SKILL.md +521 -197
  110. package/skills/ultrapilot/SKILL.md +82 -13
  111. package/skills/ultraqa/SKILL.md +13 -0
  112. package/skills/ultrawork/SKILL.md +14 -0
@@ -100,39 +100,96 @@ backend frontend database api-docs tests
100
100
 
101
101
  **Agent:** Architect (Opus)
102
102
 
103
+ **Method:** AI-Powered Task Decomposition
104
+
105
+ Ultrapilot uses the `decomposer` module to generate intelligent task breakdowns:
106
+
107
+ ```typescript
108
+ import {
109
+ generateDecompositionPrompt,
110
+ parseDecompositionResult,
111
+ validateFileOwnership,
112
+ extractSharedFiles
113
+ } from 'src/hooks/ultrapilot/decomposer';
114
+
115
+ // 1. Generate prompt for Architect
116
+ const prompt = generateDecompositionPrompt(task, codebaseContext, {
117
+ maxSubtasks: 5,
118
+ preferredModel: 'sonnet'
119
+ });
120
+
121
+ // 2. Call Architect agent
122
+ const response = await Task({
123
+ subagent_type: 'oh-my-claudecode:architect',
124
+ model: 'opus',
125
+ prompt
126
+ });
127
+
128
+ // 3. Parse structured result
129
+ const result = parseDecompositionResult(response);
130
+
131
+ // 4. Validate no file conflicts
132
+ const { isValid, conflicts } = validateFileOwnership(result.subtasks);
133
+
134
+ // 5. Extract shared files from subtasks
135
+ const finalResult = extractSharedFiles(result);
136
+ ```
137
+
103
138
  **Process:**
104
- 1. Analyze task requirements
105
- 2. Identify independent components
106
- 3. Define subtask boundaries
107
- 4. Specify file ownership for each
108
- 5. Identify shared files (handled last)
139
+ 1. Analyze task requirements via Architect agent
140
+ 2. Identify independent components with file boundaries
141
+ 3. Assign agent type (executor-low/executor/executor-high) per complexity
142
+ 4. Map dependencies between subtasks (blockedBy)
143
+ 5. Generate parallel execution groups
144
+ 6. Identify shared files (handled by coordinator)
109
145
 
110
- **Output:** `.omc/ultrapilot/decomposition.json`
146
+ **Output:** Structured `DecompositionResult`:
111
147
 
112
148
  ```json
113
149
  {
114
150
  "subtasks": [
115
151
  {
116
- "id": "worker-1",
152
+ "id": "1",
117
153
  "description": "Backend API routes",
118
- "files": ["src/api/**"],
119
- "dependencies": []
154
+ "files": ["src/api/routes.ts", "src/api/handlers.ts"],
155
+ "blockedBy": [],
156
+ "agentType": "executor",
157
+ "model": "sonnet"
120
158
  },
121
159
  {
122
- "id": "worker-2",
160
+ "id": "2",
123
161
  "description": "Frontend components",
124
- "files": ["src/ui/**"],
125
- "dependencies": []
162
+ "files": ["src/ui/App.tsx", "src/ui/TodoList.tsx"],
163
+ "blockedBy": [],
164
+ "agentType": "executor",
165
+ "model": "sonnet"
166
+ },
167
+ {
168
+ "id": "3",
169
+ "description": "Wire frontend to backend",
170
+ "files": ["src/client/api.ts"],
171
+ "blockedBy": ["1", "2"],
172
+ "agentType": "executor-low",
173
+ "model": "haiku"
126
174
  }
127
175
  ],
128
176
  "sharedFiles": [
129
177
  "package.json",
130
178
  "tsconfig.json",
131
179
  "README.md"
132
- ]
180
+ ],
181
+ "parallelGroups": [["1", "2"], ["3"]]
133
182
  }
134
183
  ```
135
184
 
185
+ **Decomposition Types:**
186
+
187
+ | Type | Description | Use Case |
188
+ |------|-------------|----------|
189
+ | `DecomposedTask` | Full task with id, files, blockedBy, agentType, model | Intelligent worker spawning |
190
+ | `DecompositionResult` | Complete result with subtasks, sharedFiles, parallelGroups | Full decomposition output |
191
+ | `toSimpleSubtasks()` | Convert to string[] for legacy compatibility | Simple task lists |
192
+
136
193
  ### Phase 2: File Ownership Partitioning
137
194
 
138
195
  **Goal:** Assign exclusive file sets to workers
@@ -547,6 +604,18 @@ Then run:
547
604
  /oh-my-claudecode:ultrapilot --custom-decomposition
548
605
  ```
549
606
 
607
+ ## STATE CLEANUP ON COMPLETION
608
+
609
+ **IMPORTANT: Delete state files on completion - do NOT just set `active: false`**
610
+
611
+ When all workers complete successfully:
612
+
613
+ ```bash
614
+ # Delete ultrapilot state files
615
+ rm -f .omc/state/ultrapilot-state.json
616
+ rm -f .omc/state/ultrapilot-ownership.json
617
+ ```
618
+
550
619
  ## Future Enhancements
551
620
 
552
621
  **Planned for v4.1:**
@@ -117,6 +117,19 @@ User can cancel with `/oh-my-claudecode:cancel` which clears the state file.
117
117
  4. **CLEAR OUTPUT** - User should always know current cycle and status
118
118
  5. **CLEAN UP** - Clear state file on completion or cancellation
119
119
 
120
+ ## STATE CLEANUP ON COMPLETION
121
+
122
+ **IMPORTANT: Delete state files on completion - do NOT just set `active: false`**
123
+
124
+ When goal is met OR max cycles reached OR exiting early:
125
+
126
+ ```bash
127
+ # Delete ultraqa state file
128
+ rm -f .omc/state/ultraqa-state.json
129
+ ```
130
+
131
+ This ensures clean state for future sessions. Stale state files with `active: false` should not be left behind.
132
+
120
133
  ---
121
134
 
122
135
  Begin ULTRAQA cycling now. Parse the goal and start cycle 1.
@@ -90,3 +90,17 @@ Before stopping, verify:
90
90
  - [ ] ERRORS: Zero unaddressed errors
91
91
 
92
92
  **If ANY checkbox is unchecked, CONTINUE WORKING.**
93
+
94
+ ## STATE CLEANUP ON COMPLETION
95
+
96
+ **IMPORTANT: Delete state files on completion - do NOT just set `active: false`**
97
+
98
+ When all verification passes and work is complete:
99
+
100
+ ```bash
101
+ # Delete ultrawork state files
102
+ rm -f .omc/state/ultrawork-state.json
103
+ rm -f ~/.claude/ultrawork-state.json
104
+ ```
105
+
106
+ This ensures clean state for future sessions. Stale state files with `active: false` should not be left behind.