@grant-vine/wunderkind 0.4.0 → 0.8.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 +185 -90
- package/agents/brand-builder.md +52 -5
- package/agents/ciso.md +53 -5
- package/agents/creative-director.md +37 -4
- package/agents/data-analyst.md +208 -0
- package/agents/devrel-wunderkind.md +225 -0
- package/agents/fullstack-wunderkind.md +51 -3
- package/agents/legal-counsel.md +222 -0
- package/agents/marketing-wunderkind.md +59 -5
- package/agents/operations-lead.md +51 -3
- package/agents/product-wunderkind.md +57 -3
- package/agents/qa-specialist.md +51 -3
- package/agents/support-engineer.md +200 -0
- package/dist/agents/brand-builder.d.ts.map +1 -1
- package/dist/agents/brand-builder.js +53 -5
- package/dist/agents/brand-builder.js.map +1 -1
- package/dist/agents/ciso.d.ts.map +1 -1
- package/dist/agents/ciso.js +54 -5
- 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 -4
- 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 +8 -0
- package/dist/agents/docs-config.d.ts.map +1 -0
- package/dist/agents/docs-config.js +68 -0
- package/dist/agents/docs-config.js.map +1 -0
- package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
- package/dist/agents/fullstack-wunderkind.js +52 -3
- 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 -5
- 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 -3
- 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 -3
- 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 -3
- 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.map +1 -1
- package/dist/cli/cli-installer.js +13 -24
- package/dist/cli/cli-installer.js.map +1 -1
- package/dist/cli/config-manager/index.d.ts +1 -1
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +118 -77
- 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 +2 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +85 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/index.js +68 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +13 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +177 -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 +54 -290
- package/dist/cli/tui-installer.js.map +1 -1
- package/dist/cli/types.d.ts +26 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -17
- package/dist/index.js.map +1 -1
- package/oh-my-opencode.jsonc +58 -13
- package/package.json +6 -13
- 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
- package/dist/cli/memory-commands.d.ts +0 -3
- package/dist/cli/memory-commands.d.ts.map +0 -1
- package/dist/cli/memory-commands.js +0 -138
- package/dist/cli/memory-commands.js.map +0 -1
- package/dist/memory/adapters/file.d.ts +0 -21
- package/dist/memory/adapters/file.d.ts.map +0 -1
- package/dist/memory/adapters/file.js +0 -232
- package/dist/memory/adapters/file.js.map +0 -1
- package/dist/memory/adapters/mem0.d.ts +0 -37
- package/dist/memory/adapters/mem0.d.ts.map +0 -1
- package/dist/memory/adapters/mem0.js +0 -171
- package/dist/memory/adapters/mem0.js.map +0 -1
- package/dist/memory/adapters/sqlite.d.ts +0 -21
- package/dist/memory/adapters/sqlite.d.ts.map +0 -1
- package/dist/memory/adapters/sqlite.js +0 -198
- package/dist/memory/adapters/sqlite.js.map +0 -1
- package/dist/memory/adapters/stub.d.ts +0 -20
- package/dist/memory/adapters/stub.d.ts.map +0 -1
- package/dist/memory/adapters/stub.js +0 -58
- package/dist/memory/adapters/stub.js.map +0 -1
- package/dist/memory/adapters/types.d.ts +0 -45
- package/dist/memory/adapters/types.d.ts.map +0 -1
- package/dist/memory/adapters/types.js +0 -2
- package/dist/memory/adapters/types.js.map +0 -1
- package/dist/memory/adapters/vector.d.ts +0 -29
- package/dist/memory/adapters/vector.d.ts.map +0 -1
- package/dist/memory/adapters/vector.js +0 -347
- package/dist/memory/adapters/vector.js.map +0 -1
- package/dist/memory/docker.d.ts +0 -9
- package/dist/memory/docker.d.ts.map +0 -1
- package/dist/memory/docker.js +0 -43
- package/dist/memory/docker.js.map +0 -1
- package/dist/memory/format.d.ts +0 -5
- package/dist/memory/format.d.ts.map +0 -1
- package/dist/memory/format.js +0 -41
- package/dist/memory/format.js.map +0 -1
- package/dist/memory/index.d.ts +0 -19
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -183
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/slug.d.ts +0 -2
- package/dist/memory/slug.d.ts.map +0 -1
- package/dist/memory/slug.js +0 -40
- package/dist/memory/slug.js.map +0 -1
- package/dist/memory/tools.d.ts +0 -3
- package/dist/memory/tools.d.ts.map +0 -1
- package/dist/memory/tools.js +0 -84
- package/dist/memory/tools.js.map +0 -1
- package/skills/memory-manager/SKILL.md +0 -48
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wunderkind",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Wunderkind
|
|
3
|
+
"version": "0.8.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,15 +1,58 @@
|
|
|
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.** This package cannot be used standalone.
|
|
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 init` | Bootstraps a project with soul files | `.wunderkind/`, `AGENTS.md`, `.sisyphus/` |
|
|
20
|
+
| `wunderkind doctor` | Read-only diagnostics | None |
|
|
21
|
+
| `wunderkind gitignore` | Adds AI traces to `.gitignore` | `.gitignore` |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Install vs Init
|
|
26
|
+
|
|
27
|
+
Wunderkind distinguishes between **installing** the plugin and **initializing** a project:
|
|
28
|
+
|
|
29
|
+
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.
|
|
30
|
+
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
31
|
|
|
7
32
|
---
|
|
8
33
|
|
|
9
34
|
## Install
|
|
10
35
|
|
|
11
|
-
###
|
|
12
|
-
|
|
36
|
+
### Have Your Agent Install This
|
|
37
|
+
|
|
38
|
+
Copy this prompt to your AI assistant (Claude, Copilot, Cursor, etc.):
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Please install and configure @grant-vine/wunderkind by following the instructions at:
|
|
42
|
+
https://raw.githubusercontent.com/grant-vine/wunderkind/main/docs/guide/installation.md
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For agents that can run shell commands directly:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
curl -s https://raw.githubusercontent.com/grant-vine/wunderkind/main/docs/guide/installation.md
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The guide contains all flags for non-interactive install so the agent can run a single command without prompts.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### Interactive TUI (recommended)
|
|
13
56
|
|
|
14
57
|
```bash
|
|
15
58
|
bunx @grant-vine/wunderkind
|
|
@@ -22,13 +65,21 @@ npx @grant-vine/wunderkind
|
|
|
22
65
|
```
|
|
23
66
|
|
|
24
67
|
The TUI will guide you through:
|
|
25
|
-
1.
|
|
26
|
-
2.
|
|
27
|
-
3.
|
|
68
|
+
1. Installing oh-my-openagent if it isn't already (runs its own setup flow first).
|
|
69
|
+
2. Selecting the install scope (Global vs Project).
|
|
70
|
+
3. Configuring your project context: region, industry, and data-protection regulations.
|
|
71
|
+
4. Tailoring agent personalities and your team's culture baseline.
|
|
28
72
|
|
|
29
73
|
### Non-interactive install
|
|
74
|
+
|
|
30
75
|
For CI/CD or scripted environments, use the `install` command with the `--no-tui` flag.
|
|
31
76
|
|
|
77
|
+
> **oh-my-openagent must already be installed** before running non-interactive mode. If it isn't, install it first:
|
|
78
|
+
> ```bash
|
|
79
|
+
> bunx oh-my-opencode install --no-tui --claude=yes --gemini=no --copilot=yes
|
|
80
|
+
> ```
|
|
81
|
+
> See the [oh-my-openagent docs](https://github.com/code-yeongyu/oh-my-openagent) for all available options.
|
|
82
|
+
|
|
32
83
|
```bash
|
|
33
84
|
bunx @grant-vine/wunderkind install --no-tui \
|
|
34
85
|
--scope=global \
|
|
@@ -49,6 +100,68 @@ bunx @grant-vine/wunderkind install --no-tui \
|
|
|
49
100
|
|
|
50
101
|
---
|
|
51
102
|
|
|
103
|
+
## Init
|
|
104
|
+
|
|
105
|
+
Initialize the current directory as a Wunderkind project to enable advanced features like Documentation Output and agent context persistence.
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
wunderkind init [options]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Options
|
|
112
|
+
|
|
113
|
+
| Option | Description | Default |
|
|
114
|
+
|---|---|---|
|
|
115
|
+
| `--docs-path <path>` | Relative path for agent docs output | `./docs` |
|
|
116
|
+
| `--docs-history-mode <mode>` | Update style for documentation | `overwrite` |
|
|
117
|
+
| `--no-docs` | Disable documentation output | (false) |
|
|
118
|
+
| `--no-tui` | Skip interactive prompts | (false) |
|
|
119
|
+
|
|
120
|
+
`wunderkind init` creates the following project "soul files":
|
|
121
|
+
- `.wunderkind/wunderkind.config.jsonc` — Project-specific configuration
|
|
122
|
+
- `AGENTS.md` — Project knowledge base for agents
|
|
123
|
+
- `.sisyphus/` — Directory for agent planning, notepads, and evidence
|
|
124
|
+
- `<docsPath>/README.md` — Auto-generated documentation index (if enabled)
|
|
125
|
+
|
|
126
|
+
### Documentation History Modes
|
|
127
|
+
|
|
128
|
+
| Mode | Description |
|
|
129
|
+
|---|---|
|
|
130
|
+
| `overwrite` | Replaces the file contents each time (default) |
|
|
131
|
+
| `append-dated` | Appends a new dated section to the file |
|
|
132
|
+
| `new-dated-file` | Creates a new file with a date suffix |
|
|
133
|
+
| `overwrite-archive` | Overwrites the current file and archives the old one |
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Doctor
|
|
138
|
+
|
|
139
|
+
Run diagnostics to verify your installation, configuration, and project health.
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
wunderkind doctor
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`wunderkind doctor` reports:
|
|
146
|
+
- Installed version and scope (Global vs Project)
|
|
147
|
+
- Location of configuration files
|
|
148
|
+
- Presence and status of project soul files (in a project context)
|
|
149
|
+
- Current Documentation Output configuration and index status
|
|
150
|
+
|
|
151
|
+
`wunderkind doctor` is strictly read-only and makes no changes to your filesystem.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Documentation Output
|
|
156
|
+
|
|
157
|
+
When enabled, agents can persist their decisions and strategies to your project's docs folder.
|
|
158
|
+
|
|
159
|
+
1. **Enable** via `wunderkind init --docs-path ./docs`
|
|
160
|
+
2. **Configure** in `.wunderkind/wunderkind.config.jsonc` via `docsEnabled`, `docsPath`, and `docHistoryMode`.
|
|
161
|
+
3. **Index** via `/docs-index`. This is a **prompt-text slash command** that agents respond to (not a CLI command). Running `/docs-index` instructs agents to scan your documentation folder and regenerate the `<docsPath>/README.md` index.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
52
165
|
## Install Scope
|
|
53
166
|
|
|
54
167
|
| Scope | Description |
|
|
@@ -56,20 +169,28 @@ bunx @grant-vine/wunderkind install --no-tui \
|
|
|
56
169
|
| `global` (default) | Adds the plugin to `~/.config/opencode/opencode.json`. Agents are available in all projects. |
|
|
57
170
|
| `project` | Adds the plugin to `./opencode.json` (created if missing). Agents are limited to the current project. |
|
|
58
171
|
|
|
172
|
+
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.
|
|
173
|
+
|
|
59
174
|
---
|
|
60
175
|
|
|
61
176
|
## Agents
|
|
62
177
|
|
|
63
|
-
| Agent Key | Role |
|
|
178
|
+
| Agent Key | Role | Category |
|
|
64
179
|
|---|---|---|
|
|
65
|
-
| `wunderkind:marketing-wunderkind` | CMO-calibre strategist |
|
|
66
|
-
| `wunderkind:creative-director` | Brand & UI/UX lead |
|
|
67
|
-
| `wunderkind:product-wunderkind` | VP Product |
|
|
68
|
-
| `wunderkind:fullstack-wunderkind` | CTO-calibre engineer |
|
|
69
|
-
| `wunderkind:brand-builder` | Community, PR, thought leadership |
|
|
70
|
-
| `wunderkind:qa-specialist` | TDD, coverage, user story review |
|
|
71
|
-
| `wunderkind:operations-lead` | SRE/SLO, runbooks, incident response |
|
|
72
|
-
| `wunderkind:ciso` | Security architecture, OWASP, compliance |
|
|
180
|
+
| `wunderkind:marketing-wunderkind` | CMO-calibre strategist | writing |
|
|
181
|
+
| `wunderkind:creative-director` | Brand & UI/UX lead | visual-engineering |
|
|
182
|
+
| `wunderkind:product-wunderkind` | VP Product | writing |
|
|
183
|
+
| `wunderkind:fullstack-wunderkind` | CTO-calibre engineer | unspecified-high |
|
|
184
|
+
| `wunderkind:brand-builder` | Community, PR, thought leadership | writing |
|
|
185
|
+
| `wunderkind:qa-specialist` | TDD, coverage, user story review | unspecified-high |
|
|
186
|
+
| `wunderkind:operations-lead` | SRE/SLO, runbooks, incident response | unspecified-high |
|
|
187
|
+
| `wunderkind:ciso` | Security architecture, OWASP, compliance | unspecified-high |
|
|
188
|
+
| `wunderkind:devrel-wunderkind` | Developer relations and advocacy | writing |
|
|
189
|
+
| `wunderkind:legal-counsel` | Legal and regulatory compliance | writing |
|
|
190
|
+
| `wunderkind:support-engineer` | Technical support and troubleshooting | writing |
|
|
191
|
+
| `wunderkind:data-analyst` | Data analysis and insights | writing |
|
|
192
|
+
|
|
193
|
+
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.
|
|
73
194
|
|
|
74
195
|
---
|
|
75
196
|
|
|
@@ -88,62 +209,23 @@ bunx @grant-vine/wunderkind install --no-tui \
|
|
|
88
209
|
|
|
89
210
|
---
|
|
90
211
|
|
|
91
|
-
## Memory Commands
|
|
92
|
-
|
|
93
|
-
Manage agent memories stored in `.wunderkind/memory/` using the `memory` subcommand.
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
# Save a note to an agent's memory
|
|
97
|
-
wunderkind memory take-note --agent ciso --note "All production database access must go through the jump box."
|
|
98
|
-
|
|
99
|
-
# Search an agent's memories
|
|
100
|
-
wunderkind memory search --agent ciso --query "database access"
|
|
101
|
-
|
|
102
|
-
# Show memory count and stats for all agents
|
|
103
|
-
wunderkind memory count
|
|
104
|
-
|
|
105
|
-
# Show stats for a specific agent
|
|
106
|
-
wunderkind memory count --agent ciso
|
|
107
|
-
|
|
108
|
-
# Check the health of the configured memory adapter
|
|
109
|
-
wunderkind memory status
|
|
110
|
-
|
|
111
|
-
# Start memory services (required for mem0 adapter)
|
|
112
|
-
wunderkind memory start
|
|
113
|
-
|
|
114
|
-
# Analyze and preview stale memories for an agent
|
|
115
|
-
wunderkind memory reduce-noise --agent ciso
|
|
116
|
-
|
|
117
|
-
# Actually remove stale entries
|
|
118
|
-
wunderkind memory reduce-noise --agent ciso --confirm
|
|
119
|
-
|
|
120
|
-
# Export all memories to a zip file in .wunderkind/exports/
|
|
121
|
-
wunderkind memory export
|
|
122
|
-
|
|
123
|
-
# Import memories from a backup zip
|
|
124
|
-
wunderkind memory import backup.zip --strategy merge
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Import Strategies
|
|
128
|
-
- `merge` (default): Adds new memories from the zip without removing existing ones.
|
|
129
|
-
- `overwrite`: Clears existing memories before importing from the zip.
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
212
|
## Configuration
|
|
134
213
|
|
|
135
|
-
Wunderkind uses a hierarchical configuration system.
|
|
214
|
+
Wunderkind uses a hierarchical configuration system. The per-project config is merged on top of the global baseline at runtime — project values take precedence.
|
|
215
|
+
|
|
216
|
+
| File | Scope |
|
|
217
|
+
|---|---|
|
|
218
|
+
| `~/.wunderkind/wunderkind.config.jsonc` | Global baseline (applies to all projects) |
|
|
219
|
+
| `.wunderkind/wunderkind.config.jsonc` | Per-project override |
|
|
136
220
|
|
|
137
|
-
-
|
|
138
|
-
- **Per-project override**: `.wunderkind/wunderkind.config.jsonc`
|
|
221
|
+
Edit either file directly to change any value after install. The installer pre-fills both files with the values you provided during setup.
|
|
139
222
|
|
|
140
|
-
### Configuration
|
|
141
|
-
The `wunderkind.config.jsonc` file allows you to tailor agents to your project context:
|
|
223
|
+
### Configuration Reference
|
|
142
224
|
|
|
143
225
|
```jsonc
|
|
144
226
|
// Wunderkind configuration — edit these values to tailor agents to your project context
|
|
145
227
|
{
|
|
146
|
-
// Geographic region — e.g. "South Africa", "United States", "United Kingdom"
|
|
228
|
+
// Geographic region — e.g. "South Africa", "United States", "United Kingdom", "Australia"
|
|
147
229
|
"region": "South Africa",
|
|
148
230
|
// Industry vertical — e.g. "SaaS", "FinTech", "eCommerce", "HealthTech"
|
|
149
231
|
"industry": "SaaS",
|
|
@@ -159,14 +241,30 @@ The `wunderkind.config.jsonc` file allows you to tailor agents to your project c
|
|
|
159
241
|
"orgStructure": "flat",
|
|
160
242
|
|
|
161
243
|
// Agent personalities — controls each agent's default character archetype
|
|
244
|
+
// CISO: "paranoid-enforcer" | "pragmatic-risk-manager" | "educator-collaborator"
|
|
162
245
|
"cisoPersonality": "pragmatic-risk-manager",
|
|
246
|
+
// CTO/Fullstack: "grizzled-sysadmin" | "startup-bro" | "code-archaeologist"
|
|
163
247
|
"ctoPersonality": "code-archaeologist",
|
|
248
|
+
// CMO/Marketing: "data-driven" | "brand-storyteller" | "growth-hacker"
|
|
164
249
|
"cmoPersonality": "data-driven",
|
|
250
|
+
// QA: "rule-enforcer" | "risk-based-pragmatist" | "rubber-duck"
|
|
165
251
|
"qaPersonality": "risk-based-pragmatist",
|
|
252
|
+
// Product: "user-advocate" | "velocity-optimizer" | "outcome-obsessed"
|
|
166
253
|
"productPersonality": "outcome-obsessed",
|
|
254
|
+
// Operations: "on-call-veteran" | "efficiency-maximiser" | "process-purist"
|
|
167
255
|
"opsPersonality": "on-call-veteran",
|
|
256
|
+
// Creative Director: "perfectionist-craftsperson" | "bold-provocateur" | "pragmatic-problem-solver"
|
|
168
257
|
"creativePersonality": "pragmatic-problem-solver",
|
|
169
|
-
"
|
|
258
|
+
// Brand Builder: "community-evangelist" | "pr-spinner" | "authentic-builder"
|
|
259
|
+
"brandPersonality": "authentic-builder",
|
|
260
|
+
|
|
261
|
+
// Documentation Output (Init-only customizations)
|
|
262
|
+
// "true" | "false"
|
|
263
|
+
"docsEnabled": false,
|
|
264
|
+
// Relative path (e.g. "./docs", "./documentation")
|
|
265
|
+
"docsPath": "./docs",
|
|
266
|
+
// "overwrite" | "append-dated" | "new-dated-file" | "overwrite-archive"
|
|
267
|
+
"docHistoryMode": "overwrite"
|
|
170
268
|
}
|
|
171
269
|
```
|
|
172
270
|
|
|
@@ -174,41 +272,25 @@ The `wunderkind.config.jsonc` file allows you to tailor agents to your project c
|
|
|
174
272
|
|
|
175
273
|
## Directory Structure
|
|
176
274
|
|
|
177
|
-
###
|
|
178
|
-
```
|
|
179
|
-
.wunderkind/ # per-project directory (should be gitignored)
|
|
180
|
-
wunderkind.config.jsonc
|
|
181
|
-
memory/ # file adapter storage
|
|
182
|
-
memory.db # sqlite adapter storage
|
|
183
|
-
exports/ # memory export zips
|
|
184
|
-
```
|
|
275
|
+
### Per-project (gitignored automatically)
|
|
185
276
|
|
|
186
|
-
### Global Shared
|
|
187
277
|
```
|
|
188
|
-
|
|
189
|
-
wunderkind.config.jsonc
|
|
190
|
-
docker-compose.vector.yml
|
|
191
|
-
docker-compose.mem0.yml
|
|
278
|
+
.wunderkind/
|
|
279
|
+
wunderkind.config.jsonc # per-project config override
|
|
192
280
|
```
|
|
193
281
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
## Memory Adapters
|
|
197
|
-
|
|
198
|
-
Wunderkind supports four memory adapters for agent persistence:
|
|
282
|
+
### Global (`~/.wunderkind/`)
|
|
199
283
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
**Note**: Vector and mem0 adapters use a shared instance with project namespacing via a project slug derived from your `package.json` name.
|
|
284
|
+
```
|
|
285
|
+
~/.wunderkind/
|
|
286
|
+
wunderkind.config.jsonc # global config baseline
|
|
287
|
+
```
|
|
206
288
|
|
|
207
289
|
---
|
|
208
290
|
|
|
209
291
|
## Manual Installation
|
|
210
292
|
|
|
211
|
-
To manually add Wunderkind to your OpenCode configuration, update the `plugin` array in your `opencode.json
|
|
293
|
+
To manually add Wunderkind to your OpenCode configuration, update the `plugin` array in your `opencode.json`:
|
|
212
294
|
|
|
213
295
|
```json
|
|
214
296
|
{
|
|
@@ -218,9 +300,22 @@ To manually add Wunderkind to your OpenCode configuration, update the `plugin` a
|
|
|
218
300
|
|
|
219
301
|
---
|
|
220
302
|
|
|
303
|
+
## Gitignore
|
|
304
|
+
|
|
305
|
+
Run this command to ensure `.wunderkind/` and other AI tooling directories are gitignored in your project:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
wunderkind gitignore
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
This adds `.wunderkind/`, `AGENTS.md`, `.sisyphus/`, and `.opencode/` to your `.gitignore` if they aren't already present.
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
221
315
|
## Requirements
|
|
222
316
|
|
|
223
317
|
- [OpenCode](https://opencode.ai)
|
|
318
|
+
- [oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent)
|
|
224
319
|
- Node.js 18+ or Bun 1+
|
|
225
320
|
|
|
226
321
|
---
|
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.
|
|
@@ -14,8 +14,6 @@ You are the **Brand Builder**. Before acting, read `wunderkind.config.jsonc` and
|
|
|
14
14
|
- `teamCulture` and `orgStructure` — adjust communication formality and conflict resolution style accordingly.
|
|
15
15
|
- `region` — prioritise local community platforms, events, industry forums, and cultural nuances.
|
|
16
16
|
|
|
17
|
-
Read `.wunderkind/memory/brand-builder.md` (if present) — project-specific brand community decisions, PR contacts, platform presence, and audience context you have accumulated. When you learn something new, call `wunderkind_take_note`. To recall past knowledge, call `wunderkind_search_memories`. Load the `wunderkind:memory-manager` skill for full memory command reference.
|
|
18
|
-
|
|
19
17
|
---
|
|
20
18
|
|
|
21
19
|
# Brand Builder
|
|
@@ -48,7 +46,7 @@ Your north star: *build the brand by doing the work publicly and being genuinely
|
|
|
48
46
|
- Identify relevant product forums, Slack communities, Discord servers, subreddits, LinkedIn groups
|
|
49
47
|
- Engagement strategy for each: how to add value before asking for anything
|
|
50
48
|
- Weekly networking cadence: who to connect with, what to share, what conversations to enter
|
|
51
|
-
- 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
|
|
52
50
|
- Partnership opportunities: integration partners, content collaborators, co-marketing
|
|
53
51
|
|
|
54
52
|
### PR & Brand Narrative
|
|
@@ -102,7 +100,7 @@ Audit the current community presence across all platforms.
|
|
|
102
100
|
### `/forum-research <industry/product>`
|
|
103
101
|
Find the highest-value forums, communities, and events for a given domain.
|
|
104
102
|
|
|
105
|
-
**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.
|
|
106
104
|
|
|
107
105
|
```typescript
|
|
108
106
|
task(
|
|
@@ -220,6 +218,55 @@ task(
|
|
|
220
218
|
|
|
221
219
|
---
|
|
222
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
|
+
|
|
223
270
|
## Hard Rules
|
|
224
271
|
|
|
225
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,9 +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
|
|
25
|
-
|
|
26
|
-
Read `.wunderkind/memory/ciso.md` (if present) — these are project-specific security facts you've learned. Reference them when relevant. When you learn something new, call `wunderkind_take_note`. To recall past knowledge, call `wunderkind_search_memories`. Load the `wunderkind:memory-manager` skill for full memory command reference.
|
|
24
|
+
If `.wunderkind/wunderkind.config.jsonc` is absent, default to: `pragmatic-risk-manager`, `flat` org, GDPR as primary regulation.
|
|
27
25
|
|
|
28
26
|
---
|
|
29
27
|
|
|
@@ -192,7 +190,7 @@ task(
|
|
|
192
190
|
category="unspecified-high",
|
|
193
191
|
load_skills=["wunderkind:compliance-officer"],
|
|
194
192
|
description="Breach notification assessment for [incident type]",
|
|
195
|
-
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.",
|
|
196
194
|
run_in_background=false
|
|
197
195
|
)
|
|
198
196
|
```
|
|
@@ -280,6 +278,56 @@ task(
|
|
|
280
278
|
|
|
281
279
|
---
|
|
282
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
|
+
|
|
283
331
|
## Hard Rules
|
|
284
332
|
|
|
285
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.
|
|
@@ -14,8 +14,6 @@ You are the **Creative Director**. Before acting, read `wunderkind.config.jsonc`
|
|
|
14
14
|
- `teamCulture` for how formal design critique and review processes should be.
|
|
15
15
|
- `region` for cultural design preferences, colour symbolism, and typography conventions.
|
|
16
16
|
|
|
17
|
-
Read `.wunderkind/memory/creative-director.md` (if present) — project-specific brand decisions, design system choices, and visual language you've established. When you learn something new, call `wunderkind_take_note`. To recall past knowledge, call `wunderkind_search_memories`. Load the `wunderkind:memory-manager` skill for full memory command reference.
|
|
18
|
-
|
|
19
17
|
---
|
|
20
18
|
|
|
21
19
|
# Creative Director
|
|
@@ -242,4 +240,39 @@ Every design decision must meet:
|
|
|
242
240
|
- **Typography**: No more than 2 typefaces per project. Body text minimum 16px. Line-height minimum 1.5 for body copy.
|
|
243
241
|
- **Colour**: Semantic tokens only in components — never hard-coded hex values in component files.
|
|
244
242
|
- **Responsiveness**: Every component designed mobile-first. Test at 375px, 768px, 1280px, 1440px breakpoints.
|
|
245
|
-
- **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.
|