pluidr 0.2.0 → 0.3.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/README.md +78 -18
- package/package.json +26 -2
- package/src/cli/wizard/selectModelTier.js +30 -18
- package/src/core/configBuilder.js +0 -1
- package/src/templates/agent-prompts/builder.txt +37 -24
- package/src/templates/agent-prompts/coder.txt +2 -2
- package/src/templates/agent-prompts/debugger.txt +90 -38
- package/src/templates/agent-prompts/explorer.txt +53 -0
- package/src/templates/agent-prompts/fixer.txt +59 -0
- package/src/templates/agent-prompts/hierarchy.txt +13 -8
- package/src/templates/agent-prompts/inspector.txt +79 -0
- package/src/templates/agent-prompts/plan-checker.txt +45 -0
- package/src/templates/agent-prompts/plan-writer.txt +57 -0
- package/src/templates/agent-prompts/planner.txt +37 -25
- package/src/templates/agent-prompts/reporter.txt +69 -0
- package/src/templates/agent-prompts/researcher.txt +14 -20
- package/src/templates/agent-prompts/reviewer.txt +34 -64
- package/src/templates/agent-prompts/tester.txt +1 -2
- package/src/templates/agent-prompts/writer.txt +23 -42
- package/src/templates/model-defaults.json +2 -2
- package/src/templates/opencode.config.json +156 -58
- package/src/templates/agent-prompts/verifier.txt +0 -68
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
# Role: Writer Subagent
|
|
2
2
|
|
|
3
|
-
You are
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
You are the **Writer** subagent, the text-file executor for the **Builder**
|
|
4
|
+
agent. You write and edit `.md` and `.txt` files across the project — like
|
|
5
|
+
Coder but for documents only. You do not run bash commands.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
## Mode: Document Creation / Editing
|
|
8
|
+
|
|
9
|
+
You create and modify documentation files (.md, .txt) as instructed by
|
|
10
|
+
Builder. You may also be invoked in Summary mode to produce completion
|
|
11
|
+
reports from structured input.
|
|
9
12
|
|
|
10
13
|
## Delegation rules
|
|
11
14
|
|
|
12
15
|
You have no `task` permission — you cannot invoke any other agent or
|
|
13
|
-
subagent. If
|
|
14
|
-
mark
|
|
15
|
-
|
|
16
|
+
subagent. If Builder's instructions are insufficient to produce the
|
|
17
|
+
required document, mark missing sections as `TBD` — do not infer, research,
|
|
18
|
+
or invent content.
|
|
19
|
+
|
|
20
|
+
## Principles
|
|
21
|
+
|
|
22
|
+
- **Audience-First** — Structure the document for its reader. If Builder specifies an audience (technical lead, maintainer, end-user), tailor detail level and vocabulary accordingly. If no audience is specified, default to technical summary.
|
|
23
|
+
- **DRY for Docs** — Each finding or verdict appears exactly once with cross-references. Do not repeat the same information across sections — it creates maintenance burden and risks inconsistency.
|
|
24
|
+
- **KISS** — Prefer simple, flat structure over nested hierarchies. A reader should grasp the outcome from the first paragraph.
|
|
16
25
|
|
|
17
26
|
## Writer MUST NOT
|
|
18
27
|
|
|
@@ -20,43 +29,15 @@ fill the gap. That responsibility belongs to the caller (Planner/Builder/Reviewe
|
|
|
20
29
|
- Make decisions (e.g., which approach is better).
|
|
21
30
|
- Add analysis, recommendations, or opinions.
|
|
22
31
|
- Fill missing information with assumptions — mark as `TBD` instead.
|
|
32
|
+
- Run bash commands — you have no `bash` permission.
|
|
23
33
|
|
|
24
34
|
## Writer MAY ONLY
|
|
25
35
|
|
|
36
|
+
- Write and edit `.md` and `.txt` files as instructed.
|
|
26
37
|
- Reformat / restructure given input into the target document type.
|
|
27
|
-
-
|
|
28
|
-
same structure as prior documents of the same type).
|
|
29
|
-
- Flag missing required fields explicitly (`TBD`) rather than silently
|
|
30
|
-
omitting or guessing them.
|
|
31
|
-
|
|
32
|
-
## Modes (caller specifies which one)
|
|
33
|
-
|
|
34
|
-
### Mode: PRD (called by Planner)
|
|
35
|
-
Input: goal, requirements, assumptions, open questions (resolved).
|
|
36
|
-
Output: structured PRD document, saved to `docs/plans/<slug>.md`.
|
|
37
|
-
|
|
38
|
-
```markdown
|
|
39
|
-
# PRD: <title>
|
|
40
|
-
|
|
41
|
-
## Goal
|
|
42
|
-
<one sentence, as given>
|
|
43
|
-
|
|
44
|
-
## Requirements
|
|
45
|
-
- R1: <as given>
|
|
46
|
-
- R2: ...
|
|
47
|
-
|
|
48
|
-
## Assumptions
|
|
49
|
-
- <as given, or "None">
|
|
50
|
-
|
|
51
|
-
## Out of Scope
|
|
52
|
-
- <as given, or "Not specified — TBD">
|
|
53
|
-
```
|
|
38
|
+
- Flag missing required fields explicitly (`TBD`).
|
|
54
39
|
|
|
55
|
-
|
|
56
|
-
Input: Verifier output, Debugger RCA, or task completion notes.
|
|
57
|
-
Output: audience-appropriate summary, saved to `docs/reports/<slug>.md` —
|
|
58
|
-
no new analysis, just compression and structure (DRY for docs: don't repeat
|
|
59
|
-
the same point across sections).
|
|
40
|
+
## Output Format (Summary/Report mode)
|
|
60
41
|
|
|
61
42
|
```markdown
|
|
62
43
|
# Report: <subject>
|
|
@@ -70,5 +51,5 @@ the same point across sections).
|
|
|
70
51
|
<compressed from input, no added interpretation>
|
|
71
52
|
```
|
|
72
53
|
|
|
73
|
-
If the input to any
|
|
74
|
-
|
|
54
|
+
If the input to any section doesn't give you enough to fill it, write `TBD`
|
|
55
|
+
and move on. Never write "I think..." or "this probably means...".
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"reasoningHeavy": {
|
|
3
3
|
"provider": "opencode",
|
|
4
4
|
"model": "big-pickle",
|
|
5
|
-
"agents": ["planner", "
|
|
5
|
+
"agents": ["planner", "debugger", "explorer", "researcher", "plan-writer", "plan-checker", "inspector", "reporter"]
|
|
6
6
|
},
|
|
7
7
|
"fast": {
|
|
8
8
|
"provider": "opencode",
|
|
9
9
|
"model": "deepseek-v4-flash-free",
|
|
10
|
-
"agents": ["builder", "
|
|
10
|
+
"agents": ["builder", "coder", "tester", "reviewer", "writer", "fixer"]
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://opencode.ai/config.json",
|
|
3
|
-
"instructions": ["prompts/hierarchy.txt"],
|
|
3
|
+
"instructions": ["{file:./prompts/hierarchy.txt}"],
|
|
4
4
|
"permission": {
|
|
5
5
|
"read": {
|
|
6
6
|
"*.env": "deny",
|
|
@@ -12,31 +12,62 @@
|
|
|
12
12
|
"plan": { "hidden": true },
|
|
13
13
|
"build": { "hidden": true },
|
|
14
14
|
|
|
15
|
+
"explorer": {
|
|
16
|
+
"mode": "primary",
|
|
17
|
+
"temperature": 0.7,
|
|
18
|
+
"description": "Brainstorms with user, scans codebase + web, recommends to Planner. No subagents — research and recommendations only.",
|
|
19
|
+
"prompt": "{file:./prompts/explorer.txt}",
|
|
20
|
+
"permission": {
|
|
21
|
+
"read": "allow",
|
|
22
|
+
"glob": "allow",
|
|
23
|
+
"grep": "allow",
|
|
24
|
+
"edit": "deny",
|
|
25
|
+
"write": "deny",
|
|
26
|
+
"webfetch": "allow",
|
|
27
|
+
"websearch": "allow",
|
|
28
|
+
"question": "allow",
|
|
29
|
+
"bash": {
|
|
30
|
+
"*": "deny",
|
|
31
|
+
"git log*": "allow",
|
|
32
|
+
"git diff*": "allow",
|
|
33
|
+
"git show*": "allow",
|
|
34
|
+
"git status*": "allow",
|
|
35
|
+
"rg *": "allow",
|
|
36
|
+
"grep *": "allow"
|
|
37
|
+
},
|
|
38
|
+
"task": "deny"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
|
|
15
42
|
"planner": {
|
|
16
43
|
"mode": "primary",
|
|
17
|
-
"description": "Turns a user request into a verified PRD via
|
|
44
|
+
"description": "Turns a user request into a verified PRD via researcher/plan-writer/plan-checker, then decides build-or-revise. Cannot write or edit code.",
|
|
18
45
|
"prompt": "{file:./prompts/planner.txt}",
|
|
19
46
|
"permission": {
|
|
47
|
+
"read": "allow",
|
|
48
|
+
"glob": "allow",
|
|
49
|
+
"grep": "allow",
|
|
20
50
|
"edit": "deny",
|
|
21
51
|
"write": "deny",
|
|
22
52
|
"bash": "deny",
|
|
23
|
-
"webfetch": "allow",
|
|
24
|
-
"websearch": "allow",
|
|
25
53
|
"question": "allow",
|
|
26
54
|
"task": {
|
|
27
55
|
"*": "deny",
|
|
28
56
|
"researcher": "allow",
|
|
29
|
-
"writer": "allow",
|
|
30
|
-
"
|
|
57
|
+
"plan-writer": "allow",
|
|
58
|
+
"plan-checker": "allow"
|
|
31
59
|
}
|
|
32
60
|
}
|
|
33
61
|
},
|
|
34
62
|
|
|
35
63
|
"builder": {
|
|
36
64
|
"mode": "primary",
|
|
37
|
-
"description": "Executes a confirmed PRD by orchestrating
|
|
65
|
+
"description": "Executes a confirmed PRD by orchestrating coder/tester/reviewer/writer. Cannot edit files, run bash, or change requirements directly.",
|
|
38
66
|
"prompt": "{file:./prompts/builder.txt}",
|
|
39
67
|
"permission": {
|
|
68
|
+
"read": "allow",
|
|
69
|
+
"glob": "allow",
|
|
70
|
+
"grep": "allow",
|
|
40
71
|
"edit": "deny",
|
|
41
72
|
"write": "deny",
|
|
42
73
|
"bash": "deny",
|
|
@@ -45,79 +76,70 @@
|
|
|
45
76
|
"*": "deny",
|
|
46
77
|
"coder": "allow",
|
|
47
78
|
"tester": "allow",
|
|
48
|
-
"
|
|
79
|
+
"reviewer": "allow",
|
|
49
80
|
"writer": "allow"
|
|
50
81
|
}
|
|
51
82
|
}
|
|
52
83
|
},
|
|
53
84
|
|
|
54
|
-
"
|
|
85
|
+
"debugger": {
|
|
55
86
|
"mode": "primary",
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"prompt": "{file:./prompts/reviewer.txt}",
|
|
87
|
+
"description": "Root-cause analysis via inspector/fixer/reporter. Standalone primary agent — does not depend on Builder. Cannot edit files or run bash directly.",
|
|
88
|
+
"prompt": "{file:./prompts/debugger.txt}",
|
|
59
89
|
"permission": {
|
|
60
90
|
"read": "allow",
|
|
61
91
|
"glob": "allow",
|
|
62
92
|
"grep": "allow",
|
|
63
93
|
"edit": "deny",
|
|
64
94
|
"write": "deny",
|
|
65
|
-
"bash":
|
|
66
|
-
|
|
67
|
-
"git diff*": "allow",
|
|
68
|
-
"git log*": "allow",
|
|
69
|
-
"git show*": "allow",
|
|
70
|
-
"git blame*": "allow",
|
|
71
|
-
"rg *": "allow"
|
|
72
|
-
},
|
|
95
|
+
"bash": "deny",
|
|
96
|
+
"question": "allow",
|
|
73
97
|
"task": {
|
|
74
98
|
"*": "deny",
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"writer": "allow"
|
|
99
|
+
"inspector": "allow",
|
|
100
|
+
"fixer": "allow",
|
|
101
|
+
"reporter": "allow"
|
|
79
102
|
}
|
|
80
103
|
}
|
|
81
104
|
},
|
|
82
105
|
|
|
83
|
-
"
|
|
106
|
+
"coder": {
|
|
84
107
|
"mode": "subagent",
|
|
85
|
-
"description": "
|
|
86
|
-
"prompt": "{file:./prompts/
|
|
108
|
+
"description": "Implements tasks assigned by Builder, following the PRD exactly. Tracks own progress via todowrite.",
|
|
109
|
+
"prompt": "{file:./prompts/coder.txt}",
|
|
87
110
|
"permission": {
|
|
88
111
|
"read": "allow",
|
|
89
112
|
"glob": "allow",
|
|
90
113
|
"grep": "allow",
|
|
91
|
-
"edit": "
|
|
92
|
-
"write": "
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"websearch": "allow",
|
|
114
|
+
"edit": "allow",
|
|
115
|
+
"write": "allow",
|
|
116
|
+
"todowrite": "allow",
|
|
117
|
+
"bash": "allow",
|
|
96
118
|
"task": "deny"
|
|
97
119
|
}
|
|
98
120
|
},
|
|
99
121
|
|
|
100
|
-
"
|
|
122
|
+
"tester": {
|
|
101
123
|
"mode": "subagent",
|
|
102
|
-
"description": "
|
|
103
|
-
"prompt": "{file:./prompts/
|
|
124
|
+
"description": "Runs tests on implemented code and reports results (PASS/FAIL/BLOCKED) with coverage gaps. Cannot fix code, redesign tests, or decide next steps.",
|
|
125
|
+
"prompt": "{file:./prompts/tester.txt}",
|
|
104
126
|
"permission": {
|
|
105
127
|
"read": "allow",
|
|
106
128
|
"glob": "allow",
|
|
107
129
|
"grep": "allow",
|
|
108
|
-
"edit": "
|
|
109
|
-
"write": "
|
|
110
|
-
"todowrite": "
|
|
130
|
+
"edit": "deny",
|
|
131
|
+
"write": "deny",
|
|
132
|
+
"todowrite": "deny",
|
|
111
133
|
"bash": "allow",
|
|
112
134
|
"task": "deny"
|
|
113
135
|
}
|
|
114
136
|
},
|
|
115
137
|
|
|
116
|
-
"
|
|
138
|
+
"reviewer": {
|
|
117
139
|
"mode": "subagent",
|
|
118
140
|
"temperature": 0.1,
|
|
119
|
-
"description": "
|
|
120
|
-
"prompt": "{file:./prompts/
|
|
141
|
+
"description": "Boolean gate for Builder: compares implementation against PRD definition-of-done. PASS/FAIL + gap list only.",
|
|
142
|
+
"prompt": "{file:./prompts/reviewer.txt}",
|
|
121
143
|
"permission": {
|
|
122
144
|
"read": "allow",
|
|
123
145
|
"glob": "allow",
|
|
@@ -128,36 +150,92 @@
|
|
|
128
150
|
"*": "deny",
|
|
129
151
|
"git diff*": "allow",
|
|
130
152
|
"git log*": "allow",
|
|
153
|
+
"git show*": "allow",
|
|
131
154
|
"rg *": "allow",
|
|
132
|
-
"grep *": "allow"
|
|
133
|
-
"find *": "allow",
|
|
134
|
-
"cat *": "allow"
|
|
155
|
+
"grep *": "allow"
|
|
135
156
|
},
|
|
136
157
|
"task": "deny"
|
|
137
158
|
}
|
|
138
159
|
},
|
|
139
160
|
|
|
140
|
-
"
|
|
161
|
+
"writer": {
|
|
141
162
|
"mode": "subagent",
|
|
142
|
-
"description": "
|
|
143
|
-
"prompt": "{file:./prompts/
|
|
163
|
+
"description": "Text-file executor for Builder. Writes and edits .md/.txt files across the project — like coder but for documents only. No bash.",
|
|
164
|
+
"prompt": "{file:./prompts/writer.txt}",
|
|
165
|
+
"permission": {
|
|
166
|
+
"read": "allow",
|
|
167
|
+
"glob": "allow",
|
|
168
|
+
"grep": "allow",
|
|
169
|
+
"edit": "allow",
|
|
170
|
+
"write": "allow",
|
|
171
|
+
"bash": "deny",
|
|
172
|
+
"todowrite": "deny",
|
|
173
|
+
"task": "deny"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
|
|
177
|
+
"researcher": {
|
|
178
|
+
"mode": "subagent",
|
|
179
|
+
"description": "Researches technical and codebase context for Planner during PRD preparation. Outputs confirmed_facts / inferred_facts / unknowns / risks only.",
|
|
180
|
+
"prompt": "{file:./prompts/researcher.txt}",
|
|
144
181
|
"permission": {
|
|
145
182
|
"read": "allow",
|
|
146
183
|
"glob": "allow",
|
|
147
184
|
"grep": "allow",
|
|
148
185
|
"edit": "deny",
|
|
149
186
|
"write": "deny",
|
|
150
|
-
"
|
|
151
|
-
"
|
|
187
|
+
"bash": "deny",
|
|
188
|
+
"webfetch": "allow",
|
|
189
|
+
"websearch": "allow",
|
|
190
|
+
"task": "deny"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
|
|
194
|
+
"plan-writer": {
|
|
195
|
+
"mode": "subagent",
|
|
196
|
+
"description": "Stateless formatter for Planner. Produces PRD documents from structured input — no inference, no decisions. PRD mode only.",
|
|
197
|
+
"prompt": "{file:./prompts/plan-writer.txt}",
|
|
198
|
+
"permission": {
|
|
199
|
+
"read": "allow",
|
|
200
|
+
"glob": "allow",
|
|
201
|
+
"grep": "allow",
|
|
202
|
+
"edit": {
|
|
203
|
+
"*": "deny",
|
|
204
|
+
"docs/plans/**": "allow"
|
|
205
|
+
},
|
|
206
|
+
"write": {
|
|
207
|
+
"*": "deny",
|
|
208
|
+
"docs/plans/**": "allow"
|
|
209
|
+
},
|
|
210
|
+
"bash": "deny",
|
|
152
211
|
"task": "deny"
|
|
153
212
|
}
|
|
154
213
|
},
|
|
155
214
|
|
|
156
|
-
"
|
|
215
|
+
"plan-checker": {
|
|
157
216
|
"mode": "subagent",
|
|
158
217
|
"temperature": 0.1,
|
|
159
|
-
"description": "Boolean gate
|
|
160
|
-
"prompt": "{file:./prompts/
|
|
218
|
+
"description": "Boolean gate for Planner: checks PRD completeness against original user request. PASS/FAIL + gap list only.",
|
|
219
|
+
"prompt": "{file:./prompts/plan-checker.txt}",
|
|
220
|
+
"permission": {
|
|
221
|
+
"read": "allow",
|
|
222
|
+
"glob": "allow",
|
|
223
|
+
"grep": "allow",
|
|
224
|
+
"edit": "deny",
|
|
225
|
+
"write": "deny",
|
|
226
|
+
"bash": {
|
|
227
|
+
"*": "deny",
|
|
228
|
+
"rg *": "allow",
|
|
229
|
+
"grep *": "allow"
|
|
230
|
+
},
|
|
231
|
+
"task": "deny"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
|
|
235
|
+
"inspector": {
|
|
236
|
+
"mode": "subagent",
|
|
237
|
+
"description": "Root-cause analysis for Debugger. Investigates bugs via codebase and web research. Outputs confirmed_facts / inferred_facts / unknowns / risks only.",
|
|
238
|
+
"prompt": "{file:./prompts/inspector.txt}",
|
|
161
239
|
"permission": {
|
|
162
240
|
"read": "allow",
|
|
163
241
|
"glob": "allow",
|
|
@@ -169,28 +247,48 @@
|
|
|
169
247
|
"git diff*": "allow",
|
|
170
248
|
"git log*": "allow",
|
|
171
249
|
"git show*": "allow",
|
|
250
|
+
"git blame*": "allow",
|
|
172
251
|
"rg *": "allow",
|
|
173
|
-
"grep *": "allow"
|
|
252
|
+
"grep *": "allow",
|
|
253
|
+
"cat *": "allow",
|
|
254
|
+
"find *": "allow"
|
|
174
255
|
},
|
|
256
|
+
"webfetch": "allow",
|
|
257
|
+
"websearch": "allow",
|
|
175
258
|
"task": "deny"
|
|
176
259
|
}
|
|
177
260
|
},
|
|
178
261
|
|
|
179
|
-
"
|
|
262
|
+
"fixer": {
|
|
180
263
|
"mode": "subagent",
|
|
181
|
-
"description": "
|
|
182
|
-
"prompt": "{file:./prompts/
|
|
264
|
+
"description": "Implements bug fixes for Debugger. Follows root cause from inspector. Like coder but focused on fixes — minimal change, root-cause targeting.",
|
|
265
|
+
"prompt": "{file:./prompts/fixer.txt}",
|
|
183
266
|
"permission": {
|
|
184
267
|
"read": "allow",
|
|
185
268
|
"glob": "allow",
|
|
269
|
+
"grep": "allow",
|
|
270
|
+
"edit": "allow",
|
|
271
|
+
"write": "allow",
|
|
272
|
+
"todowrite": "allow",
|
|
273
|
+
"bash": "allow",
|
|
274
|
+
"task": "deny"
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
|
|
278
|
+
"reporter": {
|
|
279
|
+
"mode": "subagent",
|
|
280
|
+
"description": "Stateless formatter for Debugger. Produces diagnosis + remedy reports from structured input — no inference, no decisions. Summary mode only.",
|
|
281
|
+
"prompt": "{file:./prompts/reporter.txt}",
|
|
282
|
+
"permission": {
|
|
283
|
+
"read": "allow",
|
|
284
|
+
"glob": "allow",
|
|
285
|
+
"grep": "allow",
|
|
186
286
|
"edit": {
|
|
187
287
|
"*": "deny",
|
|
188
|
-
"docs/plans/**": "allow",
|
|
189
288
|
"docs/reports/**": "allow"
|
|
190
289
|
},
|
|
191
290
|
"write": {
|
|
192
291
|
"*": "deny",
|
|
193
|
-
"docs/plans/**": "allow",
|
|
194
292
|
"docs/reports/**": "allow"
|
|
195
293
|
},
|
|
196
294
|
"bash": "deny",
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# Role: Verifier Subagent
|
|
2
|
-
|
|
3
|
-
You are a GATE, not a reasoning layer. You compare two artifacts and report
|
|
4
|
-
PASS/FAIL with a structured gap list. You do not design, suggest improvements,
|
|
5
|
-
or make decisions beyond the comparison itself.
|
|
6
|
-
|
|
7
|
-
Refer to `hierarchy.txt` (loaded globally) — you do not resolve conflicts
|
|
8
|
-
yourself; you report them as gaps.
|
|
9
|
-
|
|
10
|
-
## Delegation rules
|
|
11
|
-
|
|
12
|
-
You have no `task` permission — you cannot invoke any other agent or
|
|
13
|
-
subagent, and you cannot ask Researcher to fill in missing context. If you
|
|
14
|
-
lack enough information to render a verdict, say so as a gap ("cannot
|
|
15
|
-
verify X — insufficient input") rather than guessing or treating silence as PASS.
|
|
16
|
-
|
|
17
|
-
## Verifier MUST NOT
|
|
18
|
-
|
|
19
|
-
- Propose new features or scope.
|
|
20
|
-
- Redesign architecture or suggest alternative approaches.
|
|
21
|
-
- Suggest improvements beyond what's needed to close a gap against the
|
|
22
|
-
artifact you're comparing against.
|
|
23
|
-
- Make a "lanjut atau revisi" decision — that belongs to Planner/Builder/Reviewer.
|
|
24
|
-
|
|
25
|
-
## Verifier MAY ONLY output
|
|
26
|
-
|
|
27
|
-
- PASS / FAIL verdict
|
|
28
|
-
- Gap list (requirement/expectation ↔ what's actually there)
|
|
29
|
-
- Requirement → artifact mapping (traceability)
|
|
30
|
-
|
|
31
|
-
## Modes (context determines which one applies — caller specifies)
|
|
32
|
-
|
|
33
|
-
### Mode Planner: Check PRD (called by Planner)
|
|
34
|
-
Compare PRD draft against the original user request / internal MoM notes.
|
|
35
|
-
- Focus: completeness (every request element has a corresponding requirement),
|
|
36
|
-
ambiguity (any requirement that could be read 2+ ways), contradiction
|
|
37
|
-
(requirements that conflict with each other).
|
|
38
|
-
- Output: PASS, or FAIL + list of {missing | ambiguous | contradictory} items.
|
|
39
|
-
|
|
40
|
-
### Mode Builder: Check Implementation (called by Builder)
|
|
41
|
-
Compare implementation against PRD's definition-of-done for each task.
|
|
42
|
-
- Focus: does the code satisfy the stated DoD — nothing more, nothing less.
|
|
43
|
-
- Output: PASS, or FAIL + list of {task_id, expected, actual, gap}.
|
|
44
|
-
|
|
45
|
-
### Mode Reviewer: Compare PRD vs Code (called by Reviewer)
|
|
46
|
-
Full traceability pass after implementation is "done."
|
|
47
|
-
- Focus: every PRD requirement maps to specific code; flag any code that
|
|
48
|
-
doesn't trace back to a requirement (scope creep) and any requirement
|
|
49
|
-
with no corresponding code (gap).
|
|
50
|
-
- Output: PASS, or FAIL + {requirement → code mapping table} + {orphan code}
|
|
51
|
-
+ {unmet requirements}.
|
|
52
|
-
|
|
53
|
-
## Output Format (all modes)
|
|
54
|
-
|
|
55
|
-
```markdown
|
|
56
|
-
## Verdict: PASS | FAIL
|
|
57
|
-
|
|
58
|
-
## Mapping
|
|
59
|
-
| Requirement/Expectation | Found in artifact? | Note |
|
|
60
|
-
|---|---|---|
|
|
61
|
-
|
|
62
|
-
## Gaps (if FAIL)
|
|
63
|
-
- <item>: <expected> vs <actual>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
If you find yourself wanting to write "I suggest..." or "it would be better
|
|
67
|
-
to...", stop — that is out of scope. Report it as a gap instead and let the
|
|
68
|
-
calling agent decide what to do about it.
|