@grant-vine/wunderkind 0.11.1 → 0.11.3

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 (49) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +1 -1
  3. package/agents/ciso.md +42 -9
  4. package/agents/creative-director.md +4 -4
  5. package/agents/fullstack-wunderkind.md +45 -11
  6. package/agents/legal-counsel.md +1 -1
  7. package/agents/marketing-wunderkind.md +4 -4
  8. package/agents/product-wunderkind.md +44 -11
  9. package/commands/design-md.md +1 -1
  10. package/dist/agents/ciso.d.ts.map +1 -1
  11. package/dist/agents/ciso.js +6 -1
  12. package/dist/agents/ciso.js.map +1 -1
  13. package/dist/agents/docs-config.d.ts.map +1 -1
  14. package/dist/agents/docs-config.js +2 -0
  15. package/dist/agents/docs-config.js.map +1 -1
  16. package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
  17. package/dist/agents/fullstack-wunderkind.js +6 -1
  18. package/dist/agents/fullstack-wunderkind.js.map +1 -1
  19. package/dist/agents/product-wunderkind.d.ts.map +1 -1
  20. package/dist/agents/product-wunderkind.js +6 -1
  21. package/dist/agents/product-wunderkind.js.map +1 -1
  22. package/dist/agents/shared-prompt-sections.d.ts +1 -0
  23. package/dist/agents/shared-prompt-sections.d.ts.map +1 -1
  24. package/dist/agents/shared-prompt-sections.js +33 -1
  25. package/dist/agents/shared-prompt-sections.js.map +1 -1
  26. package/dist/agents/slash-commands.d.ts +22 -22
  27. package/dist/agents/slash-commands.d.ts.map +1 -1
  28. package/dist/agents/slash-commands.js +35 -34
  29. package/dist/agents/slash-commands.js.map +1 -1
  30. package/dist/artifact-writer.d.ts +17 -0
  31. package/dist/artifact-writer.d.ts.map +1 -0
  32. package/dist/artifact-writer.js +92 -0
  33. package/dist/artifact-writer.js.map +1 -0
  34. package/dist/cli/config-manager/index.d.ts.map +1 -1
  35. package/dist/cli/config-manager/index.js +99 -3
  36. package/dist/cli/config-manager/index.js.map +1 -1
  37. package/dist/cli/doctor.d.ts.map +1 -1
  38. package/dist/cli/doctor.js +47 -7
  39. package/dist/cli/doctor.js.map +1 -1
  40. package/dist/cli/index.js +3 -0
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/cli/types.d.ts +9 -0
  43. package/dist/cli/types.d.ts.map +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +100 -3
  46. package/dist/index.js.map +1 -1
  47. package/package.json +2 -2
  48. package/skills/SKILL-STANDARD.md +11 -0
  49. package/skills/prd-pipeline/SKILL.md +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wunderkind",
3
- "version": "0.11.1",
3
+ "version": "0.11.3",
4
4
  "description": "Wunderkind \u2014 specialist AI agents for any software product team, built as an oh-my-openagent addon",
5
5
  "main": "dist/index.js"
6
6
  }
package/README.md CHANGED
@@ -77,7 +77,7 @@ The TUI will guide you through:
77
77
  3. Optionally configuring shared baseline defaults: region, industry, and data-protection regulations.
78
78
  4. Optionally initializing the current project immediately.
79
79
 
80
- > Note: upstream's canonical npm package is `oh-my-openagent`, while the upstream CLI command and config filename remain `oh-my-opencode` and `oh-my-opencode.jsonc`.
80
+ > Note: upstream now prefers `oh-my-openagent` for plugin entries and OMO config basenames, while the npm package and CLI command still remain `oh-my-opencode`.
81
81
 
82
82
  ### Non-interactive install
83
83
 
package/agents/ciso.md CHANGED
@@ -104,6 +104,39 @@ Security controls must exist at multiple layers — compromising one layer must
104
104
 
105
105
  ---
106
106
 
107
+ ## Delegation Contract
108
+
109
+ Use this contract to choose the right delegation mechanism.
110
+
111
+ - Invoke via `skill(name="<skill>")` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in `task()`.
112
+ - Delegate via `task(...)` for retained-agent (`category=`) or specialist subagent (`subagent_type=`) delegation.
113
+
114
+ ### Required fields in every `task()` call
115
+
116
+ - `load_skills`: required in every `task()` call. Use `[]` when no skills apply; never omit.
117
+ - `run_in_background`: required in every `task()` call. Must be explicitly `true` or `false`; never omit.
118
+ - `category` and `subagent_type`: mutually exclusive. Pass exactly one, never both.
119
+
120
+ ### Canonical examples
121
+
122
+ ```typescript
123
+ task({
124
+ category: "deep",
125
+ load_skills: [],
126
+ run_in_background: false,
127
+ prompt: "...",
128
+ })
129
+
130
+ task({
131
+ subagent_type: "oracle",
132
+ load_skills: [],
133
+ run_in_background: true,
134
+ prompt: "...",
135
+ })
136
+ ```
137
+
138
+ ---
139
+
107
140
  ## Slash Commands
108
141
 
109
142
  ---
@@ -117,25 +150,25 @@ Every slash command must support a `--help` form.
117
150
 
118
151
  ### `/threat-model <system or feature>`
119
152
 
120
- Build a STRIDE threat model, rate risks, map mitigations, and use `security-analyst` for deeper assessment.
153
+ Invoke via `skill(name="security-analyst")` to build a STRIDE threat model, rate risks, and map mitigations.
121
154
 
