@jaggerxtrm/specialists 3.4.0 → 3.4.2

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.
@@ -99,15 +99,15 @@ lines.push('');
99
99
  lines.push('```');
100
100
  lines.push('specialists list # discover available specialists');
101
101
  lines.push('specialists run <name> --prompt "..." # run foreground (streams output)');
102
- lines.push('specialists run <name> --prompt "..." --background # run async returns job ID');
103
- lines.push('specialists run <name> --follow # background + stream live output');
102
+ lines.push('process start "specialists run <name> --prompt "..."" name="sp-<name>" # async via process extension');
103
+ lines.push('specialists run <name> --prompt "..." # foreground stream');
104
104
  lines.push('specialists feed <job-id> --follow # tail live events');
105
105
  lines.push('specialists result <job-id> # read final output');
106
106
  lines.push('specialists status # system health');
107
107
  lines.push('specialists doctor # troubleshoot issues');
108
108
  lines.push('```');
109
109
  lines.push('');
110
- lines.push('MCP tools: specialist_init · use_specialist · start_specialist · poll_specialist · run_parallel');
110
+ lines.push('MCP tools: specialist_init · use_specialist · start_specialist · feed_specialist · run_parallel');
111
111
 
112
112
  // ── Output ─────────────────────────────────────────────────────────────────
113
113
  if (lines.length === 0) process.exit(0);
@@ -1,3 +1,13 @@
1
+ ---
2
+ name: specialists-creator
3
+ description: >
4
+ Use this skill when creating or fixing a specialist definition. It guides the
5
+ agent through writing a valid `.specialist.yaml`, choosing supported models,
6
+ validating against the schema, and avoiding common specialist authoring
7
+ mistakes.
8
+ version: 1.0
9
+ ---
10
+
1
11
  # Specialist Author Guide
2
12
 
3
13
  > Source of truth: `src/specialist/schema.ts` | Runtime: `src/specialist/runner.ts`
@@ -73,7 +83,7 @@ Read both outputs carefully:
73
83
  |------|-----------------------|------------------------|
74
84
  | **Heavy** — deep reasoning, multi-phase, architecture | `overthinker`, `feature-design`, `bug-hunt`, `planner`, `parallel-review` | Opus / Pro / GLM-5 |
75
85
  | **Standard** — code generation, review, authoring, docs | `codebase-explorer`, `specialist-author`, `sync-docs`, `xt-merge` | Sonnet / Flash-Pro |
76
- | **Light** — fast context, reporting, test runs | `init-session`, `report-generator`, `test-runner`, `auto-remediation` | Haiku / Flash |
86
+ | **Light** — fast context, reporting, test runs | `init-session`, `report-generator`, `test-runner` | Haiku / Flash |
77
87
 
78
88
  Adjust tiers based on what the user actually has installed. Custom specialists: read their `description` and `permission_required` to infer tier.
79
89
 
@@ -202,10 +212,20 @@ bun skills/specialist-author/scripts/validate-specialist.ts specialists/my-speci
202
212
  | `mode` | enum | `auto` | `tool` \| `skill` \| `auto` |
203
213
  | `timeout_ms` | number | `120000` | ms |
204
214
  | `stall_timeout_ms` | number | — | kill if no event for N ms |
215
+ | `interactive` | boolean | `false` | enable multi-turn keep-alive by default |
205
216
  | `response_format` | enum | `text` | `text` \| `json` \| `markdown` |
206
217
  | `permission_required` | enum | `READ_ONLY` | see tier table below |
207
218
  | `thinking_level` | enum | — | `off` \| `minimal` \| `low` \| `medium` \| `high` \| `xhigh` |
208
219
 
