specrails-core 4.3.0 → 4.5.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specrails-core",
3
- "version": "4.3.0",
3
+ "version": "4.5.0",
4
4
  "description": "AI agent workflow system for Claude Code — installs 12 specialized agents, orchestration commands, and persona-driven product discovery into any repository",
5
5
  "type": "module",
6
6
  "bin": {
@@ -217,3 +217,16 @@ Guidelines:
217
217
  ## MEMORY.md
218
218
 
219
219
  Your MEMORY.md is currently empty. When you notice a pattern worth preserving across sessions, save it here.
220
+
221
+ ## Tool Selection — MCP-First for Codebase Tasks
222
+
223
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
224
+
225
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
226
+
227
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
228
+
229
+ **Quick decision check at every code-related tool call**:
230
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
231
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
232
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -52,3 +52,16 @@ Guidelines:
52
52
  ## MEMORY.md
53
53
 
54
54
  Your MEMORY.md is currently empty.
55
+
56
+ ## Tool Selection — MCP-First for Codebase Tasks
57
+
58
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
59
+
60
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
61
+
62
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
63
+
64
+ **Quick decision check at every code-related tool call**:
65
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
66
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
67
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -137,3 +137,16 @@ What to save:
137
137
  ## MEMORY.md
138
138
 
139
139
  Your MEMORY.md is currently empty.
140
+
141
+ ## Tool Selection — MCP-First for Codebase Tasks
142
+
143
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
144
+
145
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
146
+
147
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
148
+
149
+ **Quick decision check at every code-related tool call**:
150
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
151
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
152
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -49,11 +49,25 @@ When an OpenSpec change is being applied, you:
49
49
  4. **Implement the changes** with surgical precision across all affected layers
50
50
  5. **Ensure consistency** with the existing codebase style, patterns, and architecture
51
51
 
52
+ ## Tool Selection — MCP-First for Codebase Tasks
53
+
54
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
55
+
56
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
57
+
58
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
59
+
60
+ **Quick decision check at every code-related tool call**:
61
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
62
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
63
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
64
+
52
65
  ## Workflow Protocol — Strict TDD
53
66
 
54
67
  You MUST follow Test-Driven Development. This is non-negotiable. The cycle is: **Red → Green → Refactor**. Never write production code without a failing test first.
55
68
 
56
69
  ### Phase 1: Understand
70
+ - **First, scan the project's `CLAUDE.md` for MCP tool blocks** (headed `## Plugin: <name>`) — these define the code-navigation primitives you must reach for in this and every later phase. See "Tool Selection — MCP-First" above. Internalise the available tools BEFORE you start reading files.
57
71
  - Read the OpenSpec change spec thoroughly
58
72
  - Read referenced base specs
59
73
  - Read layer-specific CLAUDE.md files ({{LAYER_CLAUDE_MD_PATHS}})
@@ -232,3 +232,16 @@ What to save:
232
232
  ## MEMORY.md
233
233
 
234
234
  Your MEMORY.md is currently empty.
235
+
236
+ ## Tool Selection — MCP-First for Codebase Tasks
237
+
238
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
239
+
240
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
241
+
242
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
243
+
244
+ **Quick decision check at every code-related tool call**:
245
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
246
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
247
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -46,3 +46,16 @@ Guidelines:
46
46
  ## MEMORY.md
47
47
 
48
48
  Your MEMORY.md is currently empty.
49
+
50
+ ## Tool Selection — MCP-First for Codebase Tasks
51
+
52
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
53
+
54
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
55
+
56
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
57
+
58
+ **Quick decision check at every code-related tool call**:
59
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
60
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
61
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -130,3 +130,16 @@ What to save:
130
130
  ## MEMORY.md
131
131
 
132
132
  Your MEMORY.md is currently empty.
133
+
134
+ ## Tool Selection — MCP-First for Codebase Tasks
135
+
136
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
137
+
138
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
139
+
140
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
141
+
142
+ **Quick decision check at every code-related tool call**:
143
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
144
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
145
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -180,3 +180,16 @@ MERGE_RESOLUTION_STATUS: UNRESOLVED
180
180
  - **Never** run tests, git commands, or make commits.
181
181
  - **Always** write the report even if all statuses are LOW_CONFIDENCE.
182
182
  - If a file has 0 conflict markers: log it as `NO_CONFLICTS` and skip (do not rewrite the file).
183
+
184
+ ## Tool Selection — MCP-First for Codebase Tasks
185
+
186
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
187
+
188
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
189
+
190
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
191
+
192
+ **Quick decision check at every code-related tool call**:
193
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
194
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
195
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -171,3 +171,16 @@ PERF_STATUS: NO_PERF_IMPACT
171
171
  - **Never ask for clarification** — use defaults when config is missing
172
172
  - **Never skip performance-sensitive files** — if in doubt, benchmark it
173
173
  - **Always update history** after a successful benchmark run
174
+
175
+ ## Tool Selection — MCP-First for Codebase Tasks
176
+
177
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
178
+
179
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
180
+
181
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
182
+
183
+ **Quick decision check at every code-related tool call**:
184
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
185
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
186
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -303,3 +303,16 @@ What to save:
303
303
  ## MEMORY.md
304
304
 
305
305
  Your MEMORY.md is currently empty.
306
+
307
+ ## Tool Selection — MCP-First for Codebase Tasks
308
+
309
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
310
+
311
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
312
+
313
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
314
+
315
+ **Quick decision check at every code-related tool call**:
316
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
317
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
318
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -176,3 +176,16 @@ What to save:
176
176
  ## MEMORY.md
177
177
 
178
178
  Your MEMORY.md is currently empty.
179
+
180
+ ## Tool Selection — MCP-First for Codebase Tasks
181
+
182
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
183
+
184
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
185
+
186
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
187
+
188
+ **Quick decision check at every code-related tool call**:
189
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
190
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
191
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.
@@ -161,3 +161,16 @@ What to save:
161
161
  ## MEMORY.md
162
162
 
163
163
  Your MEMORY.md is currently empty.
164
+
165
+ ## Tool Selection — MCP-First for Codebase Tasks
166
+
167
+ **Mandatory step BEFORE any code-navigation tool call**: scan the project's `CLAUDE.md` for MCP tool blocks (typically headed `## Plugin: <name>` and listing `mcp__*` tool names with declared use-cases).
168
+
169
+ If a project-documented MCP tool's "When to use" matches your current need, you **MUST** call it instead of the built-in equivalent (`Read`, `Grep`, `WebFetch`, etc.). Built-in fallbacks are reserved for cases the documented tools explicitly exclude (binary files, free-form prose, unstructured logs) or for non-codebase concerns (project-state files, config inspection, system commands).
170
+
171
+ This is non-negotiable for code-navigation work: plugin authors choose tools because they have a measurable advantage (40–60% input-token reduction is typical). Skipping them defaults the project to the most expensive code-reading path.
172
+
173
+ **Quick decision check at every code-related tool call**:
174
+ - Is this a symbol/reference/definition lookup? → MCP tool, not `Grep`/`Read`.
175
+ - Am I about to read a file just to edit one function? → MCP tool, not `Read` + `Edit`.
176
+ - No documented MCP tool fits the current need? → built-in, document why in your reasoning.