@slamb2k/mad-skills 2.0.24 → 2.0.25

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mad-skills",
3
3
  "description": "AI-assisted planning, development and governance tools",
4
- "version": "2.0.24",
4
+ "version": "2.0.25",
5
5
  "author": {
6
6
  "name": "slamb2k",
7
7
  "url": "https://github.com/slamb2k"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slamb2k/mad-skills",
3
- "version": "2.0.24",
3
+ "version": "2.0.25",
4
4
  "description": "Claude Code skills collection — full lifecycle development tools",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: build
3
3
  description: Context-isolated feature development pipeline. Takes a detailed design/plan as argument and executes the full feature-dev lifecycle (explore, question, architect, implement, review, ship) inside subagents so the primary conversation stays compact. Use when you have a well-defined plan and want autonomous execution with minimal context window consumption.
4
- argument-hint: <detailed design/plan to implement> [--skip-questions] [--skip-review] [--no-ship] [--parallel-impl]
5
- allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, AskUserQuestion
4
+ argument-hint: <plan text or spec file path> [--skip-questions] [--skip-review] [--no-ship] [--parallel-impl]
5
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, AskUserQuestion, TaskCreate, TaskUpdate, TaskGet, TaskList
6
6
  ---
7
7
 
8
8
  # Build - Context-Isolated Feature Development
@@ -103,16 +103,14 @@ For each row, in order:
103
103
 
104
104
  1. Capture **PLAN** (the user's argument) and **FLAGS**
105
105
  2. **Load project context** — invoke `/prime` to load domain-specific context
106
- (CLAUDE.md, goals, specs, memory). If /prime is unavailable, fall back to
107
- manually scanning CLAUDE.md and goals/ directory.
106
+ (CLAUDE.md, specs, memory). If /prime is unavailable, fall back to
107
+ manually scanning CLAUDE.md and specs/ directory.
108
108
  3. Detect project type using `references/project-detection.md` to populate
109
109
  **PROJECT_CONFIG** (language, test_runner, test_setup)
110
- 3. Check for outstanding questions from previous work:
110
+ 3. Check for outstanding items from previous work:
111
+ - Query persistent tasks via `TaskList` for incomplete items
111
112
  - Search CLAUDE.md for a "Known Issues" or "Open Questions" section
112
- - Search `goals/` for files containing "open_question" or "unresolved"
113
- - Search memory (if available) for recent items of type "task" or
114
- "open_question" that are unresolved
115
- - Check for `DEBRIEF_ITEMS` in any recent build logs
113
+ - Search memory (if available) for recent unresolved items
116
114
  4. If outstanding items found, present via AskUserQuestion:
117
115
  ```
118
116
  "Found {count} outstanding items from previous work:"
@@ -125,7 +123,23 @@ For each row, in order:
125
123
  Items marked "incorporate" get appended to the PLAN as additional
126
124
  requirements for Stage 1 to explore.
127
125
  - **"No, proceed with the build"** → continue normally
128
- 5. Create a task list tracking all stages
126
+ ---
127
+
128
+ ## Plan Resolution
129
+
130
+ Before Stage 1, resolve the PLAN argument into content:
131
+
132
+ 1. **File detection** — If the argument contains `/` or ends with
133
+ `.md`, `.yaml`, `.json`, or `.txt`, treat it as a file path:
134
+ - Try reading the path as-is
135
+ - If not found, try `specs/{arg}`
136
+ - If found, use file content as PLAN
137
+ - If not found at any location, treat the original argument as free-form text
138
+ 2. **Free-form text** — If not a file path (or file not found), use the argument
139
+ verbatim as PLAN
140
+ 3. **Display** — In the Input box, show the resolved source:
141
+ - File: `Plan: {file path} ({line count} lines)`
142
+ - Text: `Plan: inline ({word count} words)`
129
143
 
130
144
  ---
131
145
 
@@ -303,8 +317,9 @@ Invoke the `/ship` skill:
303
317
  Options:
304
318
  - **"Fix now"** → create a task list of resolution activities for
305
319
  each item; present for user confirmation, then work through them
306
- - **"Create tasks for future sessions"** → create persistent tasks via
307
- `TaskCreate` for each item, or append to CLAUDE.md as Known Issues
320
+ - **"Create tasks for future sessions"** → use `TaskCreate` for each
321
+ item as a persistent task, with category as prefix and suggested
322
+ action as description
308
323
  - **"Note and continue"** → acknowledge items without formal tracking;
309
324
  log to memory (if exists) or as source file comments. No further action.
310
325
  - **"Let me choose per item"** → present each individually with full
@@ -337,7 +352,7 @@ Invoke the `/ship` skill:
337
352
  │ Findings addressed: {count fixed} / {count found}
338
353
 
339
354
  │ 📊 Debrief: {count resolved} / {count surfaced}
340
- │ {list of created goals/tasks}
355
+ │ {list of created tasks}
341
356
 
342
357
  │ 🔗 Links
343
358
  │ PR: {pr_url}
@@ -385,9 +385,10 @@ Options:
385
385
  for user confirmation, then work through them.
386
386
 
387
387
  - "Create tasks for future sessions"
388
- → For each item, create a persistent task via TaskCreate with the
389
- suggested_action as the task description, or append to CLAUDE.md
390
- as a "Known Issues" section. Group by category, not one per item.
388
+ → For each item, use TaskCreate to create a persistent task with:
389
+ title: "[{category}] {summary}"
390
+ description: "{description}\n\nEvidence: {evidence}\nSuggested action: {suggested_action}"
391
+ Format: one task per item for granular tracking.
391
392
 
392
393
  - "Note and continue"
393
394
  → Acknowledge items without formal tracking. Log to memory (if memory
@@ -398,8 +399,9 @@ Options:
398
399
  → Present each item individually via AskUserQuestion. Show the full
399
400
  `description`, `evidence`, and `impact` fields so the user has
400
401
  enough context to decide. Options per item:
401
- "Fix now" / "Add to goals" / "Explain more" / "Note and continue"
402
+ "Fix now" / "Create task" / "Explain more" / "Note and continue"
402
403
  - "Fix now": launch a general-purpose subagent to resolve
404
+ - "Create task": use TaskCreate to persist for future sessions
403
405
  - "Explain more": read the relevant source files/reports cited in
404
406
  `evidence`, summarise the context, then re-present the same item
405
407
  with the expanded explanation
@@ -17,6 +17,14 @@
17
17
  { "type": "semantic", "value": "Describes a multi-stage development lifecycle that includes exploration, architecture design, implementation, code review, and shipping, with stages running in isolated subagents" }
18
18
  ]
19
19
  },
20
+ {
21
+ "name": "file-path-detection",
22
+ "prompt": "Build specs/user-auth.md",
23
+ "assertions": [
24
+ { "type": "contains", "value": "██" },
25
+ { "type": "semantic", "value": "Detects that the argument is a file path (contains / or ends with .md) and attempts to read it as a spec file rather than treating it as literal plan text. Shows the resolved file path in the Input display." }
26
+ ]
27
+ },
20
28
  {
21
29
  "name": "flag-handling",
22
30
  "prompt": "Build --skip-questions --no-ship: Refactor the auth module to use middleware pattern",
@@ -1,5 +1,5 @@
1
1
  {
2
- "generated": "2026-03-11T04:28:37.105Z",
2
+ "generated": "2026-03-11T04:39:55.849Z",
3
3
  "count": 10,
4
4
  "skills": [
5
5
  {
@@ -16,7 +16,7 @@
16
16
  "name": "build",
17
17
  "directory": "build",
18
18
  "description": "Context-isolated feature development pipeline. Takes a detailed design/plan as argument and executes the full feature-dev lifecycle (explore, question, architect, implement, review, ship) inside subagents so the primary conversation stays compact. Use when you have a well-defined plan and want autonomous execution with minimal context window consumption.",
19
- "lines": 363,
19
+ "lines": 378,
20
20
  "hasScripts": false,
21
21
  "hasReferences": true,
22
22
  "hasAssets": false,
@@ -55,7 +55,7 @@
55
55
  {
56
56
  "name": "prime",
57
57
  "directory": "prime",
58
- "description": "\"Load project context before implementing features or making architectural decisions. Invoke proactively at the start of significant work on any project. Scans CLAUDE.md, README, goals/, specs/, docs/, and source structure to build a context summary. Supports optional domain hints to focus on specific areas of the codebase. Use when you need project conventions, architecture understanding, or domain context before coding.\"",
58
+ "description": "\"Load project context before implementing features or making architectural decisions. Invoke proactively at the start of significant work on any project. Scans CLAUDE.md, README, specs/, docs/, and source structure to build a context summary. Supports optional domain hints to focus on specific areas of the codebase. Use when you need project conventions, architecture understanding, or domain context before coding.\"",
59
59
  "lines": 148,
60
60
  "hasScripts": false,
61
61
  "hasReferences": true,
@@ -86,7 +86,7 @@
86
86
  "name": "speccy",
87
87
  "directory": "speccy",
88
88
  "description": "Deep-dive interview skill for creating comprehensive specifications. Reviews existing code and docs, then interviews the user through multiple rounds of targeted questions covering technical implementation, UI/UX, concerns, and tradeoffs. Produces a structured spec via create-specification. Use when starting a new feature, system, or major change that needs a spec.",
89
- "lines": 232,
89
+ "lines": 245,
90
90
  "hasScripts": false,
91
91
  "hasReferences": true,
92
92
  "hasAssets": false,
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: prime
3
- description: "Load project context before implementing features or making architectural decisions. Invoke proactively at the start of significant work on any project. Scans CLAUDE.md, README, goals/, specs/, docs/, and source structure to build a context summary. Supports optional domain hints to focus on specific areas of the codebase. Use when you need project conventions, architecture understanding, or domain context before coding."
3
+ description: "Load project context before implementing features or making architectural decisions. Invoke proactively at the start of significant work on any project. Scans CLAUDE.md, README, specs/, docs/, and source structure to build a context summary. Supports optional domain hints to focus on specific areas of the codebase. Use when you need project conventions, architecture understanding, or domain context before coding."
4
4
  argument-hint: "[domain hints: comma-separated directory or topic names to focus on]"
5
5
  allowed-tools: Read, Glob, Grep, LS, Agent
6
6
  ---
@@ -66,7 +66,7 @@ subagent — the primary thread only sees a structured PRIME_REPORT.
66
66
 
67
67
  Extract domain hints from the request (comma-separated). These are directory
68
68
  names or topic keywords to focus the context scan on. If no domain specified,
69
- load core context only (CLAUDE.md, README, goals/, specs/).
69
+ load core context only (CLAUDE.md, README, specs/).
70
70
 
71
71
  ## Step 2: Load Context via Subagent
72
72
 
@@ -92,7 +92,7 @@ Limit PRIME_REPORT to 30 lines maximum.
92
92
 
93
93
  1. CLAUDE.md — Project conventions, architecture, instructions
94
94
  2. README.md — Project overview, setup, usage
95
- 3. goals/ or specs/ — Project goals, specs, roadmap (scan directory if present)
95
+ 3. specs/ — Project specifications and roadmap (scan directory if present)
96
96
  4. docs/ — Documentation directory (scan if present)
97
97
 
98
98
  If a file is missing, record as NOT FOUND and continue.
@@ -90,12 +90,12 @@ Before asking any questions, build a thorough understanding of the project:
90
90
 
91
91
  1. **Capture GOAL** — the user's argument describing what needs to be specified
92
92
  2. **Load project context** — invoke `/prime` to load domain-specific context
93
- (CLAUDE.md, goals, specs, memory). If /prime is unavailable, fall back to
93
+ (CLAUDE.md, specs, memory). If /prime is unavailable, fall back to
94
94
  the manual scan below.
95
95
  3. **Scan the project** (skip items already loaded by /prime):
96
96
  - Read `CLAUDE.md` if present (project conventions, structure, domain)
97
- - Read spec directory: `specs/` for existing specifications
98
- - Scan existing specs and design docs for context
97
+ - Scan `specs/` directory for existing specifications
98
+ - Scan existing design docs for context
99
99
  - Read relevant source code that relates to the GOAL
100
100
  - Check memory for prior decisions or open questions related to the GOAL
101
101
  3. **Identify knowledge gaps** — what must you learn from the user to write
@@ -163,19 +163,28 @@ proceeding to spec generation.
163
163
 
164
164
  Once the interview is complete and decisions are confirmed:
165
165
 
166
- 1. **Invoke the `create-specification` skill** using the Skill tool:
166
+ 1. **Create `specs/` directory** if it doesn't exist:
167
+ ```
168
+ mkdir -p specs
169
+ ```
170
+
171
+ 2. **Invoke the `create-specification` skill** using the Skill tool:
167
172
  ```
168
173
  Skill(skill: "create-specification")
169
174
  ```
170
175
 
171
- 2. **Provide the full context** to the skill as input:
176
+ 3. **Provide the full context** to the skill as input:
172
177
  - The original GOAL
173
178
  - All decisions from the interview rounds
174
179
  - Any relevant code/architecture context discovered in Stage 1
175
180
  - The spec purpose should match the GOAL description
181
+ - **Instruct the skill to save the spec to `specs/{name}.md`** where
182
+ `{name}` is a kebab-case slug derived from the GOAL (e.g.,
183
+ `specs/user-auth.md`, `specs/payment-integration.md`)
176
184
 
177
- 3. The `create-specification` skill will handle formatting, naming, and
178
- saving the spec file according to its own template and conventions.
185
+ 4. The `create-specification` skill will handle formatting and template
186
+ structure. The `specs/` directory is the standard location `/build`
187
+ and `/prime` both scan it automatically.
179
188
 
180
189
  ---
181
190
 
@@ -201,6 +210,10 @@ After the spec is created, report to the user:
201
210
  │ 🔗 Links
202
211
  │ Spec: {spec file path}
203
212
 
213
+ │ ⚡ Next steps
214
+ │ 1. Review the spec: {path}
215
+ │ 2. Run `/build {spec path}` to implement (reads the file automatically)
216
+
204
217
  └─────────────────────────────────────────────────
205
218
  ```
206
219