oh-my-claude-sisyphus 3.8.15 → 3.9.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/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/README.md +9 -11
- package/agents/analyst.md +41 -0
- package/agents/architect.md +45 -0
- package/agents/critic.md +42 -0
- package/agents/deep-executor.md +193 -0
- package/agents/planner.md +82 -0
- package/bridge/mcp-server.cjs +1 -1
- package/commands/autopilot.md +2 -6
- package/commands/hud.md +7 -2
- package/commands/ralph.md +3 -3
- package/commands/ultrapilot.md +2 -6
- package/dist/__tests__/agent-registry.test.js +1 -1
- package/dist/__tests__/delegation-enforcement-levels.test.js +0 -1
- package/dist/__tests__/delegation-enforcement-levels.test.js.map +1 -1
- package/dist/__tests__/hooks/learner/parser.test.d.ts +5 -0
- package/dist/__tests__/hooks/learner/parser.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/learner/parser.test.js +201 -0
- package/dist/__tests__/hooks/learner/parser.test.js.map +1 -0
- package/dist/__tests__/hud/cwd.test.d.ts +2 -0
- package/dist/__tests__/hud/cwd.test.d.ts.map +1 -0
- package/dist/__tests__/hud/cwd.test.js +62 -0
- package/dist/__tests__/hud/cwd.test.js.map +1 -0
- package/dist/__tests__/hud/defaults.test.d.ts +2 -0
- package/dist/__tests__/hud/defaults.test.d.ts.map +1 -0
- package/dist/__tests__/hud/defaults.test.js +21 -0
- package/dist/__tests__/hud/defaults.test.js.map +1 -0
- package/dist/__tests__/hud/render.test.d.ts +2 -0
- package/dist/__tests__/hud/render.test.d.ts.map +1 -0
- package/dist/__tests__/hud/render.test.js +141 -0
- package/dist/__tests__/hud/render.test.js.map +1 -0
- package/dist/__tests__/hud/thinking.test.d.ts +2 -0
- package/dist/__tests__/hud/thinking.test.d.ts.map +1 -0
- package/dist/__tests__/hud/thinking.test.js +32 -0
- package/dist/__tests__/hud/thinking.test.js.map +1 -0
- package/dist/__tests__/installer.test.js +8 -8
- package/dist/__tests__/installer.test.js.map +1 -1
- package/dist/__tests__/mnemosyne/parser.test.js +1 -1
- package/dist/__tests__/mnemosyne/parser.test.js.map +1 -1
- package/dist/__tests__/omc-tools-server.test.js +2 -2
- package/dist/__tests__/omc-tools-server.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +5 -4
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/agents/deep-executor.d.ts +15 -0
- package/dist/agents/deep-executor.d.ts.map +1 -0
- package/dist/agents/deep-executor.js +47 -0
- package/dist/agents/deep-executor.js.map +1 -0
- package/dist/agents/definitions.d.ts +15 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +25 -0
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/cli/commands/doctor-conflicts.d.ts +55 -0
- package/dist/cli/commands/doctor-conflicts.d.ts.map +1 -0
- package/dist/cli/commands/doctor-conflicts.js +261 -0
- package/dist/cli/commands/doctor-conflicts.js.map +1 -0
- package/dist/cli/index.js +16 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/features/auto-update.d.ts +12 -0
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +4 -1
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/context-injector/types.d.ts +1 -1
- package/dist/features/context-injector/types.d.ts.map +1 -1
- package/dist/features/continuation-enforcement.js +1 -1
- package/dist/features/state-manager/index.d.ts.map +1 -1
- package/dist/features/state-manager/index.js +7 -4
- package/dist/features/state-manager/index.js.map +1 -1
- package/dist/features/verification/example.d.ts.map +1 -1
- package/dist/features/verification/example.js +4 -2
- package/dist/features/verification/example.js.map +1 -1
- package/dist/hooks/__tests__/bridge.test.d.ts +2 -0
- package/dist/hooks/__tests__/bridge.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/bridge.test.js +199 -0
- package/dist/hooks/__tests__/bridge.test.js.map +1 -0
- package/dist/hooks/beads-context/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/beads-context/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/beads-context/__tests__/index.test.js +150 -0
- package/dist/hooks/beads-context/__tests__/index.test.js.map +1 -0
- package/dist/hooks/beads-context/constants.d.ts +3 -0
- package/dist/hooks/beads-context/constants.d.ts.map +1 -0
- package/dist/hooks/beads-context/constants.js +35 -0
- package/dist/hooks/beads-context/constants.js.map +1 -0
- package/dist/hooks/beads-context/index.d.ts +21 -0
- package/dist/hooks/beads-context/index.d.ts.map +1 -0
- package/dist/hooks/beads-context/index.js +62 -0
- package/dist/hooks/beads-context/index.js.map +1 -0
- package/dist/hooks/beads-context/types.d.ts +7 -0
- package/dist/hooks/beads-context/types.d.ts.map +1 -0
- package/dist/hooks/beads-context/types.js +2 -0
- package/dist/hooks/beads-context/types.js.map +1 -0
- package/dist/hooks/bridge.d.ts +4 -0
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +80 -47
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/learner/parser.d.ts.map +1 -1
- package/dist/hooks/learner/parser.js +12 -5
- package/dist/hooks/learner/parser.js.map +1 -1
- package/dist/hooks/mode-registry/index.d.ts +2 -0
- package/dist/hooks/mode-registry/index.d.ts.map +1 -1
- package/dist/hooks/mode-registry/index.js +8 -19
- package/dist/hooks/mode-registry/index.js.map +1 -1
- package/dist/hooks/permission-handler/index.d.ts.map +1 -1
- package/dist/hooks/permission-handler/index.js +3 -1
- package/dist/hooks/permission-handler/index.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts +1 -1
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +5 -33
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/ralph/index.d.ts +1 -1
- package/dist/hooks/ralph/index.d.ts.map +1 -1
- package/dist/hooks/ralph/index.js +1 -1
- package/dist/hooks/ralph/index.js.map +1 -1
- package/dist/hooks/ralph/loop.d.ts +1 -9
- package/dist/hooks/ralph/loop.d.ts.map +1 -1
- package/dist/hooks/ralph/loop.js +1 -37
- package/dist/hooks/ralph/loop.js.map +1 -1
- package/dist/hooks/ralph/prd.js +1 -1
- package/dist/hooks/ralph/verifier.d.ts +4 -5
- package/dist/hooks/ralph/verifier.d.ts.map +1 -1
- package/dist/hooks/ralph/verifier.js +7 -10
- package/dist/hooks/ralph/verifier.js.map +1 -1
- package/dist/hooks/session-end/index.d.ts +13 -0
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js +69 -0
- package/dist/hooks/session-end/index.js.map +1 -1
- package/dist/hooks/setup/index.d.ts.map +1 -1
- package/dist/hooks/setup/index.js +12 -5
- package/dist/hooks/setup/index.js.map +1 -1
- package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
- package/dist/hooks/subagent-tracker/index.js +25 -9
- package/dist/hooks/subagent-tracker/index.js.map +1 -1
- package/dist/hooks/ultrawork/index.d.ts +2 -2
- package/dist/hooks/ultrawork/index.d.ts.map +1 -1
- package/dist/hooks/ultrawork/index.js +2 -46
- package/dist/hooks/ultrawork/index.js.map +1 -1
- package/dist/hud/elements/cwd.d.ts +15 -0
- package/dist/hud/elements/cwd.d.ts.map +1 -0
- package/dist/hud/elements/cwd.js +39 -0
- package/dist/hud/elements/cwd.js.map +1 -0
- package/dist/hud/elements/index.d.ts +1 -0
- package/dist/hud/elements/index.d.ts.map +1 -1
- package/dist/hud/elements/index.js +1 -0
- package/dist/hud/elements/index.js.map +1 -1
- package/dist/hud/elements/thinking.d.ts +7 -5
- package/dist/hud/elements/thinking.d.ts.map +1 -1
- package/dist/hud/elements/thinking.js +18 -6
- package/dist/hud/elements/thinking.js.map +1 -1
- package/dist/hud/index.js +5 -3
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/omc-state.d.ts +1 -1
- package/dist/hud/omc-state.d.ts.map +1 -1
- package/dist/hud/omc-state.js +14 -31
- package/dist/hud/omc-state.js.map +1 -1
- package/dist/hud/render.d.ts +9 -0
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +27 -7
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts +2 -2
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +4 -33
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/transcript.d.ts +4 -1
- package/dist/hud/transcript.d.ts.map +1 -1
- package/dist/hud/transcript.js +4 -9
- package/dist/hud/transcript.js.map +1 -1
- package/dist/hud/types.d.ts +20 -1
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +38 -9
- package/dist/hud/types.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/__tests__/claude-md-merge.test.d.ts +6 -0
- package/dist/installer/__tests__/claude-md-merge.test.d.ts.map +1 -0
- package/dist/installer/__tests__/claude-md-merge.test.js +220 -0
- package/dist/installer/__tests__/claude-md-merge.test.js.map +1 -0
- package/dist/installer/__tests__/safe-installer.test.d.ts +6 -0
- package/dist/installer/__tests__/safe-installer.test.d.ts.map +1 -0
- package/dist/installer/__tests__/safe-installer.test.js +172 -0
- package/dist/installer/__tests__/safe-installer.test.js.map +1 -0
- package/dist/installer/hooks.d.ts +1 -1
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +4 -2
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts +27 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +209 -85
- package/dist/installer/index.js.map +1 -1
- package/dist/mcp/omc-tools-server.d.ts +1 -1
- package/dist/mcp/omc-tools-server.d.ts.map +1 -1
- package/dist/mcp/omc-tools-server.js +3 -3
- package/dist/mcp/omc-tools-server.js.map +1 -1
- package/dist/mcp/standalone-server.js +1 -1
- package/dist/mcp/standalone-server.js.map +1 -1
- package/dist/verification/tier-selector.d.ts +40 -0
- package/dist/verification/tier-selector.d.ts.map +1 -0
- package/dist/verification/tier-selector.js +95 -0
- package/dist/verification/tier-selector.js.map +1 -0
- package/dist/verification/tier-selector.test.d.ts +2 -0
- package/dist/verification/tier-selector.test.d.ts.map +1 -0
- package/dist/verification/tier-selector.test.js +282 -0
- package/dist/verification/tier-selector.test.js.map +1 -0
- package/docs/AGENTS.md +100 -0
- package/docs/ARCHITECTURE.md +11 -7
- package/docs/CLAUDE.md +89 -379
- package/docs/DELEGATION-ENFORCER.md +1 -2
- package/docs/MIGRATION.md +1 -1
- package/docs/REFERENCE.md +29 -9
- package/docs/SYNC-SYSTEM.md +0 -2
- package/docs/partials/agent-tiers.md +165 -0
- package/docs/partials/features.md +131 -0
- package/docs/partials/mode-hierarchy.md +120 -0
- package/docs/partials/mode-selection-guide.md +82 -0
- package/docs/partials/verification-tiers.md +107 -0
- package/docs/shared/agent-tiers.md +165 -0
- package/docs/shared/features.md +131 -0
- package/docs/shared/mode-hierarchy.md +120 -0
- package/docs/shared/mode-selection-guide.md +82 -0
- package/docs/shared/verification-tiers.md +107 -0
- package/package.json +4 -3
- package/scripts/compose-docs.mjs +44 -0
- package/scripts/keyword-detector.mjs +13 -3
- package/scripts/persistent-mode.mjs +78 -47
- package/scripts/test-mutual-exclusion.ts +3 -3
- package/skills/AGENTS.md +59 -44
- package/skills/autopilot/SKILL.md +0 -2
- package/skills/cancel/SKILL.md +13 -32
- package/skills/deep-executor/SKILL.md +50 -0
- package/skills/ecomode/SKILL.md +58 -104
- package/skills/hud/SKILL.md +3 -2
- package/skills/omc-setup/SKILL.md +197 -20
- package/skills/plan/SKILL.md +62 -0
- package/skills/project-session-manager/SKILL.md +87 -4
- package/skills/project-session-manager/lib/config.sh +54 -5
- package/skills/project-session-manager/lib/parse.sh +65 -11
- package/skills/project-session-manager/lib/providers/github.sh +52 -0
- package/skills/project-session-manager/lib/providers/interface.sh +76 -0
- package/skills/project-session-manager/lib/providers/jira.sh +79 -0
- package/skills/project-session-manager/lib/session.sh +49 -12
- package/skills/project-session-manager/lib/worktree.sh +37 -4
- package/skills/project-session-manager/psm.sh +116 -51
- package/skills/ralph/SKILL.md +48 -44
- package/skills/ultrawork/SKILL.md +56 -67
- package/templates/hooks/keyword-detector.mjs +21 -13
- package/templates/hooks/lib/stdin.mjs +62 -0
- package/templates/hooks/persistent-mode.mjs +75 -34
- package/templates/hooks/post-tool-use.mjs +8 -10
- package/templates/hooks/pre-tool-use.mjs +9 -6
- package/templates/hooks/session-start.mjs +7 -8
- package/agents/AGENTS.md +0 -144
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Agent Tiers Reference
|
|
2
|
+
|
|
3
|
+
This is the single source of truth for all agent tier information. All skill files and documentation should reference this file instead of duplicating the table.
|
|
4
|
+
|
|
5
|
+
## Tier Matrix
|
|
6
|
+
|
|
7
|
+
| Domain | LOW (Haiku) | MEDIUM (Sonnet) | HIGH (Opus) |
|
|
8
|
+
|--------|-------------|-----------------|-------------|
|
|
9
|
+
| **Analysis** | architect-low | architect-medium | architect |
|
|
10
|
+
| **Execution** | executor-low | executor | executor-high |
|
|
11
|
+
| **Deep Work** | - | - | deep-executor |
|
|
12
|
+
| **Search** | explore | explore-medium | explore-high |
|
|
13
|
+
| **Research** | researcher-low | researcher | - |
|
|
14
|
+
| **Frontend** | designer-low | designer | designer-high |
|
|
15
|
+
| **Docs** | writer | - | - |
|
|
16
|
+
| **Visual** | - | vision | - |
|
|
17
|
+
| **Planning** | - | - | planner |
|
|
18
|
+
| **Critique** | - | - | critic |
|
|
19
|
+
| **Pre-Planning** | - | - | analyst |
|
|
20
|
+
| **Testing** | - | qa-tester | qa-tester-high |
|
|
21
|
+
| **Security** | security-reviewer-low | - | security-reviewer |
|
|
22
|
+
| **Build** | build-fixer-low | build-fixer | - |
|
|
23
|
+
| **TDD** | tdd-guide-low | tdd-guide | - |
|
|
24
|
+
| **Code Review** | code-reviewer-low | - | code-reviewer |
|
|
25
|
+
| **Data Science** | scientist-low | scientist | scientist-high |
|
|
26
|
+
|
|
27
|
+
## Model Routing Guide
|
|
28
|
+
|
|
29
|
+
| Task Complexity | Tier | Model | When to Use |
|
|
30
|
+
|-----------------|------|-------|-------------|
|
|
31
|
+
| Simple | LOW | haiku | Quick lookups, simple fixes, "What does X return?" |
|
|
32
|
+
| Standard | MEDIUM | sonnet | Feature implementation, standard debugging, "Add validation" |
|
|
33
|
+
| Complex | HIGH | opus | Architecture decisions, complex debugging, "Refactor system" |
|
|
34
|
+
|
|
35
|
+
## Agent Selection by Task Type
|
|
36
|
+
|
|
37
|
+
| Task Type | Best Agent | Tier |
|
|
38
|
+
|-----------|------------|------|
|
|
39
|
+
| Quick code lookup | explore | LOW |
|
|
40
|
+
| Find files/patterns | explore, explore-medium | LOW/MEDIUM |
|
|
41
|
+
| Complex architectural search | explore-high | HIGH |
|
|
42
|
+
| Simple code change | executor-low | LOW |
|
|
43
|
+
| Feature implementation | executor | MEDIUM |
|
|
44
|
+
| Complex refactoring | executor-high | HIGH |
|
|
45
|
+
| Debug simple issue | architect-low | LOW |
|
|
46
|
+
| Debug complex issue | architect | HIGH |
|
|
47
|
+
| UI component | designer | MEDIUM |
|
|
48
|
+
| Complex UI system | designer-high | HIGH |
|
|
49
|
+
| Write docs/comments | writer | LOW |
|
|
50
|
+
| Research docs/APIs | researcher | MEDIUM |
|
|
51
|
+
| Analyze images/diagrams | vision | MEDIUM |
|
|
52
|
+
| Strategic planning | planner | HIGH |
|
|
53
|
+
| Review/critique plan | critic | HIGH |
|
|
54
|
+
| Pre-planning analysis | analyst | HIGH |
|
|
55
|
+
| Interactive CLI testing | qa-tester | MEDIUM |
|
|
56
|
+
| Security review | security-reviewer | HIGH |
|
|
57
|
+
| Quick security scan | security-reviewer-low | LOW |
|
|
58
|
+
| Fix build errors | build-fixer | MEDIUM |
|
|
59
|
+
| Simple build fix | build-fixer-low | LOW |
|
|
60
|
+
| TDD workflow | tdd-guide | MEDIUM |
|
|
61
|
+
| Quick test suggestions | tdd-guide-low | LOW |
|
|
62
|
+
| Code review | code-reviewer | HIGH |
|
|
63
|
+
| Quick code check | code-reviewer-low | LOW |
|
|
64
|
+
| Data analysis/stats | scientist | MEDIUM |
|
|
65
|
+
| Quick data inspection | scientist-low | LOW |
|
|
66
|
+
| Complex ML/hypothesis | scientist-high | HIGH |
|
|
67
|
+
| Find symbol references | explore-high | HIGH |
|
|
68
|
+
| Get file/workspace symbol outline | explore | LOW |
|
|
69
|
+
| Structural code pattern search | explore | LOW |
|
|
70
|
+
| Structural code transformation | executor-high | HIGH |
|
|
71
|
+
| Project-wide type checking | build-fixer | MEDIUM |
|
|
72
|
+
| Check single file for errors | executor-low | LOW |
|
|
73
|
+
| Data analysis / computation | scientist | MEDIUM |
|
|
74
|
+
| Complex autonomous work | deep-executor | HIGH |
|
|
75
|
+
| Deep goal-oriented execution | deep-executor | HIGH |
|
|
76
|
+
|
|
77
|
+
## Usage
|
|
78
|
+
|
|
79
|
+
When delegating, always specify the model explicitly:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Task(subagent_type="oh-my-claudecode:executor",
|
|
83
|
+
model="sonnet",
|
|
84
|
+
prompt="...")
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
For token savings, prefer lower tiers when the task allows:
|
|
88
|
+
- Use `haiku` for simple lookups and quick fixes
|
|
89
|
+
- Use `sonnet` for standard implementation work
|
|
90
|
+
- Reserve `opus` for complex reasoning tasks
|
|
91
|
+
|
|
92
|
+
## MCP Tools & Agent Capabilities
|
|
93
|
+
|
|
94
|
+
### Tool Inventory
|
|
95
|
+
|
|
96
|
+
| Tool | Category | Purpose | Assigned to Agents? |
|
|
97
|
+
|------|----------|---------|---------------------|
|
|
98
|
+
| `lsp_hover` | LSP | Get type info and documentation at a code position | NO (orchestrator-direct) |
|
|
99
|
+
| `lsp_goto_definition` | LSP | Jump to where a symbol is defined | NO (orchestrator-direct) |
|
|
100
|
+
| `lsp_find_references` | LSP | Find all usages of a symbol across the codebase | YES (`explore-high` only) |
|
|
101
|
+
| `lsp_document_symbols` | LSP | Get outline of all symbols in a file | YES |
|
|
102
|
+
| `lsp_workspace_symbols` | LSP | Search for symbols by name across the workspace | YES |
|
|
103
|
+
| `lsp_diagnostics` | LSP | Get errors, warnings, and hints for a file | YES |
|
|
104
|
+
| `lsp_diagnostics_directory` | LSP | Project-level type checking (tsc --noEmit or LSP) | YES |
|
|
105
|
+
| `lsp_prepare_rename` | LSP | Check if a symbol can be renamed | NO (orchestrator-direct) |
|
|
106
|
+
| `lsp_rename` | LSP | Rename a symbol across the entire project | NO (orchestrator-direct) |
|
|
107
|
+
| `lsp_code_actions` | LSP | Get available refactorings and quick fixes | NO (orchestrator-direct) |
|
|
108
|
+
| `lsp_code_action_resolve` | LSP | Get full edit details for a code action | NO (orchestrator-direct) |
|
|
109
|
+
| `lsp_servers` | LSP | List available language servers and install status | NO (orchestrator-direct) |
|
|
110
|
+
| `ast_grep_search` | AST | Pattern-based structural code search using AST | YES |
|
|
111
|
+
| `ast_grep_replace` | AST | Pattern-based structural code transformation | YES (`executor-high` only) |
|
|
112
|
+
| `python_repl` | Data | Persistent Python REPL for data analysis and computation | YES |
|
|
113
|
+
|
|
114
|
+
### Agent Tool Matrix (MCP Tools Only)
|
|
115
|
+
|
|
116
|
+
| Agent | LSP Diagnostics | LSP Dir Diagnostics | LSP Symbols | LSP References | AST Search | AST Replace | Python REPL |
|
|
117
|
+
|-------|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|
|
118
|
+
| `explore` | - | - | doc + workspace | - | yes | - | - |
|
|
119
|
+
| `explore-medium` | - | - | doc + workspace | - | yes | - | - |
|
|
120
|
+
| `explore-high` | - | - | doc + workspace | yes | yes | - | - |
|
|
121
|
+
| `architect-low` | yes | - | - | - | - | - | - |
|
|
122
|
+
| `architect-medium` | yes | yes | - | - | yes | - | - |
|
|
123
|
+
| `architect` | yes | yes | - | - | yes | - | - |
|
|
124
|
+
| `executor-low` | yes | - | - | - | - | - | - |
|
|
125
|
+
| `executor` | yes | yes | - | - | - | - | - |
|
|
126
|
+
| `executor-high` | yes | yes | - | - | yes | yes | - |
|
|
127
|
+
| `deep-executor` | yes | yes | - | - | yes | yes | - |
|
|
128
|
+
| `build-fixer` | yes | yes | - | - | - | - | - |
|
|
129
|
+
| `build-fixer-low` | yes | yes | - | - | - | - | - |
|
|
130
|
+
| `tdd-guide` | yes | - | - | - | - | - | - |
|
|
131
|
+
| `tdd-guide-low` | yes | - | - | - | - | - | - |
|
|
132
|
+
| `code-reviewer` | yes | - | - | - | yes | - | - |
|
|
133
|
+
| `code-reviewer-low` | yes | - | - | - | - | - | - |
|
|
134
|
+
| `qa-tester` | yes | - | - | - | - | - | - |
|
|
135
|
+
| `qa-tester-high` | yes | - | - | - | - | - | - |
|
|
136
|
+
| `scientist-low` | - | - | - | - | - | - | yes |
|
|
137
|
+
| `scientist` | - | - | - | - | - | - | yes |
|
|
138
|
+
| `scientist-high` | - | - | - | - | - | - | yes |
|
|
139
|
+
|
|
140
|
+
### Unassigned Tools (Orchestrator-Direct)
|
|
141
|
+
|
|
142
|
+
The following 7 MCP tools are NOT assigned to any agent. Use directly when needed:
|
|
143
|
+
|
|
144
|
+
| Tool | When to Use Directly |
|
|
145
|
+
|------|---------------------|
|
|
146
|
+
| `lsp_hover` | Quick type lookups during conversation |
|
|
147
|
+
| `lsp_goto_definition` | Navigating to symbol definitions during analysis |
|
|
148
|
+
| `lsp_prepare_rename` | Checking rename feasibility before deciding on approach |
|
|
149
|
+
| `lsp_rename` | Safe rename operations (returns edit preview, does not auto-apply) |
|
|
150
|
+
| `lsp_code_actions` | Discovering available refactorings |
|
|
151
|
+
| `lsp_code_action_resolve` | Getting details of a specific code action |
|
|
152
|
+
| `lsp_servers` | Checking language server availability |
|
|
153
|
+
|
|
154
|
+
For complex rename or refactoring tasks requiring implementation, delegate to `executor-high` which can use `ast_grep_replace` for structural transformations.
|
|
155
|
+
|
|
156
|
+
### Tool Selection Guidance
|
|
157
|
+
|
|
158
|
+
- **Need file symbol outline or workspace search?** Use `lsp_document_symbols`/`lsp_workspace_symbols` via `explore`, `explore-medium`, or `explore-high`
|
|
159
|
+
- **Need to find all usages of a symbol?** Use `lsp_find_references` via `explore-high` (only agent with it)
|
|
160
|
+
- **Need structural code patterns?** (e.g., "find all functions matching X shape") Use `ast_grep_search` via `explore` family, `architect`/`architect-medium`, or `code-reviewer`
|
|
161
|
+
- **Need to transform code structurally?** Use `ast_grep_replace` via `executor-high` (only agent with it)
|
|
162
|
+
- **Need project-wide type checking?** Use `lsp_diagnostics_directory` via `architect`/`architect-medium`, `executor`/`executor-high`, or `build-fixer` family
|
|
163
|
+
- **Need single-file error checking?** Use `lsp_diagnostics` via many agents (see matrix)
|
|
164
|
+
- **Need data analysis / computation?** Use `python_repl` via `scientist` agents (all tiers)
|
|
165
|
+
- **Need quick type info or definition lookup?** Use `lsp_hover`/`lsp_goto_definition` directly (orchestrator-direct tools)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Features Reference (v3.1 - v3.4)
|
|
2
|
+
|
|
3
|
+
## Notepad Wisdom System
|
|
4
|
+
|
|
5
|
+
Plan-scoped wisdom capture for learnings, decisions, issues, and problems.
|
|
6
|
+
|
|
7
|
+
**Location:** `.omc/notepads/{plan-name}/`
|
|
8
|
+
|
|
9
|
+
| File | Purpose |
|
|
10
|
+
|------|---------|
|
|
11
|
+
| `learnings.md` | Technical discoveries and patterns |
|
|
12
|
+
| `decisions.md` | Architectural and design decisions |
|
|
13
|
+
| `issues.md` | Known issues and workarounds |
|
|
14
|
+
| `problems.md` | Blockers and challenges |
|
|
15
|
+
|
|
16
|
+
**API:** `initPlanNotepad()`, `addLearning()`, `addDecision()`, `addIssue()`, `addProblem()`, `getWisdomSummary()`, `readPlanWisdom()`
|
|
17
|
+
|
|
18
|
+
## Delegation Categories
|
|
19
|
+
|
|
20
|
+
Semantic task categorization that auto-maps to model tier, temperature, and thinking budget.
|
|
21
|
+
|
|
22
|
+
| Category | Tier | Temperature | Thinking | Use For |
|
|
23
|
+
|----------|------|-------------|----------|---------|
|
|
24
|
+
| `visual-engineering` | HIGH | 0.7 | high | UI/UX, frontend, design systems |
|
|
25
|
+
| `ultrabrain` | HIGH | 0.3 | max | Complex reasoning, architecture, deep debugging |
|
|
26
|
+
| `artistry` | MEDIUM | 0.9 | medium | Creative solutions, brainstorming |
|
|
27
|
+
| `quick` | LOW | 0.1 | low | Simple lookups, basic operations |
|
|
28
|
+
| `writing` | MEDIUM | 0.5 | medium | Documentation, technical writing |
|
|
29
|
+
|
|
30
|
+
**Auto-detection:** Categories detect from prompt keywords automatically.
|
|
31
|
+
|
|
32
|
+
## Directory Diagnostics Tool
|
|
33
|
+
|
|
34
|
+
Project-level type checking via `lsp_diagnostics_directory` tool.
|
|
35
|
+
|
|
36
|
+
**Strategies:**
|
|
37
|
+
- `auto` (default) - Auto-selects best strategy, prefers tsc when tsconfig.json exists
|
|
38
|
+
- `tsc` - Fast, uses TypeScript compiler
|
|
39
|
+
- `lsp` - Fallback, iterates files via Language Server
|
|
40
|
+
|
|
41
|
+
**Usage:** Check entire project for errors before commits or after refactoring.
|
|
42
|
+
|
|
43
|
+
## Session Resume
|
|
44
|
+
|
|
45
|
+
Background agents can be resumed with full context via `resume-session` tool.
|
|
46
|
+
|
|
47
|
+
## Ultrapilot (v3.4)
|
|
48
|
+
|
|
49
|
+
Parallel autopilot with up to 5 concurrent workers for 3-5x faster execution.
|
|
50
|
+
|
|
51
|
+
**Trigger:** "ultrapilot", "parallel build", "swarm build"
|
|
52
|
+
|
|
53
|
+
**How it works:**
|
|
54
|
+
1. Task decomposition engine breaks complex tasks into parallelizable subtasks
|
|
55
|
+
2. File ownership coordinator assigns non-overlapping file sets to workers
|
|
56
|
+
3. Workers execute in parallel, coordinator manages shared files
|
|
57
|
+
4. Results integrated with conflict detection
|
|
58
|
+
|
|
59
|
+
**Best for:** Multi-component systems, fullstack apps, large refactoring
|
|
60
|
+
|
|
61
|
+
**State files:**
|
|
62
|
+
- `.omc/state/ultrapilot-state.json` - Session state
|
|
63
|
+
- `.omc/state/ultrapilot-ownership.json` - File ownership
|
|
64
|
+
|
|
65
|
+
## Swarm (v3.4)
|
|
66
|
+
|
|
67
|
+
N coordinated agents with atomic task claiming from shared pool.
|
|
68
|
+
|
|
69
|
+
**Usage:** `/swarm 5:executor "fix all TypeScript errors"`
|
|
70
|
+
|
|
71
|
+
**Features:**
|
|
72
|
+
- Shared task list with pending/claimed/done status
|
|
73
|
+
- 5-minute timeout per task with auto-release
|
|
74
|
+
- Clean completion when all tasks done
|
|
75
|
+
|
|
76
|
+
## Pipeline (v3.4)
|
|
77
|
+
|
|
78
|
+
Sequential agent chaining with data passing between stages.
|
|
79
|
+
|
|
80
|
+
**Built-in Presets:**
|
|
81
|
+
| Preset | Stages |
|
|
82
|
+
|--------|--------|
|
|
83
|
+
| `review` | explore -> architect -> critic -> executor |
|
|
84
|
+
| `implement` | planner -> executor -> tdd-guide |
|
|
85
|
+
| `debug` | explore -> architect -> build-fixer |
|
|
86
|
+
| `research` | parallel(researcher, explore) -> architect -> writer |
|
|
87
|
+
| `refactor` | explore -> architect-medium -> executor-high -> qa-tester |
|
|
88
|
+
| `security` | explore -> security-reviewer -> executor -> security-reviewer-low |
|
|
89
|
+
|
|
90
|
+
**Custom pipelines:** `/pipeline explore:haiku -> architect:opus -> executor:sonnet`
|
|
91
|
+
|
|
92
|
+
## Unified Cancel (v3.4)
|
|
93
|
+
|
|
94
|
+
Smart cancellation that auto-detects active mode.
|
|
95
|
+
|
|
96
|
+
**Usage:** `/cancel` or just say "cancelomc", "stopomc"
|
|
97
|
+
|
|
98
|
+
Auto-detects and cancels: autopilot, ultrapilot, ralph, ultrawork, ultraqa, ecomode, swarm, pipeline
|
|
99
|
+
Use `--force` or `--all` to clear ALL states.
|
|
100
|
+
|
|
101
|
+
## Verification Module (v3.4)
|
|
102
|
+
|
|
103
|
+
Reusable verification protocol for workflows.
|
|
104
|
+
|
|
105
|
+
**Standard Checks:** BUILD, TEST, LINT, FUNCTIONALITY, ARCHITECT, TODO, ERROR_FREE
|
|
106
|
+
|
|
107
|
+
**Evidence validation:** 5-minute freshness detection, pass/fail tracking
|
|
108
|
+
|
|
109
|
+
## State Management (v3.4)
|
|
110
|
+
|
|
111
|
+
Standardized state file locations.
|
|
112
|
+
|
|
113
|
+
**Standard paths for all mode state files:**
|
|
114
|
+
- Primary: `.omc/state/{name}.json` (local, per-project)
|
|
115
|
+
- Global backup: `~/.omc/state/{name}.json` (global, session continuity)
|
|
116
|
+
|
|
117
|
+
**Mode State Files:**
|
|
118
|
+
| Mode | State File |
|
|
119
|
+
|------|-----------|
|
|
120
|
+
| ralph | `ralph-state.json` |
|
|
121
|
+
| autopilot | `autopilot-state.json` |
|
|
122
|
+
| ultrapilot | `ultrapilot-state.json` |
|
|
123
|
+
| ultrawork | `ultrawork-state.json` |
|
|
124
|
+
| ecomode | `ecomode-state.json` |
|
|
125
|
+
| ultraqa | `ultraqa-state.json` |
|
|
126
|
+
| pipeline | `pipeline-state.json` |
|
|
127
|
+
| swarm | `swarm-summary.json` + `swarm-active.marker` |
|
|
128
|
+
|
|
129
|
+
**Important:** Never store OMC state in `~/.claude/` - that directory is reserved for Claude Code itself.
|
|
130
|
+
|
|
131
|
+
Legacy locations auto-migrated on read.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Execution Mode Hierarchy
|
|
2
|
+
|
|
3
|
+
This document defines the relationships between execution modes and provides guidance on mode selection.
|
|
4
|
+
|
|
5
|
+
## Mode Inheritance Tree
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
autopilot (autonomous end-to-end)
|
|
9
|
+
├── includes: ralph (persistence)
|
|
10
|
+
│ └── includes: ultrawork (parallelism)
|
|
11
|
+
├── includes: ultraqa (QA cycling)
|
|
12
|
+
└── includes: plan (strategic thinking)
|
|
13
|
+
|
|
14
|
+
ultrapilot (parallel autopilot)
|
|
15
|
+
├── includes: file ownership partitioning
|
|
16
|
+
├── includes: worker coordination (up to 5 workers)
|
|
17
|
+
└── falls back to: autopilot (if not parallelizable)
|
|
18
|
+
|
|
19
|
+
swarm (N-agent coordination)
|
|
20
|
+
├── includes: SQLite task claiming
|
|
21
|
+
├── includes: heartbeat monitoring
|
|
22
|
+
└── orthogonal to: autopilot/ultrapilot (different paradigm)
|
|
23
|
+
|
|
24
|
+
ecomode (token efficiency ONLY)
|
|
25
|
+
└── modifies: agent tier selection (prefer haiku/sonnet)
|
|
26
|
+
(does NOT include persistence - that's ralph's job)
|
|
27
|
+
|
|
28
|
+
ralph (persistence wrapper)
|
|
29
|
+
└── includes: ultrawork (parallelism engine)
|
|
30
|
+
(adds: loop until done + architect verification)
|
|
31
|
+
|
|
32
|
+
ultrawork (parallelism engine)
|
|
33
|
+
└── COMPONENT only - parallel agent spawning
|
|
34
|
+
(no persistence, no verification loop)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Mode Relationships
|
|
38
|
+
|
|
39
|
+
| Mode | Type | Includes | Mutually Exclusive With |
|
|
40
|
+
|------|------|----------|------------------------|
|
|
41
|
+
| autopilot | Standalone | ralph, ultraqa, plan | ultrapilot |
|
|
42
|
+
| ultrapilot | Standalone | file ownership, workers | autopilot |
|
|
43
|
+
| swarm | Standalone | SQLite claiming | - |
|
|
44
|
+
| ralph | Wrapper | ultrawork | - |
|
|
45
|
+
| ultrawork | Component | - | - |
|
|
46
|
+
| ecomode | Modifier | - | - |
|
|
47
|
+
| ultraqa | Component | - | - |
|
|
48
|
+
|
|
49
|
+
## Decision Tree
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Want autonomous execution?
|
|
53
|
+
├── YES: Is task parallelizable into 3+ independent components?
|
|
54
|
+
│ ├── YES: ultrapilot (parallel autopilot with file ownership)
|
|
55
|
+
│ └── NO: autopilot (sequential with ralph phases)
|
|
56
|
+
└── NO: Want parallel execution with manual oversight?
|
|
57
|
+
├── YES: Do you want cost optimization?
|
|
58
|
+
│ ├── YES: ecomode + ultrawork
|
|
59
|
+
│ └── NO: ultrawork alone
|
|
60
|
+
└── NO: Want persistence until verified done?
|
|
61
|
+
├── YES: ralph (persistence + ultrawork + verification)
|
|
62
|
+
└── NO: Standard orchestration (delegate to agents directly)
|
|
63
|
+
|
|
64
|
+
Have many similar independent tasks (e.g., "fix 47 errors")?
|
|
65
|
+
└── YES: swarm (N agents claiming from task pool)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Mode Differentiation Matrix
|
|
69
|
+
|
|
70
|
+
| Mode | Best For | Parallelism | Persistence | Verification | File Ownership |
|
|
71
|
+
|------|----------|-------------|-------------|--------------|----------------|
|
|
72
|
+
| autopilot | "Build me X" | Via ralph | Yes | Yes | N/A |
|
|
73
|
+
| ultrapilot | Multi-component | 5 workers | Yes | Yes | Partitioned |
|
|
74
|
+
| swarm | Homogeneous tasks | N workers | Per-task | Per-task | Per-task |
|
|
75
|
+
| ralph | "Don't stop" | Via ultrawork | Yes | Mandatory | N/A |
|
|
76
|
+
| ultrawork | Parallel only | Yes | No | No | N/A |
|
|
77
|
+
| ecomode | Cost savings | Modifier | No | No | N/A |
|
|
78
|
+
|
|
79
|
+
## Quick Reference
|
|
80
|
+
|
|
81
|
+
**Just want to build something?** → `autopilot`
|
|
82
|
+
**Building multi-component system?** → `ultrapilot`
|
|
83
|
+
**Fixing many similar issues?** → `swarm`
|
|
84
|
+
**Want control over execution?** → `ultrawork`
|
|
85
|
+
**Need verified completion?** → `ralph`
|
|
86
|
+
**Want to save tokens?** → `ecomode` (combine with other modes)
|
|
87
|
+
|
|
88
|
+
## Combining Modes
|
|
89
|
+
|
|
90
|
+
Valid combinations:
|
|
91
|
+
- `eco ralph` = Ralph loop with cheaper agents
|
|
92
|
+
- `eco ultrawork` = Parallel execution with cheaper agents
|
|
93
|
+
- `eco autopilot` = Full autonomous with cost optimization
|
|
94
|
+
|
|
95
|
+
Invalid combinations:
|
|
96
|
+
- `autopilot ultrapilot` = Mutually exclusive (both are standalone)
|
|
97
|
+
- `ecomode` alone = Not useful (needs an execution mode)
|
|
98
|
+
|
|
99
|
+
## State Management
|
|
100
|
+
|
|
101
|
+
### Standard Paths
|
|
102
|
+
All mode state files use standardized locations:
|
|
103
|
+
- Primary: `.omc/state/{name}.json` (local, per-project)
|
|
104
|
+
- Global backup: `~/.omc/state/{name}.json` (global, session continuity)
|
|
105
|
+
|
|
106
|
+
### Mode State Files
|
|
107
|
+
| Mode | State File |
|
|
108
|
+
|------|-----------|
|
|
109
|
+
| ralph | `ralph-state.json` |
|
|
110
|
+
| autopilot | `autopilot-state.json` |
|
|
111
|
+
| ultrapilot | `ultrapilot-state.json` |
|
|
112
|
+
| ultrawork | `ultrawork-state.json` |
|
|
113
|
+
| ecomode | `ecomode-state.json` |
|
|
114
|
+
| ultraqa | `ultraqa-state.json` |
|
|
115
|
+
| pipeline | `pipeline-state.json` |
|
|
116
|
+
| swarm | `swarm-summary.json` + `swarm-active.marker` |
|
|
117
|
+
|
|
118
|
+
**Important:** Never store OMC state in `~/.claude/` - that directory is reserved for Claude Code itself.
|
|
119
|
+
|
|
120
|
+
Legacy locations are auto-migrated on read.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Mode Selection Guide
|
|
2
|
+
|
|
3
|
+
## Quick Decision
|
|
4
|
+
|
|
5
|
+
| If you want... | Use this | Keyword |
|
|
6
|
+
|----------------|----------|---------|
|
|
7
|
+
| Full autonomous build from idea | `autopilot` | "autopilot", "build me", "I want a" |
|
|
8
|
+
| Parallel autonomous (3-5x faster) | `ultrapilot` | "ultrapilot", "parallel build" |
|
|
9
|
+
| Persistence until verified done | `ralph` | "ralph", "don't stop" |
|
|
10
|
+
| Parallel execution, manual oversight | `ultrawork` | "ulw", "ultrawork" |
|
|
11
|
+
| Cost-efficient execution | `ecomode` (modifier) | "eco", "budget" |
|
|
12
|
+
| Many similar independent tasks | `swarm` | "swarm N agents" |
|
|
13
|
+
|
|
14
|
+
## If You're Confused
|
|
15
|
+
|
|
16
|
+
**Start with `autopilot`** - it handles most scenarios and transitions to other modes automatically.
|
|
17
|
+
|
|
18
|
+
## Detailed Decision Flowchart
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Want autonomous execution?
|
|
22
|
+
├── YES: Is task parallelizable into 3+ independent components?
|
|
23
|
+
│ ├── YES: ultrapilot (parallel autopilot with file ownership)
|
|
24
|
+
│ └── NO: autopilot (sequential with ralph phases)
|
|
25
|
+
└── NO: Want parallel execution with manual oversight?
|
|
26
|
+
├── YES: Do you want cost optimization?
|
|
27
|
+
│ ├── YES: ecomode + ultrawork
|
|
28
|
+
│ └── NO: ultrawork alone
|
|
29
|
+
└── NO: Want persistence until verified done?
|
|
30
|
+
├── YES: ralph (persistence + ultrawork + verification)
|
|
31
|
+
└── NO: Standard orchestration (delegate to agents directly)
|
|
32
|
+
|
|
33
|
+
Have many similar independent tasks (e.g., "fix 47 errors")?
|
|
34
|
+
└── YES: swarm (N agents claiming from task pool)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
| User Request | Best Mode | Why |
|
|
40
|
+
|--------------|-----------|-----|
|
|
41
|
+
| "Build me a REST API" | autopilot | Single coherent deliverable |
|
|
42
|
+
| "Build frontend, backend, and database" | ultrapilot | Clear component boundaries |
|
|
43
|
+
| "Fix all 47 TypeScript errors" | swarm | Many independent similar tasks |
|
|
44
|
+
| "Refactor auth module thoroughly" | ralph | Need persistence + verification |
|
|
45
|
+
| "Quick parallel execution" | ultrawork | Manual oversight preferred |
|
|
46
|
+
| "Save tokens while fixing errors" | ecomode + ultrawork | Cost-conscious parallel |
|
|
47
|
+
| "Don't stop until done" | ralph | Persistence keyword detected |
|
|
48
|
+
|
|
49
|
+
## Mode Types
|
|
50
|
+
|
|
51
|
+
### Standalone Modes
|
|
52
|
+
These run independently:
|
|
53
|
+
- **autopilot**: Autonomous end-to-end execution
|
|
54
|
+
- **ultrapilot**: Parallel autonomous with file ownership
|
|
55
|
+
- **swarm**: N-agent coordination with task pool
|
|
56
|
+
|
|
57
|
+
### Wrapper Modes
|
|
58
|
+
These wrap other modes:
|
|
59
|
+
- **ralph**: Adds persistence + verification around ultrawork
|
|
60
|
+
|
|
61
|
+
### Component Modes
|
|
62
|
+
These are used by other modes:
|
|
63
|
+
- **ultrawork**: Parallel execution engine (used by ralph, autopilot)
|
|
64
|
+
|
|
65
|
+
### Modifier Modes
|
|
66
|
+
These modify how other modes work:
|
|
67
|
+
- **ecomode**: Changes model routing to prefer cheaper tiers
|
|
68
|
+
|
|
69
|
+
## Valid Combinations
|
|
70
|
+
|
|
71
|
+
| Combination | Effect |
|
|
72
|
+
|-------------|--------|
|
|
73
|
+
| `eco ralph` | Ralph persistence with cheaper agents |
|
|
74
|
+
| `eco ultrawork` | Parallel execution with cheaper agents |
|
|
75
|
+
| `eco autopilot` | Autonomous execution with cost savings |
|
|
76
|
+
|
|
77
|
+
## Invalid Combinations
|
|
78
|
+
|
|
79
|
+
| Combination | Why Invalid |
|
|
80
|
+
|-------------|-------------|
|
|
81
|
+
| `autopilot ultrapilot` | Both are standalone - use one |
|
|
82
|
+
| `ecomode` alone | Needs an execution mode to modify |
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Verification Tiers
|
|
2
|
+
|
|
3
|
+
Verification scales with task complexity to optimize cost while maintaining quality.
|
|
4
|
+
|
|
5
|
+
## Tier Definitions
|
|
6
|
+
|
|
7
|
+
| Tier | Criteria | Agent | Model | Evidence Required |
|
|
8
|
+
|------|----------|-------|-------|-------------------|
|
|
9
|
+
| **LIGHT** | <5 files, <100 lines, full test coverage | architect-low | haiku | lsp_diagnostics clean |
|
|
10
|
+
| **STANDARD** | Default (not LIGHT or THOROUGH) | architect-medium | sonnet | diagnostics + build pass |
|
|
11
|
+
| **THOROUGH** | >20 files OR architectural/security changes | architect | opus | Full review + all tests |
|
|
12
|
+
|
|
13
|
+
## Selection Interface
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
interface ChangeMetadata {
|
|
17
|
+
filesChanged: number;
|
|
18
|
+
linesChanged: number;
|
|
19
|
+
hasArchitecturalChanges: boolean;
|
|
20
|
+
hasSecurityImplications: boolean;
|
|
21
|
+
testCoverage: 'none' | 'partial' | 'full';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type VerificationTier = 'LIGHT' | 'STANDARD' | 'THOROUGH';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Selection Logic
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
IF hasSecurityImplications OR hasArchitecturalChanges:
|
|
31
|
+
→ THOROUGH (always for security/architecture)
|
|
32
|
+
ELIF filesChanged > 20:
|
|
33
|
+
→ THOROUGH (large scope)
|
|
34
|
+
ELIF filesChanged < 5 AND linesChanged < 100 AND testCoverage === 'full':
|
|
35
|
+
→ LIGHT (small, well-tested)
|
|
36
|
+
ELSE:
|
|
37
|
+
→ STANDARD (default)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Override Triggers
|
|
41
|
+
|
|
42
|
+
User keywords that override auto-detection:
|
|
43
|
+
|
|
44
|
+
| Keyword | Forces Tier |
|
|
45
|
+
|---------|-------------|
|
|
46
|
+
| "thorough", "careful", "important", "critical" | THOROUGH |
|
|
47
|
+
| "quick", "simple", "trivial", "minor" | LIGHT |
|
|
48
|
+
| Security-related file changes | THOROUGH (always) |
|
|
49
|
+
|
|
50
|
+
## Architectural Change Detection
|
|
51
|
+
|
|
52
|
+
Files that trigger `hasArchitecturalChanges`:
|
|
53
|
+
- `**/config.{ts,js,json}`
|
|
54
|
+
- `**/schema.{ts,prisma,sql}`
|
|
55
|
+
- `**/definitions.ts`
|
|
56
|
+
- `**/types.ts`
|
|
57
|
+
- `package.json`
|
|
58
|
+
- `tsconfig.json`
|
|
59
|
+
|
|
60
|
+
## Security Implication Detection
|
|
61
|
+
|
|
62
|
+
Path patterns that trigger `hasSecurityImplications`:
|
|
63
|
+
- `**/auth/**`
|
|
64
|
+
- `**/security/**`
|
|
65
|
+
- `**/permissions?.{ts,js}`
|
|
66
|
+
- `**/credentials?.{ts,js,json}`
|
|
67
|
+
- `**/secrets?.{ts,js,json,yml,yaml}`
|
|
68
|
+
- `**/tokens?.{ts,js,json}`
|
|
69
|
+
- `**/passwords?.{ts,js,json}`
|
|
70
|
+
- `**/oauth*`
|
|
71
|
+
- `**/jwt*`
|
|
72
|
+
- `**/.env*`
|
|
73
|
+
|
|
74
|
+
## Evidence Types
|
|
75
|
+
|
|
76
|
+
Required evidence for different claim types:
|
|
77
|
+
|
|
78
|
+
| Claim | Required Evidence |
|
|
79
|
+
|-------|-------------------|
|
|
80
|
+
| "Fixed" | Test showing it passes now |
|
|
81
|
+
| "Implemented" | lsp_diagnostics clean + build pass |
|
|
82
|
+
| "Refactored" | All tests still pass |
|
|
83
|
+
| "Debugged" | Root cause identified with file:line |
|
|
84
|
+
|
|
85
|
+
## Cost Comparison
|
|
86
|
+
|
|
87
|
+
| Tier | Relative Cost | Use Case |
|
|
88
|
+
|------|---------------|----------|
|
|
89
|
+
| LIGHT | 1x | Single-file bug fixes with tests |
|
|
90
|
+
| STANDARD | 5x | Multi-file feature additions |
|
|
91
|
+
| THOROUGH | 20x | Major refactoring, security changes |
|
|
92
|
+
|
|
93
|
+
Estimated savings: ~40% reduction in verification costs by using tiered system vs. always using THOROUGH.
|
|
94
|
+
|
|
95
|
+
## Usage in Modes
|
|
96
|
+
|
|
97
|
+
All persistence modes (ralph, autopilot, ultrapilot) should use the tier-selector before spawning verification agents:
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
import { selectVerificationTier, getVerificationAgent } from '../verification/tier-selector';
|
|
101
|
+
|
|
102
|
+
const tier = selectVerificationTier(changeMetadata);
|
|
103
|
+
const { agent, model } = getVerificationAgent(tier);
|
|
104
|
+
|
|
105
|
+
// Spawn appropriate verification agent
|
|
106
|
+
Task(subagent_type=`oh-my-claudecode:${agent}`, model, prompt="Verify...")
|
|
107
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-claude-sisyphus",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "Multi-agent orchestration system for Claude Code - Inspired by oh-my-opencode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,8 +33,9 @@
|
|
|
33
33
|
"LICENSE"
|
|
34
34
|
],
|
|
35
35
|
"scripts": {
|
|
36
|
-
"build": "tsc && node scripts/build-skill-bridge.mjs && node scripts/build-mcp-server.mjs",
|
|
36
|
+
"build": "tsc && node scripts/build-skill-bridge.mjs && node scripts/build-mcp-server.mjs && npm run compose-docs",
|
|
37
37
|
"build:bridge": "node scripts/build-skill-bridge.mjs",
|
|
38
|
+
"compose-docs": "node scripts/compose-docs.mjs",
|
|
38
39
|
"dev": "tsc --watch",
|
|
39
40
|
"start": "node dist/index.js",
|
|
40
41
|
"test": "vitest",
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
"sync-metadata:verify": "tsx scripts/sync-metadata.ts --verify",
|
|
48
49
|
"sync-metadata:dry-run": "tsx scripts/sync-metadata.ts --dry-run",
|
|
49
50
|
"prepare": "npm run build",
|
|
50
|
-
"prepublishOnly": "npm run build"
|
|
51
|
+
"prepublishOnly": "npm run build && npm run compose-docs"
|
|
51
52
|
},
|
|
52
53
|
"dependencies": {
|
|
53
54
|
"@anthropic-ai/claude-agent-sdk": "^0.1.0",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Documentation Composition Script
|
|
5
|
+
*
|
|
6
|
+
* Processes template files with {{INCLUDE:path}} syntax to compose
|
|
7
|
+
* final documentation from shared partials.
|
|
8
|
+
*
|
|
9
|
+
* Usage: node scripts/compose-docs.mjs
|
|
10
|
+
*
|
|
11
|
+
* Template syntax: {{INCLUDE:partials/agent-tiers.md}}
|
|
12
|
+
* Templates: docs/templates/*.template.md
|
|
13
|
+
* Output: docs/*.md (same name without .template)
|
|
14
|
+
* Partials also copied to docs/shared/ for direct reference.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { readFileSync, writeFileSync, readdirSync, mkdirSync, existsSync } from 'fs';
|
|
18
|
+
import { join, dirname } from 'path';
|
|
19
|
+
import { fileURLToPath } from 'url';
|
|
20
|
+
|
|
21
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
|
+
const docsDir = join(__dirname, '..', 'docs');
|
|
23
|
+
const partialsDir = join(docsDir, 'partials');
|
|
24
|
+
const sharedDir = join(docsDir, 'shared');
|
|
25
|
+
|
|
26
|
+
// Ensure directories exist
|
|
27
|
+
[partialsDir, sharedDir].forEach(dir => {
|
|
28
|
+
if (!existsSync(dir)) {
|
|
29
|
+
mkdirSync(dir, { recursive: true });
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// Copy partials to shared/ for direct reference by skills
|
|
34
|
+
if (existsSync(partialsDir)) {
|
|
35
|
+
const partials = readdirSync(partialsDir).filter(f => f.endsWith('.md'));
|
|
36
|
+
|
|
37
|
+
for (const partial of partials) {
|
|
38
|
+
const content = readFileSync(join(partialsDir, partial), 'utf-8');
|
|
39
|
+
writeFileSync(join(sharedDir, partial), content);
|
|
40
|
+
}
|
|
41
|
+
console.log(`Synced ${readdirSync(partialsDir).filter(f => f.endsWith('.md')).length} partials to shared/`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
console.log('Documentation composition complete.');
|