220
+ **When to use `execution.interactive`**
221
+
222
+ - Set `interactive: true` for specialists intended for multi-turn workflows (`resume`, iterative planning, long investigations).
223
+ - Leave it unset/`false` for one-shot specialists where each run should end immediately.
224
+ - Run-level overrides still apply:
225
+ - CLI: `--keep-alive` enables, `--no-keep-alive` disables.
226
+ - MCP `start_specialist`: `keep_alive` enables, `no_keep_alive` disables.
227
+ - Effective precedence: explicit disable (`--no-keep-alive` / `no_keep_alive`) → explicit enable (`--keep-alive` / `keep_alive`) → `execution.interactive` → one-shot default.
228
+
209
229
  **Permission tiers** — controls which pi tools are available:
210
230
 
211
231
  | Level | pi --tools | Use when |
@@ -410,6 +430,7 @@ specialist:
410
430
  fallback_model: google-gemini-cli/gemini-3.1-pro-preview
411
431
  timeout_ms: 300000
412
432
  stall_timeout_ms: 60000
433
+ interactive: true # default keep-alive; supports resume flows
413
434
  response_format: markdown
414
435
  permission_required: READ_ONLY # not READ_WRITE
415
436
 
@@ -5,14 +5,16 @@ description: >
5
5
  ask whether to delegate. Consult before any: code review, security audit, deep bug
6
6
  investigation, test generation, multi-file refactor, or architecture analysis. Also
7
7
  use for the mechanics of delegation: --bead workflow, --context-depth, background
8
- jobs, MCP tools (use_specialist, start_specialist, poll_specialist), specialists init,
8
+ jobs, MCP tools (use_specialist, start_specialist, feed_specialist), specialists init,
9
9
  or specialists doctor. Don't wait for the user to say "use a specialist" — proactively
10
10
  evaluate whether delegation makes sense.
11
- version: 3.1
11
+ version: 3.6
12
12
  ---
13
13
 
14
14
  # Specialists Usage
15
15
 
16
+ When this skill is loaded, you are a **coordinator first**: delegate substantial work to specialists, monitor progress, and synthesize outcomes for the user.
17
+
16
18
  Specialists are autonomous AI agents that run independently — fresh context, different
17
19
  model, no prior bias. Delegate when a task would take you significant effort, spans
18
20
  multiple files, or benefits from a dedicated focused run.
@@ -29,6 +31,8 @@ Before starting any substantial task, ask: is this worth delegating?
29
31
  - It spans multiple files or modules
30
32
  - A fresh perspective adds value (code review, security audit)
31
33
  - It can run in the background while you do other things
34
+ - You have multiple independent tasks — dispatch them as a wave
35
+ - It's a review/analysis loop (audit → approve/deny → resume) that benefits from interactive keep-alive
32
36
 
33
37
  **Do it yourself when:**
34
38
  - It's a single-file edit or quick config change
@@ -44,24 +48,60 @@ When in doubt, delegate. Specialists run in parallel — you don't have to wait.
44
48
  For tracked work, always use `--bead`. This gives the specialist your issue as context,
45
49
  links results back to the tracker, and creates an audit trail.
46
50
 
