catalyst-os 0.1.0 → 0.1.1
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/commands/validate-spec.md +2 -4
- package/AGENTS.md +177 -0
- package/bin/install.js +7 -8
- package/package.json +2 -2
- package/.catalyst/workflows/approve-spec.md +0 -413
- package/.catalyst/workflows/build-spec.md +0 -527
- package/.catalyst/workflows/build-task.md +0 -434
- package/.catalyst/workflows/catalyze-project.md +0 -212
- package/.catalyst/workflows/catalyze-spec.md +0 -265
- package/.catalyst/workflows/validate-spec.md +0 -388
|
@@ -240,9 +240,7 @@ Spec: 2025-11-29-stripe-integration
|
|
|
240
240
|
|
|
241
241
|
TDD Compliance: FAILED
|
|
242
242
|
- Tests missing for tasks: T-003, T-005
|
|
243
|
-
- OR tests written after
|
|
244
|
-
|
|
245
|
-
Status: BLOCKED - RETURN TO BUILD
|
|
243
|
+
- OR tests written after implementationStatus: BLOCKED - RETURN TO BUILD
|
|
246
244
|
|
|
247
245
|
Action: Run /build-spec @2025-11-29-stripe-integration
|
|
248
246
|
Follow TDD process (tests BEFORE code)
|
|
@@ -262,4 +260,4 @@ Failed Checks:
|
|
|
262
260
|
Created: .catalyst/specs/{slug}/validation.md (with details)
|
|
263
261
|
|
|
264
262
|
Action: Fix issues and re-run /validate-spec
|
|
265
|
-
```
|
|
263
|
+
```
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Agent Registry
|
|
2
|
+
|
|
3
|
+
Quick reference for all agents and their skills.
|
|
4
|
+
|
|
5
|
+
> 📋 **Rule**: Artifacts are always in English — see [Language Policy](#language-policy) below.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Parallel Execution Strategy
|
|
10
|
+
|
|
11
|
+
**CRITICAL**: Always spawn multiple agents in parallel when their tasks are independent.
|
|
12
|
+
|
|
13
|
+
### ✅ Parallelize These (No Dependencies)
|
|
14
|
+
|
|
15
|
+
| Scenario | Run Together |
|
|
16
|
+
|----------|--------------|
|
|
17
|
+
| Research phase | Oracle + Seer + Scout + Surveyor |
|
|
18
|
+
| Build phase | Smith × N + Shaper × M (multiple instances) |
|
|
19
|
+
| Validation phase | Inquisitor + Watcher + Sentinel |
|
|
20
|
+
|
|
21
|
+
### ❌ Run Sequentially (Has Dependencies)
|
|
22
|
+
|
|
23
|
+
| First | Then | Why |
|
|
24
|
+
|-------|------|-----|
|
|
25
|
+
| Forger | All builders | Need task breakdown (DAG) first |
|
|
26
|
+
| Alchemist | Smith/Shaper | DB schema before API/UI that uses it |
|
|
27
|
+
| Enforcer | Builders | TDD: tests before implementation |
|
|
28
|
+
| Contracts | Parallel work | Shared types before parallel divergence |
|
|
29
|
+
|
|
30
|
+
### Multi-Instance Parallelization (DAG-Based)
|
|
31
|
+
|
|
32
|
+
Forger creates a **Build DAG** that identifies:
|
|
33
|
+
- **Scope boundaries** — exclusive file ownership per agent instance
|
|
34
|
+
- **Dependencies** — which tasks block others
|
|
35
|
+
- **Parallel opportunities** — tasks that can run simultaneously
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
OLD (Single instance per type):
|
|
39
|
+
alchemist → smith → shaper
|
|
40
|
+
|
|
41
|
+
NEW (Multiple instances with scope isolation):
|
|
42
|
+
alchemist (DB) ─────────────────────────────────────►
|
|
43
|
+
│
|
|
44
|
+
└── contracts (shared types) ───────►
|
|
45
|
+
│
|
|
46
|
+
├── smith-1 (api/auth/**) ──► }
|
|
47
|
+
├── smith-2 (api/posts/**) ─► } PARALLEL
|
|
48
|
+
├── shaper-1 (pages/profile) ► } (5 agents)
|
|
49
|
+
├── shaper-2 (pages/feed) ───► }
|
|
50
|
+
└── shaper-3 (pages/settings) ►
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Scope Isolation Rules
|
|
54
|
+
|
|
55
|
+
Each parallel agent has:
|
|
56
|
+
- **Scope**: Files it can write (exclusive)
|
|
57
|
+
- **Reads**: Files it can read but NOT modify (shared)
|
|
58
|
+
|
|
59
|
+
```yaml
|
|
60
|
+
# Example from tasks.md
|
|
61
|
+
api-auth:
|
|
62
|
+
agent: smith-1
|
|
63
|
+
scope: [src/api/auth/**, tests/api/auth/**]
|
|
64
|
+
reads: [src/types/**]
|
|
65
|
+
|
|
66
|
+
api-posts:
|
|
67
|
+
agent: smith-2
|
|
68
|
+
scope: [src/api/posts/**, tests/api/posts/**]
|
|
69
|
+
reads: [src/types/**]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**CRITICAL**: Parallel tasks MUST have non-overlapping scopes. If scopes overlap → make sequential.
|
|
73
|
+
|
|
74
|
+
### Phase Gates
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Phase 1: Foundation (alchemist)
|
|
78
|
+
└── GATE: schema tests pass
|
|
79
|
+
Phase 2: Contracts (smith single)
|
|
80
|
+
└── GATE: type-check passes
|
|
81
|
+
Phase 3: Parallel (smith × N, shaper × M)
|
|
82
|
+
└── GATE: ALL parallel tests pass
|
|
83
|
+
Phase 4: Integration (enforcer)
|
|
84
|
+
└── GATE: integration tests pass
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**When in doubt**: If two agents don't share data dependencies AND have non-overlapping scopes, spawn them in parallel.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## CATALYSTS (Orchestrators)
|
|
92
|
+
|
|
93
|
+
| Agent | Skills |
|
|
94
|
+
|-------|--------|
|
|
95
|
+
| [Catalyst](.claude/agents/catalyst.md) | `spec-orchestration` |
|
|
96
|
+
| [Forge-Master](.claude/agents/forge-master.md) | `build-orchestration` |
|
|
97
|
+
| [Arbiter](.claude/agents/arbiter.md) | `validation-orchestration` |
|
|
98
|
+
|
|
99
|
+
## SEEKERS (Research)
|
|
100
|
+
|
|
101
|
+
| Agent | Skills |
|
|
102
|
+
|-------|--------|
|
|
103
|
+
| [Oracle](.claude/agents/oracle.md) | `requirement-elicitation` |
|
|
104
|
+
| [Scribe](.claude/agents/scribe.md) | `documentation-management` |
|
|
105
|
+
| [Seer](.claude/agents/seer.md) | `codebase-analysis`, `context7-lookup` |
|
|
106
|
+
| [Scout](.claude/agents/scout.md) | `web-research`, `github-research`, `reddit-research` |
|
|
107
|
+
| [Surveyor](.claude/agents/surveyor.md) | `figma-analysis`, `ui-pattern-hunting` |
|
|
108
|
+
|
|
109
|
+
## TECHNOLOGISTS (Builders)
|
|
110
|
+
|
|
111
|
+
| Agent | Skills |
|
|
112
|
+
|-------|--------|
|
|
113
|
+
| [Forger](.claude/agents/forger.md) | `task-breakdown` |
|
|
114
|
+
| [Smith](.claude/agents/smith.md) | `api-development`, `service-implementation` |
|
|
115
|
+
| [Shaper](.claude/agents/shaper.md) | `react-development`, `ui-component-building` |
|
|
116
|
+
| [Alchemist](.claude/agents/alchemist.md) | `schema-design`, `migration-creation` |
|
|
117
|
+
| [Necromancer](.claude/agents/necromancer.md) | `ml-pipeline`, `ai-integration` |
|
|
118
|
+
|
|
119
|
+
## GUARDIANS (Quality)
|
|
120
|
+
|
|
121
|
+
| Agent | Skills |
|
|
122
|
+
|-------|--------|
|
|
123
|
+
| [Enforcer](.claude/agents/enforcer.md) | `unit-test-writing`, `test-fixture-creation` |
|
|
124
|
+
| [Sentinel](.claude/agents/sentinel.md) | `e2e-test-execution`, `browser-automation` |
|
|
125
|
+
| [Inquisitor](.claude/agents/inquisitor.md) | `lint-checking`, `code-review` |
|
|
126
|
+
| [Watcher](.claude/agents/watcher.md) | `dependency-audit`, `secret-scanning` |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Language Policy
|
|
131
|
+
|
|
132
|
+
**CRITICAL: All generated artifacts MUST be in English.**
|
|
133
|
+
|
|
134
|
+
| Context | Language |
|
|
135
|
+
|---------|----------|
|
|
136
|
+
| User Communication | Match user's language |
|
|
137
|
+
| Generated Artifacts | **Always English** |
|
|
138
|
+
| Code & Comments | **Always English** |
|
|
139
|
+
|
|
140
|
+
**Artifacts include:** `.catalyst/` contents, spec documents, mission.md, roadmap.md, tech-stack.md, code comments, commit messages.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Documentation Output Policy
|
|
145
|
+
|
|
146
|
+
**CRITICAL: All spec documentation MUST go through Scribe agent.**
|
|
147
|
+
|
|
148
|
+
> **Structure defined in:** `.catalyst/spec-structure.yaml` (single source of truth)
|
|
149
|
+
|
|
150
|
+
### Enforcement
|
|
151
|
+
|
|
152
|
+
**NEVER** use Write/Edit tools directly for `.md` files in `.catalyst/specs/`.
|
|
153
|
+
**ALWAYS** delegate documentation tasks to **Scribe** agent.
|
|
154
|
+
|
|
155
|
+
Scribe is the gatekeeper. This ensures:
|
|
156
|
+
- Correct file locations
|
|
157
|
+
- Consistent formatting
|
|
158
|
+
- No orphan documents
|
|
159
|
+
|
|
160
|
+
### Quick Reference
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
.catalyst/specs/YYYY-MM-DD-{slug}/
|
|
164
|
+
├── spec.md → Scribe owns
|
|
165
|
+
├── research.md → Scribe compiles (researchers hand off findings)
|
|
166
|
+
├── tasks.md → Forger owns
|
|
167
|
+
├── validation.md → Arbiter owns
|
|
168
|
+
├── handoff.md → Scribe owns (living document, updated throughout)
|
|
169
|
+
└── assets/ → Any agent
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Rules
|
|
173
|
+
|
|
174
|
+
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. **handoff.md is living** — Updated throughout, not generated at end
|
|
177
|
+
4. **See spec-structure.yaml** — For full structure details
|
package/bin/install.js
CHANGED
|
@@ -128,14 +128,6 @@ function install() {
|
|
|
128
128
|
console.log(` ${green}✓${reset} Installed .catalyst/standards`);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
// Install .catalyst/workflows
|
|
132
|
-
const workflowsSrc = path.join(src, '.catalyst', 'workflows');
|
|
133
|
-
const workflowsDest = path.join(catalystDir, 'workflows');
|
|
134
|
-
if (fs.existsSync(workflowsSrc)) {
|
|
135
|
-
copyDir(workflowsSrc, workflowsDest);
|
|
136
|
-
console.log(` ${green}✓${reset} Installed .catalyst/workflows`);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
131
|
// Install config files
|
|
140
132
|
const configs = [
|
|
141
133
|
['.catalyst/spec-structure.yaml', '.catalyst/spec-structure.yaml'],
|
|
@@ -158,6 +150,13 @@ function install() {
|
|
|
158
150
|
console.log(` ${green}✓${reset} Created .catalyst/specs/`);
|
|
159
151
|
}
|
|
160
152
|
|
|
153
|
+
// Install AGENTS.md
|
|
154
|
+
const agentsMdSrc = path.join(src, 'AGENTS.md');
|
|
155
|
+
const agentsMdDest = path.join(cwd, 'AGENTS.md');
|
|
156
|
+
if (copyFile(agentsMdSrc, agentsMdDest)) {
|
|
157
|
+
console.log(` ${green}✓${reset} Installed AGENTS.md`);
|
|
158
|
+
}
|
|
159
|
+
|
|
161
160
|
console.log(`
|
|
162
161
|
${green}Done!${reset}
|
|
163
162
|
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "catalyst-os",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "AI-native spec-driven development framework for Claude Code",
|
|
5
5
|
"bin": {
|
|
6
6
|
"catalyst-os": "bin/install.js"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
9
|
"bin",
|
|
10
|
+
"AGENTS.md",
|
|
10
11
|
".claude",
|
|
11
12
|
".claude-plugin",
|
|
12
13
|
".catalyst/standards",
|
|
13
|
-
".catalyst/workflows",
|
|
14
14
|
".catalyst/spec-structure.yaml",
|
|
15
15
|
".catalyst/specs/spec-config.yaml",
|
|
16
16
|
".catalyst/main/project-config.yaml"
|
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
# /approve-spec Workflow
|
|
2
|
-
|
|
3
|
-
> Accept the implementation and archive the spec.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Quick Reference
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
Command: /approve-spec @2026-01-11-supabase-auth
|
|
11
|
-
/approve-spec @2026-01-11-supabase-auth "Great work!"
|
|
12
|
-
Orchestrator: Main Agent
|
|
13
|
-
Agents: Scribe (for library extraction, optional)
|
|
14
|
-
Output: Commit + Archive to .catalyst/completed/ + Library item (optional)
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Prerequisites
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
23
|
-
│ ✅ REQUIRED BEFORE APPROVAL │
|
|
24
|
-
│ ─────────────────────────── │
|
|
25
|
-
│ │
|
|
26
|
-
│ [ ] Validation complete │
|
|
27
|
-
│ [ ] validation.md shows all checks passed │
|
|
28
|
-
│ [ ] handoff.md exists (generated by Arbiter) │
|
|
29
|
-
│ [ ] TDD compliance verified (tasks.md shows test coverage) │
|
|
30
|
-
│ │
|
|
31
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Workflow Diagram
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
40
|
-
│ /approve-spec @2026-01-11-supabase-auth │
|
|
41
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
42
|
-
│
|
|
43
|
-
▼
|
|
44
|
-
┌─────────────────────────────────────────┐
|
|
45
|
-
│ PHASE 1: FINAL VERIFICATION │
|
|
46
|
-
│ ─────────────────────────── │
|
|
47
|
-
│ │
|
|
48
|
-
│ ┌─────────────────────────────────┐ │
|
|
49
|
-
│ │ Read validation.md │ │
|
|
50
|
-
│ │ Read handoff.md │ │
|
|
51
|
-
│ └─────────────────────────────────┘ │
|
|
52
|
-
│ │ │
|
|
53
|
-
│ ┌───────────┴───────────┐ │
|
|
54
|
-
│ ▼ ▼ │
|
|
55
|
-
│ ┌─────┐ ┌─────┐ │
|
|
56
|
-
│ │ TDD │ │ All │ │
|
|
57
|
-
│ │ OK? │ │Pass?│ │
|
|
58
|
-
│ └─────┘ └─────┘ │
|
|
59
|
-
│ │ │ │
|
|
60
|
-
│ ▼ ▼ │
|
|
61
|
-
│ PASS ──────────────────▶ PASS │
|
|
62
|
-
│ │ │ │
|
|
63
|
-
│ FAIL ──▶ ❌ BLOCKED │ │
|
|
64
|
-
│ Return to │ │
|
|
65
|
-
│ /build-spec │ │
|
|
66
|
-
└─────────────────────────────────────────┘
|
|
67
|
-
│
|
|
68
|
-
▼
|
|
69
|
-
┌─────────────────────────────────────────┐
|
|
70
|
-
│ PHASE 2: LOAD CONFIG │
|
|
71
|
-
│ ──────────────────── │
|
|
72
|
-
│ │
|
|
73
|
-
│ Read project-config.yaml: │
|
|
74
|
-
│ ├── git.protected_branches │
|
|
75
|
-
│ ├── git.branch_prefix │
|
|
76
|
-
│ └── specs.completed_path │
|
|
77
|
-
└─────────────────────────────────────────┘
|
|
78
|
-
│
|
|
79
|
-
▼
|
|
80
|
-
┌─────────────────────────────────────────┐
|
|
81
|
-
│ PHASE 3: DETECT CHANGES │
|
|
82
|
-
│ ─────────────────────── │
|
|
83
|
-
│ │
|
|
84
|
-
│ $ git status --porcelain │
|
|
85
|
-
│ │
|
|
86
|
-
│ Show user: "12 files changed" │
|
|
87
|
-
└─────────────────────────────────────────┘
|
|
88
|
-
│
|
|
89
|
-
▼
|
|
90
|
-
┌─────────────────────────────────────────┐
|
|
91
|
-
│ PHASE 4: BRANCH MANAGEMENT │
|
|
92
|
-
│ ────────────────────────── │
|
|
93
|
-
│ │
|
|
94
|
-
│ Check current branch │
|
|
95
|
-
│ │ │
|
|
96
|
-
│ ┌──────┴──────┐ │
|
|
97
|
-
│ ▼ ▼ │
|
|
98
|
-
│ On main? On feature? │
|
|
99
|
-
│ │ │ │
|
|
100
|
-
│ ▼ ▼ │
|
|
101
|
-
│ Ask user Skip branch │
|
|
102
|
-
│ for branch creation │
|
|
103
|
-
│ name │
|
|
104
|
-
│ │ │
|
|
105
|
-
│ ▼ │
|
|
106
|
-
│ Create new │
|
|
107
|
-
│ branch │
|
|
108
|
-
└─────────────────────────────────────────┘
|
|
109
|
-
│
|
|
110
|
-
▼
|
|
111
|
-
┌─────────────────────────────────────────┐
|
|
112
|
-
│ PHASE 5: GIT COMMIT │
|
|
113
|
-
│ ────────────────── │
|
|
114
|
-
│ │
|
|
115
|
-
│ $ git add . │
|
|
116
|
-
│ $ git commit -m "..." │
|
|
117
|
-
└─────────────────────────────────────────┘
|
|
118
|
-
│
|
|
119
|
-
▼
|
|
120
|
-
┌─────────────────────────────────────────┐
|
|
121
|
-
│ PHASE 6: ARCHIVE SPEC │
|
|
122
|
-
│ ──────────────────── │
|
|
123
|
-
│ │
|
|
124
|
-
│ Move to completed: │
|
|
125
|
-
│ .catalyst/specs/... → .catalyst/completed/...│
|
|
126
|
-
│ │
|
|
127
|
-
│ Update spec.md status │
|
|
128
|
-
└─────────────────────────────────────────┘
|
|
129
|
-
│
|
|
130
|
-
▼
|
|
131
|
-
┌─────────────────────────────────────────┐
|
|
132
|
-
│ PHASE 7: LIBRARY EXTRACTION (Optional) │
|
|
133
|
-
│ ────────────────────────────────── │
|
|
134
|
-
│ │
|
|
135
|
-
│ Auto-detect reusable patterns │
|
|
136
|
-
│ │ │
|
|
137
|
-
│ ┌──────┴──────┐ │
|
|
138
|
-
│ ▼ ▼ │
|
|
139
|
-
│ Pattern No pattern │
|
|
140
|
-
│ detected? detected │
|
|
141
|
-
│ │ │ │
|
|
142
|
-
│ ▼ ▼ │
|
|
143
|
-
│ Ask user Skip library │
|
|
144
|
-
│ to confirm │
|
|
145
|
-
│ │ │
|
|
146
|
-
│ ▼ │
|
|
147
|
-
│ Scribe extracts │
|
|
148
|
-
│ to .catalyst/library/ │
|
|
149
|
-
└─────────────────────────────────────────┘
|
|
150
|
-
│
|
|
151
|
-
▼
|
|
152
|
-
┌─────────────────────────────────────────┐
|
|
153
|
-
│ OUTPUT │
|
|
154
|
-
└─────────────────────────────────────────┘
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## Phase Details
|
|
160
|
-
|
|
161
|
-
### Phase 1: Final Verification
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
165
|
-
│ 📍 FINAL VERIFICATION │
|
|
166
|
-
│ ───────────────────── │
|
|
167
|
-
│ │
|
|
168
|
-
│ 1. TDD Compliance Check: │
|
|
169
|
-
│ ├── Read tasks.md Progress section │
|
|
170
|
-
│ ├── Verify tests were written first │
|
|
171
|
-
│ └── Check validation.md shows TDD compliance │
|
|
172
|
-
│ │
|
|
173
|
-
│ 2. Validation Check: │
|
|
174
|
-
│ ├── Verify all validation checks passed │
|
|
175
|
-
│ └── Review handoff.md for completeness │
|
|
176
|
-
│ │
|
|
177
|
-
│ 3. User Review: │
|
|
178
|
-
│ ├── Check user has reviewed │
|
|
179
|
-
│ └── Note any user feedback │
|
|
180
|
-
│ │
|
|
181
|
-
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
182
|
-
│ │ IF TDD WAS NOT FOLLOWED: │ │
|
|
183
|
-
│ │ │ │
|
|
184
|
-
│ │ ❌ APPROVAL BLOCKED │ │
|
|
185
|
-
│ │ │ │
|
|
186
|
-
│ │ TDD compliance not verified. Cannot approve. │ │
|
|
187
|
-
│ │ │ │
|
|
188
|
-
│ │ Action: Return to /build-spec and follow TDD process. │ │
|
|
189
|
-
│ │ Then /validate-spec, then /approve-spec. │ │
|
|
190
|
-
│ └──────────────────────────────────────────────────────────┘ │
|
|
191
|
-
│ │
|
|
192
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
### Phase 4: Branch Management
|
|
196
|
-
|
|
197
|
-
```
|
|
198
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
199
|
-
│ 📍 BRANCH MANAGEMENT │
|
|
200
|
-
│ ──────────────────── │
|
|
201
|
-
│ │
|
|
202
|
-
│ 1. Check current branch: │
|
|
203
|
-
│ $ git branch --show-current │
|
|
204
|
-
│ │
|
|
205
|
-
│ 2. If on protected branch (main/master): │
|
|
206
|
-
│ │
|
|
207
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
208
|
-
│ │ 🙋 ASK USER │ │
|
|
209
|
-
│ │ │ │
|
|
210
|
-
│ │ "Which branch name would you like to use?" │ │
|
|
211
|
-
│ │ │ │
|
|
212
|
-
│ │ Suggested: feat/supabase-auth (Recommended) │ │
|
|
213
|
-
│ │ Or enter custom name │ │
|
|
214
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
215
|
-
│ │
|
|
216
|
-
│ Then create branch: │
|
|
217
|
-
│ $ git checkout -b feat/supabase-auth │
|
|
218
|
-
│ │
|
|
219
|
-
│ 3. If already on feature branch: │
|
|
220
|
-
│ └── Skip branch creation, continue to Phase 5 │
|
|
221
|
-
│ │
|
|
222
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Phase 5: Git Commit
|
|
226
|
-
|
|
227
|
-
```
|
|
228
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
229
|
-
│ 📍 GIT COMMIT │
|
|
230
|
-
│ ──────────── │
|
|
231
|
-
│ │
|
|
232
|
-
│ 1. Stage changes: │
|
|
233
|
-
│ $ git add . │
|
|
234
|
-
│ │
|
|
235
|
-
│ 2. Create structured commit message: │
|
|
236
|
-
│ │
|
|
237
|
-
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
238
|
-
│ │ feat(auth): implement supabase authentication │ │
|
|
239
|
-
│ │ │ │
|
|
240
|
-
│ │ TDD Compliance: Verified │ │
|
|
241
|
-
│ │ - Tests written first │ │
|
|
242
|
-
│ │ - All tests pass │ │
|
|
243
|
-
│ │ │ │
|
|
244
|
-
│ │ Implementation: │ │
|
|
245
|
-
│ │ - Login/Signup pages with Supabase Auth │ │
|
|
246
|
-
│ │ - OAuth support (Google) │ │
|
|
247
|
-
│ │ - Protected route middleware │ │
|
|
248
|
-
│ │ - Session management │ │
|
|
249
|
-
│ │ │ │
|
|
250
|
-
│ │ Spec: 2026-01-11-supabase-auth │ │
|
|
251
|
-
│ │ Tests: 45 passing │ │
|
|
252
|
-
│ └──────────────────────────────────────────────────────────┘ │
|
|
253
|
-
│ │
|
|
254
|
-
│ 3. Commit: │
|
|
255
|
-
│ $ git commit -m "..." │
|
|
256
|
-
│ │
|
|
257
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
### Phase 6: Archive Spec
|
|
261
|
-
|
|
262
|
-
```
|
|
263
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
264
|
-
│ 📍 ARCHIVE SPEC │
|
|
265
|
-
│ ─────────────── │
|
|
266
|
-
│ │
|
|
267
|
-
│ 1. Move spec to completed: │
|
|
268
|
-
│ │
|
|
269
|
-
│ FROM: .catalyst/specs/2026-01-11-supabase-auth/ │
|
|
270
|
-
│ TO: .catalyst/completed/2026-01-11-supabase-auth/ │
|
|
271
|
-
│ │
|
|
272
|
-
│ 2. Update spec.md status: │
|
|
273
|
-
│ │
|
|
274
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
275
|
-
│ │ > Status: COMPLETE │ │
|
|
276
|
-
│ │ > Completed: 2026-01-11 │ │
|
|
277
|
-
│ │ > Commit: abc1234 │ │
|
|
278
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
279
|
-
│ │
|
|
280
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### Phase 7: Library Extraction (Optional)
|
|
284
|
-
|
|
285
|
-
```
|
|
286
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
287
|
-
│ 📍 LIBRARY EXTRACTION │
|
|
288
|
-
│ ───────────────────── │
|
|
289
|
-
│ │
|
|
290
|
-
│ Extract reusable patterns into knowledge library. │
|
|
291
|
-
│ │
|
|
292
|
-
│ 1. Auto-detect common patterns from spec name: │
|
|
293
|
-
│ │
|
|
294
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
295
|
-
│ │ Pattern Keywords Suggested Library Item │ │
|
|
296
|
-
│ │ ───────────────────── ─────────────────────── │ │
|
|
297
|
-
│ │ stripe, payment payment-integration.md │ │
|
|
298
|
-
│ │ auth, oauth, login authentication.md │ │
|
|
299
|
-
│ │ upload, s3, storage file-storage.md │ │
|
|
300
|
-
│ │ websocket, realtime real-time-communication.md │ │
|
|
301
|
-
│ │ email, notification notifications.md │ │
|
|
302
|
-
│ │ search, elasticsearch search-implementation.md │ │
|
|
303
|
-
│ │ cache, redis caching-strategy.md │ │
|
|
304
|
-
│ │ queue, job, worker background-jobs.md │ │
|
|
305
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
306
|
-
│ │
|
|
307
|
-
│ 2. Ask user: │
|
|
308
|
-
│ │
|
|
309
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
310
|
-
│ │ 🙋 ASK USER │ │
|
|
311
|
-
│ │ │ │
|
|
312
|
-
│ │ "Should this spec be added to the pattern library │ │
|
|
313
|
-
│ │ for future projects?" │ │
|
|
314
|
-
│ │ │ │
|
|
315
|
-
│ │ Options: │ │
|
|
316
|
-
│ │ ○ Yes, create new: authentication.md (Recommended) │ │
|
|
317
|
-
│ │ ○ Yes, update existing: [list items] │ │
|
|
318
|
-
│ │ ○ No, too project-specific (skip) │ │
|
|
319
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
320
|
-
│ │
|
|
321
|
-
│ 3. If yes, delegate to Scribe: │
|
|
322
|
-
│ │
|
|
323
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
324
|
-
│ │ 📜 SCRIBE │ │
|
|
325
|
-
│ │ │ │
|
|
326
|
-
│ │ Extract reusable pattern to: │ │
|
|
327
|
-
│ │ .catalyst/library/<pattern-name>.md │ │
|
|
328
|
-
│ │ │ │
|
|
329
|
-
│ │ CRITICAL: │ │
|
|
330
|
-
│ │ - Remove ALL project-specific details │ │
|
|
331
|
-
│ │ - Keep generic guidelines │ │
|
|
332
|
-
│ │ - Focus on: considerations, pitfalls, testing │ │
|
|
333
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
334
|
-
│ │
|
|
335
|
-
│ 4. Library item format: │
|
|
336
|
-
│ │
|
|
337
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
338
|
-
│ │ # Pattern Name │ │
|
|
339
|
-
│ │ │ │
|
|
340
|
-
│ │ > Category: <category> │ │
|
|
341
|
-
│ │ > Complexity: Low | Medium | High │ │
|
|
342
|
-
│ │ > Last Updated: YYYY-MM-DD │ │
|
|
343
|
-
│ │ > Based on: N implementations │ │
|
|
344
|
-
│ │ │ │
|
|
345
|
-
│ │ ## Overview │ │
|
|
346
|
-
│ │ ## When to Use │ │
|
|
347
|
-
│ │ ## Key Considerations │ │
|
|
348
|
-
│ │ ## Architecture Pattern │ │
|
|
349
|
-
│ │ ## Common Pitfalls │ │
|
|
350
|
-
│ │ ## Dependencies │ │
|
|
351
|
-
│ │ ## Testing Strategy │ │
|
|
352
|
-
│ │ ## Database Considerations │ │
|
|
353
|
-
│ │ ## Related Specs │ │
|
|
354
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
355
|
-
│ │
|
|
356
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
---
|
|
360
|
-
|
|
361
|
-
## Output
|
|
362
|
-
|
|
363
|
-
```
|
|
364
|
-
✅ Spec approved and archived!
|
|
365
|
-
|
|
366
|
-
Spec: 2026-01-11-supabase-auth
|
|
367
|
-
Status: COMPLETED
|
|
368
|
-
|
|
369
|
-
TDD Compliance: VERIFIED
|
|
370
|
-
|
|
371
|
-
Branch: feat/supabase-auth
|
|
372
|
-
|
|
373
|
-
Commit: abc1234
|
|
374
|
-
┌────────────────────────────────────────────────────────────────┐
|
|
375
|
-
│ feat(auth): implement supabase authentication │
|
|
376
|
-
│ │
|
|
377
|
-
│ TDD Compliance: Verified │
|
|
378
|
-
│ - Tests written first │
|
|
379
|
-
│ - All tests pass │
|
|
380
|
-
│ │
|
|
381
|
-
│ Spec: 2026-01-11-supabase-auth │
|
|
382
|
-
│ Tests: 45 passing │
|
|
383
|
-
└────────────────────────────────────────────────────────────────┘
|
|
384
|
-
|
|
385
|
-
Archived to: .catalyst/completed/2026-01-11-supabase-auth/
|
|
386
|
-
|
|
387
|
-
Library: Added to .catalyst/library/authentication.md
|
|
388
|
-
(or "Skipped - project-specific")
|
|
389
|
-
|
|
390
|
-
Summary:
|
|
391
|
-
├── Requirements: 8 fulfilled
|
|
392
|
-
├── Tasks: 8 completed
|
|
393
|
-
└── Tests: 45 passing
|
|
394
|
-
|
|
395
|
-
🎉 Feature ready for production!
|
|
396
|
-
|
|
397
|
-
➡️ Next: git push -u origin feat/supabase-auth
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
---
|
|
401
|
-
|
|
402
|
-
## Execution Flow
|
|
403
|
-
|
|
404
|
-
```
|
|
405
|
-
SEQUENTIAL EXECUTION
|
|
406
|
-
|
|
407
|
-
Verify ──▶ Config ──▶ Detect ──▶ Branch ──▶ Commit ──▶ Archive ──▶ Library ──▶ Done!
|
|
408
|
-
│ │ │ │ │ │ │
|
|
409
|
-
│ │ │ │ │ │ │
|
|
410
|
-
TDD + load git create git add move to extract
|
|
411
|
-
validation config status branch + commit completed/ pattern
|
|
412
|
-
(optional)
|
|
413
|
-
```
|