@jaggerxtrm/specialists 3.18.1 → 3.18.3
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/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 +151 -28
- package/dist/lib.js +8 -0
- package/dist/types/cli/clean.d.ts.map +1 -1
- package/dist/types/cli/init.d.ts.map +1 -1
- package/dist/types/cli/view.d.ts.map +1 -1
- package/dist/types/specialist/control.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/process-health.d.ts +16 -1
- package/dist/types/specialist/process-health.d.ts.map +1 -1
- package/dist/types/specialist/supervisor.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/enhanced-prd.md +4282 -0
- package/docs/design/roadmap/specialists-roadmap.md +7 -7
- package/docs/design/xt-pi-role-pi-flag-passthrough.md +174 -0
- package/docs/skills.md +4 -13
- package/package.json +1 -1
- package/config/skills/using-specialists-v2/SKILL.md +0 -766
- package/config/skills/using-specialists-v3/SKILL.md +0 -1327
|
@@ -445,7 +445,7 @@ Both verbs surface counts (`stopped 7 waiting, skipped 3 terminal, refused 1 run
|
|
|
445
445
|
|
|
446
446
|
**Opportunity 14 [shipped 2026-05-31] — Canonical-pipeline completion: `test-engineer` step + `test-runner` upgrade + chain_template wiring.** *(Beads: epic `unitAI-sfwe1`, design canon `docs/design/chain-templates.md` §2, formula integration `unitAI-f9kku`.)*
|
|
447
447
|
|
|
448
|
-
**Problem today.** The current canonical pipeline (already in production via `using-specialists
|
|
448
|
+
**Problem today.** The current canonical pipeline (already in production via `using-specialists`) runs `executor → code-sanity → obligations-scanner → reviewer` for production diffs. But there is a precise gap between the writer and `code-sanity`: nobody turns a production diff into the right behavioral tests, smoke/E2E checks, and telemetry assertions before the reviewer sees it. The executor is busy implementing; `test-runner` only executes. As a result, autonomous chains repeatedly ship code whose test/log/telemetry contract was never validated against the actual diff — the reviewer either gives a false PASS (no evidence to gate on) or a noisy PARTIAL (asking the operator to fill the gap manually).
|
|
449
449
|
|
|
450
450
|
**Patch.** Two specialist additions/upgrades plus a chain_template formula pass that completes the canonical pipeline:
|
|
451
451
|
|
|
@@ -503,7 +503,7 @@ The fusion is architecturally clean: `reviewer.specialist.json` already declared
|
|
|
503
503
|
**Companion enforcement.**
|
|
504
504
|
|
|
505
505
|
- **Reviewer Release Checklist** (canon §2.6 already updated): three seconder lines (`scope_verdict`, `quality_verdict`, `overall_verdict`). Reviewer cannot PASS without an established `seconder.overall_verdict: PASS` at medium+.
|
|
506
|
-
- **`using-specialists
|
|
506
|
+
- **`using-specialists` + `v4` SKILL docs**: teach the canonical pipeline including `seconder` step; document dual-verdict semantics + failure routing per dimension; cross-reference canon §2.3.
|
|
507
507
|
- **Smoke/eval** (`unitAI-o7j1a` adapted): empirically prove that an off-scope writer dispatch produces `seconder.scope_verdict: FAIL` and blocks `test-engineer` from firing.
|
|
508
508
|
|
|
509
509
|
**Cost: ~3 E-D-E (~half-day wall-clock auto-mode), parallelizable.** seconder spec authoring (inherit + extend code-sanity, 1 E-D-E) + reviewer prompt refactor (0.5 E-D-E) + formula integration (folds into f9kku, ~0 marginal since code-sanity → seconder is a string swap) + skill doc update (0.5 E-D-E) + eval (0.5 E-D-E) + optional mandatory rule (0.5 E-D-E).
|
|
@@ -720,7 +720,7 @@ PASS → `next: sp merge forge-eorh.48 — chain ready`. PARTIAL → `next: sp r
|
|
|
720
720
|
|
|
721
721
|
**[adjusted: R5 dedup]** The last check IS the reviewer-specific R5 — it lives here, once. §7's R5 references this row rather than restating it. This is the data-loss class, hence hard-refuse not warn.
|
|
722
722
|
|
|
723
|
-
**[2026-07-03 addition — draft-bead promotion gate, shipped as a doc-only bridge.]** The `contract:draft`/`contract:ready` HARD-REFUSE row above is **not yet implemented as an `sp run` check** — it exists today only as orchestrator discipline, taught in `using-specialists
|
|
723
|
+
**[2026-07-03 addition — draft-bead promotion gate, shipped as a doc-only bridge.]** The `contract:draft`/`contract:ready` HARD-REFUSE row above is **not yet implemented as an `sp run` check** — it exists today only as orchestrator discipline, taught in `using-specialists` (rule #15 + "Draft Beads And The Promotion Gate"), `planning` ("Draft capture mode"), `using-xtrm` (two Trigger Patterns rows), and CLAUDE.md/AGENTS.md (new Dispatch gate row, marked explicitly "bridge — discipline only, not yet hook-enforced"). It reuses the existing `bd state`/`bd set-state` primitive (see the "Existing bd surface inventory" table above — the same row already flagged this primitive as under-used) rather than inventing a new schema field, per this document's own discipline. **What roadmap implementation must still build:** the real `run.ts` pre-dispatch check — `bd state <id> contract`, hard-refuse when `draft` or unset, same code path as the C1 cwd-mismatch check on the row above it. Until that lands, a session that skips the doc-taught discipline has no structural backstop; track this explicitly as unfinished work when Phase 3 (Naming, conventions, environment) or §5.3's implementation lands, not as something already closed by the doc changes.
|
|
724
724
|
|
|
725
725
|
### 5.4 `sp chain <bead>` CLI dashboard view
|
|
726
726
|
|
|
@@ -893,7 +893,7 @@ Everything below this phase assumes Phase 0 has shipped. Without it, Phase 2 Pas
|
|
|
893
893
|
| 0.b | Edit `config/specialists/planner.specialist.json` — extend `output_schema` with `recommended_template: enum(<15 formula names> \| 'on-the-run')`; validated at runtime against `bd formula list` (D26 a) | 0.3d | `jq` shows new enum; `sp validate planner` passes |
|
|
894
894
|
| 0.c.1 | **Create canonical `config/skills/planning/SKILL.md` (does not exist today — only `.xtrm/skills/default/planning/SKILL.md` deployed mirror, 531 lines, Phases 1-6).** Add the **7 missing sections** identified by 2026-05-31 audit: (1) Pass-2 `recommended_template` annotation (D26 b core deliverable); (2) chain-template catalog enum with when-to-use briefs (15 templates, refs `chain-templates.md` §3.1-§3.15); (3) contract-creation discipline (D29 — CoT prefill in `<thinking>` tags, 2 worked + 1 anti-example per contract type, critique-before-commit premortem-style); (4) XML semantic structure (D30/Opp 12 — `<change-contract>` for root, `<step-contract>` for step; concrete shape with `<problem>`/`<scope>/<path>`/`<non-goals>`/`<validation>/<criterion>`/`<acceptance>`); (5) memory-recall integration (D27/Opp 11 — `bd memories <keyword>` BEFORE planning, `bd recall <key>` for payloads); (6) SCRUTINY-aware composition (Opp 16 — planner picks tier per scope/risk surface; canon §2.2 auto-escalation table; planner sets floor, reviewer can only escalate); (7) bd dep typed-edges navigation (D28 absorbed — full `--type` vocabulary: validates / informs / discovered-from / parent-child / related / supersedes; worked-template tables). | 1.0d | All 7 sections present + `sp validate planner` reads the new file via `skills.paths` |
|
|
895
895
|
| 0.c.2 | **Cross-repo mirror to `~/dev/xtrm-tools`** — propagate canonical to xtrm-tools update pipeline so `xt update --apply` ships the new content to consumer projects. Requires `npm link` symlink + revendor + 2-pass `xt update --apply` per memory `xtrm-tools-skill-propagation-requires-npm-link-2026-05-23`. Verify identical SHA in ≥2 consumer repos. | 0.5d | `diff -q ~/projects/<repo>/.xtrm/skills/default/planning/SKILL.md ~/dev/specialists/config/skills/planning/SKILL.md` returns identical |
|
|
896
|
-
| 0.d | Verify `/using-specialists
|
|
896
|
+
| 0.d | Verify `/using-specialists` still teaches the manual-chain-discipline + Iron pipeline + manual git per CLAUDE.md rule #9 that holds Phase 1 execution until Opp 4+10 land | 0.1d | Skim §"Orchestration Discipline" + §"Chain Management" sections |
|
|
897
897
|
| 0.e | Smoke: dispatch planner on a vacuum bead (just a title) → confirm `recommended_template` field appears in output_schema-validated output | 0.2d | `sp run planner --bead <test> --json` shows the field; resolved chain pour respects template-declared scrutiny floor |
|
|
898
898
|
|
|
899
899
|
**Why Phase 0 is bootstrap, not Phase 3:** D26 was originally Phase 3 row 11b because the operator could in principle hand-edit it any time. But Phase 2 Pass-2 (planner annotation of `recommended_template`) **cannot run without D26 shipped**. Putting D26 inside Phase 3 created a circular dependency: planning Phase 2 produces the bd board that includes Phase 3 work that planning Phase 2 needs. The fix is sequencing, not redesign.
|
|
@@ -943,18 +943,18 @@ After Phase 0: the operator has the chain templates installed, the planner knows
|
|
|
943
943
|
|---|---|---|---|
|
|
944
944
|
| 17 | bd auto-stage + hooksPath cases + dep/migration verify | §6 / §0 #6 | **`xtrm-h9hqg`** ✓ done (CLOSED 2026-05-27 per D25) |
|
|
945
945
|
| 18 | Orphan worktree cleanup (B-A4), test excludes (B-A5), osv wrapper (B-A6) | §6 | friction-audit-side (~1d) |
|
|
946
|
-
| 19 | `sp merge` / `sp epic merge` / `sp finalize` rework | §5.5 | **NEW epic `unitAI-lyh1b` filed 2026-05-31 as kj651 child** — supersedes the original "dirty-index diagnostic" scope (D18 runway recalibration) with a fuller rework: structured failure envelopes, conflict-recovery paths, auto-rebase suggestion, soak across 3 repos to remove the `using-specialists
|
|
946
|
+
| 19 | `sp merge` / `sp epic merge` / `sp finalize` rework | §5.5 | **NEW epic `unitAI-lyh1b` filed 2026-05-31 as kj651 child** — supersedes the original "dirty-index diagnostic" scope (D18 runway recalibration) with a fuller rework: structured failure envelopes, conflict-recovery paths, auto-rebase suggestion, soak across 3 repos to remove the `using-specialists` rule #9 prohibition. Decomposition into child beads by planner Pass-1. |
|
|
947
947
|
| 20 | `xt init` auto-runs the bootstrap skill on new repos (per D19) | §6 | xtrm-tools (~0.5d) |
|
|
948
948
|
|
|
949
949
|
### Phase 6 — Skills revamp: `using-specialists-v4` as new canonical (~2 days)
|
|
950
950
|
|
|
951
|
-
The operator-facing skills (`using-specialists
|
|
951
|
+
The operator-facing skills (`using-specialists`, `using-specialists-auto`) currently teach the pre-roadmap discipline: `--bead` + `--worktree` / `--job` dispatch, manual chain stitching, Iron pipeline as convention, manual git per rule #9. After Phases 1–5 ship, the discipline has fundamentally changed — `--chain <molecule-id>` is the single dispatch verb, `sp chain review/approve/insert` is the composition gate, step-bead conventions are atomic with `kind:step` as truth, R-checks fire at dispatch, the new mandatory rule replaces auto-injection, the chain-template catalog is live. **This is a revamp, not a patch.** v3 was built for the pre-roadmap world; trying to patch it in-place produces contradictory text where every section disagrees with the next. v4 is the clean canonical successor.
|
|
952
952
|
|
|
953
953
|
| # | Item | Source | Cost |
|
|
954
954
|
|---|---|---|---|
|
|
955
955
|
| 21 | **Create `config/skills/using-specialists-v4/SKILL.md`** as the new canonical operator-facing skill, taught from scratch around the shipped surfaces: `--chain <molecule-id>` as the only dispatch verb (Opp 10); `sp chain review/approve/insert` as composition gate (Opp 4); `bd mol pour` + 13 chain templates as the resolved-shape source (§13); `kind:step` label-as-truth for step beads (Opp 5/D20); atomic role→edge wiring via `sp chain wire-edges` post-pour helper; R-check behavior per §7 (R3/R6/R7 hard-refuse; R1/R2/R5 retired with `--job`); pull-not-push memory recall via the new mandatory rule (Opp 11/D27) — no more bd-prime / .xtrm/memory.md auto-dump; `sp epic` as decorated reader-only surface (§12); manual git per CLAUDE.md rule #9 remains canonical (sp merge / sp epic merge dropped). Mark frontmatter `status: canonical (post-roadmap)`. | §11.1 D28 | 1d |
|
|
956
956
|
| 22 | **Refresh `config/skills/using-specialists-auto/SKILL.md`** to mirror v4 in the auto-orchestration mode; explicitly call out the new smoke-checkpoint cadence (each phase's checkpoint set is the auto-mode validation gate); teach the "eat-your-own-dogfood as it ships" discipline. | §11.1 D28 | 0.5d |
|
|
957
|
-
| 23 | **Freeze `config/skills/using-specialists
|
|
957
|
+
| 23 | **Freeze `config/skills/using-specialists/SKILL.md`** as legacy reference. Prepend a frontmatter banner: `status: legacy — superseded by using-specialists-v4 as of <commit>; preserved for historical reference and for any cold-start sessions that haven't migrated`. Do NOT rewrite v3 in place — patching v3 produces contradictory text where new and old surfaces collide. v3 stays as the pre-roadmap snapshot. Inside-v4 forward-looking section ("Future surfaces") notes channels v0 + substrate concepts as *coming, not active* — so operators know what to expect when those land, without v4 itself being gated on them. | §11.1 D28 | 0.5d |
|
|
958
958
|
|
|
959
959
|
**Why v4 is canonical-now, not channels-gated:** the 11 opportunities ship in ~16 days (Phases 0–5); channels v0 and substrate landing are months out and outside this roadmap. Gating v4 on channels would leave the operator with a stale v3 teaching dead surfaces (`--worktree`/`--job`/raw `--bead`) for months. v4 = canonical for what shipped. Channels/substrate-aware surfaces live as a clearly-marked "Future surfaces" section inside v4 (or as a future `using-specialists-v5` when channels v0 ships) — they do not block v4's release.
|
|
960
960
|
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# `xt pi --role` ↔ `pi` runtime flag passthrough
|
|
2
|
+
|
|
3
|
+
**Context:** `xt pi --role <name>` (xtrm-tools/core PR #362, branch
|
|
4
|
+
`feature/xtrm-yd1p1-pi-role-launcher`) launches a `pi` interactive session in
|
|
5
|
+
a worktree. The current implementation forwards **zero flags** to the pi
|
|
6
|
+
subprocess (`cli/src/utils/worktree-session.ts:373`):
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
const runtimeCmd = runtime === 'claude' ? 'claude' : 'pi';
|
|
10
|
+
const runtimeArgs = runtime === 'claude' ? ['--dangerously-skip-permissions'] : [];
|
|
11
|
+
const launchResult = spawnSync(runtimeCmd, runtimeArgs, { cwd: worktreePath, stdio: 'inherit' });
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
xt pi's own flags today: `[name]`, `--role <name>`, `--bead <id>`, `--no-attach`.
|
|
15
|
+
Everything `pi` accepts (`pi --help`) is currently unreachable through xt.
|
|
16
|
+
|
|
17
|
+
This doc rules pi's ~30 CLI flags **passthrough / xt-owned / skip** for `xt pi --role`.
|
|
18
|
+
|
|
19
|
+
Coordinated with xt-design.3, epic `xtmux-2i5`.
|
|
20
|
+
|
|
21
|
+
## Recommended shape
|
|
22
|
+
|
|
23
|
+
**Adopt the `--` passthrough convention.** Anything after `--` on the `xt pi`
|
|
24
|
+
command line is forwarded verbatim as pi argv:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
xt pi --role chain-coordinator --bead unitAI-2i5 -- --thinking high --no-extensions -e ./local-ext.js
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Rationale: pi's flag surface is large, changes independently, and includes
|
|
31
|
+
extension-registered flags xt can't enumerate ahead of time (`--gitnexus-cmd`,
|
|
32
|
+
`--mcp-config`, `--plan`, …). Enumerating each is a maintenance treadmill.
|
|
33
|
+
The `--` convention gives full parity with one code change, zero drift.
|
|
34
|
+
|
|
35
|
+
Individual xt flags (below) are reserved for pi flags xt itself needs to
|
|
36
|
+
*read or override* — e.g. session naming, which xt derives from the branch.
|
|
37
|
+
|
|
38
|
+
## Passthrough table
|
|
39
|
+
|
|
40
|
+
Legend:
|
|
41
|
+
- **passthrough** — forward as-is after `--` (no xt interpretation)
|
|
42
|
+
- **xt-owned** — xt sets or overrides these; user cannot pass them
|
|
43
|
+
- **surface** — worth a first-class xt flag (short-form convenience or
|
|
44
|
+
interpretation needed before pi launches)
|
|
45
|
+
- **skip** — not meaningful under `xt pi --role`
|
|
46
|
+
|
|
47
|
+
### Runtime shape
|
|
48
|
+
|
|
49
|
+
| pi flag | Verdict | Rationale |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| `--provider <name>` | passthrough | Runtime shape. `pi --model provider/id` also handles this, but explicit form works. |
|
|
52
|
+
| `--model <pattern>` | **surface** as `--model` | High-value parity flag. Also match `sp run --model`. Support `:thinking` shorthand pi already parses. |
|
|
53
|
+
| `--api-key <key>` | passthrough | Rare; env vars usually suffice. Don't surface (secret on cmdline). |
|
|
54
|
+
| `--thinking <level>` | **surface** as `--thinking` | Runtime shape and highest-frequency override. Match pi's levels: off/minimal/low/medium/high/xhigh. |
|
|
55
|
+
| `--models <patterns>` | passthrough | Ctrl+P cycling config. Not critical to surface. |
|
|
56
|
+
|
|
57
|
+
### Session lifecycle
|
|
58
|
+
|
|
59
|
+
| pi flag | Verdict | Rationale |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| `--continue, -c` | passthrough | Meaningful when re-entering an existing xt worktree; user knows the intent. |
|
|
62
|
+
| `--resume, -r` | passthrough | Same. |
|
|
63
|
+
| `--session <path\|id>` | passthrough | Advanced use. Passthrough sufficient. |
|
|
64
|
+
| `--session-id <id>` | passthrough | Same. |
|
|
65
|
+
| `--fork <path\|id>` | passthrough | Same. |
|
|
66
|
+
| `--session-dir <dir>` | **xt-owned** | xt sets `PI_CODING_AGENT_SESSION_DIR` (or equivalent) to a worktree-scoped path if desired. Don't let users override — breaks session locality. |
|
|
67
|
+
| `--no-session` | passthrough | Ephemeral run inside a persistent worktree is a valid user choice. |
|
|
68
|
+
| `--name, -n <name>` | **xt-owned** | xt derives the display name from `[name]` positional / branch slug. Overriding here fragments observability. |
|
|
69
|
+
|
|
70
|
+
### Tools / extensions / skills
|
|
71
|
+
|
|
72
|
+
| pi flag | Verdict | Rationale |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| `--no-tools, -nt` | passthrough | Read-only mode; user choice. |
|
|
75
|
+
| `--no-builtin-tools, -nbt` | passthrough | Same. |
|
|
76
|
+
| `--tools, -t <list>` | passthrough | Allowlist. Same. |
|
|
77
|
+
| `--exclude-tools, -xt <list>` | passthrough | Denylist. Same. |
|
|
78
|
+
| `--extension, -e <path>` | passthrough | Load explicit extension file. Multi-use. Passthrough. |
|
|
79
|
+
| `--no-extensions, -ne` | passthrough | Disable discovery. Passthrough. |
|
|
80
|
+
| `--skill <path>` | passthrough | Same as `-e` for skills. |
|
|
81
|
+
| `--no-skills, -ns` | passthrough | Same. |
|
|
82
|
+
| `--prompt-template <path>` | passthrough | Same. |
|
|
83
|
+
| `--no-prompt-templates, -np` | passthrough | Same. |
|
|
84
|
+
| `--theme <path>` | passthrough | Cosmetic. |
|
|
85
|
+
| `--no-themes` | passthrough | Same. |
|
|
86
|
+
| `--no-context-files, -nc` | passthrough | Disable AGENTS.md/CLAUDE.md load. Legitimate override. |
|
|
87
|
+
|
|
88
|
+
### System prompt
|
|
89
|
+
|
|
90
|
+
| pi flag | Verdict | Rationale |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| `--system-prompt <text>` | **xt-owned when `--role` set** | The role's `specialist.prompt.system` is already the system prompt (see `resolveRole` in worktree-session.ts). Passing this again would clobber the role. Reject with an error when `--role` is present; passthrough when it isn't. |
|
|
93
|
+
| `--append-system-prompt <text>` | passthrough | Additive, not clobbering. Safe alongside `--role`. Multi-use. |
|
|
94
|
+
|
|
95
|
+
### Startup / mode
|
|
96
|
+
|
|
97
|
+
| pi flag | Verdict | Rationale |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| `--mode <mode>` | passthrough | text/json/rpc — user knows intent. |
|
|
100
|
+
| `--print, -p` | **skip / warn** | Non-interactive mode contradicts `xt pi`'s interactive-tmux design. Warn and refuse (use `sp run` for one-shot). |
|
|
101
|
+
| `--approve, -a` | passthrough | Trust project files this run. |
|
|
102
|
+
| `--no-approve, -na` | passthrough | Same. |
|
|
103
|
+
| `--offline` | passthrough | `PI_OFFLINE=1` alternative. |
|
|
104
|
+
| `--verbose` | passthrough | Debug aid. |
|
|
105
|
+
|
|
106
|
+
### Introspection / one-shot commands
|
|
107
|
+
|
|
108
|
+
| pi flag | Verdict | Rationale |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| `--list-models [search]` | **skip** | Not a session — no worktree needed. User runs `pi --list-models` directly. |
|
|
111
|
+
| `--export <file>` | **skip** | One-shot session-to-HTML. Not an xt workflow. |
|
|
112
|
+
| `--help, -h` | **skip** | xt owns its own `--help`. |
|
|
113
|
+
| `--version, -v` | **skip** | Use `xt pi status` (already exists per pi.ts). |
|
|
114
|
+
|
|
115
|
+
### Subcommands (`pi install`, `pi update`, `pi list`, `pi config`)
|
|
116
|
+
|
|
117
|
+
| Subcommand | Verdict | Rationale |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| `pi install / remove / uninstall / update / list / config` | **skip** | Not launch flows. User runs `pi <cmd>` directly outside a worktree. |
|
|
120
|
+
|
|
121
|
+
### Extension-registered flags
|
|
122
|
+
|
|
123
|
+
| Flag | Verdict | Rationale |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `--gitnexus-cmd <value>` | passthrough | Registered by extension. Cannot enumerate ahead of time. |
|
|
126
|
+
| `--mcp-config <value>` | passthrough | Same. |
|
|
127
|
+
| Any future extension flag | passthrough | Same. Justifies the `--` convention as primary path. |
|
|
128
|
+
|
|
129
|
+
## Summary
|
|
130
|
+
|
|
131
|
+
**Primary path — do this first:**
|
|
132
|
+
Implement `--` passthrough in `launchWorktreeSession`. Every flag pi supports
|
|
133
|
+
(current or future, first-party or extension-registered) becomes reachable
|
|
134
|
+
with zero per-flag maintenance.
|
|
135
|
+
|
|
136
|
+
**Surface as first-class xt flags** (short-form convenience for the two most
|
|
137
|
+
common overrides):
|
|
138
|
+
- `--model <pattern>` — passes to pi as `--model`
|
|
139
|
+
- `--thinking <level>` — passes to pi as `--thinking`
|
|
140
|
+
|
|
141
|
+
**xt-owned (reject or override user attempts):**
|
|
142
|
+
- `--session-dir` — xt controls session locality
|
|
143
|
+
- `--name` — xt derives from branch slug
|
|
144
|
+
- `--system-prompt` — clobbers `--role`'s specialist prompt when both set (error)
|
|
145
|
+
|
|
146
|
+
**Skip / warn:**
|
|
147
|
+
- `--print, -p` — non-interactive contradicts xt pi's design
|
|
148
|
+
- `--list-models`, `--export`, `--help`, `--version`, subcommands — not launch flows
|
|
149
|
+
|
|
150
|
+
**Everything else** — passthrough via `--`.
|
|
151
|
+
|
|
152
|
+
## Implementation sketch (~10 lines)
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
// worktree-session.ts, near line 373
|
|
156
|
+
const passthroughIdx = process.argv.indexOf('--');
|
|
157
|
+
const passthroughArgs = passthroughIdx >= 0 ? process.argv.slice(passthroughIdx + 1) : [];
|
|
158
|
+
|
|
159
|
+
// commander already strips xt-owned flags; combine with surfaced overrides
|
|
160
|
+
const piArgs: string[] = [];
|
|
161
|
+
if (opts.model) piArgs.push('--model', opts.model);
|
|
162
|
+
if (opts.thinking) piArgs.push('--thinking', opts.thinking);
|
|
163
|
+
piArgs.push(...passthroughArgs);
|
|
164
|
+
|
|
165
|
+
// Guard: reject conflicts before spawn
|
|
166
|
+
if (roleName && passthroughArgs.includes('--system-prompt')) {
|
|
167
|
+
console.error(kleur.red('\n ✗ --system-prompt conflicts with --role (role owns the system prompt). Use --append-system-prompt instead.\n'));
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const runtimeArgs = runtime === 'claude' ? ['--dangerously-skip-permissions'] : piArgs;
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Decision doc only — no implementation in this PR.
|
package/docs/skills.md
CHANGED
|
@@ -36,26 +36,17 @@ User-authored skills belong in the user/active layer used by the local agent set
|
|
|
36
36
|
|
|
37
37
|
The package ships the source copies under `config/skills/`. The active `.xtrm/skills/...` files in a project may be refreshed by xtrm-tools.
|
|
38
38
|
|
|
39
|
-
### `using-specialists
|
|
39
|
+
### `using-specialists`
|
|
40
40
|
|
|
41
|
-
Location: `config/skills/using-specialists
|
|
41
|
+
Location: `config/skills/using-specialists/SKILL.md`
|
|
42
42
|
|
|
43
|
-
Canonical orchestration doctrine for substantial tracked work. It covers bead contracts, dependency graph shape, conflict-cluster mapping, advisory passes, reviewer rebuttal, debugger-restitch, E2E smoke phases, monitoring cadence,
|
|
43
|
+
Canonical orchestration doctrine for substantial tracked work. It covers bead contracts, dependency graph shape, conflict-cluster mapping, advisory passes, reviewer rebuttal, debugger-restitch, E2E smoke phases, monitoring cadence, manual publication, and session-end handoff. Use this for multi-step implementation, debugging, reviews, docs sync planning, and specialist orchestration.
|
|
44
44
|
|
|
45
45
|
### `using-specialists-auto`
|
|
46
46
|
|
|
47
47
|
Location: `config/skills/using-specialists-auto/SKILL.md`
|
|
48
48
|
|
|
49
|
-
Autonomous/offline orchestration overlay. It delegates shared mechanics to `using-specialists
|
|
50
|
-
|
|
51
|
-
### `using-specialists-v2` / `using-specialists`
|
|
52
|
-
|
|
53
|
-
Locations:
|
|
54
|
-
|
|
55
|
-
- `config/skills/using-specialists-v2/SKILL.md`
|
|
56
|
-
- `config/skills/using-specialists/SKILL.md`
|
|
57
|
-
|
|
58
|
-
Older orchestration references retained for compatibility and migration context. Prefer `using-specialists-v3` for current guidance.
|
|
49
|
+
Autonomous/offline orchestration overlay. It delegates shared mechanics to `using-specialists` and adds auto-mode pacing, per-item loop shape, escalation triggers, and unattended-run discipline.
|
|
59
50
|
|
|
60
51
|
### `sync-docs`
|
|
61
52
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaggerxtrm/specialists",
|
|
3
|
-
"version": "3.18.
|
|
3
|
+
"version": "3.18.3",
|
|
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
|
"types": "dist/types/lib.d.ts",
|