51
+ ### CLI commands
52
+
53
+ ```bash
54
+ specialists init # first-time project setup
55
+ specialists list # discover available specialists
56
+ specialists run <name> --bead <id> # foreground run (streams output)
57
+ specialists run <name> --prompt "..." # ad-hoc (no bead tracking)
58
+ specialists feed -f # tail merged feed (all jobs)
59
+ specialists feed <job-id> # events for a specific job
60
+ specialists result <job-id> # final output text
61
+ specialists steer <job-id> "new direction" # redirect ANY running job mid-run
62
+ specialists resume <job-id> "next task" # resume a waiting keep-alive job
63
+ specialists stop <job-id> # cancel a job
64
+ specialists edit <name> # edit a specialist's YAML config
65
+ specialists status --job <job-id> # single-job detail view
66
+ specialists clean # purge old job directories
67
+ specialists doctor # health check
68
+ ```
69
+
70
+ ### Typical flow
71
+
47
72
  ```bash
48
73
  # 1. Create a bead describing what you need
49
- bd create --title "Audit authentication module for security issues" --type task --priority 2
50
- # unitAI-abc
74
+ bd create --title "Fix auth token refresh bug" --type bug --priority 2
75
+ # -> unitAI-abc
51
76
 
52
- # 2. Find and run the right specialist
53
- specialists list
54
- specialists run security-audit --bead unitAI-abc --background
77
+ # 2. Run the right specialist against the bead
78
+ specialists run executor --bead unitAI-abc &
79
+ # -> Job started: a1b2c3
55
80
 
56
- # 3. Keep working; check in when ready
57
- specialists feed -f
81
+ # 3. Monitor (pick one)
82
+ specialists feed a1b2c3 # check events so far
83
+ specialists feed -f # tail all active jobs
58
84
 
59
85
  # 4. Read results and close
60
- specialists result <job-id>
61
- bd close unitAI-abc --reason "2 issues found, filed as follow-ups"
86
+ specialists result a1b2c3
87
+ bd close unitAI-abc --reason "Fixed: token refresh now retries on 401"
88
+ ```
89
+
90
+ ### Giving specialists extra context via bead notes
91
+
92
+ `--prompt` and `--bead` cannot be combined. When you need to give a specialist
93
+ specific instructions beyond what's in the bead description, update the bead notes first:
94
+
95
+ ```bash
96
+ bd update unitAI-abc --notes "INSTRUCTION: Rewrite docs/cli-reference.md from current
97
+ source. Read every command in src/cli/ and src/index.ts. Document all flags and examples."
98
+
99
+ specialists run executor --bead unitAI-abc &
62
100
  ```
63
101
 
64
- **`--background`** returns immediately; use for anything that will take more than ~30 seconds.
102
+ This pattern was used extensively in Wave 5 of a real session 4 executors all received
103
+ writing instructions via bead notes and successfully produced doc files.
104
+
65
105
  **`--context-depth N`** — how many levels of parent-bead context to inject (default: 1).
66
106
  **`--no-beads`** — skip creating an auto-tracking sub-bead, but still reads the `--bead` input.
67
107
 
@@ -71,61 +111,178 @@ bd close unitAI-abc --reason "2 issues found, filed as follow-ups"
71
111
 
72
112
  Run `specialists list` to see what's available. Match by task type:
73
113
 