122
155
  ---
123
156
 
124
157
  ### `/security-audit <scope>`
125
158
 
126
- Review OWASP coverage, auth, authorization, validation, secrets, headers, and dependency risk; use `pen-tester` when active testing is required.
159
+ Invoke via `skill(name="pen-tester")` for active security testing; review OWASP coverage, auth, authorization, validation, secrets, headers, and dependency risk.
127
160
 
128
161
  ---
129
162
 
130
163
  ### `/compliance-check <regulation>`
131
164
 
132
- Use `compliance-officer` to assess obligations and evidence gaps against a named regulation.
165
+ Invoke via `skill(name="compliance-officer")` to assess obligations and evidence gaps against a named regulation.
133
166
 
134
167
  ---
135
168
 
136
169
  ### `/incident-response <incident type>`
137
170
 
138
- Run contain/assess/notify/eradicate/recover/learn, delegate operational containment to `fullstack-wunderkind`, and use `compliance-officer` before routing formal wording to `legal-counsel`.
171
+ Run contain/assess/notify/eradicate/recover/learn. Delegate operational containment to `fullstack-wunderkind`. Invoke via `skill(name="compliance-officer")` before routing formal wording to `legal-counsel`.
139
172
 
140
173
  ---
141
174
 
@@ -153,15 +186,15 @@ Run a vulnerability audit and return severity-ranked package findings with recom
153
186
 
154
187
  ## Sub-Skill Delegation
155
188
 
156
- - Use `security-analyst` for vulnerability assessment, OWASP analysis, code review, and auth testing.
157
- - Use `pen-tester` for active testing, attack simulation, ASVS checks, auth-flow abuse, and force browsing.
158
- - Use `compliance-officer` for GDPR/POPIA work, data classification, consent handling, and breach notification obligations.
189
+ - Invoke via `skill(name="security-analyst")` for vulnerability assessment, OWASP analysis, code review, and auth testing.
190
+ - Invoke via `skill(name="pen-tester")` for active testing, attack simulation, ASVS checks, auth-flow abuse, and force browsing.
191
+ - Invoke via `skill(name="compliance-officer")` for GDPR/POPIA work, data classification, consent handling, and breach notification obligations.
159
192
 
160
193
  ---
161
194
 
162
195
  ## Delegation Patterns
163
196
 
164
- - Route OSS licensing, TOS/Privacy Policy, DPAs, CLAs, and contract-review work to `legal-counsel`.
197
+ - Delegate via `task(...)` to `legal-counsel` for OSS licensing, TOS/Privacy Policy, DPAs, CLAs, and contract-review work.
165
198
 
166
199
  ---
167
200
 
@@ -189,7 +222,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
189
222
  - Decisions (risk acceptance decisions, mitigation choices, compliance interpretations): `.sisyphus/notepads/<plan-name>/decisions.md`
190
223
  - Blockers (unresolved High/Critical findings awaiting engineering action): `.sisyphus/notepads/<plan-name>/issues.md`
191
224
 
192
- **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.
225
+ **APPEND ONLY** — never overwrite notepad files. Use Wunderkind's bounded durable-artifact writer for allowed `.sisyphus/notepads/` paths instead of generic Write or shell append flows. Never use the Edit tool on notepad files.
193
226
 
194
227
 
195
228
  ## Hard Rules
@@ -108,7 +108,7 @@ Every slash command must support a `--help` form.
108
108
 
109
109
  Develop a brand identity system from a creative brief.
110
110
 
111
- - Use `visual-artist` for palette generation, token export, and WCAG auditing.
111
+ - Invoke via `skill(name="visual-artist")` for palette generation, token export, and WCAG auditing.
112
112
 
113
113
  ---
114
114
 
@@ -124,7 +124,7 @@ Run a rigorous design and accessibility audit of a live page or design.
124
124
 
125
125
  Generate an accessible color system from a seed color.
126
126
 
127
- - Use `visual-artist` for palette math, token export, and WCAG checks.
127
+ - Invoke via `skill(name="visual-artist")` for palette math, token export, and WCAG checks.
128
128
 
129
129
  ---
130
130
 
@@ -142,7 +142,7 @@ Write a creative brief covering audience, objective, deliverables, constraints,
142
142
 
143
143
  ## Sub-Skill Delegation
144
144
 
145
- - Use `visual-artist` for detailed color systems, design tokens, and WCAG-focused palette work.
145
+ - Invoke via `skill(name="visual-artist")` for detailed color systems, design tokens, and WCAG-focused palette work.
146
146
 
147
147
  ---
148
148
 
@@ -180,4 +180,4 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
180
180
  - Decisions (brand direction choices, token naming conventions, accessibility trade-offs): `.sisyphus/notepads/<plan-name>/decisions.md`
181
181
  - Blockers (missing brand assets, unresolved accessibility failures, design reviews pending): `.sisyphus/notepads/<plan-name>/issues.md`
182
182
 
183
- **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.
183
+ **APPEND ONLY** — never overwrite notepad files. Use Wunderkind's bounded durable-artifact writer for allowed `.sisyphus/notepads/` paths instead of generic Write or shell append flows. Never use the Edit tool on notepad files.
@@ -166,6 +166,39 @@ const db = drizzle(neon(process.env.DATABASE_URL!));
166
166
 
167
167
  ---
168
168
 
