@jaggerxtrm/specialists 3.9.0 → 3.10.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 (183) hide show
  1. package/config/mandatory-rules/README.md +4 -0
  2. package/config/mandatory-rules/gitnexus-required.md +12 -1
  3. package/config/mandatory-rules/serena-cheatsheet.md +41 -0
  4. package/config/specialists/debugger.specialist.json +2 -1
  5. package/config/specialists/executor.specialist.json +2 -1
  6. package/config/specialists/explorer.specialist.json +2 -1
  7. package/config/specialists/memory-processor.specialist.json +6 -1
  8. package/config/specialists/overthinker.specialist.json +2 -1
  9. package/config/specialists/planner.specialist.json +6 -1
  10. package/config/specialists/researcher.specialist.json +2 -1
  11. package/config/specialists/reviewer.specialist.json +2 -1
  12. package/config/specialists/specialists-creator.specialist.json +7 -1
  13. package/config/specialists/sync-docs.specialist.json +2 -1
  14. package/config/specialists/test-runner.specialist.json +2 -1
  15. package/dist/index.js +998 -533
  16. package/dist/lib.js +13219 -0
  17. package/dist/types/cli/attach.d.ts +2 -0
  18. package/dist/types/cli/attach.d.ts.map +1 -0
  19. package/dist/types/cli/clean.d.ts +2 -0
  20. package/dist/types/cli/clean.d.ts.map +1 -0
  21. package/dist/types/cli/config.d.ts +2 -0
  22. package/dist/types/cli/config.d.ts.map +1 -0
  23. package/dist/types/cli/db.d.ts +2 -0
  24. package/dist/types/cli/db.d.ts.map +1 -0
  25. package/dist/types/cli/doctor.d.ts +15 -0
  26. package/dist/types/cli/doctor.d.ts.map +1 -0
  27. package/dist/types/cli/edit.d.ts +2 -0
  28. package/dist/types/cli/edit.d.ts.map +1 -0
  29. package/dist/types/cli/end.d.ts +2 -0
  30. package/dist/types/cli/end.d.ts.map +1 -0
  31. package/dist/types/cli/epic.d.ts +8 -0
  32. package/dist/types/cli/epic.d.ts.map +1 -0
  33. package/dist/types/cli/feed.d.ts +19 -0
  34. package/dist/types/cli/feed.d.ts.map +1 -0
  35. package/dist/types/cli/follow-up.d.ts +2 -0
  36. package/dist/types/cli/follow-up.d.ts.map +1 -0
  37. package/dist/types/cli/format-helpers.d.ts +108 -0
  38. package/dist/types/cli/format-helpers.d.ts.map +1 -0
  39. package/dist/types/cli/help.d.ts +2 -0
  40. package/dist/types/cli/help.d.ts.map +1 -0
  41. package/dist/types/cli/init.d.ts +10 -0
  42. package/dist/types/cli/init.d.ts.map +1 -0
  43. package/dist/types/cli/install.d.ts +2 -0
  44. package/dist/types/cli/install.d.ts.map +1 -0
  45. package/dist/types/cli/list-rules.d.ts +2 -0
  46. package/dist/types/cli/list-rules.d.ts.map +1 -0
  47. package/dist/types/cli/list.d.ts +13 -0
  48. package/dist/types/cli/list.d.ts.map +1 -0
  49. package/dist/types/cli/memory.d.ts +2 -0
  50. package/dist/types/cli/memory.d.ts.map +1 -0
  51. package/dist/types/cli/merge.d.ts +79 -0
  52. package/dist/types/cli/merge.d.ts.map +1 -0
  53. package/dist/types/cli/models.d.ts +2 -0
  54. package/dist/types/cli/models.d.ts.map +1 -0
  55. package/dist/types/cli/node.d.ts +2 -0
  56. package/dist/types/cli/node.d.ts.map +1 -0
  57. package/dist/types/cli/poll.d.ts +25 -0
  58. package/dist/types/cli/poll.d.ts.map +1 -0
  59. package/dist/types/cli/ps.d.ts +2 -0
  60. package/dist/types/cli/ps.d.ts.map +1 -0
  61. package/dist/types/cli/quickstart.d.ts +2 -0
  62. package/dist/types/cli/quickstart.d.ts.map +1 -0
  63. package/dist/types/cli/result.d.ts +2 -0
  64. package/dist/types/cli/result.d.ts.map +1 -0
  65. package/dist/types/cli/resume.d.ts +2 -0
  66. package/dist/types/cli/resume.d.ts.map +1 -0
  67. package/dist/types/cli/run.d.ts +2 -0
  68. package/dist/types/cli/run.d.ts.map +1 -0
  69. package/dist/types/cli/script.d.ts +23 -0
  70. package/dist/types/cli/script.d.ts.map +1 -0
  71. package/dist/types/cli/serve.d.ts +17 -0
  72. package/dist/types/cli/serve.d.ts.map +1 -0
  73. package/dist/types/cli/setup.d.ts +2 -0
  74. package/dist/types/cli/setup.d.ts.map +1 -0
  75. package/dist/types/cli/status.d.ts +4 -0
  76. package/dist/types/cli/status.d.ts.map +1 -0
  77. package/dist/types/cli/steer.d.ts +2 -0
  78. package/dist/types/cli/steer.d.ts.map +1 -0
  79. package/dist/types/cli/stop.d.ts +2 -0
  80. package/dist/types/cli/stop.d.ts.map +1 -0
  81. package/dist/types/cli/tmux-utils.d.ts +23 -0
  82. package/dist/types/cli/tmux-utils.d.ts.map +1 -0
  83. package/dist/types/cli/validate.d.ts +11 -0
  84. package/dist/types/cli/validate.d.ts.map +1 -0
  85. package/dist/types/cli/version.d.ts +2 -0
  86. package/dist/types/cli/version.d.ts.map +1 -0
  87. package/dist/types/cli/view.d.ts +2 -0
  88. package/dist/types/cli/view.d.ts.map +1 -0
  89. package/dist/types/constants.d.ts +140 -0
  90. package/dist/types/constants.d.ts.map +1 -0
  91. package/dist/types/index.d.ts +8 -0
  92. package/dist/types/index.d.ts.map +1 -0
  93. package/dist/types/lib.d.ts +5 -0
  94. package/dist/types/lib.d.ts.map +1 -0
  95. package/dist/types/pi/backendMap.d.ts +3 -0
  96. package/dist/types/pi/backendMap.d.ts.map +1 -0
  97. package/dist/types/pi/session.d.ts +209 -0
  98. package/dist/types/pi/session.d.ts.map +1 -0
  99. package/dist/types/server.d.ts +10 -0
  100. package/dist/types/server.d.ts.map +1 -0
  101. package/dist/types/specialist/beads.d.ts +60 -0
  102. package/dist/types/specialist/beads.d.ts.map +1 -0
  103. package/dist/types/specialist/chain-identity.d.ts +18 -0
  104. package/dist/types/specialist/chain-identity.d.ts.map +1 -0
  105. package/dist/types/specialist/epic-lifecycle.d.ts +57 -0
  106. package/dist/types/specialist/epic-lifecycle.d.ts.map +1 -0
  107. package/dist/types/specialist/epic-readiness.d.ts +55 -0
  108. package/dist/types/specialist/epic-readiness.d.ts.map +1 -0
  109. package/dist/types/specialist/epic-reconciler.d.ts +35 -0
  110. package/dist/types/specialist/epic-reconciler.d.ts.map +1 -0
  111. package/dist/types/specialist/hooks.d.ts +44 -0
  112. package/dist/types/specialist/hooks.d.ts.map +1 -0
  113. package/dist/types/specialist/job-control.d.ts +29 -0
  114. package/dist/types/specialist/job-control.d.ts.map +1 -0
  115. package/dist/types/specialist/job-file-output.d.ts +4 -0
  116. package/dist/types/specialist/job-file-output.d.ts.map +1 -0
  117. package/dist/types/specialist/job-root.d.ts +21 -0
  118. package/dist/types/specialist/job-root.d.ts.map +1 -0
  119. package/dist/types/specialist/jobRegistry.d.ts +69 -0
  120. package/dist/types/specialist/jobRegistry.d.ts.map +1 -0
  121. package/dist/types/specialist/json-output.d.ts +2 -0
  122. package/dist/types/specialist/json-output.d.ts.map +1 -0
  123. package/dist/types/specialist/loader.d.ts +48 -0
  124. package/dist/types/specialist/loader.d.ts.map +1 -0
  125. package/dist/types/specialist/mandatory-rules.d.ts +41 -0
  126. package/dist/types/specialist/mandatory-rules.d.ts.map +1 -0
  127. package/dist/types/specialist/memory-retrieval.d.ts +34 -0
  128. package/dist/types/specialist/memory-retrieval.d.ts.map +1 -0
  129. package/dist/types/specialist/model-display.d.ts +4 -0
  130. package/dist/types/specialist/model-display.d.ts.map +1 -0
  131. package/dist/types/specialist/node-contract.d.ts +343 -0
  132. package/dist/types/specialist/node-contract.d.ts.map +1 -0
  133. package/dist/types/specialist/node-resolve.d.ts +5 -0
  134. package/dist/types/specialist/node-resolve.d.ts.map +1 -0
  135. package/dist/types/specialist/node-supervisor.d.ts +198 -0
  136. package/dist/types/specialist/node-supervisor.d.ts.map +1 -0
  137. package/dist/types/specialist/observability-db.d.ts +19 -0
  138. package/dist/types/specialist/observability-db.d.ts.map +1 -0
  139. package/dist/types/specialist/observability-sqlite.d.ts +218 -0
  140. package/dist/types/specialist/observability-sqlite.d.ts.map +1 -0
  141. package/dist/types/specialist/pipeline.d.ts +23 -0
  142. package/dist/types/specialist/pipeline.d.ts.map +1 -0
  143. package/dist/types/specialist/process-liveness.d.ts +2 -0
  144. package/dist/types/specialist/process-liveness.d.ts.map +1 -0
  145. package/dist/types/specialist/runner.d.ts +98 -0
  146. package/dist/types/specialist/runner.d.ts.map +1 -0
  147. package/dist/types/specialist/schema.d.ts +2875 -0
  148. package/dist/types/specialist/schema.d.ts.map +1 -0
  149. package/dist/types/specialist/script-runner.d.ts +47 -0
  150. package/dist/types/specialist/script-runner.d.ts.map +1 -0
  151. package/dist/types/specialist/supervisor.d.ts +142 -0
  152. package/dist/types/specialist/supervisor.d.ts.map +1 -0
  153. package/dist/types/specialist/templateEngine.d.ts +2 -0
  154. package/dist/types/specialist/templateEngine.d.ts.map +1 -0
  155. package/dist/types/specialist/timeline-events.d.ts +563 -0
  156. package/dist/types/specialist/timeline-events.d.ts.map +1 -0
  157. package/dist/types/specialist/timeline-query.d.ts +129 -0
  158. package/dist/types/specialist/timeline-query.d.ts.map +1 -0
  159. package/dist/types/specialist/worktree-gc.d.ts +24 -0
  160. package/dist/types/specialist/worktree-gc.d.ts.map +1 -0
  161. package/dist/types/specialist/worktree.d.ts +69 -0
  162. package/dist/types/specialist/worktree.d.ts.map +1 -0
  163. package/dist/types/tools/specialist/feed_specialist.tool.d.ts +51 -0
  164. package/dist/types/tools/specialist/feed_specialist.tool.d.ts.map +1 -0
  165. package/dist/types/tools/specialist/list_specialists.tool.d.ts +28 -0
  166. package/dist/types/tools/specialist/list_specialists.tool.d.ts.map +1 -0
  167. package/dist/types/tools/specialist/resume_specialist.tool.d.ts +46 -0
  168. package/dist/types/tools/specialist/resume_specialist.tool.d.ts.map +1 -0
  169. package/dist/types/tools/specialist/specialist_init.tool.d.ts +26 -0
  170. package/dist/types/tools/specialist/specialist_init.tool.d.ts.map +1 -0
  171. package/dist/types/tools/specialist/specialist_status.tool.d.ts +33 -0
  172. package/dist/types/tools/specialist/specialist_status.tool.d.ts.map +1 -0
  173. package/dist/types/tools/specialist/steer_specialist.tool.d.ts +38 -0
  174. package/dist/types/tools/specialist/steer_specialist.tool.d.ts.map +1 -0
  175. package/dist/types/tools/specialist/stop_specialist.tool.d.ts +31 -0
  176. package/dist/types/tools/specialist/stop_specialist.tool.d.ts.map +1 -0
  177. package/dist/types/tools/specialist/use_specialist.tool.d.ts +93 -0
  178. package/dist/types/tools/specialist/use_specialist.tool.d.ts.map +1 -0
  179. package/dist/types/utils/circuitBreaker.d.ts +19 -0
  180. package/dist/types/utils/circuitBreaker.d.ts.map +1 -0
  181. package/dist/types/utils/logger.d.ts +11 -0
  182. package/dist/types/utils/logger.d.ts.map +1 -0
  183. package/package.json +13 -2