74
- | Task type | Look for |
75
- |-----------|----------|
76
- | Bug / regression investigation | `debugger`, `overthinker` |
77
- | Code review | `parallel-review`, `codebase-explorer` |
78
- | Test generation | `test-runner` |
79
- | Architecture / exploration | `codebase-explorer`, `feature-design` |
80
- | Planning / scoping | `planner` |
81
- | Documentation sync | `sync-docs` |
82
-
83
- When unsure, read descriptions: `specialists list --json | jq '.[].description'`
114
+ | Task type | Best specialist | Why |
115
+ |-----------|----------------|-----|
116
+ | Bug fix / implementation | **executor** (gpt-5.3-codex) | HIGH perms, writes code + tests autonomously |
117
+ | Bug investigation / "why is X broken" | **debugger** (claude-sonnet-4-6) | GitNexus-first triage, 5-phase investigation, hypothesis ranking, evidence-backed remediation. Use for ANY root cause analysis. |
118
+ | Design decisions / tradeoffs | **overthinker** (gpt-5.4) | 4-phase reasoning: analysis, devil's advocate, synthesis, conclusion. Interactive by default (`execution.interactive: true`). |
119
+ | Code review / compliance | **reviewer** (claude-sonnet-4-6) | Post-run compliance checks, verdict contract (PASS/PARTIAL/FAIL). Interactive by default (`execution.interactive: true`). |
120
+ | Multi-backend review | **parallel-review** (claude-sonnet-4-6) | Concurrent review across multiple AI backends |
121
+ | Architecture exploration | **explorer** (claude-haiku-4-5) | Fast codebase mapping, READ_ONLY |
122
+ | Reference docs / dense schemas | **explorer** (claude-haiku-4-5) | Better than sync-docs for reference-heavy output |
123
+ | Planning / scoping | **planner** (claude-sonnet-4-6) | Structured issue breakdown with deps |
124
+ | Doc audit / drift detection | **sync-docs** (claude-sonnet-4-6) | Interactive by default (`execution.interactive: true`): audits first, then approve/deny via `resume` |
125
+ | Doc drift / audit | **sync-docs** (claude-sonnet-4-6) | Detects stale docs, restructures content |
126
+ | Doc writing / updates | **executor** (gpt-5.3-codex) | sync-docs defaults to audit mode; executor writes files |
127
+ | Test generation | **test-runner** (claude-haiku-4-5) | Runs suites, interprets failures |
128
+ | Specialist authoring | **specialists-creator** (claude-sonnet-4-6) | Guides YAML creation against schema |
129
+
130
+ ### Specialist selection lessons (from real sessions)
131
+
132
+ - **debugger** is the most powerful investigation specialist. Uses GitNexus call-chain tracing (when available) for 5-phase root cause analysis with ranked hypotheses. Use for ANY "why is X broken" question — don't do the investigation yourself.
133
+ - **sync-docs** is an interactive specialist — it audits first, then waits for approval before executing. This is correct behavior, not a bug.
134
+ - **overthinker** and **reviewer** are also interactive.
135
+ - Canonical pattern: use `start_specialist` / `specialists run` normally; interactive specialists now default to keep-alive via `execution.interactive: true`.
136
+ - Use `--no-keep-alive` only when you explicitly want a one-shot run.
137
+ - **explorer** is fast and cheap (Haiku) but READ_ONLY — output auto-appends to the input bead's notes. Use for investigation, not implementation.
138
+ - **executor** is the workhorse — HIGH permissions, writes code and docs, runs tests, closes beads. Best for any task that needs files written.
139
+ - **use_specialist MCP** is best for quick foreground runs where you need the result immediately in your context.
140
+
141
+ ### Pi extensions availability (known gap)
142
+
143
+ GitNexus and Serena are **pi extensions** (not MCP servers) at `~/.pi/agent/extensions/`.
144
+ Specialists run with `--no-extensions` and only selectively re-enable `quality-gates` and
145
+ `service-skills`. GitNexus (call-chain tracing for debugger/planner) and Serena LSP
146
+ (token-efficient reads for explorer/executor) are NOT currently wired. Tracked as `unitAI-4abv`.
84
147
 
85
148
  ---
86
149
 
87
- ## When a Specialist Fails
150
+ ## Steering and Resume
151
+
152
+ ### Steer — redirect any running job
88
153
 
89
- If a specialist times out or errors, **don't silently fall back to doing the work yourself**.
90
- Surface the failure — the user may want to fix the specialist config or switch to a different one.
154
+ `steer` sends a message to a running specialist. Delivered after the current tool call
155
+ finishes, before the next LLM call. Works for **all running jobs**.
91
156
 
92
157
  ```bash
93
- specialists feed <job-id> # see what happened
94
- specialists doctor # check for systemic issues
158
+ # Specialist is going off track — redirect it
159
+ specialists steer a1b2c3 "STOP what you are doing. Focus only on supervisor.ts"
160
+
161
+ # Specialist is auditing when it should be writing
162
+ specialists steer a1b2c3 "Do NOT audit. Write the actual file to disk now."
163
+ ```
164
+
165
+ Real example from today: an explorer was reading every file in src/cli/ when we only needed
166
+ confirmation that steering worked. Sent `specialists steer 763ff4 "STOP. Just output:
167
+ STEERING WORKS"` — message delivered, output confirmed in 2 seconds.
168
+
169
+ ### Resume — continue an interactive session
170
+
171
+ `resume` sends a new prompt to a specialist that has finished its turn and is `waiting`.
172
+ Works for jobs started with keep-alive behavior (including specialists with `execution.interactive: true`).
173
+ The session retains full conversation history.
174
+
175
+ ```bash
176
+ # Start an overthinker for multi-turn design work
177
+ # overthinker is interactive by default, so no extra flag is required
178
+ specialists run overthinker --bead unitAI-xyz &
179
+ # -> Job started: d4e5f6 (completes Phase 4, enters waiting state)
180
+
181
+ # Read the design output
182
+ specialists result d4e5f6
183
+
184
+ # Ask follow-up questions
185
+ specialists resume d4e5f6 "What about backward compatibility with existing YAML files?"
186
+ specialists resume d4e5f6 "How would you handle migration from the old schema?"
95
187
  ```