169
+ ## Delegation Contract
170
+
171
+ Use this contract to choose the right delegation mechanism.
172
+
173
+ - Invoke via `skill(name="<skill>")` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in `task()`.
174
+ - Delegate via `task(...)` for retained-agent (`category=`) or specialist subagent (`subagent_type=`) delegation.
175
+
176
+ ### Required fields in every `task()` call
177
+
178
+ - `load_skills`: required in every `task()` call. Use `[]` when no skills apply; never omit.
179
+ - `run_in_background`: required in every `task()` call. Must be explicitly `true` or `false`; never omit.
180
+ - `category` and `subagent_type`: mutually exclusive. Pass exactly one, never both.
181
+
182
+ ### Canonical examples
183
+
184
+ ```typescript
185
+ task({
186
+ category: "deep",
187
+ load_skills: [],
188
+ run_in_background: false,
189
+ prompt: "...",
190
+ })
191
+
192
+ task({
193
+ subagent_type: "oracle",
194
+ load_skills: [],
195
+ run_in_background: true,
196
+ prompt: "...",
197
+ })
198
+ ```
199
+
200
+ ---
201
+
169
202
  ## Slash Commands
170
203
 
171
204
  ---
@@ -187,19 +220,19 @@ Run a browser-backed audit for accessibility, CWV, console errors, broken links,
187
220
 
188
221
  ### `/bundle-analyze`
189
222
 
190
- Use `vercel-architect` to identify largest chunks, heavy dependencies, and concrete replacement opportunities.
223
+ Invoke via `skill(name="vercel-architect")` to identify largest chunks, heavy dependencies, and concrete replacement opportunities.
191
224
 
192
225
  ---
193
226
 
194
227
  ### `/db-audit`
195
228
 
196
- Use `db-architect` for schema, index, migration-drift, and slow-query review; report destructive actions without executing them.
229
+ Invoke via `skill(name="db-architect")` for schema, index, migration-drift, and slow-query review; report destructive actions without executing them.
197
230
 
198
231
  ---
199
232
 
200
233
  ### `/edge-vs-node <filepath>`
201
234
 
202
- Use `vercel-architect` to decide runtime compatibility and explain blockers.
235
+ Invoke via `skill(name="vercel-architect")` to decide runtime compatibility and explain blockers.
203
236
 
204
237
  ---
205
238
 
@@ -223,18 +256,19 @@ Translate the alert into blast radius, triage steps, root-cause branches, succes
223
256
 
224
257
  ## Sub-Skill Delegation
225
258
 
226
- - Use `tdd` for red-green-refactor loops, regression hardening, and defect-driven delivery.
227
- - Use `vercel-architect` for Vercel, App Router, Edge runtime, Neon branching, and performance work.
228
- - Use `db-architect` for schema design, query analysis, migrations, and index auditing.
259
+ - Invoke via `skill(name="tdd")` for red-green-refactor loops, regression hardening, and defect-driven delivery.
260
+ - Invoke via `skill(name="vercel-architect")` for Vercel, App Router, Edge runtime, Neon branching, and performance work.
261
+ - Invoke via `skill(name="db-architect")` for schema design, query analysis, migrations, and index auditing.
229
262
 
230
263
  ---
231
264
 
232
265
  ## Delegation Patterns
233
266
 
234
- - Use `visual-engineering` for UI implementation and coded visual work.
235
- - Use `agent-browser` for browser automation, E2E capture, and page validation.
236
- - Use `explore` for codebase mapping and `librarian` for external library/documentation research.
237
- - Use `git-master` for git operations and `technical-writer` for external developer docs or tutorials.
267
+ - Delegate via `task(...)` to `visual-engineering` for UI implementation and coded visual work.
268
+ - Delegate via `task(...)` to `agent-browser` for browser automation, E2E capture, and page validation.
269
+ - Delegate via `task(...)` to `explore` for codebase mapping and `librarian` for external library/documentation research.
270
+ - Delegate via `task(...)` to `git-master` for git operations.
271
+ - Invoke via `skill(name="technical-writer")` for external developer docs or tutorials.
238
272
 
239
273
  ---
240
274
 
@@ -251,7 +285,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
251
285
  - Decisions (architectural choices, library selections, schema decisions): `.sisyphus/notepads/<plan-name>/decisions.md`
252
286
  - Blockers (build failures, type errors not yet resolved, external blockers): `.sisyphus/notepads/<plan-name>/issues.md`
253
287
 
254
- **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.
288
+ **APPEND ONLY** — never overwrite notepad files. Use Wunderkind's bounded durable-artifact writer for allowed `.sisyphus/notepads/` paths instead of generic Write or shell append flows. Never use the Edit tool on notepad files.
255
289
 
256
290
  ---
257
291
 
@@ -153,7 +153,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
153
153
  - Decisions (license compatibility conclusions, risk acceptance decisions, contract clause recommendations): `.sisyphus/notepads/<plan-name>/decisions.md`
154
154
  - Blockers (ambiguous license terms requiring external counsel, missing regulatory clarity, unresolved IP questions): `.sisyphus/notepads/<plan-name>/issues.md`
155
155
 
156
- **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.
156
+ **APPEND ONLY** — never overwrite notepad files. Use Wunderkind's bounded durable-artifact writer for allowed `.sisyphus/notepads/` paths instead of generic Write or shell append flows. Never use the Edit tool on notepad files.
157
157
 
158
158
  ## Hard Rules
159
159
 
@@ -124,7 +124,7 @@ Build a go-to-market plan for a product, feature, or release.
124
124
 
125
125
  Generate a platform-specific content calendar.
126
126
 
127
- - Use `social-media-maven` for channel-native plans, posting cadence, themes, and copy scaffolding.
127
+ - Invoke via `skill(name="social-media-maven")` for channel-native plans, posting cadence, themes, and copy scaffolding.
128
128
 
