@slamb2k/mad-skills 2.0.16 → 2.0.18
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/README.md +27 -20
- package/package.json +1 -1
- package/skills/brace/SKILL.md +33 -8
- package/skills/brace/references/report-template.md +37 -33
- package/skills/build/SKILL.md +52 -21
- package/skills/distil/SKILL.md +56 -14
- package/skills/dock/SKILL.md +54 -18
- package/skills/keel/SKILL.md +30 -33
- package/skills/manifest.json +11 -11
- package/skills/prime/SKILL.md +41 -6
- package/skills/rig/SKILL.md +33 -8
- package/skills/rig/references/report-template.md +25 -22
- package/skills/ship/SKILL.md +46 -11
- package/skills/speccy/SKILL.md +47 -7
- package/skills/sync/SKILL.md +40 -9
package/README.md
CHANGED
|
@@ -412,29 +412,36 @@ Three methods are available. The table below shows what each delivers:
|
|
|
412
412
|
|
|
413
413
|
### Plugin (recommended)
|
|
414
414
|
|
|
415
|
+
Installs skills, agents, and session hooks from the GitHub repo into
|
|
416
|
+
`~/.claude/plugins/`. Updates automatically. Claude Code only.
|
|
417
|
+
|
|
418
|
+
**Step 1 — Register the marketplace (one-time):**
|
|
419
|
+
|
|
420
|
+
From the CLI:
|
|
421
|
+
```bash
|
|
422
|
+
claude plugin marketplace add slamb2k/mad-skills
|
|
415
423
|
```
|
|
416
|
-
|
|
424
|
+
|
|
425
|
+
Or add manually to `~/.claude/settings.json`:
|
|
426
|
+
```json
|
|
427
|
+
"extraKnownMarketplaces": {
|
|
428
|
+
"slamb2k": {
|
|
429
|
+
"source": { "source": "github", "repo": "slamb2k/mad-skills" }
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
**Step 2 — Install the plugin:**
|
|
435
|
+
|
|
436
|
+
From the CLI:
|
|
437
|
+
```bash
|
|
438
|
+
claude plugin install mad-skills@slamb2k
|
|
417
439
|
```
|
|
418
440
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
> **Option A** — CLI (outside Claude Code):
|
|
424
|
-
> ```bash
|
|
425
|
-
> claude plugin marketplace add slamb2k/mad-skills
|
|
426
|
-
> ```
|
|
427
|
-
>
|
|
428
|
-
> **Option B** — Manual (add to `~/.claude/settings.json`):
|
|
429
|
-
> ```json
|
|
430
|
-
> "extraKnownMarketplaces": {
|
|
431
|
-
> "slamb2k": {
|
|
432
|
-
> "source": { "source": "github", "repo": "slamb2k/mad-skills" }
|
|
433
|
-
> }
|
|
434
|
-
> }
|
|
435
|
-
> ```
|
|
436
|
-
>
|
|
437
|
-
> Then install the plugin inside Claude Code with `/plugin install mad-skills@slamb2k`, or from the CLI with `claude plugin install mad-skills@slamb2k`.
|
|
441
|
+
Or inside Claude Code:
|
|
442
|
+
```
|
|
443
|
+
/plugin install mad-skills@slamb2k
|
|
444
|
+
```
|
|
438
445
|
|
|
439
446
|
### npx skills
|
|
440
447
|
|
package/package.json
CHANGED
package/skills/brace/SKILL.md
CHANGED
|
@@ -23,14 +23,39 @@ CRITICAL: Reproduce the banner EXACTLY character-for-character. The first line o
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Taglines:
|
|
26
|
-
- Bracing the structure...
|
|
27
|
-
- Reinforcing before load!
|
|
28
|
-
- Locking in the framework!
|
|
29
|
-
- Preparing for heavy lifting!
|
|
30
|
-
- Cross-bracing the foundation!
|
|
31
|
-
- Tightening the load path!
|
|
32
|
-
- Structural integrity confirmed!
|
|
33
|
-
- Brace for impact!
|
|
26
|
+
- 🏗️ Bracing the structure...
|
|
27
|
+
- 💪 Reinforcing before load!
|
|
28
|
+
- 🔒 Locking in the framework!
|
|
29
|
+
- 🏋️ Preparing for heavy lifting!
|
|
30
|
+
- 🧱 Cross-bracing the foundation!
|
|
31
|
+
- 🔧 Tightening the load path!
|
|
32
|
+
- ✅ Structural integrity confirmed!
|
|
33
|
+
- 💥 Brace for impact!
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
34
59
|
|
|
35
60
|
---
|
|
36
61
|
|
|
@@ -5,38 +5,42 @@ Present this summary after verification completes.
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
Brace
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
8
|
+
┌─ Brace · Report ───────────────────────────────
|
|
9
|
+
│
|
|
10
|
+
│ ✅ Brace complete
|
|
11
|
+
│
|
|
12
|
+
│ 📂 Project: {project_name}
|
|
13
|
+
│ 📍 Directory: {cwd}
|
|
14
|
+
│
|
|
15
|
+
│ 📝 Structure
|
|
16
|
+
│ {✅|⏭️} goals/ Goals layer
|
|
17
|
+
│ {✅|⏭️} tools/ Tools layer
|
|
18
|
+
│ {✅|⏭️} context/ Context layer
|
|
19
|
+
│ {✅|⏭️} hardprompts/ Hard prompts layer
|
|
20
|
+
│ {✅|⏭️} args/ Args layer
|
|
21
|
+
│ {✅|⏭️} .tmp/ Temp directory
|
|
22
|
+
│
|
|
23
|
+
│ 📄 Files
|
|
24
|
+
│ {✅|⏭️} CLAUDE.md
|
|
25
|
+
│ {✅|⏭️} .gitignore
|
|
26
|
+
│ {✅|⏭️} goals/manifest.md
|
|
27
|
+
│ {✅|⏭️} goals/build_app.md
|
|
28
|
+
│ {✅|⏭️} tools/manifest.md
|
|
29
|
+
│
|
|
30
|
+
│ 🗑️ Removed (only if legacy memory was cleaned up)
|
|
31
|
+
│ {✅} tools/memory/ Legacy memory scripts
|
|
32
|
+
│ {✅} memory/ Legacy memory directory
|
|
33
|
+
│
|
|
34
|
+
│ ⚠️ Notes
|
|
35
|
+
│ {any warnings or skipped items}
|
|
36
|
+
│
|
|
37
|
+
│ ⚡ Next steps
|
|
38
|
+
│ 1. Review CLAUDE.md and customise for your project
|
|
39
|
+
│ 2. Add domain knowledge to context/
|
|
40
|
+
│ 3. Define your first goal in goals/
|
|
41
|
+
│ 4. Start building with the BRACE methodology
|
|
42
|
+
│
|
|
43
|
+
└─────────────────────────────────────────────────
|
|
40
44
|
```
|
|
41
45
|
|
|
42
|
-
Status indicators:
|
|
46
|
+
Status indicators: ✅ created/exists · ⏭️ skipped · ⚠️ merged/upgraded · ❌ failed
|
package/skills/build/SKILL.md
CHANGED
|
@@ -34,6 +34,31 @@ Taglines:
|
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
37
62
|
Execute a detailed design/plan through the full feature-dev lifecycle with
|
|
38
63
|
maximum context isolation. Every heavy stage runs in a subagent so the primary
|
|
39
64
|
conversation only accumulates structured reports.
|
|
@@ -295,27 +320,33 @@ Invoke the `/ship` skill:
|
|
|
295
320
|
## Final Report
|
|
296
321
|
|
|
297
322
|
```
|
|
298
|
-
Build
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
323
|
+
┌─ Build · Report ───────────────────────────────
|
|
324
|
+
│
|
|
325
|
+
│ ✅ Build complete
|
|
326
|
+
│
|
|
327
|
+
│ 📋 Plan: {first line of plan}
|
|
328
|
+
│ 🏗️ Approach: {approach_summary}
|
|
329
|
+
│
|
|
330
|
+
│ 📝 Changes
|
|
331
|
+
│ Files modified: {count}
|
|
332
|
+
│ Files created: {count}
|
|
333
|
+
│ Tests: {passed}/{total} ✅
|
|
334
|
+
│ Docs updated: {count or "none"}
|
|
335
|
+
│
|
|
336
|
+
│ 🔍 Review
|
|
337
|
+
│ Findings addressed: {count fixed} / {count found}
|
|
338
|
+
│
|
|
339
|
+
│ 📊 Debrief: {count resolved} / {count surfaced}
|
|
340
|
+
│ {list of created goals/tasks}
|
|
341
|
+
│
|
|
342
|
+
│ 🔗 Links
|
|
343
|
+
│ PR: {pr_url}
|
|
344
|
+
│ CI: {merge_commit}
|
|
345
|
+
│
|
|
346
|
+
│ ⚡ Next steps
|
|
347
|
+
│ {debrief items or "none — all clear"}
|
|
348
|
+
│
|
|
349
|
+
└─────────────────────────────────────────────────
|
|
319
350
|
```
|
|
320
351
|
|
|
321
352
|
If any stage failed, report the failure point and what was accomplished.
|
package/skills/distil/SKILL.md
CHANGED
|
@@ -23,14 +23,39 @@ CRITICAL: Reproduce the banner EXACTLY character-for-character. The first line o
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Taglines:
|
|
26
|
-
- Heating up the column...
|
|
27
|
-
- Fractioning the design space!
|
|
28
|
-
- Condensing pure creativity!
|
|
29
|
-
- Separating signal from noise!
|
|
30
|
-
- Extracting the essence!
|
|
31
|
-
- Refining through iteration!
|
|
32
|
-
- Distilling N variations of brilliance!
|
|
33
|
-
- From crude concept to pure design!
|
|
26
|
+
- 🔥 Heating up the column...
|
|
27
|
+
- 🧪 Fractioning the design space!
|
|
28
|
+
- 💎 Condensing pure creativity!
|
|
29
|
+
- 🔬 Separating signal from noise!
|
|
30
|
+
- ⚗️ Extracting the essence!
|
|
31
|
+
- 🔄 Refining through iteration!
|
|
32
|
+
- ✨ Distilling N variations of brilliance!
|
|
33
|
+
- 🎨 From crude concept to pure design!
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
34
59
|
|
|
35
60
|
---
|
|
36
61
|
|
|
@@ -260,12 +285,29 @@ automatically — skip this step.
|
|
|
260
285
|
|
|
261
286
|
## Step 6: Present Designs
|
|
262
287
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
288
|
+
Present the final summary:
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
┌─ Distil · Report ──────────────────────────────
|
|
292
|
+
│
|
|
293
|
+
│ ✅ Distil complete — {N} designs generated
|
|
294
|
+
│
|
|
295
|
+
│ 🌐 Server: http://localhost:{PORT}
|
|
296
|
+
│
|
|
297
|
+
│ 🎨 Designs
|
|
298
|
+
│ /1 {style name} — {key visual traits}
|
|
299
|
+
│ /2 {style name} — {key visual traits}
|
|
300
|
+
│ /3 {style name} — {key visual traits}
|
|
301
|
+
│ {mark new vs existing}
|
|
302
|
+
│
|
|
303
|
+
│ 📊 Total: {total designs} ({new} new + {existing} existing)
|
|
304
|
+
│
|
|
305
|
+
│ ⚡ Next steps
|
|
306
|
+
│ 1. Browse designs at http://localhost:{PORT}/1
|
|
307
|
+
│ 2. Use --favorites 1,3 to iterate on selected designs
|
|
308
|
+
│
|
|
309
|
+
└─────────────────────────────────────────────────
|
|
310
|
+
```
|
|
269
311
|
|
|
270
312
|
## Context Protection Summary
|
|
271
313
|
|
package/skills/dock/SKILL.md
CHANGED
|
@@ -56,6 +56,31 @@ Parse optional flags from the request:
|
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
59
|
+
## Output Formatting
|
|
60
|
+
|
|
61
|
+
After the banner, display parsed input:
|
|
62
|
+
```
|
|
63
|
+
┌─ Input ────────────────────────────────────────
|
|
64
|
+
│ {Field}: {value}
|
|
65
|
+
│ Flags: {parsed flags or "none"}
|
|
66
|
+
└────────────────────────────────────────────────
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Pre-flight results:
|
|
70
|
+
```
|
|
71
|
+
── Pre-flight ───────────────────────────────────
|
|
72
|
+
✅ {dep} {version or "found"}
|
|
73
|
+
⚠️ {dep} not found → {fallback detail}
|
|
74
|
+
❌ {dep} missing → stopping
|
|
75
|
+
──────────────────────────────────────────────────
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
79
|
+
|
|
80
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
59
84
|
## Pre-flight
|
|
60
85
|
|
|
61
86
|
Before starting, check dependencies:
|
|
@@ -315,24 +340,35 @@ Present the user with a summary of all generated files before writing.
|
|
|
315
340
|
After all files are generated and verified, present:
|
|
316
341
|
|
|
317
342
|
```
|
|
318
|
-
Dock
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
343
|
+
┌─ Dock · Report ────────────────────────────────
|
|
344
|
+
│
|
|
345
|
+
│ ✅ Dock complete
|
|
346
|
+
│
|
|
347
|
+
│ 🔧 Stack: {language} / {framework}
|
|
348
|
+
│ 📦 Registry: {registry}
|
|
349
|
+
│ 🌍 Stages: {env1} → {env2} → {env3}
|
|
350
|
+
│
|
|
351
|
+
│ 📝 Generated files
|
|
352
|
+
│ • {file} — {brief description}
|
|
353
|
+
│ • {file} — {brief description}
|
|
354
|
+
│ • ...
|
|
355
|
+
│
|
|
356
|
+
│ 📊 Pipeline flow
|
|
357
|
+
│ PR → build + test
|
|
358
|
+
│ Merge → build + test → push → deploy dev → smoke
|
|
359
|
+
│ Tag → retag (no rebuild) → staging → e2e → prod
|
|
360
|
+
│
|
|
361
|
+
│ 🔗 Links
|
|
362
|
+
│ Dockerfile: {path}
|
|
363
|
+
│ Workflow: {path}
|
|
364
|
+
│ Compose: {path}
|
|
365
|
+
│
|
|
366
|
+
│ ⚡ Next steps
|
|
367
|
+
│ 1. Review generated files
|
|
368
|
+
│ 2. Configure secrets: {list}
|
|
369
|
+
│ 3. Push to trigger first pipeline run
|
|
370
|
+
│
|
|
371
|
+
└─────────────────────────────────────────────────
|
|
336
372
|
```
|
|
337
373
|
|
|
338
374
|
---
|
package/skills/keel/SKILL.md
CHANGED
|
@@ -61,6 +61,13 @@ Parse optional flags from the request:
|
|
|
61
61
|
|
|
62
62
|
---
|
|
63
63
|
|
|
64
|
+
## Output Formatting
|
|
65
|
+
|
|
66
|
+
Input display: `┌─ Input │ {fields} └─`. Pre-flight: `── Pre-flight ── ✅/⚠️/❌ ──`.
|
|
67
|
+
Stage headers: `━━ {N} · {Name} ━━━━━━━━━━━━━`. Icons: ✅ done · ❌ fail · ⚠️ warn · ⏳ work · ⏭️ skip.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
64
71
|
## Pre-flight
|
|
65
72
|
|
|
66
73
|
Before starting, check dependencies:
|
|
@@ -446,35 +453,27 @@ Present the user with a summary of all generated files before writing.
|
|
|
446
453
|
After all files are generated and verified, present:
|
|
447
454
|
|
|
448
455
|
```
|
|
449
|
-
Keel
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
/dock
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
Secrets: synced via infra/sync-outputs.sh
|
|
471
|
-
|
|
472
|
-
Next steps:
|
|
473
|
-
1. Run bootstrap script: ./infra/bootstrap.sh
|
|
474
|
-
2. Review generated IaC files
|
|
475
|
-
3. Configure CI/CD secrets: {list}
|
|
476
|
-
4. Push to trigger first plan
|
|
477
|
-
5. After apply succeeds, run /dock to set up deployment pipelines
|
|
456
|
+
┌─ Keel · Report ────────────────────────────────
|
|
457
|
+
│
|
|
458
|
+
│ ✅ Keel complete
|
|
459
|
+
│
|
|
460
|
+
│ ☁️ Provider: {cloud_provider}
|
|
461
|
+
│ 🔧 IaC Tool: {tool}
|
|
462
|
+
│ 🌍 Envs: {env1} → {env2} → {env3}
|
|
463
|
+
│ 💾 State: {state_backend}
|
|
464
|
+
│
|
|
465
|
+
│ 📝 Components: {checklist of selected}
|
|
466
|
+
│
|
|
467
|
+
│ 📊 Pipeline: PR → plan → Merge → apply dev → Tag → apply prod
|
|
468
|
+
│
|
|
469
|
+
│ 🔗 Links
|
|
470
|
+
│ Infra: {infra/ path}
|
|
471
|
+
│ Pipeline: {workflow path}
|
|
472
|
+
│ Bootstrap: ./infra/bootstrap.sh
|
|
473
|
+
│
|
|
474
|
+
│ ⚡ Next: 1. Run bootstrap 2. Configure secrets 3. Push 4. /dock
|
|
475
|
+
│
|
|
476
|
+
└─────────────────────────────────────────────────
|
|
478
477
|
```
|
|
479
478
|
|
|
480
479
|
---
|
|
@@ -492,7 +491,5 @@ If /keel detects it has been run before (existing `infra/` directory):
|
|
|
492
491
|
|
|
493
492
|
## Integration Points
|
|
494
493
|
|
|
495
|
-
- **/dock**: /keel provisions what /dock deploys to. /dock
|
|
496
|
-
|
|
497
|
-
- **/rig**: Detects `infra/` and wires IaC pipeline into CI workflow.
|
|
498
|
-
- **/ship**: Merge triggers IaC apply → /dock deploy chain.
|
|
494
|
+
- **/dock**: /keel provisions what /dock deploys to. /dock consumes outputs (registry URL, compute endpoints).
|
|
495
|
+
- **/rig**: Detects `infra/` and wires IaC pipeline into CI. **/ship**: Merge triggers IaC apply → /dock deploy.
|
package/skills/manifest.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generated": "2026-03-09T17:
|
|
2
|
+
"generated": "2026-03-09T17:23:53.026Z",
|
|
3
3
|
"count": 10,
|
|
4
4
|
"skills": [
|
|
5
5
|
{
|
|
6
6
|
"name": "brace",
|
|
7
7
|
"directory": "brace",
|
|
8
8
|
"description": "'Initialize any project directory with the GOTCHA/BRACE framework for agentic AI systems. Creates the 6-layer structure (Goals, Orchestration, Tools, Context, Hard prompts, Args), BRACE build methodology, and a project CLAUDE.md. Recommends claude-mem for persistent memory. Idempotent — safe to run on existing projects. Triggers: \"init gotcha\", \"setup brace\", \"brace\", \"initialize framework\", \"bootstrap gotcha\".'",
|
|
9
|
-
"lines":
|
|
9
|
+
"lines": 303,
|
|
10
10
|
"hasScripts": false,
|
|
11
11
|
"hasReferences": true,
|
|
12
12
|
"hasAssets": true,
|
|
@@ -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": 363,
|
|
20
20
|
"hasScripts": false,
|
|
21
21
|
"hasReferences": true,
|
|
22
22
|
"hasAssets": false,
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"name": "distil",
|
|
27
27
|
"directory": "distil",
|
|
28
28
|
"description": "Generate multiple unique web design variations for any website or web application. Accepts site specifications from a file (--spec path) or pasted text block. Creates a Vite + React + TypeScript + Tailwind project with Bun and produces N different creative designs accessible at /1, /2, /3, etc. Use when prototyping or exploring design directions for any web interface.",
|
|
29
|
-
"lines":
|
|
29
|
+
"lines": 332,
|
|
30
30
|
"hasScripts": false,
|
|
31
31
|
"hasReferences": true,
|
|
32
32
|
"hasAssets": true,
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"name": "dock",
|
|
37
37
|
"directory": "dock",
|
|
38
38
|
"description": ">- Generate container-based release pipelines that build once and promote immutable artifacts through environments (dev → staging → prod). Detects your stack, interviews for infrastructure choices, then outputs deterministic CI/CD files (Dockerfile, workflows, deployment manifests) that run without an LLM. Use when setting up deployment pipelines, containerizing an app, creating release workflows, or connecting CI to container-friendly infrastructure (Azure Container Apps, AWS Fargate, Google Cloud Run, Kubernetes, Dokku, Coolify, CapRover, etc.).",
|
|
39
|
-
"lines":
|
|
39
|
+
"lines": 394,
|
|
40
40
|
"hasScripts": false,
|
|
41
41
|
"hasReferences": true,
|
|
42
42
|
"hasAssets": false,
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"name": "keel",
|
|
47
47
|
"directory": "keel",
|
|
48
48
|
"description": ">- Generate Infrastructure as Code (IaC) pipelines that provision the cloud and container infrastructure your app deploys to. Interview-driven: detects your stack and cloud provider, then outputs deterministic IaC files (Terraform, Bicep, Pulumi, or CDK) plus CI/CD pipelines that plan on PR and apply on merge. Use when setting up cloud infrastructure, provisioning container registries, databases, networking, DNS, or any infrastructure that containers deploy onto. Designed to run before /dock — /keel lays the infrastructure, /dock deploys to it.",
|
|
49
|
-
"lines":
|
|
49
|
+
"lines": 496,
|
|
50
50
|
"hasScripts": false,
|
|
51
51
|
"hasReferences": true,
|
|
52
52
|
"hasAssets": false,
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"name": "prime",
|
|
57
57
|
"directory": "prime",
|
|
58
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.\"",
|
|
59
|
-
"lines":
|
|
59
|
+
"lines": 148,
|
|
60
60
|
"hasScripts": false,
|
|
61
61
|
"hasReferences": true,
|
|
62
62
|
"hasAssets": false,
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"name": "rig",
|
|
67
67
|
"directory": "rig",
|
|
68
68
|
"description": "'Idempotently bootstrap any repository with standard development tools, hooks, and workflows. Use when starting work on a new repo, onboarding to an existing project, or ensuring a repo has proper CI/CD setup. Configures: git hooks (lefthook), commit message templates, PR templates, and GitHub Actions for lint/format/type-check/build. Prompts for user confirmation before changes. Triggers: \"bootstrap repo\", \"setup hooks\", \"configure CI\", \"rig\", \"standardize repo\".'",
|
|
69
|
-
"lines":
|
|
69
|
+
"lines": 231,
|
|
70
70
|
"hasScripts": false,
|
|
71
71
|
"hasReferences": true,
|
|
72
72
|
"hasAssets": true,
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"name": "ship",
|
|
77
77
|
"directory": "ship",
|
|
78
78
|
"description": "\"Ship changes through the full PR lifecycle. Use after completing feature work to commit, push, create PR, wait for checks, and merge. Handles the entire workflow: syncs with main, creates feature branch if needed, groups commits logically with semantic messages, creates detailed PR, monitors CI, fixes issues, squash merges, and cleans up. Invoke when work is ready to ship.\"",
|
|
79
|
-
"lines":
|
|
79
|
+
"lines": 262,
|
|
80
80
|
"hasScripts": false,
|
|
81
81
|
"hasReferences": true,
|
|
82
82
|
"hasAssets": false,
|
|
@@ -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": 210,
|
|
90
90
|
"hasScripts": false,
|
|
91
91
|
"hasReferences": true,
|
|
92
92
|
"hasAssets": false,
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"name": "sync",
|
|
97
97
|
"directory": "sync",
|
|
98
98
|
"description": "Sync local repository with origin/main. Use before starting new work, after completing a PR, or when needing latest upstream changes. Safely stashes uncommitted changes, fetches and pulls origin/main, restores stash, and cleans up stale local branches (merged or with deleted remotes). Invoke when switching contexts or preparing for new feature work.",
|
|
99
|
-
"lines":
|
|
99
|
+
"lines": 244,
|
|
100
100
|
"hasScripts": false,
|
|
101
101
|
"hasReferences": false,
|
|
102
102
|
"hasAssets": false,
|
package/skills/prime/SKILL.md
CHANGED
|
@@ -34,6 +34,31 @@ Taglines:
|
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
37
62
|
Load project context to inform agent decisions. Raw file contents stay in a
|
|
38
63
|
subagent — the primary thread only sees a structured PRIME_REPORT.
|
|
39
64
|
|
|
@@ -100,12 +125,22 @@ PRIME_REPORT:
|
|
|
100
125
|
Parse PRIME_REPORT and present a clean summary to the user:
|
|
101
126
|
|
|
102
127
|
```
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
128
|
+
┌─ Prime · Report ───────────────────────────────
|
|
129
|
+
│
|
|
130
|
+
│ ✅ Context loaded
|
|
131
|
+
│
|
|
132
|
+
│ 📚 Core: {count}/{total} files loaded
|
|
133
|
+
│ 🌐 Branch: {branch}
|
|
134
|
+
│
|
|
135
|
+
│ 📝 Domains
|
|
136
|
+
│ {domain}: {2-3 line summary}
|
|
137
|
+
│ {domain}: {2-3 line summary}
|
|
138
|
+
│
|
|
139
|
+
│ ⚠️ Missing: {list or "none"}
|
|
140
|
+
│
|
|
141
|
+
│ 🎯 Ready to assist with: {ready_for}
|
|
142
|
+
│
|
|
143
|
+
└─────────────────────────────────────────────────
|
|
109
144
|
```
|
|
110
145
|
|
|
111
146
|
If CLAUDE.md was missing, warn the user and note that only domain context
|
package/skills/rig/SKILL.md
CHANGED
|
@@ -23,14 +23,39 @@ CRITICAL: Reproduce the banner EXACTLY character-for-character. The first line o
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Taglines:
|
|
26
|
-
- Rigging up the production line...
|
|
27
|
-
- Bolting down the framework!
|
|
28
|
-
- Assembling the scaffolding!
|
|
29
|
-
- Hoisting the infrastructure!
|
|
30
|
-
- Locking in the safety harness!
|
|
31
|
-
- Wiring up the control panel!
|
|
32
|
-
- Setting up the drill floor!
|
|
33
|
-
- From blueprint to build-ready!
|
|
26
|
+
- 🏗️ Rigging up the production line...
|
|
27
|
+
- 🔩 Bolting down the framework!
|
|
28
|
+
- 🪜 Assembling the scaffolding!
|
|
29
|
+
- 🏗️ Hoisting the infrastructure!
|
|
30
|
+
- 🦺 Locking in the safety harness!
|
|
31
|
+
- ⚡ Wiring up the control panel!
|
|
32
|
+
- 🛠️ Setting up the drill floor!
|
|
33
|
+
- 📐 From blueprint to build-ready!
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
34
59
|
|
|
35
60
|
---
|
|
36
61
|
|
|
@@ -3,26 +3,29 @@
|
|
|
3
3
|
Present this summary after all configuration is complete:
|
|
4
4
|
|
|
5
5
|
```
|
|
6
|
-
Rig
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
6
|
+
┌─ Rig · Report ─────────────────────────────────
|
|
7
|
+
│
|
|
8
|
+
│ ✅ Rig complete
|
|
9
|
+
│
|
|
10
|
+
│ 📂 Repository: {repo_name}
|
|
11
|
+
│ 🌐 Branch: {branch}
|
|
12
|
+
│
|
|
13
|
+
│ 📝 Configured
|
|
14
|
+
│ {✅|⏭️} Lefthook installed and configured
|
|
15
|
+
│ {✅|⏭️} Pre-commit hooks: {list}
|
|
16
|
+
│ {✅|⏭️} Pre-push hooks: {list}
|
|
17
|
+
│ {✅|⏭️} Commit template: .gitmessage
|
|
18
|
+
│ {✅|⏭️} PR template: {path}
|
|
19
|
+
│ {✅|⏭️} CI workflow: {path}
|
|
20
|
+
│ {✅|⏭️} Azure Pipelines: {list} (if applicable)
|
|
21
|
+
│
|
|
22
|
+
│ ⚠️ Notes
|
|
23
|
+
│ {any warnings}
|
|
24
|
+
│
|
|
25
|
+
│ ⚡ Next steps
|
|
26
|
+
│ 1. Review generated files and commit them
|
|
27
|
+
│ 2. Push to remote to activate CI
|
|
28
|
+
│ 3. Test hooks: lefthook run pre-commit
|
|
29
|
+
│
|
|
30
|
+
└─────────────────────────────────────────────────
|
|
28
31
|
```
|
package/skills/ship/SKILL.md
CHANGED
|
@@ -34,6 +34,31 @@ Taglines:
|
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
37
62
|
Ship changes through the complete PR lifecycle. Every stage runs in a subagent
|
|
38
63
|
to isolate context from the primary conversation. Prompts for each stage are
|
|
39
64
|
in `references/stage-prompts.md`.
|
|
@@ -211,16 +236,26 @@ Parse LAND_REPORT.
|
|
|
211
236
|
Compile all stage reports into a summary:
|
|
212
237
|
|
|
213
238
|
```
|
|
214
|
-
Ship
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
239
|
+
┌─ Ship · Report ────────────────────────────────
|
|
240
|
+
│
|
|
241
|
+
│ ✅ Ship complete
|
|
242
|
+
│
|
|
243
|
+
│ 🌿 Branch: {branch}
|
|
244
|
+
│ 🔗 PR: {pr_url}
|
|
245
|
+
│ 🔀 Merged: {merge_commit} ({merge_type})
|
|
246
|
+
│
|
|
247
|
+
│ 📝 Commits
|
|
248
|
+
│ • {commit message 1}
|
|
249
|
+
│ • {commit message 2}
|
|
250
|
+
│
|
|
251
|
+
│ 📊 {count} files changed ({diff_summary})
|
|
252
|
+
│
|
|
253
|
+
└─────────────────────────────────────────────────
|
|
224
254
|
```
|
|
225
255
|
|
|
226
|
-
If any stage failed,
|
|
256
|
+
If any stage failed, add:
|
|
257
|
+
```
|
|
258
|
+
│ ❌ Failed at: {stage name}
|
|
259
|
+
│ {error description}
|
|
260
|
+
│ {suggested resolution}
|
|
261
|
+
```
|
package/skills/speccy/SKILL.md
CHANGED
|
@@ -34,6 +34,31 @@ Taglines:
|
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
37
62
|
Interview the user through multiple rounds of targeted questions to build
|
|
38
63
|
a comprehensive specification. Then hand off to the `create-specification`
|
|
39
64
|
skill to produce the final structured spec document.
|
|
@@ -159,11 +184,26 @@ Once the interview is complete and decisions are confirmed:
|
|
|
159
184
|
After the spec is created, report to the user:
|
|
160
185
|
|
|
161
186
|
```
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
187
|
+
┌─ Speccy · Report ──────────────────────────────
|
|
188
|
+
│
|
|
189
|
+
│ ✅ Spec complete
|
|
190
|
+
│
|
|
191
|
+
│ 📄 File: {spec file path}
|
|
192
|
+
│ 📋 Sections: {count}
|
|
193
|
+
│ 💬 Rounds: {interview rounds conducted}
|
|
194
|
+
│ ❓ Questions: {total questions asked}
|
|
195
|
+
│
|
|
196
|
+
│ 📝 Key decisions
|
|
197
|
+
│ • {decision 1}
|
|
198
|
+
│ • {decision 2}
|
|
199
|
+
│ • {decision 3}
|
|
200
|
+
│
|
|
201
|
+
│ 🔗 Links
|
|
202
|
+
│ Spec: {spec file path}
|
|
203
|
+
│
|
|
204
|
+
│ ⚡ Next steps
|
|
205
|
+
│ 1. Review the spec: {path}
|
|
206
|
+
│ 2. Run /build {spec path} to implement
|
|
207
|
+
│
|
|
208
|
+
└─────────────────────────────────────────────────
|
|
169
209
|
```
|
package/skills/sync/SKILL.md
CHANGED
|
@@ -34,6 +34,31 @@ Taglines:
|
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
## Output Formatting
|
|
38
|
+
|
|
39
|
+
After the banner, display parsed input:
|
|
40
|
+
```
|
|
41
|
+
┌─ Input ────────────────────────────────────────
|
|
42
|
+
│ {Field}: {value}
|
|
43
|
+
│ Flags: {parsed flags or "none"}
|
|
44
|
+
└────────────────────────────────────────────────
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pre-flight results:
|
|
48
|
+
```
|
|
49
|
+
── Pre-flight ───────────────────────────────────
|
|
50
|
+
✅ {dep} {version or "found"}
|
|
51
|
+
⚠️ {dep} not found → {fallback detail}
|
|
52
|
+
❌ {dep} missing → stopping
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
|
|
57
|
+
|
|
58
|
+
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
37
62
|
Synchronize local repository with the remote default branch using a single
|
|
38
63
|
Bash subagent to isolate all git operations from the primary conversation.
|
|
39
64
|
|
|
@@ -199,14 +224,20 @@ SYNC_REPORT:
|
|
|
199
224
|
Parse the subagent's SYNC_REPORT and present a clean summary:
|
|
200
225
|
|
|
201
226
|
```
|
|
202
|
-
Sync
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
227
|
+
┌─ Sync · Report ────────────────────────────────
|
|
228
|
+
│
|
|
229
|
+
│ ✅ Sync complete
|
|
230
|
+
│
|
|
231
|
+
│ 🌿 Main: {commit} — {message}
|
|
232
|
+
│ 🔀 Branch: {current_branch}
|
|
233
|
+
│ 📦 Stash: {restored|none|conflict}
|
|
234
|
+
│ 🧹 Cleaned: {branches or "none"}
|
|
235
|
+
│
|
|
236
|
+
└─────────────────────────────────────────────────
|
|
207
237
|
```
|
|
208
238
|
|
|
209
|
-
If errors occurred
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
239
|
+
If errors occurred:
|
|
240
|
+
```
|
|
241
|
+
│ ❌ {error description}
|
|
242
|
+
│ {suggested resolution}
|
|
243
|
+
```
|