@@ -3,6 +3,10 @@
3
3
  Rule sets injected at the end of every specialist prompt at spawn time. Enforces
4
4
  behaviors the model must follow regardless of the specific task.
5
5
 
6
+ > **Quick introspection:** `sp list-rules` prints the rule × specialist matrix.
7
+ > Filter with `sp list-rules --rule <id>` or `sp list-rules --specialist <name>`,
8
+ > machine output via `--json`.
9
+
6
10
  ## Layout (three tiers)
7
11
 
8
12
  The loader reads and unions indexes from three paths, in this precedence:
@@ -2,4 +2,15 @@
2
2
  name: gitnexus-required
3
3
  kind: mandatory-rule
4
4
  ---
5
- Use GitNexus for symbol changes. Run impact before edit and detect_changes before finish.
5
+ Use GitNexus before editing any function/class/method.
6
+
7
+ Tools (prefer MCP; fall back to CLI if MCP unavailable):
8
+ - Blast radius before edit: `gitnexus_impact({target, direction:"upstream"})` or `npx gitnexus impact <target>`. STOP and warn if HIGH/CRITICAL.
9
+ - Symbol callers/callees: `gitnexus_context({name})` or `npx gitnexus context <name>`.
10
+ - Concept search: `gitnexus_query({query})` or `npx gitnexus query "<text>"`.
11
+ - Pre-commit scope check: `gitnexus_detect_changes()` (MCP only — fallback: `git diff --stat`).
12
+
13
+ Rules:
14
+ - Run impact for every symbol you modify; never edit without it.
15
+ - Never rename via find-replace — use `gitnexus_rename({symbol_name, new_name, dry_run:true})` first.
16
+ - If index is stale, ask the user to run `npx gitnexus analyze`.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: serena-cheatsheet
3
+ kind: mandatory-rule
4
+ rules:
5
+ - id: prefer-serena
6
+ level: required
7
+ text: "Prefer Serena tools over read/grep/find/ls for source code (.ts .py .go .rs .js etc.). Native tools fine for .md .json .yaml configs."
8
+ - id: get_symbols_overview
9
+ level: required
10
+ text: "get_symbols_overview <path> — symbol skeleton of a file or dir (~300 tokens vs reading the whole file). Use first to pick what you actually need."
11
+ - id: find_symbol
12
+ level: required
13
+ text: "find_symbol <name_path> — fetch one symbol's body (or just signature). Drop-in replacement for read-then-scan-for-function workflows."
14
+ - id: find_referencing_symbols
15
+ level: required
16
+ text: "find_referencing_symbols <name_path> — who calls or uses this symbol across the codebase."
17
+ - id: search_for_pattern
18
+ level: required
19
+ text: "search_for_pattern <regex> — replaces grep. Returns matches with file:line context."
20
+ - id: find_file
21
+ level: required
22
+ text: "find_file <glob> and list_dir <path> — replace native find and ls."
23
+ - id: read_file
24
+ level: required
25
+ text: "read_file <path> — full or sliced read. Use only when navigation tools are not enough; check get_symbols_overview first."
26
+ - id: replace_symbol_body
27
+ level: required
28
+ text: "replace_symbol_body <name_path> — swap a function or class body in place. Use instead of Edit string-match for symbol-scoped changes (MEDIUM+ permission)."
29
+ - id: insert_around_symbol
30
+ level: required
31
+ text: "insert_before_symbol / insert_after_symbol <name_path> — add adjacent code such as imports or helpers (MEDIUM+ permission)."
32
+ - id: rename_symbol
33
+ level: required
34
+ text: "rename_symbol <name_path> <new_name> — refactor-safe across all references. Use instead of find-and-replace (MEDIUM+ permission)."
35
+ - id: replace_content
36
+ level: required
37
+ text: "replace_content <path> <pattern> <replacement> — line-range or regex edits when no symbol target fits (MEDIUM+ permission)."
38
+ - id: cost-rule
39
+ level: info
40
+ text: "Rule of thumb: read of a 500-line source file ~5000 tokens; find_symbol on one function ~200 tokens (~25x cheaper). Use get_symbols_overview before deciding."
41
+ ---
@@ -35,7 +35,8 @@
35
35
  "mandatory_rules": {
36
36
  "template_sets": [
37
37
  "debugger-trace-first",
38
- "gitnexus-required"
38
+ "gitnexus-required",
39
+ "serena-cheatsheet"
39
40
  ]
40
41
  },