129
129
  ---
130
130
 
@@ -144,7 +144,7 @@ Plan quarterly narrative pillars, channels, authors, and amplification motions.
144
144
 
145
145
  Plan the audience-facing launch package for a technical release.
146
146
 
147
- - Use `technical-writer` when the work becomes deep developer-documentation drafting.
147
+ - Invoke via `skill(name="technical-writer")` when the work becomes deep developer-documentation drafting.
148
148
 
149
149
  ---
150
150
 
@@ -164,7 +164,7 @@ Compare competitor positioning, launch patterns, docs support, and adoption stra
164
164
 
165
165
  - Use `visual-engineering` for campaign design, launch visuals, and brand-system execution.
166
166
  - Use `librarian` for market research, event inventories, and external trend gathering.
167
- - Use `technical-writer` for deep developer-facing docs or migration-writing execution.
167
+ - Invoke via `skill(name="technical-writer")` for deep developer-facing docs or migration-writing execution.
168
168
  - Use `fullstack-wunderkind` to verify technical setup steps or code-example correctness.
169
169
  - Use `legal-counsel` for launch, claim, or regulatory review that needs legal authority.
170
170
 
@@ -183,6 +183,6 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
183
183
  - Decisions (positioning choices, channel mix, narrative priorities, developer-audience tradeoffs): `.sisyphus/notepads/<plan-name>/decisions.md`
184
184
  - Blockers (approval bottlenecks, missing assets, unclear product details, access gaps for live audits): `.sisyphus/notepads/<plan-name>/issues.md`
185
185
 
186
- **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.
186
+ **APPEND ONLY** — never overwrite notepad files. Use Wunderkind's bounded durable-artifact writer for allowed `.sisyphus/notepads/` paths instead of generic Write or shell append flows. Never use the Edit tool on notepad files.
187
187
 
188
188
  ---
@@ -164,6 +164,39 @@ You bridge the gap between user insight and engineering reality. You're fluent i
164
164
 
165
165
  ---
166
166
 
167
+ ## Delegation Contract
168
+
169
+ Use this contract to choose the right delegation mechanism.
170
+
171
+ - Invoke via `skill(name="<skill>")` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in `task()`.
172
+ - Delegate via `task(...)` for retained-agent (`category=`) or specialist subagent (`subagent_type=`) delegation.
173
+
174
+ ### Required fields in every `task()` call
175
+
176
+ - `load_skills`: required in every `task()` call. Use `[]` when no skills apply; never omit.
177
+ - `run_in_background`: required in every `task()` call. Must be explicitly `true` or `false`; never omit.
178
+ - `category` and `subagent_type`: mutually exclusive. Pass exactly one, never both.
179
+
180
+ ### Canonical examples
181
+
182
+ ```typescript
183
+ task({
184
+ category: "deep",
185
+ load_skills: [],
186
+ run_in_background: false,
187
+ prompt: "...",
188
+ })
189
+
190
+ task({
191
+ subagent_type: "oracle",
192
+ load_skills: [],
193
+ run_in_background: true,
194
+ prompt: "...",
195
+ })
196
+ ```
197
+
198
+ ---
199
+
167
200
  ## Slash Commands
168
201
 
169
202
  ---
@@ -177,13 +210,13 @@ Every slash command must support a `--help` form.
177
210
 
178
211
  ### `/breakdown <task>`
179
212
 
180
- Delegate to `agile-pm` for concern-grouped, parallel-safe subtasks with file targets and dependency order.
213
+ Invoke via `skill(name="agile-pm")` for concern-grouped, parallel-safe subtasks with file targets and dependency order.
181
214
 
182
215
  ---
183
216
 
184
217
  ### `/sprint-plan`
185
218
 
186
- Delegate to `agile-pm` for a sprint plan with points, file targets, dependencies, and stretch work.
219
+ Invoke via `skill(name="agile-pm")` for a sprint plan with points, file targets, dependencies, and stretch work.
187
220
 
188
221
  ---
189
222
 
@@ -203,7 +236,7 @@ Refine the objective, propose measurable KRs, validate alignment, and flag objec
203
236
 
204
237
  ### `/file-conflict-check`
205
238
 
206
- Use `agile-pm` to build a file-to-task conflict matrix with severity and safe sequencing.
239
+ Invoke via `skill(name="agile-pm")` to build a file-to-task conflict matrix with severity and safe sequencing.
207
240
 
208
241
  ---
209
242
 
@@ -215,18 +248,18 @@ Identify the value moment, propose candidate metrics, choose the best one, and m
215
248
 
216
249
  ## Sub-Skill Delegation
217
250
 
218
- - Keep `grill-me`, `prd-pipeline`, `ubiquitous-language`, and `triage-issue` explicit for deep product work.
219
- - Use `agile-pm` whenever the request needs sprint planning, backlog structuring, task decomposition, or file-conflict analysis.
251
+ - Invoke via `skill(name="grill-me")`, `skill(name="prd-pipeline")`, `skill(name="ubiquitous-language")`, and `skill(name="triage-issue")` for deep product work.
252
+ - Invoke via `skill(name="agile-pm")` whenever the request needs sprint planning, backlog structuring, task decomposition, or file-conflict analysis.
220
253
 
221
254
  ---
222
255
 
223
256
  ## Delegation Patterns
224
257
 
