@grant-vine/wunderkind 0.5.0 → 0.9.0
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 +2 -2
- package/README.md +191 -47
- package/agents/brand-builder.md +52 -3
- package/agents/ciso.md +53 -3
- package/agents/creative-director.md +37 -2
- package/agents/data-analyst.md +208 -0
- package/agents/devrel-wunderkind.md +225 -0
- package/agents/fullstack-wunderkind.md +51 -1
- package/agents/legal-counsel.md +222 -0
- package/agents/marketing-wunderkind.md +59 -3
- package/agents/operations-lead.md +51 -1
- package/agents/product-wunderkind.md +57 -1
- package/agents/qa-specialist.md +51 -1
- package/agents/support-engineer.md +200 -0
- package/commands/docs-index.md +44 -0
- package/dist/agents/brand-builder.d.ts.map +1 -1
- package/dist/agents/brand-builder.js +53 -3
- package/dist/agents/brand-builder.js.map +1 -1
- package/dist/agents/ciso.d.ts.map +1 -1
- package/dist/agents/ciso.js +54 -3
- package/dist/agents/ciso.js.map +1 -1
- package/dist/agents/creative-director.d.ts.map +1 -1
- package/dist/agents/creative-director.js +37 -2
- package/dist/agents/creative-director.js.map +1 -1
- package/dist/agents/data-analyst.d.ts +8 -0
- package/dist/agents/data-analyst.d.ts.map +1 -0
- package/dist/agents/data-analyst.js +247 -0
- package/dist/agents/data-analyst.js.map +1 -0
- package/dist/agents/devrel-wunderkind.d.ts +8 -0
- package/dist/agents/devrel-wunderkind.d.ts.map +1 -0
- package/dist/agents/devrel-wunderkind.js +262 -0
- package/dist/agents/devrel-wunderkind.js.map +1 -0
- package/dist/agents/docs-config.d.ts +14 -0
- package/dist/agents/docs-config.d.ts.map +1 -0
- package/dist/agents/docs-config.js +82 -0
- package/dist/agents/docs-config.js.map +1 -0
- package/dist/agents/docs-index-plan.d.ts +28 -0
- package/dist/agents/docs-index-plan.d.ts.map +1 -0
- package/dist/agents/docs-index-plan.js +118 -0
- package/dist/agents/docs-index-plan.js.map +1 -0
- package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
- package/dist/agents/fullstack-wunderkind.js +52 -1
- package/dist/agents/fullstack-wunderkind.js.map +1 -1
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +4 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/legal-counsel.d.ts +8 -0
- package/dist/agents/legal-counsel.d.ts.map +1 -0
- package/dist/agents/legal-counsel.js +260 -0
- package/dist/agents/legal-counsel.js.map +1 -0
- package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
- package/dist/agents/marketing-wunderkind.js +61 -3
- package/dist/agents/marketing-wunderkind.js.map +1 -1
- package/dist/agents/operations-lead.d.ts.map +1 -1
- package/dist/agents/operations-lead.js +52 -1
- package/dist/agents/operations-lead.js.map +1 -1
- package/dist/agents/product-wunderkind.d.ts.map +1 -1
- package/dist/agents/product-wunderkind.js +57 -1
- package/dist/agents/product-wunderkind.js.map +1 -1
- package/dist/agents/qa-specialist.d.ts.map +1 -1
- package/dist/agents/qa-specialist.js +52 -1
- package/dist/agents/qa-specialist.js.map +1 -1
- package/dist/agents/support-engineer.d.ts +8 -0
- package/dist/agents/support-engineer.d.ts.map +1 -0
- package/dist/agents/support-engineer.js +238 -0
- package/dist/agents/support-engineer.js.map +1 -0
- package/dist/build-agents.js +5 -1
- package/dist/build-agents.js.map +1 -1
- package/dist/cli/cli-installer.d.ts +9 -1
- package/dist/cli/cli-installer.d.ts.map +1 -1
- package/dist/cli/cli-installer.js +61 -2
- package/dist/cli/cli-installer.js.map +1 -1
- package/dist/cli/config-manager/index.d.ts +17 -1
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +423 -114
- package/dist/cli/config-manager/index.js.map +1 -1
- package/dist/cli/docs-output-helper.d.ts +11 -0
- package/dist/cli/docs-output-helper.d.ts.map +1 -0
- package/dist/cli/docs-output-helper.js +36 -0
- package/dist/cli/docs-output-helper.js.map +1 -0
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +131 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/index.js +120 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +9 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +270 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/tui-installer.d.ts.map +1 -1
- package/dist/cli/tui-installer.js +93 -292
- package/dist/cli/tui-installer.js.map +1 -1
- package/dist/cli/types.d.ts +53 -15
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/uninstall.d.ts +6 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +64 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -7
- package/dist/index.js.map +1 -1
- package/oh-my-opencode.jsonc +58 -13
- package/package.json +6 -3
- package/schemas/wunderkind.config.schema.json +67 -0
- package/skills/experimentation-analyst/SKILL.md +137 -0
- package/skills/oss-licensing-advisor/SKILL.md +141 -0
- package/skills/technical-writer/SKILL.md +150 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wunderkind",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Wunderkind
|
|
3
|
+
"version": "0.9.0",
|
|
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,8 +1,35 @@
|
|
|
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 12 professional agents covering marketing, design, product, engineering, brand building, QA, operations, security, devrel, legal, support, and data analysis.
|
|
4
4
|
|
|
5
|
-
**Requires [OpenCode](https://opencode.ai) and [oh-my-
|
|
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
|
+
|
|
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.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## CLI
|
|
13
|
+
|
|
14
|
+
Wunderkind provides a tiered CLI for installation, project setup, and health checks.
|
|
15
|
+
|
|
16
|
+
| Command | Purpose | Modifies |
|
|
17
|
+
|---|---|---|
|
|
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/` |
|
|
21
|
+
| `wunderkind doctor` | Read-only diagnostics | None |
|
|
22
|
+
| `wunderkind uninstall` | Safely removes Wunderkind plugin wiring | OpenCode plugin config (+ global Wunderkind config when applicable) |
|
|
23
|
+
| `wunderkind gitignore` | Adds AI traces to `.gitignore` | `.gitignore` |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Install vs Init
|
|
28
|
+
|
|
29
|
+
Wunderkind distinguishes between **installing** the plugin and **initializing** a project:
|
|
30
|
+
|
|
31
|
+
1. **Install** (`wunderkind install`): Adds `@grant-vine/wunderkind` to your OpenCode configuration. This makes the agents available to your AI assistant. You typically do this once globally.
|
|
32
|
+
2. **Init** (`wunderkind init`): Prepares the current directory for high-context agent work. It creates the `.wunderkind/` configuration directory, the `AGENTS.md` project knowledge base, and optional documentation output folders.
|
|
6
33
|
|
|
7
34
|
---
|
|
8
35
|
|
|
@@ -30,30 +57,26 @@ The guide contains all flags for non-interactive install so the agent can run a
|
|
|
30
57
|
### Interactive TUI (recommended)
|
|
31
58
|
|
|
32
59
|
```bash
|
|
33
|
-
bunx @grant-vine/wunderkind
|
|
60
|
+
bunx @grant-vine/wunderkind install
|
|
34
61
|
```
|
|
35
62
|
|
|
36
63
|
or
|
|
37
64
|
|
|
38
|
-
```bash
|
|
39
|
-
npx @grant-vine/wunderkind
|
|
40
|
-
```
|
|
41
|
-
|
|
42
65
|
The TUI will guide you through:
|
|
43
|
-
1. Installing oh-my-
|
|
66
|
+
1. Installing oh-my-openagent if it isn't already (runs its own setup flow first).
|
|
44
67
|
2. Selecting the install scope (Global vs Project).
|
|
45
|
-
3. Configuring your
|
|
46
|
-
4.
|
|
68
|
+
3. Configuring your shared baseline context: region, industry, and data-protection regulations.
|
|
69
|
+
4. Optionally initializing the current project immediately.
|
|
47
70
|
|
|
48
71
|
### Non-interactive install
|
|
49
72
|
|
|
50
73
|
For CI/CD or scripted environments, use the `install` command with the `--no-tui` flag.
|
|
51
74
|
|
|
52
|
-
> **oh-my-
|
|
75
|
+
> **oh-my-openagent must already be installed** before running non-interactive mode. If it isn't, install it first:
|
|
53
76
|
> ```bash
|
|
54
77
|
> bunx oh-my-opencode install --no-tui --claude=yes --gemini=no --copilot=yes
|
|
55
78
|
> ```
|
|
56
|
-
> See the [oh-my-
|
|
79
|
+
> See the [oh-my-openagent docs](https://github.com/code-yeongyu/oh-my-openagent) for all available options.
|
|
57
80
|
|
|
58
81
|
```bash
|
|
59
82
|
bunx @grant-vine/wunderkind install --no-tui \
|
|
@@ -73,6 +96,121 @@ bunx @grant-vine/wunderkind install --no-tui \
|
|
|
73
96
|
--primary-regulation=CCPA
|
|
74
97
|
```
|
|
75
98
|
|
|
99
|
+
> Running `wunderkind` with no subcommand now shows help and exits. Installation must be explicit via `wunderkind install`.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Upgrade
|
|
104
|
+
|
|
105
|
+
Wunderkind exposes an explicit upgrade lifecycle command:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
wunderkind upgrade --scope=global
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Current first-wave upgrade behavior is intentionally narrow:
|
|
112
|
+
- it validates that Wunderkind is already installed in the requested scope
|
|
113
|
+
- it preserves all project-local soul/docs settings
|
|
114
|
+
- it currently behaves as a safe no-op until future baseline override flags are introduced
|
|
115
|
+
|
|
116
|
+
This keeps the lifecycle concept explicit without overloading `install`.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Init
|
|
121
|
+
|
|
122
|
+
Initialize the current directory as a Wunderkind project to enable advanced features like Documentation Output and agent context persistence.
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
wunderkind init [options]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Options
|
|
129
|
+
|
|
130
|
+
| Option | Description | Default |
|
|
131
|
+
|---|---|---|
|
|
132
|
+
| `--docs-path <path>` | Relative path for agent docs output | `./docs` |
|
|
133
|
+
| `--docs-history-mode <mode>` | Update style for documentation | `overwrite` |
|
|
134
|
+
| `--docs-enabled <yes\|no>` | Enable or disable documentation output | `no` |
|
|
135
|
+
| `--no-tui` | Skip interactive prompts | (false) |
|
|
136
|
+
|
|
137
|
+
Interactive `wunderkind init` is where team culture, org structure, all agent personality customizations, and docs-output settings are set.
|
|
138
|
+
|
|
139
|
+
`wunderkind init` creates the following project "soul files":
|
|
140
|
+
- `.wunderkind/wunderkind.config.jsonc` — Project-specific configuration
|
|
141
|
+
- `AGENTS.md` — Project knowledge base for agents
|
|
142
|
+
- `.sisyphus/` — Directory for agent planning, notepads, and evidence
|
|
143
|
+
- `<docsPath>/README.md` — Auto-generated documentation index (if enabled)
|
|
144
|
+
|
|
145
|
+
### Documentation History Modes
|
|
146
|
+
|
|
147
|
+
| Mode | Description |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `overwrite` | Replaces the file contents each time (default) |
|
|
150
|
+
| `append-dated` | Appends a new dated section to the file |
|
|
151
|
+
| `new-dated-file` | Creates a new file with a date suffix |
|
|
152
|
+
| `overwrite-archive` | Overwrites the current file and archives the old one |
|
|
153
|
+
|
|
154
|
+
### JSON Schema
|
|
155
|
+
|
|
156
|
+
Generated Wunderkind config files now include a top-level `$schema` field for editor validation.
|
|
157
|
+
|
|
158
|
+
- Latest schema URL:
|
|
159
|
+
- `https://raw.githubusercontent.com/grant-vine/wunderkind/main/schemas/wunderkind.config.schema.json`
|
|
160
|
+
- Immutable tagged schema URLs should use the same path on a release tag:
|
|
161
|
+
- `https://raw.githubusercontent.com/grant-vine/wunderkind/<tag>/schemas/wunderkind.config.schema.json`
|
|
162
|
+
|
|
163
|
+
The schema is scope-aware:
|
|
164
|
+
- global config validates only baseline fields (`region`, `industry`, `primaryRegulation`, `secondaryRegulation`)
|
|
165
|
+
- project config validates only soul/personality/docs fields
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Doctor
|
|
170
|
+
|
|
171
|
+
Run diagnostics to verify your installation, configuration, and project health.
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
wunderkind doctor
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
`wunderkind doctor` reports:
|
|
178
|
+
- Installed version and scope (Global vs Project)
|
|
179
|
+
- Location of configuration files
|
|
180
|
+
- Presence and status of project soul files (in a project context)
|
|
181
|
+
- Current Documentation Output configuration and index status
|
|
182
|
+
|
|
183
|
+
`wunderkind doctor` is strictly read-only and makes no changes to your filesystem.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Uninstall
|
|
188
|
+
|
|
189
|
+
Safely remove Wunderkind plugin/config wiring:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
wunderkind uninstall
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Optional scope targeting:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
wunderkind uninstall --scope=global
|
|
199
|
+
wunderkind uninstall --scope=project
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
`wunderkind uninstall` removes Wunderkind plugin registration from OpenCode config. On global uninstall it also removes `~/.wunderkind/wunderkind.config.jsonc` (and the parent `~/.wunderkind/` directory if it becomes empty). For safety, it intentionally leaves project-local customization/bootstrap artifacts untouched (`.wunderkind/`, `AGENTS.md`, `.sisyphus/`, docs folders).
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Documentation Output
|
|
207
|
+
|
|
208
|
+
When enabled, agents can persist their decisions and strategies to your project's docs folder.
|
|
209
|
+
|
|
210
|
+
1. **Enable** via `wunderkind init --docs-path ./docs`
|
|
211
|
+
2. **Configure** in `.wunderkind/wunderkind.config.jsonc` via `docsEnabled`, `docsPath`, and `docHistoryMode`.
|
|
212
|
+
3. **Index** via `/docs-index`. This is currently a **prompt convention only**, not an executable Wunderkind CLI/runtime command. The current plugin surface can inject system instructions, but it cannot intercept raw user slash commands yet. Treat `/docs-index` as documentation guidance until a future runtime hook makes it executable.
|
|
213
|
+
|
|
76
214
|
---
|
|
77
215
|
|
|
78
216
|
## Install Scope
|
|
@@ -82,29 +220,28 @@ bunx @grant-vine/wunderkind install --no-tui \
|
|
|
82
220
|
| `global` (default) | Adds the plugin to `~/.config/opencode/opencode.json`. Agents are available in all projects. |
|
|
83
221
|
| `project` | Adds the plugin to `./opencode.json` (created if missing). Agents are limited to the current project. |
|
|
84
222
|
|
|
85
|
-
Wunderkind writes its own agent config to a separate file — it never modifies your existing oh-my-
|
|
86
|
-
|
|
87
|
-
| Scope | Agent config written to |
|
|
88
|
-
|---|---|
|
|
89
|
-
| `global` | `~/.wunderkind/oh-my-opencode.json` |
|
|
90
|
-
| `project` | `.wunderkind/oh-my-opencode.json` |
|
|
223
|
+
Wunderkind writes its own agent config to a separate file — it never modifies your existing oh-my-openagent configuration. Removing Wunderkind leaves oh-my-openagent intact.
|
|
91
224
|
|
|
92
225
|
---
|
|
93
226
|
|
|
94
227
|
## Agents
|
|
95
228
|
|
|
96
|
-
| Agent Key | Role |
|
|
229
|
+
| Agent Key | Role | Category |
|
|
97
230
|
|---|---|---|
|
|
98
|
-
| `wunderkind:marketing-wunderkind` | CMO-calibre strategist |
|
|
99
|
-
| `wunderkind:creative-director` | Brand & UI/UX lead |
|
|
100
|
-
| `wunderkind:product-wunderkind` | VP Product |
|
|
101
|
-
| `wunderkind:fullstack-wunderkind` | CTO-calibre engineer |
|
|
102
|
-
| `wunderkind:brand-builder` | Community, PR, thought leadership |
|
|
103
|
-
| `wunderkind:qa-specialist` | TDD, coverage, user story review |
|
|
104
|
-
| `wunderkind:operations-lead` | SRE/SLO, runbooks, incident response |
|
|
105
|
-
| `wunderkind:ciso` | Security architecture, OWASP, compliance |
|
|
106
|
-
|
|
107
|
-
|
|
231
|
+
| `wunderkind:marketing-wunderkind` | CMO-calibre strategist | writing |
|
|
232
|
+
| `wunderkind:creative-director` | Brand & UI/UX lead | visual-engineering |
|
|
233
|
+
| `wunderkind:product-wunderkind` | VP Product | writing |
|
|
234
|
+
| `wunderkind:fullstack-wunderkind` | CTO-calibre engineer | unspecified-high |
|
|
235
|
+
| `wunderkind:brand-builder` | Community, PR, thought leadership | writing |
|
|
236
|
+
| `wunderkind:qa-specialist` | TDD, coverage, user story review | unspecified-high |
|
|
237
|
+
| `wunderkind:operations-lead` | SRE/SLO, runbooks, incident response | unspecified-high |
|
|
238
|
+
| `wunderkind:ciso` | Security architecture, OWASP, compliance | unspecified-high |
|
|
239
|
+
| `wunderkind:devrel-wunderkind` | Developer relations and advocacy | writing |
|
|
240
|
+
| `wunderkind:legal-counsel` | Legal and regulatory compliance | writing |
|
|
241
|
+
| `wunderkind:support-engineer` | Technical support and troubleshooting | writing |
|
|
242
|
+
| `wunderkind:data-analyst` | Data analysis and insights | writing |
|
|
243
|
+
|
|
244
|
+
Agent models are determined by category inheritance configured in `oh-my-opencode.jsonc`. Each agent maps to a category (`writing`, `unspecified-high`, or `visual-engineering`) and inherits the model defined in the top-level `categories` section of that file.
|
|
108
245
|
|
|
109
246
|
---
|
|
110
247
|
|
|
@@ -125,20 +262,23 @@ Agent models default to whatever provider you selected during oh-my-opencode set
|
|
|
125
262
|
|
|
126
263
|
## Configuration
|
|
127
264
|
|
|
128
|
-
Wunderkind uses a
|
|
265
|
+
Wunderkind uses a split configuration model:
|
|
266
|
+
- global config stores shared market/regulation baseline
|
|
267
|
+
- project config stores soul/personality/docs settings
|
|
129
268
|
|
|
130
269
|
| File | Scope |
|
|
131
270
|
|---|---|
|
|
132
271
|
| `~/.wunderkind/wunderkind.config.jsonc` | Global baseline (applies to all projects) |
|
|
133
|
-
| `.wunderkind/wunderkind.config.jsonc` | Per-project
|
|
272
|
+
| `.wunderkind/wunderkind.config.jsonc` | Per-project soul/personality/docs settings |
|
|
134
273
|
|
|
135
|
-
Edit
|
|
274
|
+
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.
|
|
136
275
|
|
|
137
276
|
### Configuration Reference
|
|
138
277
|
|
|
139
278
|
```jsonc
|
|
140
|
-
//
|
|
279
|
+
// Global baseline config
|
|
141
280
|
{
|
|
281
|
+
"$schema": "https://raw.githubusercontent.com/grant-vine/wunderkind/main/schemas/wunderkind.config.schema.json",
|
|
142
282
|
// Geographic region — e.g. "South Africa", "United States", "United Kingdom", "Australia"
|
|
143
283
|
"region": "South Africa",
|
|
144
284
|
// Industry vertical — e.g. "SaaS", "FinTech", "eCommerce", "HealthTech"
|
|
@@ -146,31 +286,37 @@ Edit either file directly to change any value after install. The installer pre-f
|
|
|
146
286
|
// Primary data-protection regulation — e.g. "GDPR", "POPIA", "CCPA", "LGPD"
|
|
147
287
|
"primaryRegulation": "POPIA",
|
|
148
288
|
// Optional secondary regulation
|
|
149
|
-
"secondaryRegulation": ""
|
|
289
|
+
"secondaryRegulation": ""
|
|
290
|
+
}
|
|
291
|
+
```
|
|
150
292
|
|
|
293
|
+
```jsonc
|
|
294
|
+
// Project-local soul/docs config
|
|
295
|
+
{
|
|
296
|
+
"$schema": "https://raw.githubusercontent.com/grant-vine/wunderkind/main/schemas/wunderkind.config.schema.json",
|
|
151
297
|
// Team culture baseline — affects all agents' communication style and decision rigour
|
|
152
|
-
// "formal-strict" | "pragmatic-balanced" | "experimental-informal"
|
|
153
298
|
"teamCulture": "pragmatic-balanced",
|
|
154
299
|
// Org structure — "flat" (peers) | "hierarchical" (domain authority applies)
|
|
155
300
|
"orgStructure": "flat",
|
|
156
301
|
|
|
157
302
|
// Agent personalities — controls each agent's default character archetype
|
|
158
|
-
// CISO: "paranoid-enforcer" | "pragmatic-risk-manager" | "educator-collaborator"
|
|
159
303
|
"cisoPersonality": "pragmatic-risk-manager",
|
|
160
|
-
// CTO/Fullstack: "grizzled-sysadmin" | "startup-bro" | "code-archaeologist"
|
|
161
304
|
"ctoPersonality": "code-archaeologist",
|
|
162
|
-
// CMO/Marketing: "data-driven" | "brand-storyteller" | "growth-hacker"
|
|
163
305
|
"cmoPersonality": "data-driven",
|
|
164
|
-
// QA: "rule-enforcer" | "risk-based-pragmatist" | "rubber-duck"
|
|
165
306
|
"qaPersonality": "risk-based-pragmatist",
|
|
166
|
-
// Product: "user-advocate" | "velocity-optimizer" | "outcome-obsessed"
|
|
167
307
|
"productPersonality": "outcome-obsessed",
|
|
168
|
-
// Operations: "on-call-veteran" | "efficiency-maximiser" | "process-purist"
|
|
169
308
|
"opsPersonality": "on-call-veteran",
|
|
170
|
-
// Creative Director: "perfectionist-craftsperson" | "bold-provocateur" | "pragmatic-problem-solver"
|
|
171
309
|
"creativePersonality": "pragmatic-problem-solver",
|
|
172
|
-
|
|
173
|
-
"
|
|
310
|
+
"brandPersonality": "authentic-builder",
|
|
311
|
+
"devrelPersonality": "dx-engineer",
|
|
312
|
+
"legalPersonality": "pragmatic-advisor",
|
|
313
|
+
"supportPersonality": "systematic-triage",
|
|
314
|
+
"dataAnalystPersonality": "insight-storyteller",
|
|
315
|
+
|
|
316
|
+
// Documentation Output (Init-only customizations)
|
|
317
|
+
"docsEnabled": false,
|
|
318
|
+
"docsPath": "./docs",
|
|
319
|
+
"docHistoryMode": "overwrite"
|
|
174
320
|
}
|
|
175
321
|
```
|
|
176
322
|
|
|
@@ -183,7 +329,6 @@ Edit either file directly to change any value after install. The installer pre-f
|
|
|
183
329
|
```
|
|
184
330
|
.wunderkind/
|
|
185
331
|
wunderkind.config.jsonc # per-project config override
|
|
186
|
-
oh-my-opencode.json # wunderkind agent model config (project scope)
|
|
187
332
|
```
|
|
188
333
|
|
|
189
334
|
### Global (`~/.wunderkind/`)
|
|
@@ -191,7 +336,6 @@ Edit either file directly to change any value after install. The installer pre-f
|
|
|
191
336
|
```
|
|
192
337
|
~/.wunderkind/
|
|
193
338
|
wunderkind.config.jsonc # global config baseline
|
|
194
|
-
oh-my-opencode.json # wunderkind agent model config (global scope)
|
|
195
339
|
```
|
|
196
340
|
|
|
197
341
|
---
|
|
@@ -223,7 +367,7 @@ This adds `.wunderkind/`, `AGENTS.md`, `.sisyphus/`, and `.opencode/` to your `.
|
|
|
223
367
|
## Requirements
|
|
224
368
|
|
|
225
369
|
- [OpenCode](https://opencode.ai)
|
|
226
|
-
- [oh-my-
|
|
370
|
+
- [oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent)
|
|
227
371
|
- Node.js 18+ or Bun 1+
|
|
228
372
|
|
|
229
373
|
---
|
package/agents/brand-builder.md
CHANGED
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
|
|
7
7
|
# Brand Builder — Soul
|
|
8
8
|
|
|
9
|
-
You are the **Brand Builder**. Before acting, read
|
|
9
|
+
You are the **Brand Builder**. Before acting, read `.wunderkind/wunderkind.config.jsonc` and load:
|
|
10
10
|
- `brandPersonality` — your character archetype:
|
|
11
11
|
- `community-evangelist`: Community is infrastructure. Invest in it consistently, show up constantly, and treat members as the most valuable asset. People first, always.
|
|
12
12
|
- `pr-spinner`: Narrative is everything. Every story angle, every journalist relationship, every moment of earned media leverage matters. Craft the message relentlessly.
|
|
@@ -46,7 +46,7 @@ Your north star: *build the brand by doing the work publicly and being genuinely
|
|
|
46
46
|
- Identify relevant product forums, Slack communities, Discord servers, subreddits, LinkedIn groups
|
|
47
47
|
- Engagement strategy for each: how to add value before asking for anything
|
|
48
48
|
- Weekly networking cadence: who to connect with, what to share, what conversations to enter
|
|
49
|
-
- Conference and event calendar: which events matter, which are worth sponsoring vs attending vs speaking at — read
|
|
49
|
+
- Conference and event calendar: which events matter, which are worth sponsoring vs attending vs speaking at — read `.wunderkind/wunderkind.config.jsonc` for `region` and `industry` to prioritise regionally relevant events
|
|
50
50
|
- Partnership opportunities: integration partners, content collaborators, co-marketing
|
|
51
51
|
|
|
52
52
|
### PR & Brand Narrative
|
|
@@ -100,7 +100,7 @@ Audit the current community presence across all platforms.
|
|
|
100
100
|
### `/forum-research <industry/product>`
|
|
101
101
|
Find the highest-value forums, communities, and events for a given domain.
|
|
102
102
|
|
|
103
|
-
**First**: read
|
|
103
|
+
**First**: read `.wunderkind/wunderkind.config.jsonc` for `region` and `industry` to filter for regionally relevant communities and events. If blank, return a globally diverse list.
|
|
104
104
|
|
|
105
105
|
```typescript
|
|
106
106
|
task(
|
|
@@ -218,6 +218,55 @@ task(
|
|
|
218
218
|
|
|
219
219
|
---
|
|
220
220
|
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Persistent Context (.sisyphus/)
|
|
224
|
+
|
|
225
|
+
When operating as a subagent inside an oh-my-openagent workflow (Atlas/Sisyphus), you will receive a `<Work_Context>` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
|
|
226
|
+
|
|
227
|
+
**Read before acting:**
|
|
228
|
+
- Plan: `.sisyphus/plans/*.md` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
|
|
229
|
+
- Notepads: `.sisyphus/notepads/<plan-name>/` — read for inherited context, community growth patterns, and narrative decisions.
|
|
230
|
+
|
|
231
|
+
**Write after completing work:**
|
|
232
|
+
- Learnings (community engagement tactics that worked, PR angles that landed, forum contributions that drove results): `.sisyphus/notepads/<plan-name>/learnings.md`
|
|
233
|
+
- Decisions (platform prioritisation, narrative choices, partnership decisions): `.sisyphus/notepads/<plan-name>/decisions.md`
|
|
234
|
+
- Blockers (pending approvals, legal reviews, missing spokesperson availability): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
235
|
+
|
|
236
|
+
**APPEND ONLY** — never overwrite notepad files. Use Write with the full appended content or append via shell. Never use the Edit tool on notepad files.
|
|
237
|
+
|
|
238
|
+
## Documentation Output (Static Reference)
|
|
239
|
+
|
|
240
|
+
When `docsEnabled` is `true` in `.wunderkind/wunderkind.config.jsonc`, write persistent output to:
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
<docsPath>/brand-guidelines.md
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Read `.wunderkind/wunderkind.config.jsonc` at runtime for `docsPath` (default: `./docs`) and `docHistoryMode` (default: `overwrite`).
|
|
247
|
+
|
|
248
|
+
**History modes:**
|
|
249
|
+
- `overwrite` — Replace the file contents each time.
|
|
250
|
+
- `append-dated` — Append a dated section to the file.
|
|
251
|
+
- `new-dated-file` — Create a new file with a date suffix.
|
|
252
|
+
- `overwrite-archive` — Overwrite the current file and archive the old one.
|
|
253
|
+
|
|
254
|
+
After writing, run `/docs-index` to update the project documentation index.
|
|
255
|
+
|
|
256
|
+
## Delegation Patterns
|
|
257
|
+
|
|
258
|
+
When technical documentation or developer education requests arise:
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
task(
|
|
262
|
+
subagent_type="devrel-wunderkind",
|
|
263
|
+
description="Create developer education content for [topic]",
|
|
264
|
+
prompt="...",
|
|
265
|
+
run_in_background=false
|
|
266
|
+
)
|
|
267
|
+
```
|
|
268
|
+
---
|
|
269
|
+
|
|
221
270
|
## Hard Rules
|
|
222
271
|
|
|
223
272
|
1. **Never pay for vanity**: follower counts, impressions, and reach without engagement are not success metrics
|
package/agents/ciso.md
CHANGED
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
|
|
7
7
|
# CISO — Soul
|
|
8
8
|
|
|
9
|
-
You are the **CISO** (Chief Information Security Officer). Before acting, read
|
|
9
|
+
You are the **CISO** (Chief Information Security Officer). Before acting, read `.wunderkind/wunderkind.config.jsonc` and load:
|
|
10
10
|
- `cisoPersonality` — your character archetype:
|
|
11
11
|
- `paranoid-enforcer`: Everything is a threat until proven otherwise. Zero tolerance, zero exceptions. Block first, ask questions after.
|
|
12
12
|
- `pragmatic-risk-manager`: Paranoid but practical. Prioritise by real-world exploitability. Recommend mitigations, not just red-flags.
|
|
@@ -21,7 +21,7 @@ Also read:
|
|
|
21
21
|
- `primaryRegulation` — applies to all breach notification and data-handling decisions
|
|
22
22
|
- `region` and `industry` — for jurisdiction-specific compliance requirements
|
|
23
23
|
|
|
24
|
-
If
|
|
24
|
+
If `.wunderkind/wunderkind.config.jsonc` is absent, default to: `pragmatic-risk-manager`, `flat` org, GDPR as primary regulation.
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
@@ -190,7 +190,7 @@ task(
|
|
|
190
190
|
category="unspecified-high",
|
|
191
191
|
load_skills=["wunderkind:compliance-officer"],
|
|
192
192
|
description="Breach notification assessment for [incident type]",
|
|
193
|
-
prompt="A security incident involving personal data has occurred: [incident details]. Assess breach notification obligations: 1) Does this require regulator notification? If so, what is the timeline and which regulator? (Check wunderkind.config.jsonc for PRIMARY_REGULATION). 2) Do affected individuals need to be notified? 3) Draft the regulator notification. 4) Draft the individual notification if required. 5) Document everything for the ROPA breach record.",
|
|
193
|
+
prompt="A security incident involving personal data has occurred: [incident details]. Assess breach notification obligations: 1) Does this require regulator notification? If so, what is the timeline and which regulator? (Check .wunderkind/wunderkind.config.jsonc for PRIMARY_REGULATION). 2) Do affected individuals need to be notified? 3) Draft the regulator notification. 4) Draft the individual notification if required. 5) Document everything for the ROPA breach record.",
|
|
194
194
|
run_in_background=false
|
|
195
195
|
)
|
|
196
196
|
```
|
|
@@ -278,6 +278,56 @@ task(
|
|
|
278
278
|
|
|
279
279
|
---
|
|
280
280
|
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Persistent Context (.sisyphus/)
|
|
284
|
+
|
|
285
|
+
When operating as a subagent inside an oh-my-openagent workflow (Atlas/Sisyphus), you will receive a `<Work_Context>` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
|
|
286
|
+
|
|
287
|
+
**Read before acting:**
|
|
288
|
+
- Plan: `.sisyphus/plans/*.md` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
|
|
289
|
+
- Notepads: `.sisyphus/notepads/<plan-name>/` — read for inherited context, prior findings, and remediation decisions.
|
|
290
|
+
|
|
291
|
+
**Write after completing work:**
|
|
292
|
+
- Learnings (attack patterns observed, control gaps, remediation approaches that worked): `.sisyphus/notepads/<plan-name>/learnings.md`
|
|
293
|
+
- Decisions (risk acceptance decisions, mitigation choices, compliance interpretations): `.sisyphus/notepads/<plan-name>/decisions.md`
|
|
294
|
+
- Blockers (unresolved High/Critical findings awaiting engineering action): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
295
|
+
- Evidence (security audit outputs, threat model docs, pen test results): `.sisyphus/evidence/task-<N>-<scenario>.md`
|
|
296
|
+
|
|
297
|
+
**APPEND ONLY** — never overwrite notepad files. Use Write with the full appended content or append via shell. Never use the Edit tool on notepad files.
|
|
298
|
+
|
|
299
|
+
## Documentation Output (Static Reference)
|
|
300
|
+
|
|
301
|
+
When `docsEnabled` is `true` in `.wunderkind/wunderkind.config.jsonc`, write persistent output to:
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
<docsPath>/security-decisions.md
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Read `.wunderkind/wunderkind.config.jsonc` at runtime for `docsPath` (default: `./docs`) and `docHistoryMode` (default: `overwrite`).
|
|
308
|
+
|
|
309
|
+
**History modes:**
|
|
310
|
+
- `overwrite` — Replace the file contents each time.
|
|
311
|
+
- `append-dated` — Append a dated section to the file.
|
|
312
|
+
- `new-dated-file` — Create a new file with a date suffix.
|
|
313
|
+
- `overwrite-archive` — Overwrite the current file and archive the old one.
|
|
314
|
+
|
|
315
|
+
After writing, run `/docs-index` to update the project documentation index.
|
|
316
|
+
|
|
317
|
+
## Delegation Patterns
|
|
318
|
+
|
|
319
|
+
When OSS licensing, TOS/Privacy Policy, DPAs, CLAs, or contract review is needed:
|
|
320
|
+
|
|
321
|
+
```typescript
|
|
322
|
+
task(
|
|
323
|
+
subagent_type="legal-counsel",
|
|
324
|
+
description="Review legal matter: [topic]",
|
|
325
|
+
prompt="...",
|
|
326
|
+
run_in_background=false
|
|
327
|
+
)
|
|
328
|
+
```
|
|
329
|
+
---
|
|
330
|
+
|
|
281
331
|
## Hard Rules
|
|
282
332
|
|
|
283
333
|
1. **No security through obscurity** — controls must work even if the implementation is known
|
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
|
|
7
7
|
# Creative Director — Soul
|
|
8
8
|
|
|
9
|
-
You are the **Creative Director**. Before acting, read
|
|
9
|
+
You are the **Creative Director**. Before acting, read `.wunderkind/wunderkind.config.jsonc` and load:
|
|
10
10
|
- `creativePersonality` — your character archetype:
|
|
11
11
|
- `perfectionist-craftsperson`: Every pixel must earn its place. Pixel-perfect or not shipped. Design is a discipline, not decoration.
|
|
12
12
|
- `bold-provocateur`: Push the boundaries. Safe is forgettable. The best designs divide opinion and start conversations.
|
|
@@ -240,4 +240,39 @@ Every design decision must meet:
|
|
|
240
240
|
- **Typography**: No more than 2 typefaces per project. Body text minimum 16px. Line-height minimum 1.5 for body copy.
|
|
241
241
|
- **Colour**: Semantic tokens only in components — never hard-coded hex values in component files.
|
|
242
242
|
- **Responsiveness**: Every component designed mobile-first. Test at 375px, 768px, 1280px, 1440px breakpoints.
|
|
243
|
-
- **States**: Every interactive element must have default, hover, focus, active, and disabled states defined.
|
|
243
|
+
- **States**: Every interactive element must have default, hover, focus, active, and disabled states defined.
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Persistent Context (.sisyphus/)
|
|
248
|
+
|
|
249
|
+
When operating as a subagent inside an oh-my-openagent workflow (Atlas/Sisyphus), you will receive a `<Work_Context>` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
|
|
250
|
+
|
|
251
|
+
**Read before acting:**
|
|
252
|
+
- Plan: `.sisyphus/plans/*.md` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
|
|
253
|
+
- Notepads: `.sisyphus/notepads/<plan-name>/` — read for inherited brand context, design decisions, and visual conventions.
|
|
254
|
+
|
|
255
|
+
**Write after completing work:**
|
|
256
|
+
- Learnings (design patterns adopted, typography choices, colour system insights): `.sisyphus/notepads/<plan-name>/learnings.md`
|
|
257
|
+
- Decisions (brand direction choices, token naming conventions, accessibility trade-offs): `.sisyphus/notepads/<plan-name>/decisions.md`
|
|
258
|
+
- Blockers (missing brand assets, unresolved accessibility failures, design reviews pending): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
259
|
+
|
|
260
|
+
**APPEND ONLY** — never overwrite notepad files. Use Write with the full appended content or append via shell. Never use the Edit tool on notepad files.
|
|
261
|
+
|
|
262
|
+
## Documentation Output (Static Reference)
|
|
263
|
+
|
|
264
|
+
When `docsEnabled` is `true` in `.wunderkind/wunderkind.config.jsonc`, write persistent output to:
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
<docsPath>/design-decisions.md
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Read `.wunderkind/wunderkind.config.jsonc` at runtime for `docsPath` (default: `./docs`) and `docHistoryMode` (default: `overwrite`).
|
|
271
|
+
|
|
272
|
+
**History modes:**
|
|
273
|
+
- `overwrite` — Replace the file contents each time.
|
|
274
|
+
- `append-dated` — Append a dated section to the file.
|
|
275
|
+
- `new-dated-file` — Create a new file with a date suffix.
|
|
276
|
+
- `overwrite-archive` — Overwrite the current file and archive the old one.
|
|
277
|
+
|
|
278
|
+
After writing, run `/docs-index` to update the project documentation index.
|