41
42
  "prompt": {
@@ -31,7 +31,8 @@
31
31
  "template_sets": [
32
32
  "executor-delivery",
33
33
  "git-workflow-safe",
34
- "gitnexus-required"
34
+ "gitnexus-required",
35
+ "serena-cheatsheet"
35
36
  ]
36
37
  },
37
38
  "prompt": {
@@ -28,7 +28,8 @@
28
28
  "mandatory_rules": {
29
29
  "template_sets": [
30
30
  "explorer-readonly",
31
- "gitnexus-required"
31
+ "gitnexus-required",
32
+ "serena-cheatsheet"
32
33
  ]
33
34
  },
34
35
  "prompt": {
@@ -54,6 +54,11 @@
54
54
  },
55
55
  "stall_detection": {},
56
56
  "beads_integration": "auto",
57
- "beads_write_notes": true
57
+ "beads_write_notes": true,
58
+ "mandatory_rules": {
59
+ "template_sets": [
60
+ "serena-cheatsheet"
61
+ ]
62
+ }
58
63
  }
59
64
  }
@@ -28,7 +28,8 @@
28
28
  },
29
29
  "mandatory_rules": {
30
30
  "template_sets": [
31
- "overthinker-4phase"
31
+ "overthinker-4phase",
32
+ "serena-cheatsheet"
32
33
  ]
33
34
  },
