specrails-core 4.4.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.4.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": {
@@ -218,10 +218,15 @@ Guidelines:
218
218
 
219
219
  Your MEMORY.md is currently empty. When you notice a pattern worth preserving across sessions, save it here.
220
220
 
221
- ## Tool Selection — Honor Project-Documented MCP Tools
221
+ ## Tool Selection — MCP-First for Codebase Tasks
222
222
 
223
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
224
 
225
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
226
 
227
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -53,10 +53,15 @@ Guidelines:
53
53
 
54
54
  Your MEMORY.md is currently empty.
55
55
 
56
- ## Tool Selection — Honor Project-Documented MCP Tools
56
+ ## Tool Selection — MCP-First for Codebase Tasks
57
57
 
58
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
59
 
60
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
61
 
62
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -138,10 +138,15 @@ What to save:
138
138
 
139
139
  Your MEMORY.md is currently empty.
140
140
 
141
- ## Tool Selection — Honor Project-Documented MCP Tools
141
+ ## Tool Selection — MCP-First for Codebase Tasks
142
142
 
143
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
144
 
145
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
146
 
147
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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,19 +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 — Honor Project-Documented MCP Tools
52
+ ## Tool Selection — MCP-First for Codebase Tasks
53
53
 
54
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
55
 
56
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
57
 
58
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
59
64
 
60
65
  ## Workflow Protocol — Strict TDD
61
66
 
62
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.
63
68
 
64
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.
65
71
  - Read the OpenSpec change spec thoroughly
66
72
  - Read referenced base specs
67
73
  - Read layer-specific CLAUDE.md files ({{LAYER_CLAUDE_MD_PATHS}})
@@ -233,10 +233,15 @@ What to save:
233
233
 
234
234
  Your MEMORY.md is currently empty.
235
235
 
236
- ## Tool Selection — Honor Project-Documented MCP Tools
236
+ ## Tool Selection — MCP-First for Codebase Tasks
237
237
 
238
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
239
 
240
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
241
 
242
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -47,10 +47,15 @@ Guidelines:
47
47
 
48
48
  Your MEMORY.md is currently empty.
49
49
 
50
- ## Tool Selection — Honor Project-Documented MCP Tools
50
+ ## Tool Selection — MCP-First for Codebase Tasks
51
51
 
52
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
53
 
54
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
55
 
56
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -131,10 +131,15 @@ What to save:
131
131
 
132
132
  Your MEMORY.md is currently empty.
133
133
 
134
- ## Tool Selection — Honor Project-Documented MCP Tools
134
+ ## Tool Selection — MCP-First for Codebase Tasks
135
135
 
136
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
137
 
138
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
139
 
140
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -181,10 +181,15 @@ MERGE_RESOLUTION_STATUS: UNRESOLVED
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
183
 
184
- ## Tool Selection — Honor Project-Documented MCP Tools
184
+ ## Tool Selection — MCP-First for Codebase Tasks
185
185
 
186
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
187
 
188
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
189
 
190
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -172,10 +172,15 @@ PERF_STATUS: NO_PERF_IMPACT
172
172
  - **Never skip performance-sensitive files** — if in doubt, benchmark it
173
173
  - **Always update history** after a successful benchmark run
174
174
 
175
- ## Tool Selection — Honor Project-Documented MCP Tools
175
+ ## Tool Selection — MCP-First for Codebase Tasks
176
176
 
177
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
178
 
179
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
180
 
181
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -304,10 +304,15 @@ What to save:
304
304
 
305
305
  Your MEMORY.md is currently empty.
306
306
 
307
- ## Tool Selection — Honor Project-Documented MCP Tools
307
+ ## Tool Selection — MCP-First for Codebase Tasks
308
308
 
309
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
310
 
311
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
312
 
313
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -177,10 +177,15 @@ What to save:
177
177
 
178
178
  Your MEMORY.md is currently empty.
179
179
 
180
- ## Tool Selection — Honor Project-Documented MCP Tools
180
+ ## Tool Selection — MCP-First for Codebase Tasks
181
181
 
182
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
183
 
184
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
185
 
186
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.
@@ -162,10 +162,15 @@ What to save:
162
162
 
163
163
  Your MEMORY.md is currently empty.
164
164
 
165
- ## Tool Selection — Honor Project-Documented MCP Tools
165
+ ## Tool Selection — MCP-First for Codebase Tasks
166
166
 
167
- The project's `CLAUDE.md` may list MCP tools made available via plugin systems (e.g., specrails-hub Integrations). Each entry typically declares (a) tool names, (b) when to use them, (c) what they return.
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
168
 
169
- Before defaulting to built-in tools (`Read`, `Grep`, `Bash`, `WebFetch`, etc.), scan that documentation. When a project-documented MCP tool's declared use-case matches your current need, prefer it over the built-in equivalent the plugin author chose it for a measurable advantage (lower token cost, higher precision, fresher data, semantic awareness, etc.).
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
170
 
171
- Fall back to built-ins when no plugin tool fits, or when the documented tool fails to execute in the current environment.
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.