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.
@@ -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
 
@@ -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
- .catalyst/specs/YYYY-MM-DD-{slug}/
32
- ├── spec.md # Requirements + frontmatter (YOU OWN THIS)
33
- ├── research.md # Append research findings here
34
- ├── tasks.md # DAG + progress + decisions (Forger owns)
35
- ├── handoff.md # Human-readable summary (YOU + Arbiter)
36
- ├── validation.md # Test results (Arbiter owns)
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. Always creates all 6 documents.
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: Generate All 6 Documents
54
+ ### Phase 3: Git Branch Setup
55
55
 
56
- Always create all documents in `.catalyst/main/`:
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
- Created 6 documents in .catalyst/main/
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 found
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
- ### Quick Reference
160
+ ### STRICT ALLOWLIST
161
161
 
162
- ```
163
- .catalyst/specs/YYYY-MM-DD-{slug}/
164
- ├── spec.md → Scribe owns (requirements + frontmatter)
165
- ├── research.md → Scribe compiles (researchers hand off findings)
166
- ├── tasks.md Forger owns (THE living document)
167
- ├── validation.md Arbiter owns
168
- ├── handoff.md Scribe owns (human-readable summary)
169
- └── assets/ → Any agent
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. **Researchers hand off** — Scout/Seer/Oracle give findings to Scribe, don't write directly
176
- 3. **tasks.md is THE living document** — ONE file to read when resuming work
177
- 4. **handoff.md is colleague summary** — Human-readable walkthrough, finalized at end
178
- 5. **See spec-structure.yaml** — For full structure details
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catalyst-os",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "AI-native spec-driven development framework for Claude Code",
5
5
  "bin": {
6
6
  "catalyst-os": "bin/install.js"