34
35
  "prompt": {
@@ -83,6 +83,11 @@
83
83
  },
84
84
  "beads_integration": "auto",
85
85
  "stall_detection": {},
86
- "beads_write_notes": true
86
+ "beads_write_notes": true,
87
+ "mandatory_rules": {
88
+ "template_sets": [
89
+ "serena-cheatsheet"
90
+ ]
91
+ }
87
92
  }
88
93
  }
@@ -29,7 +29,8 @@
29
29
  },
30
30
  "mandatory_rules": {
31
31
  "template_sets": [
32
- "researcher-source-discipline"
32
+ "researcher-source-discipline",
33
+ "serena-cheatsheet"
33
34
  ]
34
35
  },
35
36
  "prompt": {
@@ -29,7 +29,8 @@
29
29
  "mandatory_rules": {
30
30
  "template_sets": [
31
31
  "reviewer-verdict-format",
32
- "gitnexus-required"
32
+ "gitnexus-required",
33
+ "serena-cheatsheet"
33
34
  ]
34
35
  },
35
36
  "prompt": {
@@ -17,6 +17,7 @@
17
17
  "execution": {
18
18
  "mode": "tool",
19
19
  "model": "anthropic/claude-sonnet-4-6",
20
+ "fallback_model": "google-gemini-cli/gemini-3.1-pro-preview",
20
21
  "timeout_ms": 0,
21
22
  "stall_timeout_ms": 120000,
22
23
  "response_format": "markdown",
@@ -62,6 +63,11 @@
62
63
  },
63
64
  "beads_integration": "auto",
64
65
  "stall_detection": {},
65
- "beads_write_notes": true
66
+ "beads_write_notes": true,
67
+ "mandatory_rules": {
68
+ "template_sets": [
69
+ "serena-cheatsheet"
70
+ ]
71
+ }
66
72
  }
67
73
  }
@@ -29,7 +29,8 @@
29
29
  },
30
30
  "mandatory_rules": {
31
31
  "template_sets": [
32
- "researcher-source-discipline"
32
+ "researcher-source-discipline",
33
+ "serena-cheatsheet"
33
34
  ]
34
35
  },
35
36
  "prompt": {
@@ -27,7 +27,8 @@
27
27
  },
28
28
  "mandatory_rules": {
29
29
  "template_sets": [
30
- "test-runner-execution-scope"
30
+ "test-runner-execution-scope",
31
+ "serena-cheatsheet"
31
32
  ]
32
33
  },
33
34
  "prompt": {