@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
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
+ import { tool } from "@opencode-ai/plugin/tool";
1
2
  import { readFileSync } from "node:fs";
2
3
  import { join } from "node:path";
3
4
  import { AGENT_DOCS_CONFIG } from "./agents/docs-config.js";
5
+ import { DURABLE_ARTIFACT_TOOL_NAME, writeDurableArtifact } from "./artifact-writer.js";
4
6
  import { readWunderkindConfig } from "./cli/config-manager/index.js";
5
7
  const DOCS_OUTPUT_SENTINEL = "<!-- wunderkind:docs-output-start -->";
6
8
  const SOUL_HEADING_MARKERS = [
@@ -11,6 +13,46 @@ const SOUL_HEADING_MARKERS = [
11
13
  { heading: "# CISO", agentKey: "ciso" },
12
14
  { heading: "# Legal Counsel", agentKey: "legal-counsel" },
13
15
  ];
16
+ const NON_FULLSTACK_RETAINED_AGENTS = new Set([
17
+ "marketing-wunderkind",
18
+ "creative-director",
19
+ "product-wunderkind",
20
+ "ciso",
21
+ "legal-counsel",
22
+ ]);
23
+ const SHELL_FILE_MUTATION_PATTERNS = [
24
+ />/,
25
+ />>/,
26
+ /\btee\b/,
27
+ /\bmv\b/,
28
+ /\bcp\b/,
29
+ /\brm\b/,
30
+ /\btouch\b/,
31
+ /\bmkdir\b/,
32
+ /\btruncate\b/,
33
+ /\bsed\b/,
34
+ /\bawk\b/,
35
+ /\bperl\b/,
36
+ /\bpython\b.*\bwrite\b/,
37
+ /\bnode\b.*\bwrite\b/,
38
+ ];
39
+ function inferPermissionAgent(metadata) {
40
+ const directAgent = metadata["agent"];
41
+ if (typeof directAgent === "string" && directAgent.trim() !== "")
42
+ return directAgent;
43
+ const nestedAgent = metadata["agentID"];
44
+ if (typeof nestedAgent === "string" && nestedAgent.trim() !== "")
45
+ return nestedAgent;
46
+ return null;
47
+ }
48
+ function shouldDenyShellMutation(pattern, metadata) {
49
+ const agent = inferPermissionAgent(metadata);
50
+ if (!agent || !NON_FULLSTACK_RETAINED_AGENTS.has(agent))
51
+ return false;
52
+ const rawPattern = Array.isArray(pattern) ? pattern.join(" ") : (pattern ?? "");
53
+ const normalized = rawPattern.toLowerCase();
54
+ return SHELL_FILE_MUTATION_PATTERNS.some((regex) => regex.test(normalized));
55
+ }
14
56
  function detectActiveSoulAgent(systemSections) {
15
57
  const systemText = systemSections.join("\n");
16
58
  for (const marker of SOUL_HEADING_MARKERS) {
@@ -26,18 +68,67 @@ function readSoulOverlay(agentKey) {
26
68
  const content = readFileSync(soulPath, "utf-8").trim();
27
69
  return content === "" ? null : content;
28
70
  }
29
- catch {
30
- return null;
71
+ catch (err) {
72
+ if (err instanceof Error && "code" in err && err.code === "ENOENT") {
73
+ return null;
74
+ }
75
+ throw err;
31
76
  }
32
77
  }
33
78
  const WunderkindPlugin = async (_input) => {
34
79
  return {
80
+ tool: {
81
+ [DURABLE_ARTIFACT_TOOL_NAME]: tool({
82
+ description: "Write a durable Wunderkind artifact within an agent-specific bounded lane such as .sisyphus PRDs/plans/issues, docs-output files, DESIGN.md, or notepads.",
83
+ args: {
84
+ agentKey: tool.schema.enum([
85
+ "marketing-wunderkind",
86
+ "creative-director",
87
+ "product-wunderkind",
88
+ "fullstack-wunderkind",
89
+ "ciso",
90
+ "legal-counsel",
91
+ ]),
92
+ kind: tool.schema.enum(["prd", "plan", "issue", "docs-output", "design-md", "notepad"]),
93
+ relativePath: tool.schema.string().min(1),
94
+ content: tool.schema.string(),
95
+ },
96
+ async execute(args, context) {
97
+ await context.ask({
98
+ permission: "edit",
99
+ patterns: [args.relativePath],
100
+ always: [args.relativePath],
101
+ metadata: {
102
+ title: `Write durable artifact: ${args.relativePath}`,
103
+ agentKey: args.agentKey,
104
+ kind: args.kind,
105
+ },
106
+ });
107
+ const result = writeDurableArtifact(args, context.directory);
108
+ context.metadata({
109
+ title: `Durable artifact written: ${result.relativePath}`,
110
+ metadata: {
111
+ path: result.relativePath,
112
+ created: result.created,
113
+ agentKey: args.agentKey,
114
+ kind: args.kind,
115
+ },
116
+ });
117
+ return `Durable artifact written to ${result.relativePath}`;
118
+ },
119
+ }),
120
+ },
121
+ "permission.ask": async (input, output) => {
122
+ if (input.type === "bash" && shouldDenyShellMutation(input.pattern, input.metadata)) {
123
+ output.status = "deny";
124
+ }
125
+ },
35
126
  "experimental.chat.system.transform": async (_input, output) => {
36
127
  const wunderkindConfig = readWunderkindConfig();
37
128
  const hasDocsOutputSentinel = output.system.join("").includes(DOCS_OUTPUT_SENTINEL);
38
129
  if (wunderkindConfig?.docsEnabled === true && !hasDocsOutputSentinel) {
39
130
  const docsPath = wunderkindConfig.docsPath ?? "./docs";
40
- const docHistoryMode = wunderkindConfig.docHistoryMode ?? "overwrite";
131
+ const docHistoryMode = wunderkindConfig.docHistoryMode ?? "append-dated";
41
132
  const docsTargets = Object.entries(AGENT_DOCS_CONFIG)
42
133
  .filter(([, config]) => config.eligible)
43
134
  .map(([agentKey, config]) => `- ${agentKey}: ${docsPath}/${config.canonicalFilename}`)
@@ -127,6 +218,12 @@ The following specialist agents are available as native OpenCode agents. Delegat
127
218
 
128
219
  Legacy delegation shorthand remains valid: Use marketing-wunderkind for GTM, brand, community, developer advocacy, docs-led launches, tutorials, migration support, funnel interpretation, and adoption work. Use fullstack-wunderkind for engineering implementation, architecture, TDD, technical diagnosis, reliability engineering, runbooks, incidents, and supportability. Use legal-counsel for OSS licensing and legal/compliance review.
129
220
 
221
+ ### Tool Usage
222
+
223
+ - Use \`task(...)\` for retained-agent or subagent delegation; always include explicit \`load_skills\` and \`run_in_background\`.
224
+ - Use \`skill(name="...")\` for shipped skills and sub-skills.
225
+ - Use \`${DURABLE_ARTIFACT_TOOL_NAME}(...)\` for bounded durable artifact writes such as PRDs, plans, issues, docs-output lanes, DESIGN.md, and allowed notepads.
226
+
130
227
  ### Project Configuration
131
228
 
132
229
  Global and project-local Wunderkind config are merged at runtime.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@grant-vine/wunderkind",
3
- "version": "0.11.1",
4
- "description": "Wunderkind \u2014 specialist AI agent addon for OpenCode with 12 professional agents for any software product team",
3
+ "version": "0.11.3",
4
+ "description": "Wunderkind \u2014 specialist AI agent addon for OpenCode with 6 retained specialist agents for any software product team",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -142,6 +142,17 @@ A skill is complete only when all of the following are true:
142
142
  - Split rare detail into sibling files before `SKILL.md` becomes bloated.
143
143
  - Keep repo-specific language stronger than generic methodology language.
144
144
 
145
+ ### Task Delegation Contract
146
+
147
+ If a skill includes `task(...)` examples, they MUST include both required fields:
148
+
149
+ - `load_skills: []` (or the relevant skill list) — never omit
150
+ - `run_in_background: true | false` — never omit, must be explicit
151
+
152
+ Use `skill(name="<skill>")` syntax for skill invocations; never wrap skill calls in `task()`.
153
+
154
+ Historical `.sisyphus/**` archives are intentionally excluded from this compliance change.
155
+
145
156
  ## Skill inventory
146
157
 
147
158
  | Skill Name | Current Owner | Disposition | Notes |
@@ -15,7 +15,7 @@ This skill converts product intent into a durable delivery workflow.
15
15
 
16
16
  Read `prdPipelineMode` from `.wunderkind/wunderkind.config.jsonc`.
17
17
 
18
- - `filesystem` — write artifacts into `.sisyphus/`
18
+ - `filesystem` — create artifacts in `.sisyphus/` via Wunderkind's bounded durable-artifact writer
19
19
  - `github` — use `gh`-backed GitHub issues/PRD flow only when the repo is GitHub-ready
20
20
 
21
21
  If the mode is missing, treat it as `filesystem`.