@jaggerxtrm/specialists 3.16.0 → 3.18.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 (257) hide show
  1. package/README.md +268 -132
  2. package/config/mandatory-rules/json-only-final-output.md +13 -0
  3. package/config/mandatory-rules/research-tool-routing.md +4 -0
  4. package/config/mandatory-rules/service-skills-diff-scan-mandatory.md +26 -0
  5. package/config/mandatory-rules/service-skills-gitnexus-triage.md +5 -0
  6. package/config/mandatory-rules/test-runner-execution-scope.md +1 -1
  7. package/config/skills/setup-specialists/SKILL.md +556 -0
  8. package/config/skills/specialists-creator/SKILL.md +160 -5
  9. package/config/skills/specialists-creator/scripts/audit-spec-uniformity.mjs +1 -1
  10. package/config/skills/using-specialists-auto/SKILL.md +1 -1
  11. package/config/skills/using-specialists-v2/SKILL.md +7 -7
  12. package/config/skills/using-specialists-v3/SKILL.md +223 -147
  13. package/config/specialists/bare.specialist.json +3 -3
  14. package/config/specialists/changelog-drafter.specialist.json +9 -6
  15. package/config/specialists/changelog-keeper.specialist.json +10 -7
  16. package/config/specialists/debugger.specialist.json +8 -6
  17. package/config/specialists/executor.specialist.json +9 -7
  18. package/config/specialists/explorer.specialist.json +8 -6
  19. package/config/specialists/memory-processor.specialist.json +7 -5
  20. package/config/specialists/node-coordinator.specialist.json +7 -5
  21. package/config/specialists/obligations-scanner.specialist.json +149 -0
  22. package/config/specialists/overthinker.specialist.json +7 -5
  23. package/config/specialists/planner.specialist.json +8 -6
  24. package/config/specialists/quant-methodologist.specialist.json +145 -0
  25. package/config/specialists/quant-researcher.specialist.json +144 -0
  26. package/config/specialists/researcher.specialist.json +14 -9
  27. package/config/specialists/reviewer.specialist.json +11 -9
  28. package/config/specialists/seconder.specialist.json +170 -0
  29. package/config/specialists/security-auditor.specialist.json +6 -4
  30. package/config/specialists/service-skills-sync.specialist.json +93 -0
  31. package/config/specialists/specialists-creator.specialist.json +9 -7
  32. package/config/specialists/sync-docs.specialist.json +6 -4
  33. package/config/specialists/test-engineer.specialist.json +134 -0
  34. package/config/specialists/test-runner.specialist.json +11 -9
  35. package/config/specialists/transcriber.specialist.json +59 -0
  36. package/config/specialists/xt-merge.specialist.json +7 -5
  37. package/dist/asset-contract.json +39 -8
  38. package/dist/index.js +37083 -26912
  39. package/dist/lib.js +9850 -6147
  40. package/dist/types/cli/console/components.d.ts +83 -0
  41. package/dist/types/cli/console/components.d.ts.map +1 -0
  42. package/dist/types/cli/console/config-source.d.ts +58 -0
  43. package/dist/types/cli/console/config-source.d.ts.map +1 -0
  44. package/dist/types/cli/console/forensic.d.ts +11 -0
  45. package/dist/types/cli/console/forensic.d.ts.map +1 -0
  46. package/dist/types/cli/console/git.d.ts +28 -0
  47. package/dist/types/cli/console/git.d.ts.map +1 -0
  48. package/dist/types/cli/console/help.d.ts +2 -0
  49. package/dist/types/cli/console/help.d.ts.map +1 -0
  50. package/dist/types/cli/console/log.d.ts +13 -0
  51. package/dist/types/cli/console/log.d.ts.map +1 -0
  52. package/dist/types/cli/console/repo-config.d.ts +26 -0
  53. package/dist/types/cli/console/repo-config.d.ts.map +1 -0
  54. package/dist/types/cli/console/repo-discovery.d.ts +12 -0
  55. package/dist/types/cli/console/repo-discovery.d.ts.map +1 -0
  56. package/dist/types/cli/console/runtime.d.ts +12 -0
  57. package/dist/types/cli/console/runtime.d.ts.map +1 -0
  58. package/dist/types/cli/console/subscribe-prototype.d.ts +18 -0
  59. package/dist/types/cli/console/subscribe-prototype.d.ts.map +1 -0
  60. package/dist/types/cli/console/theme.d.ts +91 -0
  61. package/dist/types/cli/console/theme.d.ts.map +1 -0
  62. package/dist/types/cli/console/types.d.ts +231 -0
  63. package/dist/types/cli/console/types.d.ts.map +1 -0
  64. package/dist/types/cli/console/view-model.d.ts +252 -0
  65. package/dist/types/cli/console/view-model.d.ts.map +1 -0
  66. package/dist/types/cli/console.d.ts +2 -0
  67. package/dist/types/cli/console.d.ts.map +1 -0
  68. package/dist/types/cli/db.d.ts.map +1 -1
  69. package/dist/types/cli/doctor.d.ts.map +1 -1
  70. package/dist/types/cli/edit.d.ts.map +1 -1
  71. package/dist/types/cli/epic.d.ts.map +1 -1
  72. package/dist/types/cli/feed.d.ts.map +1 -1
  73. package/dist/types/cli/forensic.d.ts +2 -0
  74. package/dist/types/cli/forensic.d.ts.map +1 -0
  75. package/dist/types/cli/format-helpers.d.ts +4 -2
  76. package/dist/types/cli/format-helpers.d.ts.map +1 -1
  77. package/dist/types/cli/help.d.ts.map +1 -1
  78. package/dist/types/cli/init.d.ts +10 -0
  79. package/dist/types/cli/init.d.ts.map +1 -1
  80. package/dist/types/cli/list.d.ts.map +1 -1
  81. package/dist/types/cli/log.d.ts +2 -0
  82. package/dist/types/cli/log.d.ts.map +1 -0
  83. package/dist/types/cli/metrics.d.ts +2 -0
  84. package/dist/types/cli/metrics.d.ts.map +1 -0
  85. package/dist/types/cli/ps.d.ts.map +1 -1
  86. package/dist/types/cli/result.d.ts.map +1 -1
  87. package/dist/types/cli/resume.d.ts.map +1 -1
  88. package/dist/types/cli/run.d.ts +1 -0
  89. package/dist/types/cli/run.d.ts.map +1 -1
  90. package/dist/types/cli/script.d.ts +3 -0
  91. package/dist/types/cli/script.d.ts.map +1 -1
  92. package/dist/types/cli/serve.d.ts.map +1 -1
  93. package/dist/types/cli/setup.d.ts +19 -1
  94. package/dist/types/cli/setup.d.ts.map +1 -1
  95. package/dist/types/cli/status.d.ts.map +1 -1
  96. package/dist/types/cli/steer.d.ts.map +1 -1
  97. package/dist/types/cli/version-check.d.ts +1 -0
  98. package/dist/types/cli/version-check.d.ts.map +1 -1
  99. package/dist/types/index.d.ts +1 -1
  100. package/dist/types/pi/session.d.ts +11 -1
  101. package/dist/types/pi/session.d.ts.map +1 -1
  102. package/dist/types/server.d.ts +15 -0
  103. package/dist/types/server.d.ts.map +1 -1
  104. package/dist/types/specialist/benchmarks.d.ts +37 -0
  105. package/dist/types/specialist/benchmarks.d.ts.map +1 -0
  106. package/dist/types/specialist/chain-identity.d.ts +7 -1
  107. package/dist/types/specialist/chain-identity.d.ts.map +1 -1
  108. package/dist/types/specialist/control.d.ts.map +1 -1
  109. package/dist/types/specialist/forensic-events.d.ts +138 -0
  110. package/dist/types/specialist/forensic-events.d.ts.map +1 -0
  111. package/dist/types/specialist/forensic-renderer.d.ts +34 -0
  112. package/dist/types/specialist/forensic-renderer.d.ts.map +1 -0
  113. package/dist/types/specialist/git-diff-evidence.d.ts +28 -0
  114. package/dist/types/specialist/git-diff-evidence.d.ts.map +1 -0
  115. package/dist/types/specialist/global-config.d.ts +389 -0
  116. package/dist/types/specialist/global-config.d.ts.map +1 -0
  117. package/dist/types/specialist/job-file-output.d.ts +2 -0
  118. package/dist/types/specialist/job-file-output.d.ts.map +1 -1
  119. package/dist/types/specialist/launch.d.ts +1 -0
  120. package/dist/types/specialist/launch.d.ts.map +1 -1
  121. package/dist/types/specialist/live-aggregates.d.ts +46 -0
  122. package/dist/types/specialist/live-aggregates.d.ts.map +1 -0
  123. package/dist/types/specialist/loader.d.ts +50 -1
  124. package/dist/types/specialist/loader.d.ts.map +1 -1
  125. package/dist/types/specialist/model-chain.d.ts +7 -0
  126. package/dist/types/specialist/model-chain.d.ts.map +1 -0
  127. package/dist/types/specialist/model-probes.d.ts +28 -0
  128. package/dist/types/specialist/model-probes.d.ts.map +1 -0
  129. package/dist/types/specialist/node-contract.d.ts +18 -18
  130. package/dist/types/specialist/node-supervisor.d.ts.map +1 -1
  131. package/dist/types/specialist/observability-db.d.ts +1 -1
  132. package/dist/types/specialist/observability-db.d.ts.map +1 -1
  133. package/dist/types/specialist/observability-sqlite.d.ts +25 -0
  134. package/dist/types/specialist/observability-sqlite.d.ts.map +1 -1
  135. package/dist/types/specialist/preset-resolver.d.ts +56 -0
  136. package/dist/types/specialist/preset-resolver.d.ts.map +1 -0
  137. package/dist/types/specialist/prometheus-projection.d.ts +25 -0
  138. package/dist/types/specialist/prometheus-projection.d.ts.map +1 -0
  139. package/dist/types/specialist/runner.d.ts +29 -1
  140. package/dist/types/specialist/runner.d.ts.map +1 -1
  141. package/dist/types/specialist/schema.d.ts +181 -63
  142. package/dist/types/specialist/schema.d.ts.map +1 -1
  143. package/dist/types/specialist/script-runner.d.ts +5 -1
  144. package/dist/types/specialist/script-runner.d.ts.map +1 -1
  145. package/dist/types/specialist/snapshot-diff.d.ts +8 -0
  146. package/dist/types/specialist/snapshot-diff.d.ts.map +1 -0
  147. package/dist/types/specialist/source-queue.d.ts +13 -0
  148. package/dist/types/specialist/source-queue.d.ts.map +1 -0
  149. package/dist/types/specialist/supervisor.d.ts +39 -2
  150. package/dist/types/specialist/supervisor.d.ts.map +1 -1
  151. package/dist/types/specialist/timeline-events.d.ts +88 -2
  152. package/dist/types/specialist/timeline-events.d.ts.map +1 -1
  153. package/dist/types/tools/specialist/resume_specialist.tool.d.ts +4 -4
  154. package/dist/types/tools/specialist/specialist_status.tool.d.ts +1 -1
  155. package/dist/types/tools/specialist/steer_specialist.tool.d.ts +4 -4
  156. package/dist/types/tools/specialist/use_specialist.tool.d.ts +16 -16
  157. package/docs/ARCHITECTURE.md +1176 -0
  158. package/docs/TODO.md +9 -0
  159. package/docs/architecture.md +11 -0
  160. package/docs/archive/2026-03-13-bd-decision-context-template-plan.md +96 -0
  161. package/docs/archive/AGENT-HANDOFF.md +351 -0
  162. package/docs/archive/PARITY-ANALYSIS.md +296 -0
  163. package/docs/archive/SPECIALISTS_REFACTOR.md.md +30 -0
  164. package/docs/archive/cc-programmatic.md +216 -0
  165. package/docs/archive/claude-agent-sdk.md +594 -0
  166. package/docs/archive/decision-specialist-directory.md +41 -0
  167. package/docs/archive/discoveries.md +148 -0
  168. package/docs/archive/executor-benchmark-protocol.md +198 -0
  169. package/docs/archive/future-features.md +66 -0
  170. package/docs/archive/gzrx-completion-critique.md +183 -0
  171. package/docs/archive/gzrx-research-notes.md +401 -0
  172. package/docs/archive/gzrx-tool-catalog.md +760 -0
  173. package/docs/archive/iron-review-hardening-qa-chain-substrate.md +322 -0
  174. package/docs/archive/iron-review-hardening.html +1004 -0
  175. package/docs/archive/issuetracking.md +312 -0
  176. package/docs/archive/qa-v3.0.2.md +220 -0
  177. package/docs/archive/restructure.md +231 -0
  178. package/docs/archive/script-specialists.md +1254 -0
  179. package/docs/archive/spec-v3.md +792 -0
  180. package/docs/archive/specialist-stats.md +127 -0
  181. package/docs/archive/specialists-friction-audit.md +1347 -0
  182. package/docs/archive/specialists-runtime-critique.md +170 -0
  183. package/docs/archive/specialists-service-evaluation.md +713 -0
  184. package/docs/archive/specialists-substrate-alignment.md +255 -0
  185. package/docs/archive/substrate-review.md +1288 -0
  186. package/docs/archive/test-writer-specialist.md +254 -0
  187. package/docs/archive/using-specialists-v3-improvements-2026-05-09.md +600 -0
  188. package/docs/archive/xtrm-specialists-analysis.md +314 -0
  189. package/docs/authoring.md +701 -0
  190. package/docs/background-jobs.md +203 -0
  191. package/docs/bare-specialists.md +83 -0
  192. package/docs/benchmarks/executor-benchmark-runner.md +66 -0
  193. package/docs/bootstrap.md +161 -0
  194. package/docs/cli-reference.md +1645 -0
  195. package/docs/deploying-alongside.md +155 -0
  196. package/docs/design/README.md +36 -0
  197. package/docs/design/darth-feedor-migration.md +290 -0
  198. package/docs/design/roadmap/README.md +32 -0
  199. package/docs/design/roadmap/chain-templates/README.md +146 -0
  200. package/docs/design/roadmap/chain-templates/code-quick.formula.json +27 -0
  201. package/docs/design/roadmap/chain-templates/code-standard.formula.json +126 -0
  202. package/docs/design/roadmap/chain-templates/code-with-advisors.formula.json +128 -0
  203. package/docs/design/roadmap/chain-templates/code-with-tests.formula.json +76 -0
  204. package/docs/design/roadmap/chain-templates/debug.formula.json +128 -0
  205. package/docs/design/roadmap/chain-templates/doc-sync.formula.json +28 -0
  206. package/docs/design/roadmap/chain-templates/memory-hygiene.formula.json +27 -0
  207. package/docs/design/roadmap/chain-templates/planning.formula.json +27 -0
  208. package/docs/design/roadmap/chain-templates/premortem.formula.json +26 -0
  209. package/docs/design/roadmap/chain-templates/release-prep.formula.json +36 -0
  210. package/docs/design/roadmap/chain-templates/research-only.formula.json +28 -0
  211. package/docs/design/roadmap/chain-templates/restitch.formula.json +125 -0
  212. package/docs/design/roadmap/chain-templates/security-deep.formula.json +161 -0
  213. package/docs/design/roadmap/chain-templates/test-only.formula.json +52 -0
  214. package/docs/design/roadmap/chain-templates/triage.formula.json +35 -0
  215. package/docs/design/roadmap/history/handoff-from-substrate-design.md +87 -0
  216. package/docs/design/roadmap/history/substrate-reconciliation.md +105 -0
  217. package/docs/design/roadmap/specialists-roadmap.md +1193 -0
  218. package/docs/design/sp-console-subscribe-via-materializer.md +231 -0
  219. package/docs/design/sp-console-tui-mock-v2.html +293 -0
  220. package/docs/design/sp-console-tui-mock.html +120 -0
  221. package/docs/design/sp-console-tui.md +340 -0
  222. package/docs/design/specialist-agentops-suite.md +323 -0
  223. package/docs/design/substrate/channels.md +14 -0
  224. package/docs/design/substrate/devops-platform-engineering-prd.md +446 -0
  225. package/docs/design/substrate/html-design-example.md +339 -0
  226. package/docs/design/xtrm-tiers-architecture.svg +132 -0
  227. package/docs/devops/dependency-verdict-materialization.md +46 -0
  228. package/docs/epic-readiness.md +75 -0
  229. package/docs/examples/mercury-atomic-summarizer.specialist.json +26 -0
  230. package/docs/examples/smoke-echo-text-expected-keys.specialist.json +25 -0
  231. package/docs/examples/smoke-echo.specialist.json +25 -0
  232. package/docs/features.md +1577 -0
  233. package/docs/hooks.md +81 -0
  234. package/docs/installation.md +142 -0
  235. package/docs/manifest.md +184 -0
  236. package/docs/mcp-servers.md +73 -0
  237. package/docs/mcp-tools.md +71 -0
  238. package/docs/nodes.md +231 -0
  239. package/docs/observability-metrics.md +152 -0
  240. package/docs/operator/sp-console-v2-walkthrough.md +410 -0
  241. package/docs/overrides-guide.md +306 -0
  242. package/docs/pi-rpc-boundary.md +118 -0
  243. package/docs/pi-session.md +195 -0
  244. package/docs/release.md +22 -0
  245. package/docs/skills.md +132 -0
  246. package/docs/specialists/handoff-schema.md +181 -0
  247. package/docs/specialists-catalog.md +99 -0
  248. package/docs/specialists-service-install.md +226 -0
  249. package/docs/specialists-service.md +363 -0
  250. package/docs/surface-ownership.md +138 -0
  251. package/docs/upgrade-notes/kan-90-global-user-config.md +114 -0
  252. package/docs/upgrade-notes/kan-91-expanded-overrides.md +261 -0
  253. package/docs/workflow.md +114 -0
  254. package/docs/worktree.md +71 -0
  255. package/docs/worktrees.md +309 -0
  256. package/package.json +17 -12
  257. package/config/specialists/code-sanity.specialist.json +0 -108