96
188
 
97
- If you need to retry: try foreground mode (no `--background`) for shorter timeout exposure,
98
- or try a different specialist. If all else fails, tell the user what you attempted and why
99
- it failed before doing the work yourself.
189
+ Use interactive specialists when you plan to iterate: design reviews, multi-phase analysis,
190
+ investigation that may need follow-up questions based on findings.
191
+ Use `--no-keep-alive` only when you want to force single-turn behavior.
100
192
 
101
193
  ---
102
194
 
103
- ## Ad-Hoc (No Tracking)
195
+ ## Wave Orchestration
196
+
197
+ For multiple independent tasks, dispatch specialists in parallel waves.
198
+
199
+ ### Planning a wave
200
+
201
+ Group tasks by dependency:
202
+ 1. **Wave 1**: Bug fixes and blockers (unblock downstream work)
203
+ 2. **Wave 2**: Features and design (now that the surface is stable)
204
+ 3. **Wave 3**: Documentation (after code changes land — use executors, not sync-docs)
205
+
206
+ ### Dispatching a wave
104
207
 
105
208
  ```bash
106
- specialists run codebase-explorer --prompt "Map the feed command architecture"
209
+ # Fire multiple specialists in parallel (--background for reliable detach)
210
+ specialists run executor --bead unitAI-abc --background
211
+ specialists run executor --bead unitAI-def --background
212
+ specialists run overthinker --bead unitAI-ghi --background
107
213
  ```
108
214
 
109
- Use `--prompt` only for throwaway exploration. For anything worth remembering, use `--bead`.
215
+ ### Monitoring a wave
216
+
217
+ ```bash
218
+ # Quick status check on all jobs
219
+ for job in abc123 def456 ghi789; do
220
+ python3 -c "import json; d=json.load(open('.specialists/jobs/$job/status.json')); \
221
+ print(f'$job {d[\"specialist\"]:12} {d[\"status\"]:10} {d.get(\"elapsed_s\",\"?\")}s')"
222
+ done
223
+
224
+ # Or use feed for event-level detail
225
+ specialists feed <job-id>
226
+ ```
227
+
228
+ ### Between waves
229
+
230
+ After each wave completes:
231
+ 1. **Read results**: `specialists result <job-id>` for each
232
+ 2. **Validate**: run lint + tests on the combined output
233
+ 3. **Commit**: stage, commit, push — clean git before next wave
234
+ 4. **Close beads**: `bd close <id> --reason "..."`
235
+
236
+ ### Real wave example (from a 6-wave session)
237
+
238
+ ```
239
+ Wave 1: 2x executor → fixed --background flag + migrated start_specialist to Supervisor
240
+ Wave 2: overthinker + 2x executor → output contract design + retry logic + footer fix
241
+ Wave 3: 4x sync-docs + 3x explorer → docs audit (produced reports, not files)
242
+ Wave 4: 5x executor + 2x explorer → output contract impl + READ_ONLY auto-append + 4 fixes
243
+ Wave 5: 4x executor → rewrote 4 doc files (executors write files, sync-docs only audits)
244
+ Wave 6: 4x executor + overthinker (interactive) → cleanup + manifest design with follow-ups
245
+ ```
246
+
247
+ Key insight: **executors write files, sync-docs audits**. When you need docs written
248
+ to disk, use executor with bead notes containing "INSTRUCTION: Write <file>...".
110
249
 
111
250
  ---
112
251
 
113
- ## Example: Delegation in Practice
252
+ ## Coordinator Responsibilities
114
253
 
115
- You're asked to review `src/auth/` for security issues. Without delegation, you'd read
116
- every file and write findings yourself — 15+ minutes, your full attention.
254
+ As the orchestrator, you own things specialists cannot do:
117
255
 
