claudecode-omc 5.0.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.local/hud/omc-hud.mjs +98 -0
  2. package/.local/skills/conductor/SKILL.md +397 -0
  3. package/bundled/manifest.json +2 -2
  4. package/package.json +2 -1
  5. package/scripts/sync-upstream.sh +30 -10
  6. package/src/config/paths.js +6 -1
  7. package/bundled/upstream/oh-my-claudecode/skills/conductor/SKILL.md +0 -231
  8. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/AGENTS.md +0 -0
  9. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/ai-commenting/SKILL.md +0 -0
  10. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/analyze/SKILL.md +0 -0
  11. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/bdd-generator/SKILL.md +0 -0
  12. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/e2e/SKILL.md +0 -0
  13. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/electron-driver/SKILL.md +0 -0
  14. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/electron-driver/scripts/driver-template.js +0 -0
  15. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/multi-model-research/SKILL.md +0 -0
  16. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/SKILL.md +0 -0
  17. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/examples.md +0 -0
  18. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/reference.md +0 -0
  19. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/check-complete.ps1 +0 -0
  20. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/check-complete.sh +0 -0
  21. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/init-session.ps1 +0 -0
  22. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/init-session.sh +0 -0
  23. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/session-catchup.py +0 -0
  24. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/templates/findings.md +0 -0
  25. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/templates/progress.md +0 -0
  26. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/templates/task_plan.md +0 -0
  27. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/quick-init-project/SKILL.md +0 -0
  28. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-creator/SKILL.md +0 -0
  29. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-creator/references/upstream-anthropic-skill-creator.md +0 -0
  30. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-debugger/README.md +0 -0
  31. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-debugger/SKILL.md +0 -0
  32. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/HOW_TO_USE.md +0 -0
  33. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/README.md +0 -0
  34. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/SKILL.md +0 -0
  35. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/analyzer.py +0 -0
  36. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/expected_output.json +0 -0
  37. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/sample_input.json +0 -0
  38. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-tester/README.md +0 -0
  39. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-tester/SKILL.md +0 -0
  40. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/start-dev/SKILL.md +0 -0
  41. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/tdd-generator/SKILL.md +0 -0
  42. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/test-coverage/SKILL.md +0 -0
  43. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/test-gen/SKILL.md +0 -0
  44. /package/{bundled/upstream/oh-my-claudecode → .local}/skills/ultraqa.md +0 -0
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * OMC HUD - Standalone Statusline Script
4
+ * Self-contained version for claudecode-omc (no upstream dist/hud dependency)
5
+ */
6
+
7
+ import { readFileSync, existsSync, readdirSync, statSync } from "node:fs";
8
+ import { homedir } from "node:os";
9
+ import { join } from "node:path";
10
+
11
+ function main() {
12
+ const home = homedir();
13
+ const configDir = process.env.CLAUDE_CONFIG_DIR || join(home, ".claude");
14
+
15
+ const parts = [];
16
+
17
+ // 1. Package version
18
+ const version = getPackageVersion();
19
+ if (version) parts.push(`omc v${version}`);
20
+
21
+ // 2. Skills count
22
+ const skillsDir = join(configDir, "skills");
23
+ const skillCount = countDirs(skillsDir);
24
+ if (skillCount > 0) parts.push(`${skillCount} skills`);
25
+
26
+ // 3. Agents count
27
+ const agentsDir = join(configDir, "agents");
28
+ const agentCount = countFiles(agentsDir, ".md");
29
+ if (agentCount > 0) parts.push(`${agentCount} agents`);
30
+
31
+ // 4. Active OMC state
32
+ const omcState = readOmcState();
33
+ if (omcState) parts.push(omcState);
34
+
35
+ // 5. Git branch
36
+ const branch = getGitBranch();
37
+ if (branch) parts.push(branch);
38
+
39
+ console.log(parts.join(" | ") || "omc ready");
40
+ }
41
+
42
+ function getPackageVersion() {
43
+ try {
44
+ // Check global npm install
45
+ const result = JSON.parse(readFileSync(
46
+ new URL("claudecode-omc/package.json", import.meta.resolve("claudecode-omc")),
47
+ "utf8"
48
+ ));
49
+ return result.version;
50
+ } catch {
51
+ // Fallback: check common locations
52
+ const candidates = [
53
+ join(homedir(), ".omc-manage", "package-version"),
54
+ ];
55
+ for (const p of candidates) {
56
+ try {
57
+ return readFileSync(p, "utf8").trim();
58
+ } catch { /* continue */ }
59
+ }
60
+ return null;
61
+ }
62
+ }
63
+
64
+ function countDirs(dir) {
65
+ try {
66
+ return readdirSync(dir, { withFileTypes: true })
67
+ .filter(e => e.isDirectory()).length;
68
+ } catch { return 0; }
69
+ }
70
+
71
+ function countFiles(dir, ext) {
72
+ try {
73
+ return readdirSync(dir)
74
+ .filter(f => f.endsWith(ext)).length;
75
+ } catch { return 0; }
76
+ }
77
+
78
+ function readOmcState() {
79
+ const stateFile = join(process.cwd(), ".omc", "state", "active-mode.json");
80
+ try {
81
+ const state = JSON.parse(readFileSync(stateFile, "utf8"));
82
+ if (state.mode) return state.mode;
83
+ } catch { /* no active mode */ }
84
+ return null;
85
+ }
86
+
87
+ function getGitBranch() {
88
+ const headFile = join(process.cwd(), ".git", "HEAD");
89
+ try {
90
+ const head = readFileSync(headFile, "utf8").trim();
91
+ if (head.startsWith("ref: refs/heads/")) {
92
+ return head.slice("ref: refs/heads/".length);
93
+ }
94
+ return head.slice(0, 7); // detached HEAD
95
+ } catch { return null; }
96
+ }
97
+
98
+ main();
@@ -0,0 +1,397 @@
1
+ ---
2
+ name: conductor
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
6
+ ---
7
+
8
+ # Conductor
9
+
10
+ <Purpose>
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(+approval) -> Plan(+approval) -> Implement -> Review -> Reconcile`
15
+ </Purpose>
16
+
17
+ <Use_When>
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
22
+ </Use_When>
23
+
24
+ <Do_Not_Use_When>
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)
28
+ </Do_Not_Use_When>
29
+
30
+ <Compatibility>
31
+ This skill is aligned to the Conductor protocol in `oh-my-codex`, adapted to Claude runtime primitives, and incorporates best practices from Gemini Conductor, Kiro SDD, and cc-sdd.
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>
44
+
45
+ <Execution_Policy>
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
51
+ - Spec must be approved before plan generation; plan must be approved before implementation
52
+ </Execution_Policy>
53
+
54
+ <Directory_Contract>
55
+ Tracks are organized **per-track** — all artifacts for one track live in a single directory.
56
+ This makes it easy to browse, archive, or delete a complete feature, and keeps related spec+plan+review co-located for agent context loading.
57
+
58
+ ### Primary directory (read-write)
59
+
60
+ ```text
61
+ .omc/conductor/
62
+ conductor-state.json # Index of all tracks (regenerable from track metadata)
63
+ context/ # Shared project context
64
+ product.md
65
+ tech-stack.md
66
+ workflow.md
67
+ styleguides/*.md
68
+ tracks/
69
+ <track-slug>/ # One directory per track
70
+ metadata.json # Track state, phase, git info, timestamps
71
+ spec.md # Requirements specification
72
+ plan.md # Phased implementation plan with task checkboxes
73
+ review.md # Review verdict and evidence (created at review phase)
74
+ research/ # Optional: created when uncertainty is high
75
+ state.json
76
+ findings.md
77
+ archive/ # Completed or cancelled tracks moved here
78
+ ```
79
+
80
+ ### External directory discovery (read-only import)
81
+
82
+ Conductor also scans for tracks created by other tools (e.g., Codex conductor) so that work can be continued across tools without manual copying.
83
+
84
+ **Scan paths** (checked in order during Setup/Resume):
85
+ 1. `.omc/conductor/tracks/` — primary, read-write
86
+ 2. `conductor/tracks/` — Codex conductor layout, **read-only** import
87
+
88
+ **Discovery rules:**
89
+ - On Setup/Resume, scan each path for subdirectories containing `metadata.json` or `spec.md`.
90
+ - Codex tracks use a slightly different metadata schema. Normalize on read:
91
+
92
+ | Codex field | Claude conductor field | Mapping |
93
+ |-------------|----------------------|---------|
94
+ | `track_id` | `track_id` | Direct |
95
+ | `type` (`"feature"`) | `type` | Direct |
96
+ | `status` (`"in_progress"`) | `status` → `phase` | `"in_progress"` → status `"in_progress"`, phase `"implementing"` |
97
+ | `description` | `description` | Direct |
98
+ | `created_at` / `updated_at` | `created_at` / `updated_at` | Direct |
99
+ | *(missing fields)* | `git_branch`, `git_start_commit`, `blocked_by`, `supersedes` | Default to `null` |
100
+
101
+ - Codex tracks that have `spec.md` + `plan.md` but no `metadata.json` are also recognized — infer metadata from filenames and plan checkbox state.
102
+ - External tracks appear in `status` output with an `[external]` tag and their source path.
103
+ - External tracks are **read-only by default**. To work on an external track, conductor copies it into `.omc/conductor/tracks/<slug>/` first (prompted via `AskUserQuestion`).
104
+
105
+ **Context fallback:** If `.omc/conductor/context/` is empty or missing during setup, also check:
106
+ - `conductor/product.md` → seed `context/product.md`
107
+ - `conductor/tech-stack.md` → seed `context/tech-stack.md`
108
+ - `conductor/workflow.md` → seed `context/workflow.md`
109
+ - `conductor/code_styleguides/*.md` → seed `context/styleguides/*.md`
110
+
111
+ ### conductor-state.json (index — regenerable from track metadata)
112
+
113
+ ```json
114
+ {
115
+ "active": true,
116
+ "activeTrack": "<track-slug>",
117
+ "tracks": {
118
+ "<track-slug>": {
119
+ "slug": "<track-slug>",
120
+ "title": "Human-readable title",
121
+ "type": "feature",
122
+ "status": "in_progress",
123
+ "phase": "implementing",
124
+ "source": "primary | external"
125
+ }
126
+ },
127
+ "_meta": {
128
+ "version": "2.0.0",
129
+ "lastWriteAt": "ISO8601",
130
+ "cwd": "/path/to/project"
131
+ }
132
+ }
133
+ ```
134
+
135
+ ### metadata.json (per-track — authoritative source of track state)
136
+
137
+ ```json
138
+ {
139
+ "track_id": "<track-slug>",
140
+ "title": "Human-readable title",
141
+ "type": "feature | bugfix | tech-debt | hotfix",
142
+ "status": "spec | planned | in_progress | review | done | cancelled",
143
+ "phase": "setup | spec | planning | implementing | reviewing | complete",
144
+ "description": "Short summary of the track goal",
145
+ "supersedes": null,
146
+ "blocked_by": null,
147
+ "git_branch": "conductor/<track-slug>",
148
+ "git_start_commit": "<sha>",
149
+ "current_task_index": 0,
150
+ "created_at": "ISO8601",
151
+ "updated_at": "ISO8601",
152
+ "completed_at": null
153
+ }
154
+ ```
155
+
156
+ ### State management rules
157
+
158
+ - `metadata.json` in each track is the **authoritative** source for that track's state.
159
+ - `conductor-state.json` is an **index/cache** that summarizes all tracks for quick lookup.
160
+ - If `conductor-state.json` is missing or stale, regenerate it from `tracks/*/metadata.json`.
161
+ - Track status transitions happen in `metadata.json` first, then sync to the index.
162
+ </Directory_Contract>
163
+
164
+ <Subcommand_Routing>
165
+ Native command hooks currently support:
166
+ - `setup`
167
+ - `track <title> [description]`
168
+ - `plan <slug>`
169
+ - `review <slug>`
170
+ - `status [slug]`
171
+
172
+ Conductor workflow operations (can be executed by skill protocol even if no dedicated slash command exists):
173
+ - `implement <slug|active>`
174
+ - `refresh [scope]`
175
+ - `revert <slug>`
176
+ - `archive <slug>`
177
+ </Subcommand_Routing>
178
+
179
+ <Workflow>
180
+ 1. **Setup / Resume**
181
+ - If `conductor-state.json` exists and `active=true`, resume from current phase.
182
+ - Otherwise initialize `.omc/conductor/` and context documents.
183
+ - Bootstrap `context/tech-stack.md` from `.omc/project-memory.json`, AGENTS.md, or package.json when available.
184
+ - Bootstrap `context/product.md` from README.md, existing conductor docs, or user input.
185
+ - **Cross-directory scan**: also check `conductor/` (Codex layout) for existing context docs and tracks (see External Directory Discovery).
186
+ - If context files in `.omc/conductor/context/` are empty but `conductor/product.md` etc. exist, seed from them.
187
+ - On resume: read all `tracks/*/metadata.json` from **both** primary and external paths to reconstruct index, output compact status brief.
188
+
189
+ 2. **Track Selection / Creation**
190
+ - If user provided slug/title, resolve it against tracks from **all** discovered paths (primary + external).
191
+ - If the resolved track is external, ask user whether to import it into `.omc/conductor/tracks/` before proceeding.
192
+ - Else choose active track first, otherwise earliest non-complete track.
193
+ - If no track exists, create one:
194
+ - Generate URL-safe slug from title (e.g., `payment-webhook-retry`)
195
+ - Create `tracks/<slug>/metadata.json` with initial phase `spec`
196
+ - Create git branch `conductor/<slug>` from current HEAD
197
+ - Update `conductor-state.json` index
198
+
199
+ 3. **Preflight Context**
200
+ - Read in order: context docs → active spec → active plan → relevant code/config.
201
+ - Output compact brief: goal, accepted constraints, current phase, next task, blockers.
202
+
203
+ 4. **Spec Generation** (phase: `spec`)
204
+ - Delegate to `analyst` (sonnet/opus) for requirements structure.
205
+ - Delegate to `architect` (opus) for system boundaries, risks, and acceptance criteria.
206
+ - Persist to `tracks/<slug>/spec.md`.
207
+ - **Gate: present spec to user for approval via `AskUserQuestion` before proceeding.**
208
+ - Update `metadata.json` status to `planned` only after approval.
209
+
210
+ 5. **Plan Generation** (phase: `planning`)
211
+ - Delegate to `planner` (sonnet/opus) for phased tasks.
212
+ - Plan must follow the phased task format (see Plan Format below).
213
+ - Require testable acceptance criteria and explicit verification commands.
214
+ - Persist to `tracks/<slug>/plan.md`.
215
+ - **Gate: present plan to user for approval via `AskUserQuestion` before proceeding.**
216
+ - Optionally delegate to `critic` (opus) for plan review before user approval.
217
+
218
+ 6. **Implement** (phase: `implementing`)
219
+ - Execute tasks sequentially per plan phase via `executor`.
220
+ - Before starting each task: update its checkbox from `[ ]` to `[~]` in plan.md.
221
+ - After completing each task: update its checkbox from `[~]` to `[x]` in plan.md.
222
+ - Run deterministic checks per task (lint/type/test/build as applicable).
223
+ - After completing the last task of each phase: run phase verification protocol.
224
+ - Update `metadata.json` field `current_task_index` as tasks progress.
225
+
226
+ 7. **Phase Verification** (within implement)
227
+ - After completing the last task of a phase:
228
+ 1. Announce phase completion and run automated checks.
229
+ 2. Prepare a manual verification checklist for user-visible behavior.
230
+ 3. Wait for explicit user feedback via `AskUserQuestion`.
231
+ 4. Create a checkpoint commit when the phase is accepted.
232
+ 5. Record the checkpoint SHA in plan.md.
233
+ - If verification fails: reopen relevant tasks, return to implement.
234
+
235
+ 8. **Review** (phase: `reviewing`)
236
+ - Use `code-reviewer` and `verifier` as default review pair.
237
+ - Add `security-reviewer` when auth, secrets, trust-boundaries, or user input changed.
238
+ - Compute git diff from `git_start_commit..HEAD` for the review scope.
239
+ - Persist verdict to `tracks/<slug>/review.md`.
240
+
241
+ 9. **Reconcile / Close**
242
+ - If review fails, reopen tasks and return to implement.
243
+ - If review passes, mark track complete and record concise evidence.
244
+ - Update `metadata.json`: `status: "done"`, `phase: "complete"`, `completed_at: ISO8601`.
245
+ - Optionally move completed track to `archive/` via `archive` subcommand.
246
+ </Workflow>
247
+
248
+ <Plan_Format>
249
+ Plans must follow phased task structure with checkboxes for progress tracking:
250
+
251
+ ```markdown
252
+ # Implementation Plan
253
+
254
+ ## Phase 1: <Phase Title>
255
+
256
+ - [ ] Task: <task description>
257
+ - [ ] <sub-step 1>
258
+ - [ ] <sub-step 2>
259
+ - [ ] Verify relevant tests pass
260
+
261
+ - [ ] Task: <task description>
262
+ - [ ] <sub-step 1>
263
+ - [ ] Verify relevant tests pass
264
+
265
+ - [ ] Task: Conductor - Phase Verification '<Phase Title>'
266
+
267
+ ## Phase 2: <Phase Title>
268
+ ...
269
+ ```
270
+
271
+ Rules:
272
+ - Each phase groups related tasks that can be verified together.
273
+ - Tasks use `[ ]` (pending), `[~]` (in-progress), `[x]` (done) checkboxes.
274
+ - Each phase ends with a verification gate task.
275
+ - Tasks should be ~1-3 hours of work each.
276
+ - Sub-steps are optional but encouraged for complex tasks.
277
+ </Plan_Format>
278
+
279
+ <Research_Integration>
280
+ When uncertainty is high (new SDKs, conflicting docs, unknown architecture edges), run a research pass before locking spec/plan.
281
+
282
+ Trigger examples:
283
+ - External dependency behavior changed recently
284
+ - Two plausible architectural options with unclear tradeoffs
285
+ - Security/compliance requirement needs primary-source confirmation
286
+
287
+ Research protocol:
288
+ 1. **Decompose** into 3-5 research stages.
289
+ 2. **Parallel execute** stage analysis with `scientist` agents (max 5 concurrent).
290
+ 3. **Verify** contradictions; output `[VERIFIED]` or `[CONFLICTS:<list>]`.
291
+ 4. **Synthesize** into a decision note appended to spec/plan.
292
+
293
+ Persist research artifacts inside the track directory:
294
+ - `tracks/<slug>/research/state.json`
295
+ - `tracks/<slug>/research/findings.md`
296
+ </Research_Integration>
297
+
298
+ <Research_Evidence_Format>
299
+ Use structured evidence blocks:
300
+
301
+ ```text
302
+ [FINDING:<id>] <title>
303
+ <analysis>
304
+ [/FINDING]
305
+
306
+ [EVIDENCE:<id>]
307
+ - Source: <url or file>
308
+ - Date: <YYYY-MM-DD>
309
+ - Relevance: <why it matters>
310
+ [/EVIDENCE]
311
+
312
+ [CONFIDENCE:HIGH|MEDIUM|LOW]
313
+ <brief rationale>
314
+ ```
315
+
316
+ Quality gates:
317
+ - Every `[FINDING]` must include `[EVIDENCE]`
318
+ - Unsupported claims must be downgraded or removed
319
+ - Unresolved contradictions must remain explicit
320
+ </Research_Evidence_Format>
321
+
322
+ <Agent_Routing>
323
+ - Setup/context scan: `explore` (haiku/sonnet)
324
+ - Requirements/spec: `analyst` + `architect` (sonnet/opus)
325
+ - Plan refinement: `planner` + `critic` (sonnet/opus)
326
+ - Implementation: `executor` (sonnet by default; use `model=opus` for complex tasks)
327
+ - Test strategy/fixes: `test-engineer` (sonnet)
328
+ - Review/validation: `code-reviewer` + `verifier` (+ `security-reviewer` when needed)
329
+ - Research branches: `scientist` (haiku/sonnet/opus by tier)
330
+ </Agent_Routing>
331
+
332
+ <Status_Contract>
333
+ `status` output should always include:
334
+ - active track (title + slug)
335
+ - track type and phase
336
+ - progress summary (phases completed / total, tasks completed/in-progress/pending)
337
+ - next concrete action
338
+ - blockers (or `None`)
339
+ - latest review verdict (if present)
340
+ - research verification status (if research was run)
341
+
342
+ Example:
343
+ ```
344
+ ## Conductor Status
345
+
346
+ **Active track:** payment-webhook-retry (feature)
347
+ **Phase:** implementing (3/4 phases done)
348
+ **Tasks:** 9/13 done, 1 in-progress, 3 pending
349
+ **Next:** Complete task "Add retry backoff logic" in Phase 4
350
+ **Blockers:** None
351
+ **Review:** Not yet started
352
+ ```
353
+ </Status_Contract>
354
+
355
+ <Failure_Handling>
356
+ - If setup/context files are missing: stop and run setup first
357
+ - If plan is missing: do not implement; return to plan phase
358
+ - If spec not approved: do not generate plan; wait for approval
359
+ - If verification fails: reopen related tasks and continue implementation
360
+ - If evidence is insufficient in research mode: emit `[PROMISE:RESEARCH_BLOCKED]` with blocker details
361
+ - If `conductor-state.json` is missing or corrupt: regenerate from `tracks/*/metadata.json`
362
+ </Failure_Handling>
363
+
364
+ <Examples>
365
+ <Good>
366
+ User: "conductor track payment-webhook-retry and plan it"
367
+ Why good: Explicit track+planning request with durable artifacts.
368
+ </Good>
369
+
370
+ <Good>
371
+ User: "conductor for this multi-service auth refactor; do research first"
372
+ Why good: High-uncertainty, multi-session scope benefits from research-integrated conductor flow.
373
+ </Good>
374
+
375
+ <Good>
376
+ User: "conductor status"
377
+ Why good: Resume from where the last session left off with a compact status overview.
378
+ </Good>
379
+
380
+ <Bad>
381
+ User: "conductor fix typo in README"
382
+ Why bad: Tiny one-off task; overhead exceeds benefit.
383
+ </Bad>
384
+ </Examples>
385
+
386
+ <Final_Checklist>
387
+ - [ ] Conductor state initialized or resumed correctly
388
+ - [ ] Active track resolved deterministically
389
+ - [ ] Spec approved by user before plan generation
390
+ - [ ] Plan approved by user before implementation
391
+ - [ ] Implementation updates map back to plan tasks (checkboxes in sync)
392
+ - [ ] Phase verification gates executed after each plan phase
393
+ - [ ] Review artifacts recorded with clear verdict
394
+ - [ ] Research evidence attached for high-uncertainty decisions
395
+ - [ ] Status reports actionable next step and blockers
396
+ - [ ] metadata.json is authoritative; conductor-state.json stays in sync
397
+ </Final_Checklist>
@@ -1,7 +1,7 @@
1
1
  {
2
- "bundledAt": "2026-04-01T05:18:29Z",
2
+ "bundledAt": "2026-04-01T08:05:10Z",
3
3
  "sources": {
4
- "oh-my-claudecode": { "artifacts": 22 },
4
+ "oh-my-claudecode": { "artifacts": 20 },
5
5
  "superpowers": { "artifacts": 8 }
6
6
  }
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudecode-omc",
3
- "version": "5.0.0",
3
+ "version": "5.2.0",
4
4
  "description": "Claude Code harness — best-practice skills, agents, hooks, and configs from multiple sources",
5
5
  "bin": {
6
6
  "omc-manage": "bin/omc-manage.js"
@@ -8,6 +8,7 @@
8
8
  "files": [
9
9
  "bin",
10
10
  "src",
11
+ ".local",
11
12
  "bundled",
12
13
  "scripts",
13
14
  "templates",
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- # Sync upstream oh-my-claudecode skills to .upstream/skills/
4
+ # Sync upstream oh-my-claudecode artifacts to .upstream/oh-my-claudecode/
5
5
  SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
6
6
  ROOT_DIR="$(dirname "$SCRIPT_DIR")"
7
- TARGET_DIR="$ROOT_DIR/.upstream/skills"
7
+ TARGET_DIR="$ROOT_DIR/.upstream/oh-my-claudecode"
8
8
  REMOTE="${1:-https://github.com/Yeachan-Heo/oh-my-claudecode.git}"
9
9
  REF="${2:-main}"
10
10
 
11
- echo "Syncing upstream skills..."
11
+ echo "Syncing upstream oh-my-claudecode..."
12
12
  echo " Remote: $REMOTE"
13
13
  echo " Ref: $REF"
14
14
  echo " Target: $TARGET_DIR"
@@ -18,13 +18,33 @@ trap 'rm -rf "$TMP_DIR"' EXIT
18
18
 
19
19
  git clone --depth 1 --branch "$REF" --single-branch "$REMOTE" "$TMP_DIR" 2>/dev/null
20
20
 
21
- if [ ! -d "$TMP_DIR/skills" ]; then
22
- echo "Error: No skills/ directory found in upstream"
23
- exit 1
21
+ # Sync skills
22
+ if [ -d "$TMP_DIR/skills" ]; then
23
+ rm -rf "$TARGET_DIR/skills"
24
+ cp -r "$TMP_DIR/skills" "$TARGET_DIR/skills"
25
+ COUNT=$(find "$TARGET_DIR/skills" -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ')
26
+ echo "Synced $COUNT skills"
27
+ else
28
+ echo "Warning: No skills/ directory found in upstream"
24
29
  fi
25
30
 
26
- rm -rf "$TARGET_DIR"
27
- cp -r "$TMP_DIR/skills" "$TARGET_DIR"
31
+ # Sync agents
32
+ if [ -d "$TMP_DIR/agents" ]; then
33
+ rm -rf "$TARGET_DIR/agents"
34
+ cp -r "$TMP_DIR/agents" "$TARGET_DIR/agents"
35
+ COUNT=$(find "$TARGET_DIR/agents" -mindepth 1 -maxdepth 1 -type f | wc -l | tr -d ' ')
36
+ echo "Synced $COUNT agents"
37
+ else
38
+ echo "Warning: No agents/ directory found in upstream"
39
+ fi
40
+
41
+ # Sync hooks
42
+ if [ -d "$TMP_DIR/hooks" ]; then
43
+ rm -rf "$TARGET_DIR/hooks"
44
+ cp -r "$TMP_DIR/hooks" "$TARGET_DIR/hooks"
45
+ echo "Synced hooks"
46
+ else
47
+ echo "Warning: No hooks/ directory found in upstream"
48
+ fi
28
49
 
29
- COUNT=$(find "$TARGET_DIR" -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ')
30
- echo "Synced $COUNT skills to .upstream/skills/"
50
+ echo "Done syncing upstream to .upstream/oh-my-claudecode/"
@@ -36,7 +36,12 @@ function getSourceArtifactDir(sourceName, artifactType, root) {
36
36
 
37
37
  if (isDistributionMode()) {
38
38
  if (sourceName === 'local') {
39
- return path.join(USER_DATA_DIR, 'local', artifactType);
39
+ // Check user-customized local first, then fall back to bundled .local/
40
+ const userLocal = path.join(USER_DATA_DIR, 'local', artifactType);
41
+ if (fs.existsSync(userLocal)) {
42
+ return userLocal;
43
+ }
44
+ return path.join(root, '.local', artifactType);
40
45
  }
41
46
  // Check user-synced first, then fall back to bundled
42
47
  const synced = path.join(USER_DATA_DIR, 'upstream', sourceName, artifactType);
@@ -1,231 +0,0 @@
1
- ---
2
- name: conductor
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
6
- ---
7
-
8
- # Conductor
9
-
10
- <Purpose>
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`
15
- </Purpose>
16
-
17
- <Use_When>
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
22
- </Use_When>
23
-
24
- <Do_Not_Use_When>
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)
28
- </Do_Not_Use_When>
29
-
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>
44
-
45
- <Execution_Policy>
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
51
- </Execution_Policy>
52
-
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>
80
-
81
- <Subcommand_Routing>
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>`
93
- </Subcommand_Routing>
94
-
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
- ```
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>
207
- <Good>
208
- User: "conductor track payment-webhook-retry and plan it"
209
- Why good: Explicit track+planning request with durable artifacts.
210
- </Good>
211
-
212
- <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.
215
- </Good>
216
-
217
- <Bad>
218
- User: "conductor fix typo in README"
219
- Why bad: Tiny one-off task; overhead exceeds benefit.
220
- </Bad>
221
- </Examples>
222
-
223
- <Final_Checklist>
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
231
- </Final_Checklist>