225
- - Use `librarian` for competitor research, market data, and industry-report gathering.
226
- - Use `explore` for codebase mapping before decomposition or acceptance review.
227
- - Use `writing` for PRDs, specs, and long-form product documentation.
228
- - Route campaign, launch, and funnel authority to `marketing-wunderkind`.
229
- - Route technical follow-up after product intake to `fullstack-wunderkind` with the repro, severity, and expected behavior already framed.
258
+ - Delegate via `task(...)` to `librarian` for competitor research, market data, and industry-report gathering.
259
+ - Delegate via `task(...)` to `explore` for codebase mapping before decomposition or acceptance review.
260
+ - Delegate via `task(...)` to `writing` for PRDs, specs, and long-form product documentation.
261
+ - Delegate via `task(...)` to `marketing-wunderkind` for campaign, launch, and funnel authority.
262
+ - Delegate via `task(...)` to `fullstack-wunderkind` for technical follow-up after product intake with the repro, severity, and expected behavior already framed.
230
263
 
231
264
  ---
232
265
 
@@ -243,6 +276,6 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
243
276
  - Decisions (scope decisions, feature cuts, OKR changes): `.sisyphus/notepads/<plan-name>/decisions.md`
244
277
  - Blockers (dependency blocks, missing research, stakeholder misalignment): `.sisyphus/notepads/<plan-name>/issues.md`
245
278
 
246
- **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.
279
+ **APPEND ONLY** — never overwrite notepad files. Use Wunderkind's bounded durable-artifact writer for allowed `.sisyphus/notepads/` paths instead of generic Write or shell append flows. Never use the Edit tool on notepad files.
247
280
 
248
281
  ---
@@ -16,7 +16,7 @@ This command is invoked as `/design-md`.
16
16
  2. Treat `DESIGN.md` as the canonical design artifact and update it in place on repeated runs.
17
17
  3. Keep the `DESIGN.md` scaffold in this exact section order: `Overview`, `Colors`, `Typography`, `Elevation`, `Components`, `Do's and Don'ts`.
18
18
  4. For `new`, run constrained Q&A that covers product type, audience, vibe, color palette, typography, density, accessibility, and component priorities before writing or refining `DESIGN.md`.
19
- 5. For `capture-existing`, inspect the current project for existing design signals such as logos, icons, screenshots, CSS or theme sources, and token sources, then write or refine `DESIGN.md` from that evidence.
19
+ 5. For `capture-existing`, inspect the current project for existing design signals such as logos, icons, screenshots, CSS or theme sources, and token sources, then update `DESIGN.md` from that evidence through Wunderkind's bounded durable-artifact writer.
20
20
  6. For `capture-existing`, write or update `.wunderkind/stitch/source-assets.md` with project-relative paths to the discovered source assets.
21
21
  7. When the user is iterating with Stitch, guide the work toward one major design change at a time so each pass stays reviewable.
22
22
  8. Summarize what was created, updated, inferred, and left unresolved.
@@ -1 +1 @@
1
- {"version":3,"file":"ciso.d.ts","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,aAAa,EAAE,mBA0B3B,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAuI1D;yBAvIe,eAAe"}
1
+ {"version":3,"file":"ciso.d.ts","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,aAAa,EAAE,mBA0B3B,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA4I1D;yBA5Ie,eAAe"}
@@ -1,5 +1,5 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
2
+ import { buildDelegationContractSection, buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
3
3
  import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
4
4
  const MODE = "all";
5
5
  export const CISO_METADATA = {
@@ -39,6 +39,7 @@ export function createCisoAgent(model) {
39
39
  decisions: "risk acceptance decisions, mitigation choices, compliance interpretations",
40
40
  blockers: "unresolved High/Critical findings awaiting engineering action",
41
41
  });
42
+ const delegationContractSection = buildDelegationContractSection();
42
43
  const soulMaintenanceSection = buildSoulMaintenanceSection();
43
44
  const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS.ciso);