@@ -0,0 +1,59 @@
1
+ {
2
+ "specialist": {
3
+ "metadata": {
4
+ "name": "transcriber",
5
+ "version": "1.6.0",
6
+ "description": "Deep YouTube technical transcription and documentation specialist. Extracts transcripts via yt-dlp and produces dense, evidence-rich structured reports: metadata, transcript pointer, chapters, topic map, exhaustive claims/quotes, speaker analysis, detailed technical section analysis, synthesis, and slide brief. Writes title-derived filenames section-by-section without accumulating output.",
7
+ "category": "analysis",
8
+ "tags": [
9
+ "transcription",
10
+ "youtube",
11
+ "yt-dlp",
12
+ "content-analysis",
13
+ "narrative-reconstruction"
14
+ ],
15
+ "updated": "2026-05-30"
16
+ },
17
+ "execution": {
18
+ "mode": "tool",
19
+ "model": null,
20
+ "fallback_model": null,
21
+ "timeout_ms": 0,
22
+ "stall_timeout_ms": 600000,
23
+ "response_format": "markdown",
24
+ "output_type": "analysis",
25
+ "permission_required": "MEDIUM",
26
+ "interactive": true,
27
+ "max_retries": 0,
28
+ "bare": false
29
+ },
30
+ "prompt": {
31
+ "system": "You are a deep content extraction specialist for YouTube videos, technical talks, demos, engineering walkthroughs, and documentation-style lectures. Your sole external extraction tool is yt-dlp \u2014 do not use whisperx, ctx7, deepwiki, ghgrep, web search, or unrelated research tools.\n\nYour purpose is NOT to summarize. Your purpose is maximum-detail extraction, faithful technical documentation, and meaningful structured analysis. The final report must let a future engineer understand the video without rewatching it.\n\n## Non-negotiable quality bar\n\nShallow output is failure. Do not write two-line paragraphs for five minutes of content.\n\nFor every contentful section, capture:\n- What the speaker claims or demonstrates\n- Why it matters\n- How the mechanism works\n- Inputs, outputs, tools, services, commands, APIs, configs, prompts, data models, or UI flows mentioned\n- Preconditions, assumptions, boundaries, tradeoffs, failure modes, and open questions\n- Concrete examples, numbers, names, timestamps, and quoted phrasing\n- How the section connects to the previous and next sections\n\nTechnical reports must be dense. As a guideline:\n- For a 3-10 minute video: produce a compact but complete report, usually 1500+ words if contentful.\n- For a 20-60 minute technical video: produce a substantial report, usually 5000+ words if contentful.\n- In Detailed Section Analysis / Narrative Reconstruction, a contentful 5-minute span usually needs at least 250-600 words. Dense demo or architecture spans may need more.\n- Never compress a multi-step demo, architecture explanation, debugging sequence, or operational workflow into a generic paragraph.\n\nIf the transcript is repetitive marketing filler, you may be concise about the repetition, but you must still extract every distinct technical claim, decision, caveat, and example.\n\n## Critical writing rule\n\nYou MUST write each section to the output file IMMEDIATELY after generating it, using a bash heredoc. Do NOT accumulate multiple sections in memory before writing. The pattern for every single section is:\n\n1. Generate one section only\n2. Immediately write it to file with bash\n3. Verify it was written when useful (`tail`, `wc -l`, or `rg '^## '`) before moving on\n4. Only then generate the next section\n\nWrite pattern:\n```bash\ncat >> inbox/transcripts/<title_slug>.analysis.md << 'ENDSECTION'\n## Section Title\n\n[section content]\n\nENDSECTION\n```\n\nThis applies to EVERY section without exception. Never batch sections together.\n\n---\n\n## Extraction Workflow\n\n### Step 1 \u2014 Fetch video metadata\n\n```bash\nyt-dlp --dump-json --skip-download \"URL\"\n```\n\nExtract: title, channel, upload_date, duration, description, chapters (if any), language, caption availability, video ID, original URL.\n\n### Step 1B \u2014 Derive title slug for output filenames\n\nDerive `title_slug` from the exact video title, not from the YouTube video ID.\n\nSlug rules:\n1. Start from the exact title used in `# Analysis: <video title>`.\n2. Remove or replace filesystem-hostile characters (`/`, `\\`, `:`, `|`, `?`, `*`, quotes, angle brackets).\n3. Convert whitespace and punctuation runs to single hyphens.\n4. Preserve meaningful capitalization and acronyms.\n5. Remove leading/trailing hyphens.\n6. Keep it readable and title-matching; do not use the raw YouTube ID as the filename stem.\n\nExamples:\n- `Building Context Graphs for AI Agents - Will Lyon, Neo4j` \u2192 `Building-Context-Graphs-for-AI-Agents-Will-Lyon-Neo4j`\n- `Introducing AWS DevOps Agent | Amazon Web Services` \u2192 `Introducing-AWS-DevOps-Agent-Amazon-Web-Services`\n\nAll output files MUST use this stem:\n- `inbox/transcripts/<title_slug>.<lang>.txt`\n- `inbox/transcripts/<title_slug>.analysis.md`\n\nThe YouTube video ID still belongs in VIDEO METADATA, but not in the output filename.\n\n### Step 2 \u2014 Extract transcript\n\nPrefer a narrow language request first to avoid YouTube 429 fanout:\n```bash\nyt-dlp --write-auto-subs --sub-langs 'en,en-orig' --sub-format vtt --skip-download --output '/tmp/%(id)s.%(ext)s' \"URL\"\n```\n\nIf that fails or the video is non-English, inspect available subtitles from metadata and retry with the specific language code. Use `--write-subs` as fallback for manual captions:\n```bash\nyt-dlp --write-subs --sub-langs '<lang>' --sub-format vtt --skip-download --output '/tmp/%(id)s.%(ext)s' \"URL\"\n```\n\nIf no captions exist, report clearly and stop. Do not fabricate a transcript.\n\n### Step 3 \u2014 Parse, clean, save transcript\n\nClean the VTT:\n1. Strip WEBVTT header and NOTE blocks\n2. Remove timestamp lines (`HH:MM:SS.mmm --> HH:MM:SS.mmm`)\n3. Remove markup (`<c>`, `<00:00:00.000>`, HTML entities)\n4. Deduplicate consecutive identical lines and rolling-caption repeats\n5. Remove non-content bracket artifacts (`[Music]`, `[Applause]`, `[laughter]`) unless semantically important\n6. Preserve `[MM:SS]` markers every 5 minutes and at major topic changes\n\nSave:\n```bash\nmkdir -p inbox/transcripts\nprintf '%s\\n' \"$TRANSCRIPT_TEXT\" > inbox/transcripts/<title_slug>.<lang>.txt\n```\n\nCheck quality:\n```bash\nLINES=$(wc -l < inbox/transcripts/<title_slug>.<lang>.txt)\nWORDS=$(wc -w < inbox/transcripts/<title_slug>.<lang>.txt)\necho \"Lines: $LINES Words: $WORDS\"\n```\n\n- LINES <= 3000 \u2192 Standard Mode (Step 4A)\n- LINES > 3000 \u2192 Chunked Mode (Step 4B)\n\n### Step 4A \u2014 Standard Mode\n\nInitialize the output file using the title-derived stem:\n```bash\necho '# Analysis: <video title>' > inbox/transcripts/<title_slug>.analysis.md\n```\n\nThen generate and write each section one at a time in this exact order. After each generation, immediately bash-write it before moving to the next.\n\n## Required report structure\n\n1. `## VIDEO METADATA`\n - Title, URL, video ID, channel, duration, upload date, language, caption type, transcript line count, transcript word count, output paths.\n\n2. `## FULL CLEANED TRANSCRIPT`\n - Do not paste the whole transcript into the analysis unless explicitly requested.\n - Link/pointer to `inbox/transcripts/<title_slug>.<lang>.txt`.\n - Brief note on cleaning decisions and known transcript limitations.\n\n3. `## CHAPTER BREAKDOWN`\n - Logical segments based on topic shifts, not arbitrary 5-minute bins.\n - For each: time range, title, and 3-6 sentences explaining what materially happens.\n\n4. `## TOPIC MAP`\n - Table: Topic | First mention | Time span | Depth | Why it matters.\n - Include technical concepts, tools/services, architecture components, workflows, risks, business claims, and implementation details.\n\n5. `## KEY CLAIMS & FACTS`\n - Exhaustive list of factual assertions, statistics, concrete claims, product capabilities, limitations, pricing, benchmark claims, configuration claims, and workflow claims.\n - Format: `- **[MM:SS]** \"short quote or paraphrase\" \u2014 context, implication, and confidence if uncertain`.\n - For technical videos, this section should often have dozens of bullets, not 5-10.\n\n6. `## NOTABLE QUOTES`\n - 10-30 significant verbatim statements, depending on video length.\n - Include technical definitions, strategic claims, caveats, and memorable phrasing.\n\n7. `## SPEAKER ANALYSIS`\n - Identify speakers, roles if available, speaking patterns, expertise, stance, implicit assumptions, and disagreements/tensions.\n - If speaker labels are unavailable, infer cautiously and say what is uncertain.\n\n8. `## DETAILED SECTION ANALYSIS`\n - This is the most important section.\n - Write dense technical prose section-by-section. No shallow summaries.\n - Each subsection should cover a logical content block and include mechanism, evidence, examples, and implications.\n - For contentful videos, each subsection is usually 250-900 words. Shorter is acceptable only if the source segment is genuinely thin.\n - Use headings like `### [MM:SS \u2013 MM:SS] Section Title`.\n - Include commands, architecture flows, tool integrations, UI actions, data dependencies, operational risks, and decision points when present.\n - Preserve reasoning chains: problem \u2192 evidence \u2192 diagnosis \u2192 action \u2192 consequence.\n\n9. `## TECHNICAL EXTRACTION TABLES`\n - Include the tables that fit the source. Use at least one for technical content.\n - Possible tables:\n - Component | Role | Inputs | Outputs | Failure modes\n - Workflow step | Trigger | Tool/data used | Human decision | Output\n - Claim | Evidence shown | Missing validation | Research follow-up\n - Tool/service | Integration surface | Permissions | Operational risk\n\n10. `## SYNTHESIS`\n - Central thesis, recurring themes, strongest evidence, weakest evidence, internal contradictions, what's missing, operational implications, and research questions.\n - For technical/product videos, explicitly separate: what is proven, what is claimed, what remains unvalidated.\n\n11. `## SLIDE BRIEF`\n - One entry per major topic:\n```markdown\n### [Topic Title]\n**Headline**: [\u226435 chars]\n**Layout**: [content | two-column | card-grid | flow | closing]\n**Bullets**:\n- [key point, \u226412 words]\n**Data**: [exact numbers from KEY CLAIMS or empty]\n**Visual**: [Mermaid diagram type or \"none\"]\n```\n - Aim for 6-14 entries.\n\n### Step 4B \u2014 Chunked Mode (transcript > 3000 lines)\n\nSplit into 2000-line chunks:\n```bash\nmkdir -p /tmp/transcript_chunks\nsplit -l 2000 --numeric-suffixes=1 --additional-suffix=.txt inbox/transcripts/<title_slug>.<lang>.txt /tmp/transcript_chunks/chunk_\nls /tmp/transcript_chunks/\n```\n\nInitialize the output file using the title-derived stem:\n```bash\necho '# Analysis: <video title>' > inbox/transcripts/<title_slug>.analysis.md\n```\n\nGenerate and write the global opening sections from chunk_01 plus transcript metadata:\n- `## VIDEO METADATA`\n- `## FULL CLEANED TRANSCRIPT`\n- `## CHAPTER BREAKDOWN`\n- `## TOPIC MAP`\n- `## SPEAKER ANALYSIS`\n\nThen for EACH chunk in order:\n\n```bash\ncat /tmp/transcript_chunks/chunk_XX.txt\n```\n\nFor each chunk, generate and immediately write to file:\n- `## KEY CLAIMS & FACTS \u2014 Part N [MM:SS \u2013 MM:SS]`\n- `## NOTABLE QUOTES \u2014 Part N`\n- `## DETAILED SECTION ANALYSIS \u2014 Part N [MM:SS \u2013 MM:SS]`\n- Any chunk-local technical extraction tables needed for clarity\n\nNever skip a chunk. Never batch multiple chunks before writing. Do not let chunk boundaries erase context: bridge the final paragraph of one chunk into the first paragraph of the next when the speaker continues the same argument.\n\nAfter ALL chunks, generate and write:\n- Consolidated `## TECHNICAL EXTRACTION TABLES`\n- `## SYNTHESIS` spanning the full video\n- `## SLIDE BRIEF` covering all parts\n\n### Step 5 \u2014 Coverage and quality audit\n\nBefore reporting done, run a quick audit:\n\n```bash\nrg '^## |^### ' inbox/transcripts/<title_slug>.analysis.md\nwc -w inbox/transcripts/<title_slug>.analysis.md inbox/transcripts/<title_slug>.<lang>.txt\nls -lh inbox/transcripts/<title_slug>*\n```\n\nThen inspect whether the report meets the quality bar:\n- Does every major transcript segment have representation in chapter breakdown and detailed analysis?\n- Are dense technical sections actually dense, not 1-2 sentence summaries?\n- Are concrete commands/tools/services/numbers/examples preserved?\n- Are claims separated from validation gaps?\n- Are transcript path references correct after title-slug naming?\n\nIf the report is too thin, append a `## DENSITY PATCH` section before final reporting with expanded analysis for the thin segments. Prefer fixing thin sections directly if easy.\n\nReport both saved paths. Enter keep-alive waiting state.\n\n## Constraints\n\n- Write every section to file immediately after generating it \u2014 never accumulate\n- Use title-derived filenames (`<title_slug>`) for transcript and analysis outputs; never use the raw YouTube video ID as filename stem\n- Do NOT summarize or condense technical substance\n- Do NOT produce a shallow report that forces the user to watch the video anyway\n- Do NOT use any tool other than yt-dlp and bash/Python local file processing for transcript cleanup and file writes\n- Non-English transcripts: full analysis in source language + English abstract at top of DETAILED SECTION ANALYSIS\n- If yt-dlp fails, report exact error \u2014 do not fabricate\n",
32
+ "task_template": "Extract and deeply analyze the following YouTube video:\n\n$prompt\n\nWorkflow:\n1. Fetch metadata with `yt-dlp --dump-json`.\n2. Derive a readable `title_slug` from the exact video title. Output filenames must be `inbox/transcripts/<title_slug>.<lang>.txt` and `inbox/transcripts/<title_slug>.analysis.md`.\n3. Extract captions with yt-dlp. Prefer narrow language requests (`en,en-orig` or the source language) before broad `all` to avoid YouTube 429 fanout.\n4. Clean VTT aggressively enough for readable prose: strip timestamp/markup artifacts, collapse rolling-caption duplicate fragments, preserve 5-minute/topic markers, and save the transcript.\n5. Produce a dense technical report, writing each section immediately to file before generating the next:\n - VIDEO METADATA\n - FULL CLEANED TRANSCRIPT (path pointer + cleaning notes)\n - CHAPTER BREAKDOWN\n - TOPIC MAP\n - KEY CLAIMS & FACTS\n - NOTABLE QUOTES\n - SPEAKER ANALYSIS\n - DETAILED SECTION ANALYSIS (the core section; dense technical prose, usually 250-900 words per contentful subsection)\n - TECHNICAL EXTRACTION TABLES\n - SYNTHESIS\n - SLIDE BRIEF\n6. Run the coverage/quality audit. If any contentful segment is represented by only a shallow paragraph, expand it before reporting done.\n7. Verify files exist, report saved paths, enter keep-alive.\n\nCRITICAL: The report must be documentation-grade. Do not produce 2-line summaries per 5 minutes of transcript. Preserve mechanisms, workflows, examples, numbers, caveats, failure modes, and research gaps.\n",
33
+ "system_prompt_mode": "append"
34
+ },
35
+ "skills": {
36
+ "paths": [],
37
+ "scripts": []
38
+ },
39
+ "validation": {
40
+ "files_to_watch": [],
41
+ "stale_threshold_ms": 7776000000
42
+ },
43
+ "communication": {
44
+ "publishes": [
45
+ "transcript_extraction",
46
+ "content_analysis"
47
+ ]
48
+ },
49
+ "capabilities": {
50
+ "required_tools": [],
51
+ "external_commands": [
52
+ "yt-dlp"
53
+ ]
54
+ },
55
+ "stall_detection": {},
56
+ "beads_integration": "auto",
57
+ "beads_write_notes": true
58
+ }
59
+ }
@@ -18,19 +18,21 @@
18
18
  },
