@cluesmith/codev 2.0.8 → 2.0.11
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/dashboard/dist/assets/index-B4PL4V8p.js +135 -0
- package/dashboard/dist/assets/index-B4PL4V8p.js.map +1 -0
- package/dashboard/dist/assets/{index-Cr9PyjqX.css → index-Cx2BNcx0.css} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +96 -0
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/cron.d.ts +20 -0
- package/dist/agent-farm/commands/cron.d.ts.map +1 -0
- package/dist/agent-farm/commands/cron.js +114 -0
- package/dist/agent-farm/commands/cron.js.map +1 -0
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +19 -1
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +1 -1
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +13 -0
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/servers/overview.d.ts +14 -0
- package/dist/agent-farm/servers/overview.d.ts.map +1 -1
- package/dist/agent-farm/servers/overview.js +60 -6
- package/dist/agent-farm/servers/overview.js.map +1 -1
- package/dist/agent-farm/servers/send-buffer.d.ts +58 -0
- package/dist/agent-farm/servers/send-buffer.d.ts.map +1 -0
- package/dist/agent-farm/servers/send-buffer.js +97 -0
- package/dist/agent-farm/servers/send-buffer.js.map +1 -0
- package/dist/agent-farm/servers/tower-cron-parser.d.ts +11 -0
- package/dist/agent-farm/servers/tower-cron-parser.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-cron-parser.js +104 -0
- package/dist/agent-farm/servers/tower-cron-parser.js.map +1 -0
- package/dist/agent-farm/servers/tower-cron.d.ts +34 -0
- package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-cron.js +320 -0
- package/dist/agent-farm/servers/tower-cron.js.map +1 -0
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +6 -1
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts +4 -0
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +194 -15
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +19 -4
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +10 -2
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.js +3 -1
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +13 -0
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +31 -7
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +3 -5
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/porch/index.d.ts +5 -0
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +79 -0
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +2 -0
- package/dist/terminal/pty-manager.js.map +1 -1
- package/dist/terminal/pty-session.d.ts +17 -0
- package/dist/terminal/pty-session.d.ts.map +1 -1
- package/dist/terminal/pty-session.js +60 -0
- package/dist/terminal/pty-session.js.map +1 -1
- package/package.json +2 -1
- package/skeleton/.af-cron/ci-health.yaml.example +15 -0
- package/skeleton/.claude/skills/af/SKILL.md +26 -0
- package/skeleton/porch/prompts/review.md +62 -0
- package/skeleton/protocols/spir/prompts/review.md +59 -3
- package/skeleton/protocols/spir/protocol.json +8 -0
- package/skeleton/protocols/spir/templates/review.md +31 -0
- package/skeleton/protocols/tick/templates/review.md +12 -13
- package/dashboard/dist/assets/index-BblS3DWL.js +0 -135
- package/dashboard/dist/assets/index-BblS3DWL.js.map +0 -1
|
@@ -16,6 +16,9 @@ export class PtySession extends EventEmitter {
|
|
|
16
16
|
shellperClient = null;
|
|
17
17
|
_shellperBacked = false;
|
|
18
18
|
_shellperSessionId = null;
|
|
19
|
+
_restartOnExit = false;
|
|
20
|
+
_restartCleanupTimeout = null;
|
|
21
|
+
_restartCancelFn = null;
|
|
19
22
|
shellperPid = -1;
|
|
20
23
|
cols;
|
|
21
24
|
rows;
|
|
@@ -28,6 +31,7 @@ export class PtySession extends EventEmitter {
|
|
|
28
31
|
reconnectTimeoutMs;
|
|
29
32
|
disconnectTimer = null;
|
|
30
33
|
clients = new Set();
|
|
34
|
+
_lastInputAt = 0;
|
|
31
35
|
constructor(config) {
|
|
32
36
|
super();
|
|
33
37
|
this.config = config;
|
|
@@ -93,6 +97,39 @@ export class PtySession extends EventEmitter {
|
|
|
93
97
|
// Handle shellper exit (process inside shellper exited)
|
|
94
98
|
client.on('exit', (exitInfo) => {
|
|
95
99
|
this.exitCode = exitInfo.code;
|
|
100
|
+
if (this._restartOnExit) {
|
|
101
|
+
// Clear any pending restart state from a previous exit (crash loop guard)
|
|
102
|
+
if (this._restartCleanupTimeout) {
|
|
103
|
+
clearTimeout(this._restartCleanupTimeout);
|
|
104
|
+
if (this._restartCancelFn) {
|
|
105
|
+
client.removeListener('data', this._restartCancelFn);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Process will auto-restart via SessionManager — keep WebSocket clients
|
|
109
|
+
// connected and don't emit 'exit' so Tower doesn't clear references.
|
|
110
|
+
this.onPtyData('\r\n\x1b[90m[Process exited — restarting...]\x1b[0m\r\n');
|
|
111
|
+
// Wait for the process to restart. If new data arrives (process restarted),
|
|
112
|
+
// cancel the cleanup timer. If no data within 10s (e.g. max restarts
|
|
113
|
+
// exceeded), fall through to normal exit cleanup.
|
|
114
|
+
this._restartCleanupTimeout = setTimeout(() => {
|
|
115
|
+
client.removeListener('data', cancelCleanup);
|
|
116
|
+
this._restartCleanupTimeout = null;
|
|
117
|
+
this._restartCancelFn = null;
|
|
118
|
+
this.emit('exit', exitInfo.code, exitInfo.signal);
|
|
119
|
+
this.cleanupShellper();
|
|
120
|
+
}, 10_000);
|
|
121
|
+
const cancelCleanup = () => {
|
|
122
|
+
clearTimeout(this._restartCleanupTimeout);
|
|
123
|
+
client.removeListener('data', cancelCleanup);
|
|
124
|
+
this._restartCleanupTimeout = null;
|
|
125
|
+
this._restartCancelFn = null;
|
|
126
|
+
// Process restarted — reset exitCode so write/resize work again
|
|
127
|
+
this.exitCode = undefined;
|
|
128
|
+
};
|
|
129
|
+
this._restartCancelFn = cancelCleanup;
|
|
130
|
+
client.on('data', cancelCleanup);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
96
133
|
this.emit('exit', exitInfo.code, exitInfo.signal);
|
|
97
134
|
// For shellper-backed sessions, cleanup closes disk log and clients
|
|
98
135
|
// but doesn't clear the ring buffer (shellper may still have replay data)
|
|
@@ -116,6 +153,17 @@ export class PtySession extends EventEmitter {
|
|
|
116
153
|
get shellperSessionId() {
|
|
117
154
|
return this._shellperSessionId;
|
|
118
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Whether this session should suppress exit cleanup because the process
|
|
158
|
+
* will auto-restart via SessionManager. When true, the exit handler
|
|
159
|
+
* keeps WebSocket clients connected and does not emit 'exit'.
|
|
160
|
+
*/
|
|
161
|
+
get restartOnExit() {
|
|
162
|
+
return this._restartOnExit;
|
|
163
|
+
}
|
|
164
|
+
set restartOnExit(value) {
|
|
165
|
+
this._restartOnExit = value;
|
|
166
|
+
}
|
|
119
167
|
/**
|
|
120
168
|
* Detach from shellper client during Tower shutdown.
|
|
121
169
|
* Removes all event listeners so that SessionManager.shutdown() disconnecting
|
|
@@ -305,6 +353,18 @@ export class PtySession extends EventEmitter {
|
|
|
305
353
|
get clientCount() {
|
|
306
354
|
return this.clients.size;
|
|
307
355
|
}
|
|
356
|
+
/** Record that a user sent input to this session. */
|
|
357
|
+
recordUserInput() {
|
|
358
|
+
this._lastInputAt = Date.now();
|
|
359
|
+
}
|
|
360
|
+
/** Whether the user has been idle (no input) for at least thresholdMs. */
|
|
361
|
+
isUserIdle(thresholdMs) {
|
|
362
|
+
return Date.now() - this._lastInputAt >= thresholdMs;
|
|
363
|
+
}
|
|
364
|
+
/** Timestamp (epoch ms) of the last user input, or 0 if none. */
|
|
365
|
+
get lastInputAt() {
|
|
366
|
+
return this._lastInputAt;
|
|
367
|
+
}
|
|
308
368
|
cleanup() {
|
|
309
369
|
if (this.disconnectTimer) {
|
|
310
370
|
clearTimeout(this.disconnectTimer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty-session.js","sourceRoot":"","sources":["../../src/terminal/pty-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pty-session.js","sourceRoot":"","sources":["../../src/terminal/pty-session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cluesmith/codev",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.11",
|
|
4
4
|
"description": "Codev CLI - AI-assisted software development framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
"@types/node": "^22.10.1",
|
|
57
57
|
"@types/ws": "^8.18.1",
|
|
58
58
|
"@vitest/coverage-v8": "^4.0.18",
|
|
59
|
+
"jsdom": "^28.1.0",
|
|
59
60
|
"playwright": "^1.58.0",
|
|
60
61
|
"tsx": "^4.19.2",
|
|
61
62
|
"typescript": "^5.7.2",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Example: CI Health Check
|
|
2
|
+
#
|
|
3
|
+
# Checks for recent CI failures every 30 minutes and notifies the architect.
|
|
4
|
+
# Copy this file without the .example extension to activate it.
|
|
5
|
+
#
|
|
6
|
+
# See: https://github.com/cluesmith/codev/blob/main/codev/specs/399-af-cron.md
|
|
7
|
+
|
|
8
|
+
name: CI Health Check
|
|
9
|
+
schedule: "*/30 * * * *"
|
|
10
|
+
enabled: true
|
|
11
|
+
command: gh run list --limit 5 --json status,conclusion --jq '[.[] | select(.conclusion == "failure")] | length'
|
|
12
|
+
condition: "output != '0'"
|
|
13
|
+
message: "CI Alert: ${output} recent failures. Run `gh run list --limit 5` to investigate."
|
|
14
|
+
target: architect
|
|
15
|
+
timeout: 30
|
|
@@ -51,6 +51,32 @@ session registered with the Tower (so it appears in the dashboard), and lets
|
|
|
51
51
|
porch pick up from whatever phase the builder was in. Works with all spawn
|
|
52
52
|
modes: positional issue number, `--task`, `--protocol`, `--worktree`.
|
|
53
53
|
|
|
54
|
+
## Cron (Scheduled Tasks)
|
|
55
|
+
|
|
56
|
+
Cron tasks are YAML files in `.af-cron/` at the project root. Tower loads them automatically.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
af cron list # List all cron tasks
|
|
60
|
+
af cron status <name> # Check status of a specific task
|
|
61
|
+
af cron run <name> # Run a task immediately
|
|
62
|
+
af cron enable <name> # Enable a disabled task
|
|
63
|
+
af cron disable <name> # Disable a task
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
There is NO `af cron add` — create YAML files in `.af-cron/` directly. Example:
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
# .af-cron/ci-health.yaml
|
|
70
|
+
name: CI Health Check
|
|
71
|
+
schedule: "*/30 * * * *"
|
|
72
|
+
enabled: true
|
|
73
|
+
command: gh run list --limit 5 --json status,conclusion --jq '...'
|
|
74
|
+
condition: "output != '0'"
|
|
75
|
+
message: "CI Alert: ${output} recent failure(s)"
|
|
76
|
+
target: architect
|
|
77
|
+
timeout: 30
|
|
78
|
+
```
|
|
79
|
+
|
|
54
80
|
## Utility
|
|
55
81
|
|
|
56
82
|
```bash
|
|
@@ -85,8 +85,70 @@ One paragraph summarizing what was built and why.
|
|
|
85
85
|
|
|
86
86
|
- Recommendation for future work
|
|
87
87
|
- Follow-up items (if any)
|
|
88
|
+
|
|
89
|
+
## Consultation Feedback
|
|
90
|
+
|
|
91
|
+
[See instructions below]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 1b. Include Consultation Feedback
|
|
95
|
+
|
|
96
|
+
**IMPORTANT**: The review document MUST include a `## Consultation Feedback` section that summarizes all consultation concerns raised during every phase of the project and how the builder responded.
|
|
97
|
+
|
|
98
|
+
Read the consultation output files from the project directory (`codev/projects/{project-id}-*/`). For each phase that had consultation, create a subsection organized by phase, round, and model:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
## Consultation Feedback
|
|
102
|
+
|
|
103
|
+
### Specify Phase (Round 1)
|
|
104
|
+
|
|
105
|
+
#### Gemini
|
|
106
|
+
- **Concern**: [Summary of the concern]
|
|
107
|
+
- **Addressed**: [What was changed to resolve it]
|
|
108
|
+
- **Concern**: [Another concern]
|
|
109
|
+
- **Rebutted**: [Why the current approach is correct]
|
|
110
|
+
|
|
111
|
+
#### Codex
|
|
112
|
+
- **Concern**: [Summary]
|
|
113
|
+
- **N/A**: [Why it's out of scope or already handled]
|
|
114
|
+
|
|
115
|
+
#### Claude
|
|
116
|
+
- No concerns raised (APPROVE)
|
|
117
|
+
|
|
118
|
+
### Plan Phase (Round 1)
|
|
119
|
+
...
|
|
120
|
+
|
|
121
|
+
### Implement Phase: [phase-name] (Round 1)
|
|
122
|
+
...
|
|
88
123
|
```
|
|
89
124
|
|
|
125
|
+
**Response types** — each concern gets exactly one:
|
|
126
|
+
- **Addressed**: Builder made a change to resolve the concern
|
|
127
|
+
- **Rebutted**: Builder explains why the concern doesn't apply
|
|
128
|
+
- **N/A**: Concern is out of scope, already handled elsewhere, or moot
|
|
129
|
+
|
|
130
|
+
**Edge cases**:
|
|
131
|
+
- If all reviewers approved with no concerns across all phases: write "No concerns raised — all consultations approved"
|
|
132
|
+
- For COMMENT verdicts: include their feedback (non-blocking but useful context)
|
|
133
|
+
- For CONSULT_ERROR (model failure): note "Consultation failed for [model]"
|
|
134
|
+
- If a phase had multiple rounds (REQUEST_CHANGES → fix → re-review), give each round its own subsection
|
|
135
|
+
|
|
136
|
+
### 1c. Update Architecture and Lessons Learned Documentation
|
|
137
|
+
|
|
138
|
+
**MANDATORY**: The review document MUST include `## Architecture Updates` and `## Lessons Learned Updates` sections. Porch will block advancement if these are missing.
|
|
139
|
+
|
|
140
|
+
**Architecture Updates** (`codev/resources/arch.md`):
|
|
141
|
+
1. Read the current `codev/resources/arch.md`
|
|
142
|
+
2. Determine if this project introduced architectural changes worth documenting (new subsystems, data flows, design decisions, invariants, file locations)
|
|
143
|
+
3. If yes: make the updates to arch.md and describe what you changed in the `## Architecture Updates` section of the review
|
|
144
|
+
4. If no: write "No architecture updates needed" in the section with a brief explanation (e.g., "This was a template-only change with no new subsystems or data flows")
|
|
145
|
+
|
|
146
|
+
**Lessons Learned Updates** (`codev/resources/lessons-learned.md`):
|
|
147
|
+
1. Read the current `codev/resources/lessons-learned.md`
|
|
148
|
+
2. Determine if this project produced generalizable lessons (patterns, anti-patterns, debugging insights, process improvements)
|
|
149
|
+
3. If yes: add entries to lessons-learned.md and describe what you added in the `## Lessons Learned Updates` section of the review
|
|
150
|
+
4. If no: write "No lessons learned updates needed" in the section with a brief explanation (e.g., "Straightforward implementation with no novel insights beyond existing entries")
|
|
151
|
+
|
|
90
152
|
### 2. Create Pull Request
|
|
91
153
|
|
|
92
154
|
```bash
|
|
@@ -94,16 +94,72 @@ Brief description of what was implemented.
|
|
|
94
94
|
## Technical Debt
|
|
95
95
|
- [Any shortcuts taken that should be addressed later]
|
|
96
96
|
|
|
97
|
+
## Consultation Feedback
|
|
98
|
+
|
|
99
|
+
[See instructions below]
|
|
100
|
+
|
|
97
101
|
## Follow-up Items
|
|
98
102
|
- [Any items identified for future work]
|
|
99
103
|
```
|
|
100
104
|
|
|
101
|
-
###
|
|
105
|
+
### 3b. Include Consultation Feedback
|
|
106
|
+
|
|
107
|
+
**IMPORTANT**: The review document MUST include a `## Consultation Feedback` section that summarizes all consultation concerns raised during every phase of the project and how the builder responded.
|
|
108
|
+
|
|
109
|
+
Read the consultation output files from the project directory (`codev/projects/{project-id}-*/`). For each phase that had consultation, create a subsection organized by phase, round, and model:
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## Consultation Feedback
|
|
113
|
+
|
|
114
|
+
### Specify Phase (Round 1)
|
|
115
|
+
|
|
116
|
+
#### Gemini
|
|
117
|
+
- **Concern**: [Summary of the concern]
|
|
118
|
+
- **Addressed**: [What was changed to resolve it]
|
|
119
|
+
|
|
120
|
+
#### Codex
|
|
121
|
+
- **Concern**: [Summary]
|
|
122
|
+
- **Rebutted**: [Why the current approach is correct]
|
|
123
|
+
|
|
124
|
+
#### Claude
|
|
125
|
+
- No concerns raised (APPROVE)
|
|
126
|
+
|
|
127
|
+
### Plan Phase (Round 1)
|
|
128
|
+
...
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Response types** — each concern gets exactly one:
|
|
132
|
+
- **Addressed**: Builder made a change to resolve the concern
|
|
133
|
+
- **Rebutted**: Builder explains why the concern doesn't apply
|
|
134
|
+
- **N/A**: Concern is out of scope, already handled elsewhere, or moot
|
|
135
|
+
|
|
136
|
+
**Edge cases**:
|
|
137
|
+
- If all reviewers approved with no concerns: "No concerns raised — all consultations approved"
|
|
138
|
+
- For COMMENT verdicts: include their feedback (non-blocking but useful context)
|
|
139
|
+
- For CONSULT_ERROR (model failure): note "Consultation failed for [model]"
|
|
140
|
+
- If a phase had multiple rounds, give each round its own subsection
|
|
141
|
+
|
|
142
|
+
### 4. Update Architecture and Lessons Learned Documentation
|
|
143
|
+
|
|
144
|
+
**MANDATORY**: The review document MUST include `## Architecture Updates` and `## Lessons Learned Updates` sections. Porch will block advancement if these are missing.
|
|
145
|
+
|
|
146
|
+
**Architecture Updates** (`codev/resources/arch.md`):
|
|
147
|
+
1. Read the current `codev/resources/arch.md`
|
|
148
|
+
2. Determine if this project introduced architectural changes worth documenting (new subsystems, data flows, design decisions, invariants, file locations)
|
|
149
|
+
3. If yes: make the updates to arch.md and describe what you changed in the `## Architecture Updates` section of the review
|
|
150
|
+
4. If no: write "No architecture updates needed" in the section with a brief explanation (e.g., "This was a template-only change with no new subsystems or data flows")
|
|
151
|
+
|
|
152
|
+
**Lessons Learned Updates** (`codev/resources/lessons-learned.md`):
|
|
153
|
+
1. Read the current `codev/resources/lessons-learned.md`
|
|
154
|
+
2. Determine if this project produced generalizable lessons (patterns, anti-patterns, debugging insights, process improvements)
|
|
155
|
+
3. If yes: add entries to lessons-learned.md and describe what you added in the `## Lessons Learned Updates` section of the review
|
|
156
|
+
4. If no: write "No lessons learned updates needed" in the section with a brief explanation (e.g., "Straightforward implementation with no novel insights beyond existing entries")
|
|
157
|
+
|
|
158
|
+
### 4b. Update Other Documentation
|
|
102
159
|
|
|
103
|
-
If needed, update:
|
|
160
|
+
If needed, also update:
|
|
104
161
|
- README.md (new features, changed behavior)
|
|
105
162
|
- API documentation
|
|
106
|
-
- Architecture documentation (`codev/resources/arch.md`)
|
|
107
163
|
|
|
108
164
|
### 5. Final Verification
|
|
109
165
|
|
|
@@ -120,6 +120,14 @@
|
|
|
120
120
|
"command": "gh pr list --head \"$(git branch --show-current)\" --json number --jq 'length' | grep -q '^[1-9]'",
|
|
121
121
|
"description": "PR must be created before signaling completion"
|
|
122
122
|
},
|
|
123
|
+
"review_has_arch_updates": {
|
|
124
|
+
"command": "grep -q '## Architecture Updates' codev/reviews/${PROJECT_TITLE}.md",
|
|
125
|
+
"description": "Review must include '## Architecture Updates' section (what changed in arch.md, or why no changes needed)"
|
|
126
|
+
},
|
|
127
|
+
"review_has_lessons_updates": {
|
|
128
|
+
"command": "grep -q '## Lessons Learned Updates' codev/reviews/${PROJECT_TITLE}.md",
|
|
129
|
+
"description": "Review must include '## Lessons Learned Updates' section (what changed in lessons-learned.md, or why no changes needed)"
|
|
130
|
+
},
|
|
123
131
|
"e2e_tests": {
|
|
124
132
|
"command": "npm run test:e2e 2>&1 || echo 'e2e tests skipped (not configured)'",
|
|
125
133
|
"description": "Full e2e test suite - only runs in review phase",
|
|
@@ -69,6 +69,23 @@ Iterations that could have been prevented with better builder behavior:
|
|
|
69
69
|
|
|
70
70
|
2. **[Pattern]**: [Another avoidable iteration pattern.]
|
|
71
71
|
|
|
72
|
+
## Consultation Feedback
|
|
73
|
+
|
|
74
|
+
[For each phase that had consultation, summarize every reviewer's concerns and how the builder responded. Use **Addressed** (fixed), **Rebutted** (disagreed with reasoning), or **N/A** (out of scope/moot) for each concern. If all reviewers approved with no concerns: "No concerns raised — all consultations approved."]
|
|
75
|
+
|
|
76
|
+
### [Phase] Phase (Round N)
|
|
77
|
+
|
|
78
|
+
#### Gemini
|
|
79
|
+
- **Concern**: [Summary of concern]
|
|
80
|
+
- **Addressed**: [What was changed]
|
|
81
|
+
|
|
82
|
+
#### Codex
|
|
83
|
+
- **Concern**: [Summary of concern]
|
|
84
|
+
- **Rebutted**: [Why current approach is correct]
|
|
85
|
+
|
|
86
|
+
#### Claude
|
|
87
|
+
- No concerns raised (APPROVE)
|
|
88
|
+
|
|
72
89
|
## Lessons Learned
|
|
73
90
|
|
|
74
91
|
### What Went Well
|
|
@@ -80,6 +97,20 @@ Iterations that could have been prevented with better builder behavior:
|
|
|
80
97
|
### What Would Be Done Differently
|
|
81
98
|
- [Actionable improvement for future builders]
|
|
82
99
|
|
|
100
|
+
## Architecture Updates
|
|
101
|
+
|
|
102
|
+
[What was added/changed in `codev/resources/arch.md`, or why no changes were needed.]
|
|
103
|
+
|
|
104
|
+
- Updated: [section name] — [what was added/changed]
|
|
105
|
+
- Or: "No architecture updates needed — [brief reason]"
|
|
106
|
+
|
|
107
|
+
## Lessons Learned Updates
|
|
108
|
+
|
|
109
|
+
[What was added/changed in `codev/resources/lessons-learned.md`, or why no changes were needed.]
|
|
110
|
+
|
|
111
|
+
- Added: [category] — [lesson summary]
|
|
112
|
+
- Or: "No lessons learned updates needed — [brief reason]"
|
|
113
|
+
|
|
83
114
|
## Technical Debt
|
|
84
115
|
|
|
85
116
|
- [Any shortcuts taken or inconsistencies introduced]
|
|
@@ -57,23 +57,22 @@
|
|
|
57
57
|
- [Improvement area 1]
|
|
58
58
|
- [Improvement area 2]
|
|
59
59
|
|
|
60
|
-
##
|
|
60
|
+
## Consultation Feedback
|
|
61
61
|
|
|
62
|
-
**
|
|
63
|
-
**Date**: [YYYY-MM-DD]
|
|
62
|
+
[For each phase that had consultation, summarize every reviewer's concerns and how the builder responded. Use **Addressed** (fixed), **Rebutted** (disagreed with reasoning), or **N/A** (out of scope/moot) for each concern. If all reviewers approved with no concerns: "No concerns raised — all consultations approved."]
|
|
64
63
|
|
|
65
|
-
###
|
|
66
|
-
- [Feedback point 1 from consultation]
|
|
67
|
-
- [Feedback point 2 from consultation]
|
|
68
|
-
- [Feedback point 3 from consultation]
|
|
64
|
+
### [Phase] Phase (Round N)
|
|
69
65
|
|
|
70
|
-
|
|
71
|
-
- [
|
|
72
|
-
- [
|
|
66
|
+
#### Gemini
|
|
67
|
+
- **Concern**: [Summary of concern]
|
|
68
|
+
- **Addressed**: [What was changed]
|
|
73
69
|
|
|
74
|
-
|
|
75
|
-
- [
|
|
76
|
-
- [
|
|
70
|
+
#### Codex
|
|
71
|
+
- **Concern**: [Summary of concern]
|
|
72
|
+
- **Rebutted**: [Why current approach is correct]
|
|
73
|
+
|
|
74
|
+
#### Claude
|
|
75
|
+
- No concerns raised (APPROVE)
|
|
77
76
|
|
|
78
77
|
## TICK Protocol Feedback
|
|
79
78
|
- **Autonomous execution**: [Worked well / Issues encountered]
|