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.
- package/.local/hud/omc-hud.mjs +98 -0
- package/.local/skills/conductor/SKILL.md +397 -0
- package/bundled/manifest.json +2 -2
- package/package.json +2 -1
- package/scripts/sync-upstream.sh +30 -10
- package/src/config/paths.js +6 -1
- package/bundled/upstream/oh-my-claudecode/skills/conductor/SKILL.md +0 -231
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/AGENTS.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/ai-commenting/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/analyze/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/bdd-generator/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/e2e/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/electron-driver/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/electron-driver/scripts/driver-template.js +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/multi-model-research/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/examples.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/reference.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/check-complete.ps1 +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/check-complete.sh +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/init-session.ps1 +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/init-session.sh +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/scripts/session-catchup.py +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/templates/findings.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/templates/progress.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/templates/task_plan.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/quick-init-project/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-creator/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-creator/references/upstream-anthropic-skill-creator.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-debugger/README.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-debugger/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/HOW_TO_USE.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/README.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/analyzer.py +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/expected_output.json +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/sample_input.json +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-tester/README.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-tester/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/start-dev/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/tdd-generator/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/test-coverage/SKILL.md +0 -0
- /package/{bundled/upstream/oh-my-claudecode → .local}/skills/test-gen/SKILL.md +0 -0
- /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>
|
package/bundled/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudecode-omc",
|
|
3
|
-
"version": "5.
|
|
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",
|
package/scripts/sync-upstream.sh
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
|
-
# Sync upstream oh-my-claudecode
|
|
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/
|
|
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
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
27
|
-
|
|
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
|
-
|
|
30
|
-
echo "Synced $COUNT skills to .upstream/skills/"
|
|
50
|
+
echo "Done syncing upstream to .upstream/oh-my-claudecode/"
|
package/src/config/paths.js
CHANGED
|
@@ -36,7 +36,12 @@ function getSourceArtifactDir(sourceName, artifactType, root) {
|
|
|
36
36
|
|
|
37
37
|
if (isDistributionMode()) {
|
|
38
38
|
if (sourceName === 'local') {
|
|
39
|
-
|
|
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>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/examples.md
RENAMED
|
File without changes
|
/package/{bundled/upstream/oh-my-claudecode → .local}/skills/planning-with-files/reference.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/HOW_TO_USE.md
RENAMED
|
File without changes
|
/package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/README.md
RENAMED
|
File without changes
|
/package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/SKILL.md
RENAMED
|
File without changes
|
/package/{bundled/upstream/oh-my-claudecode → .local}/skills/skill-quality-analyzer/analyzer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|