claudecode-omc 4.8.3 → 4.8.4
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/dist/__tests__/consolidation-contracts.test.js +1 -2
- package/dist/__tests__/consolidation-contracts.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +15 -5
- package/dist/__tests__/skills.test.js.map +1 -1
- package/package.json +1 -1
- package/skills/analyze/SKILL.md +42 -0
- package/skills/bdd-generator/SKILL.md +60 -0
- package/skills/e2e/SKILL.md +55 -0
- package/skills/electron-driver/SKILL.md +51 -0
- package/skills/electron-driver/scripts/driver-template.js +46 -0
- package/skills/multi-model-research/SKILL.md +51 -0
- package/skills/planning-with-files/SKILL.md +49 -0
- package/skills/planning-with-files/examples.md +17 -0
- package/skills/planning-with-files/reference.md +21 -0
- package/skills/planning-with-files/scripts/check-complete.ps1 +28 -0
- package/skills/planning-with-files/scripts/check-complete.sh +31 -0
- package/skills/planning-with-files/scripts/init-session.ps1 +31 -0
- package/skills/planning-with-files/scripts/init-session.sh +36 -0
- package/skills/planning-with-files/scripts/session-catchup.py +66 -0
- package/skills/planning-with-files/templates/findings.md +24 -0
- package/skills/planning-with-files/templates/progress.md +38 -0
- package/skills/planning-with-files/templates/task_plan.md +53 -0
- package/skills/start-dev/SKILL.md +45 -0
- package/skills/tdd-generator/SKILL.md +51 -0
- package/skills/test-coverage/SKILL.md +40 -0
- package/skills/test-gen/SKILL.md +70 -0
- package/skills/test-gen/skill.md +0 -531
|
@@ -37,9 +37,8 @@ describe('Consolidation contracts', () => {
|
|
|
37
37
|
expect(names).not.toContain('doctor');
|
|
38
38
|
expect(names).not.toContain('help');
|
|
39
39
|
});
|
|
40
|
-
it('deleted thin-wrapper skills
|
|
40
|
+
it('deleted thin-wrapper skills remain unregistered except explicitly restored ones', () => {
|
|
41
41
|
const names = listBuiltinSkillNames();
|
|
42
|
-
expect(names).not.toContain('analyze');
|
|
43
42
|
expect(names).not.toContain('build-fix');
|
|
44
43
|
expect(names).not.toContain('tdd');
|
|
45
44
|
expect(names).not.toContain('code-review');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidation-contracts.test.js","sourceRoot":"","sources":["../../src/__tests__/consolidation-contracts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAE/E,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,UAAU,CAAC,GAAG,EAAE;QACd,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;YAEtC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;YAEnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;gBACtD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACvC,kDAAkD;YAClD,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;YAEtC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"consolidation-contracts.test.js","sourceRoot":"","sources":["../../src/__tests__/consolidation-contracts.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,10 @@ describe('Builtin Skills', () => {
|
|
|
6
6
|
clearSkillsCache();
|
|
7
7
|
});
|
|
8
8
|
describe('createBuiltinSkills()', () => {
|
|
9
|
-
it('should return correct number of skills (
|
|
9
|
+
it('should return correct number of skills (45 including aliases)', () => {
|
|
10
10
|
const skills = createBuiltinSkills();
|
|
11
|
-
//
|
|
12
|
-
expect(skills).toHaveLength(
|
|
11
|
+
// 45 entries: 44 canonical skills + 1 deprecated alias (psm)
|
|
12
|
+
expect(skills).toHaveLength(45);
|
|
13
13
|
});
|
|
14
14
|
it('should return an array of BuiltinSkill objects', () => {
|
|
15
15
|
const skills = createBuiltinSkills();
|
|
@@ -174,13 +174,23 @@ describe('Builtin Skills', () => {
|
|
|
174
174
|
describe('listBuiltinSkillNames()', () => {
|
|
175
175
|
it('should return canonical skill names by default', () => {
|
|
176
176
|
const names = listBuiltinSkillNames();
|
|
177
|
-
expect(names).toHaveLength(
|
|
177
|
+
expect(names).toHaveLength(44);
|
|
178
178
|
expect(names).toContain('ai-slop-cleaner');
|
|
179
179
|
expect(names).toContain('ask');
|
|
180
180
|
expect(names).toContain('autopilot');
|
|
181
181
|
expect(names).toContain('cancel');
|
|
182
182
|
expect(names).toContain('ccg');
|
|
183
183
|
expect(names).toContain('configure-notifications');
|
|
184
|
+
expect(names).toContain('analyze');
|
|
185
|
+
expect(names).toContain('multi-model-research');
|
|
186
|
+
expect(names).toContain('planning-with-files');
|
|
187
|
+
expect(names).toContain('bdd-generator');
|
|
188
|
+
expect(names).toContain('tdd-generator');
|
|
189
|
+
expect(names).toContain('e2e');
|
|
190
|
+
expect(names).toContain('electron-driver');
|
|
191
|
+
expect(names).toContain('test-coverage');
|
|
192
|
+
expect(names).toContain('start-dev');
|
|
193
|
+
expect(names).toContain('test-gen');
|
|
184
194
|
expect(names).toContain('ralph');
|
|
185
195
|
expect(names).toContain('ultrawork');
|
|
186
196
|
expect(names).toContain('omc-plan');
|
|
@@ -202,7 +212,7 @@ describe('Builtin Skills', () => {
|
|
|
202
212
|
it('should include aliases when explicitly requested', () => {
|
|
203
213
|
const names = listBuiltinSkillNames({ includeAliases: true });
|
|
204
214
|
// swarm alias removed in #1131, psm still exists
|
|
205
|
-
expect(names).toHaveLength(
|
|
215
|
+
expect(names).toHaveLength(45);
|
|
206
216
|
expect(names).toContain('ai-slop-cleaner');
|
|
207
217
|
expect(names).not.toContain('swarm');
|
|
208
218
|
expect(names).toContain('psm');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.test.js","sourceRoot":"","sources":["../../src/__tests__/skills.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: analyze
|
|
3
|
+
description: Deep analysis and investigation for bugs, architecture issues, and risk hotspots. Use when the user asks to analyze, investigate, debug, or explain why something is failing.
|
|
4
|
+
agent: debugger
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Analyze
|
|
8
|
+
|
|
9
|
+
Use this skill for evidence-driven investigation before implementation.
|
|
10
|
+
|
|
11
|
+
## Use When
|
|
12
|
+
|
|
13
|
+
- The user asks to analyze, investigate, debug, root-cause, or explain failures
|
|
14
|
+
- A fix has failed repeatedly and the team needs diagnosis first
|
|
15
|
+
- You need architecture or dependency impact analysis before making changes
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
1. Scope the target precisely.
|
|
20
|
+
2. Gather evidence:
|
|
21
|
+
- Read relevant files and tests
|
|
22
|
+
- Reproduce the issue when possible
|
|
23
|
+
- Capture exact errors and stack traces
|
|
24
|
+
3. Build and test hypotheses:
|
|
25
|
+
- Compare broken path vs working path
|
|
26
|
+
- Trace control/data flow
|
|
27
|
+
- Validate assumptions with commands
|
|
28
|
+
4. Conclude with ranked findings and concrete next actions.
|
|
29
|
+
|
|
30
|
+
## Debug Protocol
|
|
31
|
+
|
|
32
|
+
- Root-cause first. Do not jump to fixes.
|
|
33
|
+
- After 3 failed hypotheses, expand scope and challenge the initial assumption.
|
|
34
|
+
- Prefer user-observable behavior and reproducible evidence over speculation.
|
|
35
|
+
|
|
36
|
+
## Output Format
|
|
37
|
+
|
|
38
|
+
- Summary (2-3 sentences)
|
|
39
|
+
- Key findings (ranked by impact)
|
|
40
|
+
- Evidence (file references, command output, repro notes)
|
|
41
|
+
- Recommended next actions (minimal-risk order)
|
|
42
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bdd-generator
|
|
3
|
+
description: Generate and maintain BDD scenarios and step definitions using Gherkin plus playwright-bdd with a one-scenario-at-a-time TDD loop.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BDD Generator
|
|
7
|
+
|
|
8
|
+
Use this skill to translate business requirements into executable BDD scenarios.
|
|
9
|
+
|
|
10
|
+
## Use When
|
|
11
|
+
|
|
12
|
+
- The user asks for BDD, Gherkin, feature files, or scenario-based tests
|
|
13
|
+
- You need business-readable acceptance tests tied to Playwright execution
|
|
14
|
+
|
|
15
|
+
## Setup
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add -D @playwright/test playwright-bdd
|
|
19
|
+
npx playwright install
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
// playwright.config.ts
|
|
24
|
+
import { defineConfig } from '@playwright/test';
|
|
25
|
+
import { defineBddConfig } from 'playwright-bdd';
|
|
26
|
+
|
|
27
|
+
const testDir = defineBddConfig({
|
|
28
|
+
features: 'features/**/*.feature',
|
|
29
|
+
steps: 'features/steps/**/*.ts',
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export default defineConfig({ testDir });
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Workflow
|
|
36
|
+
|
|
37
|
+
1. Write one feature and one scenario first (RED).
|
|
38
|
+
2. Run `bddgen` to generate missing step stubs.
|
|
39
|
+
3. Implement only the first failing step.
|
|
40
|
+
4. Re-run tests; repeat until scenario passes.
|
|
41
|
+
5. Add next scenario only after green.
|
|
42
|
+
|
|
43
|
+
## Gherkin Best Practices
|
|
44
|
+
|
|
45
|
+
- Use business language, not technical implementation details.
|
|
46
|
+
- `Given` sets context, `When` describes action, `Then` verifies user-visible outcome.
|
|
47
|
+
- Use `Background` for repeated context.
|
|
48
|
+
- Use `Scenario Outline` for data variants.
|
|
49
|
+
|
|
50
|
+
## Output
|
|
51
|
+
|
|
52
|
+
- `*.feature` file with clear business behavior
|
|
53
|
+
- Step definitions in `features/steps/*.ts`
|
|
54
|
+
- Command list to run and debug tests
|
|
55
|
+
|
|
56
|
+
## References
|
|
57
|
+
|
|
58
|
+
- Cucumber Gherkin reference: https://cucumber.io/docs/gherkin/reference
|
|
59
|
+
- playwright-bdd: https://github.com/vitalets/playwright-bdd
|
|
60
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: e2e
|
|
3
|
+
description: Playwright end-to-end orchestration for critical user journeys, artifact capture, flaky-test isolation, and CI-ready reporting.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# E2E
|
|
7
|
+
|
|
8
|
+
Use this as the top-level end-to-end testing orchestrator.
|
|
9
|
+
|
|
10
|
+
## Use When
|
|
11
|
+
|
|
12
|
+
- Validating cross-layer user journeys
|
|
13
|
+
- Preparing release confidence checks
|
|
14
|
+
- Reproducing user-facing regressions
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
1. Define critical journeys and acceptance assertions.
|
|
19
|
+
2. Generate or update Playwright tests.
|
|
20
|
+
3. Run targeted tests first, then broader suites.
|
|
21
|
+
4. Capture artifacts (trace/screenshot/video/report).
|
|
22
|
+
5. Identify flakes and quarantine when needed.
|
|
23
|
+
|
|
24
|
+
## Playwright Best Practices
|
|
25
|
+
|
|
26
|
+
- Test user-visible behavior and assertions.
|
|
27
|
+
- Keep tests isolated and deterministic.
|
|
28
|
+
- Prefer resilient locators (`getByRole`, `getByLabelText`, `getByText`).
|
|
29
|
+
- Use web-first assertions and auto-waiting.
|
|
30
|
+
- Mock or isolate third-party dependencies when they are not under test.
|
|
31
|
+
|
|
32
|
+
## Suggested Config
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
// playwright.config.ts
|
|
36
|
+
use: {
|
|
37
|
+
trace: 'retain-on-failure',
|
|
38
|
+
video: 'retain-on-failure',
|
|
39
|
+
screenshot: 'only-on-failure',
|
|
40
|
+
},
|
|
41
|
+
retries: process.env.CI ? 2 : 0
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Electron Routing
|
|
45
|
+
|
|
46
|
+
If the target is an Electron app, use `/oh-my-claudecode:electron-driver` as the runtime backend while keeping Playwright assertions and artifacts.
|
|
47
|
+
|
|
48
|
+
## References
|
|
49
|
+
|
|
50
|
+
- Best practices: https://playwright.dev/docs/best-practices
|
|
51
|
+
- Actionability / auto-waiting: https://playwright.dev/docs/actionability
|
|
52
|
+
- Trace viewer: https://playwright.dev/docs/trace-viewer
|
|
53
|
+
- Retries and flaky handling: https://playwright.dev/docs/test-retries
|
|
54
|
+
- Codegen: https://playwright.dev/docs/codegen-intro
|
|
55
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: electron-driver
|
|
3
|
+
description: Playwright-based E2E driving for Electron applications using launch mode or attach mode with robust window selection and runtime inspection.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Electron Driver
|
|
7
|
+
|
|
8
|
+
Use this skill for Electron runtime automation and debugging.
|
|
9
|
+
|
|
10
|
+
## Modes
|
|
11
|
+
|
|
12
|
+
- Launch mode (preferred for clean CI runs)
|
|
13
|
+
- Attach mode (preferred for debugging existing sessions)
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add -D playwright-core @playwright/test
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Launch Mode (recommended)
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
import { _electron as electron } from 'playwright';
|
|
25
|
+
|
|
26
|
+
const electronApp = await electron.launch({ args: ['.'] });
|
|
27
|
+
const page = await electronApp.firstWindow();
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Use locators on `page` for UI actions and assertions.
|
|
31
|
+
|
|
32
|
+
## Attach Mode
|
|
33
|
+
|
|
34
|
+
- Start Electron with `--remote-debugging-port=<port>`
|
|
35
|
+
- Connect via CDP and pick the non-`devtools://` page
|
|
36
|
+
|
|
37
|
+
Template: `skills/electron-driver/scripts/driver-template.js`
|
|
38
|
+
|
|
39
|
+
## Best Practices
|
|
40
|
+
|
|
41
|
+
- Filter out DevTools pages before interaction.
|
|
42
|
+
- Use role/text-based locators for resilience.
|
|
43
|
+
- Keep launch mode for stable regression suites.
|
|
44
|
+
- Use attach mode for live bug reproduction.
|
|
45
|
+
- Capture trace/screenshot artifacts for failures.
|
|
46
|
+
|
|
47
|
+
## References
|
|
48
|
+
|
|
49
|
+
- Playwright Electron API: https://playwright.dev/docs/api/class-electron
|
|
50
|
+
- Electron automated testing: https://www.electronjs.org/docs/latest/tutorial/automated-testing
|
|
51
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const { chromium } = require('playwright-core');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Electron attach-mode template.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* 1) Start Electron with --remote-debugging-port=<PORT>
|
|
8
|
+
* 2) Optionally set CDP_PORT env var
|
|
9
|
+
* 3) Run: node skills/electron-driver/scripts/driver-template.js
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const CDP_PORT = process.env.CDP_PORT || 9222;
|
|
13
|
+
const CDP_URL = `http://localhost:${CDP_PORT}`;
|
|
14
|
+
|
|
15
|
+
async function run() {
|
|
16
|
+
let browser;
|
|
17
|
+
try {
|
|
18
|
+
browser = await chromium.connectOverCDP(CDP_URL);
|
|
19
|
+
const context = browser.contexts()[0];
|
|
20
|
+
if (!context) throw new Error('No browser context found');
|
|
21
|
+
|
|
22
|
+
const page = context.pages().find((p) => !p.url().startsWith('devtools://'));
|
|
23
|
+
if (!page) throw new Error('No Electron app page found');
|
|
24
|
+
|
|
25
|
+
console.log(
|
|
26
|
+
JSON.stringify({
|
|
27
|
+
status: 'success',
|
|
28
|
+
title: await page.title(),
|
|
29
|
+
url: page.url(),
|
|
30
|
+
})
|
|
31
|
+
);
|
|
32
|
+
} catch (error) {
|
|
33
|
+
console.error(
|
|
34
|
+
JSON.stringify({
|
|
35
|
+
status: 'error',
|
|
36
|
+
message: error.message,
|
|
37
|
+
})
|
|
38
|
+
);
|
|
39
|
+
process.exitCode = 1;
|
|
40
|
+
} finally {
|
|
41
|
+
if (browser) await browser.close();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
run();
|
|
46
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-model-research
|
|
3
|
+
description: Run structured multi-model research (Claude, Gemini, Codex) and synthesize consensus, disagreements, and final recommendations.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Multi-Model Research
|
|
7
|
+
|
|
8
|
+
Use this skill for architecture choices, tradeoff analysis, or high-stakes technical decisions.
|
|
9
|
+
|
|
10
|
+
## Use When
|
|
11
|
+
|
|
12
|
+
- The user asks for multi-model research, technology selection, or architecture comparison
|
|
13
|
+
- A decision has competing options and needs cross-model critique
|
|
14
|
+
- You need confidence checks before implementation
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
1. Define the research question:
|
|
19
|
+
- Decision to make
|
|
20
|
+
- Constraints
|
|
21
|
+
- Evaluation criteria (performance, maintainability, cost, risk)
|
|
22
|
+
2. Query providers with the same prompt template:
|
|
23
|
+
- `omc ask claude "<question>"`
|
|
24
|
+
- `omc ask gemini "<question>"`
|
|
25
|
+
- `omc ask codex "<question>"`
|
|
26
|
+
3. Normalize each answer into:
|
|
27
|
+
- Proposed approach
|
|
28
|
+
- Key arguments
|
|
29
|
+
- Risks and unknowns
|
|
30
|
+
4. Synthesize:
|
|
31
|
+
- Consensus points
|
|
32
|
+
- Contradictions
|
|
33
|
+
- Missing evidence
|
|
34
|
+
- Final recommendation with rationale
|
|
35
|
+
5. Record artifacts and next validation steps.
|
|
36
|
+
|
|
37
|
+
## Quality Rules
|
|
38
|
+
|
|
39
|
+
- Keep prompts equivalent across models to reduce bias.
|
|
40
|
+
- Cite concrete evidence, not authority.
|
|
41
|
+
- Separate facts from inference.
|
|
42
|
+
- If a provider is unavailable, continue and clearly state the reduced confidence.
|
|
43
|
+
|
|
44
|
+
## Output Format
|
|
45
|
+
|
|
46
|
+
- Research question and criteria
|
|
47
|
+
- Per-model findings
|
|
48
|
+
- Consensus and disagreements
|
|
49
|
+
- Recommended decision
|
|
50
|
+
- Validation checklist and follow-up experiments
|
|
51
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-with-files
|
|
3
|
+
description: File-based planning workflow for complex tasks. Create and maintain task_plan.md, findings.md, and progress.md as persistent working memory.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Planning With Files
|
|
7
|
+
|
|
8
|
+
Use this skill when the task is complex, long-running, or likely to exceed context continuity.
|
|
9
|
+
|
|
10
|
+
## Use When
|
|
11
|
+
|
|
12
|
+
- Multi-step tasks (typically 3+ phases)
|
|
13
|
+
- Investigations requiring many reads/searches
|
|
14
|
+
- Work that spans planning, implementation, and verification
|
|
15
|
+
|
|
16
|
+
## Core Pattern
|
|
17
|
+
|
|
18
|
+
Context window is volatile; files are durable.
|
|
19
|
+
Write key decisions and discoveries to disk early.
|
|
20
|
+
|
|
21
|
+
## Standard Files
|
|
22
|
+
|
|
23
|
+
- `task_plan.md`: goals, phases, decisions, errors
|
|
24
|
+
- `findings.md`: research notes, references, technical findings
|
|
25
|
+
- `progress.md`: chronological execution and test log
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
1. Initialize files in project root:
|
|
30
|
+
- `bash skills/planning-with-files/scripts/init-session.sh`
|
|
31
|
+
2. Before major decisions, re-read `task_plan.md`.
|
|
32
|
+
3. After every 2 search/view operations, update `findings.md`.
|
|
33
|
+
4. After each phase, update status and `progress.md`.
|
|
34
|
+
5. Before handoff, validate completeness:
|
|
35
|
+
- `bash skills/planning-with-files/scripts/check-complete.sh`
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
- Do not start complex implementation without `task_plan.md`.
|
|
40
|
+
- Record all meaningful errors and attempted fixes.
|
|
41
|
+
- Do not repeat identical failed actions.
|
|
42
|
+
- Keep plans minimal and reversible.
|
|
43
|
+
|
|
44
|
+
## Templates
|
|
45
|
+
|
|
46
|
+
- `skills/planning-with-files/templates/task_plan.md`
|
|
47
|
+
- `skills/planning-with-files/templates/findings.md`
|
|
48
|
+
- `skills/planning-with-files/templates/progress.md`
|
|
49
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Planning With Files Examples
|
|
2
|
+
|
|
3
|
+
## Example: feature delivery
|
|
4
|
+
|
|
5
|
+
1. Run `bash skills/planning-with-files/scripts/init-session.sh`
|
|
6
|
+
2. Set goal and phases in `task_plan.md`
|
|
7
|
+
3. Log findings during discovery in `findings.md`
|
|
8
|
+
4. Implement phase by phase and append test results to `progress.md`
|
|
9
|
+
5. Run `bash skills/planning-with-files/scripts/check-complete.sh`
|
|
10
|
+
|
|
11
|
+
## Example: bug investigation
|
|
12
|
+
|
|
13
|
+
1. Capture repro steps and hypotheses in `task_plan.md`
|
|
14
|
+
2. Store command outputs and traces in `findings.md`
|
|
15
|
+
3. Log each failed attempt and changed hypothesis in `progress.md`
|
|
16
|
+
4. Only implement once root cause is validated
|
|
17
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Planning With Files Reference
|
|
2
|
+
|
|
3
|
+
## Why this exists
|
|
4
|
+
|
|
5
|
+
Long tasks lose context. Persisting decisions and findings in project files
|
|
6
|
+
keeps implementation aligned with goals and reduces repeated failures.
|
|
7
|
+
|
|
8
|
+
## Core principles
|
|
9
|
+
|
|
10
|
+
1. Plan before implementing.
|
|
11
|
+
2. Re-read the plan before major decisions.
|
|
12
|
+
3. Externalize discoveries to `findings.md`.
|
|
13
|
+
4. Track execution and verification in `progress.md`.
|
|
14
|
+
5. Keep failed attempts visible to avoid repeating them.
|
|
15
|
+
|
|
16
|
+
## Recommended cadence
|
|
17
|
+
|
|
18
|
+
- Every phase transition: update `task_plan.md`
|
|
19
|
+
- Every 2 search/view actions: update `findings.md`
|
|
20
|
+
- Every test run or fix cycle: update `progress.md`
|
|
21
|
+
|
|
@@ -0,0 +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
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Verify all phases in task_plan.md are complete.
|
|
3
|
+
# Usage: bash skills/planning-with-files/scripts/check-complete.sh [task_plan_path]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
PLAN_FILE="${1:-task_plan.md}"
|
|
8
|
+
|
|
9
|
+
if [[ ! -f "${PLAN_FILE}" ]]; then
|
|
10
|
+
echo "ERROR: ${PLAN_FILE} not found"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
TOTAL="$(grep -c "### Phase" "${PLAN_FILE}" || true)"
|
|
15
|
+
COMPLETE="$(grep -cF "**Status:** complete" "${PLAN_FILE}" || true)"
|
|
16
|
+
IN_PROGRESS="$(grep -cF "**Status:** in_progress" "${PLAN_FILE}" || true)"
|
|
17
|
+
PENDING="$(grep -cF "**Status:** pending" "${PLAN_FILE}" || true)"
|
|
18
|
+
|
|
19
|
+
echo "Total phases: ${TOTAL}"
|
|
20
|
+
echo "Complete: ${COMPLETE}"
|
|
21
|
+
echo "In progress: ${IN_PROGRESS}"
|
|
22
|
+
echo "Pending: ${PENDING}"
|
|
23
|
+
|
|
24
|
+
if [[ "${TOTAL}" -gt 0 && "${COMPLETE}" -eq "${TOTAL}" ]]; then
|
|
25
|
+
echo "ALL PHASES COMPLETE"
|
|
26
|
+
exit 0
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
echo "TASK NOT COMPLETE"
|
|
30
|
+
exit 1
|
|
31
|
+
|
|
@@ -0,0 +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
|
+
|