@grant-vine/wunderkind 0.9.12 → 0.10.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 (118) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +143 -121
  3. package/agents/ciso.md +15 -17
  4. package/agents/creative-director.md +3 -7
  5. package/agents/fullstack-wunderkind.md +86 -13
  6. package/agents/legal-counsel.md +4 -10
  7. package/agents/marketing-wunderkind.md +128 -143
  8. package/agents/product-wunderkind.md +80 -22
  9. package/dist/agents/ciso.d.ts.map +1 -1
  10. package/dist/agents/ciso.js +20 -21
  11. package/dist/agents/ciso.js.map +1 -1
  12. package/dist/agents/creative-director.d.ts.map +1 -1
  13. package/dist/agents/creative-director.js +3 -7
  14. package/dist/agents/creative-director.js.map +1 -1
  15. package/dist/agents/docs-config.d.ts.map +1 -1
  16. package/dist/agents/docs-config.js +9 -26
  17. package/dist/agents/docs-config.js.map +1 -1
  18. package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
  19. package/dist/agents/fullstack-wunderkind.js +93 -17
  20. package/dist/agents/fullstack-wunderkind.js.map +1 -1
  21. package/dist/agents/index.d.ts +0 -6
  22. package/dist/agents/index.d.ts.map +1 -1
  23. package/dist/agents/index.js +0 -6
  24. package/dist/agents/index.js.map +1 -1
  25. package/dist/agents/legal-counsel.d.ts.map +1 -1
  26. package/dist/agents/legal-counsel.js +5 -11
  27. package/dist/agents/legal-counsel.js.map +1 -1
  28. package/dist/agents/manifest.d.ts.map +1 -1
  29. package/dist/agents/manifest.js +2 -44
  30. package/dist/agents/manifest.js.map +1 -1
  31. package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
  32. package/dist/agents/marketing-wunderkind.js +140 -155
  33. package/dist/agents/marketing-wunderkind.js.map +1 -1
  34. package/dist/agents/product-wunderkind.d.ts.map +1 -1
  35. package/dist/agents/product-wunderkind.js +85 -24
  36. package/dist/agents/product-wunderkind.js.map +1 -1
  37. package/dist/cli/cli-installer.d.ts +1 -1
  38. package/dist/cli/cli-installer.d.ts.map +1 -1
  39. package/dist/cli/cli-installer.js +10 -24
  40. package/dist/cli/cli-installer.js.map +1 -1
  41. package/dist/cli/config-manager/index.d.ts +14 -1
  42. package/dist/cli/config-manager/index.d.ts.map +1 -1
  43. package/dist/cli/config-manager/index.js +109 -41
  44. package/dist/cli/config-manager/index.js.map +1 -1
  45. package/dist/cli/doctor.d.ts.map +1 -1
  46. package/dist/cli/doctor.js +43 -19
  47. package/dist/cli/doctor.js.map +1 -1
  48. package/dist/cli/index.js +16 -7
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/init.d.ts +2 -0
  51. package/dist/cli/init.d.ts.map +1 -1
  52. package/dist/cli/init.js +185 -106
  53. package/dist/cli/init.js.map +1 -1
  54. package/dist/cli/personality-meta.d.ts +1 -1
  55. package/dist/cli/personality-meta.d.ts.map +1 -1
  56. package/dist/cli/personality-meta.js +11 -95
  57. package/dist/cli/personality-meta.js.map +1 -1
  58. package/dist/cli/tui-installer.d.ts.map +1 -1
  59. package/dist/cli/tui-installer.js +5 -11
  60. package/dist/cli/tui-installer.js.map +1 -1
  61. package/dist/cli/types.d.ts +15 -24
  62. package/dist/cli/types.d.ts.map +1 -1
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +67 -26
  65. package/dist/index.js.map +1 -1
  66. package/package.json +1 -1
  67. package/schemas/wunderkind.config.schema.json +7 -18
  68. package/skills/SKILL-STANDARD.md +174 -0
  69. package/skills/agile-pm/SKILL.md +8 -6
  70. package/skills/code-health/SKILL.md +137 -0
  71. package/skills/compliance-officer/SKILL.md +13 -11
  72. package/skills/db-architect/SKILL.md +2 -0
  73. package/skills/design-an-interface/SKILL.md +91 -0
  74. package/skills/experimentation-analyst/SKILL.md +6 -4
  75. package/skills/grill-me/SKILL.md +46 -0
  76. package/skills/improve-codebase-architecture/SKILL.md +57 -0
  77. package/skills/oss-licensing-advisor/SKILL.md +4 -2
  78. package/skills/pen-tester/SKILL.md +3 -1
  79. package/skills/prd-pipeline/SKILL.md +63 -0
  80. package/skills/security-analyst/SKILL.md +2 -0
  81. package/skills/social-media-maven/SKILL.md +11 -9
  82. package/skills/tdd/SKILL.md +99 -0
  83. package/skills/technical-writer/SKILL.md +7 -5
  84. package/skills/triage-issue/SKILL.md +47 -0
  85. package/skills/ubiquitous-language/SKILL.md +57 -0
  86. package/skills/vercel-architect/SKILL.md +2 -0
  87. package/skills/visual-artist/SKILL.md +2 -1
  88. package/skills/write-a-skill/SKILL.md +76 -0
  89. package/agents/brand-builder.md +0 -262
  90. package/agents/data-analyst.md +0 -212
  91. package/agents/devrel-wunderkind.md +0 -211
  92. package/agents/operations-lead.md +0 -302
  93. package/agents/qa-specialist.md +0 -282
  94. package/agents/support-engineer.md +0 -204
  95. package/dist/agents/brand-builder.d.ts +0 -8
  96. package/dist/agents/brand-builder.d.ts.map +0 -1
  97. package/dist/agents/brand-builder.js +0 -287
  98. package/dist/agents/brand-builder.js.map +0 -1
  99. package/dist/agents/data-analyst.d.ts +0 -8
  100. package/dist/agents/data-analyst.d.ts.map +0 -1
  101. package/dist/agents/data-analyst.js +0 -238
  102. package/dist/agents/data-analyst.js.map +0 -1
  103. package/dist/agents/devrel-wunderkind.d.ts +0 -8
  104. package/dist/agents/devrel-wunderkind.d.ts.map +0 -1
  105. package/dist/agents/devrel-wunderkind.js +0 -236
  106. package/dist/agents/devrel-wunderkind.js.map +0 -1
  107. package/dist/agents/operations-lead.d.ts +0 -8
  108. package/dist/agents/operations-lead.d.ts.map +0 -1
  109. package/dist/agents/operations-lead.js +0 -328
  110. package/dist/agents/operations-lead.js.map +0 -1
  111. package/dist/agents/qa-specialist.d.ts +0 -8
  112. package/dist/agents/qa-specialist.d.ts.map +0 -1
  113. package/dist/agents/qa-specialist.js +0 -308
  114. package/dist/agents/qa-specialist.js.map +0 -1
  115. package/dist/agents/support-engineer.d.ts +0 -8
  116. package/dist/agents/support-engineer.d.ts.map +0 -1
  117. package/dist/agents/support-engineer.js +0 -230
  118. package/dist/agents/support-engineer.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wunderkind",
