catalyst-os 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.catalyst/main/project-config.yaml +21 -0
- package/.catalyst/specs/spec-config.yaml +5 -0
- package/.claude/agents/scribe.md +23 -7
- package/.claude/commands/build-spec.md +113 -2
- package/.claude/commands/catalyze-project.md +59 -4
- package/.claude/commands/validate-spec.md +1 -5
- package/AGENTS.md +18 -14
- package/package.json +1 -1
|
@@ -9,3 +9,24 @@ generated_files:
|
|
|
9
9
|
roadmap.md: "Development phases"
|
|
10
10
|
tech-stack.md: "Technology decisions"
|
|
11
11
|
|
|
12
|
+
# Git Configuration
|
|
13
|
+
git:
|
|
14
|
+
# Base branch for spec development (checkout from this branch)
|
|
15
|
+
# Common names: "development", "develop", "staging", "testing", "pre-prod"
|
|
16
|
+
# This is set during /catalyze-project based on user preference
|
|
17
|
+
development_branch: "development"
|
|
18
|
+
|
|
19
|
+
# Branch prefix for spec feature branches
|
|
20
|
+
# Example: "feat" creates branches like "feat/2026-01-11-supabase-auth"
|
|
21
|
+
branch_prefix: "feat"
|
|
22
|
+
|
|
23
|
+
# Protected branches (cannot commit directly)
|
|
24
|
+
protected_branches:
|
|
25
|
+
- "main"
|
|
26
|
+
- "master"
|
|
27
|
+
|
|
28
|
+
# Commit message templates
|
|
29
|
+
commit_templates:
|
|
30
|
+
red_phase: "test({scope}): write failing tests for {spec}"
|
|
31
|
+
green_phase: "feat({scope}): implement {spec}"
|
|
32
|
+
|
|
@@ -43,6 +43,11 @@ structure:
|
|
|
43
43
|
owner: any
|
|
44
44
|
description: "Images, diagrams, visual references"
|
|
45
45
|
|
|
46
|
+
references/:
|
|
47
|
+
owner: any
|
|
48
|
+
optional: true
|
|
49
|
+
description: "Screenshots, evidence, proof of issues (user-created)"
|
|
50
|
+
|
|
46
51
|
# Completed specs location
|
|
47
52
|
completed: "completed/"
|
|
48
53
|
|
package/.claude/agents/scribe.md
CHANGED
|
@@ -27,20 +27,36 @@ You create and maintain project documentation within the structured spec folder
|
|
|
27
27
|
|
|
28
28
|
**CRITICAL: All documentation goes to `.catalyst/specs/YYYY-MM-DD-{slug}/`**
|
|
29
29
|
|
|
30
|
+
### STRICT ALLOWLIST
|
|
31
|
+
|
|
32
|
+
Spec folders may **ONLY** contain these files:
|
|
33
|
+
|
|
34
|
+
| File | Owner | Purpose |
|
|
35
|
+
|------|-------|---------|
|
|
36
|
+
| `spec.md` | Scribe | Requirements + frontmatter |
|
|
37
|
+
| `research.md` | Scribe | Compiled research findings |
|
|
38
|
+
| `tasks.md` | Forger | Build DAG + progress |
|
|
39
|
+
| `validation.md` | Arbiter | Test results |
|
|
40
|
+
| `handoff.md` | Arbiter | Human-readable summary |
|
|
41
|
+
| `assets/` | Any | Images, diagrams |
|
|
42
|
+
| `references/` | Any | (Optional) Screenshots, evidence, proof |
|
|
43
|
+
|
|
44
|
+
**ANY OTHER FILE IS FORBIDDEN.**
|
|
45
|
+
|
|
30
46
|
```
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
└── assets/ # Images, diagrams
|
|
47
|
+
DO NOT CREATE:
|
|
48
|
+
✗ README.md
|
|
49
|
+
✗ notes.md
|
|
50
|
+
✗ implementation/
|
|
51
|
+
✗ Any other .md file
|
|
52
|
+
✗ Any other folder
|
|
38
53
|
```
|
|
39
54
|
|
|
40
55
|
**Rules:**
|
|
41
56
|
1. **UPDATE > CREATE** — Always update existing files, never create new random .md files
|
|
42
57
|
2. **No orphan docs** — Every document belongs to a spec folder
|
|
43
58
|
3. **Append to research.md** — Don't create separate research files
|
|
59
|
+
4. **DENY by default** — If it's not in the allowlist above, don't create it
|
|
44
60
|
|
|
45
61
|
## Your Responsibilities
|
|
46
62
|
|
|
@@ -46,6 +46,30 @@ IF YOU ARE ABOUT TO USE Edit/Write TOOL ON A .py/.ts/.js FILE → STOP → SPAWN
|
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
49
|
+
## GIT WORKFLOW
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
53
|
+
│ GIT CHECKPOINTS │
|
|
54
|
+
│ ─────────────── │
|
|
55
|
+
│ │
|
|
56
|
+
│ PHASE 0: Setup │
|
|
57
|
+
│ ├── Read .catalyst/main/project-config.yaml │
|
|
58
|
+
│ ├── Checkout to development_branch (default: main) │
|
|
59
|
+
│ └── Create branch: {branch_prefix}/{spec-slug} │
|
|
60
|
+
│ │
|
|
61
|
+
│ GATE 1: RED FLAG │
|
|
62
|
+
│ └── Commit: "test({scope}): write failing tests for {spec}" │
|
|
63
|
+
│ │
|
|
64
|
+
│ GATE 2: GREEN FLAG │
|
|
65
|
+
│ └── Commit: "feat({scope}): implement {spec}" │
|
|
66
|
+
│ │
|
|
67
|
+
│ Then: User runs /validate-spec and /approve-spec │
|
|
68
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
49
73
|
## TDD IS MANDATORY - NO EXCEPTIONS
|
|
50
74
|
|
|
51
75
|
```
|
|
@@ -137,6 +161,41 @@ forger -> enforcer -> GATE -> alchemist -> contracts -> [smith-1 + smith-2 + sha
|
|
|
137
161
|
|
|
138
162
|
The **Forge-Master** agent orchestrates the Technologists.
|
|
139
163
|
|
|
164
|
+
### Phase 0: Git Setup
|
|
165
|
+
|
|
166
|
+
**Before any work begins, set up the git branch for this spec.**
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
170
|
+
│ 📍 GIT SETUP │
|
|
171
|
+
│ ─────────── │
|
|
172
|
+
│ │
|
|
173
|
+
│ 1. Read git config from project-config.yaml: │
|
|
174
|
+
│ $ cat .catalyst/main/project-config.yaml │
|
|
175
|
+
│ │
|
|
176
|
+
│ Extract: │
|
|
177
|
+
│ - development_branch (default: "main") │
|
|
178
|
+
│ - branch_prefix (default: "feat") │
|
|
179
|
+
│ │
|
|
180
|
+
│ 2. Checkout to development branch: │
|
|
181
|
+
│ $ git checkout {development_branch} │
|
|
182
|
+
│ $ git pull origin {development_branch} │
|
|
183
|
+
│ │
|
|
184
|
+
│ 3. Create spec feature branch: │
|
|
185
|
+
│ $ git checkout -b {branch_prefix}/{spec-slug} │
|
|
186
|
+
│ │
|
|
187
|
+
│ Example: git checkout -b feat/2026-01-11-stripe-integration │
|
|
188
|
+
│ │
|
|
189
|
+
│ 4. Confirm branch creation to user: │
|
|
190
|
+
│ "Created branch: feat/{spec-slug} from {development_branch}"│
|
|
191
|
+
│ │
|
|
192
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**WAIT for git setup to complete before proceeding to Phase 1.**
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
140
199
|
### Phase 1: Task Breakdown (Forger)
|
|
141
200
|
|
|
142
201
|
**Spawn Forger agent** using `Task` tool with `subagent_type="forger"`:
|
|
@@ -212,7 +271,7 @@ Enforcer will:
|
|
|
212
271
|
|
|
213
272
|
---
|
|
214
273
|
|
|
215
|
-
### GATE 1: Red Phase Verification
|
|
274
|
+
### GATE 1: Red Phase Verification (RED FLAG)
|
|
216
275
|
|
|
217
276
|
**STOP! Before proceeding to implementation:**
|
|
218
277
|
|
|
@@ -232,6 +291,28 @@ npm test # or appropriate test command
|
|
|
232
291
|
|
|
233
292
|
**If ANY test passes -> STOP and investigate**
|
|
234
293
|
|
|
294
|
+
```
|
|
295
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
296
|
+
│ 🚩 RED FLAG COMMIT │
|
|
297
|
+
│ ───────────────── │
|
|
298
|
+
│ │
|
|
299
|
+
│ After Gate 1 passes, commit the test suite: │
|
|
300
|
+
│ │
|
|
301
|
+
│ $ git add . │
|
|
302
|
+
│ $ git commit -m "test({scope}): write failing tests for {spec}"│
|
|
303
|
+
│ │
|
|
304
|
+
│ Example: │
|
|
305
|
+
│ git commit -m "test(auth): write failing tests for supabase-auth"
|
|
306
|
+
│ │
|
|
307
|
+
│ This checkpoint captures: │
|
|
308
|
+
│ - All test files │
|
|
309
|
+
│ - tasks.md with test locations │
|
|
310
|
+
│ - Any test fixtures or mocks │
|
|
311
|
+
│ │
|
|
312
|
+
│ ✅ Checkpoint saved. Proceeding to implementation. │
|
|
313
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
314
|
+
```
|
|
315
|
+
|
|
235
316
|
---
|
|
236
317
|
|
|
237
318
|
### Phase 3-4: Foundation & Contracts (Sequential)
|
|
@@ -329,7 +410,7 @@ NEVER modify files outside your SCOPE
|
|
|
329
410
|
|
|
330
411
|
---
|
|
331
412
|
|
|
332
|
-
### GATE 2: Green Phase Verification
|
|
413
|
+
### GATE 2: Green Phase Verification (GREEN FLAG)
|
|
333
414
|
|
|
334
415
|
**Before completing build:**
|
|
335
416
|
|
|
@@ -342,6 +423,28 @@ npm test
|
|
|
342
423
|
# Status: GREEN
|
|
343
424
|
```
|
|
344
425
|
|
|
426
|
+
```
|
|
427
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
428
|
+
│ 🟢 GREEN FLAG COMMIT │
|
|
429
|
+
│ ─────────────────── │
|
|
430
|
+
│ │
|
|
431
|
+
│ After Gate 2 passes, commit the implementation: │
|
|
432
|
+
│ │
|
|
433
|
+
│ $ git add . │
|
|
434
|
+
│ $ git commit -m "feat({scope}): implement {spec}" │
|
|
435
|
+
│ │
|
|
436
|
+
│ Example: │
|
|
437
|
+
│ git commit -m "feat(auth): implement supabase-auth" │
|
|
438
|
+
│ │
|
|
439
|
+
│ This checkpoint captures: │
|
|
440
|
+
│ - All implementation files │
|
|
441
|
+
│ - Updated tasks.md with progress │
|
|
442
|
+
│ - Any configuration changes │
|
|
443
|
+
│ │
|
|
444
|
+
│ ✅ Implementation committed. Ready for validation. │
|
|
445
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
446
|
+
```
|
|
447
|
+
|
|
345
448
|
---
|
|
346
449
|
|
|
347
450
|
## Output
|
|
@@ -350,6 +453,13 @@ npm test
|
|
|
350
453
|
Build complete!
|
|
351
454
|
|
|
352
455
|
Spec: 2025-11-29-stripe-integration
|
|
456
|
+
Branch: feat/2025-11-29-stripe-integration
|
|
457
|
+
|
|
458
|
+
Git Commits:
|
|
459
|
+
┌────────────────────────────────────────────────────────────────┐
|
|
460
|
+
│ 🚩 abc1234 test(payment): write failing tests for stripe-integration
|
|
461
|
+
│ 🟢 def5678 feat(payment): implement stripe-integration
|
|
462
|
+
└────────────────────────────────────────────────────────────────┘
|
|
353
463
|
|
|
354
464
|
TDD Compliance: VERIFIED
|
|
355
465
|
- Red Phase: 45 tests written, all failed
|
|
@@ -368,6 +478,7 @@ Scope Violations: 0
|
|
|
368
478
|
Updated: .catalyst/specs/2025-11-29-stripe-integration/tasks.md
|
|
369
479
|
|
|
370
480
|
Next: Run /validate-spec @2025-11-29-stripe-integration
|
|
481
|
+
Then /approve-spec for final review and merge
|
|
371
482
|
```
|
|
372
483
|
|
|
373
484
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /catalyze-project
|
|
2
2
|
|
|
3
|
-
Initialize the project foundation.
|
|
3
|
+
Initialize the project foundation. Creates project config and all 6 foundation documents.
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
6
|
|
|
@@ -51,9 +51,55 @@ Then ask only what can't be inferred:
|
|
|
51
51
|
1. What's the project's mission? (if no README)
|
|
52
52
|
2. What are the current priorities?
|
|
53
53
|
|
|
54
|
-
### Phase 3:
|
|
54
|
+
### Phase 3: Git Branch Setup
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
**Ask the user about their development branch preference:**
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
60
|
+
│ 🙋 ASK USER: Development Branch │
|
|
61
|
+
│ ─────────────────────────────── │
|
|
62
|
+
│ │
|
|
63
|
+
│ "What should we name the development branch for spec work?" │
|
|
64
|
+
│ │
|
|
65
|
+
│ Options: │
|
|
66
|
+
│ ○ development (Recommended) │
|
|
67
|
+
│ ○ develop │
|
|
68
|
+
│ ○ staging │
|
|
69
|
+
│ ○ Other (custom name) │
|
|
70
|
+
│ │
|
|
71
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**After user responds:**
|
|
75
|
+
|
|
76
|
+
1. Check if branch exists:
|
|
77
|
+
```bash
|
|
78
|
+
git branch --list {branch_name}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
2. If branch doesn't exist, create it from main:
|
|
82
|
+
```bash
|
|
83
|
+
git checkout -b {branch_name}
|
|
84
|
+
git push -u origin {branch_name} # Optional: ask user if they want to push
|
|
85
|
+
git checkout main # Return to main for now
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
3. Store preference in `project-config.yaml`:
|
|
89
|
+
```yaml
|
|
90
|
+
git:
|
|
91
|
+
development_branch: "{user_choice}"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Phase 4: Generate Config and Documents
|
|
97
|
+
|
|
98
|
+
Always create in `.catalyst/main/`:
|
|
99
|
+
|
|
100
|
+
| File | Source |
|
|
101
|
+
|------|--------|
|
|
102
|
+
| `project-config.yaml` | User preferences from Phase 3 |
|
|
57
103
|
|
|
58
104
|
| Document | Greenfield Source | Brownfield Source |
|
|
59
105
|
|----------|-------------------|-------------------|
|
|
@@ -68,6 +114,9 @@ Always create all documents in `.catalyst/main/`:
|
|
|
68
114
|
|
|
69
115
|
## Templates
|
|
70
116
|
|
|
117
|
+
Located at `.catalyst/main/`:
|
|
118
|
+
- `project-config.yaml` (git and project settings template)
|
|
119
|
+
|
|
71
120
|
Located at `.catalyst/main/temp/`:
|
|
72
121
|
- `temp-mission.md`
|
|
73
122
|
- `temp-roadmap.md`
|
|
@@ -82,6 +131,7 @@ Located at `.catalyst/main/temp/`:
|
|
|
82
131
|
|
|
83
132
|
```
|
|
84
133
|
.catalyst/main/
|
|
134
|
+
├── project-config.yaml
|
|
85
135
|
├── mission.md
|
|
86
136
|
├── roadmap.md
|
|
87
137
|
├── tech-stack.md
|
|
@@ -93,7 +143,12 @@ Located at `.catalyst/main/temp/`:
|
|
|
93
143
|
```
|
|
94
144
|
✅ Project initialized!
|
|
95
145
|
|
|
96
|
-
|
|
146
|
+
Git Setup:
|
|
147
|
+
- Development branch: {branch_name} (created/verified)
|
|
148
|
+
- Feature branches will be: feat/{spec-slug}
|
|
149
|
+
|
|
150
|
+
Created 7 files in .catalyst/main/
|
|
151
|
+
- project-config.yaml: Git workflow settings
|
|
97
152
|
- Architecture: [summary]
|
|
98
153
|
- Conventions: [count] patterns
|
|
99
154
|
- Concerns: [count] issues
|
|
@@ -253,9 +253,5 @@ Validation failed!
|
|
|
253
253
|
|
|
254
254
|
Spec: 2025-11-29-stripe-integrationFailed Checks:
|
|
255
255
|
- E2E Tests: 2 failures
|
|
256
|
-
- Security: 1 vulnerability
|
|
257
|
-
|
|
258
|
-
Created: .catalyst/specs/{slug}/validation.md (with details)
|
|
259
|
-
|
|
260
|
-
Action: Fix issues and re-run /validate-spec
|
|
256
|
+
- Security: 1 vulnerability foundCreated: .catalyst/specs/{slug}/validation.md (with details)Action: Fix issues and re-run /validate-spec
|
|
261
257
|
```
|
package/AGENTS.md
CHANGED
|
@@ -157,25 +157,29 @@ Scribe is the gatekeeper. This ensures:
|
|
|
157
157
|
- Consistent formatting
|
|
158
158
|
- No orphan documents
|
|
159
159
|
|
|
160
|
-
###
|
|
160
|
+
### STRICT ALLOWLIST
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
162
|
+
Spec folders may **ONLY** contain:
|
|
163
|
+
|
|
164
|
+
| File | Owner | Purpose |
|
|
165
|
+
|------|-------|---------|
|
|
166
|
+
| `spec.md` | Scribe | Requirements + frontmatter |
|
|
167
|
+
| `research.md` | Scribe | Compiled research findings |
|
|
168
|
+
| `tasks.md` | Forger | Build DAG + progress |
|
|
169
|
+
| `validation.md` | Arbiter | Test results |
|
|
170
|
+
| `handoff.md` | Arbiter | Human-readable summary |
|
|
171
|
+
| `assets/` | Any | Images, diagrams |
|
|
172
|
+
| `references/` | Any | (Optional) Screenshots, evidence |
|
|
173
|
+
|
|
174
|
+
**ANY OTHER FILE IS FORBIDDEN.** No README.md, no notes.md, no implementation/.
|
|
171
175
|
|
|
172
176
|
### Rules
|
|
173
177
|
|
|
174
178
|
1. **Scribe is gatekeeper** — All .md writes in specs go through Scribe
|
|
175
|
-
2. **
|
|
176
|
-
3. **
|
|
177
|
-
4. **
|
|
178
|
-
5. **
|
|
179
|
+
2. **DENY by default** — If not in allowlist, don't create it
|
|
180
|
+
3. **Researchers hand off** — Scout/Seer/Oracle give findings to Scribe, don't write directly
|
|
181
|
+
4. **tasks.md is THE living document** — ONE file to read when resuming work
|
|
182
|
+
5. **handoff.md is colleague summary** — Human-readable walkthrough, finalized at end
|
|
179
183
|
|
|
180
184
|
---
|
|
181
185
|
|