118
- With a specialist:
256
+ ### 1. Validate combined output across specialists
257
+ Multiple specialists writing to the same worktree can conflict. After each wave:
119
258
  ```bash
120
- bd create --title "Security review: src/auth/" --type task --priority 1 # → unitAI-xyz
121
- specialists list --category security
122
- specialists run security-audit --bead unitAI-xyz --background # → job_4a2b1c
123
- # go do other work
124
- specialists result job_4a2b1c
125
- bd close unitAI-xyz --reason "Found 2 issues, filed unitAI-abc, unitAI-def"
259
+ npm run lint # or project-specific quality gate
260
+ bun test # run affected tests
261
+ git diff --stat # review what changed
262
+ ```
263
+
264
+ ### 2. Handle failures don't silently fall back
265
+ If a specialist stalls or errors, surface it. Don't quietly do the work yourself.
266
+ ```bash
267
+ specialists feed <job-id> # see what happened
268
+ specialists doctor # check for systemic issues
126
269
  ```
127
270
 
128
- The specialist runs with full bead context, on a model tuned for the task, while you stay unblocked.
271
+ Options when a specialist fails:
272
+ - **Steer** it back on track: `specialists steer <id> "Focus on X instead"`
273
+ - **Switch specialist** (e.g., sync-docs stalls → try explorer or executor)
274
+ - **Stop and report** to the user before doing it yourself
275
+
276
+ ### 3. Close beads and commit between waves
277
+ Keep git clean between waves. Specialists write to the same worktree, so stacking
278
+ uncommitted changes from multiple waves creates merge pain.
279
+
280
+ ### 4. Run drift detection after doc-heavy sessions
281
+ ```bash
282
+ python3 .agents/skills/sync-docs/scripts/drift_detector.py scan --json
283
+ # Then dispatch executor for any stale docs, stamp synced_at on fresh ones:
284
+ python3 .agents/skills/sync-docs/scripts/drift_detector.py update-sync <file>
285
+ ```
129
286
 
130
287
  ---
131
288
 
@@ -137,22 +294,76 @@ Available after `specialists init` and session restart.
137
294
  |------|---------|
138
295
  | `specialist_init` | Bootstrap once per session |
139
296
  | `use_specialist` | Foreground run; pass `bead_id` for tracked work |
140
- | `start_specialist` | Async: returns job ID immediately |
141
- | `poll_specialist` | Check status + delta output |
142
- | `stop_specialist` | Cancel |
143
- | `run_parallel` | Concurrent or pipeline execution |
297
+ | `start_specialist` | Async: returns job ID immediately (Supervisor-backed) |
298
+ | `feed_specialist` | Cursor-paginated run events (status + deltas) |
299
+ | `resume_specialist` | Next-turn prompt for keep-alive jobs in `waiting` |
300
+ | `steer_specialist` | Mid-run steering message for active jobs |
301
+ | `stop_specialist` | Cancel (sends SIGTERM to job PID) |
144
302
  | `specialist_status` | Circuit breaker health + staleness |
145
303
 
