@jaggerxtrm/specialists 3.16.0 → 3.17.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 (53) hide show
  1. package/README.md +3 -1
  2. package/config/mandatory-rules/research-tool-routing.md +4 -0
  3. package/config/mandatory-rules/test-runner-execution-scope.md +1 -1
  4. package/config/skills/specialists-creator/SKILL.md +28 -1
  5. package/config/skills/using-specialists-auto/SKILL.md +1 -1
  6. package/config/skills/using-specialists-v2/SKILL.md +7 -7
  7. package/config/skills/using-specialists-v3/SKILL.md +223 -147
  8. package/config/specialists/changelog-drafter.specialist.json +4 -2
  9. package/config/specialists/changelog-keeper.specialist.json +4 -2
  10. package/config/specialists/debugger.specialist.json +6 -4
  11. package/config/specialists/executor.specialist.json +7 -5
  12. package/config/specialists/explorer.specialist.json +4 -2
  13. package/config/specialists/memory-processor.specialist.json +4 -2
  14. package/config/specialists/node-coordinator.specialist.json +4 -2
  15. package/config/specialists/obligations-scanner.specialist.json +99 -0
  16. package/config/specialists/overthinker.specialist.json +4 -2
  17. package/config/specialists/planner.specialist.json +4 -2
  18. package/config/specialists/researcher.specialist.json +12 -7
  19. package/config/specialists/reviewer.specialist.json +10 -8
  20. package/config/specialists/seconder.specialist.json +170 -0
  21. package/config/specialists/security-auditor.specialist.json +4 -2
  22. package/config/specialists/service-skills-sync.specialist.json +78 -0
  23. package/config/specialists/specialists-creator.specialist.json +6 -4
  24. package/config/specialists/sync-docs.specialist.json +5 -3
  25. package/config/specialists/test-engineer.specialist.json +134 -0
  26. package/config/specialists/test-runner.specialist.json +8 -6
  27. package/config/specialists/transcriber.specialist.json +59 -0
  28. package/config/specialists/xt-merge.specialist.json +4 -2
  29. package/dist/asset-contract.json +20 -8
  30. package/dist/index.js +1136 -293
  31. package/dist/lib.js +1 -0
  32. package/dist/types/cli/format-helpers.d.ts.map +1 -1
  33. package/dist/types/cli/help.d.ts.map +1 -1
  34. package/dist/types/cli/log.d.ts +2 -0
  35. package/dist/types/cli/log.d.ts.map +1 -0
  36. package/dist/types/cli/result.d.ts.map +1 -1
  37. package/dist/types/cli/resume.d.ts.map +1 -1
  38. package/dist/types/cli/steer.d.ts.map +1 -1
  39. package/dist/types/index.d.ts +1 -1
  40. package/dist/types/specialist/control.d.ts.map +1 -1
  41. package/dist/types/specialist/job-file-output.d.ts +2 -0
  42. package/dist/types/specialist/job-file-output.d.ts.map +1 -1
  43. package/dist/types/specialist/launch.d.ts.map +1 -1
  44. package/dist/types/specialist/runner.d.ts +3 -0
  45. package/dist/types/specialist/runner.d.ts.map +1 -1
  46. package/dist/types/specialist/schema.d.ts +18 -9
  47. package/dist/types/specialist/schema.d.ts.map +1 -1
  48. package/dist/types/specialist/supervisor.d.ts +25 -2
  49. package/dist/types/specialist/supervisor.d.ts.map +1 -1
  50. package/dist/types/specialist/timeline-events.d.ts +20 -1
  51. package/dist/types/specialist/timeline-events.d.ts.map +1 -1
  52. package/package.json +13 -11
  53. package/config/specialists/code-sanity.specialist.json +0 -108
package/README.md CHANGED
@@ -170,8 +170,10 @@ Useful commands:
170
170
  ```bash
171
171
  sp ps # actionable dashboard
172
172
  sp ps -f # TTY dashboard follow; pipes emit ANSI-free snapshots
173
- sp feed <job-id> # full DB-backed event replay
173
+ sp feed <job-id> # compact DB-backed event replay
174
174
  sp feed -f # follow all active jobs
175
+ sp log <job-id> # lean runtime/control/error log; from a parent dir aggregates child repo DBs
176
+ sp log --specialist reviewer -f
175
177
  sp chat explorer --bead <id> # launch interactive TUI; input auto-steers/resumes
176
178
  sp result <job-id> --wait
177
179
  sp steer <job-id> "focus only on X"
@@ -7,6 +7,10 @@ Pick the right source before invoking research. Default to the project knowledge
7
7
  - `find-docs` / context7 — library, framework, SDK, CLI, or cloud-service docs (API syntax, config, migration).
8
8
  - `deepwiki` — public GitHub repo internals (architecture, conventions, code paths).
9
9
  - `github-search` (ghgrep) — real-world code patterns and API usage examples.
10
+ - `ddgs` — general web search, no API key (`ddgs text -q "<query>" -m 8`). Discover authoritative URLs for vendor docs, blogs, papers, or proprietary products the above don't cover.
11
+ - `agent-browser` — read/interact with any URL, including JS-rendered pages (`agent-browser open <url>` → `get text body`; close with `agent-browser close --all`).
10
12
  - `last30days` — recent web/social signals (Reddit, X, HN, YouTube). Early-warning only, never authoritative.
11
13
 
14
+ General web (not a library/repo/social topic): use `ddgs` to discover URLs, then `agent-browser` to read them. Never point `agent-browser` at a search engine — headless Chrome gets CAPTCHA-blocked; search with `ddgs` instead. If `ddgs`/`agent-browser` aren't installed, report the gap (`uv tool install ddgs`; `npm i -g agent-browser && agent-browser install`) rather than answering from memory.
15
+
12
16
  Invoke skills on demand, not by default. Cite the source for every external claim.
@@ -2,4 +2,4 @@
2
2
  name: test-runner-execution-scope
3
3
  kind: mandatory-rule
4
4
  ---
5
- Run only requested tests. Report failures with root cause and fix hints; do not expand scope.
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.
@@ -575,7 +575,34 @@ Informational declarations used by pre-run validation and future tooling (e.g. `
575
575
  }
