@jaggerxtrm/specialists 2.0.0 → 2.0.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.
- package/README.md +60 -12
- package/dist/index.js +0 -1
- package/package.json +3 -4
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Specialists
|
|
2
2
|
|
|
3
3
|
**One MCP Server. Many Specialists. Real AI Agents.**
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
[](https://www.typescriptlang.org/)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**Specialists** is a **Model Context Protocol (MCP) server** that lets Claude (and other AI agents) discover and run specialist agents — each a full autonomous coding agent powered by [pi](https://github.com/mariozechner/pi), scoped to a specific task.
|
|
10
10
|
|
|
11
11
|
**Designed for agents, not just users.** Claude can autonomously route heavy tasks (code review, bug hunting, deep reasoning, session init) to the right specialist without user intervention. Specialists run in the background while Claude continues working.
|
|
12
12
|
|
|
@@ -14,26 +14,27 @@ OmniSpecialist is a **Model Context Protocol (MCP) server** that lets Claude (an
|
|
|
14
14
|
|
|
15
15
|
## How it works
|
|
16
16
|
|
|
17
|
-
Specialists are `.specialist.yaml` files that define an autonomous agent: its model, system prompt, task template, and permission tier.
|
|
17
|
+
Specialists are `.specialist.yaml` files that define an autonomous agent: its model, system prompt, task template, and permission tier. The server discovers them across three scopes:
|
|
18
18
|
|
|
19
19
|
| Scope | Location | Purpose |
|
|
20
20
|
|-------|----------|---------|
|
|
21
21
|
| **project** | `./specialists/` | Per-project specialists |
|
|
22
22
|
| **user** | `~/.agents/specialists/` | Personal specialists |
|
|
23
|
-
| **system** | bundled with
|
|
23
|
+
| **system** | bundled with the package | Built-in defaults |
|
|
24
24
|
|
|
25
|
-
When a specialist runs,
|
|
25
|
+
When a specialist runs, the server spawns a `pi` subprocess with the right model, tools, and system prompt injected. Output streams back in real time via cursor-based polling.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
## MCP Tools (
|
|
29
|
+
## MCP Tools (8)
|
|
30
30
|
|
|
31
31
|
| Tool | Description |
|
|
32
32
|
|------|-------------|
|
|
33
|
+
| `specialist_init` | Session bootstrap: init beads if needed, return available specialists |
|
|
33
34
|
| `list_specialists` | Discover all available specialists across scopes |
|
|
34
35
|
| `use_specialist` | Run a specialist synchronously and return the result |
|
|
35
36
|
| `start_specialist` | Fire-and-forget: start a specialist job, returns `job_id` |
|
|
36
|
-
| `poll_specialist` | Poll a running job; returns delta since last cursor |
|
|
37
|
+
| `poll_specialist` | Poll a running job; returns delta since last cursor + `beadId` |
|
|
37
38
|
| `stop_specialist` | Cancel a running job |
|
|
38
39
|
| `run_parallel` | Run multiple specialists concurrently or as a pipeline |
|
|
39
40
|
| `specialist_status` | Circuit breaker health + job status |
|
|
@@ -58,7 +59,7 @@ When a specialist runs, OmniSpecialist spawns a `pi` subprocess with the right m
|
|
|
58
59
|
|
|
59
60
|
## Permission Tiers
|
|
60
61
|
|
|
61
|
-
Specialists declare their required permission level
|
|
62
|
+
Specialists declare their required permission level, enforced at spawn time via `pi --tools`:
|
|
62
63
|
|
|
63
64
|
| Tier | Allowed tools | Use case |
|
|
64
65
|
|------|--------------|----------|
|
|
@@ -69,13 +70,60 @@ Specialists declare their required permission level. OmniSpecialist enforces thi
|
|
|
69
70
|
|
|
70
71
|
---
|
|
71
72
|
|
|
73
|
+
## Beads Integration
|
|
74
|
+
|
|
75
|
+
Specialists with write permissions (`LOW`/`MEDIUM`/`HIGH`) automatically create a [beads](https://github.com/beads/bd) issue when they run and close it on completion. Control this per-specialist with `beads_integration`:
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
beads_integration: auto # default — create for LOW/MEDIUM/HIGH, skip for READ_ONLY
|
|
79
|
+
beads_integration: always # always create, regardless of permission tier
|
|
80
|
+
beads_integration: never # never create
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The orchestrating agent can retrieve the `beadId` from `poll_specialist` output to link the issue for follow-up (`bd remember`, `bd update --notes`, etc.).
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
72
87
|
## Installation
|
|
73
88
|
|
|
89
|
+
### One-line installer (recommended)
|
|
90
|
+
|
|
74
91
|
```bash
|
|
75
|
-
|
|
92
|
+
npx --package=@jaggerxtrm/specialists install
|
|
76
93
|
```
|
|
77
94
|
|
|
78
|
-
|
|
95
|
+
Installs: **pi** (`@mariozechner/pi-coding-agent`), **beads** (`@beads/bd`), **dolt** (interactive sudo on Linux / brew on macOS), registers the `specialists` MCP at user scope, scaffolds `~/.agents/specialists/`.
|
|
96
|
+
|
|
97
|
+
After running, **restart Claude Code** to load the MCP.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### Manual installation
|
|
102
|
+
|
|
103
|
+
**1. pi** — coding agent runtime:
|
|
104
|
+
```bash
|
|
105
|
+
npm install -g @mariozechner/pi-coding-agent
|
|
106
|
+
```
|
|
107
|
+
Run `pi` once, then `pi config` to enable your model providers (Anthropic, Google, etc.).
|
|
108
|
+
|
|
109
|
+
**2. beads** — issue tracker:
|
|
110
|
+
```bash
|
|
111
|
+
npm install -g @beads/bd
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**3. dolt** — beads sync backend:
|
|
115
|
+
```bash
|
|
116
|
+
# Linux
|
|
117
|
+
sudo bash -c 'curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash'
|
|
118
|
+
# macOS
|
|
119
|
+
brew install dolt
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**4. specialists + MCP:**
|
|
123
|
+
```bash
|
|
124
|
+
npm install -g @jaggerxtrm/specialists
|
|
125
|
+
claude mcp add --scope user specialists -- specialists
|
|
126
|
+
```
|
|
79
127
|
|
|
80
128
|
Then **restart Claude Code**.
|
|
81
129
|
|
|
@@ -93,7 +141,7 @@ specialist:
|
|
|
93
141
|
description: "What this specialist does."
|
|
94
142
|
category: analysis
|
|
95
143
|
tags: [analysis, example]
|
|
96
|
-
updated: "2026-03-
|
|
144
|
+
updated: "2026-03-09"
|
|
97
145
|
|
|
98
146
|
execution:
|
|
99
147
|
mode: tool
|
|
@@ -132,7 +180,7 @@ bun test
|
|
|
132
180
|
```
|
|
133
181
|
|
|
134
182
|
- **Build**: `bun build src/index.ts --target=node --outfile=dist/index.js`
|
|
135
|
-
- **Test**: `bun --bun vitest run` (
|
|
183
|
+
- **Test**: `bun --bun vitest run` (67 unit tests)
|
|
136
184
|
- **Lint**: `tsc --noEmit`
|
|
137
185
|
|
|
138
186
|
See [CLAUDE.md](CLAUDE.md) for the full architecture guide and [ROADMAP.md](ROADMAP.md) for planned features.
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaggerxtrm/specialists",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "OmniSpecialist
|
|
3
|
+
"version": "2.0.2",
|
|
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",
|
|
7
7
|
"files": [
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"install": "bin/install.js"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "bun build src/index.ts --target=node --outfile=dist/index.js &&
|
|
17
|
+
"build": "bun build src/index.ts --target=node --outfile=dist/index.js && chmod +x dist/index.js",
|
|
18
18
|
"dev": "bun run src/index.ts",
|
|
19
19
|
"start": "node dist/index.js",
|
|
20
20
|
"lint": "tsc --noEmit",
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
"zod-to-json-schema": "^3.24.6"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@types/bun": "1.3.10",
|
|
47
46
|
"@types/bun": "1.3.10",
|
|
48
47
|
"@types/node": "^24.0.0",
|
|
49
48
|
"@vitest/coverage-v8": "^2.1.8",
|