@slamb2k/mad-skills 2.0.6
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/LICENSE +21 -0
- package/README.md +129 -0
- package/package.json +42 -0
- package/skills/brace/SKILL.md +51 -0
- package/skills/brace/assets/gitignore-template +28 -0
- package/skills/brace/assets/global-preferences-template.md +53 -0
- package/skills/brace/instructions.md +229 -0
- package/skills/brace/references/brace-workflow.md +109 -0
- package/skills/brace/references/claude-md-template.md +91 -0
- package/skills/brace/references/gotcha-principles.md +113 -0
- package/skills/brace/references/phase-prompts.md +228 -0
- package/skills/brace/references/report-template.md +38 -0
- package/skills/brace/references/scaffold-manifest.md +68 -0
- package/skills/brace/tests/evals.json +29 -0
- package/skills/build/SKILL.md +48 -0
- package/skills/build/instructions.md +293 -0
- package/skills/build/references/architecture-notes.md +34 -0
- package/skills/build/references/project-detection.md +45 -0
- package/skills/build/references/report-contracts.md +21 -0
- package/skills/build/references/stage-prompts.md +405 -0
- package/skills/build/tests/evals.json +28 -0
- package/skills/distil/SKILL.md +38 -0
- package/skills/distil/assets/DesignNav.tsx +54 -0
- package/skills/distil/instructions.md +255 -0
- package/skills/distil/references/design-guide.md +118 -0
- package/skills/distil/references/iteration-mode.md +186 -0
- package/skills/distil/references/project-setup.md +92 -0
- package/skills/distil/tests/evals.json +28 -0
- package/skills/manifest.json +76 -0
- package/skills/prime/SKILL.md +39 -0
- package/skills/prime/instructions.md +73 -0
- package/skills/prime/references/domains.md +38 -0
- package/skills/prime/tests/evals.json +28 -0
- package/skills/rig/SKILL.md +38 -0
- package/skills/rig/assets/azure-pipelines.yml +91 -0
- package/skills/rig/assets/ci.yml +104 -0
- package/skills/rig/assets/gitmessage +38 -0
- package/skills/rig/assets/lefthook.yml +29 -0
- package/skills/rig/assets/pull_request_template.md +24 -0
- package/skills/rig/instructions.md +162 -0
- package/skills/rig/references/configuration-steps.md +124 -0
- package/skills/rig/references/phase-prompts.md +180 -0
- package/skills/rig/references/report-template.md +28 -0
- package/skills/rig/tests/evals.json +29 -0
- package/skills/ship/SKILL.md +55 -0
- package/skills/ship/instructions.md +192 -0
- package/skills/ship/references/stage-prompts.md +322 -0
- package/skills/ship/tests/evals.json +30 -0
- package/skills/sync/SKILL.md +54 -0
- package/skills/sync/instructions.md +178 -0
- package/skills/sync/tests/evals.json +29 -0
- package/src/cli.js +419 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# CLAUDE.md Template
|
|
2
|
+
|
|
3
|
+
Template for the generated project CLAUDE.md. The Phase 4 agent substitutes
|
|
4
|
+
`{VARIABLE}` placeholders and writes to the project root.
|
|
5
|
+
|
|
6
|
+
`{UNIVERSAL_PRINCIPLES}` is populated with the Question & Assumption
|
|
7
|
+
Accountability and Communication sections when install_level is "project"
|
|
8
|
+
or "both". Left empty when install_level is "global" (principles are in
|
|
9
|
+
`~/.claude/CLAUDE.md` instead).
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
BEGIN TEMPLATE
|
|
14
|
+
|
|
15
|
+
# {PROJECT_NAME}
|
|
16
|
+
|
|
17
|
+
{PROJECT_DESCRIPTION}
|
|
18
|
+
|
|
19
|
+
## Operating Framework: GOTCHA
|
|
20
|
+
|
|
21
|
+
This project uses the **GOTCHA Framework** — a 6-layer architecture for
|
|
22
|
+
agentic AI systems. LLMs handle reasoning; deterministic tools handle execution.
|
|
23
|
+
|
|
24
|
+
**GOT** (The Engine):
|
|
25
|
+
- **Goals** (`goals/`) — Process definitions. Check `goals/manifest.md` first.
|
|
26
|
+
- **Orchestration** — You (the AI). Read goals, delegate to tools, handle errors.
|
|
27
|
+
- **Tools** (`tools/`) — Python scripts. Check `tools/manifest.md` first.
|
|
28
|
+
|
|
29
|
+
**CHA** (The Context):
|
|
30
|
+
- **Context** (`context/`) — Domain knowledge, reference material
|
|
31
|
+
- **Hard Prompts** (`hardprompts/`) — Reusable instruction templates
|
|
32
|
+
- **Args** (`args/`) — Behaviour settings (YAML/JSON)
|
|
33
|
+
|
|
34
|
+
### Operating Rules
|
|
35
|
+
|
|
36
|
+
1. **Check goals first** — Before any task, read `goals/manifest.md`
|
|
37
|
+
2. **Check tools first** — Before writing code, read `tools/manifest.md`
|
|
38
|
+
3. **Fix and document** — When tools fail, fix them and update the goal
|
|
39
|
+
4. **Never modify goals without permission** — Goals are living documentation
|
|
40
|
+
5. **Communicate when stuck** — Explain what is missing, do not guess
|
|
41
|
+
|
|
42
|
+
## Directory Structure
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
{PROJECT_NAME}/
|
|
46
|
+
├── CLAUDE.md This file
|
|
47
|
+
├── .gitignore Ignores credentials, data, temp files
|
|
48
|
+
├── goals/ Process definitions
|
|
49
|
+
│ ├── manifest.md Index of all goals
|
|
50
|
+
│ └── build_app.md BRACE build methodology
|
|
51
|
+
├── tools/ Deterministic scripts
|
|
52
|
+
│ └── manifest.md Index of all tools
|
|
53
|
+
├── context/ Domain knowledge and references
|
|
54
|
+
├── hardprompts/ Reusable LLM instruction templates
|
|
55
|
+
├── args/ Behaviour settings (YAML/JSON)
|
|
56
|
+
└── .tmp/ Scratch work (gitignored)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Memory
|
|
60
|
+
|
|
61
|
+
For persistent memory across sessions, install the **claude-mem** plugin:
|
|
62
|
+
```
|
|
63
|
+
claude plugin install claude-mem
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
claude-mem automatically captures context via lifecycle hooks and provides
|
|
67
|
+
MCP tools for search, timeline, and observation management. Claude Code's
|
|
68
|
+
built-in auto memory (`~/.claude/projects/<project>/memory/MEMORY.md`)
|
|
69
|
+
handles curated facts.
|
|
70
|
+
|
|
71
|
+
## Build Methodology: BRACE
|
|
72
|
+
|
|
73
|
+
See `goals/build_app.md` for the full workflow:
|
|
74
|
+
- **B**rief — Define problem, users, success metrics
|
|
75
|
+
- **R**esearch — Data schema, integrations, stack proposal
|
|
76
|
+
- **A**rchitect — Design structure, validate all connections
|
|
77
|
+
- **C**onstruct — Build DB first, then API, then UI
|
|
78
|
+
- **E**valuate — Functional, integration, edge case, acceptance testing
|
|
79
|
+
|
|
80
|
+
{UNIVERSAL_PRINCIPLES}
|
|
81
|
+
|
|
82
|
+
## Guardrails
|
|
83
|
+
|
|
84
|
+
- Always check manifests before creating new goals or tools
|
|
85
|
+
- Verify tool output format before chaining into another tool
|
|
86
|
+
- Do not assume APIs support batch operations — check first
|
|
87
|
+
- Preserve intermediate outputs when workflows fail mid-execution
|
|
88
|
+
- Read the full goal before starting — do not skim
|
|
89
|
+
- Temporary files go in `.tmp/` — never store important data there
|
|
90
|
+
|
|
91
|
+
END TEMPLATE
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# GOTCHA Framework Principles
|
|
2
|
+
|
|
3
|
+
Embedded into the project CLAUDE.md during brace.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The GOTCHA Framework
|
|
8
|
+
|
|
9
|
+
A 6-layer architecture for agentic systems that separates concerns between
|
|
10
|
+
probabilistic reasoning (LLM) and deterministic execution (tools).
|
|
11
|
+
|
|
12
|
+
**GOT** (The Engine):
|
|
13
|
+
- **Goals** (`goals/`) — Task-specific instructions. Each goal defines:
|
|
14
|
+
objective, inputs, which tools to use, expected outputs, edge cases.
|
|
15
|
+
Only modified with explicit permission.
|
|
16
|
+
- **Orchestration** — The AI manager (you). Reads goals, decides which tools
|
|
17
|
+
to use, applies args, references context, handles errors, delegates work.
|
|
18
|
+
Never executes work directly — delegates intelligently.
|
|
19
|
+
- **Tools** (`tools/`) — Python scripts organised by workflow. Each has one
|
|
20
|
+
job: API calls, data processing, file operations, database work. Fast,
|
|
21
|
+
documented, testable, deterministic. All tools listed in `tools/manifest.md`.
|
|
22
|
+
|
|
23
|
+
**CHA** (The Context):
|
|
24
|
+
- **Context** (`context/`) — Static reference material: tone rules, writing
|
|
25
|
+
samples, ICP descriptions, case studies. Shapes quality/style, not process.
|
|
26
|
+
- **Hard Prompts** (`hardprompts/`) — Reusable text templates for LLM
|
|
27
|
+
sub-tasks: outline-to-post, rewrite-in-voice, summarize-transcript.
|
|
28
|
+
- **Args** (`args/`) — YAML/JSON files controlling behaviour: themes,
|
|
29
|
+
frameworks, modes, lengths, schedules, model choices. Changing args changes
|
|
30
|
+
behaviour without editing goals or tools.
|
|
31
|
+
|
|
32
|
+
## How to Operate
|
|
33
|
+
|
|
34
|
+
### 1. Check for existing goals first
|
|
35
|
+
Before starting a task, check `goals/manifest.md`. If a goal exists, follow
|
|
36
|
+
it — goals define the full process for common tasks.
|
|
37
|
+
|
|
38
|
+
### 2. Check for existing tools
|
|
39
|
+
Before writing new code, read `tools/manifest.md`. If a tool exists, use it.
|
|
40
|
+
If you create a new tool, you **must** add it to the manifest.
|
|
41
|
+
|
|
42
|
+
### 3. When tools fail, fix and document
|
|
43
|
+
- Read the error and stack trace carefully
|
|
44
|
+
- Update the tool to handle the issue
|
|
45
|
+
- Add what you learned to the goal
|
|
46
|
+
- If a goal gets too long, split into primary goal + technical reference
|
|
47
|
+
|
|
48
|
+
### 4. Treat goals as living documentation
|
|
49
|
+
- Update only when better approaches or API constraints emerge
|
|
50
|
+
- Never modify/create goals without explicit permission
|
|
51
|
+
|
|
52
|
+
### 5. Communicate clearly when stuck
|
|
53
|
+
If you cannot complete a task with existing tools and goals:
|
|
54
|
+
- Explain what is missing
|
|
55
|
+
- Explain what you need
|
|
56
|
+
- Do not guess or invent capabilities
|
|
57
|
+
|
|
58
|
+
### 6. Guardrails
|
|
59
|
+
- Always check `tools/manifest.md` before writing a new script
|
|
60
|
+
- Verify tool output format before chaining into another tool
|
|
61
|
+
- Do not assume APIs support batch operations — check first
|
|
62
|
+
- When a workflow fails mid-execution, preserve intermediate outputs
|
|
63
|
+
- Read the full goal before starting a task — do not skim
|
|
64
|
+
|
|
65
|
+
## Memory
|
|
66
|
+
|
|
67
|
+
For persistent memory across sessions, use the **claude-mem** plugin
|
|
68
|
+
(`claude plugin install claude-mem`). It automatically captures context
|
|
69
|
+
via lifecycle hooks and provides MCP tools for search, timeline, and
|
|
70
|
+
observation management. Claude Code's built-in auto memory handles
|
|
71
|
+
curated facts (`~/.claude/projects/<project>/memory/MEMORY.md`).
|
|
72
|
+
|
|
73
|
+
## Question & Assumption Accountability
|
|
74
|
+
|
|
75
|
+
Nothing gets silently dropped. Every open question, assumption, and deferred
|
|
76
|
+
decision must be explicitly recorded and revisited.
|
|
77
|
+
|
|
78
|
+
### During work:
|
|
79
|
+
- When you make an assumption, **state it explicitly** and record it
|
|
80
|
+
- When a question cannot be answered immediately, log it as an open item
|
|
81
|
+
- When you defer a fix or skip an edge case, document why and what triggers it
|
|
82
|
+
|
|
83
|
+
### At the end of each task:
|
|
84
|
+
- Review all assumptions made — were they validated?
|
|
85
|
+
- Review all open questions — were they answered?
|
|
86
|
+
- Review all deferred items — are they tracked for follow-up?
|
|
87
|
+
- Present unresolved items to the user with context and suggested actions
|
|
88
|
+
|
|
89
|
+
### Persistence:
|
|
90
|
+
- Unresolved items go to `goals/` as documented follow-ups, to CLAUDE.md
|
|
91
|
+
as "Known Issues", or to memory for future session awareness
|
|
92
|
+
- Never close a task with unacknowledged open questions
|
|
93
|
+
- At the start of new work, check for outstanding items from previous sessions
|
|
94
|
+
|
|
95
|
+
### Why this matters:
|
|
96
|
+
90% accuracy per step means ~59% accuracy over 5 steps. Silent assumptions
|
|
97
|
+
compound. Explicit tracking breaks the chain — each assumption is either
|
|
98
|
+
validated or flagged before it can propagate.
|
|
99
|
+
|
|
100
|
+
## The Continuous Improvement Loop
|
|
101
|
+
|
|
102
|
+
Every failure strengthens the system:
|
|
103
|
+
1. Identify what broke and why
|
|
104
|
+
2. Fix the tool script
|
|
105
|
+
3. Test until it works reliably
|
|
106
|
+
4. Update the goal with new knowledge
|
|
107
|
+
5. Next time — automatic success
|
|
108
|
+
|
|
109
|
+
## Deliverables vs Scratch
|
|
110
|
+
|
|
111
|
+
- **Deliverables**: outputs needed by the user (processed data, reports, etc.)
|
|
112
|
+
- **Scratch work**: temp files (raw scrapes, CSVs, research). Always disposable.
|
|
113
|
+
- Never store important data in `.tmp/`
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Brace Phase Prompts
|
|
2
|
+
|
|
3
|
+
Subagent prompts for each phase. The orchestrator reads the relevant section
|
|
4
|
+
and substitutes `{VARIABLE}` placeholders before sending to the subagent.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Phase 1: Directory Scan
|
|
9
|
+
|
|
10
|
+
**Agent:** Bash | **Model:** haiku
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Scan the current working directory for existing GOTCHA/BRACE framework structure.
|
|
14
|
+
|
|
15
|
+
Limit your SCAN_REPORT to 20 lines maximum.
|
|
16
|
+
|
|
17
|
+
## Checks
|
|
18
|
+
|
|
19
|
+
1. Check for each GOTCHA directory:
|
|
20
|
+
goals/ tools/ context/ hardprompts/ args/ .tmp/
|
|
21
|
+
|
|
22
|
+
2. Check for each key file:
|
|
23
|
+
CLAUDE.md .gitignore goals/manifest.md goals/build_app.md
|
|
24
|
+
tools/manifest.md
|
|
25
|
+
|
|
26
|
+
3. Check if directory is a git repo:
|
|
27
|
+
[ -d .git ] && echo "git: true" || echo "git: false"
|
|
28
|
+
|
|
29
|
+
4. Get directory name:
|
|
30
|
+
basename "$(pwd)"
|
|
31
|
+
|
|
32
|
+
5. Check for legacy ATLAS references:
|
|
33
|
+
atlas_found=false
|
|
34
|
+
for f in CLAUDE.md goals/build_app.md goals/manifest.md; do
|
|
35
|
+
if [ -f "$f" ] && grep -qi "ATLAS" "$f"; then
|
|
36
|
+
atlas_found=true
|
|
37
|
+
break
|
|
38
|
+
fi
|
|
39
|
+
done
|
|
40
|
+
|
|
41
|
+
6. Check for legacy FORGE references:
|
|
42
|
+
forge_found=false
|
|
43
|
+
for f in CLAUDE.md goals/build_app.md goals/manifest.md; do
|
|
44
|
+
if [ -f "$f" ] && grep -qi "FORGE" "$f"; then
|
|
45
|
+
forge_found=true
|
|
46
|
+
break
|
|
47
|
+
fi
|
|
48
|
+
done
|
|
49
|
+
|
|
50
|
+
## Output Format
|
|
51
|
+
|
|
52
|
+
SCAN_REPORT:
|
|
53
|
+
directory_name: {name}
|
|
54
|
+
git_initialized: true|false
|
|
55
|
+
existing_dirs: [comma-separated list]
|
|
56
|
+
existing_files: [comma-separated list]
|
|
57
|
+
missing_dirs: [comma-separated list]
|
|
58
|
+
missing_files: [comma-separated list]
|
|
59
|
+
has_claude_md: true|false
|
|
60
|
+
has_gitignore: true|false
|
|
61
|
+
has_atlas: true|false
|
|
62
|
+
has_forge: true|false
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Phase 4: Scaffold Structure
|
|
68
|
+
|
|
69
|
+
**Agent:** general-purpose | **Model:** default
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
Create the GOTCHA/BRACE framework structure in the current directory.
|
|
73
|
+
|
|
74
|
+
Limit your SCAFFOLD_REPORT to 15 lines maximum.
|
|
75
|
+
|
|
76
|
+
## Inputs
|
|
77
|
+
|
|
78
|
+
- ACTION_PLAN: {ACTION_PLAN}
|
|
79
|
+
- PROJECT_NAME: {PROJECT_NAME}
|
|
80
|
+
- PROJECT_DESCRIPTION: {PROJECT_DESCRIPTION}
|
|
81
|
+
- INSTALL_LEVEL: {INSTALL_LEVEL}
|
|
82
|
+
|
|
83
|
+
## Instructions
|
|
84
|
+
|
|
85
|
+
Only act on items in the ACTION_PLAN with status "create", "merge", or "upgrade".
|
|
86
|
+
Skip items with status "skip" or "not selected".
|
|
87
|
+
|
|
88
|
+
### For "create" items:
|
|
89
|
+
|
|
90
|
+
1. Create directories with mkdir -p
|
|
91
|
+
2. Create .gitkeep in empty directories (context/, hardprompts/, args/, .tmp/)
|
|
92
|
+
3. Write CLAUDE.md using the template below, substituting {PROJECT_NAME},
|
|
93
|
+
{PROJECT_DESCRIPTION}, and {UNIVERSAL_PRINCIPLES}
|
|
94
|
+
4. Write .gitignore from the content below
|
|
95
|
+
5. Write goals/manifest.md and tools/manifest.md from content below
|
|
96
|
+
6. Write goals/build_app.md from the BRACE workflow content below
|
|
97
|
+
|
|
98
|
+
### For "merge" items:
|
|
99
|
+
|
|
100
|
+
- CLAUDE.md: Read existing file. If it does not contain "GOTCHA", append
|
|
101
|
+
the GOTCHA section from the template. If it does, skip.
|
|
102
|
+
- .gitignore: Read existing file. Append any missing entries from the
|
|
103
|
+
template. Do not duplicate existing entries.
|
|
104
|
+
|
|
105
|
+
### For "upgrade" items (legacy → BRACE migration):
|
|
106
|
+
|
|
107
|
+
These files already exist but contain legacy ATLAS or FORGE naming. Replace the
|
|
108
|
+
legacy methodology references with BRACE equivalents while preserving all other content.
|
|
109
|
+
|
|
110
|
+
- **CLAUDE.md:** Replace the "Build Methodology: ATLAS" or "Build Methodology: FORGE"
|
|
111
|
+
section (from that heading through the bullet list) with the BRACE section from
|
|
112
|
+
the template. Also replace "ATLAS build methodology" or "FORGE build methodology"
|
|
113
|
+
with "BRACE build methodology" in the directory tree comment. Preserve all other sections.
|
|
114
|
+
- **goals/build_app.md:** Replace the entire file with the BRACE workflow content below.
|
|
115
|
+
- **goals/manifest.md:** Replace "ATLAS" or "FORGE" with "BRACE" in the description column.
|
|
116
|
+
|
|
117
|
+
### Global preferences (conditional)
|
|
118
|
+
|
|
119
|
+
If INSTALL_LEVEL is "global" or "both":
|
|
120
|
+
- Read ~/.claude/CLAUDE.md
|
|
121
|
+
- If it does NOT contain "## Global Preferences", insert the Global
|
|
122
|
+
Preferences Content (below) immediately before "## Current Skills"
|
|
123
|
+
- If it already contains "## Global Preferences", skip (idempotent)
|
|
124
|
+
|
|
125
|
+
### {UNIVERSAL_PRINCIPLES} substitution
|
|
126
|
+
|
|
127
|
+
If INSTALL_LEVEL is "project" or "both", substitute {UNIVERSAL_PRINCIPLES}
|
|
128
|
+
in the CLAUDE.md template with the Universal Principles Content below.
|
|
129
|
+
|
|
130
|
+
If INSTALL_LEVEL is "global", substitute {UNIVERSAL_PRINCIPLES} with an
|
|
131
|
+
empty string (principles are in the global config instead).
|
|
132
|
+
|
|
133
|
+
### CLAUDE.md Template
|
|
134
|
+
|
|
135
|
+
{CLAUDE_MD_TEMPLATE}
|
|
136
|
+
|
|
137
|
+
### .gitignore Content
|
|
138
|
+
|
|
139
|
+
{GITIGNORE_CONTENT}
|
|
140
|
+
|
|
141
|
+
### goals/manifest.md Content
|
|
142
|
+
|
|
143
|
+
{GOALS_MANIFEST}
|
|
144
|
+
|
|
145
|
+
### tools/manifest.md Content
|
|
146
|
+
|
|
147
|
+
{TOOLS_MANIFEST}
|
|
148
|
+
|
|
149
|
+
### goals/build_app.md Content
|
|
150
|
+
|
|
151
|
+
{BRACE_WORKFLOW}
|
|
152
|
+
|
|
153
|
+
### Global Preferences Content
|
|
154
|
+
|
|
155
|
+
{GLOBAL_PREFERENCES_CONTENT}
|
|
156
|
+
|
|
157
|
+
### Universal Principles Content
|
|
158
|
+
|
|
159
|
+
## Question & Assumption Accountability
|
|
160
|
+
|
|
161
|
+
Nothing gets silently dropped. Every open question, assumption, and deferred
|
|
162
|
+
decision must be explicitly recorded and revisited.
|
|
163
|
+
|
|
164
|
+
- When you make an assumption, **state it explicitly** and record it
|
|
165
|
+
- When a question cannot be answered immediately, log it as an open item
|
|
166
|
+
- When you defer a fix or skip an edge case, document why and what triggers it
|
|
167
|
+
- At the end of each task, review all assumptions and open questions
|
|
168
|
+
- Present unresolved items to the user with context and suggested actions
|
|
169
|
+
- Unresolved items go to `goals/` as follow-ups, to CLAUDE.md as "Known Issues",
|
|
170
|
+
or to memory for future session awareness
|
|
171
|
+
- At the start of new work, check for outstanding items from previous sessions
|
|
172
|
+
- Never close a task with unacknowledged open questions
|
|
173
|
+
|
|
174
|
+
## Output Format
|
|
175
|
+
|
|
176
|
+
SCAFFOLD_REPORT:
|
|
177
|
+
status: success|partial|failed
|
|
178
|
+
created: [list of files/dirs created]
|
|
179
|
+
merged: [list of files merged]
|
|
180
|
+
upgraded: [list of files upgraded to BRACE]
|
|
181
|
+
skipped: [list of items skipped]
|
|
182
|
+
global_updated: true|false|skipped
|
|
183
|
+
errors: [any errors encountered]
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Phase 5: Verification
|
|
189
|
+
|
|
190
|
+
**Agent:** Bash | **Model:** haiku
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
Verify the GOTCHA framework was initialised correctly.
|
|
194
|
+
|
|
195
|
+
Limit your VERIFY_REPORT to 15 lines maximum.
|
|
196
|
+
|
|
197
|
+
## Checks
|
|
198
|
+
|
|
199
|
+
1. Verify expected directories exist:
|
|
200
|
+
for d in goals tools context hardprompts args .tmp; do
|
|
201
|
+
[ -d "$d" ] && echo "dir ok: $d" || echo "dir MISSING: $d"
|
|
202
|
+
done
|
|
203
|
+
|
|
204
|
+
2. Verify key files exist and are non-empty:
|
|
205
|
+
for f in CLAUDE.md .gitignore goals/manifest.md tools/manifest.md; do
|
|
206
|
+
[ -s "$f" ] && echo "file ok: $f" || echo "file MISSING: $f"
|
|
207
|
+
done
|
|
208
|
+
|
|
209
|
+
3. Check CLAUDE.md contains GOTCHA reference:
|
|
210
|
+
grep -q "GOTCHA" CLAUDE.md && echo "claude_md: has GOTCHA" || echo "claude_md: no GOTCHA"
|
|
211
|
+
|
|
212
|
+
4. Check .gitignore has key entries:
|
|
213
|
+
entries=0
|
|
214
|
+
for pattern in ".env" ".tmp/"; do
|
|
215
|
+
grep -q "$pattern" .gitignore && entries=$((entries+1))
|
|
216
|
+
done
|
|
217
|
+
echo "gitignore entries: $entries/2"
|
|
218
|
+
|
|
219
|
+
## Output Format
|
|
220
|
+
|
|
221
|
+
VERIFY_REPORT:
|
|
222
|
+
status: complete|partial|failed
|
|
223
|
+
dirs_verified: {count}/{expected}
|
|
224
|
+
files_verified: {count}/{expected}
|
|
225
|
+
claude_md_has_gotcha: true|false
|
|
226
|
+
gitignore_entries: {count}/{expected}
|
|
227
|
+
issues: [any problems found]
|
|
228
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Brace Report Template
|
|
2
|
+
|
|
3
|
+
Present this summary after verification completes.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Brace Complete!
|
|
9
|
+
|
|
10
|
+
Project: {project_name}
|
|
11
|
+
Directory: {cwd}
|
|
12
|
+
|
|
13
|
+
Structure:
|
|
14
|
+
{status} goals/ Goals layer
|
|
15
|
+
{status} tools/ Tools layer
|
|
16
|
+
{status} context/ Context layer
|
|
17
|
+
{status} hardprompts/ Hard prompts layer
|
|
18
|
+
{status} args/ Args layer
|
|
19
|
+
{status} .tmp/ Temp directory
|
|
20
|
+
|
|
21
|
+
Files:
|
|
22
|
+
{status} CLAUDE.md
|
|
23
|
+
{status} .gitignore
|
|
24
|
+
{status} goals/manifest.md
|
|
25
|
+
{status} goals/build_app.md
|
|
26
|
+
{status} tools/manifest.md
|
|
27
|
+
|
|
28
|
+
Notes:
|
|
29
|
+
{any warnings or skipped items}
|
|
30
|
+
|
|
31
|
+
Next steps:
|
|
32
|
+
1. Review CLAUDE.md and customise for your project
|
|
33
|
+
2. Add domain knowledge to context/
|
|
34
|
+
3. Define your first goal in goals/
|
|
35
|
+
4. Start building with the BRACE methodology
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Status indicators: [created] [exists] [merged] [upgraded] [skipped] [failed]
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Scaffold Manifest
|
|
2
|
+
|
|
3
|
+
Everything brace creates, grouped by component. Phase 4 uses this as its
|
|
4
|
+
creation checklist. Phase 1 uses it to detect existing structure.
|
|
5
|
+
|
|
6
|
+
## Core Files
|
|
7
|
+
|
|
8
|
+
| File | Source | Description |
|
|
9
|
+
|------|--------|-------------|
|
|
10
|
+
| `CLAUDE.md` | references/claude-md-template.md | Project operating document |
|
|
11
|
+
| `.gitignore` | assets/gitignore-template | Standard ignores |
|
|
12
|
+
| `~/.claude/CLAUDE.md` | assets/global-preferences-template.md | Global preferences (conditional on install_level) |
|
|
13
|
+
|
|
14
|
+
## Goals Layer
|
|
15
|
+
|
|
16
|
+
| Path | Source | Description |
|
|
17
|
+
|------|--------|-------------|
|
|
18
|
+
| `goals/` | mkdir | Process definitions directory |
|
|
19
|
+
| `goals/manifest.md` | generated | Index of all goal workflows |
|
|
20
|
+
| `goals/build_app.md` | references/brace-workflow.md | BRACE build methodology |
|
|
21
|
+
|
|
22
|
+
## Tools Layer
|
|
23
|
+
|
|
24
|
+
| Path | Source | Description |
|
|
25
|
+
|------|--------|-------------|
|
|
26
|
+
| `tools/` | mkdir | Deterministic scripts directory |
|
|
27
|
+
| `tools/manifest.md` | generated | Index of all tools |
|
|
28
|
+
|
|
29
|
+
## Context, Hard Prompts, Args Layers
|
|
30
|
+
|
|
31
|
+
| Path | Description |
|
|
32
|
+
|------|-------------|
|
|
33
|
+
| `context/` | Reference material and domain knowledge |
|
|
34
|
+
| `hardprompts/` | Reusable instruction templates |
|
|
35
|
+
| `args/` | Behaviour settings (YAML/JSON) |
|
|
36
|
+
|
|
37
|
+
## Temp
|
|
38
|
+
|
|
39
|
+
| Path | Description |
|
|
40
|
+
|------|-------------|
|
|
41
|
+
| `.tmp/` | Scratch work (gitignored) |
|
|
42
|
+
|
|
43
|
+
## Generated Manifest Content
|
|
44
|
+
|
|
45
|
+
### goals/manifest.md
|
|
46
|
+
```
|
|
47
|
+
# Goals Manifest
|
|
48
|
+
|
|
49
|
+
Index of all goal workflows in this project.
|
|
50
|
+
|
|
51
|
+
| Goal | File | Description |
|
|
52
|
+
|------|------|-------------|
|
|
53
|
+
| Build App | build_app.md | BRACE 5-step build methodology |
|
|
54
|
+
|
|
55
|
+
Add new goals here as they are created.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### tools/manifest.md
|
|
59
|
+
```
|
|
60
|
+
# Tools Manifest
|
|
61
|
+
|
|
62
|
+
Index of all tools in this project.
|
|
63
|
+
|
|
64
|
+
| Tool | Path | Description |
|
|
65
|
+
|------|------|-------------|
|
|
66
|
+
|
|
67
|
+
Add new tools here as they are created.
|
|
68
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "banner-and-tagline",
|
|
4
|
+
"prompt": "Initialize GOTCHA framework for this project",
|
|
5
|
+
"assertions": [
|
|
6
|
+
{ "type": "contains", "value": "██" },
|
|
7
|
+
{ "type": "regex", "value": "(Bracing the|Reinforcing before|Locking in the|Preparing for heavy|Cross-bracing|Tightening the load|Structural integrity|Brace for impact)" },
|
|
8
|
+
{ "type": "semantic", "value": "The response begins with an ASCII art banner displayed BEFORE any explanation or workflow steps" }
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "gotcha-framework",
|
|
13
|
+
"prompt": "Set up the GOTCHA structure in my project",
|
|
14
|
+
"assertions": [
|
|
15
|
+
{ "type": "contains", "value": "██" },
|
|
16
|
+
{ "type": "regex", "value": "GOTCHA", "flags": "i" },
|
|
17
|
+
{ "type": "regex", "value": "(Goals|Orchestration|Tools|Context)", "flags": "i" },
|
|
18
|
+
{ "type": "semantic", "value": "Describes the GOTCHA framework with its 6-layer structure: Goals, Orchestration, Tools, Context, Hard prompts, and Args" }
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "flag-handling",
|
|
23
|
+
"prompt": "Brace --no-brace this project directory",
|
|
24
|
+
"assertions": [
|
|
25
|
+
{ "type": "contains", "value": "██" },
|
|
26
|
+
{ "type": "semantic", "value": "Acknowledges the --no-brace flag, indicating it will skip the BRACE build methodology while still creating the GOTCHA directory structure" }
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
]
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build
|
|
3
|
+
description: >
|
|
4
|
+
Context-isolated feature development pipeline. Takes a detailed design/plan
|
|
5
|
+
as argument and executes the full feature-dev lifecycle (explore, question,
|
|
6
|
+
architect, implement, review, ship) inside subagents so the primary
|
|
7
|
+
conversation stays compact. Use when you have a well-defined plan and want
|
|
8
|
+
autonomous execution with minimal context window consumption.
|
|
9
|
+
argument-hint: Detailed design/plan to implement
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Build - Context-Isolated Feature Development
|
|
13
|
+
|
|
14
|
+
When this skill is invoked, IMMEDIATELY output the banner below before doing anything else.
|
|
15
|
+
Pick ONE tagline at random — vary your choice each time:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
{tagline}
|
|
19
|
+
|
|
20
|
+
██╗██████╗ ██╗ ██╗██╗██╗ ██████╗
|
|
21
|
+
██╔╝██╔══██╗██║ ██║██║██║ ██╔══██╗
|
|
22
|
+
██╔╝ ██████╔╝██║ ██║██║██║ ██║ ██║
|
|
23
|
+
██╔╝ ██╔══██╗██║ ██║██║██║ ██║ ██║
|
|
24
|
+
██╔╝ ██████╔╝╚██████╔╝██║███████╗██████╔╝
|
|
25
|
+
╚═╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═════╝
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Taglines:
|
|
30
|
+
- ⚙️ Compiling hopes and dreams...
|
|
31
|
+
- 🏗️ Bob the Builder has entered the chat!
|
|
32
|
+
- 🤖 Assembling the Voltron of code!
|
|
33
|
+
- 🏭 Feature factory: ONLINE
|
|
34
|
+
- ☕ Hold my coffee, I'm building!
|
|
35
|
+
- 📦 Some assembly required...
|
|
36
|
+
- 🧱 Bricks, mortar, and semicolons!
|
|
37
|
+
- 🏎️ Let's see what this baby can do!
|
|
38
|
+
|
|
39
|
+
Follow instructions in: [instructions.md](instructions.md)
|
|
40
|
+
|
|
41
|
+
Architecture, agent types, and report budgets are documented in `references/`.
|
|
42
|
+
|
|
43
|
+
## Flags
|
|
44
|
+
|
|
45
|
+
- `--skip-questions`: Skip clarifying questions (plan is fully specified)
|
|
46
|
+
- `--skip-review`: Skip code review stage
|
|
47
|
+
- `--no-ship`: Stop after docs update (don't commit/push/PR)
|
|
48
|
+
- `--parallel-impl`: Allow parallel implementation agents
|