576
576
  ```
577
577
 
578
- Writes the final session output to this file path after the session completes. Relative to the working directory.
578
+ When set, the specialist writes its **handoff block** to this file on every substantive turn foreground and `--background`. The content is identical to what is appended to the input bead notes and shown by `sp result`: a markdown heading, the verbatim specialist output, and an italic metadata footer.
579
+
580
+ - **No env flag required.** `output_file` is honored whenever it is set (since unitAI-f58ma). It does NOT require `SPECIALISTS_JOB_FILE_OUTPUT` — that flag now only gates the debug file-mirrors (events.jsonl / status.json / result.txt).
581
+ - **Single writer.** In a supervised run (`sp run`) the supervisor owns the file and the runner's own write is suppressed, so the file is never double-written. (In script/serve runs there is no supervisor; the runner writes the raw output instead of the enveloped block.)
582
+ - **Format is the rendered handoff block, not bare output.** A downstream specialist that consumes this file as input will see the header/footer envelope around the body.
583
+ - **Append vs overwrite is controlled by `notes_mode`** (see below): `full-trail` appends each turn; `final-only` overwrites with just the final `[FINAL · DONE]` block.
584
+ - **Gitignore the path** if you don't want it committed — specs with `output_file` always write, so add the path (e.g. `.specialists/*-result.md`) to `.gitignore`.
585
+
586
+ Relative paths resolve from the working directory.
587
+
588
+ ### `specialist.notes_mode`
589
+
590
+ Controls how per-turn handoff output is persisted to BOTH the input bead notes and `output_file`.
591
+
592
+ | Value | Behavior |
593
+ |---|---|
594
+ | `"full-trail"` (default) | Append every substantive turn. Bead notes / `output_file` accumulate `### … [turn N · WAITING]` blocks, ending with a final `## … [FINAL · DONE]` block. Best for keep-alive specialists where the operator wants the full trail. |
595
+ | `"final-only"` | Persist only the single canonical `## … [FINAL · DONE]` block; intermediate turns are skipped and `output_file` is OVERWRITTEN (not appended). Best for non-coding / chained pipelines where the next specialist reads the previous specialist's bead note or `output_file` as its input and only wants the final result. |
596
+
597
+ Empty turns are never persisted. The handoff block is markdown-native (heading + verbatim body + one italic metadata footer); the model string is normalized (provider prefix stripped, e.g. `nano-gpt/moonshotai/kimi-k2.5` renders as `kimi-k2.5`).
598
+
599
+ ```json
600
+ { "notes_mode": "final-only" }
601
+ ```
602
+
603
+ ### Handoff / pipeline output recipe
604
+
605
+ For a non-coding pipeline where each specialist reads the previous one's result, set `output_file` to a known path AND `notes_mode: "final-only"` so the file (and the bead note) holds exactly the final result, overwritten each run — clean for the next specialist to consume. For a human-monitored keep-alive specialist, leave `notes_mode: "full-trail"` (default) so the operator sees every turn accumulate. `output_file` needs no env flag; just gitignore its path.
579
606
 
580
607
  ### `specialist.validation` (optional)
581
608
 
@@ -39,7 +39,7 @@ read bead → write 7-section contract (child impl bead) → bd dep add parent
39
39
  → sleep 10 && sp ps # confirm started, not stuck queued
40
40
  → sleep <role-typical from v3> & sp ps # check (see v3 Monitoring section)
41
41
  → sp result <exec-job> # consume immediately on transition to waiting
42
- → optional advisory passes per v3 (code-sanity if smelly, security-auditor if risk surface)
42
+ → optional advisory passes per v3 (seconder if smelly, security-auditor if risk surface)
43
43
  → write reviewer bead contract → sp run reviewer --bead <review> --job <exec-job> --background
44
44
  → sleep 90 & sp ps
45
45
  → sp result <reviewer-job>
@@ -215,7 +215,7 @@ Run `specialists list` if you need the live registry. Choose by task, not by hab
215
215
  | Design/tradeoffs | `overthinker` | The approach is risky, ambiguous, or needs critique. |
216
216
  | Implementation | `executor` | The contract is clear enough to write code or docs. |
217
217
  | Compliance/code review | `reviewer` | An executor/debugger produced changes that need the final PASS/PARTIAL/FAIL verdict. |
218
- | Implementation sanity | `code-sanity` | You want a cheap READ_ONLY smell pass for simplicity, type safety, dead code, brittle async/error handling, or maintainability before reviewer. |
218
+ | Implementation sanity | `seconder` | You want a cheap READ_ONLY smell pass for simplicity, type safety, dead code, brittle async/error handling, or maintainability before reviewer. |
219
219
  | Security/dependency audit | `security-auditor` | You need threat modeling, secure-code review, package advisory triage, or agent/config security scanning. LOW: scan/read/recommend only. |
220
220
  | Multiple review perspectives | `parallel-review` | A critical diff needs independent review passes. |
221
221
  | Test execution | `test-runner` | You need suites run and failures interpreted. |
@@ -247,7 +247,7 @@ specialists doctor --check-drift # inspect stale .specialists/de
247
247
  sp prune-stale-defaults --dry-run # preview redundant default snapshots
248
248
  specialists run <name> --bead <id> --background
249
249
  specialists run executor --bead <impl-bead> --background # worktree auto-provisioned
250
- specialists run code-sanity --bead <sanity-bead> --job <exec-job> --keep-alive --background
250
+ specialists run seconder --bead <sanity-bead> --job <exec-job> --keep-alive --background
251
251
  specialists run security-auditor --bead <security-bead> --job <exec-job> --keep-alive --background
252
252
  specialists run reviewer --bead <review-bead> --job <exec-job> --keep-alive --background
253
253
  specialists ps
@@ -343,7 +343,7 @@ specialists run executor --worktree --bead <impl> --context-depth 3 --background
343
343
  specialists result <exec-job>
344
344
  ```
345
345
 
346
- Optional code-sanity pass for implementation smell checks (use when the diff is non-trivial or likely to accumulate agent-code complexity):
346
+ Optional seconder pass for implementation smell checks (use when the diff is non-trivial or likely to accumulate agent-code complexity):
347
347
 
348
348
  ```bash
349
349
  bd create --title "Code sanity check token refresh retry" --type task --priority 3 \
@@ -355,11 +355,11 @@ CONSTRAINTS: At most 5 concrete findings; cite files/symbols/lines where possibl
355
355
  VALIDATION: Findings are suitable to paste into specialists resume <exec-job>.
356
356
  OUTPUT: OK/FINDINGS/BLOCKED with handoff."
357
357
  bd dep add <sanity> <impl>
358
- specialists run code-sanity --bead <sanity> --job <exec-job> --context-depth 3 --keep-alive --background
358
+ specialists run seconder --bead <sanity> --job <exec-job> --context-depth 3 --keep-alive --background
359
359
  specialists result <sanity-job>
360
360
  ```
361
361
 
362
- If code-sanity returns `FINDINGS`, resume executor with those concrete instructions, then rerun code-sanity only if the fixes were substantive. Do not treat code-sanity `OK` as reviewer PASS.
362
+ If seconder returns `FINDINGS`, resume executor with those concrete instructions, then rerun seconder only if the fixes were substantive. Do not treat seconder `OK` as reviewer PASS.
363
363
 
364
364
  Optional security pass when the task touches auth, secrets, input handling, dependency updates, package advisories, agent config, hooks, or exposed endpoints:
365
365
 
@@ -492,7 +492,7 @@ Standard loop:
492
492
  ```text
493
493
  executor --worktree --bead impl
494
494
  -> waiting after turn
495
- optional code-sanity --bead sanity --job exec-job
495
+ optional seconder --bead sanity --job exec-job
496
496
  -> OK: continue
497
497
  -> FINDINGS: resume executor with exact sanity findings
498
498
  optional security-auditor --bead security --job exec-job
@@ -506,7 +506,7 @@ reviewer --bead review --job exec-job
506
506
 
507
507
  Prefer `sp resume <exec-job>` over a new fix executor when the original job is waiting and context is healthy. Use a new fix bead with `--job <exec-job>` only when the original executor is dead, context exhausted, or a separate audit trail is required.
508
508
 
509
- Code-sanity and security-auditor outputs are advisory inputs to the chain; reviewer output must still be consumed before publishing. Do not treat job completion, code-sanity OK, or security no-findings as equivalent to reviewer acceptance.
509
+ Seconder and security-auditor outputs are advisory inputs to the chain; reviewer output must still be consumed before publishing. Do not treat job completion, seconder OK, or security no-findings as equivalent to reviewer acceptance.
510
510
 
511
511
  ## Dependency Mapping
512
512