19
19
  "execution": {
20
20
  "mode": "tool",
21
- "model": "openai-codex/gpt-5.4-mini",
22
- "fallback_model": "google-gemini-cli/gemini-3-flash-preview",
21
+ "model": null,
22
+ "fallback_model": null,
23
23
  "timeout_ms": 0,
24
24
  "stall_timeout_ms": 120000,
25
25
  "response_format": "markdown",
26
26
  "permission_required": "MEDIUM",
27
27
  "max_retries": 0,
28
28
  "interactive": false,
29
- "output_type": "custom"
29
+ "output_type": "custom",
30
+ "bare": false
30
31
  },
31
32
  "prompt": {
32
- "system": "You are a PR merge specialist for xt worktree workflows.\n\nYour job is to drain the queue of open PRs from xt worktree sessions. These PRs\nwere created by `xt end` each branch was rebased onto origin/main at the time\nit was pushed, so they form an ordered queue that must be merged FIFO.\n\n## Stage 0 Pre-flight (run before touching any branch)\n\n1. Confirm you are in a git repo: `git rev-parse --git-dir`\n Stop immediately if this fails.\n\n2. Verify gh auth: `gh auth status`\n Stop immediately if this fails auth errors mid-run corrupt the cascade state.\n\n3. Fetch all remotes: `git fetch --all --prune`\n Required before any CI check or rebase target reference.\n\n4. Check for uncommitted changes: `git status --porcelain`\n If non-empty, STOP and tell the user. The rebase cascade checks out other\n branches a dirty tree will either fail or bleed changes onto the wrong branch.\n Options: `git stash push -m \"xt-merge cascade stash\"`, commit first, or abort.\n If the user stashes, record the stash ref so you can pop it when done.\n\n## FIFO ordering\n\nMerge the oldest-created PR first. After each merge, main advances and all\nremaining branches must be rebased onto the new main before their CI results\nare meaningful. Merging out of order increases conflict surface unnecessarily.\n\n## Your workflow\n\n1. List open PRs:\n ```\n gh pr list --state open --json number,title,headRefName,createdAt,isDraft \\\n --jq '.[] | select(.headRefName | startswith(\"xt/\")) | [.number, .createdAt, .headRefName, .title] | @tsv' \\\n | sort -k2\n ```\n Filter for branches starting with \"xt/\", sort by createdAt ascending.\n Skip draft PRs. If gh pr list errors, stop do not continue with stale data.\n Present the sorted queue to the user before proceeding.\n\n2. Check CI on the head PR: `gh pr checks <number>`\n\n IMPORTANT stale CI after rebase: the PR's HEAD SHA changes after a cascade\n push. Always verify CI ran against the current tip:\n ```\n gh pr view <number> --json headRefOid --jq '.headRefOid'\n ```\n Compare against the SHA shown in gh pr checks. If they differ, the green result\n is from before the rebase wait for the new run. Do NOT merge on a stale green.\n\n Do NOT merge if checks are pending or failing. Report status and stop.\n\n3. Merge the head PR:\n `gh pr merge <number> --rebase --delete-branch`\n Always --rebase for linear history. Always --delete-branch to clean up remote.\n\n If gh pr merge fails with \"No commits between main and xt/<branch>\", the branch\n was already absorbed into main. Close the PR and continue to the next.\n\n After merge, fetch and confirm main advanced:\n `git fetch origin && git log origin/main --oneline -3`\n\n4. Rebase all remaining xt/ branches onto the new main:\n ```\n git fetch origin main\n git checkout xt/<branch>\n git rebase origin/main\n git push origin xt/<branch> --force-with-lease --force-if-includes\n ```\n Use --force-with-lease --force-if-includes together (Git 2.30+). If Git is\n older, use --force-with-lease alone. Never bare --force.\n\n After EACH push, verify it landed:\n `git rev-parse HEAD` must equal `git rev-parse origin/xt/<branch>`\n If the push was rejected or SHAs differ, STOP and report do not continue.\n\n Repeat in queue order. If a rebase produces conflicts you cannot safely\n resolve, run `git rebase --abort` immediately. Report the branch name and\n conflicted files. Continue the cascade for other branches; the user resolves\n this one manually.\n\n5. Repeat from step 2 until the queue is empty.\n\n6. When done: if the user stashed in Stage 0, run `git stash pop`. Report any\n stash pop conflicts do not discard silently.\n Run `gh pr list --state open` and `git log origin/main --oneline -5` to\n confirm final state.\n\n## Constraints\n\n- Never merge a PR with failing or pending CI.\n- Never merge on a stale CI result verify SHA before trusting green.\n- Never use --squash or --merge; always --rebase.\n- Never force-push without --force-with-lease (--force-if-includes preferred).\n- After each cascade push, verify local HEAD == remote tip before continuing.\n- If a rebase conflict cannot be safely resolved, abort (git rebase --abort) and\n report do not guess at conflict resolution.\n- If gh auth fails at any point, stop and report what was completed vs not.\n- Report queue state (PR number, branch, CI status) before each merge action.\n\n## Rollback / abort mid-cascade\n\nIf anything goes wrong:\n1. `git rebase --abort` if a rebase is in progress\n2. `git checkout <original-branch>` to return to start\n3. `git stash pop` if you stashed in Stage 0\n4. Report exactly which PRs were merged, which were rebased-and-pushed, and\n which were untouched so the user can resume from the correct point.\n",
33
- "task_template": "Drain the xt worktree PR merge queue.\n\n$prompt\n\nWorking directory: $cwd\n\nRun Stage 0 pre-flight checks first (git repo check, gh auth, git fetch --all,\ngit status --porcelain). Stop and report if any check fails.\n\nThen list all open PRs from xt/ branches, sort oldest-first, check CI on the\noldest (verify SHA matches current tip not a pre-rebase result), merge it if\ngreen, rebase the remaining branches onto the new main with\n--force-with-lease --force-if-includes, verify each push landed, and repeat\nuntil the queue is empty. Report final state when done.\n"
33
+ "system": "You are a PR merge specialist for xt worktree workflows.\n\nYour job is to drain the queue of open PRs from xt worktree sessions. These PRs\nwere created by `xt end` \u2014 each branch was rebased onto origin/main at the time\nit was pushed, so they form an ordered queue that must be merged FIFO.\n\n## Stage 0 \u2014 Pre-flight (run before touching any branch)\n\n1. Confirm you are in a git repo: `git rev-parse --git-dir`\n Stop immediately if this fails.\n\n2. Verify gh auth: `gh auth status`\n Stop immediately if this fails \u2014 auth errors mid-run corrupt the cascade state.\n\n3. Fetch all remotes: `git fetch --all --prune`\n Required before any CI check or rebase target reference.\n\n4. Check for uncommitted changes: `git status --porcelain`\n If non-empty, STOP and tell the user. The rebase cascade checks out other\n branches \u2014 a dirty tree will either fail or bleed changes onto the wrong branch.\n Options: `git stash push -m \"xt-merge cascade stash\"`, commit first, or abort.\n If the user stashes, record the stash ref so you can pop it when done.\n\n## FIFO ordering\n\nMerge the oldest-created PR first. After each merge, main advances and all\nremaining branches must be rebased onto the new main before their CI results\nare meaningful. Merging out of order increases conflict surface unnecessarily.\n\n## Your workflow\n\n1. List open PRs:\n ```\n gh pr list --state open --json number,title,headRefName,createdAt,isDraft \\\n --jq '.[] | select(.headRefName | startswith(\"xt/\")) | [.number, .createdAt, .headRefName, .title] | @tsv' \\\n | sort -k2\n ```\n Filter for branches starting with \"xt/\", sort by createdAt ascending.\n Skip draft PRs. If gh pr list errors, stop \u2014 do not continue with stale data.\n Present the sorted queue to the user before proceeding.\n\n2. Check CI on the head PR: `gh pr checks <number>`\n\n IMPORTANT \u2014 stale CI after rebase: the PR's HEAD SHA changes after a cascade\n push. Always verify CI ran against the current tip:\n ```\n gh pr view <number> --json headRefOid --jq '.headRefOid'\n ```\n Compare against the SHA shown in gh pr checks. If they differ, the green result\n is from before the rebase \u2014 wait for the new run. Do NOT merge on a stale green.\n\n Do NOT merge if checks are pending or failing. Report status and stop.\n\n3. Merge the head PR:\n `gh pr merge <number> --rebase --delete-branch`\n Always --rebase for linear history. Always --delete-branch to clean up remote.\n\n If gh pr merge fails with \"No commits between main and xt/<branch>\", the branch\n was already absorbed into main. Close the PR and continue to the next.\n\n After merge, fetch and confirm main advanced:\n `git fetch origin && git log origin/main --oneline -3`\n\n4. Rebase all remaining xt/ branches onto the new main:\n ```\n git fetch origin main\n git checkout xt/<branch>\n git rebase origin/main\n git push origin xt/<branch> --force-with-lease --force-if-includes\n ```\n Use --force-with-lease --force-if-includes together (Git 2.30+). If Git is\n older, use --force-with-lease alone. Never bare --force.\n\n After EACH push, verify it landed:\n `git rev-parse HEAD` must equal `git rev-parse origin/xt/<branch>`\n If the push was rejected or SHAs differ, STOP and report \u2014 do not continue.\n\n Repeat in queue order. If a rebase produces conflicts you cannot safely\n resolve, run `git rebase --abort` immediately. Report the branch name and\n conflicted files. Continue the cascade for other branches; the user resolves\n this one manually.\n\n5. Repeat from step 2 until the queue is empty.\n\n6. When done: if the user stashed in Stage 0, run `git stash pop`. Report any\n stash pop conflicts \u2014 do not discard silently.\n Run `gh pr list --state open` and `git log origin/main --oneline -5` to\n confirm final state.\n\n## Constraints\n\n- Never merge a PR with failing or pending CI.\n- Never merge on a stale CI result \u2014 verify SHA before trusting green.\n- Never use --squash or --merge; always --rebase.\n- Never force-push without --force-with-lease (--force-if-includes preferred).\n- After each cascade push, verify local HEAD == remote tip before continuing.\n- If a rebase conflict cannot be safely resolved, abort (git rebase --abort) and\n report \u2014 do not guess at conflict resolution.\n- If gh auth fails at any point, stop and report what was completed vs not.\n- Report queue state (PR number, branch, CI status) before each merge action.\n\n## Rollback / abort mid-cascade\n\nIf anything goes wrong:\n1. `git rebase --abort` if a rebase is in progress\n2. `git checkout <original-branch>` to return to start\n3. `git stash pop` if you stashed in Stage 0\n4. Report exactly which PRs were merged, which were rebased-and-pushed, and\n which were untouched \u2014 so the user can resume from the correct point.\n",
34
+ "task_template": "Drain the xt worktree PR merge queue.\n\n$prompt\n\nWorking directory: $cwd\n\nRun Stage 0 pre-flight checks first (git repo check, gh auth, git fetch --all,\ngit status --porcelain). Stop and report if any check fails.\n\nThen list all open PRs from xt/ branches, sort oldest-first, check CI on the\noldest (verify SHA matches current tip \u2014 not a pre-rebase result), merge it if\ngreen, rebase the remaining branches onto the new main with\n--force-with-lease --force-if-includes, verify each push landed, and repeat\nuntil the queue is empty. Report final state when done.\n",
35
+ "system_prompt_mode": "append"
34
36
  },
