@imdeadpool/guardex 6.0.1 → 7.0.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/README.md +63 -39
- package/bin/multiagent-safety.js +368 -280
- package/package.json +3 -5
- package/templates/AGENTS.multiagent-safety.md +9 -81
- package/templates/claude/commands/guardex.md +6 -12
- package/templates/codex/skills/guardex/SKILL.md +18 -64
- package/templates/githooks/post-merge +39 -3
- package/templates/githooks/pre-commit +27 -193
- package/templates/githooks/pre-push +0 -0
- package/templates/scripts/agent-branch-finish.sh +70 -702
- package/templates/scripts/agent-branch-start.sh +76 -877
- package/templates/scripts/agent-worktree-prune.sh +65 -353
- package/templates/scripts/codex-agent.sh +626 -238
- package/templates/scripts/install-agent-git-hooks.sh +4 -27
- package/templates/scripts/openspec/init-change-workspace.sh +4 -50
- package/templates/scripts/openspec/init-plan-workspace.sh +48 -495
- package/templates/scripts/review-bot-watch.sh +11 -11
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
4
|
if [[ $# -lt 1 ]]; then
|
|
5
|
-
echo "Usage: $0 <plan-slug> [
|
|
6
|
-
echo "Example: $0
|
|
5
|
+
echo "Usage: $0 <plan-slug> [role ...]"
|
|
6
|
+
echo "Example: $0 stabilize-dashboard planner architect critic executor writer verifier"
|
|
7
7
|
exit 1
|
|
8
8
|
fi
|
|
9
9
|
|
|
@@ -11,14 +11,10 @@ PLAN_SLUG="$1"
|
|
|
11
11
|
shift || true
|
|
12
12
|
|
|
13
13
|
if [[ "$PLAN_SLUG" =~ [^a-z0-9-] ]]; then
|
|
14
|
-
echo "Error: plan slug must be kebab-case (lowercase letters, numbers, hyphens)."
|
|
14
|
+
echo "Error: plan slug must be kebab-case (lowercase letters, numbers, hyphens)." >&2
|
|
15
15
|
exit 1
|
|
16
16
|
fi
|
|
17
17
|
|
|
18
|
-
to_kebab() {
|
|
19
|
-
printf '%s' "$1" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+//; s/-+$//'
|
|
20
|
-
}
|
|
21
|
-
|
|
22
18
|
if [[ $# -gt 0 ]]; then
|
|
23
19
|
ROLES=("$@")
|
|
24
20
|
else
|
|
@@ -28,538 +24,95 @@ fi
|
|
|
28
24
|
PLAN_DIR="openspec/plan/${PLAN_SLUG}"
|
|
29
25
|
mkdir -p "$PLAN_DIR"
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
write_if_missing() {
|
|
28
|
+
local file="$1"
|
|
29
|
+
shift
|
|
30
|
+
if [[ ! -f "$file" ]]; then
|
|
31
|
+
mkdir -p "$(dirname "$file")"
|
|
32
|
+
cat > "$file" <<EOF
|
|
33
|
+
$*
|
|
34
|
+
EOF
|
|
35
|
+
fi
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
write_if_missing "$PLAN_DIR/summary.md" "# Plan Summary: ${PLAN_SLUG}
|
|
34
39
|
|
|
35
40
|
- **Mode:** ralplan
|
|
36
41
|
- **Status:** draft
|
|
37
42
|
|
|
38
43
|
## Context
|
|
39
44
|
|
|
40
|
-
Describe the
|
|
41
|
-
|
|
42
|
-
fi
|
|
45
|
+
Describe the problem, constraints, and intended outcomes.
|
|
46
|
+
"
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
cat > "$PLAN_DIR/checkpoints.md" <<CPTEOF
|
|
46
|
-
# Plan Checkpoints: ${PLAN_SLUG}
|
|
48
|
+
write_if_missing "$PLAN_DIR/checkpoints.md" "# Plan Checkpoints: ${PLAN_SLUG}
|
|
47
49
|
|
|
48
50
|
Chronological checkpoint log for all roles.
|
|
51
|
+
"
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
if [[ ! -f "$PLAN_DIR/README.md" ]]; then
|
|
54
|
-
{
|
|
55
|
-
echo "# Plan Workspace: ${PLAN_SLUG}"
|
|
56
|
-
echo
|
|
57
|
-
echo "This folder stores durable planning artifacts before implementation changes."
|
|
58
|
-
echo
|
|
59
|
-
echo "## Role folders"
|
|
60
|
-
for role in "${ROLES[@]}"; do
|
|
61
|
-
echo "- \`${role}/\`"
|
|
62
|
-
done
|
|
63
|
-
echo
|
|
64
|
-
echo "Each role folder contains OpenSpec-style artifacts:"
|
|
65
|
-
echo "- \`.openspec.yaml\`"
|
|
66
|
-
echo "- \`proposal.md\`"
|
|
67
|
-
echo "- \`tasks.md\` (Spec / Tests / Implementation / Checkpoints checklists)"
|
|
68
|
-
echo "- \`specs/<role>/spec.md\`"
|
|
69
|
-
echo "Planner also gets \`plan.md\`; executor also gets \`checkpoints.md\`."
|
|
70
|
-
echo "Planner plans should follow \`openspec/plan/PLANS.md\`."
|
|
71
|
-
} > "$PLAN_DIR/README.md"
|
|
72
|
-
fi
|
|
73
|
-
|
|
74
|
-
if [[ ! -f "$PLAN_DIR/coordinator-prompt.md" ]]; then
|
|
75
|
-
cat > "$PLAN_DIR/coordinator-prompt.md" <<COORDPROMPTEOF
|
|
76
|
-
# Master Coordinator Prompt
|
|
77
|
-
|
|
78
|
-
You are the coordinator for plan \`${PLAN_SLUG}\`.
|
|
79
|
-
|
|
80
|
-
## Objective
|
|
81
|
-
|
|
82
|
-
Drive this plan from draft to execution-ready status with strict checkpoint discipline and no scope drift.
|
|
83
|
-
|
|
84
|
-
## Source-of-truth artifacts
|
|
85
|
-
|
|
86
|
-
- \`openspec/plan/${PLAN_SLUG}/summary.md\`
|
|
87
|
-
- \`openspec/plan/${PLAN_SLUG}/checkpoints.md\`
|
|
88
|
-
- \`openspec/plan/${PLAN_SLUG}/planner/plan.md\`
|
|
89
|
-
- role \`tasks.md\` files for planner/architect/critic/executor/writer/verifier
|
|
90
|
-
|
|
91
|
-
## Coordinator responsibilities
|
|
92
|
-
|
|
93
|
-
1. Keep checkpoints current in each role \`tasks.md\` and root \`checkpoints.md\`.
|
|
94
|
-
2. Ensure each role has explicit acceptance criteria and verification evidence.
|
|
95
|
-
3. Prevent implementation from starting before planning gates are complete.
|
|
96
|
-
4. Keep handoffs concise: files changed, behavior touched, verification output, risks.
|
|
97
|
-
|
|
98
|
-
## Wave-splitting decision (optional)
|
|
99
|
-
|
|
100
|
-
Create wave prompts in \`kickoff-prompts.md\` only when at least one applies:
|
|
101
|
-
|
|
102
|
-
- 3+ independent implementation lanes can run in parallel.
|
|
103
|
-
- Runtime cutover/rollback sequencing needs explicit lane ownership.
|
|
104
|
-
- Risk is high enough that bounded execution packets reduce coordination mistakes.
|
|
105
|
-
|
|
106
|
-
If wave splitting is not needed, keep execution under a single owner with normal role checkpoints.
|
|
107
|
-
|
|
108
|
-
## Exit criteria
|
|
109
|
-
|
|
110
|
-
- All role checkpoints required for planning are done.
|
|
111
|
-
- Execution lanes (if any) have clear ownership boundaries.
|
|
112
|
-
- Verification plan and rollback expectations are explicit and testable.
|
|
113
|
-
COORDPROMPTEOF
|
|
114
|
-
fi
|
|
115
|
-
|
|
116
|
-
if [[ ! -f "$PLAN_DIR/kickoff-prompts.md" ]]; then
|
|
117
|
-
cat > "$PLAN_DIR/kickoff-prompts.md" <<KICKOFFPROMPTEOF
|
|
118
|
-
# Kickoff Prompts (Copy/Paste)
|
|
119
|
-
|
|
120
|
-
Use these only when the coordinator decides wave-splitting is needed.
|
|
121
|
-
|
|
122
|
-
## Prompt A — Wave A (Primary lane)
|
|
123
|
-
|
|
124
|
-
\`\`\`text
|
|
125
|
-
You own Wave-A for plan \`${PLAN_SLUG}\` in /home/deadpool/Documents/codex-lb.
|
|
126
|
-
|
|
127
|
-
Goal:
|
|
128
|
-
Implement the assigned Wave-A scope and return verification evidence.
|
|
129
|
-
|
|
130
|
-
Hard constraints:
|
|
131
|
-
- You are not alone in the codebase; do not revert others' work.
|
|
132
|
-
- Stay in your owned files/modules only.
|
|
133
|
-
- Record explicit handoff notes for integration.
|
|
134
|
-
|
|
135
|
-
Owned scope:
|
|
136
|
-
- <fill owned files/modules>
|
|
137
|
-
|
|
138
|
-
Verification:
|
|
139
|
-
- <fill commands>
|
|
140
|
-
|
|
141
|
-
Handoff format:
|
|
142
|
-
- Files changed
|
|
143
|
-
- Behavior touched
|
|
144
|
-
- Verification outputs
|
|
145
|
-
- Risks/follow-ups
|
|
146
|
-
\`\`\`
|
|
147
|
-
|
|
148
|
-
## Prompt B — Wave B (Secondary lane)
|
|
149
|
-
|
|
150
|
-
\`\`\`text
|
|
151
|
-
You own Wave-B for plan \`${PLAN_SLUG}\` in /home/deadpool/Documents/codex-lb.
|
|
152
|
-
|
|
153
|
-
Goal:
|
|
154
|
-
Implement the assigned Wave-B scope and return verification evidence.
|
|
155
|
-
|
|
156
|
-
Hard constraints:
|
|
157
|
-
- You are not alone in the codebase; do not revert others' work.
|
|
158
|
-
- Stay in your owned files/modules only.
|
|
159
|
-
- Record explicit handoff notes for integration.
|
|
160
|
-
|
|
161
|
-
Owned scope:
|
|
162
|
-
- <fill owned files/modules>
|
|
163
|
-
|
|
164
|
-
Verification:
|
|
165
|
-
- <fill commands>
|
|
166
|
-
|
|
167
|
-
Handoff format:
|
|
168
|
-
- Files changed
|
|
169
|
-
- Behavior touched
|
|
170
|
-
- Verification outputs
|
|
171
|
-
- Risks/follow-ups
|
|
172
|
-
\`\`\`
|
|
173
|
-
|
|
174
|
-
## Prompt C — Wave C (Secondary lane)
|
|
175
|
-
|
|
176
|
-
\`\`\`text
|
|
177
|
-
You own Wave-C for plan \`${PLAN_SLUG}\` in /home/deadpool/Documents/codex-lb.
|
|
178
|
-
|
|
179
|
-
Goal:
|
|
180
|
-
Implement the assigned Wave-C scope and return verification evidence.
|
|
181
|
-
|
|
182
|
-
Hard constraints:
|
|
183
|
-
- You are not alone in the codebase; do not revert others' work.
|
|
184
|
-
- Stay in your owned files/modules only.
|
|
185
|
-
- Record explicit handoff notes for integration.
|
|
53
|
+
write_if_missing "$PLAN_DIR/README.md" "# Plan Workspace: ${PLAN_SLUG}
|
|
186
54
|
|
|
187
|
-
|
|
188
|
-
- <fill owned files/modules>
|
|
55
|
+
Durable pre-implementation planning workspace.
|
|
189
56
|
|
|
190
|
-
|
|
191
|
-
- <fill commands>
|
|
57
|
+
Use this command to update checkpoints:
|
|
192
58
|
|
|
193
|
-
|
|
194
|
-
-
|
|
195
|
-
- Behavior touched
|
|
196
|
-
- Verification outputs
|
|
197
|
-
- Risks/follow-ups
|
|
59
|
+
\`\`\`bash
|
|
60
|
+
/opsx:checkpoint ${PLAN_SLUG} <role> <checkpoint-id> <state> <note...>
|
|
198
61
|
\`\`\`
|
|
62
|
+
"
|
|
199
63
|
|
|
200
|
-
|
|
64
|
+
write_if_missing "$PLAN_DIR/planner/plan.md" "# ExecPlan: ${PLAN_SLUG}
|
|
201
65
|
|
|
202
|
-
|
|
203
|
-
You are the integrator for plan \`${PLAN_SLUG}\` in /home/deadpool/Documents/codex-lb.
|
|
204
|
-
|
|
205
|
-
Goal:
|
|
206
|
-
Integrate completed waves, resolve conflicts, run final verification, and prepare rollout/cutover notes.
|
|
207
|
-
|
|
208
|
-
Hard constraints:
|
|
209
|
-
- You are not alone in the codebase; do not revert others' work.
|
|
210
|
-
- Preserve safety-critical behavior unless explicitly planned and tested.
|
|
211
|
-
- Keep final output evidence-first.
|
|
212
|
-
|
|
213
|
-
Owned scope:
|
|
214
|
-
- integration glue and shared touchpoints
|
|
215
|
-
- final validation + handoff summary
|
|
216
|
-
|
|
217
|
-
Verification:
|
|
218
|
-
- <fill commands>
|
|
219
|
-
|
|
220
|
-
Final report:
|
|
221
|
-
- Files changed
|
|
222
|
-
- Integration decisions
|
|
223
|
-
- Verification outputs
|
|
224
|
-
- Remaining risks
|
|
225
|
-
\`\`\`
|
|
226
|
-
KICKOFFPROMPTEOF
|
|
227
|
-
fi
|
|
228
|
-
|
|
229
|
-
for role in "${ROLES[@]}"; do
|
|
230
|
-
ROLE_DIR="$PLAN_DIR/$role"
|
|
231
|
-
mkdir -p "$ROLE_DIR"
|
|
232
|
-
|
|
233
|
-
if [[ ! -f "$ROLE_DIR/README.md" ]]; then
|
|
234
|
-
cat > "$ROLE_DIR/README.md" <<ROLEEOF
|
|
235
|
-
# ${role}
|
|
236
|
-
|
|
237
|
-
Role workspace for \`${role}\`.
|
|
238
|
-
|
|
239
|
-
Default artifacts:
|
|
240
|
-
- \`.openspec.yaml\`
|
|
241
|
-
- \`proposal.md\`
|
|
242
|
-
- \`tasks.md\`
|
|
243
|
-
- \`specs/<role>/spec.md\`
|
|
244
|
-
|
|
245
|
-
Use this folder for role notes, artifacts, and status updates.
|
|
246
|
-
ROLEEOF
|
|
247
|
-
fi
|
|
248
|
-
|
|
249
|
-
ROLE_SPEC_SLUG="$(to_kebab "$role")"
|
|
250
|
-
if [[ -z "$ROLE_SPEC_SLUG" ]]; then
|
|
251
|
-
ROLE_SPEC_SLUG="role"
|
|
252
|
-
fi
|
|
253
|
-
|
|
254
|
-
if [[ ! -f "$ROLE_DIR/.openspec.yaml" ]]; then
|
|
255
|
-
cat > "$ROLE_DIR/.openspec.yaml" <<ROLEYAMLEOF
|
|
256
|
-
schema: 1
|
|
257
|
-
plan: ${PLAN_SLUG}
|
|
258
|
-
role: ${role}
|
|
259
|
-
status: draft
|
|
260
|
-
artifacts:
|
|
261
|
-
proposal: proposal.md
|
|
262
|
-
tasks: tasks.md
|
|
263
|
-
spec: specs/${ROLE_SPEC_SLUG}/spec.md
|
|
264
|
-
ROLEYAMLEOF
|
|
265
|
-
fi
|
|
266
|
-
|
|
267
|
-
if [[ ! -f "$ROLE_DIR/proposal.md" ]]; then
|
|
268
|
-
cat > "$ROLE_DIR/proposal.md" <<ROLEPROPOSALEOF
|
|
269
|
-
# Proposal: ${role} (${PLAN_SLUG})
|
|
270
|
-
|
|
271
|
-
## Why
|
|
272
|
-
|
|
273
|
-
Summarize why this role's work is required for plan \`${PLAN_SLUG}\`.
|
|
274
|
-
|
|
275
|
-
## What Changes
|
|
276
|
-
|
|
277
|
-
- [ ] List the planned role-specific changes
|
|
278
|
-
|
|
279
|
-
## Impact
|
|
280
|
-
|
|
281
|
-
- Scope:
|
|
282
|
-
- Risks:
|
|
283
|
-
- Dependencies:
|
|
284
|
-
ROLEPROPOSALEOF
|
|
285
|
-
fi
|
|
286
|
-
|
|
287
|
-
ROLE_SPEC_DIR="$ROLE_DIR/specs/$ROLE_SPEC_SLUG"
|
|
288
|
-
mkdir -p "$ROLE_SPEC_DIR"
|
|
289
|
-
|
|
290
|
-
if [[ ! -f "$ROLE_SPEC_DIR/spec.md" ]]; then
|
|
291
|
-
cat > "$ROLE_SPEC_DIR/spec.md" <<ROLESPECEOF
|
|
292
|
-
# Capability Spec: ${role}
|
|
293
|
-
|
|
294
|
-
## ADDED Requirements
|
|
295
|
-
|
|
296
|
-
### Requirement: ${role} responsibilities for \`${PLAN_SLUG}\`
|
|
297
|
-
This role MUST define and deliver its scoped outputs with evidence.
|
|
298
|
-
|
|
299
|
-
#### Scenario: Role executes assigned scope
|
|
300
|
-
- **WHEN** the role begins execution for \`${PLAN_SLUG}\`
|
|
301
|
-
- **THEN** it follows \`tasks.md\` and records evidence for completion
|
|
302
|
-
ROLESPECEOF
|
|
303
|
-
fi
|
|
304
|
-
|
|
305
|
-
if [[ "$role" == "planner" && ! -f "$ROLE_DIR/plan.md" ]]; then
|
|
306
|
-
cat > "$ROLE_DIR/plan.md" <<PLANEOF
|
|
307
|
-
# ExecPlan: ${PLAN_SLUG}
|
|
308
|
-
|
|
309
|
-
This ExecPlan is a living document. Keep \`Progress\`, \`Surprises & Discoveries\`, \`Decision Log\`, and \`Outcomes & Retrospective\` current as work proceeds.
|
|
310
|
-
|
|
311
|
-
Follow repository guidance in \`openspec/plan/PLANS.md\`.
|
|
66
|
+
This document is a living plan. Keep progress and decisions current.
|
|
312
67
|
|
|
313
68
|
## Purpose / Big Picture
|
|
314
69
|
|
|
315
|
-
Describe what becomes possible after this plan is executed and how a user/operator can observe it working.
|
|
316
|
-
|
|
317
70
|
## Progress
|
|
318
71
|
|
|
319
|
-
- [ ]
|
|
320
|
-
- [ ]
|
|
321
|
-
- [ ]
|
|
72
|
+
- [ ] Initial draft
|
|
73
|
+
- [ ] Review + iterate
|
|
74
|
+
- [ ] Approved for execution
|
|
322
75
|
|
|
323
76
|
## Surprises & Discoveries
|
|
324
77
|
|
|
325
|
-
- Observation: _none yet_
|
|
326
|
-
Evidence: _n/a_
|
|
327
|
-
|
|
328
78
|
## Decision Log
|
|
329
79
|
|
|
330
|
-
- Decision: Use OpenSpec plan workspace as source of truth for this planning cycle.
|
|
331
|
-
Rationale: Keeps planning artifacts in-repo and reviewable.
|
|
332
|
-
Date/Author: YYYY-MM-DD / planner
|
|
333
|
-
|
|
334
80
|
## Outcomes & Retrospective
|
|
335
81
|
|
|
336
|
-
Summarize outcomes, gaps, and lessons learned when a milestone or the full plan is completed.
|
|
337
|
-
|
|
338
|
-
## Context and Orientation
|
|
339
|
-
|
|
340
|
-
Describe relevant modules, files, constraints, and assumptions for a newcomer. Use repository-relative paths.
|
|
341
|
-
|
|
342
|
-
## Plan of Work
|
|
343
|
-
|
|
344
|
-
Describe the sequence of edits and deliverables in prose. Name target files and expected effects.
|
|
345
|
-
|
|
346
|
-
## Concrete Steps
|
|
347
|
-
|
|
348
|
-
List exact commands with working directory and short expected outcomes.
|
|
349
|
-
|
|
350
|
-
cd /home/deadpool/Documents/codex-lb
|
|
351
|
-
openspec validate --specs
|
|
352
|
-
|
|
353
82
|
## Validation and Acceptance
|
|
83
|
+
"
|
|
354
84
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
Document safe re-run behavior, rollback strategy, and failure recovery notes.
|
|
360
|
-
|
|
361
|
-
## Artifacts and Notes
|
|
362
|
-
|
|
363
|
-
Capture concise command output snippets, evidence pointers, and references.
|
|
364
|
-
|
|
365
|
-
## Interfaces and Dependencies
|
|
366
|
-
|
|
367
|
-
Name concrete interfaces/modules/dependencies and any required signatures/contracts.
|
|
368
|
-
|
|
369
|
-
## Revision Note
|
|
370
|
-
|
|
371
|
-
- YYYY-MM-DD HH:MMZ: Initial scaffold generated by \`scripts/openspec/init-plan-workspace.sh\`.
|
|
372
|
-
PLANEOF
|
|
373
|
-
fi
|
|
374
|
-
|
|
375
|
-
if [[ "$role" == "executor" && ! -f "$ROLE_DIR/checkpoints.md" ]]; then
|
|
376
|
-
cat > "$ROLE_DIR/checkpoints.md" <<EXCCPTEOF
|
|
377
|
-
# executor checkpoints
|
|
378
|
-
|
|
379
|
-
Timestamped execution checkpoints for \`${PLAN_SLUG}\`.
|
|
380
|
-
|
|
381
|
-
EXCCPTEOF
|
|
382
|
-
fi
|
|
383
|
-
|
|
384
|
-
if [[ ! -f "$ROLE_DIR/tasks.md" ]]; then
|
|
385
|
-
case "$role" in
|
|
386
|
-
planner)
|
|
387
|
-
cat > "$ROLE_DIR/tasks.md" <<TASKEOF
|
|
388
|
-
# planner tasks
|
|
389
|
-
|
|
390
|
-
## 1. Spec
|
|
391
|
-
|
|
392
|
-
- [ ] 1.1 Define planning principles, decision drivers, and viable options for \`${PLAN_SLUG}\`
|
|
393
|
-
- [ ] 1.2 Validate that scope, constraints, and acceptance criteria are captured in \`summary.md\`
|
|
394
|
-
|
|
395
|
-
## 2. Tests
|
|
396
|
-
|
|
397
|
-
- [ ] 2.1 Define verification approach for plan quality (traceability, testability, evidence expectations)
|
|
398
|
-
- [ ] 2.2 Validate OpenSpec consistency checkpoints (including \`openspec validate --specs\` when applicable)
|
|
399
|
-
|
|
400
|
-
## 3. Implementation
|
|
401
|
-
|
|
402
|
-
- [ ] 3.1 Produce the initial RALPLAN-DR plan draft
|
|
403
|
-
- [ ] 3.2 Integrate Architect/Critic feedback into revised plan iterations
|
|
404
|
-
- [ ] 3.3 Publish final planning handoff with explicit execution lanes
|
|
405
|
-
|
|
406
|
-
## 4. Checkpoints
|
|
407
|
-
|
|
408
|
-
- [ ] [P1] READY - Initial planning draft checkpoint
|
|
409
|
-
TASKEOF
|
|
410
|
-
;;
|
|
411
|
-
architect)
|
|
412
|
-
cat > "$ROLE_DIR/tasks.md" <<TASKEOF
|
|
413
|
-
# architect tasks
|
|
414
|
-
|
|
415
|
-
## 1. Spec
|
|
416
|
-
|
|
417
|
-
- [ ] 1.1 Define ownership boundaries, interfaces, and artifact responsibilities for \`${PLAN_SLUG}\`
|
|
418
|
-
- [ ] 1.2 Validate architecture constraints and non-functional requirements coverage
|
|
419
|
-
|
|
420
|
-
## 2. Tests
|
|
421
|
-
|
|
422
|
-
- [ ] 2.1 Define architectural verification checkpoints (integration boundaries, failure modes, compatibility)
|
|
423
|
-
- [ ] 2.2 Validate that acceptance criteria map to concrete architecture decisions
|
|
424
|
-
|
|
425
|
-
## 3. Implementation
|
|
426
|
-
|
|
427
|
-
- [ ] 3.1 Review plan for strongest antithesis/tradeoff tensions
|
|
428
|
-
- [ ] 3.2 Propose synthesis path and guardrails for implementation teams
|
|
429
|
-
- [ ] 3.3 Record architecture sign-off notes for downstream execution
|
|
430
|
-
|
|
431
|
-
## 4. Checkpoints
|
|
432
|
-
|
|
433
|
-
- [ ] [A1] READY - Architecture review checkpoint
|
|
434
|
-
TASKEOF
|
|
435
|
-
;;
|
|
436
|
-
critic)
|
|
437
|
-
cat > "$ROLE_DIR/tasks.md" <<TASKEOF
|
|
438
|
-
# critic tasks
|
|
439
|
-
|
|
440
|
-
## 1. Spec
|
|
441
|
-
|
|
442
|
-
- [ ] 1.1 Validate principle-driver-option consistency across the plan
|
|
443
|
-
- [ ] 1.2 Validate risks, consequences, and mitigation clarity (including idempotency expectations)
|
|
444
|
-
|
|
445
|
-
## 2. Tests
|
|
446
|
-
|
|
447
|
-
- [ ] 2.1 Validate testability and measurability of all acceptance criteria
|
|
448
|
-
- [ ] 2.2 Validate verification steps are concrete and reproducible
|
|
449
|
-
|
|
450
|
-
## 3. Implementation
|
|
451
|
-
|
|
452
|
-
- [ ] 3.1 Produce verdict (APPROVE / ITERATE / REJECT) with actionable feedback
|
|
453
|
-
- [ ] 3.2 Confirm revised drafts resolve prior findings before approval
|
|
454
|
-
- [ ] 3.3 Publish final quality/risk sign-off notes
|
|
455
|
-
|
|
456
|
-
## 4. Checkpoints
|
|
457
|
-
|
|
458
|
-
- [ ] [C1] READY - Quality gate checkpoint
|
|
459
|
-
TASKEOF
|
|
460
|
-
;;
|
|
461
|
-
executor)
|
|
462
|
-
cat > "$ROLE_DIR/tasks.md" <<TASKEOF
|
|
463
|
-
# executor tasks
|
|
464
|
-
|
|
465
|
-
## 1. Spec
|
|
466
|
-
|
|
467
|
-
- [ ] 1.1 Map approved plan requirements to concrete implementation work items
|
|
468
|
-
- [ ] 1.2 Validate touched components/files are explicitly listed before coding starts
|
|
469
|
-
|
|
470
|
-
## 2. Tests
|
|
471
|
-
|
|
472
|
-
- [ ] 2.1 Define test additions/updates required to lock intended behavior
|
|
473
|
-
- [ ] 2.2 Validate regression and smoke verification commands for delivery
|
|
474
|
-
|
|
475
|
-
## 3. Implementation
|
|
476
|
-
|
|
477
|
-
- [ ] 3.1 Execute implementation tasks in approved order
|
|
478
|
-
- [ ] 3.2 Keep progress and evidence linked back to plan checkpoints
|
|
479
|
-
- [ ] 3.3 Complete final verification bundle for handoff
|
|
480
|
-
|
|
481
|
-
## 4. Checkpoints
|
|
482
|
-
|
|
483
|
-
- [ ] [E1] READY - Execution start checkpoint
|
|
484
|
-
TASKEOF
|
|
485
|
-
;;
|
|
486
|
-
writer)
|
|
487
|
-
cat > "$ROLE_DIR/tasks.md" <<TASKEOF
|
|
488
|
-
# writer tasks
|
|
489
|
-
|
|
490
|
-
## 1. Spec
|
|
491
|
-
|
|
492
|
-
- [ ] 1.1 Validate documentation scope and audience for \`${PLAN_SLUG}\`
|
|
493
|
-
- [ ] 1.2 Validate consistency between plan terminology and OpenSpec artifacts
|
|
494
|
-
|
|
495
|
-
## 2. Tests
|
|
496
|
-
|
|
497
|
-
- [ ] 2.1 Define documentation verification checklist (accuracy, completeness, command correctness)
|
|
498
|
-
- [ ] 2.2 Validate command/help text examples against current workflow behavior
|
|
499
|
-
|
|
500
|
-
## 3. Implementation
|
|
501
|
-
|
|
502
|
-
- [ ] 3.1 Update workflow docs and command guidance for approved plan behavior
|
|
503
|
-
- [ ] 3.2 Add or refine examples for operator usage and handoff clarity
|
|
504
|
-
- [ ] 3.3 Publish final docs change summary with references
|
|
505
|
-
|
|
506
|
-
## 4. Checkpoints
|
|
507
|
-
|
|
508
|
-
- [ ] [W1] READY - Docs update checkpoint
|
|
509
|
-
TASKEOF
|
|
510
|
-
;;
|
|
511
|
-
verifier)
|
|
512
|
-
cat > "$ROLE_DIR/tasks.md" <<TASKEOF
|
|
513
|
-
# verifier tasks
|
|
514
|
-
|
|
515
|
-
## 1. Spec
|
|
516
|
-
|
|
517
|
-
- [ ] 1.1 Define end-to-end validation matrix for \`${PLAN_SLUG}\`
|
|
518
|
-
- [ ] 1.2 Validate success/failure conditions and evidence requirements
|
|
519
|
-
|
|
520
|
-
## 2. Tests
|
|
521
|
-
|
|
522
|
-
- [ ] 2.1 Execute verification commands and collect outputs
|
|
523
|
-
- [ ] 2.2 Validate idempotency/re-run behavior and error-path handling
|
|
524
|
-
|
|
525
|
-
## 3. Implementation
|
|
85
|
+
for role in "${ROLES[@]}"; do
|
|
86
|
+
ROLE_DIR="$PLAN_DIR/$role"
|
|
87
|
+
mkdir -p "$ROLE_DIR"
|
|
526
88
|
|
|
527
|
-
|
|
528
|
-
- [ ] 3.2 Produce pass/fail findings with concrete evidence links
|
|
529
|
-
- [ ] 3.3 Publish final verification sign-off (or blocker report)
|
|
89
|
+
write_if_missing "$ROLE_DIR/README.md" "# ${role}
|
|
530
90
|
|
|
531
|
-
|
|
91
|
+
Role workspace for \`${role}\`.
|
|
92
|
+
"
|
|
532
93
|
|
|
533
|
-
|
|
534
|
-
TASKEOF
|
|
535
|
-
;;
|
|
536
|
-
*)
|
|
537
|
-
cat > "$ROLE_DIR/tasks.md" <<TASKEOF
|
|
538
|
-
# ${role} tasks
|
|
94
|
+
write_if_missing "$ROLE_DIR/tasks.md" "# ${role} tasks
|
|
539
95
|
|
|
540
96
|
## 1. Spec
|
|
541
97
|
|
|
542
|
-
- [ ]
|
|
543
|
-
- [ ]
|
|
98
|
+
- [ ] Define requirements and scope for ${role}
|
|
99
|
+
- [ ] Confirm acceptance criteria are explicit and testable
|
|
544
100
|
|
|
545
101
|
## 2. Tests
|
|
546
102
|
|
|
547
|
-
- [ ]
|
|
548
|
-
- [ ]
|
|
103
|
+
- [ ] Define verification approach and evidence requirements
|
|
104
|
+
- [ ] List concrete commands for verification
|
|
549
105
|
|
|
550
106
|
## 3. Implementation
|
|
551
107
|
|
|
552
|
-
- [ ]
|
|
553
|
-
- [ ]
|
|
554
|
-
- [ ] 3.3 Mark completion with evidence links
|
|
108
|
+
- [ ] Execute role-specific deliverables
|
|
109
|
+
- [ ] Capture decisions, risks, and handoff notes
|
|
555
110
|
|
|
556
111
|
## 4. Checkpoints
|
|
557
112
|
|
|
558
|
-
- [ ]
|
|
559
|
-
|
|
560
|
-
;;
|
|
561
|
-
esac
|
|
562
|
-
fi
|
|
113
|
+
- [ ] Publish checkpoint update for this role
|
|
114
|
+
"
|
|
563
115
|
done
|
|
564
116
|
|
|
565
|
-
echo "
|
|
117
|
+
echo "[guardex] OpenSpec plan workspace ready: ${PLAN_DIR}"
|
|
118
|
+
echo "[guardex] Roles: ${ROLES[*]}"
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
|
-
INTERVAL_SECONDS="${
|
|
5
|
-
AGENT_NAME="${
|
|
6
|
-
TASK_PREFIX="${
|
|
7
|
-
STATE_FILE="${
|
|
8
|
-
BASE_BRANCH="${
|
|
9
|
-
ONLY_PR="${
|
|
10
|
-
RETRY_FAILED_RAW="${
|
|
11
|
-
INCLUDE_DRAFT_RAW="${
|
|
4
|
+
INTERVAL_SECONDS="${GUARDEX_REVIEW_BOT_INTERVAL_SECONDS:-30}"
|
|
5
|
+
AGENT_NAME="${GUARDEX_REVIEW_BOT_AGENT_NAME:-guardex-review-bot}"
|
|
6
|
+
TASK_PREFIX="${GUARDEX_REVIEW_BOT_TASK_PREFIX:-review-merge}"
|
|
7
|
+
STATE_FILE="${GUARDEX_REVIEW_BOT_STATE_FILE:-}"
|
|
8
|
+
BASE_BRANCH="${GUARDEX_REVIEW_BOT_BASE_BRANCH:-}"
|
|
9
|
+
ONLY_PR="${GUARDEX_REVIEW_BOT_ONLY_PR:-}"
|
|
10
|
+
RETRY_FAILED_RAW="${GUARDEX_REVIEW_BOT_RETRY_FAILED:-false}"
|
|
11
|
+
INCLUDE_DRAFT_RAW="${GUARDEX_REVIEW_BOT_INCLUDE_DRAFT:-false}"
|
|
12
12
|
|
|
13
13
|
usage() {
|
|
14
14
|
cat <<'USAGE'
|
|
@@ -30,7 +30,7 @@ Options:
|
|
|
30
30
|
-h, --help Show this help
|
|
31
31
|
|
|
32
32
|
Environment overrides:
|
|
33
|
-
|
|
33
|
+
GUARDEX_REVIEW_BOT_PROMPT_APPEND Additional instructions appended to each Codex prompt
|
|
34
34
|
USAGE
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -213,8 +213,8 @@ Strict task:
|
|
|
213
213
|
5) Do not touch unrelated PRs.
|
|
214
214
|
PROMPT
|
|
215
215
|
|
|
216
|
-
if [[ -n "${
|
|
217
|
-
printf '\n%s\n' "${
|
|
216
|
+
if [[ -n "${GUARDEX_REVIEW_BOT_PROMPT_APPEND:-}" ]]; then
|
|
217
|
+
printf '\n%s\n' "${GUARDEX_REVIEW_BOT_PROMPT_APPEND}"
|
|
218
218
|
fi
|
|
219
219
|
}
|
|
220
220
|
|