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 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
  [![npm version](https://img.shields.io/npm/v/oh-my-claude-sisyphus?color=cb3837)](https://www.npmjs.com/package/oh-my-claude-sisyphus)
6
8
  [![npm downloads](https://img.shields.io/npm/dm/oh-my-claude-sisyphus?color=blue)](https://www.npmjs.com/package/oh-my-claude-sisyphus)
7
- [![GitHub stars](https://img.shields.io/github/stars/Yeachan-Heo/oh-my-claudecode?style=flat&color=yellow)](https://github.com/Yeachan-Heo/oh-my-claudecode/stargazers)
9
+ [![GitHub stars](https://img.shields.io/github/stars/materialofair/oh-my-claudecode?style=flat&color=yellow)](https://github.com/materialofair/oh-my-claudecode/stargazers)
8
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
9
- [![Sponsor](https://img.shields.io/badge/Sponsor-❤️-red?style=flat&logo=github)](https://github.com/sponsors/Yeachan-Heo)
11
+ [![Sponsor](https://img.shields.io/badge/Sponsor-❤️-red?style=flat&logo=github)](https://github.com/sponsors/materialofair)
10
12
  [![Discord](https://img.shields.io/discord/1452487457085063218?color=5865F2&logo=discord&logoColor=white&label=Discord)](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/Yeachan-Heo/oh-my-claudecode
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
- [![Star History Chart](https://api.star-history.com/svg?repos=Yeachan-Heo/oh-my-claudecode&type=date&legend=top-left)](https://www.star-history.com/#Yeachan-Heo/oh-my-claudecode&type=date&legend=top-left)
462
+ [![Star History Chart](https://api.star-history.com/svg?repos=materialofair/oh-my-claudecode&type=date&legend=top-left)](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
- [![Sponsor on GitHub](https://img.shields.io/badge/Sponsor-❤️-red?style=for-the-badge&logo=github)](https://github.com/sponsors/Yeachan-Heo)
468
+ [![Sponsor on GitHub](https://img.shields.io/badge/Sponsor-❤️-red?style=for-the-badge&logo=github)](https://github.com/sponsors/materialofair)
467
469
 
468
470
  ### Why sponsor?
469
471
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudecode-omc",
3
- "version": "4.9.3",
3
+ "version": "4.9.5",
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",
@@ -1,200 +1,231 @@
1
1
  ---
2
2
  name: conductor
3
- description: Structured Context -> Spec & Plan -> Implement workflow
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 provides a structured workflow for complex feature development through explicit phases: context gathering, specification creation, planning, and implementation. It emphasizes deliberate tracking of requirements and constraints before execution, making it ideal for large features where clarity and documentation are crucial.
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 wants a structured, tracked workflow with explicit spec and plan phases
12
- - User says "conductor", "structured workflow", "track this", "conductor setup"
13
- - Task requires careful context gathering before implementation
14
- - User wants to build up requirements incrementally before executing
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
- - User wants immediate autonomous execution -- use `autopilot` instead
20
- - User wants hands-off execution without tracking phases -- use `ultrapilot` or `swarm`
21
- - Task is a quick fix or single-file change -- use direct executor delegation
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
- <Why_This_Exists>
27
- Many complex features benefit from a deliberate, phased approach where context is gathered first, then a spec is created, then a plan is reviewed, and finally implementation begins. Conductor makes this workflow explicit and trackable, with clear subcommands for each phase and the ability to review, revert, or adjust at each step.
28
- </Why_This_Exists>
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
- - All context, specs, and plans are stored in `.omc/conductor/` directory
32
- - Each phase must be explicitly transitioned using subcommands
33
- - Users can review outputs at each phase before proceeding
34
- - Revert is available to go back to previous phases if needed
35
- - Implementation phase runs with full verification and QA checks
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
- <Steps>
39
- 1. **Setup Phase**: Initialize conductor state and directory structure
40
- - Subcommand: `setup` or `init`
41
- - Creates `.omc/conductor/` directory
42
- - Initializes `conductor-state.json` with `phase: "context"`
43
- - Output: State file confirming setup
44
-
45
- 2. **Context Gathering Phase**: Collect requirements, constraints, and domain knowledge
46
- - Subcommand: `track <context>`
47
- - User provides context incrementally using `track` subcommand
48
- - Each track call appends to `.omc/conductor/context.md`
49
- - Context includes: requirements, constraints, domain terms, dependencies, non-functional requirements
50
- - Output: Updated context file
51
-
52
- 3. **Specification Phase**: Generate structured specification from gathered context
53
- - Subcommand: `spec` or auto-transition when ready
54
- - Analyst (Opus): Extract and structure requirements from context
55
- - Architect (Opus): Define technical approach, components, and interfaces
56
- - Output: `.omc/conductor/spec.md`
57
- - State transition: `phase: "context"` -> `phase: "spec"`
58
-
59
- 4. **Planning Phase**: Create detailed implementation plan from specification
60
- - Subcommand: `plan` or auto-transition
61
- - Planner (Opus): Break down spec into implementation tasks
62
- - Architect (Opus): Validate plan against constraints
63
- - Output: `.omc/conductor/plan.md`
64
- - State transition: `phase: "spec"` -> `phase: "plan"`
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
- Conductor uses subcommand-based routing for all operations:
99
-
100
- - `setup` | `init` -> Initialize conductor state and directories
101
- - `track <context>` -> Add context to context.md
102
- - `spec` -> Generate specification from context (transition: context -> spec)
103
- - `plan` -> Generate implementation plan (transition: spec -> plan)
104
- - `review` -> Display plan for user review
105
- - `implement` -> Execute the plan (transition: plan -> implement)
106
- - `status` -> Show current phase and progress
107
- - `revert` -> Go back to previous phase
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
- <Examples>
113
- <Good>
114
- User: "conductor setup"
115
- Why good: Explicit initialization of conductor workflow. Sets up state and directory structure.
116
- </Good>
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: API needs to support real-time updates via WebSocket"
120
- Why good: Incremental context addition. User builds up requirements before spec generation.
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 structured workflow for building a multi-tenant authentication system"
125
- Why good: Clear indication of wanting structured approach for a complex feature.
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 the login bug"
130
- Why bad: Single bug fix doesn't benefit from multi-phase workflow. Use direct executor or ralph instead.
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
- - [ ] Setup completed with state file and directories created
159
- - [ ] Context gathered and documented in context.md
160
- - [ ] Specification generated from context and reviewed
161
- - [ ] Implementation plan created and approved
162
- - [ ] Implementation executed with tests passing
163
- - [ ] All outputs preserved in `.omc/conductor/` for reference
164
- - [ ] State file shows `phase: "complete"`
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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=marketplace-metadata.test.d.ts.map
@@ -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"}