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 +1 -1
- package/templates/agents/sr-architect.md +13 -0
- package/templates/agents/sr-backend-developer.md +13 -0
- package/templates/agents/sr-backend-reviewer.md +13 -0
- package/templates/agents/sr-developer.md +14 -0
- package/templates/agents/sr-doc-sync.md +13 -0
- package/templates/agents/sr-frontend-developer.md +13 -0
- package/templates/agents/sr-frontend-reviewer.md +13 -0
- package/templates/agents/sr-merge-resolver.md +13 -0
- package/templates/agents/sr-performance-reviewer.md +13 -0
- package/templates/agents/sr-reviewer.md +13 -0
- package/templates/agents/sr-security-reviewer.md +13 -0
- package/templates/agents/sr-test-writer.md +13 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specrails-core",
|
|
3
|
-
"version": "4.
|
|
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.
|