@jaggerxtrm/specialists 3.3.4 → 3.4.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/README.md +4 -2
- package/bin/install.js +15 -204
- package/config/skills/using-specialists/SKILL.md +1 -1
- package/config/specialists/debugger.specialist.yaml +111 -0
- package/config/specialists/explorer.specialist.yaml +1 -1
- package/dist/index.js +791 -566
- package/package.json +1 -1
- package/config/skills/specialists-usage-workspace/iteration-1/eval-bead-background/old_skill/outputs/result.md +0 -105
- package/config/skills/specialists-usage-workspace/iteration-1/eval-bead-background/with_skill/outputs/result.md +0 -93
- package/config/skills/specialists-usage-workspace/iteration-1/eval-fresh-setup/old_skill/outputs/result.md +0 -113
- package/config/skills/specialists-usage-workspace/iteration-1/eval-fresh-setup/with_skill/outputs/result.md +0 -131
- package/config/skills/specialists-usage-workspace/iteration-1/eval-yaml-debug/old_skill/outputs/result.md +0 -159
- package/config/skills/specialists-usage-workspace/iteration-1/eval-yaml-debug/with_skill/outputs/result.md +0 -150
- package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/with_skill/outputs/result.md +0 -180
- package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/with_skill/timing.json +0 -5
- package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/without_skill/outputs/result.md +0 -223
- package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/without_skill/timing.json +0 -5
- package/config/skills/specialists-usage-workspace/iteration-2/eval-code-review/with_skill/timing.json +0 -5
- package/config/skills/specialists-usage-workspace/iteration-2/eval-code-review/without_skill/outputs/result.md +0 -146
- package/config/skills/specialists-usage-workspace/iteration-2/eval-code-review/without_skill/timing.json +0 -5
- package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/with_skill/outputs/result.md +0 -89
- package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/with_skill/timing.json +0 -5
- package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/without_skill/outputs/result.md +0 -96
- package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/without_skill/timing.json +0 -5
- package/config/skills/specialists-usage-workspace/skill-snapshot/SKILL.md.old +0 -237
- package/config/specialists/bug-hunt.specialist.yaml +0 -96
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaggerxtrm/specialists",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "OmniSpecialist — 7-tool MCP orchestration layer powered by the Specialist System. Discover and execute .specialist.yaml files across project/user/system scopes via pi.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# Background Bug Hunt: Step-by-Step Commands
|
|
2
|
-
|
|
3
|
-
## Scenario
|
|
4
|
-
You have a beads issue `unitAI-xyz` assigned for deep bug investigation in the auth module.
|
|
5
|
-
You want to run the `bug-hunt` specialist in the background.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Step 1: Verify the specialist exists
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
specialists list
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Or filter if there are many:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
specialists list --category analysis
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Confirm `bug-hunt` appears in the output. If it does not, it is not installed in the project scope (`./specialists/*.specialist.yaml`).
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Step 2: Start the specialist in the background
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
specialists run bug-hunt --bead unitAI-xyz --background
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
This returns immediately with a job ID, for example:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
Job started: job_a1b2c3d4
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
The specialist will read the bead context from `unitAI-xyz` (title, description, linked files) and use it as its prompt. No `--prompt` flag is needed — `--bead` is the canonical input for tracked work.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Step 3: Monitor progress
|
|
42
|
-
|
|
43
|
-
Follow all active jobs live (recommended):
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
specialists feed -f
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Or follow only this job:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
specialists feed job_a1b2c3d4 --follow
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
You will see event types as they arrive:
|
|
56
|
-
- `text` — streamed output tokens
|
|
57
|
-
- `thinking` — model reasoning
|
|
58
|
-
- `tool` — specialist invoking a tool
|
|
59
|
-
- `run_complete` — job finished
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Step 4: Read the result when done
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
specialists result job_a1b2c3d4
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Capture to a file if desired:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
specialists result job_a1b2c3d4 > auth-bug-hunt.md
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Step 5: Close the bead
|
|
78
|
-
|
|
79
|
-
Once you have reviewed the findings:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
bd close unitAI-xyz --reason "Bug investigation complete, findings documented"
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Summary of all commands
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
specialists list
|
|
91
|
-
specialists run bug-hunt --bead unitAI-xyz --background
|
|
92
|
-
# → Job started: job_a1b2c3d4
|
|
93
|
-
specialists feed -f
|
|
94
|
-
specialists result job_a1b2c3d4
|
|
95
|
-
bd close unitAI-xyz --reason "Bug investigation complete, findings documented"
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Notes
|
|
101
|
-
|
|
102
|
-
- Do not use `--prompt` when passing `--bead` — the bead supplies the context.
|
|
103
|
-
- Use `--context-depth 2` if the bead has upstream dependencies worth injecting (e.g., a parent issue describing broader scope).
|
|
104
|
-
- If the job hangs, run `specialists stop job_a1b2c3d4` then check `specialists feed job_a1b2c3d4` for the last event.
|
|
105
|
-
- If `bug-hunt` is not found, run `specialists doctor` to check for YAML errors or missing specialist files.
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# Running bug-hunt Specialist in Background for unitAI-xyz
|
|
2
|
-
|
|
3
|
-
You already have a beads issue `unitAI-xyz` assigned to you. Because this is a deep bug investigation (long-running, benefits from a dedicated expert), you should use the bead-first workflow with `--background`.
|
|
4
|
-
|
|
5
|
-
## Exact Commands to Run
|
|
6
|
-
|
|
7
|
-
### Step 1 — Verify the specialist exists
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
specialists list
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Look for `bug-hunt` in the output. If it does not appear, only project-scoped specialists are searched (`./specialists/*.specialist.yaml`). Confirm the file exists in your project.
|
|
14
|
-
|
|
15
|
-
### Step 2 — Start the specialist in the background, linked to your bead
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
specialists run bug-hunt --bead unitAI-xyz --background
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
This returns immediately with a job ID, for example:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
Job started: job_a1b2c3d4
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
The specialist's system prompt will automatically have the context from bead `unitAI-xyz` injected (at the default depth of 1). If the auth module issue has related parent/child beads you want included, add `--context-depth 2` (or higher):
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
specialists run bug-hunt --bead unitAI-xyz --background --context-depth 2
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Step 3 — Monitor progress (live feed)
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
specialists feed job_a1b2c3d4 --follow
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Or follow all active jobs at once:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
specialists feed -f
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Event types you will see:
|
|
46
|
-
- `text` — streamed output tokens
|
|
47
|
-
- `thinking` — model reasoning
|
|
48
|
-
- `tool` — specialist calling a tool
|
|
49
|
-
- `run_complete` — job finished
|
|
50
|
-
|
|
51
|
-
### Step 4 — Read the final result once complete
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
specialists result job_a1b2c3d4
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Capture to a file if you want to preserve it:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
specialists result job_a1b2c3d4 > auth-bug-investigation.md
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
You will also see a completion banner injected into your next prompt:
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
[Specialist 'bug-hunt' completed (job job_a1b2c3d4, 42s). Run: specialists result job_a1b2c3d4]
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Step 5 — Close the bead when the investigation is done
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
bd close unitAI-xyz --reason "Bug investigation complete — findings in auth-bug-investigation.md"
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### If you need to cancel
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
specialists stop job_a1b2c3d4
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Summary of the Full Command Sequence
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
specialists list # confirm bug-hunt exists
|
|
87
|
-
specialists run bug-hunt --bead unitAI-xyz --background # start async job
|
|
88
|
-
# → Job started: job_a1b2c3d4
|
|
89
|
-
|
|
90
|
-
specialists feed job_a1b2c3d4 --follow # monitor live
|
|
91
|
-
specialists result job_a1b2c3d4 # read output when done
|
|
92
|
-
bd close unitAI-xyz --reason "Investigation complete" # close the bead
|
|
93
|
-
```
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# Fresh Setup: Specialists Walkthrough
|
|
2
|
-
|
|
3
|
-
## Step 1 — Initialize Specialists in Your Project
|
|
4
|
-
|
|
5
|
-
Run this once from your project root:
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
specialists init
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
This creates the `specialists/` and `.specialists/` directories and injects the workflow into `AGENTS.md`. Verify it worked:
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
specialists list
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
You should see the available specialists, including `code-review`.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Step 2 — Delegate the Code Review as a Background Job
|
|
22
|
-
|
|
23
|
-
Since you want to keep working while the review runs, use `--background` mode.
|
|
24
|
-
|
|
25
|
-
### Option A: Ad-hoc (no tracking bead)
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
specialists run code-review --prompt "Review src/api.ts for correctness, security, and style issues" --background
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
This returns immediately with a job ID, for example:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
Job started: job_a1b2c3d4
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Option B: Tracked with a bead (recommended for real work)
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Create a bead to track the review
|
|
41
|
-
bd create --title "Code review: src/api.ts" --type task --priority 2
|
|
42
|
-
# → unitAI-abc
|
|
43
|
-
|
|
44
|
-
# Run the specialist, linking it to the bead
|
|
45
|
-
specialists run code-review --bead unitAI-abc --background
|
|
46
|
-
# → Job started: job_a1b2c3d4
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Step 3 — Keep Working
|
|
52
|
-
|
|
53
|
-
The specialist is now running asynchronously. You can continue with whatever else you need to do. The job runs in the background and does not block your session.
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Step 4 — Monitor Progress (Optional)
|
|
58
|
-
|
|
59
|
-
To tail live output from all active jobs:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
specialists feed -f
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
To follow just this job:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
specialists feed job_a1b2c3d4 --follow
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Step 5 — Read the Result When Done
|
|
74
|
-
|
|
75
|
-
When the job completes, you will see a completion banner on your next prompt:
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
[Specialist 'code-review' completed (job job_a1b2c3d4, 42s). Run: specialists result job_a1b2c3d4]
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Retrieve the full output:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
specialists result job_a1b2c3d4
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Capture it to a file:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
specialists result job_a1b2c3d4 > review-api.md
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Step 6 — Close the Bead (If You Used One)
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
bd close unitAI-abc --reason "Review complete, addressed findings"
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Summary
|
|
104
|
-
|
|
105
|
-
| Step | Command |
|
|
106
|
-
|------|---------|
|
|
107
|
-
| Initialize project | `specialists init` |
|
|
108
|
-
| Verify specialists | `specialists list` |
|
|
109
|
-
| Start background review | `specialists run code-review --prompt "..." --background` |
|
|
110
|
-
| Monitor (optional) | `specialists feed -f` |
|
|
111
|
-
| Read result | `specialists result <job-id>` |
|
|
112
|
-
|
|
113
|
-
The key principle: use `--background` any time you want to keep working while a specialist runs. Use `--bead` to attach the run to a tracking issue for anything worth logging.
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# Fresh Setup + Background Code Review Walkthrough
|
|
2
|
-
|
|
3
|
-
## Step 1: Initialize specialists for your project
|
|
4
|
-
|
|
5
|
-
Run this once in your project root:
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
specialists init
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
This creates the `specialists/` and `.specialists/` directories, wires up hooks, and injects the AGENTS.md workflow context. After it completes, verify discovery works:
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
specialists list
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
You should see the available specialists. For code review work, this project has `parallel-review` (covers architecture, security, performance, quality).
|
|
18
|
-
|
|
19
|
-
> Note: There is no `code-review` specialist in this project. The closest equivalent is `parallel-review`, which runs concurrent analysis across multiple backends and synthesizes findings into a prioritized report.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Step 2: Create a tracking bead
|
|
24
|
-
|
|
25
|
-
The canonical pattern for any real work is bead-first. Create a bead to track the review:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
bd create --title "Code review: src/api.ts" --type task --priority 2
|
|
29
|
-
# Returns something like: unitAI-abc
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## Step 3: Start the review in the background
|
|
35
|
-
|
|
36
|
-
Because code review takes more than 30 seconds and you want to keep working, use `--background`:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
specialists run parallel-review --bead unitAI-abc --background
|
|
40
|
-
# → Job started: job_a1b2c3d4
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Or, if you want to scope the prompt explicitly:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
echo "Review src/api.ts for architecture, security, performance, and quality issues." | specialists run parallel-review --bead unitAI-abc --background
|
|
47
|
-
# → Job started: job_a1b2c3d4
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
The command returns immediately with a job ID. The specialist runs async while you continue your other work.
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Step 4: Keep working
|
|
55
|
-
|
|
56
|
-
Go work on whatever you were doing. The specialist runs independently in the background.
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## Step 5: Monitor progress (optional)
|
|
61
|
-
|
|
62
|
-
If you want to check in:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
specialists feed -f # follow all active jobs live
|
|
66
|
-
specialists feed job_a1b2c3d4 --follow # follow just this job
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
When the job completes, the next prompt you send will show a completion banner:
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
[Specialist 'parallel-review' completed (job job_a1b2c3d4, 42s). Run: specialists result job_a1b2c3d4]
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Step 6: Read the result
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
specialists result job_a1b2c3d4
|
|
81
|
-
# or capture to file:
|
|
82
|
-
specialists result job_a1b2c3d4 > review-api.md
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Step 7: Close the bead
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
bd close unitAI-abc --reason "Review complete, issues triaged"
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Summary of all commands
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# One-time setup
|
|
99
|
-
specialists init
|
|
100
|
-
specialists list
|
|
101
|
-
|
|
102
|
-
# Create tracking issue
|
|
103
|
-
bd create --title "Code review: src/api.ts" --type task --priority 2
|
|
104
|
-
# → unitAI-abc
|
|
105
|
-
|
|
106
|
-
# Delegate to specialist, return immediately
|
|
107
|
-
specialists run parallel-review --bead unitAI-abc --background
|
|
108
|
-
# → Job started: job_a1b2c3d4
|
|
109
|
-
|
|
110
|
-
# ... keep working ...
|
|
111
|
-
|
|
112
|
-
# Check status
|
|
113
|
-
specialists feed job_a1b2c3d4 --follow
|
|
114
|
-
|
|
115
|
-
# Read result
|
|
116
|
-
specialists result job_a1b2c3d4
|
|
117
|
-
|
|
118
|
-
# Close the bead
|
|
119
|
-
bd close unitAI-abc --reason "Review complete"
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Key points from the skill
|
|
125
|
-
|
|
126
|
-
- `specialists init` is the one-time project setup command. `specialists install` and `specialists setup` are deprecated aliases that redirect to it.
|
|
127
|
-
- Always use `--bead` for tracked work. `--prompt` is for quick, untracked, exploratory runs only.
|
|
128
|
-
- Use `--background` whenever the task takes >30 seconds or you want to keep working in parallel.
|
|
129
|
-
- `specialists doctor` runs detailed health checks (hooks, MCP wiring, zombie jobs) if anything seems wrong.
|
|
130
|
-
- `specialists list` only searches project scope (`./specialists/*.specialist.yaml`). User-scope (`~/.specialists/`) is deprecated.
|
|
131
|
-
- This project has `parallel-review` (not `code-review`) as the code review specialist — it covers all four focus areas: architecture, security, performance, and quality.
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
# Debugging: Specialist YAML Not Showing in `specialists list`
|
|
2
|
-
|
|
3
|
-
## How Discovery Works
|
|
4
|
-
|
|
5
|
-
`specialists list` uses `SpecialistLoader` which scans these directories in order:
|
|
6
|
-
|
|
7
|
-
1. `<project-root>/specialists/`
|
|
8
|
-
2. `<project-root>/.claude/specialists/`
|
|
9
|
-
3. `<project-root>/.agent-forge/specialists/`
|
|
10
|
-
4. `~/.agents/specialists/` (user scope)
|
|
11
|
-
|
|
12
|
-
Only directories that physically exist are scanned. Within each directory, only files ending in `.specialist.yaml` are loaded.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Checklist: Why Your File Is Not Appearing
|
|
17
|
-
|
|
18
|
-
Work through these checks in order.
|
|
19
|
-
|
|
20
|
-
### 1. File is in the wrong location
|
|
21
|
-
|
|
22
|
-
The file must be in one of the scanned directories listed above. The most common location is `<project-root>/specialists/`.
|
|
23
|
-
|
|
24
|
-
Check:
|
|
25
|
-
```bash
|
|
26
|
-
ls specialists/*.specialist.yaml
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
If your file is somewhere else (e.g., `./my-specialist.yaml`, `./config/specialists/foo.yaml`), move it:
|
|
30
|
-
```bash
|
|
31
|
-
mv my-specialist.yaml specialists/my-specialist.yaml
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### 2. File name does not end in `.specialist.yaml`
|
|
35
|
-
|
|
36
|
-
The loader filters for the exact suffix `.specialist.yaml`. A file named `foo.yaml` or `foo.specialist.yml` will be silently ignored.
|
|
37
|
-
|
|
38
|
-
Rename if needed:
|
|
39
|
-
```bash
|
|
40
|
-
mv specialists/foo.yaml specialists/foo.specialist.yaml
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 3. YAML parse or schema validation error (most common cause)
|
|
44
|
-
|
|
45
|
-
When a file fails to parse or fails Zod schema validation, it is **silently skipped** with a warning printed to stderr only. You will not see it in normal `specialists list` output.
|
|
46
|
-
|
|
47
|
-
Run this to surface the warning:
|
|
48
|
-
```bash
|
|
49
|
-
specialists list 2>&1 | grep skipping
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Or redirect stderr directly:
|
|
53
|
-
```bash
|
|
54
|
-
specialists list 2>/tmp/spec-errors.txt; cat /tmp/spec-errors.txt
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
#### Required schema fields
|
|
58
|
-
|
|
59
|
-
Every `.specialist.yaml` must have this top-level structure:
|
|
60
|
-
|
|
61
|
-
```yaml
|
|
62
|
-
specialist:
|
|
63
|
-
metadata:
|
|
64
|
-
name: my-specialist # kebab-case: lowercase letters, digits, hyphens only
|
|
65
|
-
version: 1.0.0 # semver: X.Y.Z
|
|
66
|
-
description: "..."
|
|
67
|
-
category: "..."
|
|
68
|
-
|
|
69
|
-
execution:
|
|
70
|
-
model: anthropic/claude-sonnet-4-6 # required
|
|
71
|
-
# mode defaults to 'auto', timeout_ms defaults to 120000
|
|
72
|
-
|
|
73
|
-
prompt:
|
|
74
|
-
task_template: | # required
|
|
75
|
-
$prompt
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Common schema violations that cause silent skips:
|
|
79
|
-
|
|
80
|
-
| Problem | Error message contains |
|
|
81
|
-
|---------|----------------------|
|
|
82
|
-
| `name` not kebab-case (e.g. `My Specialist`, `mySpecialist`) | `Must be kebab-case` |
|
|
83
|
-
| `version` not semver (e.g. `1.0`, `v1.0.0`) | `Must be semver` |
|
|
84
|
-
| Missing `execution.model` | `Required` |
|
|
85
|
-
| Missing `prompt.task_template` | `Required` |
|
|
86
|
-
| Top-level key is not `specialist:` | `Required` |
|
|
87
|
-
| YAML syntax error (bad indentation, unquoted special chars) | YAML parse error |
|
|
88
|
-
|
|
89
|
-
### 4. A duplicate name already exists in a higher-priority scope
|
|
90
|
-
|
|
91
|
-
The loader uses a "first wins" strategy. If a specialist with the same `metadata.name` already exists in a directory scanned earlier (e.g., `specialists/` before `.claude/specialists/`), the duplicate is silently dropped.
|
|
92
|
-
|
|
93
|
-
Check for name collisions:
|
|
94
|
-
```bash
|
|
95
|
-
specialists list --json | grep '"name"'
|
|
96
|
-
grep -r "^ name:" specialists/ .claude/specialists/ 2>/dev/null
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### 5. The `specialists/` directory does not exist yet
|
|
100
|
-
|
|
101
|
-
If no `.specialist.yaml` files have been added before, the `specialists/` directory may not exist. The loader skips non-existent directories without error.
|
|
102
|
-
|
|
103
|
-
Fix:
|
|
104
|
-
```bash
|
|
105
|
-
specialists init # creates specialists/ and bootstraps the project
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### 6. Running `specialists list` from the wrong working directory
|
|
109
|
-
|
|
110
|
-
`SpecialistLoader` resolves project directories relative to `process.cwd()`. If you run `specialists list` from a subdirectory, it will not find files in the project root's `specialists/` folder.
|
|
111
|
-
|
|
112
|
-
Always run from the project root:
|
|
113
|
-
```bash
|
|
114
|
-
cd /path/to/your/project
|
|
115
|
-
specialists list
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Quick Diagnostic Commands
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
# 1. Show all stderr warnings (skipped files with reasons)
|
|
124
|
-
specialists list 2>&1 >/dev/null
|
|
125
|
-
|
|
126
|
-
# 2. Show full output including errors
|
|
127
|
-
specialists list 2>&1
|
|
128
|
-
|
|
129
|
-
# 3. Verify the file exists with correct suffix
|
|
130
|
-
ls -la specialists/*.specialist.yaml
|
|
131
|
-
|
|
132
|
-
# 4. Validate YAML syntax manually
|
|
133
|
-
node -e "require('yaml').parse(require('fs').readFileSync('specialists/my-specialist.yaml','utf8'))"
|
|
134
|
-
|
|
135
|
-
# 5. Run doctor for broader environment checks
|
|
136
|
-
specialists doctor
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Example: Minimal Valid Specialist YAML
|
|
142
|
-
|
|
143
|
-
```yaml
|
|
144
|
-
specialist:
|
|
145
|
-
metadata:
|
|
146
|
-
name: my-specialist
|
|
147
|
-
version: 1.0.0
|
|
148
|
-
description: "Does something useful."
|
|
149
|
-
category: analysis
|
|
150
|
-
|
|
151
|
-
execution:
|
|
152
|
-
model: anthropic/claude-sonnet-4-6
|
|
153
|
-
|
|
154
|
-
prompt:
|
|
155
|
-
task_template: |
|
|
156
|
-
$prompt
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
Save as `specialists/my-specialist.specialist.yaml` in your project root, then run `specialists list` — it should appear immediately.
|