304
+ ### CLI vs MCP equivalences
305
+
306
+ | Action | CLI | MCP |
307
+ |--------|-----|-----|
308
+ | Run foreground (one-shot) | `specialists run <name> --bead <id>` | `use_specialist({name, bead_id})` |
309
+ | Run background (interactive-capable) | `specialists run <name> --bead <id> --background` | `start_specialist({name, bead_id})` |
310
+ | Monitor events | `specialists feed <job-id>` | `feed_specialist({job_id, cursor})` |
311
+ | Read result | `specialists result <job-id>` | — (CLI only) |
312
+ | Steer mid-run | `specialists steer <job-id> "msg"` | `steer_specialist({job_id, message})` |
313
+ | Resume waiting | `specialists resume <job-id> "task"` | `resume_specialist({job_id, task})` |
314
+ | Cancel | `specialists stop <job-id>` | `stop_specialist({job_id})` |
315
+
316
+ **Canonical pattern:** `use_specialist` is one-shot. For interactive review/analysis flows,
317
+ use `start_specialist` then `resume_specialist`.
318
+
319
+ **Prefer CLI** for most orchestration work — it's simpler and output is easier to inspect.
320
+ **Use MCP** (`use_specialist`) when you need a direct one-shot result in your conversation context.
321
+
322
+ ---
323
+
324
+ ## feed_specialist Observation Pattern
325
+
326
+ Use cursor-based polling for structured progress when monitoring long specialist runs:
327
+
328
+ ```bash
329
+ # first read
330
+ feed_specialist({job_id: "abc123"})
331
+ # => {events:[...], next_cursor: 12, has_more: true, is_complete: false}
332
+
333
+ # continue from cursor
334
+ feed_specialist({job_id: "abc123", cursor: 12})
335
+ # => {events:[...], next_cursor: 25, has_more: false, is_complete: true}
336
+ ```
337
+
338
+ When `is_complete: true` and `has_more: false`, fetch final text with:
339
+
340
+ ```bash
341
+ specialists result <job-id>
342
+ ```
343
+
344
+ ---
345
+
346
+ ## Known Issues
347
+
348
+ - **sync-docs audit-first behavior is expected** for interactive review/audit flow.
349
+ Start normally, read the audit output, then `specialists resume <job-id> "approved: execute phase 4-5"`
350
+ if you want it to apply fixes.
351
+ - **READ_ONLY output auto-appends** to the input bead after completion. No manual piping
352
+ needed (fixed in the Supervisor). But the output also lives in `specialists result`.
353
+
146
354
  ---
147
355
 
148
356
  ## Setup and Troubleshooting
149
357
 
150
358
  ```bash
151
- specialists init # first-time setup: creates specialists/, wires AGENTS.md
359
+ specialists init # first-time setup: creates .specialists/, wires AGENTS.md/CLAUDE.md
152
360
  specialists doctor # health check: hooks, MCP, zombie jobs
361
+ specialists edit <name> # edit a specialist's YAML config
153
362
  ```
154
363
 
155
364
  - **"specialist not found"** → `specialists list` (project-scope only)
156
- - **Job hangs** → `specialists feed <id>`; `specialists stop` to cancel
365
+ - **Job hangs** → `specialists steer <id> "finish up"` or `specialists stop <id>`
157
366
  - **MCP tools missing** → `specialists init` then restart Claude Code
158
367
  - **YAML skipped** → stderr shows `[specialists] skipping <file>: <reason>`
368
+ - **Stall timeout** → specialist hit 120s inactivity. Check `specialists feed <id>`, then retry or switch specialist.
369
+ - **`--prompt` and `--bead` conflict** → use bead notes: `bd update <id> --notes "INSTRUCTION: ..."` then `--bead` only.
@@ -21,7 +21,8 @@ specialist:
21
21
  mode: tool
22
22
  model: anthropic/claude-sonnet-4-6
23
23
  fallback_model: qwen-cli/qwen3-coder-plus
24
- timeout_ms: 600000
24
+ timeout_ms: 0
25
+ stall_timeout_ms: 120000
25
26
  response_format: markdown
26
27
  permission_required: LOW
27
28
  thinking_level: low
@@ -103,9 +104,18 @@ specialist:
103
104
  Then trace call chains with gitnexus_context. Read source files for pinpointed suspects.
104
105
  Fall back to grep/find if GitNexus is unavailable. Produce a full Bug Investigation Report.
105
106
 
107
+ skills:
108
+ paths:
109
+ - .agents/skills/xt-debugging/SKILL.md
110
+
106
111
  capabilities:
107
112
  required_tools: [bash, grep, find, read]
108
113
  external_commands: [grep]
109
114
 
110
- communication:
111
- next_specialists: auto-remediation
115
+ validation:
116
+ files_to_watch:
117
+ - src/specialist/schema.ts
118
+ - src/specialist/runner.ts
119
+ - .agents/skills/xt-debugging/SKILL.md
120
+ stale_threshold_days: 30
121
+