@slamb2k/mad-skills 2.0.23 → 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.
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/build/SKILL.md +30 -15
- package/skills/build/references/stage-prompts.md +6 -4
- package/skills/build/tests/evals.json +8 -0
- package/skills/dock/SKILL.md +1 -1
- package/skills/keel/SKILL.md +1 -1
- package/skills/manifest.json +4 -4
- package/skills/prime/SKILL.md +3 -3
- package/skills/rig/SKILL.md +1 -1
- package/skills/ship/SKILL.md +1 -1
- package/skills/speccy/SKILL.md +21 -8
package/package.json
CHANGED
package/skills/build/SKILL.md
CHANGED
|
@@ -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: <
|
|
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
|
|
@@ -84,8 +84,8 @@ Before starting, check all dependencies in this table:
|
|
|
84
84
|
|
|
85
85
|
| Dependency | Type | Check | Required | Resolution | Detail |
|
|
86
86
|
|-----------|------|-------|----------|------------|--------|
|
|
87
|
-
| ship | skill |
|
|
88
|
-
| prime | skill |
|
|
87
|
+
| ship | skill | `~/.claude/skills/ship/SKILL.md` or `~/.claude/plugins/marketplaces/slamb2k/skills/ship/SKILL.md` | yes | stop | Install with: npx skills add slamb2k/mad-skills --skill ship |
|
|
88
|
+
| prime | skill | `~/.claude/skills/prime/SKILL.md` or `~/.claude/plugins/marketplaces/slamb2k/skills/prime/SKILL.md` | no | fallback | Context loading; falls back to manual CLAUDE.md/goals scan |
|
|
89
89
|
| feature-dev:code-explorer | agent | — | no | fallback | Uses general-purpose agent |
|
|
90
90
|
| feature-dev:code-architect | agent | — | no | fallback | Uses general-purpose agent |
|
|
91
91
|
| feature-dev:code-reviewer | agent | — | no | fallback | Uses general-purpose agent |
|
|
@@ -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,
|
|
107
|
-
manually scanning CLAUDE.md and
|
|
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
|
|
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
|
|
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
|
-
|
|
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"** →
|
|
307
|
-
|
|
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
|
|
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
|
|
389
|
-
|
|
390
|
-
|
|
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" / "
|
|
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",
|
package/skills/dock/SKILL.md
CHANGED
|
@@ -89,7 +89,7 @@ Before starting, check dependencies:
|
|
|
89
89
|
|-----------|------|-------|----------|------------|--------|
|
|
90
90
|
| docker | cli | `docker --version` | no | ask | Needed for local build verification; skip verify phase if absent |
|
|
91
91
|
| git | cli | `git --version` | yes | stop | Install from https://git-scm.com |
|
|
92
|
-
| sync | skill |
|
|
92
|
+
| sync | skill | `~/.claude/skills/sync/SKILL.md` or `~/.claude/plugins/marketplaces/slamb2k/skills/sync/SKILL.md` | no | fallback | Repo sync; falls back to manual git pull |
|
|
93
93
|
|
|
94
94
|
For each row:
|
|
95
95
|
1. Run the Check command
|
package/skills/keel/SKILL.md
CHANGED
|
@@ -75,7 +75,7 @@ Before starting, check dependencies:
|
|
|
75
75
|
| Dependency | Type | Check | Required | Resolution | Detail |
|
|
76
76
|
|-----------|------|-------|----------|------------|--------|
|
|
77
77
|
| git | cli | `git --version` | yes | stop | Install from https://git-scm.com |
|
|
78
|
-
| sync | skill |
|
|
78
|
+
| sync | skill | `~/.claude/skills/sync/SKILL.md` or `~/.claude/plugins/marketplaces/slamb2k/skills/sync/SKILL.md` | no | fallback | Repo sync; falls back to manual git pull |
|
|
79
79
|
| terraform | cli | `terraform --version` | no | fallback | Detected if user wants Terraform; suggest install from https://terraform.io |
|
|
80
80
|
| az | cli | `az --version` | no | fallback | Needed for Bicep; suggest install from https://aka.ms/install-azure-cli |
|
|
81
81
|
| pulumi | cli | `pulumi version` | no | fallback | Detected if user wants Pulumi; suggest install from https://pulumi.com |
|
package/skills/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generated": "2026-03-
|
|
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":
|
|
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,
|
|
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":
|
|
89
|
+
"lines": 245,
|
|
90
90
|
"hasScripts": false,
|
|
91
91
|
"hasReferences": true,
|
|
92
92
|
"hasAssets": false,
|
package/skills/prime/SKILL.md
CHANGED
|
@@ -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,
|
|
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,
|
|
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.
|
|
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.
|
package/skills/rig/SKILL.md
CHANGED
|
@@ -75,7 +75,7 @@ Before starting, check all dependencies in this table:
|
|
|
75
75
|
| Dependency | Type | Check | Required | Resolution | Detail |
|
|
76
76
|
|-----------|------|-------|----------|------------|--------|
|
|
77
77
|
| git | cli | `git --version` | yes | stop | Install from https://git-scm.com |
|
|
78
|
-
| sync | skill |
|
|
78
|
+
| sync | skill | `~/.claude/skills/sync/SKILL.md` or `~/.claude/plugins/marketplaces/slamb2k/skills/sync/SKILL.md` | no | fallback | Repo sync; falls back to manual git pull |
|
|
79
79
|
| lefthook | npm | `npx lefthook --help` | yes | install | `npm install -g lefthook` |
|
|
80
80
|
| gh | cli | `gh --version` | yes | url | https://cli.github.com |
|
|
81
81
|
|
package/skills/ship/SKILL.md
CHANGED
|
@@ -129,7 +129,7 @@ Task(
|
|
|
129
129
|
subagent_type: "Bash",
|
|
130
130
|
model: "haiku",
|
|
131
131
|
description: "Sync with default branch",
|
|
132
|
-
prompt: "Follow ~/.claude/skills/sync/SKILL.md subagent prompt. Return SYNC_REPORT."
|
|
132
|
+
prompt: "Follow ~/.claude/skills/sync/SKILL.md or ~/.claude/plugins/marketplaces/slamb2k/skills/sync/SKILL.md subagent prompt. Return SYNC_REPORT."
|
|
133
133
|
)
|
|
134
134
|
```
|
|
135
135
|
|
package/skills/speccy/SKILL.md
CHANGED
|
@@ -72,7 +72,7 @@ Before starting, check all dependencies in this table:
|
|
|
72
72
|
| Dependency | Type | Check | Required | Resolution | Detail |
|
|
73
73
|
|-----------|------|-------|----------|------------|--------|
|
|
74
74
|
| create-specification | skill | `~/.claude/skills/create-specification/SKILL.md` or `~/.agents/skills/create-specification/SKILL.md` | yes | ask | This skill is needed to format the final spec. Install with: `npx skills add slamb2k/mad-skills --skill create-specification` |
|
|
75
|
-
| prime | skill |
|
|
75
|
+
| prime | skill | `~/.claude/skills/prime/SKILL.md` or `~/.claude/plugins/marketplaces/slamb2k/skills/prime/SKILL.md` | no | fallback | Context loading; falls back to manual project scan |
|
|
76
76
|
|
|
77
77
|
For each row, in order:
|
|
78
78
|
1. Test file existence (check both paths for symlinked skills)
|
|
@@ -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,
|
|
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
|
-
-
|
|
98
|
-
- Scan existing
|
|
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. **
|
|
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
|
-
|
|
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
|
-
|
|
178
|
-
|
|
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
|
|