@jaggerxtrm/specialists 3.3.3 → 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.
Files changed (26) hide show
  1. package/README.md +4 -2
  2. package/bin/install.js +15 -204
  3. package/config/skills/using-specialists/SKILL.md +1 -1
  4. package/config/specialists/debugger.specialist.yaml +111 -0
  5. package/config/specialists/explorer.specialist.yaml +1 -1
  6. package/dist/index.js +877 -623
  7. package/package.json +1 -1
  8. package/config/skills/specialists-usage-workspace/iteration-1/eval-bead-background/old_skill/outputs/result.md +0 -105
  9. package/config/skills/specialists-usage-workspace/iteration-1/eval-bead-background/with_skill/outputs/result.md +0 -93
  10. package/config/skills/specialists-usage-workspace/iteration-1/eval-fresh-setup/old_skill/outputs/result.md +0 -113
  11. package/config/skills/specialists-usage-workspace/iteration-1/eval-fresh-setup/with_skill/outputs/result.md +0 -131
  12. package/config/skills/specialists-usage-workspace/iteration-1/eval-yaml-debug/old_skill/outputs/result.md +0 -159
  13. package/config/skills/specialists-usage-workspace/iteration-1/eval-yaml-debug/with_skill/outputs/result.md +0 -150
  14. package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/with_skill/outputs/result.md +0 -180
  15. package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/with_skill/timing.json +0 -5
  16. package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/without_skill/outputs/result.md +0 -223
  17. package/config/skills/specialists-usage-workspace/iteration-2/eval-bug-investigation/without_skill/timing.json +0 -5
  18. package/config/skills/specialists-usage-workspace/iteration-2/eval-code-review/with_skill/timing.json +0 -5
  19. package/config/skills/specialists-usage-workspace/iteration-2/eval-code-review/without_skill/outputs/result.md +0 -146
  20. package/config/skills/specialists-usage-workspace/iteration-2/eval-code-review/without_skill/timing.json +0 -5
  21. package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/with_skill/outputs/result.md +0 -89
  22. package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/with_skill/timing.json +0 -5
  23. package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/without_skill/outputs/result.md +0 -96
  24. package/config/skills/specialists-usage-workspace/iteration-2/eval-test-coverage/without_skill/timing.json +0 -5
  25. package/config/skills/specialists-usage-workspace/skill-snapshot/SKILL.md.old +0 -237
  26. 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.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.