@cluesmith/codev 1.1.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/bin/af.js +8 -0
- package/bin/codev.js +4 -0
- package/bin/consult.js +7 -0
- package/dist/agent-farm/cli.d.ts +11 -0
- package/dist/agent-farm/cli.d.ts.map +1 -0
- package/dist/agent-farm/cli.js +359 -0
- package/dist/agent-farm/cli.js.map +1 -0
- package/dist/agent-farm/commands/cleanup.d.ts +12 -0
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -0
- package/dist/agent-farm/commands/cleanup.js +154 -0
- package/dist/agent-farm/commands/cleanup.js.map +1 -0
- package/dist/agent-farm/commands/db.d.ts +38 -0
- package/dist/agent-farm/commands/db.d.ts.map +1 -0
- package/dist/agent-farm/commands/db.js +133 -0
- package/dist/agent-farm/commands/db.js.map +1 -0
- package/dist/agent-farm/commands/index.d.ts +11 -0
- package/dist/agent-farm/commands/index.d.ts.map +1 -0
- package/dist/agent-farm/commands/index.js +11 -0
- package/dist/agent-farm/commands/index.js.map +1 -0
- package/dist/agent-farm/commands/open.d.ts +15 -0
- package/dist/agent-farm/commands/open.d.ts.map +1 -0
- package/dist/agent-farm/commands/open.js +118 -0
- package/dist/agent-farm/commands/open.js.map +1 -0
- package/dist/agent-farm/commands/rename.d.ts +13 -0
- package/dist/agent-farm/commands/rename.d.ts.map +1 -0
- package/dist/agent-farm/commands/rename.js +33 -0
- package/dist/agent-farm/commands/rename.js.map +1 -0
- package/dist/agent-farm/commands/send.d.ts +9 -0
- package/dist/agent-farm/commands/send.d.ts.map +1 -0
- package/dist/agent-farm/commands/send.js +282 -0
- package/dist/agent-farm/commands/send.js.map +1 -0
- package/dist/agent-farm/commands/spawn.d.ts +15 -0
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -0
- package/dist/agent-farm/commands/spawn.js +575 -0
- package/dist/agent-farm/commands/spawn.js.map +1 -0
- package/dist/agent-farm/commands/start.d.ts +9 -0
- package/dist/agent-farm/commands/start.d.ts.map +1 -0
- package/dist/agent-farm/commands/start.js +175 -0
- package/dist/agent-farm/commands/start.js.map +1 -0
- package/dist/agent-farm/commands/status.d.ts +8 -0
- package/dist/agent-farm/commands/status.d.ts.map +1 -0
- package/dist/agent-farm/commands/status.js +123 -0
- package/dist/agent-farm/commands/status.js.map +1 -0
- package/dist/agent-farm/commands/stop.d.ts +8 -0
- package/dist/agent-farm/commands/stop.d.ts.map +1 -0
- package/dist/agent-farm/commands/stop.js +76 -0
- package/dist/agent-farm/commands/stop.js.map +1 -0
- package/dist/agent-farm/commands/tower.d.ts +19 -0
- package/dist/agent-farm/commands/tower.d.ts.map +1 -0
- package/dist/agent-farm/commands/tower.js +125 -0
- package/dist/agent-farm/commands/tower.js.map +1 -0
- package/dist/agent-farm/commands/tutorial.d.ts +10 -0
- package/dist/agent-farm/commands/tutorial.d.ts.map +1 -0
- package/dist/agent-farm/commands/tutorial.js +49 -0
- package/dist/agent-farm/commands/tutorial.js.map +1 -0
- package/dist/agent-farm/commands/util.d.ts +15 -0
- package/dist/agent-farm/commands/util.d.ts.map +1 -0
- package/dist/agent-farm/commands/util.js +108 -0
- package/dist/agent-farm/commands/util.js.map +1 -0
- package/dist/agent-farm/db/errors.d.ts +17 -0
- package/dist/agent-farm/db/errors.d.ts.map +1 -0
- package/dist/agent-farm/db/errors.js +46 -0
- package/dist/agent-farm/db/errors.js.map +1 -0
- package/dist/agent-farm/db/index.d.ts +41 -0
- package/dist/agent-farm/db/index.d.ts.map +1 -0
- package/dist/agent-farm/db/index.js +168 -0
- package/dist/agent-farm/db/index.js.map +1 -0
- package/dist/agent-farm/db/migrate.d.ts +15 -0
- package/dist/agent-farm/db/migrate.d.ts.map +1 -0
- package/dist/agent-farm/db/migrate.js +137 -0
- package/dist/agent-farm/db/migrate.js.map +1 -0
- package/dist/agent-farm/db/schema.d.ts +16 -0
- package/dist/agent-farm/db/schema.d.ts.map +1 -0
- package/dist/agent-farm/db/schema.js +103 -0
- package/dist/agent-farm/db/schema.js.map +1 -0
- package/dist/agent-farm/db/types.d.ts +87 -0
- package/dist/agent-farm/db/types.d.ts.map +1 -0
- package/dist/agent-farm/db/types.js +65 -0
- package/dist/agent-farm/db/types.js.map +1 -0
- package/dist/agent-farm/index.d.ts +7 -0
- package/dist/agent-farm/index.d.ts.map +1 -0
- package/dist/agent-farm/index.js +373 -0
- package/dist/agent-farm/index.js.map +1 -0
- package/dist/agent-farm/servers/annotate-server.d.ts +9 -0
- package/dist/agent-farm/servers/annotate-server.d.ts.map +1 -0
- package/dist/agent-farm/servers/annotate-server.js +136 -0
- package/dist/agent-farm/servers/annotate-server.js.map +1 -0
- package/dist/agent-farm/servers/dashboard-server.d.ts +9 -0
- package/dist/agent-farm/servers/dashboard-server.d.ts.map +1 -0
- package/dist/agent-farm/servers/dashboard-server.js +939 -0
- package/dist/agent-farm/servers/dashboard-server.js.map +1 -0
- package/dist/agent-farm/servers/tower-server.d.ts +9 -0
- package/dist/agent-farm/servers/tower-server.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-server.js +463 -0
- package/dist/agent-farm/servers/tower-server.js.map +1 -0
- package/dist/agent-farm/state.d.ts +93 -0
- package/dist/agent-farm/state.d.ts.map +1 -0
- package/dist/agent-farm/state.js +253 -0
- package/dist/agent-farm/state.js.map +1 -0
- package/dist/agent-farm/tutorial/index.d.ts +8 -0
- package/dist/agent-farm/tutorial/index.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/index.js +8 -0
- package/dist/agent-farm/tutorial/index.js.map +1 -0
- package/dist/agent-farm/tutorial/prompts.d.ts +57 -0
- package/dist/agent-farm/tutorial/prompts.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/prompts.js +147 -0
- package/dist/agent-farm/tutorial/prompts.js.map +1 -0
- package/dist/agent-farm/tutorial/runner.d.ts +52 -0
- package/dist/agent-farm/tutorial/runner.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/runner.js +204 -0
- package/dist/agent-farm/tutorial/runner.js.map +1 -0
- package/dist/agent-farm/tutorial/state.d.ts +26 -0
- package/dist/agent-farm/tutorial/state.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/state.js +89 -0
- package/dist/agent-farm/tutorial/state.js.map +1 -0
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts +7 -0
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/steps/first-spec.js +136 -0
- package/dist/agent-farm/tutorial/steps/first-spec.js.map +1 -0
- package/dist/agent-farm/tutorial/steps/implementation.d.ts +7 -0
- package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/steps/implementation.js +76 -0
- package/dist/agent-farm/tutorial/steps/implementation.js.map +1 -0
- package/dist/agent-farm/tutorial/steps/index.d.ts +10 -0
- package/dist/agent-farm/tutorial/steps/index.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/steps/index.js +10 -0
- package/dist/agent-farm/tutorial/steps/index.js.map +1 -0
- package/dist/agent-farm/tutorial/steps/planning.d.ts +7 -0
- package/dist/agent-farm/tutorial/steps/planning.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/steps/planning.js +143 -0
- package/dist/agent-farm/tutorial/steps/planning.js.map +1 -0
- package/dist/agent-farm/tutorial/steps/review.d.ts +7 -0
- package/dist/agent-farm/tutorial/steps/review.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/steps/review.js +78 -0
- package/dist/agent-farm/tutorial/steps/review.js.map +1 -0
- package/dist/agent-farm/tutorial/steps/setup.d.ts +7 -0
- package/dist/agent-farm/tutorial/steps/setup.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/steps/setup.js +126 -0
- package/dist/agent-farm/tutorial/steps/setup.js.map +1 -0
- package/dist/agent-farm/tutorial/steps/welcome.d.ts +7 -0
- package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +1 -0
- package/dist/agent-farm/tutorial/steps/welcome.js +50 -0
- package/dist/agent-farm/tutorial/steps/welcome.js.map +1 -0
- package/dist/agent-farm/types.d.ts +131 -0
- package/dist/agent-farm/types.d.ts.map +1 -0
- package/dist/agent-farm/types.js +5 -0
- package/dist/agent-farm/types.js.map +1 -0
- package/dist/agent-farm/utils/config.d.ts +27 -0
- package/dist/agent-farm/utils/config.d.ts.map +1 -0
- package/dist/agent-farm/utils/config.js +242 -0
- package/dist/agent-farm/utils/config.js.map +1 -0
- package/dist/agent-farm/utils/deps.d.ts +51 -0
- package/dist/agent-farm/utils/deps.d.ts.map +1 -0
- package/dist/agent-farm/utils/deps.js +194 -0
- package/dist/agent-farm/utils/deps.js.map +1 -0
- package/dist/agent-farm/utils/index.d.ts +6 -0
- package/dist/agent-farm/utils/index.d.ts.map +1 -0
- package/dist/agent-farm/utils/index.js +6 -0
- package/dist/agent-farm/utils/index.js.map +1 -0
- package/dist/agent-farm/utils/logger.d.ts +31 -0
- package/dist/agent-farm/utils/logger.d.ts.map +1 -0
- package/dist/agent-farm/utils/logger.js +58 -0
- package/dist/agent-farm/utils/logger.js.map +1 -0
- package/dist/agent-farm/utils/orphan-handler.d.ts +27 -0
- package/dist/agent-farm/utils/orphan-handler.d.ts.map +1 -0
- package/dist/agent-farm/utils/orphan-handler.js +127 -0
- package/dist/agent-farm/utils/orphan-handler.js.map +1 -0
- package/dist/agent-farm/utils/port-registry.d.ts +58 -0
- package/dist/agent-farm/utils/port-registry.d.ts.map +1 -0
- package/dist/agent-farm/utils/port-registry.js +149 -0
- package/dist/agent-farm/utils/port-registry.js.map +1 -0
- package/dist/agent-farm/utils/shell.d.ts +45 -0
- package/dist/agent-farm/utils/shell.d.ts.map +1 -0
- package/dist/agent-farm/utils/shell.js +120 -0
- package/dist/agent-farm/utils/shell.js.map +1 -0
- package/dist/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +160 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/adopt.d.ts +12 -0
- package/dist/commands/adopt.d.ts.map +1 -0
- package/dist/commands/adopt.js +178 -0
- package/dist/commands/adopt.js.map +1 -0
- package/dist/commands/consult/index.d.ts +17 -0
- package/dist/commands/consult/index.d.ts.map +1 -0
- package/dist/commands/consult/index.js +405 -0
- package/dist/commands/consult/index.js.map +1 -0
- package/dist/commands/doctor.d.ts +10 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +346 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +12 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +167 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/tower.d.ts +16 -0
- package/dist/commands/tower.d.ts.map +1 -0
- package/dist/commands/tower.js +21 -0
- package/dist/commands/tower.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +137 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/lib/templates.d.ts +57 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +205 -0
- package/dist/lib/templates.js.map +1 -0
- package/package.json +55 -0
- package/templates/AGENTS.md +49 -0
- package/templates/CLAUDE.md +47 -0
- package/templates/DEPENDENCIES.md +344 -0
- package/templates/agents/architecture-documenter.md +189 -0
- package/templates/agents/codev-updater.md +276 -0
- package/templates/agents/spider-protocol-updater.md +118 -0
- package/templates/annotate.html +903 -0
- package/templates/bin/agent-farm +18 -0
- package/templates/bin/annotate-server.js +140 -0
- package/templates/bin/codev-doctor +335 -0
- package/templates/builders.md +30 -0
- package/templates/config.json +7 -0
- package/templates/dashboard-split.html +1679 -0
- package/templates/dashboard.html +149 -0
- package/templates/plans/.gitkeep +0 -0
- package/templates/protocols/experiment/protocol.md +229 -0
- package/templates/protocols/experiment/templates/notes.md +97 -0
- package/templates/protocols/maintain/protocol.md +235 -0
- package/templates/protocols/spider/protocol.md +639 -0
- package/templates/protocols/spider/templates/plan.md +169 -0
- package/templates/protocols/spider/templates/review.md +207 -0
- package/templates/protocols/spider/templates/spec.md +140 -0
- package/templates/protocols/spider-solo/protocol.md +619 -0
- package/templates/protocols/spider-solo/templates/plan.md +169 -0
- package/templates/protocols/spider-solo/templates/review.md +207 -0
- package/templates/protocols/spider-solo/templates/spec.md +140 -0
- package/templates/protocols/tick/protocol.md +250 -0
- package/templates/protocols/tick/templates/plan.md +67 -0
- package/templates/protocols/tick/templates/review.md +90 -0
- package/templates/protocols/tick/templates/spec.md +61 -0
- package/templates/reviews/.gitkeep +0 -0
- package/templates/roles/architect.md +230 -0
- package/templates/roles/builder.md +175 -0
- package/templates/roles/consultant.md +27 -0
- package/templates/specs/.gitkeep +0 -0
- package/templates/templates/projectlist.md +129 -0
- package/templates/tower.html +1032 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Role: Builder
|
|
2
|
+
|
|
3
|
+
A Builder is a focused implementation agent that works on a single spec in an isolated git worktree. Builders are spawned by the Architect and report their status back.
|
|
4
|
+
|
|
5
|
+
## Output Formatting
|
|
6
|
+
|
|
7
|
+
When referencing files that the user may want to review, format them as clickable URLs using the dashboard's open-file endpoint:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
# Instead of:
|
|
11
|
+
Updated src/lib/auth.ts with the new handler.
|
|
12
|
+
|
|
13
|
+
# Use:
|
|
14
|
+
Updated http://localhost:4200/open-file?path=src/lib/auth.ts with the new handler.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Replace `4200` with the actual dashboard port if different. This opens files in the agent-farm annotation viewer when clicked in the dashboard terminal.
|
|
18
|
+
|
|
19
|
+
## Responsibilities
|
|
20
|
+
|
|
21
|
+
1. **Implement a single spec** - Focus on one well-defined task
|
|
22
|
+
2. **Work in isolation** - Use the assigned git worktree
|
|
23
|
+
3. **Follow the assigned protocol** - SPIDER or TICK as specified
|
|
24
|
+
4. **Report status** - Keep status updated (implementing/blocked/pr-ready)
|
|
25
|
+
5. **Request help when blocked** - Don't spin; ask the Architect
|
|
26
|
+
6. **Deliver clean PRs** - Tests passing, code reviewed
|
|
27
|
+
|
|
28
|
+
## Execution Strategy
|
|
29
|
+
|
|
30
|
+
Builders execute the protocol assigned by the Architect:
|
|
31
|
+
|
|
32
|
+
### For Complex Tasks: SPIDER
|
|
33
|
+
Full phases with self-review and testing:
|
|
34
|
+
- Specify → Plan → Implement → Defend → Evaluate → Review
|
|
35
|
+
|
|
36
|
+
### For Simple Tasks: TICK
|
|
37
|
+
Fast autonomous implementation:
|
|
38
|
+
- Understand → Implement → Verify → Done
|
|
39
|
+
|
|
40
|
+
## Status Lifecycle
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
spawning → implementing → blocked → implementing → pr-ready → complete
|
|
44
|
+
↑______________|
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Status Definitions
|
|
48
|
+
|
|
49
|
+
| Status | Meaning |
|
|
50
|
+
|--------|---------|
|
|
51
|
+
| `spawning` | Worktree created, Builder starting up |
|
|
52
|
+
| `implementing` | Actively working on the spec |
|
|
53
|
+
| `blocked` | Stuck, needs Architect help |
|
|
54
|
+
| `pr-ready` | Implementation complete, ready for review |
|
|
55
|
+
| `complete` | Merged, worktree can be cleaned up |
|
|
56
|
+
|
|
57
|
+
### Updating Status
|
|
58
|
+
|
|
59
|
+
Status is tracked in `.agent-farm/state.json` and visible on the dashboard.
|
|
60
|
+
|
|
61
|
+
To check current status:
|
|
62
|
+
```bash
|
|
63
|
+
af status
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Status updates happen automatically based on your progress. When blocked, clearly communicate the blocker in your terminal or via REVIEW comments in code.
|
|
67
|
+
|
|
68
|
+
## Working in a Worktree
|
|
69
|
+
|
|
70
|
+
### Understanding Your Environment
|
|
71
|
+
- You are in an isolated git worktree at `.builders/XXXX/`
|
|
72
|
+
- You have your own branch: `builder/XXXX-spec-name`
|
|
73
|
+
- Changes here don't affect main until merged
|
|
74
|
+
- You can commit freely without affecting other Builders
|
|
75
|
+
|
|
76
|
+
### File Access
|
|
77
|
+
- Full access to your worktree
|
|
78
|
+
- Read-only conceptual access to main (for reference)
|
|
79
|
+
- Your spec is at `codev/specs/XXXX-spec-name.md`
|
|
80
|
+
- Your plan is at `codev/plans/XXXX-spec-name.md`
|
|
81
|
+
|
|
82
|
+
### Committing
|
|
83
|
+
Make atomic commits as you work:
|
|
84
|
+
```bash
|
|
85
|
+
git add <files>
|
|
86
|
+
git commit -m "[Spec XXXX] <description>"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## When to Report Blocked
|
|
90
|
+
|
|
91
|
+
Report `blocked` status when:
|
|
92
|
+
- Spec is ambiguous and you need clarification
|
|
93
|
+
- You discover a dependency on another spec
|
|
94
|
+
- You encounter an unexpected technical blocker
|
|
95
|
+
- You need architectural guidance
|
|
96
|
+
- Tests are failing for reasons outside your scope
|
|
97
|
+
|
|
98
|
+
**Do NOT stay blocked silently.** The Architect monitors status and will help.
|
|
99
|
+
|
|
100
|
+
### How to Report Blocked
|
|
101
|
+
|
|
102
|
+
1. Update status to `blocked`
|
|
103
|
+
2. Clearly describe the blocker:
|
|
104
|
+
```markdown
|
|
105
|
+
## Builder 0003
|
|
106
|
+
- Status: blocked
|
|
107
|
+
- Blocker: The spec says "use the existing auth helper" but I can't find
|
|
108
|
+
any auth helper in the codebase. Options:
|
|
109
|
+
1. Create a new auth helper
|
|
110
|
+
2. Use a third-party library
|
|
111
|
+
3. Spec meant something else?
|
|
112
|
+
```
|
|
113
|
+
3. Wait for Architect guidance
|
|
114
|
+
4. Once unblocked, update status back to `implementing`
|
|
115
|
+
|
|
116
|
+
## Deliverables
|
|
117
|
+
|
|
118
|
+
When done, a Builder should have:
|
|
119
|
+
|
|
120
|
+
1. **Implementation** - Code that fulfills the spec
|
|
121
|
+
2. **Tests** - Appropriate test coverage
|
|
122
|
+
3. **Documentation** - Updated relevant docs (if needed)
|
|
123
|
+
4. **Clean commits** - Atomic, well-messaged commits
|
|
124
|
+
5. **PR-ready branch** - Ready for Architect to merge
|
|
125
|
+
|
|
126
|
+
## Communication with Architect
|
|
127
|
+
|
|
128
|
+
### Receiving Instructions
|
|
129
|
+
The Architect provides:
|
|
130
|
+
- Spec file path
|
|
131
|
+
- Protocol to follow (SPIDER/TICK)
|
|
132
|
+
- Context and constraints
|
|
133
|
+
- Builder prompt with project-specific info
|
|
134
|
+
|
|
135
|
+
### Asking Questions
|
|
136
|
+
If you need help but aren't fully blocked:
|
|
137
|
+
- Add a `<!-- REVIEW(@architect): question here -->` comment
|
|
138
|
+
- The Architect will see it during review
|
|
139
|
+
|
|
140
|
+
### Reporting Completion
|
|
141
|
+
When implementation is complete:
|
|
142
|
+
1. Run all tests
|
|
143
|
+
2. Self-review the code
|
|
144
|
+
3. Update status to `pr-ready`
|
|
145
|
+
4. The Architect will review and merge
|
|
146
|
+
|
|
147
|
+
## Example Builder Session
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
1. Spawned for spec 0003-user-auth
|
|
151
|
+
2. Read spec at codev/specs/0003-user-auth.md
|
|
152
|
+
3. Status: implementing
|
|
153
|
+
4. Follow SPIDER protocol:
|
|
154
|
+
- Create plan
|
|
155
|
+
- Implement auth routes
|
|
156
|
+
- Write tests
|
|
157
|
+
- Self-review
|
|
158
|
+
5. Hit blocker: unclear which JWT library to use
|
|
159
|
+
6. Status: blocked (described options)
|
|
160
|
+
7. Architect responds: "Use jose library"
|
|
161
|
+
8. Status: implementing
|
|
162
|
+
9. Complete implementation
|
|
163
|
+
10. Run tests: all passing
|
|
164
|
+
11. Status: pr-ready
|
|
165
|
+
12. Architect reviews and merges
|
|
166
|
+
13. Status: complete
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Constraints
|
|
170
|
+
|
|
171
|
+
- **Stay in scope** - Only implement what's in your spec
|
|
172
|
+
- **Don't modify shared config** - Without Architect approval
|
|
173
|
+
- **Don't merge yourself** - The Architect handles integration
|
|
174
|
+
- **Don't spawn other Builders** - Only Architects spawn Builders
|
|
175
|
+
- **Keep worktree clean** - No untracked files, no debug code
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Role: Consultant
|
|
2
|
+
|
|
3
|
+
You are a consultant providing a second perspective to support decision-making.
|
|
4
|
+
|
|
5
|
+
## Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Understand context** - Grasp the problem and constraints being presented
|
|
8
|
+
2. **Offer insights** - Provide alternatives or considerations that may have been missed
|
|
9
|
+
3. **Be constructive** - Help improve the solution, don't just critique
|
|
10
|
+
4. **Be direct** - Give honest, clear feedback without excessive hedging
|
|
11
|
+
5. **Collaborate** - Work toward the best outcome alongside the primary agent
|
|
12
|
+
|
|
13
|
+
## You Are NOT
|
|
14
|
+
|
|
15
|
+
- An adversary or gatekeeper
|
|
16
|
+
- A rubber stamp that just agrees
|
|
17
|
+
- A code generator (unless specifically asked for snippets)
|
|
18
|
+
|
|
19
|
+
## Relationship to Other Roles
|
|
20
|
+
|
|
21
|
+
| Role | Focus |
|
|
22
|
+
|------|-------|
|
|
23
|
+
| Architect | Orchestrates, decomposes, integrates |
|
|
24
|
+
| Builder | Implements in isolation |
|
|
25
|
+
| Consultant | Provides perspective, supports decisions |
|
|
26
|
+
|
|
27
|
+
You think alongside the other agents, helping them see blind spots.
|
|
File without changes
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Project List
|
|
2
|
+
|
|
3
|
+
Centralized tracking of all projects with status, priority, and dependencies.
|
|
4
|
+
|
|
5
|
+
## Project Lifecycle
|
|
6
|
+
|
|
7
|
+
Every project goes through stages. Not all projects reach completion:
|
|
8
|
+
|
|
9
|
+
**Active Lifecycle:**
|
|
10
|
+
1. **conceived** - Initial idea captured, ready for specification
|
|
11
|
+
2. **spec-draft** - Specification written by AI (codev/specs/NNNN-name.md exists), awaiting human review
|
|
12
|
+
3. **specified** - Specification approved by human. **ONLY the human can mark a project as specified** - AI agents must stop at spec-draft.
|
|
13
|
+
4. **planned** - Implementation plan created (codev/plans/NNNN-name.md exists)
|
|
14
|
+
5. **implementing** - Actively being worked on (one or more phases in progress)
|
|
15
|
+
6. **implemented** - Code complete, all phases done, tests passing locally
|
|
16
|
+
7. **committed** - Merged to develop branch, ready for production deployment
|
|
17
|
+
8. **integrated** - Merged to main, deployed to production, validated, reviewed (codev/reviews/NNNN-name.md exists), and **explicitly approved by project owner**. **ONLY the human can mark a project as integrated** - AI agents must never transition to this status on their own.
|
|
18
|
+
|
|
19
|
+
**Terminal States:**
|
|
20
|
+
- **abandoned** - Project canceled/rejected, will not be implemented (explain reason in notes)
|
|
21
|
+
- **on-hold** - Temporarily paused, may resume later (explain reason in notes)
|
|
22
|
+
|
|
23
|
+
## Format
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
projects:
|
|
27
|
+
- id: "NNNN" # Four-digit project number
|
|
28
|
+
title: "Brief title"
|
|
29
|
+
summary: "One-sentence description of what this project does"
|
|
30
|
+
status: conceived|spec-draft|specified|planned|implementing|implemented|committed|integrated|abandoned|on-hold
|
|
31
|
+
priority: high|medium|low
|
|
32
|
+
files:
|
|
33
|
+
spec: codev/specs/NNNN-name.md # Required after "specified"
|
|
34
|
+
plan: codev/plans/NNNN-name.md # Required after "planned"
|
|
35
|
+
review: codev/reviews/NNNN-name.md # Required after "integrated"
|
|
36
|
+
dependencies: [] # List of project IDs this depends on
|
|
37
|
+
tags: [] # Categories (e.g., auth, billing, ui)
|
|
38
|
+
notes: "" # Optional notes about status or decisions
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Numbering Rules
|
|
42
|
+
|
|
43
|
+
1. **Sequential**: Use next available number (0001-9999)
|
|
44
|
+
2. **Reservation**: Add entry to this file FIRST before creating spec
|
|
45
|
+
3. **Renumbering**: If collision detected, newer project gets renumbered
|
|
46
|
+
4. **Gaps OK**: Deleted projects leave gaps (don't reuse numbers)
|
|
47
|
+
|
|
48
|
+
## Usage Guidelines
|
|
49
|
+
|
|
50
|
+
### When to Add a Project
|
|
51
|
+
|
|
52
|
+
Add a project entry when:
|
|
53
|
+
- You have a concrete idea worth tracking
|
|
54
|
+
- The work is non-trivial (not just a bug fix or typo)
|
|
55
|
+
- You want to reserve a number before writing a spec
|
|
56
|
+
|
|
57
|
+
### Status Transitions
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
conceived → spec-draft → [HUMAN] → specified → planned → implementing → implemented → committed → [HUMAN] → integrated
|
|
61
|
+
↑ ↑
|
|
62
|
+
Human approves Human approves
|
|
63
|
+
the spec production deploy
|
|
64
|
+
|
|
65
|
+
Any status can transition to: abandoned, on-hold
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Human approval gates:**
|
|
69
|
+
- `spec-draft` → `specified`: Human must approve the specification
|
|
70
|
+
- `committed` → `integrated`: Human must validate production deployment
|
|
71
|
+
|
|
72
|
+
### Priority Guidelines
|
|
73
|
+
|
|
74
|
+
- **high**: Critical path, blocking other work, or significant business value
|
|
75
|
+
- **medium**: Important but not urgent, can wait for high-priority work
|
|
76
|
+
- **low**: Nice to have, polish, or speculative features
|
|
77
|
+
|
|
78
|
+
### Tags
|
|
79
|
+
|
|
80
|
+
Use consistent tags across projects for filtering:
|
|
81
|
+
- `auth`, `security` - Authentication and security features
|
|
82
|
+
- `ui`, `ux` - User interface and experience
|
|
83
|
+
- `api`, `architecture` - Backend and system design
|
|
84
|
+
- `testing`, `infrastructure` - Development and deployment
|
|
85
|
+
- `billing`, `credits` - Payment and monetization
|
|
86
|
+
- `features` - New user-facing functionality
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Projects
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
projects:
|
|
94
|
+
# Example project entry (replace with your actual projects)
|
|
95
|
+
- id: "0001"
|
|
96
|
+
title: "Example Project"
|
|
97
|
+
summary: "Brief description of what this project accomplishes"
|
|
98
|
+
status: conceived
|
|
99
|
+
priority: medium
|
|
100
|
+
files:
|
|
101
|
+
spec: null
|
|
102
|
+
plan: null
|
|
103
|
+
review: null
|
|
104
|
+
dependencies: []
|
|
105
|
+
tags: [example]
|
|
106
|
+
notes: "Replace this with your first real project"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Next Available Number
|
|
110
|
+
|
|
111
|
+
**0002** - Reserve this number for your next project
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Quick Reference
|
|
116
|
+
|
|
117
|
+
### View by Status
|
|
118
|
+
To see all projects at a specific status, search for `status: <status>` in this file.
|
|
119
|
+
|
|
120
|
+
### View by Priority
|
|
121
|
+
To see high-priority work, search for `priority: high`.
|
|
122
|
+
|
|
123
|
+
### Check Dependencies
|
|
124
|
+
Before starting a project, verify its dependencies are at least `implemented`.
|
|
125
|
+
|
|
126
|
+
### Protocol Selection
|
|
127
|
+
- **SPIDER/SPIDER-SOLO**: Most projects (formal spec → plan → implement → review)
|
|
128
|
+
- **TICK**: Small, well-defined tasks (< 300 lines)
|
|
129
|
+
- **EXPERIMENT**: Research/prototyping before committing to a project
|