@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.
Files changed (109) hide show
  1. package/.claude-plugin/plugin.json +2 -2
  2. package/README.md +191 -47
  3. package/agents/brand-builder.md +52 -3
  4. package/agents/ciso.md +53 -3
  5. package/agents/creative-director.md +37 -2
  6. package/agents/data-analyst.md +208 -0
  7. package/agents/devrel-wunderkind.md +225 -0
  8. package/agents/fullstack-wunderkind.md +51 -1
  9. package/agents/legal-counsel.md +222 -0
  10. package/agents/marketing-wunderkind.md +59 -3
  11. package/agents/operations-lead.md +51 -1
  12. package/agents/product-wunderkind.md +57 -1
  13. package/agents/qa-specialist.md +51 -1
  14. package/agents/support-engineer.md +200 -0
  15. package/commands/docs-index.md +44 -0
  16. package/dist/agents/brand-builder.d.ts.map +1 -1
  17. package/dist/agents/brand-builder.js +53 -3
  18. package/dist/agents/brand-builder.js.map +1 -1
  19. package/dist/agents/ciso.d.ts.map +1 -1
  20. package/dist/agents/ciso.js +54 -3
  21. package/dist/agents/ciso.js.map +1 -1
  22. package/dist/agents/creative-director.d.ts.map +1 -1
  23. package/dist/agents/creative-director.js +37 -2
  24. package/dist/agents/creative-director.js.map +1 -1
  25. package/dist/agents/data-analyst.d.ts +8 -0
  26. package/dist/agents/data-analyst.d.ts.map +1 -0
  27. package/dist/agents/data-analyst.js +247 -0
  28. package/dist/agents/data-analyst.js.map +1 -0
  29. package/dist/agents/devrel-wunderkind.d.ts +8 -0
  30. package/dist/agents/devrel-wunderkind.d.ts.map +1 -0
  31. package/dist/agents/devrel-wunderkind.js +262 -0
  32. package/dist/agents/devrel-wunderkind.js.map +1 -0
  33. package/dist/agents/docs-config.d.ts +14 -0
  34. package/dist/agents/docs-config.d.ts.map +1 -0
  35. package/dist/agents/docs-config.js +82 -0
  36. package/dist/agents/docs-config.js.map +1 -0
  37. package/dist/agents/docs-index-plan.d.ts +28 -0
  38. package/dist/agents/docs-index-plan.d.ts.map +1 -0
  39. package/dist/agents/docs-index-plan.js +118 -0
  40. package/dist/agents/docs-index-plan.js.map +1 -0
  41. package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
  42. package/dist/agents/fullstack-wunderkind.js +52 -1
  43. package/dist/agents/fullstack-wunderkind.js.map +1 -1
  44. package/dist/agents/index.d.ts +4 -0
  45. package/dist/agents/index.d.ts.map +1 -1
  46. package/dist/agents/index.js +4 -0
  47. package/dist/agents/index.js.map +1 -1
  48. package/dist/agents/legal-counsel.d.ts +8 -0
  49. package/dist/agents/legal-counsel.d.ts.map +1 -0
  50. package/dist/agents/legal-counsel.js +260 -0
  51. package/dist/agents/legal-counsel.js.map +1 -0
  52. package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
  53. package/dist/agents/marketing-wunderkind.js +61 -3
  54. package/dist/agents/marketing-wunderkind.js.map +1 -1
  55. package/dist/agents/operations-lead.d.ts.map +1 -1
  56. package/dist/agents/operations-lead.js +52 -1
  57. package/dist/agents/operations-lead.js.map +1 -1
  58. package/dist/agents/product-wunderkind.d.ts.map +1 -1
  59. package/dist/agents/product-wunderkind.js +57 -1
  60. package/dist/agents/product-wunderkind.js.map +1 -1
  61. package/dist/agents/qa-specialist.d.ts.map +1 -1
  62. package/dist/agents/qa-specialist.js +52 -1
  63. package/dist/agents/qa-specialist.js.map +1 -1
  64. package/dist/agents/support-engineer.d.ts +8 -0
  65. package/dist/agents/support-engineer.d.ts.map +1 -0
  66. package/dist/agents/support-engineer.js +238 -0
  67. package/dist/agents/support-engineer.js.map +1 -0
  68. package/dist/build-agents.js +5 -1
  69. package/dist/build-agents.js.map +1 -1
  70. package/dist/cli/cli-installer.d.ts +9 -1
  71. package/dist/cli/cli-installer.d.ts.map +1 -1
  72. package/dist/cli/cli-installer.js +61 -2
  73. package/dist/cli/cli-installer.js.map +1 -1
  74. package/dist/cli/config-manager/index.d.ts +17 -1
  75. package/dist/cli/config-manager/index.d.ts.map +1 -1
  76. package/dist/cli/config-manager/index.js +423 -114
  77. package/dist/cli/config-manager/index.js.map +1 -1
  78. package/dist/cli/docs-output-helper.d.ts +11 -0
  79. package/dist/cli/docs-output-helper.d.ts.map +1 -0
  80. package/dist/cli/docs-output-helper.js +36 -0
  81. package/dist/cli/docs-output-helper.js.map +1 -0
  82. package/dist/cli/doctor.d.ts +6 -0
  83. package/dist/cli/doctor.d.ts.map +1 -0
  84. package/dist/cli/doctor.js +131 -0
  85. package/dist/cli/doctor.js.map +1 -0
  86. package/dist/cli/index.js +120 -8
  87. package/dist/cli/index.js.map +1 -1
  88. package/dist/cli/init.d.ts +9 -0
  89. package/dist/cli/init.d.ts.map +1 -0
  90. package/dist/cli/init.js +270 -0
  91. package/dist/cli/init.js.map +1 -0
  92. package/dist/cli/tui-installer.d.ts.map +1 -1
  93. package/dist/cli/tui-installer.js +93 -292
  94. package/dist/cli/tui-installer.js.map +1 -1
  95. package/dist/cli/types.d.ts +53 -15
  96. package/dist/cli/types.d.ts.map +1 -1
  97. package/dist/cli/uninstall.d.ts +6 -0
  98. package/dist/cli/uninstall.d.ts.map +1 -0
  99. package/dist/cli/uninstall.js +64 -0
  100. package/dist/cli/uninstall.js.map +1 -0
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +41 -7
  103. package/dist/index.js.map +1 -1
  104. package/oh-my-opencode.jsonc +58 -13
  105. package/package.json +6 -3
  106. package/schemas/wunderkind.config.schema.json +67 -0
  107. package/skills/experimentation-analyst/SKILL.md +137 -0
  108. package/skills/oss-licensing-advisor/SKILL.md +141 -0
  109. package/skills/technical-writer/SKILL.md +150 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wunderkind",