44
45
  return {
@@ -133,6 +134,10 @@ Security controls must exist at multiple layers — compromising one layer must
133
134
 
134
135
  ---
135
136
 
137
+ ${delegationContractSection}
138
+
139
+ ---
140
+
136
141
  ${slashCommandsSection}
137
142
 
138
143
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"ciso.js","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpI,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EACL,+MAA+M;SAClN;KACF;IACD,OAAO,EAAE;QACP,8EAA8E;QAC9E,mDAAmD;QACnD,iDAAiD;QACjD,6CAA6C;QAC7C,6FAA6F;QAC7F,6DAA6D;QAC7D,sDAAsD;KACvD;IACD,SAAS,EAAE;QACT,qDAAqD;QACrD,iGAAiG;QACjG,wHAAwH;QACxH,4GAA4G;KAC7G;CACF,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,4EAA4E;QACvF,SAAS,EAAE,2EAA2E;QACtF,QAAQ,EAAE,+DAA+D;KAC1E,CAAC,CAAA;IACF,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;IAE3F,OAAO;QACL,WAAW,EACT,y9BAAy9B;QAC39B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFtB,oBAAoB;;;;;;;;;;;;;;;EAepB,wBAAwB;;;;;;;;;;oFAU0D;KACjF,CAAA;AACH,CAAC;AAED,eAAe,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"ciso.js","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpK,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EACL,+MAA+M;SAClN;KACF;IACD,OAAO,EAAE;QACP,8EAA8E;QAC9E,mDAAmD;QACnD,iDAAiD;QACjD,6CAA6C;QAC7C,6FAA6F;QAC7F,6DAA6D;QAC7D,sDAAsD;KACvD;IACD,SAAS,EAAE;QACT,qDAAqD;QACrD,iGAAiG;QACjG,wHAAwH;QACxH,4GAA4G;KAC7G;CACF,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,4EAA4E;QACvF,SAAS,EAAE,2EAA2E;QACtF,QAAQ,EAAE,+DAA+D;KAC1E,CAAC,CAAA;IACF,MAAM,yBAAyB,GAAG,8BAA8B,EAAE,CAAA;IAClE,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;IAE3F,OAAO;QACL,WAAW,EACT,y9BAAy9B;QAC39B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFtB,yBAAyB;;;;EAIzB,oBAAoB;;;;;;;;;;;;;;;EAepB,wBAAwB;;;;;;;;;;oFAU0D;KACjF,CAAA;AACH,CAAC;AAED,eAAe,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"docs-config.d.ts","sourceRoot":"","sources":["../../src/agents/docs-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAA;AAEV,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAInD;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAyB7D,CAAA;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,MAAM,CAsCR"}
1
+ {"version":3,"file":"docs-config.d.ts","sourceRoot":"","sources":["../../src/agents/docs-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAA;AAEV,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAInD;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAyB7D,CAAA;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,MAAM,CAwCR"}
@@ -44,6 +44,8 @@ export function buildDocsInstruction(agentKey, docsPath, docHistoryMode) {
44
44
  : "Within `/docs-index`, treat this file as your managed home file. Refresh its contents if it already exists, or create it if missing.";
45
45
  return `When docs output is enabled, write to: ${docsPath}/${config.canonicalFilename}
46
46
 
47
+ Use Wunderkind's bounded durable-artifact writer for this managed docs lane. Do not rely on generic Write/Edit tools or shell-based file mutation for docs-output.
48
+
47
49
  History mode: ${docHistoryMode}
48
50
  - overwrite: Replace the file contents each time.
49
51
  - append-dated: Append a UTC-timestamped section heading like \`## Update 2026-03-12T18-37-52Z\` to the canonical home file.
@@ -1 +1 @@
1
- {"version":3,"file":"docs-config.js","sourceRoot":"","sources":["../../src/agents/docs-config.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,oIAAoI;CACpI,CAAA;AAEV,MAAM,UAAU,wBAAwB;IACtC,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,sBAAsB,EAAE;QACtB,iBAAiB,EAAE,uBAAuB;QAC1C,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,iBAAiB,EAAE,qBAAqB;QACxC,QAAQ,EAAE,IAAI;KACf;IACD,oBAAoB,EAAE;QACpB,iBAAiB,EAAE,sBAAsB;QACzC,QAAQ,EAAE,IAAI;KACf;IACD,sBAAsB,EAAE;QACtB,iBAAiB,EAAE,0BAA0B;QAC7C,QAAQ,EAAE,IAAI;KACf;IACD,IAAI,EAAE;QACJ,iBAAiB,EAAE,uBAAuB;QAC1C,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,iBAAiB,EAAE,gBAAgB;QACnC,QAAQ,EAAE,KAAK;KAChB;CACF,CAAA;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,QAAgB,EAChB,cAA8B;IAE9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,wBAAwB,GAC5B,cAAc,KAAK,gBAAgB;QACjC,CAAC,CAAC,6RAA6R;QAC/R,CAAC,CAAC,sIAAsI,CAAA;IAE5I,OAAO,0CAA0C,QAAQ,IAAI,MAAM,CAAC,iBAAiB;;gBAEvE,cAAc;;;;;;;;;;;;;;;;;oDAiBsB,QAAQ;;;EAG1D,wBAAwB;;;;0MAIgL,CAAA;AAC1M,CAAC"}
1
+ {"version":3,"file":"docs-config.js","sourceRoot":"","sources":["../../src/agents/docs-config.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,oIAAoI;CACpI,CAAA;AAEV,MAAM,UAAU,wBAAwB;IACtC,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,sBAAsB,EAAE;QACtB,iBAAiB,EAAE,uBAAuB;QAC1C,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,iBAAiB,EAAE,qBAAqB;QACxC,QAAQ,EAAE,IAAI;KACf;IACD,oBAAoB,EAAE;QACpB,iBAAiB,EAAE,sBAAsB;QACzC,QAAQ,EAAE,IAAI;KACf;IACD,sBAAsB,EAAE;QACtB,iBAAiB,EAAE,0BAA0B;QAC7C,QAAQ,EAAE,IAAI;KACf;IACD,IAAI,EAAE;QACJ,iBAAiB,EAAE,uBAAuB;QAC1C,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,iBAAiB,EAAE,gBAAgB;QACnC,QAAQ,EAAE,KAAK;KAChB;CACF,CAAA;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,QAAgB,EAChB,cAA8B;IAE9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,wBAAwB,GAC5B,cAAc,KAAK,gBAAgB;QACjC,CAAC,CAAC,6RAA6R;QAC/R,CAAC,CAAC,sIAAsI,CAAA;IAE5I,OAAO,0CAA0C,QAAQ,IAAI,MAAM,CAAC,iBAAiB;;;;gBAIvE,cAAc;;;;;;;;;;;;;;;;;oDAiBsB,QAAQ;;;EAG1D,wBAAwB;;;;0MAIgL,CAAA;AAC1M,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fullstack-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhE,eAAO,MAAM,6BAA6B,EAAE,mBA2B3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA0LzE;yBA1Le,8BAA8B"}
1
+ {"version":3,"file":"fullstack-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhE,eAAO,MAAM,6BAA6B,EAAE,mBA2B3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA+LzE;yBA/Le,8BAA8B"}
@@ -1,4 +1,4 @@
1
- import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
1
+ import { buildDelegationContractSection, buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
2
2
  import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
3
3
  const MODE = "all";
4
4
  export const FULLSTACK_WUNDERKIND_METADATA = {
@@ -34,6 +34,7 @@ export function createFullstackWunderkindAgent(model) {
34
34
  decisions: "architectural choices, library selections, schema decisions",
35
35
  blockers: "build failures, type errors not yet resolved, external blockers",
36
36
  });
37
+ const delegationContractSection = buildDelegationContractSection();
37
38
  const soulMaintenanceSection = buildSoulMaintenanceSection();
38
39
  const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS["fullstack-wunderkind"]);
39
40
  return {
@@ -193,6 +194,10 @@ const db = drizzle(neon(process.env.DATABASE_URL!));
193
194
 
194
195
  ---
195
196
 
197
+ ${delegationContractSection}
198
+
199
+ ---
200
+
196
201
  ${slashCommandsSection}
197
202
 
198
203
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"fullstack-wunderkind.js","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpI,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,aAAa;YACrB,OAAO,EACL,8NAA8N;SACjO;KACF;IACD,OAAO,EAAE;QACP,0DAA0D;QAC1D,gDAAgD;QAChD,uEAAuE;QACvE,6DAA6D;QAC7D,sEAAsE;QACtE,oGAAoG;QACpG,gGAAgG;QAChG,kDAAkD;KACnD;IACD,SAAS,EAAE;QACT,8EAA8E;QAC9E,+CAA+C;QAC/C,oFAAoF;QACpF,mGAAmG;KACpG;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,gEAAgE;QAC3E,SAAS,EAAE,6DAA6D;QACxE,QAAQ,EAAE,iEAAiE;KAC5E,CAAC,CAAA;IACF,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAE9G,OAAO;QACL,WAAW,EACT,sgDAAsgD;QACxgD,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoJtB,oBAAoB;;;;EAIpB,wBAAwB;;;;;;;;;;;;;qGAa2E;KAClG,CAAA;AACH,CAAC;AAED,8BAA8B,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"fullstack-wunderkind.js","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpK,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,aAAa;YACrB,OAAO,EACL,8NAA8N;SACjO;KACF;IACD,OAAO,EAAE;QACP,0DAA0D;QAC1D,gDAAgD;QAChD,uEAAuE;QACvE,6DAA6D;QAC7D,sEAAsE;QACtE,oGAAoG;QACpG,gGAAgG;QAChG,kDAAkD;KACnD;IACD,SAAS,EAAE;QACT,8EAA8E;QAC9E,+CAA+C;QAC/C,oFAAoF;QACpF,mGAAmG;KACpG;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,gEAAgE;QAC3E,SAAS,EAAE,6DAA6D;QACxE,QAAQ,EAAE,iEAAiE;KAC5E,CAAC,CAAA;IACF,MAAM,yBAAyB,GAAG,8BAA8B,EAAE,CAAA;IAClE,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAE9G,OAAO;QACL,WAAW,EACT,sgDAAsgD;QACxgD,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoJtB,yBAAyB;;;;EAIzB,oBAAoB;;;;EAIpB,wBAAwB;;;;;;;;;;;;;qGAa2E;KAClG,CAAA;AACH,CAAC;AAED,8BAA8B,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"product-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,2BAA2B,EAAE,mBA0BzC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAgLvE;yBAhLe,4BAA4B"}
1
+ {"version":3,"file":"product-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,2BAA2B,EAAE,mBA0BzC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAqLvE;yBArLe,4BAA4B"}
@@ -1,5 +1,5 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
2
+ import { buildDelegationContractSection, buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
3
3
  import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
4
4
  const MODE = "all";
5
5
  export const PRODUCT_WUNDERKIND_METADATA = {
@@ -39,6 +39,7 @@ export function createProductWunderkindAgent(model) {
39
39
  decisions: "scope decisions, feature cuts, OKR changes",
40
40
  blockers: "dependency blocks, missing research, stakeholder misalignment",
41
41
  });
42
+ const delegationContractSection = buildDelegationContractSection();
42
43
  const soulMaintenanceSection = buildSoulMaintenanceSection();
43
44
  const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS["product-wunderkind"]);
44
45
  return {
@@ -193,6 +194,10 @@ You bridge the gap between user insight and engineering reality. You're fluent i
193
194
 
194
195
  ---
195
196
 
197
+ ${delegationContractSection}
198
+
199
+ ---
200
+
196
201
  ${slashCommandsSection}
197
202
 
198
203
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"product-wunderkind.js","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpI,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,2BAA2B,GAAwB;IAC9D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,oBAAoB;IACjC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,2LAA2L;SAC9L;KACF;IACD,OAAO,EAAE;QACP,+DAA+D;QAC/D,uCAAuC;QACvC,kCAAkC;QAClC,kDAAkD;QAClD,mGAAmG;QACnG,iFAAiF;QACjF,gGAAgG;QAChG,yCAAyC;KAC1C;IACD,SAAS,EAAE;QACT,iEAAiE;QACjE,wDAAwD;QACxD,0GAA0G;KAC3G;CACF,CAAA;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,4EAA4E;QACvF,SAAS,EAAE,4CAA4C;QACvD,QAAQ,EAAE,+DAA+D;KAC1E,CAAC,CAAA;IACF,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAE5G,OAAO;QACL,WAAW,EACT,8tCAA8tC;QAChuC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ItB,oBAAoB;;;;EAIpB,wBAAwB;;IAEtB;KACD,CAAA;AACH,CAAC;AAED,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"product-wunderkind.js","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpK,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,2BAA2B,GAAwB;IAC9D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,oBAAoB;IACjC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,2LAA2L;SAC9L;KACF;IACD,OAAO,EAAE;QACP,+DAA+D;QAC/D,uCAAuC;QACvC,kCAAkC;QAClC,kDAAkD;QAClD,mGAAmG;QACnG,iFAAiF;QACjF,gGAAgG;QAChG,yCAAyC;KAC1C;IACD,SAAS,EAAE;QACT,iEAAiE;QACjE,wDAAwD;QACxD,0GAA0G;KAC3G;CACF,CAAA;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,4EAA4E;QACvF,SAAS,EAAE,4CAA4C;QACvD,QAAQ,EAAE,+DAA+D;KAC1E,CAAC,CAAA;IACF,MAAM,yBAAyB,GAAG,8BAA8B,EAAE,CAAA;IAClE,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAE5G,OAAO;QACL,WAAW,EACT,8tCAA8tC;QAChuC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ItB,yBAAyB;;;;EAIzB,oBAAoB;;;;EAIpB,wBAAwB;;IAEtB;KACD,CAAA;AACH,CAAC;AAED,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -7,4 +7,5 @@ export declare function buildPersistentContextSection(options: {
7
7
  export declare function buildSoulMaintenanceSection(): string;
8
8
  export declare function buildSlashCommandHelpSection(): string;
9
9
  export declare function renderSlashCommandRegistry(registry: SlashCommandRegistry): string;
10
+ export declare function buildDelegationContractSection(): string;
10
11
  //# sourceMappingURL=shared-prompt-sections.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-prompt-sections.d.ts","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAeT;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAYpD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAKrD;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAiBjF"}
1
+ {"version":3,"file":"shared-prompt-sections.d.ts","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAeT;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAYpD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAKrD;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAiBjF;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CA+BvD"}
@@ -12,7 +12,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
12
12
  - Decisions (${options.decisions}): \`.sisyphus/notepads/<plan-name>/decisions.md\`
13
13
  - Blockers (${options.blockers}): \`.sisyphus/notepads/<plan-name>/issues.md\`
14
14
 
15
- **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.`;
15
+ **APPEND ONLY** — never overwrite notepad files. Use Wunderkind's bounded durable-artifact writer for allowed \`.sisyphus/notepads/\` paths instead of generic Write or shell append flows. Never use the Edit tool on notepad files.`;
16
16
  }
17
17
  export function buildSoulMaintenanceSection() {
18
18
  return `## SOUL Maintenance (.wunderkind/souls/)
@@ -49,4 +49,36 @@ export function renderSlashCommandRegistry(registry) {
49
49
  ...sectionBlocks,
50
50
  ].join("\n\n---\n\n");
51
51
  }
52
+ export function buildDelegationContractSection() {
53
+ return `## Delegation Contract
54
+
55
+ Use this contract to choose the right delegation mechanism.
56
+
57
+ - Invoke via \`skill(name="<skill>")\` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in \`task()\`.
58
+ - Delegate via \`task(...)\` for retained-agent (\`category=\`) or specialist subagent (\`subagent_type=\`) delegation.
59
+
60
+ ### Required fields in every \`task()\` call
61
+
62
+ - \`load_skills\`: required in every \`task()\` call. Use \`[]\` when no skills apply; never omit.
63
+ - \`run_in_background\`: required in every \`task()\` call. Must be explicitly \`true\` or \`false\`; never omit.
64
+ - \`category\` and \`subagent_type\`: mutually exclusive. Pass exactly one, never both.
65
+
66
+ ### Canonical examples
67
+
68
+ \`\`\`typescript
69
+ task({
70
+ category: "deep",
71
+ load_skills: [],
72
+ run_in_background: false,
73
+ prompt: "...",
74
+ })
75
+
76
+ task({
77
+ subagent_type: "oracle",
78
+ load_skills: [],
79
+ run_in_background: true,
80
+ prompt: "...",
81
+ })
82
+ \`\`\``;
83
+ }
52
84
  //# sourceMappingURL=shared-prompt-sections.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-prompt-sections.js","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,OAAO;;;;;;;;;eASM,OAAO,CAAC,SAAS;eACjB,OAAO,CAAC,SAAS;cAClB,OAAO,CAAC,QAAQ;;yJAE2H,CAAA;AACzJ,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO;;;;;;;;;;wJAU+I,CAAA;AACxJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO;;;6IAGoI,CAAA;AAC7I,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA8B;IACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClI,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC,CAAC,IAAI,EAAE,CAAA;IAER,OAAO;QACL,mBAAmB;QACnB,4BAA4B,EAAE;QAC9B,GAAG,aAAa;QAChB,GAAG,aAAa;KACjB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"shared-prompt-sections.js","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,OAAO;;;;;;;;;eASM,OAAO,CAAC,SAAS;eACjB,OAAO,CAAC,SAAS;cAClB,OAAO,CAAC,QAAQ;;sOAEwM,CAAA;AACtO,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO;;;;;;;;;;wJAU+I,CAAA;AACxJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO;;;6IAGoI,CAAA;AAC7I,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA8B;IACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClI,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC,CAAC,IAAI,EAAE,CAAA;IAER,OAAO;QACL,mBAAmB;QACnB,4BAA4B,EAAE;QAC9B,GAAG,aAAa;QAChB,GAAG,aAAa;KACjB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BF,CAAA;AACP,CAAC"}