@jaggerxtrm/specialists 3.18.0 → 3.18.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/config/mandatory-rules/code-quality-defaults.md +58 -1
- package/config/mandatory-rules/executor-delivery.md +4 -0
- package/config/mandatory-rules/test-runner-execution-scope.md +4 -0
- package/config/skills/setup-specialists/SKILL.md +1 -1
- package/config/skills/using-script-specialists/SKILL.md +5 -5
- package/config/skills/using-specialists/SKILL.md +1135 -879
- package/config/skills/using-specialists-auto/SKILL.md +21 -21
- package/config/specialists/chain-coordinator.specialist.json +63 -0
- package/config/specialists/reviewer.specialist.json +1 -1
- package/config/specialists/seconder.specialist.json +1 -1
- package/dist/asset-contract.json +8 -13
- package/dist/index.js +1070 -81
- package/dist/lib.js +185 -9
- package/dist/types/cli/clean.d.ts.map +1 -1
- package/dist/types/cli/doctor.d.ts.map +1 -1
- package/dist/types/cli/feed.d.ts.map +1 -1
- package/dist/types/cli/format-helpers.d.ts.map +1 -1
- package/dist/types/cli/init.d.ts.map +1 -1
- package/dist/types/cli/merge.d.ts.map +1 -1
- package/dist/types/cli/ps.d.ts.map +1 -1
- package/dist/types/cli/run.d.ts +19 -0
- package/dist/types/cli/run.d.ts.map +1 -1
- package/dist/types/cli/status.d.ts.map +1 -1
- package/dist/types/cli/view.d.ts.map +1 -1
- package/dist/types/pi/session.d.ts +1 -0
- package/dist/types/pi/session.d.ts.map +1 -1
- package/dist/types/specialist/control.d.ts.map +1 -1
- package/dist/types/specialist/dead-job-audit.d.ts +20 -0
- package/dist/types/specialist/dead-job-audit.d.ts.map +1 -0
- package/dist/types/specialist/launch.d.ts +8 -0
- package/dist/types/specialist/launch.d.ts.map +1 -1
- package/dist/types/specialist/loader.d.ts +12 -0
- package/dist/types/specialist/loader.d.ts.map +1 -1
- package/dist/types/specialist/observability-db.d.ts +1 -1
- package/dist/types/specialist/observability-sqlite.d.ts +76 -0
- package/dist/types/specialist/observability-sqlite.d.ts.map +1 -1
- package/dist/types/specialist/pr-drift-refresh.d.ts +17 -0
- package/dist/types/specialist/pr-drift-refresh.d.ts.map +1 -0
- package/dist/types/specialist/process-health.d.ts +16 -1
- package/dist/types/specialist/process-health.d.ts.map +1 -1
- package/dist/types/specialist/runner.d.ts +3 -0
- package/dist/types/specialist/runner.d.ts.map +1 -1
- package/dist/types/specialist/status-load.d.ts.map +1 -1
- package/dist/types/specialist/supervisor.d.ts +10 -0
- package/dist/types/specialist/supervisor.d.ts.map +1 -1
- package/dist/types/specialist/timeline-events.d.ts +2 -0
- package/dist/types/specialist/timeline-events.d.ts.map +1 -1
- package/docs/design/roadmap/chain-templates/README.md +1 -1
- package/docs/design/roadmap/chains-prompt-evals.md +3054 -0
- package/docs/design/roadmap/specialists-roadmap.md +75 -7
- package/docs/design/xt-pi-role-pi-flag-passthrough.md +174 -0
- package/docs/skills.md +4 -13
- package/package.json +2 -2
- package/config/skills/using-specialists-v2/SKILL.md +0 -766
- package/config/skills/using-specialists-v3/SKILL.md +0 -1267
|
@@ -2,4 +2,61 @@
|
|
|
2
2
|
name: code-quality-defaults
|
|
3
3
|
kind: mandatory-rule
|
|
4
4
|
---
|
|
5
|
-
|
|
5
|
+
The lazy senior lens. Best code = code never written.
|
|
6
|
+
|
|
7
|
+
## The ladder (stop at the first rung that holds)
|
|
8
|
+
|
|
9
|
+
1. Does this need to exist at all? Speculative need = skip it, say so in one line. (YAGNI)
|
|
10
|
+
2. Already in this codebase? A helper, util, type, or pattern that already lives here — reuse it. Look before you write.
|
|
11
|
+
3. Stdlib does it? Use it. Name the function.
|
|
12
|
+
4. Native platform feature covers it? DB constraint over app code, CSS over JS, `<input type="date">` over a picker lib.
|
|
13
|
+
5. Already-installed dependency solves it? Use it. Never add a new one for what a few lines can do.
|
|
14
|
+
6. One line? Prefer one line.
|
|
15
|
+
7. Only then: the minimum code that works.
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
- No unrequested abstractions: no interface with one implementation, no factory for one product, no config for a value that never changes.
|
|
20
|
+
- No boilerplate scaffolding "for later".
|
|
21
|
+
- Deletion over addition. Boring over clever.
|
|
22
|
+
- Fewest files possible. Shortest working diff wins — but only once you understand the problem. The smallest change in the wrong place is a second bug.
|
|
23
|
+
- SRP, DRY, KISS, YAGNI. No premature abstraction. No speculative features.
|
|
24
|
+
- Match existing project conventions; never invent a new style mid-file.
|
|
25
|
+
- Don't add comments to explain what well-named code already says.
|
|
26
|
+
|
|
27
|
+
## Never simplify away
|
|
28
|
+
|
|
29
|
+
- Input validation at trust boundaries.
|
|
30
|
+
- Error handling that prevents data loss.
|
|
31
|
+
- Security, accessibility, explicitly requested behavior.
|
|
32
|
+
- Understanding the problem — the ladder shortens solutions, not reading.
|
|
33
|
+
|
|
34
|
+
## Deliberate shortcuts
|
|
35
|
+
|
|
36
|
+
When a lazy choice has a known ceiling, mark it in code:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
// SIMPLIFIED: <ceiling>. upgrade when <trigger>.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Example: `// SIMPLIFIED: O(n²) scan. upgrade when list > 1k items.`
|
|
43
|
+
Unmarked shortcuts silently rot; marked ones stay tracked.
|
|
44
|
+
|
|
45
|
+
## Finding-report format (for review/audit modes)
|
|
46
|
+
|
|
47
|
+
One line per finding, tag-prefixed:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
<file>:L<line>: <tag> <what>. <replacement>.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Tags:
|
|
54
|
+
|
|
55
|
+
- `delete:` dead code, unused flexibility, speculative feature. Nothing replaces it.
|
|
56
|
+
- `stdlib:` hand-rolled thing the stdlib ships. Name the function.
|
|
57
|
+
- `native:` code doing what the platform already does. Name the feature.
|
|
58
|
+
- `yagni:` abstraction with one implementation, config nobody sets, layer with one caller.
|
|
59
|
+
- `shrink:` same logic, fewer lines. Show the shorter form.
|
|
60
|
+
- `keep:` explicitly defended keep — used when refuting a proposed shrink; state the load-bearing reason.
|
|
61
|
+
|
|
62
|
+
End quality passes with `net: -<N> lines possible.` or `Lean already. Ship.`
|
|
@@ -3,3 +3,7 @@ name: executor-delivery
|
|
|
3
3
|
kind: mandatory-rule
|
|
4
4
|
---
|
|
5
5
|
Make smallest correct change. Keep scope tight, update only needed files, then verify scope.
|
|
6
|
+
|
|
7
|
+
Scope allowlist (EVAL-13, mercury-market-data-i2kb): parse the bead's SCOPE section into an explicit path allowlist BEFORE the first edit. Before any commit or push, run `git diff --cached --name-only` and refuse to proceed if any staged path is outside the allowlist — do not silently drag in `.serena/project.yml`, `AGENTS.md`, `CLAUDE.md`, `CHANGELOG.md`, or an unrelated "chore added agent .md" commit from a dirty tree. If a needed change is outside allowlist, stop, ask the orchestrator to widen SCOPE, and do not proceed on assumption.
|
|
8
|
+
|
|
9
|
+
Never close the anchor bead (EVAL-10, mercury-market-data-i2kb): the anchor bead's closure is a post-verification concern — judge PASS + deploy-monitor window clean must land first. You may append notes ("code complete", "tests pass locally") and mark subtask nodes. `bd close <anchor>` is reserved for the orchestrator on evidence.
|
|
@@ -3,3 +3,7 @@ name: test-runner-execution-scope
|
|
|
3
3
|
kind: mandatory-rule
|
|
4
4
|
---
|
|
5
5
|
Run only requested tests. Exact command input wins over manifest fallback. If fallback is used, label it clearly as fallback. Report failures with root cause, owner classification, and next-recipient hints; do not expand scope.
|
|
6
|
+
|
|
7
|
+
Bash-pytest fallback on tool-call-parse failure (EVAL-11): if the underlying model returns a tool-call parse error (observed against Kimi during mmd-sprint 2026-07-03), do NOT fail the run. Fall back to invoking the same command directly via bash (`pytest <args>`, `npm test <args>`, etc.), label the result `fallback:bash` in the final envelope, and record the parse-error signature in notes so the orchestrator can steer subsequent runs off the failing backend. A tool-call-parse error is a model-runtime bug, not a test failure.
|
|
8
|
+
|
|
9
|
+
Pyright must match the CI invocation (EVAL-15, mercury-market-data-3ele): for Python repos, run pyright the way CI runs it (`npx pyright@<version>` matching the pinned version and the venv activation state the CI job uses). If CI activates `venv/` before pyright, activate it here too; if CI does not, do not activate it here. A local pyright pass under a different environment is not evidence — it hides `NaTType | Unknown` and similar stub-visibility drift that only shows up when the environments diverge.
|
|
@@ -552,5 +552,5 @@ KAN-91 global setup result:
|
|
|
552
552
|
not allowlisted at the global layer. The global override layer reuses the
|
|
553
553
|
same per-spec field semantics; see its §"Global User Override Layer
|
|
554
554
|
(KAN-90/91)" section for the dot-path syntax mapping.
|
|
555
|
-
- `using-specialists
|
|
555
|
+
- `using-specialists` — orchestration discipline once specialists are
|
|
556
556
|
configured.
|
|
@@ -8,7 +8,7 @@ description: >
|
|
|
8
8
|
specialist into a service, script, or library, when the caller needs the
|
|
9
9
|
output immediately, or when the work is a single LLM call with structured
|
|
10
10
|
input/output. Do NOT use for tracked agent work — that belongs to
|
|
11
|
-
`using-specialists
|
|
11
|
+
`using-specialists`.
|
|
12
12
|
version: 1.1.0
|
|
13
13
|
updated: 2026-05-06
|
|
14
14
|
synced_at: a0e54d0c
|
|
@@ -17,7 +17,7 @@ synced_at: a0e54d0c
|
|
|
17
17
|
# Script-Class Specialists
|
|
18
18
|
|
|
19
19
|
`sp script` and `sp serve` are a separate runtime from the bead-first
|
|
20
|
-
orchestration covered by `using-specialists
|
|
20
|
+
orchestration covered by `using-specialists`. They exist for service and
|
|
21
21
|
library integration, not for agent chains.
|
|
22
22
|
|
|
23
23
|
| Aspect | `sp run` (orchestration) | `sp script` / `sp serve` |
|
|
@@ -47,7 +47,7 @@ Trigger when:
|
|
|
47
47
|
|
|
48
48
|
Do NOT trigger for: code review, debugging, implementation, multi-turn work,
|
|
49
49
|
keep-alive sessions, anything that should write files. Those belong to
|
|
50
|
-
`using-specialists
|
|
50
|
+
`using-specialists`.
|
|
51
51
|
|
|
52
52
|
## Specialist Compatibility (compatGuard)
|
|
53
53
|
|
|
@@ -183,7 +183,7 @@ saturated past `queue-timeout-ms`.
|
|
|
183
183
|
- For container deployments, see `docs/specialists-service-install.md`. Image
|
|
184
184
|
runs as non-root UID 10001; bind-mount `~/.pi` and `.specialists/`.
|
|
185
185
|
|
|
186
|
-
## When To Switch Back To `using-specialists
|
|
186
|
+
## When To Switch Back To `using-specialists`
|
|
187
187
|
|
|
188
188
|
If any of these become true mid-design, drop script-class and use the
|
|
189
189
|
orchestration runtime:
|
|
@@ -198,7 +198,7 @@ orchestration runtime:
|
|
|
198
198
|
## What Not To Put Here
|
|
199
199
|
|
|
200
200
|
- Bead workflow, chains, epics, reviewers, worktrees — those live in
|
|
201
|
-
`using-specialists
|
|
201
|
+
`using-specialists`.
|
|
202
202
|
- Orchestration MCP tooling (`use_specialist`).
|
|
203
203
|
- Long-running multi-turn examples.
|
|
204
204
|
|