@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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +143 -121
- package/agents/ciso.md +15 -17
- package/agents/creative-director.md +3 -7
- package/agents/fullstack-wunderkind.md +86 -13
- package/agents/legal-counsel.md +4 -10
- package/agents/marketing-wunderkind.md +128 -143
- package/agents/product-wunderkind.md +80 -22
- package/dist/agents/ciso.d.ts.map +1 -1
- package/dist/agents/ciso.js +20 -21
- package/dist/agents/ciso.js.map +1 -1
- package/dist/agents/creative-director.d.ts.map +1 -1
- package/dist/agents/creative-director.js +3 -7
- package/dist/agents/creative-director.js.map +1 -1
- package/dist/agents/docs-config.d.ts.map +1 -1
- package/dist/agents/docs-config.js +9 -26
- package/dist/agents/docs-config.js.map +1 -1
- package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
- package/dist/agents/fullstack-wunderkind.js +93 -17
- package/dist/agents/fullstack-wunderkind.js.map +1 -1
- package/dist/agents/index.d.ts +0 -6
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +0 -6
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/legal-counsel.d.ts.map +1 -1
- package/dist/agents/legal-counsel.js +5 -11
- package/dist/agents/legal-counsel.js.map +1 -1
- package/dist/agents/manifest.d.ts.map +1 -1
- package/dist/agents/manifest.js +2 -44
- package/dist/agents/manifest.js.map +1 -1
- package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
- package/dist/agents/marketing-wunderkind.js +140 -155
- package/dist/agents/marketing-wunderkind.js.map +1 -1
- package/dist/agents/product-wunderkind.d.ts.map +1 -1
- package/dist/agents/product-wunderkind.js +85 -24
- package/dist/agents/product-wunderkind.js.map +1 -1
- package/dist/cli/cli-installer.d.ts +1 -1
- package/dist/cli/cli-installer.d.ts.map +1 -1
- package/dist/cli/cli-installer.js +10 -24
- package/dist/cli/cli-installer.js.map +1 -1
- package/dist/cli/config-manager/index.d.ts +14 -1
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +109 -41
- package/dist/cli/config-manager/index.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +43 -19
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.js +16 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +185 -106
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/personality-meta.d.ts +1 -1
- package/dist/cli/personality-meta.d.ts.map +1 -1
- package/dist/cli/personality-meta.js +11 -95
- package/dist/cli/personality-meta.js.map +1 -1
- package/dist/cli/tui-installer.d.ts.map +1 -1
- package/dist/cli/tui-installer.js +5 -11
- package/dist/cli/tui-installer.js.map +1 -1
- package/dist/cli/types.d.ts +15 -24
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -26
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/wunderkind.config.schema.json +7 -18
- package/skills/SKILL-STANDARD.md +174 -0
- package/skills/agile-pm/SKILL.md +8 -6
- package/skills/code-health/SKILL.md +137 -0
- package/skills/compliance-officer/SKILL.md +13 -11
- package/skills/db-architect/SKILL.md +2 -0
- package/skills/design-an-interface/SKILL.md +91 -0
- package/skills/experimentation-analyst/SKILL.md +6 -4
- package/skills/grill-me/SKILL.md +46 -0
- package/skills/improve-codebase-architecture/SKILL.md +57 -0
- package/skills/oss-licensing-advisor/SKILL.md +4 -2
- package/skills/pen-tester/SKILL.md +3 -1
- package/skills/prd-pipeline/SKILL.md +63 -0
- package/skills/security-analyst/SKILL.md +2 -0
- package/skills/social-media-maven/SKILL.md +11 -9
- package/skills/tdd/SKILL.md +99 -0
- package/skills/technical-writer/SKILL.md +7 -5
- package/skills/triage-issue/SKILL.md +47 -0
- package/skills/ubiquitous-language/SKILL.md +57 -0
- package/skills/vercel-architect/SKILL.md +2 -0
- package/skills/visual-artist/SKILL.md +2 -1
- package/skills/write-a-skill/SKILL.md +76 -0
- package/agents/brand-builder.md +0 -262
- package/agents/data-analyst.md +0 -212
- package/agents/devrel-wunderkind.md +0 -211
- package/agents/operations-lead.md +0 -302
- package/agents/qa-specialist.md +0 -282
- package/agents/support-engineer.md +0 -204
- package/dist/agents/brand-builder.d.ts +0 -8
- package/dist/agents/brand-builder.d.ts.map +0 -1
- package/dist/agents/brand-builder.js +0 -287
- package/dist/agents/brand-builder.js.map +0 -1
- package/dist/agents/data-analyst.d.ts +0 -8
- package/dist/agents/data-analyst.d.ts.map +0 -1
- package/dist/agents/data-analyst.js +0 -238
- package/dist/agents/data-analyst.js.map +0 -1
- package/dist/agents/devrel-wunderkind.d.ts +0 -8
- package/dist/agents/devrel-wunderkind.d.ts.map +0 -1
- package/dist/agents/devrel-wunderkind.js +0 -236
- package/dist/agents/devrel-wunderkind.js.map +0 -1
- package/dist/agents/operations-lead.d.ts +0 -8
- package/dist/agents/operations-lead.d.ts.map +0 -1
- package/dist/agents/operations-lead.js +0 -328
- package/dist/agents/operations-lead.js.map +0 -1
- package/dist/agents/qa-specialist.d.ts +0 -8
- package/dist/agents/qa-specialist.d.ts.map +0 -1
- package/dist/agents/qa-specialist.js +0 -308
- package/dist/agents/qa-specialist.js.map +0 -1
- package/dist/agents/support-engineer.d.ts +0 -8
- package/dist/agents/support-engineer.d.ts.map +0 -1
- package/dist/agents/support-engineer.js +0 -230
- package/dist/agents/support-engineer.js.map +0 -1
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
|
|
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
|
-
>
|
|
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 |
|
|
19
|
-
| `wunderkind upgrade` |
|
|
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.
|
|
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
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
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
|
|
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
|
|
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:
|
|
201
|
-
- fullstack:
|
|
202
|
-
- marketing:
|
|
203
|
-
-
|
|
204
|
-
-
|
|
205
|
-
-
|
|
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
|
|
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
|
|
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 |
|
|
263
|
-
| `creative-director` | Brand & UI/UX lead |
|
|
264
|
-
| `product-wunderkind` | VP Product |
|
|
265
|
-
| `fullstack-wunderkind` | CTO-calibre engineer |
|
|
266
|
-
| `
|
|
267
|
-
| `
|
|
268
|
-
|
|
269
|
-
|
|
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
|
|
300
|
-
- project config stores
|
|
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,
|
|
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": "
|
|
376
|
+
"region": "Global",
|
|
317
377
|
// Industry vertical — e.g. "SaaS", "FinTech", "eCommerce", "HealthTech"
|
|
318
|
-
"industry": "
|
|
378
|
+
"industry": "",
|
|
319
379
|
// Primary data-protection regulation — e.g. "GDPR", "POPIA", "CCPA", "LGPD"
|
|
320
|
-
"primaryRegulation": "
|
|
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
|
|
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
|
|
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
|
|
383
|
-
| `brand-storyteller` | Narrative and
|
|
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
|
|
399
|
-
| `velocity-optimizer` | Throughput and
|
|
400
|
-
| `outcome-obsessed` | Business outcomes and
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
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
|
|
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:
|
|
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**,
|
|
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
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|