pluidr 0.7.6 → 0.8.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/LICENSE +20 -20
- package/README.md +409 -399
- package/bin/pluidr.js +3 -3
- package/package.json +1 -1
- package/src/cli/commands/doctor.js +137 -134
- package/src/cli/commands/init.js +146 -47
- package/src/cli/commands/launch.js +101 -50
- package/src/cli/commands/theme.js +91 -0
- package/src/cli/commands/theme.test.js +28 -0
- package/src/cli/commands/uninstall.js +109 -90
- package/src/cli/commands/update.js +9 -9
- package/src/cli/index.js +63 -57
- package/src/cli/wizard/selectModelTier.js +40 -40
- package/src/core/agentPromptWriter.js +49 -32
- package/src/core/agentPromptWriter.test.js +56 -56
- package/src/core/animation.js +84 -0
- package/src/core/animation.test.js +118 -0
- package/src/core/backup.js +46 -46
- package/src/core/commandsWriter.js +26 -0
- package/src/core/commandsWriter.test.js +29 -0
- package/src/core/configBuilder.js +32 -32
- package/src/core/configBuilder.test.js +93 -93
- package/src/core/configWriter.js +10 -10
- package/src/core/configWriter.test.js +1 -1
- package/src/core/identityHeader.js +8 -8
- package/src/core/paths.js +13 -11
- package/src/core/paths.test.js +33 -29
- package/src/core/pluginWriter.js +43 -29
- package/src/core/skillsWriter.js +21 -0
- package/src/core/skillsWriter.test.js +30 -0
- package/src/core/squeezeInstaller.js +158 -158
- package/src/core/squeezeInstaller.test.js +79 -79
- package/src/core/themeWriter.js +18 -4
- package/src/core/themeWriter.test.js +2 -2
- package/src/core/tuiConfigWriter.js +22 -3
- package/src/core/tuiConfigWriter.test.js +11 -5
- package/src/core/version.js +8 -8
- package/src/core/versionCheck.js +44 -44
- package/src/plugins/README.md +57 -68
- package/src/plugins/pluidr-squeeze.js +77 -77
- package/src/templates/agent-prompts/analyze.txt +49 -0
- package/src/templates/agent-prompts/builder.txt +10 -0
- package/src/templates/agent-prompts/compose.txt +50 -0
- package/src/templates/agent-prompts/debug.txt +49 -0
- package/src/templates/agent-prompts/explorer.txt +10 -0
- package/src/templates/agent-prompts/hierarchy.txt +101 -95
- package/src/templates/agent-prompts/reporter.txt +10 -0
- package/src/templates/agent-prompts/verifier.txt +10 -0
- package/src/templates/commands/squeeze-dashboard.md +5 -0
- package/src/templates/commands/squeeze-health.md +10 -0
- package/src/templates/commands/squeeze-quick.md +10 -0
- package/src/templates/model-defaults.json +59 -73
- package/src/templates/opencode.config.json +243 -572
- package/src/templates/skills/brooks-lint-rca/SKILL.md +48 -0
- package/src/templates/skills/codebase-fact-finding/SKILL.md +39 -0
- package/src/templates/skills/diff-review/SKILL.md +42 -0
- package/src/templates/skills/general-coding/SKILL.md +44 -0
- package/src/templates/skills/minimal-fixing/SKILL.md +25 -0
- package/src/templates/skills/plan-checking/SKILL.md +33 -0
- package/src/templates/{agent-prompts/patcher.txt → skills/ponytail-patching/SKILL.md} +20 -20
- package/src/templates/skills/prd-formatting/SKILL.md +45 -0
- package/src/templates/skills/refactoring-patterns/SKILL.md +37 -0
- package/src/templates/skills/security-auditing/SKILL.md +35 -0
- package/src/templates/skills/security-remediation/SKILL.md +37 -0
- package/src/templates/skills/summary-reporting/SKILL.md +83 -0
- package/src/templates/skills/test-assurance/SKILL.md +48 -0
- package/src/templates/skills/test-mocking-strategy/SKILL.md +18 -0
- package/src/templates/skills/ui-design-audit/SKILL.md +23 -0
- package/src/templates/skills/ui-design-system/SKILL.md +37 -0
- package/src/templates/{agent-prompts/tracer.txt → skills/wstg-recon/SKILL.md} +33 -33
- package/src/templates/themes/pluidr-colorful.json +241 -0
- package/src/templates/themes/{pluidr-contrast.json → pluidr-dark.json} +68 -68
- package/src/templates/themes/pluidr-light.json +241 -0
- package/src/templates/agent-prompts/auditor.txt +0 -20
- package/src/templates/agent-prompts/coder.txt +0 -88
- package/src/templates/agent-prompts/compose-reporter.txt +0 -55
- package/src/templates/agent-prompts/composer.txt +0 -414
- package/src/templates/agent-prompts/debug-reporter.txt +0 -65
- package/src/templates/agent-prompts/debugger.txt +0 -149
- package/src/templates/agent-prompts/fixer.txt +0 -66
- package/src/templates/agent-prompts/inspector.txt +0 -79
- package/src/templates/agent-prompts/plan-checker.txt +0 -45
- package/src/templates/agent-prompts/plan-writer.txt +0 -57
- package/src/templates/agent-prompts/probe-reporter.txt +0 -62
- package/src/templates/agent-prompts/prober.txt +0 -93
- package/src/templates/agent-prompts/researcher.txt +0 -48
- package/src/templates/agent-prompts/reviewer.txt +0 -57
- package/src/templates/agent-prompts/tester.txt +0 -66
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opencode.ai/theme.json",
|
|
3
|
+
"theme": {
|
|
4
|
+
"primary": {
|
|
5
|
+
"dark": "#0f4a85",
|
|
6
|
+
"light": "#0f4a85"
|
|
7
|
+
},
|
|
8
|
+
"secondary": {
|
|
9
|
+
"dark": "#811f3f",
|
|
10
|
+
"light": "#811f3f"
|
|
11
|
+
},
|
|
12
|
+
"accent": {
|
|
13
|
+
"dark": "#0f4a85",
|
|
14
|
+
"light": "#0f4a85"
|
|
15
|
+
},
|
|
16
|
+
"error": {
|
|
17
|
+
"dark": "#b5200d",
|
|
18
|
+
"light": "#b5200d"
|
|
19
|
+
},
|
|
20
|
+
"warning": {
|
|
21
|
+
"dark": "#c69026",
|
|
22
|
+
"light": "#c69026"
|
|
23
|
+
},
|
|
24
|
+
"success": {
|
|
25
|
+
"dark": "#096d48",
|
|
26
|
+
"light": "#096d48"
|
|
27
|
+
},
|
|
28
|
+
"info": {
|
|
29
|
+
"dark": "#0f4a85",
|
|
30
|
+
"light": "#0f4a85"
|
|
31
|
+
},
|
|
32
|
+
"text": {
|
|
33
|
+
"dark": "#111827",
|
|
34
|
+
"light": "#111827"
|
|
35
|
+
},
|
|
36
|
+
"textMuted": {
|
|
37
|
+
"dark": "#6b7280",
|
|
38
|
+
"light": "#6b7280"
|
|
39
|
+
},
|
|
40
|
+
"background": {
|
|
41
|
+
"dark": "#ffffff",
|
|
42
|
+
"light": "#ffffff"
|
|
43
|
+
},
|
|
44
|
+
"backgroundPanel": {
|
|
45
|
+
"dark": "#f3f4f6",
|
|
46
|
+
"light": "#f3f4f6"
|
|
47
|
+
},
|
|
48
|
+
"backgroundElement": {
|
|
49
|
+
"dark": "#e5e7eb",
|
|
50
|
+
"light": "#e5e7eb"
|
|
51
|
+
},
|
|
52
|
+
"border": {
|
|
53
|
+
"dark": "#d1d5db",
|
|
54
|
+
"light": "#d1d5db"
|
|
55
|
+
},
|
|
56
|
+
"borderActive": {
|
|
57
|
+
"dark": "#0f4a85",
|
|
58
|
+
"light": "#0f4a85"
|
|
59
|
+
},
|
|
60
|
+
"borderSubtle": {
|
|
61
|
+
"dark": "#e5e7eb",
|
|
62
|
+
"light": "#e5e7eb"
|
|
63
|
+
},
|
|
64
|
+
"diffAdded": {
|
|
65
|
+
"dark": "#096d48",
|
|
66
|
+
"light": "#096d48"
|
|
67
|
+
},
|
|
68
|
+
"diffRemoved": {
|
|
69
|
+
"dark": "#b5200d",
|
|
70
|
+
"light": "#b5200d"
|
|
71
|
+
},
|
|
72
|
+
"diffContext": {
|
|
73
|
+
"dark": "#6b7280",
|
|
74
|
+
"light": "#6b7280"
|
|
75
|
+
},
|
|
76
|
+
"diffAddedBg": {
|
|
77
|
+
"dark": "#eafaf1",
|
|
78
|
+
"light": "#eafaf1"
|
|
79
|
+
},
|
|
80
|
+
"diffRemovedBg": {
|
|
81
|
+
"dark": "#fdecee",
|
|
82
|
+
"light": "#fdecee"
|
|
83
|
+
},
|
|
84
|
+
"diffContextBg": {
|
|
85
|
+
"dark": "#ffffff",
|
|
86
|
+
"light": "#ffffff"
|
|
87
|
+
},
|
|
88
|
+
"markdownText": {
|
|
89
|
+
"dark": "#111827",
|
|
90
|
+
"light": "#111827"
|
|
91
|
+
},
|
|
92
|
+
"markdownHeading": {
|
|
93
|
+
"dark": "#0f4a85",
|
|
94
|
+
"light": "#0f4a85"
|
|
95
|
+
},
|
|
96
|
+
"markdownLink": {
|
|
97
|
+
"dark": "#811f3f",
|
|
98
|
+
"light": "#811f3f"
|
|
99
|
+
},
|
|
100
|
+
"markdownLinkText": {
|
|
101
|
+
"dark": "#0f4a85",
|
|
102
|
+
"light": "#0f4a85"
|
|
103
|
+
},
|
|
104
|
+
"markdownCode": {
|
|
105
|
+
"dark": "#096d48",
|
|
106
|
+
"light": "#096d48"
|
|
107
|
+
},
|
|
108
|
+
"markdownBlockQuote": {
|
|
109
|
+
"dark": "#6b7280",
|
|
110
|
+
"light": "#6b7280"
|
|
111
|
+
},
|
|
112
|
+
"markdownStrong": {
|
|
113
|
+
"dark": "#0f4a85",
|
|
114
|
+
"light": "#0f4a85"
|
|
115
|
+
},
|
|
116
|
+
"syntaxComment": {
|
|
117
|
+
"dark": "#6b7280",
|
|
118
|
+
"light": "#6b7280"
|
|
119
|
+
},
|
|
120
|
+
"syntaxKeyword": {
|
|
121
|
+
"dark": "#0f4a85",
|
|
122
|
+
"light": "#0f4a85"
|
|
123
|
+
},
|
|
124
|
+
"syntaxFunction": {
|
|
125
|
+
"dark": "#264f78",
|
|
126
|
+
"light": "#264f78"
|
|
127
|
+
},
|
|
128
|
+
"syntaxVariable": {
|
|
129
|
+
"dark": "#111827",
|
|
130
|
+
"light": "#111827"
|
|
131
|
+
},
|
|
132
|
+
"syntaxString": {
|
|
133
|
+
"dark": "#a31515",
|
|
134
|
+
"light": "#a31515"
|
|
135
|
+
},
|
|
136
|
+
"syntaxNumber": {
|
|
137
|
+
"dark": "#096d48",
|
|
138
|
+
"light": "#096d48"
|
|
139
|
+
},
|
|
140
|
+
"syntaxType": {
|
|
141
|
+
"dark": "#264f78",
|
|
142
|
+
"light": "#264f78"
|
|
143
|
+
},
|
|
144
|
+
"syntaxOperator": {
|
|
145
|
+
"dark": "#111827",
|
|
146
|
+
"light": "#111827"
|
|
147
|
+
},
|
|
148
|
+
"syntaxPunctuation": {
|
|
149
|
+
"dark": "#111827",
|
|
150
|
+
"light": "#111827"
|
|
151
|
+
},
|
|
152
|
+
"inputBackground": {
|
|
153
|
+
"dark": "#ffffff",
|
|
154
|
+
"light": "#ffffff"
|
|
155
|
+
},
|
|
156
|
+
"InputBorder": {
|
|
157
|
+
"dark": "#d1d5db",
|
|
158
|
+
"light": "#d1d5db"
|
|
159
|
+
},
|
|
160
|
+
"InputBorderActive": {
|
|
161
|
+
"dark": "#0f4a85",
|
|
162
|
+
"light": "#0f4a85"
|
|
163
|
+
},
|
|
164
|
+
"inputPrompt": {
|
|
165
|
+
"dark": "#0f4a85",
|
|
166
|
+
"light": "#0f4a85"
|
|
167
|
+
},
|
|
168
|
+
"inputCursor": {
|
|
169
|
+
"dark": "#0f4a85",
|
|
170
|
+
"light": "#0f4a85"
|
|
171
|
+
},
|
|
172
|
+
"inputText": {
|
|
173
|
+
"dark": "#111827",
|
|
174
|
+
"light": "#111827"
|
|
175
|
+
},
|
|
176
|
+
"backgroundMenu": {
|
|
177
|
+
"dark": "#f3f4f6",
|
|
178
|
+
"light": "#f3f4f6"
|
|
179
|
+
},
|
|
180
|
+
"diffAddedLineNumberBg": {
|
|
181
|
+
"dark": "#eafaf1",
|
|
182
|
+
"light": "#eafaf1"
|
|
183
|
+
},
|
|
184
|
+
"diffHighlightAdded": {
|
|
185
|
+
"dark": "#096d48",
|
|
186
|
+
"light": "#096d48"
|
|
187
|
+
},
|
|
188
|
+
"diffHighlightRemoved": {
|
|
189
|
+
"dark": "#b5200d",
|
|
190
|
+
"light": "#b5200d"
|
|
191
|
+
},
|
|
192
|
+
"diffHunkHeader": {
|
|
193
|
+
"dark": "#0f4a85",
|
|
194
|
+
"light": "#0f4a85"
|
|
195
|
+
},
|
|
196
|
+
"diffLineNumber": {
|
|
197
|
+
"dark": "#6b7280",
|
|
198
|
+
"light": "#6b7280"
|
|
199
|
+
},
|
|
200
|
+
"diffRemovedLineNumberBg": {
|
|
201
|
+
"dark": "#fdecee",
|
|
202
|
+
"light": "#fdecee"
|
|
203
|
+
},
|
|
204
|
+
"markdownCodeBlock": {
|
|
205
|
+
"dark": "#f3f4f6",
|
|
206
|
+
"light": "#f3f4f6"
|
|
207
|
+
},
|
|
208
|
+
"markdownEmph": {
|
|
209
|
+
"dark": "#811f3f",
|
|
210
|
+
"light": "#811f3f"
|
|
211
|
+
},
|
|
212
|
+
"markdownHorizontalRule": {
|
|
213
|
+
"dark": "#d1d5db",
|
|
214
|
+
"light": "#d1d5db"
|
|
215
|
+
},
|
|
216
|
+
"markdownImage": {
|
|
217
|
+
"dark": "#811f3f",
|
|
218
|
+
"light": "#811f3f"
|
|
219
|
+
},
|
|
220
|
+
"markdownImageText": {
|
|
221
|
+
"dark": "#811f3f",
|
|
222
|
+
"light": "#811f3f"
|
|
223
|
+
},
|
|
224
|
+
"markdownListEnumeration": {
|
|
225
|
+
"dark": "#0f4a85",
|
|
226
|
+
"light": "#0f4a85"
|
|
227
|
+
},
|
|
228
|
+
"markdownListItem": {
|
|
229
|
+
"dark": "#111827",
|
|
230
|
+
"light": "#111827"
|
|
231
|
+
},
|
|
232
|
+
"placeholderText": {
|
|
233
|
+
"dark": "#9ca3af",
|
|
234
|
+
"light": "#9ca3af"
|
|
235
|
+
},
|
|
236
|
+
"selectedListItemText": {
|
|
237
|
+
"dark": "#ffffff",
|
|
238
|
+
"light": "#ffffff"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Role: Auditor Subagent
|
|
2
|
-
|
|
3
|
-
You are the **Auditor** subagent for the **Prober** agent. You act as a strict validation gate checking if security patches have resolved the vulnerabilities and ensuring no over-engineering was introduced.
|
|
4
|
-
|
|
5
|
-
## Auditor MUST NOT
|
|
6
|
-
- Propose remedies, suggest code adjustments, or edit code.
|
|
7
|
-
|
|
8
|
-
## Auditor MAY ONLY
|
|
9
|
-
- Inspect modified codebase files and run test commands to verify vulnerability elimination.
|
|
10
|
-
- Perform a security regression review: ensure the applied patches did not introduce new vulnerability pathways (e.g., input bypasses or insecure error handling).
|
|
11
|
-
- Perform an over-engineering review (Ponytail audit lens).
|
|
12
|
-
|
|
13
|
-
## Ponytail Audit Lens (Bloat Analysis)
|
|
14
|
-
Analyze changes for cognitive overload, accidental complexity, or redundant logic. Compile a list of unrequested abstractions, boilerplate, or excessive lines.
|
|
15
|
-
|
|
16
|
-
## Output Format
|
|
17
|
-
Your output must consist ONLY of:
|
|
18
|
-
- **Verdict**: PASS or FAIL
|
|
19
|
-
- **Gap List**: Specific files/lines where vulnerabilities are still active or regression was detected (FAIL cases only).
|
|
20
|
-
- **BLOAT List**: List of over-engineered constructs found in the patches.
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# Role: Coder Subagent
|
|
2
|
-
|
|
3
|
-
You implement tasks assigned by Composer. If a PRD is provided, follow it exactly. If no PRD is provided (e.g., during a direct-build phase for simple tasks), follow the user's original specification and the Explore findings provided in the task payload verbatim. You manage your own task tracking internally via `todowrite` -- this is not a persisted document, it's your working checklist for the current session.
|
|
4
|
-
|
|
5
|
-
Refer to `hierarchy.txt` (loaded globally) for conflict resolution.
|
|
6
|
-
|
|
7
|
-
## Principles
|
|
8
|
-
|
|
9
|
-
**KISS**
|
|
10
|
-
- Choose the simplest implementation that satisfies the requirement.
|
|
11
|
-
- If a more complex approach is chosen, explain why in a comment.
|
|
12
|
-
|
|
13
|
-
**DRY**
|
|
14
|
-
- Before writing new logic, check if equivalent logic already exists.
|
|
15
|
-
- If duplication is unavoidable in this pass, flag it.
|
|
16
|
-
|
|
17
|
-
**Fail Fast / Defensive Programming**
|
|
18
|
-
- Validate all inputs at function/API boundaries.
|
|
19
|
-
- Never assume upstream data is valid -- raise explicit errors.
|
|
20
|
-
|
|
21
|
-
**SOLID -- Dependency Inversion**
|
|
22
|
-
- Depend on abstractions (interfaces, protocols) not concrete implementations,
|
|
23
|
-
especially for external services (DB, API clients).
|
|
24
|
-
|
|
25
|
-
**Clean Code**
|
|
26
|
-
- Meaningful names -- no abbreviations unless domain-standard (e.g., `id`, `db`).
|
|
27
|
-
- Small functions -- one function does one thing.
|
|
28
|
-
- No hidden side effects.
|
|
29
|
-
- Minimize comments -- code should be self-explanatory; comment only "why", not "what".
|
|
30
|
-
|
|
31
|
-
**Single Level of Abstraction**
|
|
32
|
-
- A function should not mix high-level orchestration with low-level details
|
|
33
|
-
(e.g., business logic + raw SQL in the same function).
|
|
34
|
-
|
|
35
|
-
## Delegation rules
|
|
36
|
-
|
|
37
|
-
You have no `task` permission -- you cannot invoke any other agent or
|
|
38
|
-
subagent. If implementation reveals a need for research (e.g., unclear
|
|
39
|
-
library behavior) or a requirement question, stop and report back to
|
|
40
|
-
Composer rather than guessing or trying to research it yourself outside
|
|
41
|
-
your given tools.
|
|
42
|
-
|
|
43
|
-
## Task tracking
|
|
44
|
-
|
|
45
|
-
- Use `todowrite` to break the assigned task(s) into a working checklist
|
|
46
|
-
before starting implementation.
|
|
47
|
-
- Update status as you progress. This is for session visibility, not a
|
|
48
|
-
deliverable -- do not write it to a file.
|
|
49
|
-
|
|
50
|
-
## What you do NOT do
|
|
51
|
-
|
|
52
|
-
- You do not change the requirement -- if the PRD task is ambiguous or
|
|
53
|
-
infeasible as written, stop and report back to Composer rather than
|
|
54
|
-
reinterpreting it.
|
|
55
|
-
- You do not produce documentation -- that's Compose-Reporter's job.
|
|
56
|
-
|
|
57
|
-
## Output
|
|
58
|
-
|
|
59
|
-
- Code changes, with a brief note on any deviation from the assigned task (if any).
|
|
60
|
-
- Flag any duplicated logic found during implementation.
|
|
61
|
-
|
|
62
|
-
## Efficiency Constraints
|
|
63
|
-
|
|
64
|
-
**Decision Ladder**
|
|
65
|
-
Before writing any code, stop at the first rung that holds:
|
|
66
|
-
1. Does this need to be built at all? (YAGNI)
|
|
67
|
-
2. Does it already exist in this codebase? Reuse the helper, util, or pattern that's already here, don't re-write it.
|
|
68
|
-
3. Does the standard library already do this? Use it.
|
|
69
|
-
4. Does a native platform feature cover it? Use it.
|
|
70
|
-
5. Does an already-installed dependency solve it? Use it.
|
|
71
|
-
6. Can this be one line? Make it one line.
|
|
72
|
-
7. Only then: write the minimum code that works.
|
|
73
|
-
|
|
74
|
-
The ladder runs after you understand the problem: read the task and the code it touches, trace the real flow end to end, then climb.
|
|
75
|
-
|
|
76
|
-
**Never-Simplify Rules (Not Lazy About)**
|
|
77
|
-
- Understanding the problem: Trace the real flow before coding.
|
|
78
|
-
- Input validation at trust boundaries.
|
|
79
|
-
- Error handling that prevents data loss.
|
|
80
|
-
- Security and accessibility.
|
|
81
|
-
- Anything explicitly requested.
|
|
82
|
-
- No abstractions that weren't explicitly requested.
|
|
83
|
-
- No new dependency if it can be avoided.
|
|
84
|
-
- No boilerplate nobody asked for.
|
|
85
|
-
- Deletion over addition. Boring over clever. Fewest files possible.
|
|
86
|
-
|
|
87
|
-
**Simplification Comment Convention**
|
|
88
|
-
- Mark intentional simplifications with a `simplification:` comment. If the shortcut has a known ceiling (global lock, O(n²) scan, naive heuristic), the comment must name the ceiling and the upgrade path.
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# Role: Compose-Reporter Subagent
|
|
2
|
-
|
|
3
|
-
You are the **Compose-Reporter** subagent, the text-file executor for the **Composer**
|
|
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
|
-
|
|
7
|
-
## Mode: Document Creation / Editing
|
|
8
|
-
|
|
9
|
-
You create and modify documentation files (.md, .txt) as instructed by
|
|
10
|
-
Composer. You may also be invoked in Summary mode to produce completion
|
|
11
|
-
reports from structured input.
|
|
12
|
-
|
|
13
|
-
## Delegation rules
|
|
14
|
-
|
|
15
|
-
You have no `task` permission -- you cannot invoke any other agent or
|
|
16
|
-
subagent. If Composer'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 Composer 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.
|
|
25
|
-
|
|
26
|
-
## Compose-Reporter MUST NOT
|
|
27
|
-
|
|
28
|
-
- Make inferences about what the user "probably means."
|
|
29
|
-
- Make decisions (e.g., which approach is better).
|
|
30
|
-
- Add analysis, recommendations, or opinions.
|
|
31
|
-
- Fill missing information with assumptions -- mark as `TBD` instead.
|
|
32
|
-
- Run bash commands -- you have no `bash` permission.
|
|
33
|
-
|
|
34
|
-
## Compose-Reporter MAY ONLY
|
|
35
|
-
|
|
36
|
-
- Write and edit `.md` and `.txt` files as instructed.
|
|
37
|
-
- Reformat / restructure given input into the target document type.
|
|
38
|
-
- Flag missing required fields explicitly (`TBD`).
|
|
39
|
-
|
|
40
|
-
## Output Format (Summary/Report mode)
|
|
41
|
-
|
|
42
|
-
```markdown
|
|
43
|
-
# Report: <subject>
|
|
44
|
-
|
|
45
|
-
## For: <audience, as specified by caller>
|
|
46
|
-
|
|
47
|
-
## Outcome
|
|
48
|
-
<PASS/FAIL or completion status, as given>
|
|
49
|
-
|
|
50
|
-
## Details
|
|
51
|
-
<compressed from input, no added interpretation>
|
|
52
|
-
```
|
|
53
|
-
|
|
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...".
|