conductor-kit 0.0.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/LICENSE +21 -0
- package/README.ko.md +144 -0
- package/README.md +144 -0
- package/bin/conductor +67 -0
- package/commands/conductor-debug.md +10 -0
- package/commands/conductor-docs.md +10 -0
- package/commands/conductor-explain.md +10 -0
- package/commands/conductor-implement.md +10 -0
- package/commands/conductor-migrate.md +10 -0
- package/commands/conductor-plan.md +10 -0
- package/commands/conductor-refactor.md +10 -0
- package/commands/conductor-release.md +10 -0
- package/commands/conductor-review.md +10 -0
- package/commands/conductor-search.md +10 -0
- package/commands/conductor-security.md +10 -0
- package/commands/conductor-symphony.md +10 -0
- package/commands/conductor-test.md +10 -0
- package/config/conductor.json +44 -0
- package/config/conductor.schema.json +73 -0
- package/config/mcp-bundles.json +40 -0
- package/package.json +48 -0
- package/scripts/postinstall.js +135 -0
- package/skills/conductor/SKILL.md +227 -0
- package/skills/conductor/references/delegation.md +110 -0
- package/skills/conductor/references/formats.md +180 -0
- package/skills/conductor/references/roles.md +76 -0
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "conductor-kit",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Global skills pack and Go helper for Codex CLI and Claude Code",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"claude",
|
|
7
|
+
"codex",
|
|
8
|
+
"cli",
|
|
9
|
+
"mcp",
|
|
10
|
+
"ai",
|
|
11
|
+
"assistant",
|
|
12
|
+
"skills"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://github.com/Skyline-23/conductor-kit",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Skyline-23/conductor-kit/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/Skyline-23/conductor-kit.git"
|
|
21
|
+
},
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"author": "Skyline-23",
|
|
24
|
+
"bin": {
|
|
25
|
+
"conductor": "./bin/conductor"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"bin/",
|
|
29
|
+
"scripts/",
|
|
30
|
+
"skills/",
|
|
31
|
+
"commands/",
|
|
32
|
+
"config/"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"postinstall": "node scripts/postinstall.js"
|
|
36
|
+
},
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=16.0.0"
|
|
39
|
+
},
|
|
40
|
+
"os": [
|
|
41
|
+
"darwin",
|
|
42
|
+
"linux"
|
|
43
|
+
],
|
|
44
|
+
"cpu": [
|
|
45
|
+
"x64",
|
|
46
|
+
"arm64"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const https = require('https');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const os = require('os');
|
|
7
|
+
const { execSync, spawn } = require('child_process');
|
|
8
|
+
const zlib = require('zlib');
|
|
9
|
+
|
|
10
|
+
const REPO_OWNER = 'Skyline-23';
|
|
11
|
+
const REPO_NAME = 'conductor-kit';
|
|
12
|
+
const BINARY_NAME = 'conductor';
|
|
13
|
+
|
|
14
|
+
function getPlatform() {
|
|
15
|
+
const platform = os.platform();
|
|
16
|
+
if (platform === 'darwin') return 'darwin';
|
|
17
|
+
if (platform === 'linux') return 'linux';
|
|
18
|
+
throw new Error(`Unsupported platform: ${platform}`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function getArch() {
|
|
22
|
+
const arch = os.arch();
|
|
23
|
+
if (arch === 'x64') return 'amd64';
|
|
24
|
+
if (arch === 'arm64') return 'arm64';
|
|
25
|
+
throw new Error(`Unsupported architecture: ${arch}`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function httpsGet(url) {
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
const request = https.get(url, { headers: { 'User-Agent': 'conductor-kit-npm' } }, (response) => {
|
|
31
|
+
if (response.statusCode >= 300 && response.statusCode < 400 && response.headers.location) {
|
|
32
|
+
httpsGet(response.headers.location).then(resolve).catch(reject);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (response.statusCode !== 200) {
|
|
36
|
+
reject(new Error(`HTTP ${response.statusCode}: ${url}`));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const chunks = [];
|
|
40
|
+
response.on('data', (chunk) => chunks.push(chunk));
|
|
41
|
+
response.on('end', () => resolve(Buffer.concat(chunks)));
|
|
42
|
+
response.on('error', reject);
|
|
43
|
+
});
|
|
44
|
+
request.on('error', reject);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async function getLatestVersion() {
|
|
49
|
+
const url = `https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/releases/latest`;
|
|
50
|
+
const data = await httpsGet(url);
|
|
51
|
+
const release = JSON.parse(data.toString());
|
|
52
|
+
return release.tag_name.replace(/^v/, '');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async function downloadAndExtract(version, platform, arch, destDir) {
|
|
56
|
+
const assetName = `${REPO_NAME}_${version}_${platform}_${arch}.tar.gz`;
|
|
57
|
+
const url = `https://github.com/${REPO_OWNER}/${REPO_NAME}/releases/download/v${version}/${assetName}`;
|
|
58
|
+
|
|
59
|
+
console.log(`Downloading ${assetName}...`);
|
|
60
|
+
const tarGzData = await httpsGet(url);
|
|
61
|
+
|
|
62
|
+
// Create destination directory
|
|
63
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
64
|
+
|
|
65
|
+
// Write tar.gz to temp file
|
|
66
|
+
const tempFile = path.join(os.tmpdir(), assetName);
|
|
67
|
+
fs.writeFileSync(tempFile, tarGzData);
|
|
68
|
+
|
|
69
|
+
// Extract using tar command
|
|
70
|
+
console.log('Extracting...');
|
|
71
|
+
execSync(`tar -xzf "${tempFile}" -C "${destDir}"`, { stdio: 'inherit' });
|
|
72
|
+
|
|
73
|
+
// Clean up temp file
|
|
74
|
+
fs.unlinkSync(tempFile);
|
|
75
|
+
|
|
76
|
+
// Ensure binary is executable
|
|
77
|
+
const binaryPath = path.join(destDir, BINARY_NAME);
|
|
78
|
+
if (fs.existsSync(binaryPath)) {
|
|
79
|
+
fs.chmodSync(binaryPath, 0o755);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return binaryPath;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async function main() {
|
|
86
|
+
// Skip postinstall in CI or if CONDUCTOR_SKIP_POSTINSTALL is set
|
|
87
|
+
if (process.env.CI || process.env.CONDUCTOR_SKIP_POSTINSTALL) {
|
|
88
|
+
console.log('Skipping postinstall in CI environment');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
try {
|
|
93
|
+
const platform = getPlatform();
|
|
94
|
+
const arch = getArch();
|
|
95
|
+
|
|
96
|
+
console.log(`Platform: ${platform}, Architecture: ${arch}`);
|
|
97
|
+
|
|
98
|
+
// Get latest version
|
|
99
|
+
const version = await getLatestVersion();
|
|
100
|
+
console.log(`Latest version: ${version}`);
|
|
101
|
+
|
|
102
|
+
// Download to native/ directory in package
|
|
103
|
+
const packageDir = path.join(__dirname, '..');
|
|
104
|
+
const nativeDir = path.join(packageDir, 'native');
|
|
105
|
+
|
|
106
|
+
const binaryPath = await downloadAndExtract(version, platform, arch, nativeDir);
|
|
107
|
+
|
|
108
|
+
console.log(`\nConductor ${version} installed successfully!`);
|
|
109
|
+
console.log(`Binary: ${binaryPath}`);
|
|
110
|
+
|
|
111
|
+
// Run install command to set up skills/commands
|
|
112
|
+
console.log('\nSetting up skills and commands...');
|
|
113
|
+
const installProcess = spawn(binaryPath, ['install', '--mode', 'link', '--repo', nativeDir], {
|
|
114
|
+
stdio: 'inherit',
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
installProcess.on('exit', (code) => {
|
|
118
|
+
if (code === 0) {
|
|
119
|
+
console.log('\nSetup complete! You can now use conductor.');
|
|
120
|
+
console.log('Run "conductor --help" for usage information.');
|
|
121
|
+
} else {
|
|
122
|
+
console.log('\nNote: Auto-install skipped. Run "conductor install" manually if needed.');
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
} catch (error) {
|
|
127
|
+
console.error(`\nWarning: Could not download conductor binary: ${error.message}`);
|
|
128
|
+
console.error('You can install it manually via Homebrew:');
|
|
129
|
+
console.error(' brew install Skyline-23/conductor-kit/conductor-kit');
|
|
130
|
+
// Don't fail the npm install
|
|
131
|
+
process.exit(0);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
main();
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conductor
|
|
3
|
+
description: |
|
|
4
|
+
MANDATORY: Load BEFORE calling ANY mcp_conductor_* tools.
|
|
5
|
+
|
|
6
|
+
DO NOT directly call: mcp_conductor_claude, mcp_conductor_codex, mcp_conductor_gemini, mcp_conductor_conductor
|
|
7
|
+
This skill defines the CORRECT way to use conductor tools via role-based delegation.
|
|
8
|
+
|
|
9
|
+
TRIGGERS: sym, symphony, code, analyze, improve, review, debug, fix, refactor, implement, search, explore, plan, assess, audit, optimize, architecture, structure, build, test, deploy
|
|
10
|
+
|
|
11
|
+
REPLACES: Direct mcp_conductor_* calls, Task(Explore), Task(Plan), built-in search/grep agents.
|
|
12
|
+
|
|
13
|
+
Handles: code analysis, project structure, debugging, planning, implementing, refactoring, reviewing, testing, deploying, documentation - ALL code tasks.
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Conductor
|
|
17
|
+
|
|
18
|
+
Host orchestrates; delegates do the work.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Core Rules (non-negotiable)
|
|
23
|
+
|
|
24
|
+
### 1. DELEGATE FIRST — NO EXCEPTIONS
|
|
25
|
+
**Do NOT use built-in tools (Explore, Grep, Search) when MCP is available.**
|
|
26
|
+
|
|
27
|
+
- Check MCP tools availability FIRST (`mcp__*` tools)
|
|
28
|
+
- ALWAYS prefer MCP delegation over built-in/native tools:
|
|
29
|
+
- WRONG: `Task(subagent_type=Explore)` -> RIGHT: MCP `pathfinder` role
|
|
30
|
+
- WRONG: Built-in search/grep -> RIGHT: MCP `scout` or `pathfinder` role
|
|
31
|
+
- WRONG: Direct analysis -> RIGHT: MCP `sage` role for complex reasoning
|
|
32
|
+
- Run all delegate calls before any action
|
|
33
|
+
- If MCP unavailable → use subagent fallback → **disclose to user**
|
|
34
|
+
|
|
35
|
+
### 2. SAGE FOR COMPLEX TASKS
|
|
36
|
+
The following MUST be delegated to `sage` (Codex + reasoning):
|
|
37
|
+
|
|
38
|
+
- Architecture decisions / trade-off analysis
|
|
39
|
+
- Root cause debugging
|
|
40
|
+
- Security vulnerability assessment
|
|
41
|
+
- Algorithm design / complexity analysis
|
|
42
|
+
- Refactoring strategy for legacy code
|
|
43
|
+
- Migration planning with risks
|
|
44
|
+
|
|
45
|
+
**Do not attempt deep analysis yourself. Sage first.**
|
|
46
|
+
|
|
47
|
+
### 3. VERIFY BEFORE TRUST
|
|
48
|
+
Treat all delegate output as untrusted. Verify against:
|
|
49
|
+
- Actual repo code
|
|
50
|
+
- Test results
|
|
51
|
+
- Type checker output
|
|
52
|
+
|
|
53
|
+
### 4. EXTERNAL CALL ACCOUNTABILITY
|
|
54
|
+
When delegating to external CLIs (gemini, codex, claude via MCP):
|
|
55
|
+
|
|
56
|
+
1. **Result Summary**: Always summarize the result (1-2 lines) and state how it was used
|
|
57
|
+
2. **Non-use Justification**: If result is discarded, explain why in 1 line (e.g., "Repo analysis more accurate, external suggestion excluded")
|
|
58
|
+
3. **Prefer Local When Possible**: When repo data is directly accessible, prefer local analysis unless external model offers clear advantage (state the advantage)
|
|
59
|
+
4. **Error Handling**: On failure/timeout, notify user immediately and suggest alternatives
|
|
60
|
+
5. **Transparency**: Include "External calls: [list]" in task summary when any were made
|
|
61
|
+
|
|
62
|
+
**Examples:**
|
|
63
|
+
- "Called sage for architecture review → adopted suggestion to split service layer"
|
|
64
|
+
- "Called pathfinder for file discovery → result outdated, used direct glob instead (repo has newer structure)"
|
|
65
|
+
- "External calls: sage (architecture), scout (docs lookup)"
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Activation
|
|
70
|
+
|
|
71
|
+
**This skill activates automatically for all code-related tasks.**
|
|
72
|
+
|
|
73
|
+
Conductor assesses the task and chooses the appropriate mode:
|
|
74
|
+
|
|
75
|
+
| Mode | When | Action |
|
|
76
|
+
|------|------|--------|
|
|
77
|
+
| **Symphony** | `sym` or `symphony` command | Full automation: Search → Plan → Execute → Verify → Cleanup |
|
|
78
|
+
| **Search** | Explore, analyze, investigate, understand | Delegate to `pathfinder` + `sage` via MCP |
|
|
79
|
+
| **Plan** | Design, architect, plan | Read-only planning, no edits |
|
|
80
|
+
| **Implement** | Fix, build, refactor, migrate | MCP-assisted implementation |
|
|
81
|
+
| **Release** | Deploy, publish, release | Release checklist + validation |
|
|
82
|
+
|
|
83
|
+
**Decision flow:**
|
|
84
|
+
1. Skill loads → Conductor activates
|
|
85
|
+
2. Assess task complexity
|
|
86
|
+
3. Simple task → execute directly
|
|
87
|
+
4. Complex/specialized → delegate via MCP
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Symphony Mode
|
|
92
|
+
|
|
93
|
+
When triggered, respond **immediately** with:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
SYMPHONY MODE ENABLED!
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Then execute staged delegation:
|
|
100
|
+
|
|
101
|
+
**Stage 1 — Discovery**
|
|
102
|
+
- `pathfinder`: file structure, entrypoints, patterns
|
|
103
|
+
|
|
104
|
+
**Stage 2 — Analysis**
|
|
105
|
+
- `sage`: deep reasoning on findings (MANDATORY)
|
|
106
|
+
- `scout`: verify against docs/best practices
|
|
107
|
+
|
|
108
|
+
**Stage 3 — Review**
|
|
109
|
+
- Additional roles as needed
|
|
110
|
+
|
|
111
|
+
**Then:** Search → Plan → Execute → Verify → Cleanup
|
|
112
|
+
|
|
113
|
+
Do NOT proceed until all delegates complete.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Roles → Delegation
|
|
118
|
+
|
|
119
|
+
**Available roles** (defined in `~/.conductor-kit/conductor.json`):
|
|
120
|
+
|
|
121
|
+
| Role | When to use |
|
|
122
|
+
|------|-------------|
|
|
123
|
+
| `sage` | Complex reasoning, architecture, security |
|
|
124
|
+
| `pathfinder` | File discovery, codebase navigation, project structure |
|
|
125
|
+
| `scout` | Doc lookup, web search, best practices |
|
|
126
|
+
| `pixelator` | Web UI/UX, React/Vue/CSS, responsive design |
|
|
127
|
+
| `author` | README, docs, changelogs |
|
|
128
|
+
| `vision` | Screenshot/image analysis |
|
|
129
|
+
|
|
130
|
+
### How to Delegate
|
|
131
|
+
|
|
132
|
+
**Step 1: Get role mappings** via CLI (avoids config file permission issues):
|
|
133
|
+
```bash
|
|
134
|
+
conductor roles --json
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Step 2: Find the MCP tool** from your available tools list:
|
|
138
|
+
- `cli: "codex"` → find tool containing `codex-cli` and `prompt` (e.g., `mcp__codex-cli__codex_prompt`)
|
|
139
|
+
- `cli: "gemini"` → find tool containing `gemini-cli` and `prompt` (e.g., `mcp__gemini-cli__gemini_prompt`)
|
|
140
|
+
- `cli: "claude"` → find tool containing `claude-cli` and `prompt` (e.g., `mcp__claude-cli__claude_prompt`)
|
|
141
|
+
|
|
142
|
+
**Step 3: Call with the configured `model`:**
|
|
143
|
+
```json
|
|
144
|
+
{ "prompt": "...", "model": "<EXACT model value from conductor roles>" }
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**CRITICAL: Do NOT omit the model. Do NOT guess or invent model names. Use EXACTLY what conductor roles returns.**
|
|
148
|
+
|
|
149
|
+
**Fallback:** If MCP tool not found → built-in subagent → disclose to user
|
|
150
|
+
|
|
151
|
+
### Delegation Prompt Template
|
|
152
|
+
```
|
|
153
|
+
Goal: [one-line task]
|
|
154
|
+
Role: [role name]
|
|
155
|
+
Constraints: [limits, requirements]
|
|
156
|
+
Files: [relevant paths]
|
|
157
|
+
Output format: markdown with ## Summary, ## Confidence, ## Findings, ## Suggested Actions
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Operating Loop
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
Search → Plan → Execute → Verify → Cleanup
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Search
|
|
169
|
+
- Run parallel searches (multiple angles)
|
|
170
|
+
- Collect file paths + key facts
|
|
171
|
+
- Evidence over opinions
|
|
172
|
+
|
|
173
|
+
### Plan
|
|
174
|
+
- **READ-ONLY** — no edits allowed
|
|
175
|
+
- Output 3–6 steps with success criteria
|
|
176
|
+
- Ask ONE question if blocked, otherwise proceed
|
|
177
|
+
|
|
178
|
+
### Execute
|
|
179
|
+
- Minimal surgical edits
|
|
180
|
+
- No type-safety hacks (`as any`, `@ts-ignore`)
|
|
181
|
+
- One logical change at a time
|
|
182
|
+
|
|
183
|
+
### Verify
|
|
184
|
+
- Run checks: test → typecheck → lint
|
|
185
|
+
- If unrelated failure, report but don't fix
|
|
186
|
+
|
|
187
|
+
### Cleanup
|
|
188
|
+
- Summarize outcomes
|
|
189
|
+
- Prune stale context
|
|
190
|
+
- List next actions if any
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Mode-Specific Behavior
|
|
195
|
+
|
|
196
|
+
### Search Mode
|
|
197
|
+
- **Use MCP `pathfinder` role** for codebase discovery (NOT built-in Explore agent)
|
|
198
|
+
- Parallel codebase + external doc searches via MCP delegation
|
|
199
|
+
- Output: findings with file references
|
|
200
|
+
|
|
201
|
+
### Plan Mode
|
|
202
|
+
- **No writes/edits/commits**
|
|
203
|
+
- Output: assumptions, constraints, ordered steps
|
|
204
|
+
|
|
205
|
+
### Implement Mode
|
|
206
|
+
- TDD if repo has tests
|
|
207
|
+
- Rollback when stuck (don't accumulate bad edits)
|
|
208
|
+
|
|
209
|
+
### Release Mode
|
|
210
|
+
- Checklist: version bump, changelog, validation, secret scan
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Safety (non-negotiable)
|
|
215
|
+
|
|
216
|
+
- **No commit/push** unless explicitly asked
|
|
217
|
+
- **No secrets** in commits (check for .env, credentials)
|
|
218
|
+
- **No destructive commands** unless explicitly confirmed
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## References
|
|
223
|
+
|
|
224
|
+
For detailed specifications:
|
|
225
|
+
- `references/roles.md` — Role routing and combinations
|
|
226
|
+
- `references/delegation.md` — Context budget, failure handling
|
|
227
|
+
- `references/formats.md` — JSON output schemas
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Delegation Reference
|
|
2
|
+
|
|
3
|
+
## Core Principle
|
|
4
|
+
|
|
5
|
+
**Delegate first, act later.** Never search, plan, or edit before delegation completes.
|
|
6
|
+
|
|
7
|
+
## Context Budget
|
|
8
|
+
|
|
9
|
+
Control how much context to pass to delegates based on task scope.
|
|
10
|
+
|
|
11
|
+
| Task Size | Context Strategy | Max Lines |
|
|
12
|
+
|-----------|------------------|-----------|
|
|
13
|
+
| Small | Single relevant file | ~500 |
|
|
14
|
+
| Medium | File + direct imports + related tests | ~2000 |
|
|
15
|
+
| Large | Summary + key sections + file list only | ~1000 |
|
|
16
|
+
|
|
17
|
+
### Context Selection Priority
|
|
18
|
+
1. Files directly mentioned in the task
|
|
19
|
+
2. Files discovered during search phase
|
|
20
|
+
3. Test files for touched code
|
|
21
|
+
4. Import/dependency files (one level)
|
|
22
|
+
5. Config files if behavior-relevant
|
|
23
|
+
|
|
24
|
+
### Trimming Strategy
|
|
25
|
+
- Remove boilerplate (license headers, long comments)
|
|
26
|
+
- Collapse repetitive code (show first + "... N more similar")
|
|
27
|
+
- Summarize large data structures
|
|
28
|
+
- Keep function signatures, trim implementations if needed
|
|
29
|
+
|
|
30
|
+
## Delegation Contract
|
|
31
|
+
|
|
32
|
+
### Input Requirements
|
|
33
|
+
Every delegate call MUST include:
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"goal": "one-line task description",
|
|
37
|
+
"constraints": ["constraint1", "constraint2"],
|
|
38
|
+
"files": ["path/to/file1.ts", "path/to/file2.ts"],
|
|
39
|
+
"context": "relevant code snippets or summaries",
|
|
40
|
+
"output_format": "json|markdown|patch"
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Output Requirements
|
|
45
|
+
Delegate MUST return at least one of:
|
|
46
|
+
- Concrete commands to run
|
|
47
|
+
- File paths + exact edits (line numbers)
|
|
48
|
+
- Checklist with pass/fail criteria
|
|
49
|
+
|
|
50
|
+
## Failure Handling
|
|
51
|
+
|
|
52
|
+
| Failure Type | Action |
|
|
53
|
+
|--------------|--------|
|
|
54
|
+
| Timeout (>120s) | Retry once with 50% context |
|
|
55
|
+
| Parse error | Ask delegate to reformat as JSON |
|
|
56
|
+
| Empty response | Retry with simpler prompt |
|
|
57
|
+
| Inconsistent output | Log conflict, ask user to verify |
|
|
58
|
+
| MCP unavailable | Use subagent fallback, disclose it |
|
|
59
|
+
|
|
60
|
+
### Retry Policy
|
|
61
|
+
```
|
|
62
|
+
max_retries: 1
|
|
63
|
+
backoff: 500ms
|
|
64
|
+
context_reduction: 50% on timeout
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Fallback Chain
|
|
68
|
+
1. MCP tool (primary)
|
|
69
|
+
2. Subagent with same role config (fallback)
|
|
70
|
+
3. Ask user to enable MCP (last resort)
|
|
71
|
+
|
|
72
|
+
## Parallel vs Sequential
|
|
73
|
+
|
|
74
|
+
| Delegate Type | Execution |
|
|
75
|
+
|---------------|-----------|
|
|
76
|
+
| Read-only (pathfinder, scout) | Parallel OK |
|
|
77
|
+
| Analysis (sage) | Parallel OK |
|
|
78
|
+
| Write-capable (patch output) | Sequential only |
|
|
79
|
+
|
|
80
|
+
### Write-capable Rules
|
|
81
|
+
- One write delegate at a time
|
|
82
|
+
- Verify output before next delegate
|
|
83
|
+
- Host applies edits (delegate returns patch only)
|
|
84
|
+
- If delegate attempts direct edit, stop and re-run as patch-only
|
|
85
|
+
|
|
86
|
+
## Delegation Sequence
|
|
87
|
+
|
|
88
|
+
### Standard Task
|
|
89
|
+
```
|
|
90
|
+
1. pathfinder → find relevant files
|
|
91
|
+
2. [parallel] scout + sage → analyze
|
|
92
|
+
3. synthesize findings
|
|
93
|
+
4. execute changes
|
|
94
|
+
5. verify
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Ultrawork Mode (staged)
|
|
98
|
+
```
|
|
99
|
+
Stage 1 (Discovery):
|
|
100
|
+
- pathfinder: file structure + entrypoints
|
|
101
|
+
|
|
102
|
+
Stage 2 (Analysis):
|
|
103
|
+
- sage: deep reasoning (mandatory for complex tasks)
|
|
104
|
+
- scout: doc/pattern verification
|
|
105
|
+
|
|
106
|
+
Stage 3 (Review):
|
|
107
|
+
- additional roles as configured
|
|
108
|
+
|
|
109
|
+
Then: plan → execute → verify → cleanup
|
|
110
|
+
```
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Output Format Standards
|
|
2
|
+
|
|
3
|
+
All delegate outputs should follow these markdown formats for consistent parsing and readability.
|
|
4
|
+
|
|
5
|
+
## Standard Response Format
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
## Summary
|
|
9
|
+
one-line conclusion
|
|
10
|
+
|
|
11
|
+
## Confidence
|
|
12
|
+
high|medium|low
|
|
13
|
+
|
|
14
|
+
## Findings
|
|
15
|
+
- path/to/file.ts:42 - description (severity: critical|high|medium|low)
|
|
16
|
+
- path/to/other.ts:10 - another issue (severity: medium)
|
|
17
|
+
|
|
18
|
+
## Suggested Actions
|
|
19
|
+
1. [edit] path/to/file.ts - what to change
|
|
20
|
+
2. [create] path/to/new.ts - what to create
|
|
21
|
+
3. [run] npm test - verification command
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Analysis Response
|
|
25
|
+
|
|
26
|
+
For `sage` and analytical tasks:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
## Summary
|
|
30
|
+
one-line conclusion
|
|
31
|
+
|
|
32
|
+
## Confidence
|
|
33
|
+
high|medium|low
|
|
34
|
+
|
|
35
|
+
## Problem
|
|
36
|
+
problem description
|
|
37
|
+
|
|
38
|
+
## Root Cause
|
|
39
|
+
identified cause
|
|
40
|
+
|
|
41
|
+
## Impact
|
|
42
|
+
affected areas and scope
|
|
43
|
+
|
|
44
|
+
## Trade-offs
|
|
45
|
+
|
|
46
|
+
### Option A
|
|
47
|
+
- Pros: benefit 1, benefit 2
|
|
48
|
+
- Cons: drawback 1, drawback 2
|
|
49
|
+
|
|
50
|
+
### Option B
|
|
51
|
+
- Pros: benefit 1, benefit 2
|
|
52
|
+
- Cons: drawback 1, drawback 2
|
|
53
|
+
|
|
54
|
+
## Recommendation
|
|
55
|
+
recommended approach
|
|
56
|
+
|
|
57
|
+
## Reasoning
|
|
58
|
+
step-by-step reasoning for the recommendation
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Search Response
|
|
62
|
+
|
|
63
|
+
For `pathfinder` and `scout` tasks:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
## Summary
|
|
67
|
+
what was found
|
|
68
|
+
|
|
69
|
+
## Confidence
|
|
70
|
+
high|medium|low
|
|
71
|
+
|
|
72
|
+
## Results
|
|
73
|
+
- path/to/file.ts:10-25 (relevance: high)
|
|
74
|
+
code or text excerpt
|
|
75
|
+
why this is relevant
|
|
76
|
+
|
|
77
|
+
- path/to/other.ts:50 (relevance: medium)
|
|
78
|
+
another excerpt
|
|
79
|
+
relevance note
|
|
80
|
+
|
|
81
|
+
## Patterns
|
|
82
|
+
- identified pattern 1
|
|
83
|
+
- identified pattern 2
|
|
84
|
+
|
|
85
|
+
## Next Steps
|
|
86
|
+
- suggested follow-up search 1
|
|
87
|
+
- suggested follow-up search 2
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Patch Response
|
|
91
|
+
|
|
92
|
+
For edit suggestions:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
## Summary
|
|
96
|
+
what changes are proposed
|
|
97
|
+
|
|
98
|
+
## Confidence
|
|
99
|
+
high|medium|low
|
|
100
|
+
|
|
101
|
+
## Patches
|
|
102
|
+
|
|
103
|
+
### path/to/file.ts
|
|
104
|
+
|
|
105
|
+
#### Lines 10-12
|
|
106
|
+
Before:
|
|
107
|
+
original line 1
|
|
108
|
+
original line 2
|
|
109
|
+
|
|
110
|
+
After:
|
|
111
|
+
new line 1
|
|
112
|
+
new line 2
|
|
113
|
+
|
|
114
|
+
Reason: what this change does
|
|
115
|
+
|
|
116
|
+
### path/to/other.ts
|
|
117
|
+
|
|
118
|
+
#### Lines 5-7
|
|
119
|
+
Before:
|
|
120
|
+
old code
|
|
121
|
+
|
|
122
|
+
After:
|
|
123
|
+
new code
|
|
124
|
+
|
|
125
|
+
Reason: explanation
|
|
126
|
+
|
|
127
|
+
## Verification
|
|
128
|
+
- npm test
|
|
129
|
+
- npm run typecheck
|
|
130
|
+
Expected: all pass
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Checklist Response
|
|
134
|
+
|
|
135
|
+
For review and validation tasks:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
## Summary
|
|
139
|
+
overall assessment
|
|
140
|
+
|
|
141
|
+
## Confidence
|
|
142
|
+
high|medium|low
|
|
143
|
+
|
|
144
|
+
## Checklist
|
|
145
|
+
- [PASS] check description - explanation
|
|
146
|
+
- [FAIL] check description - path/to/file.ts:42 - what failed
|
|
147
|
+
- [WARN] check description - potential issue
|
|
148
|
+
- [SKIP] check description - why skipped
|
|
149
|
+
|
|
150
|
+
## Score
|
|
151
|
+
Passed: 5
|
|
152
|
+
Failed: 1
|
|
153
|
+
Warnings: 2
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Confidence Levels
|
|
157
|
+
|
|
158
|
+
| Level | Meaning | When to use |
|
|
159
|
+
|-------|---------|-------------|
|
|
160
|
+
| high | Strong evidence, clear conclusion | Verified against code/tests |
|
|
161
|
+
| medium | Reasonable inference, some uncertainty | Based on patterns, not verified |
|
|
162
|
+
| low | Speculation, needs verification | Incomplete context, edge cases |
|
|
163
|
+
|
|
164
|
+
## Error Response
|
|
165
|
+
|
|
166
|
+
When delegate cannot complete:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
## Error
|
|
170
|
+
type: timeout|parse_error|insufficient_context|unsupported
|
|
171
|
+
|
|
172
|
+
## Message
|
|
173
|
+
description of failure
|
|
174
|
+
|
|
175
|
+
## Partial Result
|
|
176
|
+
any partial findings if available
|
|
177
|
+
|
|
178
|
+
## Suggestion
|
|
179
|
+
how to recover or retry
|
|
180
|
+
```
|