3
- "version": "0.5.0",
4
- "description": "Wunderkind specialist AI agents for any software product team, built as an oh-my-opencode addon",
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 eight professional agents covering marketing, design, product, engineering, brand building, QA, operations, and security.
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-opencode](https://github.com/code-yeongyu/oh-my-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 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-opencode if it isn't already (runs its own setup flow first).
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 project context: region, industry, and data-protection regulations.
46
- 4. Tailoring agent personalities and your team's culture baseline.
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-opencode must already be installed** before running non-interactive mode. If it isn't, install it first:
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-opencode docs](https://github.com/code-yeongyu/oh-my-opencode) for all available options.
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-opencode configuration. Removing Wunderkind leaves oh-my-opencode intact.
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 | Model |
229
+ | Agent Key | Role | Category |
97
230
  |---|---|---|
98
- | `wunderkind:marketing-wunderkind` | CMO-calibre strategist | inherits from oh-my-opencode |
99
- | `wunderkind:creative-director` | Brand & UI/UX lead | gemini-2.0-flash |
100
- | `wunderkind:product-wunderkind` | VP Product | inherits from oh-my-opencode |
101
- | `wunderkind:fullstack-wunderkind` | CTO-calibre engineer | inherits from oh-my-opencode |
102
- | `wunderkind:brand-builder` | Community, PR, thought leadership | inherits from oh-my-opencode |
103
- | `wunderkind:qa-specialist` | TDD, coverage, user story review | inherits from oh-my-opencode |
104
- | `wunderkind:operations-lead` | SRE/SLO, runbooks, incident response | inherits from oh-my-opencode |
105
- | `wunderkind:ciso` | Security architecture, OWASP, compliance | inherits from oh-my-opencode |
106
-
107
- Agent models default to whatever provider you selected during oh-my-opencode setup (read from `agents.sisyphus.model` in your oh-my-opencode config). The creative-director uses Gemini regardless, as it requires a multimodal model.
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 hierarchical configuration system. The per-project config is merged on top of the global baseline at runtime — project values take precedence.
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 override |
272
+ | `.wunderkind/wunderkind.config.jsonc` | Per-project soul/personality/docs settings |
134
273
 
135
- Edit either file directly to change any value after install. The installer pre-fills both files with the values you provided during setup.
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
- // Wunderkind configuration — edit these values to tailor agents to your project context
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
- // Brand Builder: "community-evangelist" | "pr-spinner" | "authentic-builder"
173
- "brandPersonality": "authentic-builder"
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-opencode](https://github.com/code-yeongyu/oh-my-opencode)
370
+ - [oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent)
227
371
  - Node.js 18+ or Bun 1+
228
372
 
229
373
  ---
@@ -6,7 +6,7 @@ description: >
6
6
 
7
7
  # Brand Builder — Soul
8
8
 
9
- You are the **Brand Builder**. Before acting, read `wunderkind.config.jsonc` and load:
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 `wunderkind.config.jsonc` for `region` and `industry` to prioritise regionally relevant events
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 `wunderkind.config.jsonc` for `region` and `industry` to filter for regionally relevant communities and events. If blank, return a globally diverse list.
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 `wunderkind.config.jsonc` and load:
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 `wunderkind.config.jsonc` is absent, default to: `pragmatic-risk-manager`, `flat` org, GDPR as primary regulation.
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 `wunderkind.config.jsonc` and load:
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.