claudecode-omc 4.9.3 → 4.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -5
- package/package.json +1 -1
- package/skills/conductor/SKILL.md +197 -166
- package/skills/planning-with-files/scripts/check-complete.ps1 +28 -28
- package/skills/planning-with-files/scripts/init-session.ps1 +31 -31
- package/dist/__tests__/marketplace-metadata.test.d.ts +0 -2
- package/dist/__tests__/marketplace-metadata.test.d.ts.map +0 -1
- package/dist/__tests__/marketplace-metadata.test.js +0 -20
- package/dist/__tests__/marketplace-metadata.test.js.map +0 -1
- package/skills/skill-creator/SKILL.md +0 -311
- package/skills/skill-creator/references/upstream-anthropic-skill-creator.md +0 -485
- package/skills/skill-debugger/README.md +0 -52
package/README.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
English | [한국어](README.ko.md) | [中文](README.zh.md) | [日本語](README.ja.md) | [Español](README.es.md) | [Tiếng Việt](README.vi.md) | [Português](README.pt.md)
|
|
2
2
|
|
|
3
|
+
> **Note:** This is a fork of [oh-my-claudecode](https://github.com/Yeachan-Heo/oh-my-claudecode) by [@Yeachan-Heo](https://github.com/Yeachan-Heo). This fork includes custom modifications and enhancements.
|
|
4
|
+
|
|
3
5
|
# oh-my-claudecode
|
|
4
6
|
|
|
5
7
|
[](https://www.npmjs.com/package/oh-my-claude-sisyphus)
|
|
6
8
|
[](https://www.npmjs.com/package/oh-my-claude-sisyphus)
|
|
7
|
-
[](https://github.com/materialofair/oh-my-claudecode/stargazers)
|
|
8
10
|
[](https://opensource.org/licenses/MIT)
|
|
9
|
-
[](https://github.com/sponsors/
|
|
11
|
+
[](https://github.com/sponsors/materialofair)
|
|
10
12
|
[](https://discord.gg/PUwSMR9XNk)
|
|
11
13
|
|
|
12
14
|
> **For Codex users:** Check out [oh-my-codex](https://github.com/Yeachan-Heo/oh-my-codex) — the same orchestration experience for OpenAI Codex CLI.
|
|
@@ -26,7 +28,7 @@ _Don't learn Claude Code. Just use OMC._
|
|
|
26
28
|
Marketplace/plugin install (recommended for most Claude Code users):
|
|
27
29
|
|
|
28
30
|
```bash
|
|
29
|
-
/plugin marketplace add https://github.com/
|
|
31
|
+
/plugin marketplace add https://github.com/materialofair/oh-my-claudecode
|
|
30
32
|
/plugin install oh-my-claudecode
|
|
31
33
|
```
|
|
32
34
|
|
|
@@ -457,13 +459,13 @@ Top personal non-fork, non-archived repos from all-time OMC contributors (100+ G
|
|
|
457
459
|
|
|
458
460
|
## Star History
|
|
459
461
|
|
|
460
|
-
[](https://www.star-history.com/#materialofair/oh-my-claudecode&type=date&legend=top-left)
|
|
461
463
|
|
|
462
464
|
## 💖 Support This Project
|
|
463
465
|
|
|
464
466
|
If Oh-My-ClaudeCode helps your workflow, consider sponsoring:
|
|
465
467
|
|
|
466
|
-
[](https://github.com/sponsors/
|
|
468
|
+
[](https://github.com/sponsors/materialofair)
|
|
467
469
|
|
|
468
470
|
### Why sponsor?
|
|
469
471
|
|
package/package.json
CHANGED
|
@@ -1,200 +1,231 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: conductor
|
|
3
|
-
description:
|
|
3
|
+
description: Use when user wants durable Context->Spec->Plan->Implement tracks ('conductor', 'structured workflow', 'track this', 'context then plan'). Creates and governs `.omc/conductor/` artifacts for Claude Code multi-session delivery.
|
|
4
|
+
argument-hint: "<subcommand | track-goal>"
|
|
5
|
+
level: 4
|
|
4
6
|
---
|
|
5
7
|
|
|
8
|
+
# Conductor
|
|
9
|
+
|
|
6
10
|
<Purpose>
|
|
7
|
-
Conductor
|
|
11
|
+
Conductor is a durable track-management workflow for Claude Code. It preserves long-lived context on disk, turns ambiguous requests into spec+plan artifacts, and controls implementation/review so work can safely span multiple sessions.
|
|
12
|
+
|
|
13
|
+
Primary loop:
|
|
14
|
+
`Setup -> Track -> Spec -> Plan -> Implement -> Review -> Reconcile`
|
|
8
15
|
</Purpose>
|
|
9
16
|
|
|
10
17
|
<Use_When>
|
|
11
|
-
- User
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
- Project needs clear documentation of what's being built and why
|
|
18
|
+
- User explicitly asks for `conductor`, `structured workflow`, or `track this`
|
|
19
|
+
- Work needs persistent artifacts and traceability across sessions
|
|
20
|
+
- Feature scope is large enough that spec and plan should be reviewed before coding
|
|
21
|
+
- Team needs deterministic progress reporting and reversible checkpoints
|
|
16
22
|
</Use_When>
|
|
17
23
|
|
|
18
24
|
<Do_Not_Use_When>
|
|
19
|
-
-
|
|
20
|
-
- User wants
|
|
21
|
-
-
|
|
22
|
-
- User wants to explore options or brainstorm -- use `plan` skill instead
|
|
23
|
-
- User wants self-correcting execution loops -- use `ralph` instead
|
|
25
|
+
- Small one-off bugfix or single-file change (use direct executor flow)
|
|
26
|
+
- User wants immediate end-to-end autonomous build (use `autopilot`)
|
|
27
|
+
- User is still exploring alternatives with no commitment to tracked artifacts (use `omc-plan`/`ralplan` first)
|
|
24
28
|
</Do_Not_Use_When>
|
|
25
29
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
<Compatibility>
|
|
31
|
+
This skill is aligned to the stronger Conductor protocol in `oh-my-codex` and adapted to Claude runtime primitives.
|
|
32
|
+
|
|
33
|
+
Preserved Conductor invariants:
|
|
34
|
+
- Durable context is on disk, not only in chat memory
|
|
35
|
+
- Work is represented as tracks
|
|
36
|
+
- Important tracks carry both spec and plan artifacts
|
|
37
|
+
- Review is a first-class stage before closure
|
|
38
|
+
|
|
39
|
+
Claude-specific adaptation:
|
|
40
|
+
- Use `Task(subagent_type="oh-my-claudecode:...")` for delegation
|
|
41
|
+
- Use `.omc/conductor/` paths used by OMC hooks
|
|
42
|
+
- Use `AskUserQuestion` for gated approvals when user decisions are required
|
|
43
|
+
</Compatibility>
|
|
29
44
|
|
|
30
45
|
<Execution_Policy>
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
46
|
+
- Keep a single active track by default unless user explicitly asks for parallel tracks
|
|
47
|
+
- Retrieval-first: read repository facts before proposing architecture or implementation
|
|
48
|
+
- Plan is the execution source of truth; do not silently drift from accepted plan
|
|
49
|
+
- Prefer minimal, reversible edits and checkpoint after each completed task cluster
|
|
50
|
+
- If tool calls fail, stop that phase, report blocker, and avoid speculative continuation
|
|
36
51
|
</Execution_Policy>
|
|
37
52
|
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
5. **Review Phase**: User reviews plan before implementation
|
|
67
|
-
- Subcommand: `review`
|
|
68
|
-
- Display plan content for user review
|
|
69
|
-
- User can approve, request changes, or revert
|
|
70
|
-
- Provides checkpoint before execution
|
|
71
|
-
|
|
72
|
-
6. **Implementation Phase**: Execute the plan with verification
|
|
73
|
-
- Subcommand: `implement`
|
|
74
|
-
- Executor agents (Haiku/Sonnet/Opus) based on task complexity
|
|
75
|
-
- Includes test execution and verification
|
|
76
|
-
- State transition: `phase: "plan"` -> `phase: "implement"`
|
|
77
|
-
|
|
78
|
-
7. **Status Check**: View current phase and progress
|
|
79
|
-
- Subcommand: `status`
|
|
80
|
-
- Shows current phase, files created, and next steps
|
|
81
|
-
- No state changes
|
|
82
|
-
|
|
83
|
-
8. **Revert**: Go back to previous phase
|
|
84
|
-
- Subcommand: `revert`
|
|
85
|
-
- Moves back one phase in the workflow
|
|
86
|
-
- Preserves existing outputs for reference
|
|
87
|
-
</Steps>
|
|
88
|
-
|
|
89
|
-
<Tool_Usage>
|
|
90
|
-
- Use `state_write` and `state_read` with mode `'conductor'` for phase tracking
|
|
91
|
-
- Store all outputs in `.omc/conductor/` directory (context.md, spec.md, plan.md)
|
|
92
|
-
- Delegate to specialist agents: `analyst`, `architect`, `planner`, `executor`
|
|
93
|
-
- Use model routing: `opus` for spec/plan phases, `sonnet/haiku` for implementation
|
|
94
|
-
- Optional: Use `ask_codex` for validation if MCP is configured
|
|
95
|
-
</Tool_Usage>
|
|
53
|
+
<Directory_Contract>
|
|
54
|
+
Use this Claude/OMC file layout:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
.omc/conductor/
|
|
58
|
+
conductor-state.json
|
|
59
|
+
context/
|
|
60
|
+
product.md
|
|
61
|
+
tech-stack.md
|
|
62
|
+
workflow.md
|
|
63
|
+
styleguides/*.md
|
|
64
|
+
specs/
|
|
65
|
+
<track-slug>.md
|
|
66
|
+
plans/
|
|
67
|
+
<track-slug>.md
|
|
68
|
+
reviews/
|
|
69
|
+
<track-slug>.md
|
|
70
|
+
research/
|
|
71
|
+
<track-slug>/
|
|
72
|
+
state.json
|
|
73
|
+
findings.md
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
State reference:
|
|
77
|
+
- `conductor-state.json` stores `active`, `activeTrack`, `tracks`, context pointers, and metadata.
|
|
78
|
+
- Track phases should stay consistent with runtime types: `setup | idle | spec | planning | implementing | reviewing | complete`.
|
|
79
|
+
</Directory_Contract>
|
|
96
80
|
|
|
97
81
|
<Subcommand_Routing>
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
- `
|
|
101
|
-
- `
|
|
102
|
-
- `
|
|
103
|
-
- `
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
- `
|
|
107
|
-
- `
|
|
108
|
-
|
|
109
|
-
Each subcommand validates the current phase and ensures proper sequencing.
|
|
82
|
+
Native command hooks currently support:
|
|
83
|
+
- `setup`
|
|
84
|
+
- `track <title> [description]`
|
|
85
|
+
- `plan <slug>`
|
|
86
|
+
- `review <slug>`
|
|
87
|
+
- `status [slug]`
|
|
88
|
+
|
|
89
|
+
Conductor workflow operations (can be executed by skill protocol even if no dedicated slash command exists):
|
|
90
|
+
- `implement <slug|active>`
|
|
91
|
+
- `refresh [scope]`
|
|
92
|
+
- `revert <slug>`
|
|
110
93
|
</Subcommand_Routing>
|
|
111
94
|
|
|
112
|
-
<
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
95
|
+
<Workflow>
|
|
96
|
+
1. **Setup / Resume**
|
|
97
|
+
- If `conductor-state.json` exists and `active=true`, resume.
|
|
98
|
+
- Otherwise initialize `.omc/conductor/` and context documents.
|
|
99
|
+
- Bootstrap tech stack from `.omc/project-memory.json` when available.
|
|
100
|
+
|
|
101
|
+
2. **Track Selection**
|
|
102
|
+
- If user provided slug/title, resolve it.
|
|
103
|
+
- Else choose active track first, otherwise earliest non-complete track.
|
|
104
|
+
- If no track exists, create one from user goal (`track` stage).
|
|
105
|
+
|
|
106
|
+
3. **Preflight Context**
|
|
107
|
+
- Read in order: context docs -> active spec -> active plan -> relevant code/config.
|
|
108
|
+
- Output compact brief: goal, accepted constraints, current phase, next task.
|
|
109
|
+
|
|
110
|
+
4. **Spec Generation**
|
|
111
|
+
- Delegate to `analyst` (sonnet/opus) for requirements structure.
|
|
112
|
+
- Delegate to `architect` (opus) for system boundaries and risks.
|
|
113
|
+
- Persist to `.omc/conductor/specs/<slug>.md`.
|
|
114
|
+
|
|
115
|
+
5. **Plan Generation**
|
|
116
|
+
- Delegate to `planner` (sonnet/opus) for phased tasks.
|
|
117
|
+
- Require testable acceptance criteria and explicit verification commands.
|
|
118
|
+
- Persist to `.omc/conductor/plans/<slug>.md`.
|
|
119
|
+
|
|
120
|
+
6. **Implement**
|
|
121
|
+
- Execute tasks in small slices via `executor`.
|
|
122
|
+
- Keep plan checkboxes in sync (`[ ]`, `[~]`, `[x]`).
|
|
123
|
+
- Run deterministic checks per slice (lint/type/test/build as applicable).
|
|
124
|
+
|
|
125
|
+
7. **Review**
|
|
126
|
+
- Use `code-reviewer` and `verifier` as default review pair.
|
|
127
|
+
- Add `security-reviewer` when auth, secrets, trust-boundaries, or user input changed.
|
|
128
|
+
- Persist verdict to `.omc/conductor/reviews/<slug>.md`.
|
|
129
|
+
|
|
130
|
+
8. **Reconcile / Close**
|
|
131
|
+
- If review fails, reopen tasks and return to implement.
|
|
132
|
+
- If review passes, mark track complete and record concise evidence.
|
|
133
|
+
</Workflow>
|
|
134
|
+
|
|
135
|
+
<Research_Integration>
|
|
136
|
+
When uncertainty is high (new SDKs, conflicting docs, unknown architecture edges), run a research pass before locking spec/plan.
|
|
137
|
+
|
|
138
|
+
Trigger examples:
|
|
139
|
+
- External dependency behavior changed recently
|
|
140
|
+
- Two plausible architectural options with unclear tradeoffs
|
|
141
|
+
- Security/compliance requirement needs primary-source confirmation
|
|
142
|
+
|
|
143
|
+
Research protocol (adapted from `research` skill):
|
|
144
|
+
1. **Decompose** into 3-5 stages.
|
|
145
|
+
2. **Parallel execute** stage analysis with `scientist` agents (max 5 concurrent).
|
|
146
|
+
3. **Verify** contradictions; output `[VERIFIED]` or `[CONFLICTS:<list>]`.
|
|
147
|
+
4. **Synthesize** into a decision note appended to spec/plan.
|
|
148
|
+
|
|
149
|
+
Persist research artifacts:
|
|
150
|
+
- `.omc/conductor/research/<track-slug>/state.json`
|
|
151
|
+
- `.omc/conductor/research/<track-slug>/findings.md`
|
|
152
|
+
</Research_Integration>
|
|
153
|
+
|
|
154
|
+
<Research_Evidence_Format>
|
|
155
|
+
Use structured evidence blocks:
|
|
156
|
+
|
|
157
|
+
```text
|
|
158
|
+
[FINDING:<id>] <title>
|
|
159
|
+
<analysis>
|
|
160
|
+
[/FINDING]
|
|
161
|
+
|
|
162
|
+
[EVIDENCE:<id>]
|
|
163
|
+
- Source: <url or file>
|
|
164
|
+
- Date: <YYYY-MM-DD>
|
|
165
|
+
- Relevance: <why it matters>
|
|
166
|
+
[/EVIDENCE]
|
|
167
|
+
|
|
168
|
+
[CONFIDENCE:HIGH|MEDIUM|LOW]
|
|
169
|
+
<brief rationale>
|
|
170
|
+
```
|
|
117
171
|
|
|
172
|
+
Quality gates:
|
|
173
|
+
- Every `[FINDING]` must include `[EVIDENCE]`
|
|
174
|
+
- Unsupported claims must be downgraded or removed
|
|
175
|
+
- Unresolved contradictions must remain explicit
|
|
176
|
+
</Research_Evidence_Format>
|
|
177
|
+
|
|
178
|
+
<Agent_Routing>
|
|
179
|
+
- Setup/context scan: `explore` (haiku/sonnet)
|
|
180
|
+
- Requirements/spec: `analyst` + `architect` (sonnet/opus)
|
|
181
|
+
- Plan refinement: `planner` + `critic` (sonnet/opus)
|
|
182
|
+
- Implementation: `executor` (sonnet by default)
|
|
183
|
+
- Test strategy/fixes: `test-engineer` (sonnet)
|
|
184
|
+
- Review/validation: `code-reviewer` + `verifier` (+ `security-reviewer` when needed)
|
|
185
|
+
- Research branches: `scientist` (haiku/sonnet/opus by tier)
|
|
186
|
+
</Agent_Routing>
|
|
187
|
+
|
|
188
|
+
<Status_Contract>
|
|
189
|
+
`status` output should always include:
|
|
190
|
+
- active track
|
|
191
|
+
- track phase
|
|
192
|
+
- progress summary (completed/in-progress/pending)
|
|
193
|
+
- next concrete action
|
|
194
|
+
- blockers (or `None`)
|
|
195
|
+
- latest review verdict (if present)
|
|
196
|
+
- research verification status (if research was run)
|
|
197
|
+
</Status_Contract>
|
|
198
|
+
|
|
199
|
+
<Failure_Handling>
|
|
200
|
+
- If setup/context files are missing: stop and run setup first
|
|
201
|
+
- If plan is missing: do not implement; return to plan phase
|
|
202
|
+
- If verification fails: reopen related tasks and continue implementation
|
|
203
|
+
- If evidence is insufficient in research mode: emit `[PROMISE:RESEARCH_BLOCKED]` with blocker details
|
|
204
|
+
</Failure_Handling>
|
|
205
|
+
|
|
206
|
+
<Examples>
|
|
118
207
|
<Good>
|
|
119
|
-
User: "conductor track
|
|
120
|
-
Why good:
|
|
208
|
+
User: "conductor track payment-webhook-retry and plan it"
|
|
209
|
+
Why good: Explicit track+planning request with durable artifacts.
|
|
121
210
|
</Good>
|
|
122
211
|
|
|
123
212
|
<Good>
|
|
124
|
-
User: "conductor
|
|
125
|
-
Why good:
|
|
213
|
+
User: "conductor for this multi-service auth refactor; do research first"
|
|
214
|
+
Why good: High-uncertainty, multi-session scope benefits from research-integrated conductor flow.
|
|
126
215
|
</Good>
|
|
127
216
|
|
|
128
217
|
<Bad>
|
|
129
|
-
User: "conductor fix
|
|
130
|
-
Why bad:
|
|
131
|
-
</Bad>
|
|
132
|
-
|
|
133
|
-
<Bad>
|
|
134
|
-
User: "conductor build me a TODO app"
|
|
135
|
-
Why bad: While conductor could handle this, "build me" pattern is better suited for autopilot's autonomous execution.
|
|
218
|
+
User: "conductor fix typo in README"
|
|
219
|
+
Why bad: Tiny one-off task; overhead exceeds benefit.
|
|
136
220
|
</Bad>
|
|
137
221
|
</Examples>
|
|
138
222
|
|
|
139
|
-
<State_Schema>
|
|
140
|
-
Conductor state stored in `.omc/state/conductor/conductor-state.json`:
|
|
141
|
-
|
|
142
|
-
```json
|
|
143
|
-
{
|
|
144
|
-
"active": true,
|
|
145
|
-
"phase": "context" | "spec" | "plan" | "implement" | "complete",
|
|
146
|
-
"startedAt": "ISO timestamp",
|
|
147
|
-
"context_file": ".omc/conductor/context.md",
|
|
148
|
-
"spec_file": ".omc/conductor/spec.md",
|
|
149
|
-
"plan_file": ".omc/conductor/plan.md",
|
|
150
|
-
"implementation_started": false,
|
|
151
|
-
"last_subcommand": "string",
|
|
152
|
-
"session_id": "optional session ID"
|
|
153
|
-
}
|
|
154
|
-
```
|
|
155
|
-
</State_Schema>
|
|
156
|
-
|
|
157
223
|
<Final_Checklist>
|
|
158
|
-
- [ ]
|
|
159
|
-
- [ ]
|
|
160
|
-
- [ ]
|
|
161
|
-
- [ ] Implementation
|
|
162
|
-
- [ ]
|
|
163
|
-
- [ ]
|
|
164
|
-
- [ ]
|
|
224
|
+
- [ ] Conductor state initialized or resumed correctly
|
|
225
|
+
- [ ] Active track resolved deterministically
|
|
226
|
+
- [ ] Spec and plan artifacts exist and are current
|
|
227
|
+
- [ ] Implementation updates map back to plan tasks
|
|
228
|
+
- [ ] Review artifacts recorded with clear verdict
|
|
229
|
+
- [ ] Research evidence attached for high-uncertainty decisions
|
|
230
|
+
- [ ] Status reports actionable next step and blockers
|
|
165
231
|
</Final_Checklist>
|
|
166
|
-
|
|
167
|
-
<Advanced>
|
|
168
|
-
## Phase Transitions
|
|
169
|
-
|
|
170
|
-
Conductor enforces explicit phase ordering:
|
|
171
|
-
- `context` -> `spec` (via `spec` subcommand)
|
|
172
|
-
- `spec` -> `plan` (via `plan` subcommand)
|
|
173
|
-
- `plan` -> `implement` (via `implement` subcommand)
|
|
174
|
-
- `implement` -> `complete` (automatic on success)
|
|
175
|
-
|
|
176
|
-
Use `revert` to go backwards if needed.
|
|
177
|
-
|
|
178
|
-
## Resume Support
|
|
179
|
-
|
|
180
|
-
If conductor is interrupted, invoke the skill again with the same working directory. Conductor will detect existing state and resume from the last completed phase.
|
|
181
|
-
|
|
182
|
-
## Integration with Other Modes
|
|
183
|
-
|
|
184
|
-
Conductor is non-exclusive and can run alongside other modes like `ralph`, `ultrawork`, or `ecomode`. It provides the workflow structure while other modes can be used during the implementation phase.
|
|
185
|
-
|
|
186
|
-
## Best Practices
|
|
187
|
-
|
|
188
|
-
1. **Gather context thoroughly**: Use multiple `track` calls to build comprehensive context before generating spec
|
|
189
|
-
2. **Review before implementing**: Always review the plan using `review` subcommand before running `implement`
|
|
190
|
-
3. **Incremental refinement**: Use `revert` if spec or plan needs adjustment based on new information
|
|
191
|
-
4. **Document constraints**: Include technical constraints, dependencies, and non-functional requirements in context
|
|
192
|
-
|
|
193
|
-
## Troubleshooting
|
|
194
|
-
|
|
195
|
-
**Stuck in a phase?** Use `conductor status` to see current phase and next available subcommands.
|
|
196
|
-
|
|
197
|
-
**Need to change the spec?** Use `conductor revert` to go back to context phase, add more context with `track`, then regenerate spec.
|
|
198
|
-
|
|
199
|
-
**Implementation failing?** Review `.omc/conductor/plan.md` for potential issues. Consider reverting to plan phase to refine the approach.
|
|
200
|
-
</Advanced>
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
param(
|
|
2
|
-
[string]$PlanFile = "task_plan.md"
|
|
3
|
-
)
|
|
4
|
-
|
|
5
|
-
if (-not (Test-Path $PlanFile)) {
|
|
6
|
-
Write-Host "ERROR: $PlanFile not found"
|
|
7
|
-
exit 1
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
$content = Get-Content $PlanFile -Raw
|
|
11
|
-
$total = ([regex]::Matches($content, "### Phase")).Count
|
|
12
|
-
$complete = ([regex]::Matches($content, "\*\*Status:\*\* complete")).Count
|
|
13
|
-
$inProgress = ([regex]::Matches($content, "\*\*Status:\*\* in_progress")).Count
|
|
14
|
-
$pending = ([regex]::Matches($content, "\*\*Status:\*\* pending")).Count
|
|
15
|
-
|
|
16
|
-
Write-Host "Total phases: $total"
|
|
17
|
-
Write-Host "Complete: $complete"
|
|
18
|
-
Write-Host "In progress: $inProgress"
|
|
19
|
-
Write-Host "Pending: $pending"
|
|
20
|
-
|
|
21
|
-
if ($total -gt 0 -and $complete -eq $total) {
|
|
22
|
-
Write-Host "ALL PHASES COMPLETE"
|
|
23
|
-
exit 0
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
Write-Host "TASK NOT COMPLETE"
|
|
27
|
-
exit 1
|
|
28
|
-
|
|
1
|
+
param(
|
|
2
|
+
[string]$PlanFile = "task_plan.md"
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
if (-not (Test-Path $PlanFile)) {
|
|
6
|
+
Write-Host "ERROR: $PlanFile not found"
|
|
7
|
+
exit 1
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
$content = Get-Content $PlanFile -Raw
|
|
11
|
+
$total = ([regex]::Matches($content, "### Phase")).Count
|
|
12
|
+
$complete = ([regex]::Matches($content, "\*\*Status:\*\* complete")).Count
|
|
13
|
+
$inProgress = ([regex]::Matches($content, "\*\*Status:\*\* in_progress")).Count
|
|
14
|
+
$pending = ([regex]::Matches($content, "\*\*Status:\*\* pending")).Count
|
|
15
|
+
|
|
16
|
+
Write-Host "Total phases: $total"
|
|
17
|
+
Write-Host "Complete: $complete"
|
|
18
|
+
Write-Host "In progress: $inProgress"
|
|
19
|
+
Write-Host "Pending: $pending"
|
|
20
|
+
|
|
21
|
+
if ($total -gt 0 -and $complete -eq $total) {
|
|
22
|
+
Write-Host "ALL PHASES COMPLETE"
|
|
23
|
+
exit 0
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
Write-Host "TASK NOT COMPLETE"
|
|
27
|
+
exit 1
|
|
28
|
+
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
param(
|
|
2
|
-
[string]$ProjectName = "project"
|
|
3
|
-
)
|
|
4
|
-
|
|
5
|
-
$date = Get-Date -Format "yyyy-MM-dd"
|
|
6
|
-
Write-Host "Initializing planning files for: $ProjectName"
|
|
7
|
-
|
|
8
|
-
if (-not (Test-Path "task_plan.md")) {
|
|
9
|
-
Copy-Item "skills/planning-with-files/templates/task_plan.md" "task_plan.md"
|
|
10
|
-
Write-Host "Created task_plan.md"
|
|
11
|
-
} else {
|
|
12
|
-
Write-Host "task_plan.md already exists, skipping"
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
if (-not (Test-Path "findings.md")) {
|
|
16
|
-
Copy-Item "skills/planning-with-files/templates/findings.md" "findings.md"
|
|
17
|
-
Write-Host "Created findings.md"
|
|
18
|
-
} else {
|
|
19
|
-
Write-Host "findings.md already exists, skipping"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if (-not (Test-Path "progress.md")) {
|
|
23
|
-
Copy-Item "skills/planning-with-files/templates/progress.md" "progress.md"
|
|
24
|
-
(Get-Content "progress.md") -replace "\[DATE\]", $date | Set-Content "progress.md"
|
|
25
|
-
Write-Host "Created progress.md"
|
|
26
|
-
} else {
|
|
27
|
-
Write-Host "progress.md already exists, skipping"
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
Write-Host "Planning files initialized."
|
|
31
|
-
|
|
1
|
+
param(
|
|
2
|
+
[string]$ProjectName = "project"
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
$date = Get-Date -Format "yyyy-MM-dd"
|
|
6
|
+
Write-Host "Initializing planning files for: $ProjectName"
|
|
7
|
+
|
|
8
|
+
if (-not (Test-Path "task_plan.md")) {
|
|
9
|
+
Copy-Item "skills/planning-with-files/templates/task_plan.md" "task_plan.md"
|
|
10
|
+
Write-Host "Created task_plan.md"
|
|
11
|
+
} else {
|
|
12
|
+
Write-Host "task_plan.md already exists, skipping"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (-not (Test-Path "findings.md")) {
|
|
16
|
+
Copy-Item "skills/planning-with-files/templates/findings.md" "findings.md"
|
|
17
|
+
Write-Host "Created findings.md"
|
|
18
|
+
} else {
|
|
19
|
+
Write-Host "findings.md already exists, skipping"
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (-not (Test-Path "progress.md")) {
|
|
23
|
+
Copy-Item "skills/planning-with-files/templates/progress.md" "progress.md"
|
|
24
|
+
(Get-Content "progress.md") -replace "\[DATE\]", $date | Set-Content "progress.md"
|
|
25
|
+
Write-Host "Created progress.md"
|
|
26
|
+
} else {
|
|
27
|
+
Write-Host "progress.md already exists, skipping"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
Write-Host "Planning files initialized."
|
|
31
|
+
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace-metadata.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/marketplace-metadata.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { readFileSync } from 'fs';
|
|
3
|
-
import { dirname, join } from 'path';
|
|
4
|
-
import { fileURLToPath } from 'url';
|
|
5
|
-
function getPackageDir() {
|
|
6
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = dirname(__filename);
|
|
8
|
-
return join(__dirname, '..', '..');
|
|
9
|
-
}
|
|
10
|
-
describe('marketplace metadata', () => {
|
|
11
|
-
it('matches package.json version', () => {
|
|
12
|
-
const packageDir = getPackageDir();
|
|
13
|
-
const packageJson = JSON.parse(readFileSync(join(packageDir, 'package.json'), 'utf-8'));
|
|
14
|
-
const marketplaceJson = JSON.parse(readFileSync(join(packageDir, '.claude-plugin', 'marketplace.json'), 'utf-8'));
|
|
15
|
-
expect(marketplaceJson.version).toBe(packageJson.version);
|
|
16
|
-
expect(marketplaceJson.plugins).toHaveLength(1);
|
|
17
|
-
expect(marketplaceJson.plugins[0].version).toBe(packageJson.version);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=marketplace-metadata.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace-metadata.test.js","sourceRoot":"","sources":["../../src/__tests__/marketplace-metadata.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACxF,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAC9E,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|