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.
Files changed (88) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +409 -399
  3. package/bin/pluidr.js +3 -3
  4. package/package.json +1 -1
  5. package/src/cli/commands/doctor.js +137 -134
  6. package/src/cli/commands/init.js +146 -47
  7. package/src/cli/commands/launch.js +101 -50
  8. package/src/cli/commands/theme.js +91 -0
  9. package/src/cli/commands/theme.test.js +28 -0
  10. package/src/cli/commands/uninstall.js +109 -90
  11. package/src/cli/commands/update.js +9 -9
  12. package/src/cli/index.js +63 -57
  13. package/src/cli/wizard/selectModelTier.js +40 -40
  14. package/src/core/agentPromptWriter.js +49 -32
  15. package/src/core/agentPromptWriter.test.js +56 -56
  16. package/src/core/animation.js +84 -0
  17. package/src/core/animation.test.js +118 -0
  18. package/src/core/backup.js +46 -46
  19. package/src/core/commandsWriter.js +26 -0
  20. package/src/core/commandsWriter.test.js +29 -0
  21. package/src/core/configBuilder.js +32 -32
  22. package/src/core/configBuilder.test.js +93 -93
  23. package/src/core/configWriter.js +10 -10
  24. package/src/core/configWriter.test.js +1 -1
  25. package/src/core/identityHeader.js +8 -8
  26. package/src/core/paths.js +13 -11
  27. package/src/core/paths.test.js +33 -29
  28. package/src/core/pluginWriter.js +43 -29
  29. package/src/core/skillsWriter.js +21 -0
  30. package/src/core/skillsWriter.test.js +30 -0
  31. package/src/core/squeezeInstaller.js +158 -158
  32. package/src/core/squeezeInstaller.test.js +79 -79
  33. package/src/core/themeWriter.js +18 -4
  34. package/src/core/themeWriter.test.js +2 -2
  35. package/src/core/tuiConfigWriter.js +22 -3
  36. package/src/core/tuiConfigWriter.test.js +11 -5
  37. package/src/core/version.js +8 -8
  38. package/src/core/versionCheck.js +44 -44
  39. package/src/plugins/README.md +57 -68
  40. package/src/plugins/pluidr-squeeze.js +77 -77
  41. package/src/templates/agent-prompts/analyze.txt +49 -0
  42. package/src/templates/agent-prompts/builder.txt +10 -0
  43. package/src/templates/agent-prompts/compose.txt +50 -0
  44. package/src/templates/agent-prompts/debug.txt +49 -0
  45. package/src/templates/agent-prompts/explorer.txt +10 -0
  46. package/src/templates/agent-prompts/hierarchy.txt +101 -95
  47. package/src/templates/agent-prompts/reporter.txt +10 -0
  48. package/src/templates/agent-prompts/verifier.txt +10 -0
  49. package/src/templates/commands/squeeze-dashboard.md +5 -0
  50. package/src/templates/commands/squeeze-health.md +10 -0
  51. package/src/templates/commands/squeeze-quick.md +10 -0
  52. package/src/templates/model-defaults.json +59 -73
  53. package/src/templates/opencode.config.json +243 -572
  54. package/src/templates/skills/brooks-lint-rca/SKILL.md +48 -0
  55. package/src/templates/skills/codebase-fact-finding/SKILL.md +39 -0
  56. package/src/templates/skills/diff-review/SKILL.md +42 -0
  57. package/src/templates/skills/general-coding/SKILL.md +44 -0
  58. package/src/templates/skills/minimal-fixing/SKILL.md +25 -0
  59. package/src/templates/skills/plan-checking/SKILL.md +33 -0
  60. package/src/templates/{agent-prompts/patcher.txt → skills/ponytail-patching/SKILL.md} +20 -20
  61. package/src/templates/skills/prd-formatting/SKILL.md +45 -0
  62. package/src/templates/skills/refactoring-patterns/SKILL.md +37 -0
  63. package/src/templates/skills/security-auditing/SKILL.md +35 -0
  64. package/src/templates/skills/security-remediation/SKILL.md +37 -0
  65. package/src/templates/skills/summary-reporting/SKILL.md +83 -0
  66. package/src/templates/skills/test-assurance/SKILL.md +48 -0
  67. package/src/templates/skills/test-mocking-strategy/SKILL.md +18 -0
  68. package/src/templates/skills/ui-design-audit/SKILL.md +23 -0
  69. package/src/templates/skills/ui-design-system/SKILL.md +37 -0
  70. package/src/templates/{agent-prompts/tracer.txt → skills/wstg-recon/SKILL.md} +33 -33
  71. package/src/templates/themes/pluidr-colorful.json +241 -0
  72. package/src/templates/themes/{pluidr-contrast.json → pluidr-dark.json} +68 -68
  73. package/src/templates/themes/pluidr-light.json +241 -0
  74. package/src/templates/agent-prompts/auditor.txt +0 -20
  75. package/src/templates/agent-prompts/coder.txt +0 -88
  76. package/src/templates/agent-prompts/compose-reporter.txt +0 -55
  77. package/src/templates/agent-prompts/composer.txt +0 -414
  78. package/src/templates/agent-prompts/debug-reporter.txt +0 -65
  79. package/src/templates/agent-prompts/debugger.txt +0 -149
  80. package/src/templates/agent-prompts/fixer.txt +0 -66
  81. package/src/templates/agent-prompts/inspector.txt +0 -79
  82. package/src/templates/agent-prompts/plan-checker.txt +0 -45
  83. package/src/templates/agent-prompts/plan-writer.txt +0 -57
  84. package/src/templates/agent-prompts/probe-reporter.txt +0 -62
  85. package/src/templates/agent-prompts/prober.txt +0 -93
  86. package/src/templates/agent-prompts/researcher.txt +0 -48
  87. package/src/templates/agent-prompts/reviewer.txt +0 -57
  88. package/src/templates/agent-prompts/tester.txt +0 -66