3
- "version": "0.9.12",
3
+ "version": "0.10.1",
4
4
  "description": "Wunderkind \u2014 specialist AI agents for any software product team, built as an oh-my-openagent addon",
5
5
  "main": "dist/index.js"
6
6
  }
package/README.md CHANGED
@@ -1,11 +1,19 @@
1
1
  # Wunderkind
2
2
 
3
- Wunderkind — specialist AI agent addon for OpenCode that extends your team with 12 professional agents covering marketing, design, product, engineering, brand building, QA, operations, security, devrel, legal, support, and data analysis.
3
+ Wunderkind — specialist AI agent addon for OpenCode that extends your team with 6 retained specialist agents covering marketing, design, product, engineering, security, and legal.
4
4
 
5
5
  **Requires [OpenCode](https://opencode.ai) and [oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent).** This package cannot be used standalone.
6
6
 
7
7
  > [!IMPORTANT]
8
- > **Breaking change (0.7.0)**: This is a pre-1.0 release. Older installs are not supported. Please ensure you are using the latest version of both Wunderkind and oh-my-openagent.
8
+ > Wunderkind is still pre-1.0. Keep Wunderkind and oh-my-openagent up to date together; older installs are not expected to remain compatible.
9
+
10
+ > [!WARNING]
11
+ > **Breaking changes in this version.** The automated code-cleanup product surface has been fully removed from the Wunderkind product contract. If you are upgrading from an older version that included this feature, the following surfaces have changed:
12
+ > - The `init` flag that enabled the cleanup tool no longer exists. Passing it will fail as an unknown flag.
13
+ > - The corresponding config key is no longer written or read. Existing config files that contain it are silently tolerated — the key is ignored on read and will not be written back.
14
+ > - The managed gitignore entry for the cleanup tool's working directory is no longer added by `wunderkind gitignore`.
15
+ > - The first-trigger fallback message that referenced the cleanup tool has been removed from all agent prompts.
16
+ > - The `code-health` skill is now an audit/reporting tool only — it does not install or invoke any automated cleanup tool.
9
17
 
10
18
  ---
11
19
 
@@ -15,9 +23,9 @@ Wunderkind provides a tiered CLI for installation, project setup, and health che
15
23
 
16
24
  | Command | Purpose | Modifies |
17
25
  |---|---|---|
18
- | `wunderkind install` | Registers the plugin in OpenCode | `opencode.json` (Global or Project) |
19
- | `wunderkind upgrade` | Upgrade lifecycle entry point for existing installs | None yet (surface only) |
20
- | `wunderkind init` | Bootstraps a project with soul files | `.wunderkind/`, `AGENTS.md`, `.sisyphus/` |
26
+ | `wunderkind install` | Registers the plugin in OpenCode | OpenCode config + native agents/skills (+ shared native commands) |
27
+ | `wunderkind upgrade` | Refreshes Wunderkind-owned native assets | Native agents/skills + shared native commands |
28
+ | `wunderkind init` | Bootstraps a project with soul files | `.wunderkind/`, `AGENTS.md`, `.sisyphus/`, project-local native agents/skills |
21
29
  | `wunderkind doctor` | Read-only diagnostics | None |
22
30
  | `wunderkind uninstall` | Safely removes Wunderkind plugin wiring | OpenCode plugin config (+ global Wunderkind config when applicable) |
23
31
  | `wunderkind gitignore` | Adds AI traces to `.gitignore` | `.gitignore` |
@@ -65,7 +73,7 @@ or
65
73
  The TUI will guide you through:
66
74
  1. Installing oh-my-openagent if it isn't already (runs its own setup flow first).
67
75
  2. Selecting the install scope (Global vs Project).
68
- 3. Configuring your shared baseline context: region, industry, and data-protection regulations.
76
+ 3. Optionally configuring shared baseline defaults: region, industry, and data-protection regulations.
69
77
  4. Optionally initializing the current project immediately.
70
78
 
71
79
  > Note: upstream's canonical npm package is `oh-my-openagent`, while the upstream CLI command and config filename remain `oh-my-opencode` and `oh-my-opencode.jsonc`.
@@ -80,6 +88,12 @@ For CI/CD or scripted environments, use the `install` command with the `--no-tui
80
88
  > ```
81
89
  > See the [oh-my-openagent docs](https://github.com/code-yeongyu/oh-my-openagent) for all available options.
82
90
 
91
+ ```bash
92
+ bunx @grant-vine/wunderkind install --no-tui --scope=global
93
+ ```
94
+
95
+ Or provide explicit shared defaults during install:
96
+
83
97
  ```bash
84
98
  bunx @grant-vine/wunderkind install --no-tui \
85
99
  --scope=global \
@@ -88,7 +102,13 @@ bunx @grant-vine/wunderkind install --no-tui \
88
102
  --primary-regulation=POPIA
89
103
  ```
90
104
 
91
- To install at the project scope:
105
+ To install at the project scope with inherited defaults:
106
+
107
+ ```bash
108
+ bunx @grant-vine/wunderkind install --no-tui --scope=project
109
+ ```
110
+
111
+ Or install at the project scope with explicit project-local baseline overrides:
92
112
 
93
113
  ```bash
94
114
  bunx @grant-vine/wunderkind install --no-tui \
@@ -110,10 +130,11 @@ Wunderkind exposes an explicit upgrade lifecycle command:
110
130
  wunderkind upgrade --scope=global
111
131
  ```
112
132
 
113
- Current first-wave upgrade behavior is intentionally narrow:
114
- - it validates that Wunderkind is already installed in the requested scope
115
- - it preserves all project-local soul/docs settings
116
- - it currently behaves as a safe no-op until future baseline override flags are introduced
133
+ Current upgrade behavior:
134
+ - refreshes Wunderkind native agents and native skills in the requested scope
135
+ - refreshes Wunderkind's shipped native command assets globally
136
+ - preserves project-local soul/docs settings unless you explicitly opt into config refresh behavior
137
+ - supports `--dry-run` and `--refresh-config` for safe testing
117
138
 
118
139
  This keeps the lifecycle concept explicit without overloading `install`.
119
140
 
@@ -136,7 +157,13 @@ wunderkind init [options]
136
157
  | `--docs-enabled <yes\|no>` | Enable or disable documentation output | `no` |
137
158
  | `--no-tui` | Skip interactive prompts | (false) |
138
159
 
139
- Interactive `wunderkind init` always asks for team culture, org structure, and docs-output settings. It can also optionally walk you through specialist personality overrides; if you skip that step, Wunderkind keeps the current/default specialist personalities already in effect.
160
+ Interactive `wunderkind init` always asks for team culture, org structure, and docs-output settings. It can also optionally create project-local SOUL files for any retained persona; if you skip that step, Wunderkind keeps the neutral retained prompts and current/default personality settings already in effect. Baseline market/regulation values are inherited unless you intentionally override them in project config.
161
+
162
+ Wave 2 also lets `init` set the PRD/planning workflow mode for the project:
163
+ - `filesystem` — PRDs, plans, issues, triage notes, RFCs, and glossary artifacts live in `.sisyphus/`
164
+ - `github` — GitHub-backed workflows can be used when `gh` is installed and the repo is GitHub-ready
165
+
166
+ If `prdPipelineMode` is absent in an older project config, Wunderkind treats it as `filesystem`.
140
167
 
141
168
  `wunderkind init` creates the following project "soul files":
142
169
  - `.wunderkind/wunderkind.config.jsonc` — Project-specific configuration
@@ -163,8 +190,8 @@ Generated Wunderkind config files now include a top-level `$schema` field for ed
163
190
  - `https://raw.githubusercontent.com/grant-vine/wunderkind/<tag>/schemas/wunderkind.config.schema.json`
164
191
 
165
192
  The schema is scope-aware:
166
- - global config validates only baseline fields (`region`, `industry`, `primaryRegulation`, `secondaryRegulation`)
167
- - project config validates soul/personality/docs fields and also permits project-local baseline overrides when needed
193
+ - global config validates shared baseline defaults (`region`, `industry`, `primaryRegulation`, `secondaryRegulation`) but allows them to be omitted when inherited defaults are acceptable
194
+ - project config validates soul/personality/docs fields and also permits sparse project-local baseline overrides when needed
168
195
 
169
196
  ---
170
197
 
@@ -189,26 +216,25 @@ wunderkind doctor
189
216
 
190
217
  `wunderkind doctor --verbose` additionally shows:
191
218
  - Full path resolution for global and project OpenCode configs
192
- - Active region, industry, and regulation baseline
219
+ - Active region, industry, and regulation baseline with source markers
220
+ - PRD workflow mode and GitHub-readiness signals
193
221
  - All agent personality settings with human-readable descriptions
194
222
  - Docs output configuration (path, history mode, enabled status)
195
223
 
224
+ Legend:
225
+ - `●` = project override
226
+ - `○` = inherited default
227
+
196
228
  Example output (project context with defaults):
197
229
 
198
230
  ```
199
231
  Agent Personalities
200
- - ciso: pragmatic-risk-manager (Balances risk vs. velocity; default posture)
201
- - fullstack: code-archaeologist (Deep digs into legacy systems; explains history)
202
- - marketing: data-driven (Metrics and attribution first; no vanity metrics)
203
- - qa: risk-based-pragmatist (Tests what matters most; ships with confidence)
204
- - product: outcome-obsessed (Business outcomes and measurable impact first)
205
- - ops: on-call-veteran (Incident-hardened; runbook-first)
206
- - creative: pragmatic-problem-solver (Design that ships; form follows function)
207
- - brand: authentic-builder (No spin; build trust through radical transparency)
208
- - devrel: dx-engineer (Developer experience as a product; DX metrics)
209
- - legal: pragmatic-advisor (Risk-calibrated; enables the business to move)
210
- - support: systematic-triage (Classification, routing, and severity-driven)
211
- - data analyst: insight-storyteller (Translates data into narratives for decisions)
232
+ - ciso: pragmatic-risk-manager (Balances risk vs. velocity; default posture)
233
+ - fullstack: code-archaeologist (Deep digs into legacy systems; explains history)
234
+ - marketing: data-driven (Metrics and attribution first; no vanity metrics)
235
+ - product: outcome-obsessed (Business outcomes and measurable impact first)
236
+ - creative: pragmatic-problem-solver (Design that ships; form follows function)
237
+ - legal: pragmatic-advisor (Risk-calibrated; enables the business to move)
212
238
  ```
213
239
 
214
240
  ---
@@ -236,12 +262,37 @@ wunderkind uninstall --scope=project
236
262
 
237
263
  When enabled, agents can persist their decisions and strategies to your project's docs folder.
238
264
 
239
- 1. **Enable** via `wunderkind init --docs-path ./docs`
265
+ 1. **Enable** via interactive `wunderkind init`, or non-interactively with `wunderkind init --no-tui --docs-enabled=yes --docs-path ./docs`
240
266
  2. **Configure** in `.wunderkind/wunderkind.config.jsonc` via `docsEnabled`, `docsPath`, and `docHistoryMode`.
241
267
  3. **Refresh or bootstrap** via `/docs-index`. This is an executable plugin command that asks eligible Wunderkind agents to refresh their canonical managed docs or create them if missing, then updates the docs index and can optionally offer `init-deep` as a follow-up question.
242
268
 
243
269
  ---
244
270
 
271
+ ## Code Health
272
+
273
+ The `code-health` skill (owned by `fullstack-wunderkind`) produces a structured, evidence-based code health audit report with severity-ranked findings. It is an analysis and reporting tool only — it does not mutate code, run automated cleanup tools, or create GitHub issues or RFCs.
274
+
275
+ Use it when you want a prioritised list of engineering hygiene findings (coupling, testability, dependency risk, systemic patterns) before deciding what to fix. The audit report is produced as structured markdown in the agent response, with findings grouped by severity: `critical`, `high`, `medium`, `low`, and `informational`.
276
+
277
+ To request an audit, ask `fullstack-wunderkind` directly or invoke the `code-health` skill.
278
+
279
+ ---
280
+
281
+ ## Init-Deep Workflow
282
+
283
+ `init-deep` is an oh-my-openagent workflow concept, not a Wunderkind CLI command.
284
+
285
+ Wunderkind supports that upstream bootstrap flow in this order:
286
+
287
+ 1. Run `wunderkind init` to create the project's soul files and local Wunderkind scaffolding.
288
+ 2. Have an agent populate `AGENTS.md` with project knowledge, conventions, and operating context.
289
+ 3. Systematically explore the codebase and capture durable findings in `.sisyphus/` notepads and evidence.
290
+ 4. Use `/docs-index` when docs output is enabled to refresh or bootstrap the managed docs set as the project evolves.
291
+
292
+ Treat this as the recommended audit/bootstrap process for bringing a project up to a high-context Wunderkind baseline.
293
+
294
+ ---
295
+
245
296
  ## Install Scope
246
297
 
247
298
  | Scope | Description |
@@ -249,30 +300,24 @@ When enabled, agents can persist their decisions and strategies to your project'
249
300
  | `global` (default) | Adds the plugin to `~/.config/opencode/opencode.json`. Agents are available in all projects. |
250
301
  | `project` | Adds the plugin to `./opencode.json` (created if missing). Agents are limited to the current project. |
251
302
 
252
- Wunderkind installs its native agent markdown files into OpenCode's supported agent directories. Removing Wunderkind leaves any separate oh-my-openagent installation intact.
303
+ Wunderkind installs native markdown assets into OpenCode's supported directories. Removing Wunderkind leaves any separate oh-my-openagent installation intact.
253
304
 
254
- > **Native agent install note**: Wunderkind now registers its specialist agents through OpenCode-native markdown agent files. Global installs write to `~/.config/opencode/agents/`; project installs and `wunderkind init` write to `.opencode/agents/` for project-local precedence.
305
+ > **Native asset install note**: Wunderkind registers its specialist agents and skills through OpenCode-native markdown files. Global installs and upgrades refresh the shared native assets; project installs and `wunderkind init` write `.opencode/agents/` and `.opencode/skills/` for project-local precedence. The shipped `/docs-index` command is a native command asset that Wunderkind refreshes globally.
255
306
 
256
307
  ---
257
308
 
258
309
  ## Agents
259
310
 
260
- | Agent Key | Role | Category |
311
+ | Agent Key | Role | OpenCode Category |
261
312
  |---|---|---|
262
- | `marketing-wunderkind` | CMO-calibre strategist | primary |
263
- | `creative-director` | Brand & UI/UX lead | primary |
264
- | `product-wunderkind` | VP Product | primary |
265
- | `fullstack-wunderkind` | CTO-calibre engineer | primary |
266
- | `brand-builder` | Community, PR, thought leadership | primary |
267
- | `qa-specialist` | TDD, coverage, user story review | primary |
268
- | `operations-lead` | SRE/SLO, runbooks, incident response | primary |
269
- | `ciso` | Security architecture, OWASP, compliance | primary |
270
- | `devrel-wunderkind` | Developer relations and advocacy | primary |
271
- | `legal-counsel` | Legal and regulatory compliance | primary |
272
- | `support-engineer` | Technical support and troubleshooting | primary |
273
- | `data-analyst` | Data analysis and insights | primary |
274
-
275
- Wunderkind agents are distributed as native OpenCode markdown agents. Their prompts are static defaults, while runtime behavior is tailored by merged Wunderkind config from `~/.wunderkind/wunderkind.config.jsonc` and `.wunderkind/wunderkind.config.jsonc`.
313
+ | `marketing-wunderkind` | CMO-calibre strategist for brand, community, developer advocacy, docs-led launches, and GTM | `writing` |
314
+ | `creative-director` | Brand & UI/UX lead | `visual-engineering` |
315
+ | `product-wunderkind` | Default orchestrator and front door for all Wunderkind requests. Routes, clarifies, and synthesises across specialists. VP Product authority: roadmaps, OKRs, PRDs, issue intake, acceptance review, sprint planning, and decomposition. | `writing` |
316
+ | `fullstack-wunderkind` | CTO-calibre engineer | `unspecified-high` |
317
+ | `ciso` | Security architecture, OWASP, compliance | `unspecified-high` |
318
+ | `legal-counsel` | Legal and regulatory compliance | `writing` |
319
+
320
+ Wunderkind agents are distributed as native OpenCode markdown agents. Their prompts are neutral defaults, while runtime behavior is tailored by merged Wunderkind config from `~/.wunderkind/wunderkind.config.jsonc` and `.wunderkind/wunderkind.config.jsonc`, plus optional project-local SOUL overlays in `.wunderkind/souls/<agent-key>.md`.
276
321
 
277
322
  > **About prompt size:** Wunderkind specialists are intentionally more focused and domain-heavy than many generic assistants. In practice that means their prompts are somewhat larger than medium-sized OMO specialists, because each Wunderkind agent carries deeper domain context and tighter role guidance. We optimize repeated boilerplate where it is safe to do so, but we prefer specialist quality and consistency over shaving tokens at the cost of role clarity.
278
323
 
@@ -280,76 +325,91 @@ Wunderkind agents are distributed as native OpenCode markdown agents. Their prom
280
325
 
281
326
  ## Sub-skills
282
327
 
328
+ Skill authoring and review in this repo follow `skills/SKILL-STANDARD.md`. New or revised skills should use trigger-first descriptions, explicit surviving ownership, filesystem scope, anti-triggers, and review gates.
329
+
283
330
  | Skill Name | Parent Agent | Domain |
284
331
  |---|---|---|
285
332
  | `social-media-maven` | marketing-wunderkind | Social media strategy & content |
286
333
  | `visual-artist` | creative-director | Colour palettes, design tokens, WCAG |
287
334
  | `agile-pm` | product-wunderkind | Sprint planning, task decomposition |
335
+ | `grill-me` | product-wunderkind | Requirement interrogation & ambiguity collapse |
336
+ | `ubiquitous-language` | product-wunderkind | Shared domain glossary & canonical terminology |
337
+ | `prd-pipeline` | product-wunderkind | PRD → plan → issues workflow |
338
+ | `triage-issue` | product-wunderkind | Issue intake, repro shaping, acceptance clarity, and backlog-ready handoff |
339
+ | `experimentation-analyst` | product-wunderkind | Product experiments, feature readouts, and statistical interpretation |
340
+ | `write-a-skill` | product-wunderkind | Wunderkind-native skill authoring and adaptation |
288
341
  | `db-architect` | fullstack-wunderkind | Drizzle ORM, PostgreSQL, Neon DB |
342
+ | `code-health` | fullstack-wunderkind | Severity-ranked code health audit reports (coupling, testability, dependency risk) |
289
343
  | `vercel-architect` | fullstack-wunderkind | Vercel, Next.js App Router, Edge Runtime |
344
+ | `improve-codebase-architecture` | fullstack-wunderkind | Architecture RFCs, module boundaries, deep modules |
345
+ | `design-an-interface` | fullstack-wunderkind | High-complexity API and abstraction design |
346
+ | `tdd` | fullstack-wunderkind | Red-green-refactor loops for Bun + strict TypeScript |
290
347
  | `security-analyst` | ciso | OWASP Top 10, vulnerability assessment |
291
348
  | `pen-tester` | ciso | Penetration testing, ASVS, attack simulation |
292
349
  | `compliance-officer` | ciso | GDPR, POPIA, data classification |
350
+ | `technical-writer` | marketing-wunderkind | Developer docs, guides, and reference writing |
351
+ | `oss-licensing-advisor` | legal-counsel | Open source license compliance and compatibility |
293
352
 
294
353
  ---
295
354
 
296
355
  ## Configuration
297
356
 
298
357
  Wunderkind uses a split configuration model:
299
- - global config stores shared market/regulation baseline
300
- - project config stores soul/personality/docs settings
358
+ - global config stores shared market/regulation defaults
359
+ - project config stores personality/docs/workflow settings plus only the baseline values that intentionally override those defaults
360
+ - project-local SOUL files in `.wunderkind/souls/` store long-form persona customization and durable learned context
301
361
 
302
362
  | File | Scope |
303
363
  |---|---|
304
364
  | `~/.wunderkind/wunderkind.config.jsonc` | Global baseline (applies to all projects) |
305
- | `.wunderkind/wunderkind.config.jsonc` | Per-project soul/personality/docs settings |
365
+ | `.wunderkind/wunderkind.config.jsonc` | Per-project soul/personality/docs/workflow settings and sparse baseline overrides |
306
366
 
307
- Edit the global file to change region/industry/regulation defaults after install. Edit the project file to change team culture, personalities, or docs-output settings after init.
367
+ Edit the global file to change region/industry/regulation defaults after install. Edit the project file to change team culture, personalities, docs-output settings, PRD workflow mode, or only the baseline values that differ for this project after init.
308
368
 
309
369
  ### Configuration Reference
310
370
 
311
371
  ```jsonc
312
- // Global baseline config
372
+ // Global baseline config (all fields optional; omitted values fall back to built-in defaults)
313
373
  {
314
374
  "$schema": "https://raw.githubusercontent.com/grant-vine/wunderkind/main/schemas/wunderkind.config.schema.json",
315
375
  // Geographic region — e.g. "South Africa", "United States", "United Kingdom", "Australia"
316
- "region": "South Africa",
376
+ "region": "Global",
317
377
  // Industry vertical — e.g. "SaaS", "FinTech", "eCommerce", "HealthTech"
318
- "industry": "SaaS",
378
+ "industry": "",
319
379
  // Primary data-protection regulation — e.g. "GDPR", "POPIA", "CCPA", "LGPD"
320
- "primaryRegulation": "POPIA",
380
+ "primaryRegulation": "",
321
381
  // Optional secondary regulation
322
382
  "secondaryRegulation": ""
323
383
  }
324
384
  ```
325
385
 
326
386
  ```jsonc
327
- // Project-local soul/docs config
387
+ // Project-local soul/docs config (sparse overrides only)
328
388
  {
329
389
  "$schema": "https://raw.githubusercontent.com/grant-vine/wunderkind/main/schemas/wunderkind.config.schema.json",
390
+ // Optional project-specific baseline override example:
391
+ // "industry": "Software Development Services",
392
+
330
393
  // Team culture baseline — affects all agents' communication style and decision rigour
331
394
  "teamCulture": "pragmatic-balanced",
332
395
  // Org structure — "flat" (peers) | "hierarchical" (domain authority applies)
333
396
  "orgStructure": "flat",
334
397
 
335
- // Agent personalities — controls each agent's default character archetype
398
+ // Agent personalities — controls each retained agent's default character archetype
336
399
  "cisoPersonality": "pragmatic-risk-manager",
337
400
  "ctoPersonality": "code-archaeologist",
338
401
  "cmoPersonality": "data-driven",
339
- "qaPersonality": "risk-based-pragmatist",
340
402
  "productPersonality": "outcome-obsessed",
341
- "opsPersonality": "on-call-veteran",
342
403
  "creativePersonality": "pragmatic-problem-solver",
343
- "brandPersonality": "authentic-builder",
344
- "devrelPersonality": "dx-engineer",
345
404
  "legalPersonality": "pragmatic-advisor",
346
- "supportPersonality": "systematic-triage",
347
- "dataAnalystPersonality": "insight-storyteller",
348
405
 
349
406
  // Documentation Output (Init-only customizations)
350
407
  "docsEnabled": false,
351
408
  "docsPath": "./docs",
352
- "docHistoryMode": "overwrite"
409
+ "docHistoryMode": "overwrite",
410
+
411
+ // PRD / planning workflow mode
412
+ "prdPipelineMode": "filesystem"
353
413
  }
354
414
  ```
355
415
 
@@ -364,48 +424,32 @@ Each agent's behaviour is controlled by a `*Personality` key in your project con
364
424
  | Value | What it means |
365
425
  |---|---|
366
426
  | `paranoid-enforcer` | Maximum threat paranoia; blocks anything unproven |
367
- | `pragmatic-risk-manager` | Balances risk vs. velocity; default posture (default) |
368
- | `educator-collaborator` | Guides teams through security thinking collaboratively |
427
+ | `pragmatic-risk-manager` | Balances risk, incident urgency, compliance impact, and delivery speed; default posture (default) |
428
+ | `educator-collaborator` | Guides teams through security thinking, incident posture, and compliance tradeoffs collaboratively |
369
429
 
370
430
  ### CTO / Fullstack (`ctoPersonality`)
371
431
 
372
432
  | Value | What it means |
373
433
  |---|---|
374
- | `grizzled-sysadmin` | Battle-hardened ops mindset; stability over novelty |
375
- | `startup-bro` | Move fast; bias toward shipping |
376
- | `code-archaeologist` | Deep digs into legacy systems; explains history (default) |
434
+ | `grizzled-sysadmin` | Battle-hardened ops mindset; stability, runbooks, supportability, and regression proof over novelty |
435
+ | `startup-bro` | Move fast; bias toward shipping, direct technical triage, and pragmatic test depth |
436
+ | `code-archaeologist` | Deep digs into legacy systems, flaky tests, and recurring incident history before changing architecture (default) |
377
437
 
378
438
  ### CMO / Marketing (`cmoPersonality`)
379
439
 
380
440
  | Value | What it means |
381
441
  |---|---|
382
- | `data-driven` | Metrics and attribution first; no vanity metrics (default) |
383
- | `brand-storyteller` | Narrative and emotional resonance over raw data |
384
- | `growth-hacker` | Experiments, loops, and funnel obsession |
385
-
386
- ### QA (`qaPersonality`)
387
-
388
- | Value | What it means |
389
- |---|---|
390
- | `rule-enforcer` | Strict standards; gates every release |
391
- | `risk-based-pragmatist` | Tests what matters most; ships with confidence (default) |
392
- | `rubber-duck` | Walks devs through their own bugs; collaborative |
442
+ | `data-driven` | Metrics, attribution, community health, docs adoption, activation, and TTFV first; no vanity metrics (default) |
443
+ | `brand-storyteller` | Narrative, PR trust-building, thought leadership, and developer education over raw data alone |
444
+ | `growth-hacker` | Experiments, onboarding loops, docs-led adoption, community flywheels, and funnel obsession |
393
445
 
394
446
  ### Product (`productPersonality`)
395
447
 
396
448
  | Value | What it means |
397
449
  |---|---|
398
- | `user-advocate` | User pain and delight over internal efficiency |
399
- | `velocity-optimizer` | Throughput and cycle time over perfect specs |
400
- | `outcome-obsessed` | Business outcomes and measurable impact first (default) |
401
-
402
- ### Operations (`opsPersonality`)
403
-
404
- | Value | What it means |
405
- |---|---|
406
- | `on-call-veteran` | Incident-hardened; runbook-first (default) |
407
- | `efficiency-maximiser` | Automates everything; cost and throughput focused |
408
- | `process-purist` | Change management and process integrity |
450
+ | `user-advocate` | User pain, issue clarity, adoption friction, and acceptance quality over internal efficiency |
451
+ | `velocity-optimizer` | Throughput, backlog-ready triage, and rapid experiment cadence over perfect specs |
452
+ | `outcome-obsessed` | Business outcomes, acceptance rigor, issue intake quality, and usage-driven prioritization first (default) |
409
453
 
410
454
  ### Creative Director (`creativePersonality`)
411
455
 
@@ -415,22 +459,6 @@ Each agent's behaviour is controlled by a `*Personality` key in your project con
415
459
  | `bold-provocateur` | Intentionally disruptive visual choices |
416
460
  | `pragmatic-problem-solver` | Design that ships; form follows function (default) |
417
461
 
418
- ### Brand Builder (`brandPersonality`)
419
-
420
- | Value | What it means |
421
- |---|---|
422
- | `community-evangelist` | Builds through authentic community engagement |
423
- | `pr-spinner` | Narrative control and media-savvy messaging |
424
- | `authentic-builder` | No spin; build trust through radical transparency (default) |
425
-
426
- ### DevRel (`devrelPersonality`)
427
-
428
- | Value | What it means |
429
- |---|---|
430
- | `community-champion` | Forum presence, events, OSS contribution |
431
- | `docs-perfectionist` | Every API documented; no gaps tolerated |
432
- | `dx-engineer` | Developer experience as a product; DX metrics (default) |
433
-
434
462
  ### Legal Counsel (`legalPersonality`)
435
463
 
436
464
  | Value | What it means |
@@ -439,22 +467,6 @@ Each agent's behaviour is controlled by a `*Personality` key in your project con
439
467
  | `pragmatic-advisor` | Risk-calibrated; enables the business to move (default) |
440
468
  | `plain-english-counselor` | Translates legalese into plain language |
441
469
 
442
- ### Support Engineer (`supportPersonality`)
443
-
444
- | Value | What it means |
445
- |---|---|
446
- | `empathetic-resolver` | Treats every ticket as a relationship |
447
- | `systematic-triage` | Classification, routing, and severity-driven (default) |
448
- | `knowledge-builder` | Every fix becomes a doc; knowledge loop focus |
449
-
450
- ### Data Analyst (`dataAnalystPersonality`)
451
-
452
- | Value | What it means |
453
- |---|---|
454
- | `rigorous-statistician` | Significance, confidence intervals, no p-hacking |
455
- | `insight-storyteller` | Translates data into narratives for decisions (default) |
456
- | `pragmatic-quant` | Good-enough analysis fast; directional signals |
457
-
458
470
  ---
459
471
 
460
472
  ## Directory Structure
@@ -464,6 +476,8 @@ Each agent's behaviour is controlled by a `*Personality` key in your project con
464
476
  ```
465
477
  .wunderkind/
466
478
  wunderkind.config.jsonc # per-project config override
479
+ souls/
480
+ <agent-key>.md # optional project-local SOUL overlays for retained personas
467
481
  ```
468
482
 
469
483
  ### Global (`~/.wunderkind/`)
@@ -473,6 +487,14 @@ Each agent's behaviour is controlled by a `*Personality` key in your project con
473
487
  wunderkind.config.jsonc # global config baseline
474
488
  ```
475
489
 
490
+ ## Research Inputs
491
+
492
+ Wunderkind's evolving workflow strategy is informed in part by Matt Pocock's public skills repository:
493
+
494
+ - https://github.com/mattpocock/skills
495
+
496
+ We plan to adapt selected ideas such as ubiquitous language, structured questioning, and PRD/planning flows to Wunderkind's filesystem-first `.sisyphus/` workflow rather than adopting GitHub-issue-centric assumptions directly.
497
+
476
498
  ---
477
499
 
478
500
  ## Manual Installation
package/agents/ciso.md CHANGED
@@ -10,28 +10,18 @@ permission:
10
10
  ---
11
11
  # CISO — Soul
12
12
 
13
- You are the **CISO** (Chief Information Security Officer). Before acting, read `.wunderkind/wunderkind.config.jsonc` and load:
14
- - `cisoPersonality` — your character archetype:
15
- - `paranoid-enforcer`: Everything is a threat until proven otherwise. Zero tolerance, zero exceptions. Block first, ask questions after.
16
- - `pragmatic-risk-manager`: Paranoid but practical. Prioritise by real-world exploitability. Recommend mitigations, not just red-flags.
17
- - `educator-collaborator`: Explain attack vectors, provide doc links, teach the team to fish. Security through understanding.
18
- - `orgStructure`: If `hierarchical`, your security findings are non-negotiable — you have hard veto on any feature or change until critical findings are remediated. If `flat`, escalate unresolved conflicts to the user.
19
- - `teamCulture`: Adjust communication rigour accordingly — `formal-strict` means documented evidence for every finding; `experimental-informal` means Slack-friendly summaries.
13
+ You are the **CISO** (Chief Information Security Officer). Before acting, read the resolved runtime context for `cisoPersonality`, `teamCulture`, `orgStructure`, `region`, `industry`, and applicable regulations.
14
+
15
+ If a project-local SOUL overlay is present, treat it as additive guidance that refines the neutral base prompt for this project.
20
16
 
21
17
  **Regardless of personality or org structure, this rule is absolute and cannot be overridden:**
22
18
  > When a security finding of severity High or Critical is raised, remediation must begin within **72 hours**. No sprint priorities, deadlines, or business pressure can delay this. No other agent can deprioritise a CISO finding. No exceptions.
23
19
 
24
- Also read:
25
- - `primaryRegulation` — applies to all breach notification and data-handling decisions
26
- - `region` and `industry` — for jurisdiction-specific compliance requirements
27
-
28
- If `.wunderkind/wunderkind.config.jsonc` is absent, default to: `pragmatic-risk-manager`, `flat` org, GDPR as primary regulation.
29
-
30
20
  ---
31
21
 
32
22
  # CISO
33
23
 
34
- You are the **CISO** (Chief Information Security Officer) — a security architect and risk manager who protects systems, data, and users through proactive threat modelling, rigorous code review, and a culture of security-by-default. You apply NIST CSF 2.0 and lead three specialist sub-skills: Security Analyst, Pen Tester, and Compliance Officer.
24
+ You are the **CISO** (Chief Information Security Officer) — a security architect, risk manager, and security-incident leader who protects systems, data, and users through proactive threat modelling, rigorous code review, and a culture of security-by-default. You apply NIST CSF 2.0 and lead three specialist sub-skills: Security Analyst, Pen Tester, and Compliance Officer.
35
25
 
36
26
  Your mandate: **secure by design, not secure by audit.**
37
27
 
@@ -80,6 +70,14 @@ Security controls must exist at multiple layers — compromising one layer must
80
70
  - Verify package integrity (checksums, provenance) for critical dependencies
81
71
  - Evaluate new dependencies: last updated, maintainer reputation, download count, known CVEs
82
72
 
73
+ ### Security Incident Command & Compliance Impact
74
+ - Triage whether an outage, anomaly, or integrity failure is actually a security event or a plain reliability issue
75
+ - Preserve evidence: logs, timelines, impacted identities, changed infrastructure, and exposed credentials before cleanup destroys context
76
+ - Coordinate containment with `fullstack-wunderkind` while you own security priority, blast-radius framing, and control-gap analysis
77
+ - Assess privacy and compliance impact: what regulated data, systems, or obligations are implicated, and how fast escalation must happen
78
+ - Distinguish technical containment from formal legal notice: security owns the impact assessment, legal owns final regulatory and contractual wording
79
+ - Feed every incident back into controls, threat models, and preventive guardrails so the same class of failure is harder to repeat
80
+
83
81
  ---
84
82
 
85
83
  ## Operating Philosophy
@@ -175,19 +173,19 @@ Activate the security incident response playbook.
175
173
  5. **Recover**: restore from verified clean backups, verify integrity, monitor closely post-recovery
176
174
  6. **Learn**: postmortem within 48 hours, update threat model, improve controls
177
175
 
178
- **For containment and operational response**, delegate to `wunderkind:operations-lead` immediately in parallel:
176
+ **For containment and service recovery**, delegate to `wunderkind:fullstack-wunderkind` immediately so engineering owns the operational response while you retain security command:
179
177
 
180
178
  ```typescript
181
179
  task(
182
180
  category="unspecified-high",
183
- load_skills=["wunderkind:operations-lead"],
181
+ load_skills=["wunderkind:fullstack-wunderkind"],
184
182
  description="Incident containment: [incident type]",
185
183
  prompt="A security incident has been declared: [incident type and known details]. Execute containment: isolate affected systems, revoke exposed credentials/tokens, disable compromised accounts, capture and preserve logs for forensics, assess service availability impact, and stand up a status page or internal comms channel. Return: actions taken, systems affected, blast radius estimate, and current service status.",
186
184
  run_in_background=false
187
185
  )
188
186
  ```
189
187
 
190
- **If personal data is involved**, delegate to `wunderkind:compliance-officer` for breach notification obligations:
188
+ **If personal data is involved**, assess breach-notification obligations with `wunderkind:compliance-officer`; route final legal wording or contractual notice work to `wunderkind:legal-counsel` after the impact is classified:
191
189
 
192
190
  ```typescript
193
191
  task(
@@ -11,13 +11,9 @@ permission:
11
11
  ---
12
12
  # Creative Director — Soul
13
13
 
14
- You are the **Creative Director**. Before acting, read `.wunderkind/wunderkind.config.jsonc` and load:
15
- - `creativePersonality` — your character archetype:
16
- - `perfectionist-craftsperson`: Every pixel must earn its place. Pixel-perfect or not shipped. Design is a discipline, not decoration.
17
- - `bold-provocateur`: Push the boundaries. Safe is forgettable. The best designs divide opinion and start conversations.
18
- - `pragmatic-problem-solver`: Design solves real problems within real constraints. Ship beautiful work on time. Perfect is the enemy of launched.
19
- - `teamCulture` for how formal design critique and review processes should be.
20
- - `region` for cultural design preferences, colour symbolism, and typography conventions.
14
+ You are the **Creative Director**. Before acting, read the resolved runtime context for `creativePersonality`, `teamCulture`, `orgStructure`, `region`, `industry`, and applicable regulations.
15
+
16
+ If a project-local SOUL overlay is present, treat it as additive guidance that refines the neutral base prompt for this project.
21
17
 
22
18
  ---
23
19