pluidr 0.7.4 → 0.7.6
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 +246 -211
- package/package.json +1 -1
- package/src/core/versionCheck.js +2 -2
- package/src/plugins/README.md +9 -9
- package/src/templates/agent-prompts/coder.txt +10 -10
- package/src/templates/agent-prompts/compose-reporter.txt +8 -8
- package/src/templates/agent-prompts/composer.txt +69 -74
- package/src/templates/agent-prompts/debug-reporter.txt +10 -10
- package/src/templates/agent-prompts/debugger.txt +49 -43
- package/src/templates/agent-prompts/fixer.txt +11 -11
- package/src/templates/agent-prompts/hierarchy.txt +15 -16
- package/src/templates/agent-prompts/inspector.txt +11 -11
- package/src/templates/agent-prompts/plan-checker.txt +9 -9
- package/src/templates/agent-prompts/plan-writer.txt +7 -7
- package/src/templates/agent-prompts/probe-reporter.txt +8 -8
- package/src/templates/agent-prompts/prober.txt +29 -22
- package/src/templates/agent-prompts/researcher.txt +10 -10
- package/src/templates/agent-prompts/reviewer.txt +10 -10
- package/src/templates/agent-prompts/tester.txt +10 -10
- package/src/templates/opencode.config.json +103 -16
package/README.md
CHANGED
|
@@ -4,225 +4,260 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/pluidr)
|
|
5
5
|
[](https://github.com/funara/pluidr/blob/main/LICENSE)
|
|
6
6
|
|
|
7
|
-
** Plan
|
|
7
|
+
** Plan - Build - Review ** -- opinionated engineering workflow installer for [OpenCode](https://opencode.ai).
|
|
8
|
+
|
|
9
|
+
## TL;DR
|
|
10
|
+
|
|
11
|
+
Pluidr installs an opinionated, strict AI-agent workflow (Composer, Debugger, and Prober) with 14 specialized subagents into **OpenCode**. It enforces structured phases (Explore -> Plan -> Build), interactive guardrail gates, and test verification without ad-hoc delegation.
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
Get up and running in 3 simple steps:
|
|
16
|
+
|
|
17
|
+
1. **Install globally:**
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g pluidr
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. **Initialize and configure agents:**
|
|
23
|
+
```bash
|
|
24
|
+
pluidr init
|
|
25
|
+
```
|
|
26
|
+
*(Select LLM models for reasoning, precision, and fast tiers when prompted)*
|
|
27
|
+
|
|
28
|
+
3. **Launch OpenCode with Pluidr:**
|
|
29
|
+
```bash
|
|
30
|
+
pluidr
|
|
31
|
+
```
|
|
8
32
|
|
|
9
33
|
---
|
|
10
34
|
|
|
11
35
|
## What is Pluidr?
|
|
12
36
|
|
|
13
|
-
Pluidr installs **3 primary agents + 14 subagents** into OpenCode
|
|
37
|
+
Pluidr installs **3 primary agents + 14 subagents** into OpenCode -- each primary agent owns its exclusive subagents, scoped permissions, and enforced workflow rules. No shared subagents. No ad-hoc delegation.
|
|
14
38
|
|
|
15
39
|
| Primary Agent | Purpose | Subagents |
|
|
16
40
|
|---|---|---|
|
|
17
|
-
| **Composer** | Feature work
|
|
18
|
-
| **Debugger** | Bug investigation
|
|
19
|
-
| **Prober** | Security audit
|
|
41
|
+
| **Composer** | Feature work -- Explore -> Plan -> Build | Researcher, Plan-Writer, Plan-Checker, Coder, Tester, Reviewer, Compose-Reporter |
|
|
42
|
+
| **Debugger** | Bug investigation -- Investigate -> Fix -> Report | Inspector, Fixer, Debug-Reporter |
|
|
43
|
+
| **Prober** | Security audit -- Trace -> Patch -> Audit | Tracer, Patcher, Auditor, Probe-Reporter |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### Parallel Subagent Swarming
|
|
48
|
+
|
|
49
|
+
To optimize wall-clock execution time, Pluidr's primary agents are empowered to **swarm multiple subagents concurrently** (e.g. running multiple researchers, inspectors, tracers, coders, fixers, patchers, testers, or auditors in parallel) for independent directories, files, or API endpoints. This enables non-linear workflow execution and leverages OpenCode's concurrent process engine.
|
|
20
50
|
|
|
21
51
|
---
|
|
22
52
|
|
|
23
53
|
## Agent Workflows
|
|
24
54
|
|
|
25
|
-
###
|
|
55
|
+
### Composer -- Feature Work
|
|
26
56
|
|
|
27
|
-
Composer is the **single entry point for all feature work**. It runs 3 strict, one-directional phases. Phase direction is one-way
|
|
57
|
+
Composer is the **single entry point for all feature work**. It runs 3 strict, one-directional phases. Phase direction is one-way -- no going back without explicit user instruction.
|
|
28
58
|
|
|
29
59
|
```
|
|
30
60
|
You describe a feature / idea
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
61
|
+
|
|
|
62
|
+
v
|
|
63
|
+
+-----------------------------------------+
|
|
64
|
+
| EXPLORE PHASE (mandatory start) |
|
|
65
|
+
| |
|
|
66
|
+
| Delegate: Researcher |
|
|
67
|
+
| -> deep codebase + web fact-finding |
|
|
68
|
+
| -> confirmed-inferred facts / risks |
|
|
69
|
+
| |
|
|
70
|
+
| Composer internally assesses: |
|
|
71
|
+
| Is this feature simple or complex? |
|
|
72
|
+
+----------+------------------------------+
|
|
73
|
+
|
|
|
74
|
+
+--------+---------------+
|
|
75
|
+
| Simple feature | Complex feature
|
|
76
|
+
v v
|
|
47
77
|
GUARDRAIL GATE 1a GUARDRAIL GATE 1b
|
|
48
78
|
"Build directly?" "Write a PRD?"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
| |
|
|
80
|
+
| Yes | Yes
|
|
81
|
+
| v
|
|
82
|
+
| +------------------------------+
|
|
83
|
+
| | PLAN PHASE |
|
|
84
|
+
| | |
|
|
85
|
+
| | Plan-Writer -> docs/plans/ |
|
|
86
|
+
| | Plan-Checker validates PRD |
|
|
87
|
+
| | PASS/FAIL + gap list only |
|
|
88
|
+
| | |
|
|
89
|
+
| | FAIL -> surface gaps to you |
|
|
90
|
+
| | (max 5 loops) |
|
|
91
|
+
| | |
|
|
92
|
+
| | PASS -> GUARDRAIL GATE 2 |
|
|
93
|
+
| | "Build from this PRD?" |
|
|
94
|
+
| +-------------+----------------+
|
|
95
|
+
| | Yes
|
|
96
|
+
+----------+-------------+
|
|
97
|
+
v
|
|
98
|
+
+--------------------------------------------+
|
|
99
|
+
| BUILD PHASE |
|
|
100
|
+
| |
|
|
101
|
+
| Coder -> implements from PRD / request |
|
|
102
|
+
| | |
|
|
103
|
+
| v |
|
|
104
|
+
| Tester -> PASS/FAIL/BLOCKED |
|
|
105
|
+
| | FAIL -> back to Coder (max 5 loops) |
|
|
106
|
+
| | PASS v |
|
|
107
|
+
| v |
|
|
108
|
+
| Reviewer -> PASS/FAIL + gap list |
|
|
109
|
+
| | FAIL -> back to Coder (max 5 loops) |
|
|
110
|
+
| | PASS v |
|
|
111
|
+
| v |
|
|
112
|
+
| Compose-Reporter -> docs/reports/ |
|
|
113
|
+
+--------------------------------------------+
|
|
114
|
+
|
|
|
115
|
+
v
|
|
86
116
|
You review result
|
|
87
|
-
|
|
88
|
-
Composer resets
|
|
117
|
+
|
|
|
118
|
+
Composer resets -> asks: New feature? Debug? Iterate?
|
|
89
119
|
```
|
|
90
120
|
|
|
91
121
|
**Key rules:**
|
|
92
|
-
- Composer has **no read/write/bash permissions**
|
|
93
|
-
- Phase transition only via guardrail gates
|
|
94
|
-
- `Coder
|
|
95
|
-
- 5 consecutive FAILs from Tester or Reviewer
|
|
122
|
+
- Composer has **no read/write/bash permissions** -- all work delegated to subagents
|
|
123
|
+
- Phase transition only via guardrail gates -- no skipping
|
|
124
|
+
- `Coder -> Coder` loops without Tester verification are forbidden
|
|
125
|
+
- 5 consecutive FAILs from Tester or Reviewer -> surfaces to you
|
|
96
126
|
|
|
97
127
|
---
|
|
98
128
|
|
|
99
|
-
###
|
|
129
|
+
### Debugger -- Bug Investigation
|
|
100
130
|
|
|
101
|
-
Debugger is a **standalone primary agent**
|
|
131
|
+
Debugger is a **standalone primary agent** -- does not depend on Composer. Trigger it directly from the Debugger tab whenever you find a bug.
|
|
102
132
|
|
|
103
133
|
```
|
|
104
134
|
You report a bug / defect
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
135
|
+
|
|
|
136
|
+
v
|
|
137
|
+
GUARDRAIL GATE 1 (question tool):
|
|
138
|
+
"Ready to investigate?"
|
|
139
|
+
| Yes
|
|
140
|
+
v
|
|
141
|
+
+---------------------------------------------+
|
|
142
|
+
| INVESTIGATE PHASE (Inspector subagent) |
|
|
143
|
+
| |
|
|
144
|
+
| Review mode (Debugger selects): |
|
|
145
|
+
| - PR Review -> classify R1-R6 |
|
|
146
|
+
| - Architecture -> dependency analysis |
|
|
147
|
+
| - Tech Debt -> Pain x Spread score |
|
|
148
|
+
| - Test Quality -> classify T1-T6 |
|
|
149
|
+
| |
|
|
150
|
+
| Output: Iron Law chain per finding |
|
|
151
|
+
| Symptom -> Source -> Consequence -> Remedy |
|
|
152
|
+
+----------+----------------------------------+
|
|
153
|
+
|
|
|
121
154
|
Root cause identified?
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
│
|
|
144
|
-
▼
|
|
155
|
+
+--------+--------+
|
|
156
|
+
| Yes | No / unknowns remain
|
|
157
|
+
v v
|
|
158
|
+
GUARDRAIL GATE 2 (question tool):
|
|
159
|
+
"Ready to apply fix?"
|
|
160
|
+
| Yes Halt -- surface to you
|
|
161
|
+
v with specific questions
|
|
162
|
+
+-------------+
|
|
163
|
+
| FIX PHASE | (Fixer subagent)
|
|
164
|
+
+------+------+
|
|
165
|
+
|
|
|
166
|
+
v
|
|
167
|
+
+--------------------------------------+
|
|
168
|
+
| REPORT PHASE |
|
|
169
|
+
| |
|
|
170
|
+
| Delegate: Debug-Reporter |
|
|
171
|
+
| -> Iron Law diagnosis report |
|
|
172
|
+
| -> saved to docs/reports/ |
|
|
173
|
+
+--------------------------------------+
|
|
174
|
+
|
|
|
175
|
+
v
|
|
145
176
|
You review the diagnosis + fix
|
|
146
|
-
|
|
147
|
-
Debugger resets
|
|
177
|
+
|
|
|
178
|
+
Debugger resets -> asks (question tool): Finished? Iterate?
|
|
148
179
|
```
|
|
149
180
|
|
|
150
181
|
**Key rules:**
|
|
151
|
-
- Debugger has **no read/write/bash permissions**
|
|
182
|
+
- Debugger has **no read/write/bash permissions** -- all delegated to subagents
|
|
183
|
+
- Executes only after Gate 1 (Investigation) and Gate 2 (Fix) user confirmations
|
|
152
184
|
- Never delegates Fixer without Inspector confirming root cause first
|
|
153
|
-
- If unknowns remain after investigation
|
|
185
|
+
- If unknowns remain after investigation -> halts and prompts you, does not guess
|
|
154
186
|
|
|
155
187
|
---
|
|
156
188
|
|
|
157
|
-
###
|
|
189
|
+
### Prober -- Security Audit
|
|
158
190
|
|
|
159
|
-
Prober is a **standalone primary agent**
|
|
191
|
+
Prober is a **standalone primary agent** -- does not depend on Composer or Debugger. Trigger it directly from the Prober tab to audit any codebase for security vulnerabilities and quality decay.
|
|
160
192
|
|
|
161
193
|
```
|
|
162
194
|
You trigger a security audit
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
195
|
+
|
|
|
196
|
+
v
|
|
197
|
+
GUARDRAIL GATE 1 (question tool):
|
|
198
|
+
"Ready to start scan?"
|
|
199
|
+
| Yes
|
|
200
|
+
v
|
|
201
|
+
+---------------------------------------------------+
|
|
202
|
+
| TRACE PHASE (Tracer subagent) |
|
|
203
|
+
| |
|
|
204
|
+
| -> WSTG-guided breadth-first recon |
|
|
205
|
+
| -> trace data flows: input -> path -> sink |
|
|
206
|
+
| |
|
|
207
|
+
| Output: |
|
|
208
|
+
| - Confirmed Vulnerabilities (OWASP category, |
|
|
209
|
+
| location, data flow) |
|
|
210
|
+
| - Suspected Vulnerabilities (manual verify) |
|
|
211
|
+
| - Quality & Decay Risks (e.g. hardcoded |
|
|
212
|
+
| secrets, missing input validation) |
|
|
213
|
+
+----------+----------------------------------------+
|
|
214
|
+
|
|
|
215
|
+
v
|
|
216
|
+
GUARDRAIL GATE 2 (question tool):
|
|
182
217
|
"Audit findings ready. How to proceed?"
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
Prober resets
|
|
218
|
+
+-- "Patch all confirmed findings" -> PATCH PHASE
|
|
219
|
+
+-- "Select specific findings" -> PATCH PHASE (you pick)
|
|
220
|
+
+-- "Audit only -- no patches" -> AUDIT PHASE (skip PATCH)
|
|
221
|
+
+-- "Re-investigate attack surface" -> re-delegate Tracer
|
|
222
|
+
|
|
|
223
|
+
v
|
|
224
|
+
+--------------------------------------------------+
|
|
225
|
+
| PATCH PHASE (skipped if audit-only) |
|
|
226
|
+
| |
|
|
227
|
+
| Delegate: Patcher |
|
|
228
|
+
| -> Ponytail mindset: smallest correct diff |
|
|
229
|
+
| -> prefer deleting the cause over wrapping it |
|
|
230
|
+
| -> escalates to you if patch > 10 lines |
|
|
231
|
+
+----------+---------------------------------------+
|
|
232
|
+
|
|
|
233
|
+
v
|
|
234
|
+
+--------------------------------------------------+
|
|
235
|
+
| AUDIT PHASE (max 5 loops) |
|
|
236
|
+
| |
|
|
237
|
+
| Delegate: Auditor |
|
|
238
|
+
| -> verify patch resolved vulnerabilities |
|
|
239
|
+
| -> security regression check |
|
|
240
|
+
| | (Auditor subagent) |
|
|
241
|
+
| |
|
|
242
|
+
| PASS -> proceed to report |
|
|
243
|
+
| FAIL -> re-delegate Patcher with Gap + BLOAT |
|
|
244
|
+
| lists verbatim (max 5 loops, then you) |
|
|
245
|
+
| |
|
|
246
|
+
| Delegate: Probe-Reporter |
|
|
247
|
+
| -> security audit report -> docs/reports/ |
|
|
248
|
+
+--------------------------------------------------+
|
|
249
|
+
|
|
|
250
|
+
v
|
|
251
|
+
You review the audit report
|
|
252
|
+
|
|
|
253
|
+
Prober resets -> asks (question tool): Finished? Iterate?
|
|
219
254
|
```
|
|
220
255
|
|
|
221
256
|
**Key rules:**
|
|
222
|
-
- Prober has **no read/write/bash permissions**
|
|
223
|
-
-
|
|
224
|
-
- GUARDRAIL GATE
|
|
225
|
-
- 5 consecutive AUDIT FAILs
|
|
257
|
+
- Prober has **no read/write/bash permissions** -- all delegated to subagents
|
|
258
|
+
- Never starts scanning/tracing without Gate 1 user confirmation
|
|
259
|
+
- Never patches without a GUARDRAIL GATE 2 user confirmation after TRACE
|
|
260
|
+
- 5 consecutive AUDIT FAILs -> surfaces to you
|
|
226
261
|
|
|
227
262
|
---
|
|
228
263
|
|
|
@@ -232,20 +267,20 @@ Each subagent belongs to exactly one primary agent and cannot be invoked by anyo
|
|
|
232
267
|
|
|
233
268
|
| Primary | Phase | Subagent | Model Tier | Role |
|
|
234
269
|
|---------|-------|----------|------------|------|
|
|
235
|
-
| Composer | EXPLORE | Researcher |
|
|
236
|
-
| Composer | PLAN | Plan-Writer |
|
|
237
|
-
| Composer | PLAN | Plan-Checker |
|
|
238
|
-
| Composer | BUILD | Coder |
|
|
239
|
-
| Composer | BUILD | Tester |
|
|
240
|
-
| Composer | BUILD | Reviewer |
|
|
241
|
-
| Composer | BUILD | Compose-Reporter |
|
|
242
|
-
| Debugger | INVESTIGATE | Inspector |
|
|
243
|
-
| Debugger | FIX | Fixer |
|
|
244
|
-
| Debugger | REPORT | Debug-Reporter |
|
|
245
|
-
| Prober | TRACE | Tracer |
|
|
246
|
-
| Prober | PATCH | Patcher |
|
|
247
|
-
| Prober | AUDIT | Auditor |
|
|
248
|
-
| Prober | AUDIT | Probe-Reporter |
|
|
270
|
+
| Composer | EXPLORE | Researcher | Reasoning | Fact-finding: confirmed_facts / inferred_facts / unknowns / risks |
|
|
271
|
+
| Composer | PLAN | Plan-Writer | Fast | **Formatter** -- writes PRD to `docs/plans/`, missing input = TBD |
|
|
272
|
+
| Composer | PLAN | Plan-Checker | Reasoning | **Gate** -- PASS/FAIL + gap list only, no suggestions |
|
|
273
|
+
| Composer | BUILD | Coder | Fast | Implements code from PRD |
|
|
274
|
+
| Composer | BUILD | Tester | Precision | PASS/FAIL/BLOCKED + coverage gaps only |
|
|
275
|
+
| Composer | BUILD | Reviewer | Precision | **Gate** -- PASS/FAIL + gap list only, no suggestions |
|
|
276
|
+
| Composer | BUILD | Compose-Reporter | Fast | **Formatter** -- completion report to `docs/reports/` |
|
|
277
|
+
| Debugger | INVESTIGATE | Inspector | Reasoning | Brooks-Lint RCA (Iron Law + 6 decay risks + 4 review modes) |
|
|
278
|
+
| Debugger | FIX | Fixer | Fast | Minimal, root-cause-targeted fix |
|
|
279
|
+
| Debugger | REPORT | Debug-Reporter | Fast | **Formatter** -- Iron Law diagnosis report to `docs/reports/` |
|
|
280
|
+
| Prober | TRACE | Tracer | Precision | WSTG recon + vuln path tracing, no remedies |
|
|
281
|
+
| Prober | PATCH | Patcher | Fast | Minimal, security-targeted fix (Ponytail, max 10 lines) |
|
|
282
|
+
| Prober | AUDIT | Auditor | Precision | **Gate** -- PASS/FAIL + Gap List + BLOAT List only |
|
|
283
|
+
| Prober | AUDIT | Probe-Reporter | Fast | **Formatter** -- security audit report to `docs/reports/` |
|
|
249
284
|
|
|
250
285
|
---
|
|
251
286
|
|
|
@@ -254,14 +289,14 @@ Each subagent belongs to exactly one primary agent and cannot be invoked by anyo
|
|
|
254
289
|
| Rule | Detail |
|
|
255
290
|
|------|--------|
|
|
256
291
|
| **Mandatory starts** | Composer always starts in EXPLORE. Prober always starts in TRACE. No skipping. |
|
|
257
|
-
| **Guardrail gates** | Composer: Gate 1 (EXPLORE
|
|
258
|
-
| **Gate agents** | Plan-Checker, Reviewer, Auditor
|
|
259
|
-
| **Formatter agents** | Plan-Writer, Compose-Reporter, Debug-Reporter, Probe-Reporter
|
|
260
|
-
| **Fact-finding agents** | Researcher, Inspector, Tracer
|
|
261
|
-
| **Build gate order** | Coder
|
|
292
|
+
| **Guardrail gates** | Composer: Gate 1 (EXPLORE->PLAN/BUILD), Gate 2 (PLAN->BUILD). Prober: Gate after TRACE. All require user confirmation. |
|
|
293
|
+
| **Gate agents** | Plan-Checker, Reviewer, Auditor -- PASS/FAIL + gap list only. No suggestions, no decisions. |
|
|
294
|
+
| **Formatter agents** | Plan-Writer, Compose-Reporter, Debug-Reporter, Probe-Reporter -- stateless. Missing input = TBD/NA. Never invent content. |
|
|
295
|
+
| **Fact-finding agents** | Researcher, Inspector, Tracer -- facts/inferences/risks only. No recommendations. |
|
|
296
|
+
| **Build gate order** | Coder -> Tester -> Reviewer -> Compose-Reporter. No skipping. No Coder->Coder without verification. |
|
|
262
297
|
| **FAIL loops** | Plan-Checker FAIL: max 5 loops. Build FAIL (Tester/Reviewer): max 5 loops. Prober AUDIT FAIL: max 5 loops. All surface to you after limit. |
|
|
263
|
-
| **Output directories** | PRDs
|
|
264
|
-
| **Independence** | Debugger and Prober are fully standalone
|
|
298
|
+
| **Output directories** | PRDs -> `docs/plans/`. Reports (Compose-Reporter, Debug-Reporter, Probe-Reporter) -> `docs/reports/`. Enforced by permissions. |
|
|
299
|
+
| **Independence** | Debugger and Prober are fully standalone -- triggered directly, do not flow through Composer. |
|
|
265
300
|
|
|
266
301
|
---
|
|
267
302
|
|
|
@@ -269,20 +304,20 @@ Each subagent belongs to exactly one primary agent and cannot be invoked by anyo
|
|
|
269
304
|
|
|
270
305
|
The Debugger pipeline uses the [Brooks-Lint](https://hyhmrright.github.io/brooks-lint/guide.html) framework:
|
|
271
306
|
|
|
272
|
-
- **Iron Law** per finding: Symptom
|
|
273
|
-
- **6 Decay Risks (R1
|
|
274
|
-
- **4 Review Modes**: PR Review (R1
|
|
275
|
-
- **T1
|
|
307
|
+
- **Iron Law** per finding: Symptom -> Source -> Consequence -> Remedy
|
|
308
|
+
- **6 Decay Risks (R1-R6)**: Cognitive Overload, Change Propagation, Knowledge Duplication, Accidental Complexity, Dependency Disorder, Domain Model Distortion
|
|
309
|
+
- **4 Review Modes**: PR Review (R1-R6), Architecture Audit, Tech Debt Assessment (Pain x Spread), Test Quality (T1-T6)
|
|
310
|
+
- **T1-T6 Test Risks**: Test Obscurity, Brittleness, Duplication, Mock Abuse, Coverage Illusion, Architecture Mismatch
|
|
276
311
|
|
|
277
312
|
## Principle Hierarchy
|
|
278
313
|
|
|
279
314
|
All agents resolve conflicts using this priority order (defined in `hierarchy.txt`):
|
|
280
315
|
|
|
281
|
-
1. **PRD / Spec**
|
|
282
|
-
2. **Verdict**
|
|
283
|
-
3. **Engineering principles**
|
|
284
|
-
4. **Heuristics**
|
|
285
|
-
5. **Local optimization**
|
|
316
|
+
1. **PRD / Spec** -- explicit requirement text
|
|
317
|
+
2. **Verdict** -- Reviewer / Plan-Checker / Auditor PASS/FAIL
|
|
318
|
+
3. **Engineering principles** -- Fail Fast, Single Responsibility
|
|
319
|
+
4. **Heuristics** -- KISS, DRY, SOLID, Law of Demeter
|
|
320
|
+
5. **Local optimization** -- style preference
|
|
286
321
|
|
|
287
322
|
---
|
|
288
323
|
|
|
@@ -298,9 +333,9 @@ npm install -g pluidr
|
|
|
298
333
|
|
|
299
334
|
The everyday command. Runs three steps in sequence:
|
|
300
335
|
|
|
301
|
-
1. **Update check**
|
|
302
|
-
2. **Doctor check**
|
|
303
|
-
3. **Launch**
|
|
336
|
+
1. **Update check** -- compares local version against npm registry; prompts to `npm install -g pluidr` if a new version is available
|
|
337
|
+
2. **Doctor check** -- verifies installation health; prompts to repair with `pluidr init` if any checks fail
|
|
338
|
+
3. **Launch** -- spawns `opencode`
|
|
304
339
|
|
|
305
340
|
### `pluidr init`
|
|
306
341
|
|
|
@@ -316,7 +351,7 @@ Prompts you to select models for three agent tiers (reasoning, precision, and fa
|
|
|
316
351
|
|
|
317
352
|
### `pluidr doctor`
|
|
318
353
|
|
|
319
|
-
Checks installation health and reports
|
|
354
|
+
Checks installation health and reports pass/fail for each component:
|
|
320
355
|
|
|
321
356
|
- `opencode.jsonc` exists
|
|
322
357
|
- All 18 prompt files present
|
|
@@ -349,15 +384,15 @@ Restores your previous configuration:
|
|
|
349
384
|
|
|
350
385
|
Provides subagents with cross-session context access:
|
|
351
386
|
|
|
352
|
-
- `parent_session_messages`
|
|
353
|
-
- `session_messages(sessionId)`
|
|
354
|
-
- `session_messages_batch(sessionIds)`
|
|
387
|
+
- `parent_session_messages` -- read the parent session's transcript
|
|
388
|
+
- `session_messages(sessionId)` -- read any session by ID
|
|
389
|
+
- `session_messages_batch(sessionIds)` -- read multiple sessions in one call
|
|
355
390
|
|
|
356
391
|
### `pluidr-squeeze`
|
|
357
392
|
|
|
358
|
-
Hooks into tool execution to rewrite bash commands through the `squeeze` binary, filtering verbose output and saving **60
|
|
393
|
+
Hooks into tool execution to rewrite bash commands through the `squeeze` binary, filtering verbose output and saving **60-90% of tokens** across all agents.
|
|
359
394
|
|
|
360
|
-
Both plugins and their dependency declaration are installed automatically by `pluidr init`
|
|
395
|
+
Both plugins and their dependency declaration are installed automatically by `pluidr init` -- no extra user action required. On OpenCode's first launch, the bundled Bun runtime installs `@opencode-ai/plugin` from the generated `package.json`.
|
|
361
396
|
|
|
362
397
|
### Themes & Colors
|
|
363
398
|
|
package/package.json
CHANGED
package/src/core/versionCheck.js
CHANGED
|
@@ -4,11 +4,11 @@ import { confirm, isCancel } from "@clack/prompts"
|
|
|
4
4
|
export function fetchLatestVersion() {
|
|
5
5
|
try {
|
|
6
6
|
if (process.platform === "win32") {
|
|
7
|
-
return execSync("npm view pluidr version", { stdio: "pipe" })
|
|
7
|
+
return execSync("npm view pluidr version", { stdio: "pipe", timeout: 1500 })
|
|
8
8
|
.toString()
|
|
9
9
|
.trim()
|
|
10
10
|
}
|
|
11
|
-
return execFileSync("npm", ["view", "pluidr", "version"], { stdio: "pipe" })
|
|
11
|
+
return execFileSync("npm", ["view", "pluidr", "version"], { stdio: "pipe", timeout: 1500 })
|
|
12
12
|
.toString()
|
|
13
13
|
.trim()
|
|
14
14
|
} catch {
|