@@ -1,572 +1,243 @@
1
- {
2
- "$schema": "https://opencode.ai/config.json",
3
- "theme": "pluidr-contrast",
4
- "instructions": ["{file:./prompts/hierarchy.txt}"],
5
- "permission": {
6
- "read": {
7
- "*.env": "deny",
8
- "*.env.*": "deny",
9
- "secrets/**": "deny"
10
- },
11
- "edit": {
12
- "*.env": "deny",
13
- "*.env.*": "deny",
14
- "secrets/**": "deny"
15
- },
16
- "write": {
17
- "*.env": "deny",
18
- "*.env.*": "deny",
19
- "secrets/**": "deny"
20
- }
21
- },
22
- "agent": {
23
- "plan": { "hidden": true },
24
- "build": { "hidden": true },
25
-
26
- "composer": {
27
- "mode": "primary",
28
- "color": "#00b4cc",
29
- "temperature": 0.7,
30
- "description": "Full engineering workflow: Explore, Plan, Build — 3 phases, 7 subagents. Starts in Explore mode, transitions via guardrail gates.",
31
- "prompt": "{file:./prompts/composer.txt}",
32
- "permission": {
33
- "read": "deny",
34
- "glob": "deny",
35
- "grep": "deny",
36
- "edit": "deny",
37
- "write": "deny",
38
- "webfetch": "deny",
39
- "websearch": "deny",
40
- "bash": "deny",
41
- "question": "allow",
42
- "todowrite": "allow",
43
- "task": {
44
- "*": "deny",
45
- "researcher": "allow",
46
- "plan-writer": "allow",
47
- "plan-checker": "allow",
48
- "coder": "allow",
49
- "tester": "allow",
50
- "reviewer": "allow",
51
- "compose-reporter": "allow"
52
- }
53
- }
54
- },
55
-
56
-
57
- "debugger": {
58
- "mode": "primary",
59
- "color": "#ff7039",
60
- "description": "Root-cause analysis via inspector/fixer/reporter. Standalone primary agent — does not depend on Composer. Pure orchestrator — all investigation, fixes, and reports delegated to subagents.",
61
- "prompt": "{file:./prompts/debugger.txt}",
62
- "permission": {
63
- "read": "deny",
64
- "glob": "deny",
65
- "grep": "deny",
66
- "edit": "deny",
67
- "write": "deny",
68
- "webfetch": "deny",
69
- "websearch": "deny",
70
- "bash": "deny",
71
- "question": "allow",
72
- "todowrite": "allow",
73
- "task": {
74
- "*": "deny",
75
- "inspector": "allow",
76
- "fixer": "allow",
77
- "debug-reporter": "allow"
78
- }
79
- }
80
- },
81
-
82
-
83
- "coder": {
84
- "mode": "subagent",
85
- "description": "Implements tasks assigned by Composer, following the PRD exactly. Tracks own progress via todowrite.",
86
- "prompt": "{file:./prompts/coder.txt}",
87
- "permission": {
88
- "read": "allow",
89
- "glob": "allow",
90
- "grep": "allow",
91
- "edit": "allow",
92
- "write": "allow",
93
- "todowrite": "allow",
94
- "bash": {
95
- "*": "deny",
96
- "npm *": "allow",
97
- "npx *": "allow",
98
- "node *": "allow",
99
- "bun *": "allow",
100
- "pnpm *": "allow",
101
- "yarn *": "allow",
102
- "python *": "allow",
103
- "python3 *": "allow",
104
- "pip *": "allow",
105
- "pip3 *": "allow",
106
- "uv *": "allow",
107
- "poetry *": "allow",
108
- "go *": "allow",
109
- "cargo *": "allow",
110
- "make *": "allow",
111
- "cmake *": "allow",
112
- "git *": "allow",
113
- "mkdir *": "allow",
114
- "cp *": "allow",
115
- "rm *": "allow",
116
- "mv *": "allow",
117
- "cat *": "allow",
118
- "ls *": "allow",
119
- "dir *": "allow",
120
- "rg *": "allow",
121
- "grep *": "allow",
122
- "find *": "allow",
123
- "echo *": "allow",
124
- "node --test": "allow",
125
- "npm test": "allow",
126
- "pytest *": "allow"
127
- },
128
- "task": "deny"
129
- }
130
- },
131
-
132
- "tester": {
133
- "mode": "subagent",
134
- "description": "Runs tests on implemented code and reports results (PASS/FAIL/BLOCKED) with coverage gaps. Cannot fix code, install deps, or decide next steps.",
135
- "prompt": "{file:./prompts/tester.txt}",
136
- "permission": {
137
- "read": "allow",
138
- "glob": "allow",
139
- "grep": "allow",
140
- "edit": "deny",
141
- "write": "deny",
142
- "todowrite": "deny",
143
- "bash": {
144
- "*": "deny",
145
- "node *": "allow",
146
- "bun *": "allow",
147
- "npm *": "allow",
148
- "npx *": "allow",
149
- "python *": "allow",
150
- "python3 *": "allow",
151
- "go *": "allow",
152
- "cargo *": "allow",
153
- "node --test": "allow",
154
- "npm test": "allow",
155
- "pytest *": "allow",
156
- "rg *": "allow",
157
- "grep *": "allow",
158
- "find *": "allow",
159
- "cat *": "allow",
160
- "ls *": "allow",
161
- "dir *": "allow",
162
- "git diff*": "allow",
163
- "git log*": "allow",
164
- "git show*": "allow",
165
- "echo *": "allow"
166
- },
167
- "task": "deny"
168
- }
169
- },
170
-
171
- "reviewer": {
172
- "mode": "subagent",
173
- "temperature": 0.1,
174
- "description": "Boolean gate for Composer: compares implementation against PRD definition-of-done. PASS/FAIL + gap list only.",
175
- "prompt": "{file:./prompts/reviewer.txt}",
176
- "permission": {
177
- "read": "allow",
178
- "glob": "allow",
179
- "grep": "allow",
180
- "edit": "deny",
181
- "write": "deny",
182
- "bash": {
183
- "*": "deny",
184
- "git diff*": "allow",
185
- "git log*": "allow",
186
- "git show*": "allow",
187
- "git status*": "allow",
188
- "rg *": "allow",
189
- "grep *": "allow",
190
- "cat *": "allow",
191
- "ls *": "allow",
192
- "dir *": "allow"
193
- },
194
- "task": "deny"
195
- }
196
- },
197
-
198
- "compose-reporter": {
199
- "mode": "subagent",
200
- "description": "Text-file executor for Composer. Writes and edits .md/.txt files under docs/ — stateless formatter for documents only. No bash.",
201
- "prompt": "{file:./prompts/compose-reporter.txt}",
202
- "permission": {
203
- "read": {
204
- "*": "deny",
205
- "docs/**": "allow"
206
- },
207
- "glob": "deny",
208
- "grep": "deny",
209
- "edit": {
210
- "*": "deny",
211
- "docs/**": "allow"
212
- },
213
- "write": {
214
- "*": "deny",
215
- "docs/**": "allow"
216
- },
217
- "bash": "deny",
218
- "todowrite": "deny",
219
- "task": "deny"
220
- }
221
- },
222
-
223
-
224
- "researcher": {
225
- "mode": "subagent",
226
- "description": "Researches technical and codebase context for Composer during EXPLORE phase. Outputs confirmed_facts / inferred_facts / unknowns / risks only.",
227
- "prompt": "{file:./prompts/researcher.txt}",
228
- "permission": {
229
- "read": "allow",
230
- "glob": "allow",
231
- "grep": "allow",
232
- "edit": "deny",
233
- "write": "deny",
234
- "bash": {
235
- "*": "deny",
236
- "rg *": "allow",
237
- "grep *": "allow",
238
- "find *": "allow",
239
- "cat *": "allow",
240
- "ls *": "allow",
241
- "dir *": "allow",
242
- "node --version": "allow",
243
- "npm --version": "allow",
244
- "python --version": "allow",
245
- "python3 --version": "allow",
246
- "go version": "allow",
247
- "cargo --version": "allow"
248
- },
249
- "webfetch": "allow",
250
- "websearch": "allow",
251
- "task": "deny"
252
- }
253
- },
254
-
255
- "plan-writer": {
256
- "mode": "subagent",
257
- "description": "Stateless formatter for Composer. Produces PRD documents from structured input — no inference, no decisions. PRD mode only.",
258
- "prompt": "{file:./prompts/plan-writer.txt}",
259
- "permission": {
260
- "read": {
261
- "*": "deny",
262
- "docs/plans/**": "allow"
263
- },
264
- "glob": "deny",
265
- "grep": "deny",
266
- "edit": {
267
- "*": "deny",
268
- "docs/plans/**": "allow"
269
- },
270
- "write": {
271
- "*": "deny",
272
- "docs/plans/**": "allow"
273
- },
274
- "bash": "deny",
275
- "task": "deny"
276
- }
277
- },
278
-
279
- "plan-checker": {
280
- "mode": "subagent",
281
- "temperature": 0.1,
282
- "description": "Boolean gate for Composer: checks PRD completeness against original user request. PASS/FAIL + gap list only.",
283
- "prompt": "{file:./prompts/plan-checker.txt}",
284
- "permission": {
285
- "read": "allow",
286
- "glob": "allow",
287
- "grep": "allow",
288
- "edit": "deny",
289
- "write": "deny",
290
- "bash": {
291
- "*": "deny",
292
- "rg *": "allow",
293
- "grep *": "allow"
294
- },
295
- "task": "deny"
296
- }
297
- },
298
-
299
- "inspector": {
300
- "mode": "subagent",
301
- "description": "Root-cause analysis for Debugger. Investigates bugs via codebase and web research. Outputs confirmed_facts / inferred_facts / unknowns / risks only.",
302
- "prompt": "{file:./prompts/inspector.txt}",
303
- "permission": {
304
- "read": "allow",
305
- "glob": "allow",
306
- "grep": "allow",
307
- "edit": "deny",
308
- "write": "deny",
309
- "bash": {
310
- "*": "deny",
311
- "git diff*": "allow",
312
- "git log*": "allow",
313
- "git show*": "allow",
314
- "git blame*": "allow",
315
- "git status*": "allow",
316
- "rg *": "allow",
317
- "grep *": "allow",
318
- "cat *": "allow",
319
- "find *": "allow",
320
- "ls *": "allow",
321
- "dir *": "allow"
322
- },
323
- "webfetch": "allow",
324
- "websearch": "allow",
325
- "task": "deny"
326
- }
327
- },
328
-
329
- "fixer": {
330
- "mode": "subagent",
331
- "description": "Implements bug fixes for Debugger. Follows root cause from inspector. Like coder but focused on fixes — minimal change, root-cause targeting.",
332
- "prompt": "{file:./prompts/fixer.txt}",
333
- "permission": {
334
- "read": "allow",
335
- "glob": "allow",
336
- "grep": "allow",
337
- "edit": "allow",
338
- "write": "allow",
339
- "todowrite": "allow",
340
- "bash": {
341
- "*": "deny",
342
- "npm *": "allow",
343
- "npx *": "allow",
344
- "node *": "allow",
345
- "bun *": "allow",
346
- "pnpm *": "allow",
347
- "yarn *": "allow",
348
- "python *": "allow",
349
- "python3 *": "allow",
350
- "pip *": "allow",
351
- "pip3 *": "allow",
352
- "uv *": "allow",
353
- "poetry *": "allow",
354
- "go *": "allow",
355
- "cargo *": "allow",
356
- "make *": "allow",
357
- "cmake *": "allow",
358
- "git *": "allow",
359
- "mkdir *": "allow",
360
- "cp *": "allow",
361
- "rm *": "allow",
362
- "mv *": "allow",
363
- "cat *": "allow",
364
- "ls *": "allow",
365
- "dir *": "allow",
366
- "rg *": "allow",
367
- "grep *": "allow",
368
- "find *": "allow",
369
- "echo *": "allow",
370
- "node --test": "allow",
371
- "npm test": "allow",
372
- "pytest *": "allow"
373
- },
374
- "task": "deny"
375
- }
376
- },
377
-
378
- "debug-reporter": {
379
- "mode": "subagent",
380
- "description": "Stateless formatter for Debugger. Produces diagnosis + remedy reports from structured input — no inference, no decisions. Summary mode only.",
381
- "prompt": "{file:./prompts/debug-reporter.txt}",
382
- "permission": {
383
- "read": {
384
- "*": "deny",
385
- "docs/reports/**": "allow"
386
- },
387
- "glob": "deny",
388
- "grep": "deny",
389
- "edit": {
390
- "*": "deny",
391
- "docs/reports/**": "allow"
392
- },
393
- "write": {
394
- "*": "deny",
395
- "docs/reports/**": "allow"
396
- },
397
- "bash": "deny",
398
- "task": "deny"
399
- }
400
- },
401
-
402
- "prober": {
403
- "mode": "primary",
404
- "color": "#66ffbf",
405
- "temperature": 0.7,
406
- "description": "Standalone security and quality auditing agent. Recon and vuln trace, minimal patch application, validation gate.",
407
- "prompt": "{file:./prompts/prober.txt}",
408
- "permission": {
409
- "read": "deny",
410
- "glob": "deny",
411
- "grep": "deny",
412
- "edit": "deny",
413
- "write": "deny",
414
- "webfetch": "deny",
415
- "websearch": "deny",
416
- "bash": "deny",
417
- "question": "allow",
418
- "todowrite": "allow",
419
- "task": {
420
- "*": "deny",
421
- "tracer": "allow",
422
- "patcher": "allow",
423
- "auditor": "allow",
424
- "probe-reporter": "allow"
425
- }
426
- }
427
- },
428
-
429
- "tracer": {
430
- "mode": "subagent",
431
- "description": "Recon attack surface and trace vulnerability paths for Prober. Guided by WSTG and secure code review practices.",
432
- "prompt": "{file:./prompts/tracer.txt}",
433
- "permission": {
434
- "read": "allow",
435
- "glob": "allow",
436
- "grep": "allow",
437
- "edit": "deny",
438
- "write": "deny",
439
- "bash": {
440
- "*": "deny",
441
- "rg *": "allow",
442
- "grep *": "allow",
443
- "find *": "allow",
444
- "cat *": "allow",
445
- "ls *": "allow",
446
- "dir *": "allow",
447
- "git log*": "allow",
448
- "git diff*": "allow",
449
- "git show*": "allow",
450
- "git blame*": "allow",
451
- "node --version": "allow",
452
- "npm --version": "allow",
453
- "python --version": "allow",
454
- "python3 --version": "allow",
455
- "go version": "allow",
456
- "cargo --version": "allow",
457
- "which *": "allow",
458
- "where *": "allow"
459
- },
460
- "task": "deny"
461
- }
462
- },
463
-
464
- "patcher": {
465
- "mode": "subagent",
466
- "description": "Applies minimal, security-targeted patches for Prober using Ponytail mindset.",
467
- "prompt": "{file:./prompts/patcher.txt}",
468
- "permission": {
469
- "read": "allow",
470
- "glob": "allow",
471
- "grep": "allow",
472
- "edit": "allow",
473
- "write": "allow",
474
- "bash": {
475
- "*": "deny",
476
- "npm *": "allow",
477
- "npx *": "allow",
478
- "node *": "allow",
479
- "bun *": "allow",
480
- "pnpm *": "allow",
481
- "yarn *": "allow",
482
- "python *": "allow",
483
- "python3 *": "allow",
484
- "pip *": "allow",
485
- "pip3 *": "allow",
486
- "uv *": "allow",
487
- "poetry *": "allow",
488
- "go *": "allow",
489
- "cargo *": "allow",
490
- "make *": "allow",
491
- "cmake *": "allow",
492
- "git *": "allow",
493
- "mkdir *": "allow",
494
- "cp *": "allow",
495
- "rm *": "allow",
496
- "mv *": "allow",
497
- "cat *": "allow",
498
- "ls *": "allow",
499
- "dir *": "allow",
500
- "rg *": "allow",
501
- "grep *": "allow",
502
- "find *": "allow",
503
- "echo *": "allow",
504
- "node --test": "allow",
505
- "npm test": "allow",
506
- "pytest *": "allow"
507
- },
508
- "task": "deny"
509
- }
510
- },
511
-
512
- "auditor": {
513
- "mode": "subagent",
514
- "description": "Validation gate for Prober: checks patch effectiveness and over-engineering. PASS/FAIL + Gap/BLOAT lists only.",
515
- "prompt": "{file:./prompts/auditor.txt}",
516
- "permission": {
517
- "read": "allow",
518
- "glob": "allow",
519
- "grep": "allow",
520
- "edit": "deny",
521
- "write": "deny",
522
- "bash": {
523
- "*": "deny",
524
- "node *": "allow",
525
- "bun *": "allow",
526
- "npm *": "allow",
527
- "npx *": "allow",
528
- "python *": "allow",
529
- "python3 *": "allow",
530
- "go *": "allow",
531
- "cargo *": "allow",
532
- "node --test": "allow",
533
- "npm test": "allow",
534
- "pytest *": "allow",
535
- "rg *": "allow",
536
- "grep *": "allow",
537
- "find *": "allow",
538
- "cat *": "allow",
539
- "ls *": "allow",
540
- "dir *": "allow",
541
- "git diff*": "allow",
542
- "git log*": "allow"
543
- },
544
- "task": "deny"
545
- }
546
- },
547
-
548
- "probe-reporter": {
549
- "mode": "subagent",
550
- "description": "Stateless formatter for Prober. Produces security audit reports under docs/reports/.",
551
- "prompt": "{file:./prompts/probe-reporter.txt}",
552
- "permission": {
553
- "read": {
554
- "*": "deny",
555
- "docs/reports/**": "allow"
556
- },
557
- "glob": "deny",
558
- "grep": "deny",
559
- "edit": {
560
- "*": "deny",
561
- "docs/reports/**": "allow"
562
- },
563
- "write": {
564
- "*": "deny",
565
- "docs/reports/**": "allow"
566
- },
567
- "bash": "deny",
568
- "task": "deny"
569
- }
570
- }
571
- }
572
- }
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "default_agent": "compose",
4
+ "instructions": [
5
+ "{file:./prompts/hierarchy.txt}"
6
+ ],
7
+ "permission": {
8
+ "read": {
9
+ "*.env": "deny",
10
+ "*.env.*": "deny",
11
+ "secrets/**": "deny"
12
+ },
13
+ "edit": {
14
+ "*.env": "deny",
15
+ "*.env.*": "deny",
16
+ "secrets/**": "deny"
17
+ },
18
+ "write": {
19
+ "*.env": "deny",
20
+ "*.env.*": "deny",
21
+ "secrets/**": "deny"
22
+ }
23
+ },
24
+ "agent": {
25
+ "plan": {
26
+ "hidden": true
27
+ },
28
+ "build": {
29
+ "hidden": true
30
+ },
31
+ "compose": {
32
+ "mode": "primary",
33
+ "color": "#009bb3",
34
+ "temperature": 0.7,
35
+ "description": "Full engineering workflow: Explore, Plan, Build — 3 phases. Orchestrates explorer, builder, verifier, and reporter subagents.",
36
+ "prompt": "{file:./prompts/compose.txt}",
37
+ "permission": {
38
+ "read": "deny",
39
+ "glob": "deny",
40
+ "grep": "deny",
41
+ "edit": "deny",
42
+ "write": "deny",
43
+ "webfetch": "deny",
44
+ "websearch": "deny",
45
+ "bash": "deny",
46
+ "question": "allow",
47
+ "todowrite": "allow",
48
+ "task": {
49
+ "*": "deny",
50
+ "explorer": "allow",
51
+ "builder": "allow",
52
+ "verifier": "allow",
53
+ "reporter": "allow"
54
+ }
55
+ }
56
+ },
57
+ "debug": {
58
+ "mode": "primary",
59
+ "color": "#d9541e",
60
+ "description": "Root-cause analysis and bug fixing. Orchestrates explorer, builder, and reporter subagents.",
61
+ "prompt": "{file:./prompts/debug.txt}",
62
+ "permission": {
63
+ "read": "deny",
64
+ "glob": "deny",
65
+ "grep": "deny",
66
+ "edit": "deny",
67
+ "write": "deny",
68
+ "webfetch": "deny",
69
+ "websearch": "deny",
70
+ "bash": "deny",
71
+ "question": "allow",
72
+ "todowrite": "allow",
73
+ "task": {
74
+ "*": "deny",
75
+ "explorer": "allow",
76
+ "builder": "allow",
77
+ "verifier": "allow",
78
+ "reporter": "allow"
79
+ }
80
+ }
81
+ },
82
+ "analyze": {
83
+ "mode": "primary",
84
+ "color": "#0da175",
85
+ "temperature": 0.7,
86
+ "description": "Security and quality auditing. Orchestrates explorer, builder, verifier, and reporter subagents.",
87
+ "prompt": "{file:./prompts/analyze.txt}",
88
+ "permission": {
89
+ "read": "deny",
90
+ "glob": "deny",
91
+ "grep": "deny",
92
+ "edit": "deny",
93
+ "write": "deny",
94
+ "webfetch": "deny",
95
+ "websearch": "deny",
96
+ "bash": "deny",
97
+ "question": "allow",
98
+ "todowrite": "allow",
99
+ "task": {
100
+ "*": "deny",
101
+ "explorer": "allow",
102
+ "builder": "allow",
103
+ "verifier": "allow",
104
+ "reporter": "allow"
105
+ }
106
+ }
107
+ },
108
+ "explorer": {
109
+ "mode": "subagent",
110
+ "description": "Explores codebase, searches files, traces vulnerabilities, and analyzes root causes. Read-only.",
111
+ "prompt": "{file:./prompts/explorer.txt}",
112
+ "permission": {
113
+ "read": "allow",
114
+ "glob": "allow",
115
+ "grep": "allow",
116
+ "edit": "deny",
117
+ "write": "deny",
118
+ "bash": {
119
+ "*": "deny",
120
+ "rg *": "allow",
121
+ "grep *": "allow",
122
+ "find *": "allow",
123
+ "cat *": "allow",
124
+ "ls *": "allow",
125
+ "dir *": "allow",
126
+ "git log*": "allow",
127
+ "git diff*": "allow",
128
+ "git show*": "allow",
129
+ "git blame*": "allow"
130
+ },
131
+ "task": "deny"
132
+ }
133
+ },
134
+ "builder": {
135
+ "mode": "subagent",
136
+ "description": "Writes, refactors, fixes, and patches code based on requirements.",
137
+ "prompt": "{file:./prompts/builder.txt}",
138
+ "permission": {
139
+ "read": "allow",
140
+ "glob": "allow",
141
+ "grep": "allow",
142
+ "edit": "allow",
143
+ "write": "allow",
144
+ "bash": {
145
+ "*": "deny",
146
+ "npm *": "allow",
147
+ "npx *": "allow",
148
+ "node *": "allow",
149
+ "bun *": "allow",
150
+ "pnpm *": "allow",
151
+ "yarn *": "allow",
152
+ "python *": "allow",
153
+ "python3 *": "allow",
154
+ "pip *": "allow",
155
+ "pip3 *": "allow",
156
+ "uv *": "allow",
157
+ "poetry *": "allow",
158
+ "go *": "allow",
159
+ "cargo *": "allow",
160
+ "make *": "allow",
161
+ "cmake *": "allow",
162
+ "git *": "allow",
163
+ "mkdir *": "allow",
164
+ "cp *": "allow",
165
+ "rm *": "allow",
166
+ "mv *": "allow",
167
+ "cat *": "allow",
168
+ "ls *": "allow",
169
+ "dir *": "allow",
170
+ "rg *": "allow",
171
+ "grep *": "allow",
172
+ "find *": "allow",
173
+ "echo *": "allow",
174
+ "node --test": "allow",
175
+ "npm test": "allow",
176
+ "pytest *": "allow"
177
+ },
178
+ "task": "deny"
179
+ }
180
+ },
181
+ "verifier": {
182
+ "mode": "subagent",
183
+ "description": "Validates specifications, reviews diffs, runs tests, and audits quality. Gate agent.",
184
+ "prompt": "{file:./prompts/verifier.txt}",
185
+ "permission": {
186
+ "read": "allow",
187
+ "glob": "allow",
188
+ "grep": "allow",
189
+ "edit": "deny",
190
+ "write": "deny",
191
+ "bash": {
192
+ "*": "deny",
193
+ "node *": "allow",
194
+ "bun *": "allow",
195
+ "npm *": "allow",
196
+ "npx *": "allow",
197
+ "python *": "allow",
198
+ "python3 *": "allow",
199
+ "go *": "allow",
200
+ "cargo *": "allow",
201
+ "node --test": "allow",
202
+ "npm test": "allow",
203
+ "pytest *": "allow",
204
+ "rg *": "allow",
205
+ "grep *": "allow",
206
+ "find *": "allow",
207
+ "cat *": "allow",
208
+ "ls *": "allow",
209
+ "dir *": "allow",
210
+ "git diff*": "allow",
211
+ "git log*": "allow"
212
+ },
213
+ "task": "deny"
214
+ }
215
+ },
216
+ "reporter": {
217
+ "mode": "subagent",
218
+ "description": "Formats raw data and logs into markdown docs/reports. Restricted write access.",
219
+ "prompt": "{file:./prompts/reporter.txt}",
220
+ "permission": {
221
+ "read": {
222
+ "*": "deny",
223
+ "docs/plans/**": "allow",
224
+ "docs/reports/**": "allow"
225
+ },
226
+ "glob": "deny",
227
+ "grep": "deny",
228
+ "edit": {
229
+ "*": "deny",
230
+ "docs/plans/**": "allow",
231
+ "docs/reports/**": "allow"
232
+ },
233
+ "write": {
234
+ "*": "deny",
235
+ "docs/plans/**": "allow",
236
+ "docs/reports/**": "allow"
237
+ },
238
+ "bash": "deny",
239
+ "task": "deny"
240
+ }
241
+ }
242
+ }
243
+ }