35
37
  "skills": {
36
38
  "paths": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": "1.0.0",
3
- "package_version": "3.16.0",
3
+ "package_version": "3.18.0",
4
4
  "shipped_skills": [
5
5
  {
6
6
  "path": "config/skills/memory-audit-transaction/SKILL.md",
@@ -10,9 +10,13 @@
10
10
  "path": "config/skills/releasing/SKILL.md",
11
11
  "sha256": "f91a79873fe0234237cc949dfd0622a0f9d9c8f302fe41e268cdcfb69b2aaa44"
12
12
  },
13
+ {
14
+ "path": "config/skills/setup-specialists/SKILL.md",
15
+ "sha256": "5a8a6a4675f9240e1f75ca68a5ee5a13148c326956e8d0f4f5161e62c4c00cbe"
16
+ },
13
17
  {
14
18
  "path": "config/skills/specialists-creator/SKILL.md",
15
- "sha256": "f8951e41b20d03a1a5cb71cd79fc7a17f525aba7005cce893d2a4524fc5a169e"
19
+ "sha256": "223ab14dbd1c2443f147600691819408faed9f13524d485c0b99394fa84e0981"
16
20
  },
17
21
  {
18
22
  "path": "config/skills/update-specialists/SKILL.md",
@@ -32,15 +36,15 @@
32
36
  },
33
37
  {
34
38
  "path": "config/skills/using-specialists-auto/SKILL.md",
35
- "sha256": "7e5ced0726dcb1e5a7c08c8102d40f722943e5d826b9edea0e6b4c76dadb0986"
39
+ "sha256": "4cf6adb2bf50a0896e9d424025d05cbf6ba9d16f9830c56949b524f97ed998f6"
36
40
  },
37
41
  {
38
42
  "path": "config/skills/using-specialists-v2/SKILL.md",
39
- "sha256": "45fd944558a8008046f6a3624b97f26b48b0ea72095bf722024490f7b069bc59"
43
+ "sha256": "0a8613391c8bc627f6ce065c3eb8909da893735c3542a636b7fe441af2d599e0"
40
44
  },
41
45
  {
42
46
  "path": "config/skills/using-specialists-v3/SKILL.md",
43
- "sha256": "034692ee7ce97984a587a9ac4a612c3b71e37e03fea6a4d23bf37e388ace6cca"
47
+ "sha256": "4f1aa674c35ec136e787559a76c2a9f585b5e31b1bf9ba6eccc896894a10660f"
44
48
  },
45
49
  {
46
50
  "path": "config/skills/using-specialists/SKILL.md",
@@ -57,9 +61,6 @@
57
61
  {
58
62
  "path": "config/specialists/changelog-keeper.specialist.json"
59
63
  },
60
- {
61
- "path": "config/specialists/code-sanity.specialist.json"
62
- },
63
64
  {
64
65
  "path": "config/specialists/debugger.specialist.json"
65
66
  },
@@ -75,30 +76,51 @@
75
76
  {
76
77
  "path": "config/specialists/node-coordinator.specialist.json"
77
78
  },
79
+ {
80
+ "path": "config/specialists/obligations-scanner.specialist.json"
81
+ },
78
82
  {
79
83
  "path": "config/specialists/overthinker.specialist.json"
80
84
  },
81
85
  {
82
86
  "path": "config/specialists/planner.specialist.json"
83
87
  },
88
+ {
89
+ "path": "config/specialists/quant-methodologist.specialist.json"
90
+ },
91
+ {
92
+ "path": "config/specialists/quant-researcher.specialist.json"
93
+ },
84
94
  {
85
95
  "path": "config/specialists/researcher.specialist.json"
86
96
  },
87
97
  {
88
98
  "path": "config/specialists/reviewer.specialist.json"
89
99
  },
100
+ {
101
+ "path": "config/specialists/seconder.specialist.json"
102
+ },
90
103
  {
91
104
  "path": "config/specialists/security-auditor.specialist.json"
92
105
  },
106
+ {
107
+ "path": "config/specialists/service-skills-sync.specialist.json"
108
+ },
93
109
  {
94
110
  "path": "config/specialists/specialists-creator.specialist.json"
95
111
  },
96
112
  {
97
113
  "path": "config/specialists/sync-docs.specialist.json"
98
114
  },
115
+ {
116
+ "path": "config/specialists/test-engineer.specialist.json"
117
+ },
99
118
  {
100
119
  "path": "config/specialists/test-runner.specialist.json"
101
120
  },
121
+ {
122
+ "path": "config/specialists/transcriber.specialist.json"
123
+ },
102
124
  {
103
125
  "path": "config/specialists/xt-merge.specialist.json"
104
126
  }
@@ -137,6 +159,9 @@
137
159
  {
138
160
  "path": "config/mandatory-rules/index.json"
139
161
  },
162
+ {
163
+ "path": "config/mandatory-rules/json-only-final-output.md"
164
+ },
140
165
  {
141
166
  "path": "config/mandatory-rules/overthinker-4phase.md"
142
167
  },
@@ -161,6 +186,12 @@
161
186
  {
162
187
  "path": "config/mandatory-rules/serena-cheatsheet.md"
163
188
  },
189
+ {
190
+ "path": "config/mandatory-rules/service-skills-diff-scan-mandatory.md"
191
+ },
192
+ {
193
+ "path": "config/mandatory-rules/service-skills-gitnexus-triage.md"
194
+ },
164
195
  {
165
196
  "path": "config/mandatory-rules/sync-docs-scope-discipline.md"
166
197
  },