@grant-vine/wunderkind 0.9.5 → 0.9.7

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 (103) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +3 -1
  3. package/agents/brand-builder.md +2 -18
  4. package/agents/ciso.md +2 -19
  5. package/agents/creative-director.md +3 -19
  6. package/agents/data-analyst.md +2 -3
  7. package/agents/devrel-wunderkind.md +4 -20
  8. package/agents/fullstack-wunderkind.md +2 -19
  9. package/agents/legal-counsel.md +2 -3
  10. package/agents/marketing-wunderkind.md +2 -18
  11. package/agents/operations-lead.md +9 -25
  12. package/agents/product-wunderkind.md +8 -24
  13. package/agents/qa-specialist.md +8 -24
  14. package/agents/support-engineer.md +10 -10
  15. package/commands/docs-index.md +8 -6
  16. package/dist/agents/brand-builder.d.ts +1 -1
  17. package/dist/agents/brand-builder.d.ts.map +1 -1
  18. package/dist/agents/brand-builder.js +8 -31
  19. package/dist/agents/brand-builder.js.map +1 -1
  20. package/dist/agents/ciso.d.ts +1 -1
  21. package/dist/agents/ciso.d.ts.map +1 -1
  22. package/dist/agents/ciso.js +8 -32
  23. package/dist/agents/ciso.js.map +1 -1
  24. package/dist/agents/creative-director.d.ts +1 -1
  25. package/dist/agents/creative-director.d.ts.map +1 -1
  26. package/dist/agents/creative-director.js +8 -31
  27. package/dist/agents/creative-director.js.map +1 -1
  28. package/dist/agents/data-analyst.d.ts +1 -1
  29. package/dist/agents/data-analyst.d.ts.map +1 -1
  30. package/dist/agents/data-analyst.js +8 -16
  31. package/dist/agents/data-analyst.js.map +1 -1
  32. package/dist/agents/devrel-wunderkind.d.ts +1 -1
  33. package/dist/agents/devrel-wunderkind.d.ts.map +1 -1
  34. package/dist/agents/devrel-wunderkind.js +9 -32
  35. package/dist/agents/devrel-wunderkind.js.map +1 -1
  36. package/dist/agents/docs-config.d.ts +1 -1
  37. package/dist/agents/docs-config.d.ts.map +1 -1
  38. package/dist/agents/docs-config.js +3 -2
  39. package/dist/agents/docs-config.js.map +1 -1
  40. package/dist/agents/docs-index-plan.d.ts +1 -1
  41. package/dist/agents/docs-index-plan.d.ts.map +1 -1
  42. package/dist/agents/docs-index-plan.js +3 -8
  43. package/dist/agents/docs-index-plan.js.map +1 -1
  44. package/dist/agents/fullstack-wunderkind.d.ts +1 -1
  45. package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
  46. package/dist/agents/fullstack-wunderkind.js +8 -32
  47. package/dist/agents/fullstack-wunderkind.js.map +1 -1
  48. package/dist/agents/legal-counsel.d.ts +1 -1
  49. package/dist/agents/legal-counsel.d.ts.map +1 -1
  50. package/dist/agents/legal-counsel.js +8 -16
  51. package/dist/agents/legal-counsel.js.map +1 -1
  52. package/dist/agents/marketing-wunderkind.d.ts +1 -1
  53. package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
  54. package/dist/agents/marketing-wunderkind.js +8 -31
  55. package/dist/agents/marketing-wunderkind.js.map +1 -1
  56. package/dist/agents/operations-lead.d.ts +1 -1
  57. package/dist/agents/operations-lead.d.ts.map +1 -1
  58. package/dist/agents/operations-lead.js +15 -38
  59. package/dist/agents/operations-lead.js.map +1 -1
  60. package/dist/agents/product-wunderkind.d.ts +1 -1
  61. package/dist/agents/product-wunderkind.d.ts.map +1 -1
  62. package/dist/agents/product-wunderkind.js +14 -37
  63. package/dist/agents/product-wunderkind.js.map +1 -1
  64. package/dist/agents/qa-specialist.d.ts +1 -1
  65. package/dist/agents/qa-specialist.d.ts.map +1 -1
  66. package/dist/agents/qa-specialist.js +14 -37
  67. package/dist/agents/qa-specialist.js.map +1 -1
  68. package/dist/agents/shared-prompt-sections.d.ts +6 -0
  69. package/dist/agents/shared-prompt-sections.d.ts.map +1 -0
  70. package/dist/agents/shared-prompt-sections.js +17 -0
  71. package/dist/agents/shared-prompt-sections.js.map +1 -0
  72. package/dist/agents/support-engineer.d.ts +1 -1
  73. package/dist/agents/support-engineer.d.ts.map +1 -1
  74. package/dist/agents/support-engineer.js +16 -23
  75. package/dist/agents/support-engineer.js.map +1 -1
  76. package/dist/cli/cli-installer.d.ts.map +1 -1
  77. package/dist/cli/cli-installer.js +33 -17
  78. package/dist/cli/cli-installer.js.map +1 -1
  79. package/dist/cli/config-manager/index.d.ts +8 -8
  80. package/dist/cli/config-manager/index.d.ts.map +1 -1
  81. package/dist/cli/config-manager/index.js +57 -76
  82. package/dist/cli/config-manager/index.js.map +1 -1
  83. package/dist/cli/docs-output-helper.d.ts +4 -0
  84. package/dist/cli/docs-output-helper.d.ts.map +1 -1
  85. package/dist/cli/docs-output-helper.js +19 -2
  86. package/dist/cli/docs-output-helper.js.map +1 -1
  87. package/dist/cli/doctor.d.ts.map +1 -1
  88. package/dist/cli/doctor.js +2 -23
  89. package/dist/cli/doctor.js.map +1 -1
  90. package/dist/cli/index.js +4 -3
  91. package/dist/cli/index.js.map +1 -1
  92. package/dist/cli/init.d.ts.map +1 -1
  93. package/dist/cli/init.js +5 -19
  94. package/dist/cli/init.js.map +1 -1
  95. package/dist/cli/tui-installer.js +2 -2
  96. package/dist/cli/tui-installer.js.map +1 -1
  97. package/dist/cli/uninstall.d.ts.map +1 -1
  98. package/dist/cli/uninstall.js +34 -22
  99. package/dist/cli/uninstall.js.map +1 -1
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +0 -0
  102. package/dist/index.js.map +1 -1
  103. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- const MODE = "primary";
2
+ import { buildPersistentContextSection } from "./shared-prompt-sections.js";
3
+ const MODE = "all";
3
4
  export const LEGAL_COUNSEL_METADATA = {
4
5
  category: "specialist",
5
6
  cost: "EXPENSIVE",
@@ -31,6 +32,11 @@ export function createLegalCounselAgent(model) {
31
32
  "apply_patch",
32
33
  "task",
33
34
  ]);
35
+ const persistentContextSection = buildPersistentContextSection({
36
+ learnings: "jurisdiction-specific interpretations, licensing edge cases, regulatory nuances discovered",
37
+ decisions: "license compatibility conclusions, risk acceptance decisions, contract clause recommendations",
38
+ blockers: "ambiguous license terms requiring external counsel, missing regulatory clarity, unresolved IP questions",
39
+ });
34
40
  return {
35
41
  description: "USE FOR: legal counsel, general counsel, legal advice, OSS license, open source license, MIT license, Apache 2.0, GPL, LGPL, AGPL, copyleft, SPDX, license compatibility, license compliance, license audit, third-party license, dependency license, terms of service, TOS, terms and conditions, privacy policy, privacy notice, GDPR privacy, CCPA privacy, data processing agreement, DPA, data protection agreement, controller processor agreement, contributor license agreement, CLA, individual CLA, corporate CLA, developer certificate of origin, DCO, SaaS agreement, MSA, master service agreement, enterprise agreement, subscription agreement, BAA, business associate agreement, HIPAA BAA, vendor agreement, procurement, contract review, contract negotiation, IP risk, intellectual property, copyright, trademark, patent risk, FOSS compliance, OpenChain, REUSE, regulatory obligation, legal obligation, compliance obligation, data subject rights, right to erasure, right to access, data breach notification obligation, incident response legal, regulatory notification, GDPR article 33, POPIA notification, legal risk, liability, indemnification, limitation of liability, force majeure, governing law, jurisdiction, dispute resolution.",
36
42
  mode: MODE,
@@ -230,21 +236,7 @@ Escalate to \`wunderkind:operations-lead\` directly.
230
236
 
231
237
  ---
232
238
 
233
- ## Persistent Context (.sisyphus/)
234
-
235
- When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sisyphus), you will receive a \`<Work_Context>\` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
236
-
237
- **Read before acting:**
238
- - Plan: \`.sisyphus/plans/*.md\` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
239
- - Notepads: \`.sisyphus/notepads/<plan-name>/\` — read for inherited context, prior legal decisions, and jurisdiction-specific notes.
240
-
241
- **Write after completing work:**
242
- - Learnings (jurisdiction-specific interpretations, licensing edge cases, regulatory nuances discovered): \`.sisyphus/notepads/<plan-name>/learnings.md\`
243
- - Decisions (license compatibility conclusions, risk acceptance decisions, contract clause recommendations): \`.sisyphus/notepads/<plan-name>/decisions.md\`
244
- - Blockers (ambiguous license terms requiring external counsel, missing regulatory clarity, unresolved IP questions): \`.sisyphus/notepads/<plan-name>/issues.md\`
245
- - Evidence (license audit outputs, drafted TOS/Privacy Policy/CLA/DPA documents, contract review summaries): \`.sisyphus/evidence/task-<N>-<scenario>.md\`
246
-
247
- **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.
239
+ ${persistentContextSection}
248
240
 
249
241
  ## Hard Rules
250
242
 
@@ -1 +1 @@
1
- {"version":3,"file":"legal-counsel.js","sourceRoot":"","sources":["../../src/agents/legal-counsel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,wJAAwJ;SAC3J;KACF;IACD,OAAO,EAAE;QACP,sEAAsE;QACtE,sFAAsF;QACtF,4CAA4C;QAC5C,6EAA6E;QAC7E,+DAA+D;QAC/D,qEAAqE;KACtE;IACD,SAAS,EAAE;QACT,sFAAsF;QACtF,oFAAoF;QACpF,iEAAiE;KAClE;CACF,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;KACP,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,gtCAAgtC;QACltC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2GAuN+F;KACxG,CAAA;AACH,CAAC;AAED,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"legal-counsel.js","sourceRoot":"","sources":["../../src/agents/legal-counsel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAE3E,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,wJAAwJ;SAC3J;KACF;IACD,OAAO,EAAE;QACP,sEAAsE;QACtE,sFAAsF;QACtF,4CAA4C;QAC5C,6EAA6E;QAC7E,+DAA+D;QAC/D,qEAAqE;KACtE;IACD,SAAS,EAAE;QACT,sFAAsF;QACtF,oFAAoF;QACpF,iEAAiE;KAClE;CACF,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,4FAA4F;QACvG,SAAS,EAAE,+FAA+F;QAC1G,QAAQ,EAAE,yGAAyG;KACpH,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,gtCAAgtC;QACltC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiMV,wBAAwB;;;;;;;;2GAQiF;KACxG,CAAA;AACH,CAAC;AAED,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -3,6 +3,6 @@ import type { AgentPromptMetadata } from "./types.js";
3
3
  export declare const MARKETING_WUNDERKIND_METADATA: AgentPromptMetadata;
4
4
  export declare function createMarketingWunderkindAgent(model: string): AgentConfig;
5
5
  export declare namespace createMarketingWunderkindAgent {
6
- var mode: "primary";
6
+ var mode: "all";
7
7
  }
8
8
  //# sourceMappingURL=marketing-wunderkind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketing-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/marketing-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,6BAA6B,EAAE,mBAyB3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAkTzE;yBAlTe,8BAA8B"}
1
+ {"version":3,"file":"marketing-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/marketing-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,mBAyB3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA2RzE;yBA3Re,8BAA8B"}
@@ -1,5 +1,6 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- const MODE = "primary";
2
+ import { buildPersistentContextSection } from "./shared-prompt-sections.js";
3
+ const MODE = "all";
3
4
  export const MARKETING_WUNDERKIND_METADATA = {
4
5
  category: "specialist",
5
6
  cost: "EXPENSIVE",
@@ -32,6 +33,11 @@ export function createMarketingWunderkindAgent(model) {
32
33
  "apply_patch",
33
34
  "task",
34
35
  ]);
36
+ const persistentContextSection = buildPersistentContextSection({
37
+ learnings: "patterns, channel performance insights, what worked",
38
+ decisions: "positioning choices, channel mix, budget allocations",
39
+ blockers: "approval bottlenecks, missing assets, access gaps",
40
+ });
35
41
  return {
36
42
  description: "USE FOR: brand strategy, go-to-market, positioning, messaging, content marketing, content calendar, content strategy, SEO, SEM, paid search, paid social, Google Ads, Meta Ads, email marketing, CRM, marketing automation, analytics, attribution, CRO, conversion rate optimisation, landing pages, A/B testing, PR, press releases, influencer marketing, partnerships, growth hacking, product marketing, demand generation, social media strategy, community management, copywriting, campaign planning, hashtag research, TikTok, Instagram, LinkedIn, X/Twitter, Facebook, audience research, competitor analysis, market research, brand guidelines, tone of voice, value proposition, customer journey mapping, funnel analysis, lead generation, customer acquisition, retention, churn, LTV, CAC, ROAS, marketing budget, media planning, sponsorships, events, thought leadership, personal branding, viral marketing, referral programs, affiliate marketing, podcast marketing, video marketing, YouTube, newsletter strategy.",
37
43
  mode: MODE,
@@ -296,36 +302,7 @@ task(
296
302
  \`\`\`
297
303
  ---
298
304
 
299
- ## Persistent Context (.sisyphus/)
300
-
301
- When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sisyphus), you will receive a \`<Work_Context>\` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
302
-
303
- **Read before acting:**
304
- - Plan: \`.sisyphus/plans/*.md\` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
305
- - Notepads: \`.sisyphus/notepads/<plan-name>/\` — read for inherited context, prior decisions, and campaign conventions.
306
-
307
- **Write after completing work:**
308
- - Learnings (patterns, channel performance insights, what worked): \`.sisyphus/notepads/<plan-name>/learnings.md\`
309
- - Decisions (positioning choices, channel mix, budget allocations): \`.sisyphus/notepads/<plan-name>/decisions.md\`
310
- - Blockers (approval bottlenecks, missing assets, access gaps): \`.sisyphus/notepads/<plan-name>/issues.md\`
311
-
312
- **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.
313
-
314
- ## Documentation Output (Static Reference)
315
-
316
- When \`docsEnabled\` is \`true\` in \`.wunderkind/wunderkind.config.jsonc\`, write persistent output to:
317
-
318
- \`\`\`
319
- <docsPath>/marketing-strategy.md
320
- \`\`\`
321
-
322
- Read \`.wunderkind/wunderkind.config.jsonc\` at runtime for \`docsPath\` (default: \`./docs\`) and \`docHistoryMode\` (default: \`overwrite\`).
323
-
324
- **History modes:**
325
- - \`overwrite\` — Replace the file contents each time.
326
- - \`append-dated\` — Append a dated section to the file.
327
- - \`new-dated-file\` — Create a new file with a date suffix.
328
- - \`overwrite-archive\` — Overwrite the current file and archive the old one.
305
+ ${persistentContextSection}
329
306
 
330
307
  ---`,
331
308
  };
@@ -1 +1 @@
1
- {"version":3,"file":"marketing-wunderkind.js","sourceRoot":"","sources":["../../src/agents/marketing-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,2GAA2G;SAC9G;KACF;IACD,OAAO,EAAE;QACP,4CAA4C;QAC5C,2CAA2C;QAC3C,sDAAsD;QACtD,sDAAsD;QACtD,2CAA2C;KAC5C;IACD,SAAS,EAAE;QACT,uCAAuC;QACvC,yDAAyD;QACzD,wDAAwD;QACxD,oFAAoF;QACpF,wEAAwE;KACzE;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;KACP,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,8+BAA8+B;QACh/B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiSR;KACD,CAAA;AACH,CAAC;AAED,8BAA8B,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"marketing-wunderkind.js","sourceRoot":"","sources":["../../src/agents/marketing-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAE3E,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,oBAAoB;YAC5B,OAAO,EACL,2GAA2G;SAC9G;KACF;IACD,OAAO,EAAE;QACP,4CAA4C;QAC5C,2CAA2C;QAC3C,sDAAsD;QACtD,sDAAsD;QACtD,2CAA2C;KAC5C;IACD,SAAS,EAAE;QACT,uCAAuC;QACvC,yDAAyD;QACzD,wDAAwD;QACxD,oFAAoF;QACpF,wEAAwE;KACzE;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,qDAAqD;QAChE,SAAS,EAAE,sDAAsD;QACjE,QAAQ,EAAE,mDAAmD;KAC9D,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,8+BAA8+B;QACh/B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkQV,wBAAwB;;IAEtB;KACD,CAAA;AACH,CAAC;AAED,8BAA8B,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -3,6 +3,6 @@ import type { AgentPromptMetadata } from "./types.js";
3
3
  export declare const OPERATIONS_LEAD_METADATA: AgentPromptMetadata;
4
4
  export declare function createOperationsLeadAgent(model: string): AgentConfig;
5
5
  export declare namespace createOperationsLeadAgent {
6
- var mode: "primary";
6
+ var mode: "all";
7
7
  }
8
8
  //# sourceMappingURL=operations-lead.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operations-lead.d.ts","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,wBAAwB,EAAE,mBAyBtC,CAAA;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAmUpE;yBAnUe,yBAAyB"}
1
+ {"version":3,"file":"operations-lead.d.ts","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhE,eAAO,MAAM,wBAAwB,EAAE,mBAyBtC,CAAA;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA4SpE;yBA5Se,yBAAyB"}
@@ -1,5 +1,6 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- const MODE = "primary";
2
+ import { buildPersistentContextSection } from "./shared-prompt-sections.js";
3
+ const MODE = "all";
3
4
  export const OPERATIONS_LEAD_METADATA = {
4
5
  category: "specialist",
5
6
  cost: "EXPENSIVE",
@@ -31,6 +32,11 @@ export function createOperationsLeadAgent(model) {
31
32
  "edit",
32
33
  "apply_patch",
33
34
  ]);
35
+ const persistentContextSection = buildPersistentContextSection({
36
+ learnings: "runbook improvements, observability gaps found, toil patterns identified",
37
+ decisions: "SLO target choices, build vs buy decisions, tooling selections",
38
+ blockers: "unresolved incidents, missing dashboards, alerting gaps",
39
+ });
34
40
  return {
35
41
  description: "USE FOR: site reliability, SRE, SLO, SLI, SLA, error budget, toil elimination, on-call, incident response, postmortem, runbook, runbook writing, observability, monitoring, alerting, logging, metrics, tracing, distributed tracing, OpenTelemetry, admin panel, admin tooling, internal tooling, OODA loop, supportability assessment, operational readiness review, capacity planning, reliability engineering, uptime, availability, latency, throughput, error rate, golden signals, on-call rotation, pager duty, escalation policy, incident commander, war room, blameless culture, mean time to recovery, MTTR, mean time to detect, MTTD, change management, deployment risk, feature flags, canary releases, rollback procedures, build vs buy, admin dashboards, internal tools, service catalogue, dependency mapping.",
36
42
  mode: MODE,
@@ -41,12 +47,13 @@ export function createOperationsLeadAgent(model) {
41
47
 
42
48
  You are the **Operations Lead**. Before acting, read \`.wunderkind/wunderkind.config.jsonc\` and load:
43
49
  - \`opsPersonality\` — your character archetype:
44
- - \`on-call-veteran\`: Calm, structured, incident-first. Classify before remediate. SEV2 until proven SEV1. You've seen every incident type before.
45
- - \`efficiency-maximiser\`: Your cloud bill is 23% waste. Here's the Pareto fix. Toil is the enemy. Automate or eliminate.
46
- - \`process-purist\`: DORA metrics, runbooks for everything. If it's not documented, it doesn't exist. Process is the product.
47
- - \`teamCulture\` for postmortem formality and runbook verbosity.
48
- - \`orgStructure\` for escalation paths during incidents.
49
- - \`region\` for data residency requirements and regulatory incident notification timelines.
50
+ - \`on-call-veteran\`: You've been paged at 3am. You know what hurts. Build for resilience, not in the moment of crisis but always.
51
+ - \`efficiency-maximiser\`: Every second of downtime is money. Automate everything. Simplify everything. Cost and throughput obsession.
52
+ - \`process-purist\`: Change is risk. Document every decision. Follow the runbook. Change management is non-negotiable.
53
+ - \`orgStructure\`: Determine who owns on-call: is it the ops team, the engineering team, a shared rotation? State it explicitly.
54
+ - \`region\` and \`industry\` — regulatory requirements for incident response and data retention (SaaS SLAs differ from FinTech)
55
+ - \`teamCulture\` formal-strict means incident reports are documented ADRs with root cause analysis; pragmatic-balanced means postmortems are blameless and lightweight
56
+ })}
50
57
 
51
58
  ---
52
59
 
@@ -291,37 +298,7 @@ task(
291
298
 
292
299
  ---
293
300
 
294
- ## Persistent Context (.sisyphus/)
295
-
296
- When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sisyphus), you will receive a \`<Work_Context>\` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
297
-
298
- **Read before acting:**
299
- - Plan: \`.sisyphus/plans/*.md\` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
300
- - Notepads: \`.sisyphus/notepads/<plan-name>/\` — read for inherited context, system state, and incident history.
301
-
302
- **Write after completing work:**
303
- - Learnings (runbook improvements, observability gaps found, toil patterns identified): \`.sisyphus/notepads/<plan-name>/learnings.md\`
304
- - Decisions (SLO target choices, build vs buy decisions, tooling selections): \`.sisyphus/notepads/<plan-name>/decisions.md\`
305
- - Blockers (unresolved incidents, missing dashboards, alerting gaps): \`.sisyphus/notepads/<plan-name>/issues.md\`
306
- - Evidence (postmortem docs, supportability scorecards, SLO dashboards): \`.sisyphus/evidence/task-<N>-<scenario>.md\`
307
-
308
- **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.
309
-
310
- ## Documentation Output (Static Reference)
311
-
312
- When \`docsEnabled\` is \`true\` in \`.wunderkind/wunderkind.config.jsonc\`, write persistent output to:
313
-
314
- \`\`\`
315
- <docsPath>/ops-runbooks.md
316
- \`\`\`
317
-
318
- Read \`.wunderkind/wunderkind.config.jsonc\` at runtime for \`docsPath\` (default: \`./docs\`) and \`docHistoryMode\` (default: \`overwrite\`).
319
-
320
- **History modes:**
321
- - \`overwrite\` — Replace the file contents each time.
322
- - \`append-dated\` — Append a dated section to the file.
323
- - \`new-dated-file\` — Create a new file with a date suffix.
324
- - \`overwrite-archive\` — Overwrite the current file and archive the old one.
301
+ ${persistentContextSection}
325
302
 
326
303
  ## Delegation Patterns
327
304
 
@@ -1 +1 @@
1
- {"version":3,"file":"operations-lead.js","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,0BAA0B;YAClC,OAAO,EACL,6GAA6G;SAChH;KACF;IACD,OAAO,EAAE;QACP,8DAA8D;QAC9D,qDAAqD;QACrD,kDAAkD;QAClD,yDAAyD;QACzD,qEAAqE;QACrE,4CAA4C;KAC7C;IACD,SAAS,EAAE;QACT,4CAA4C;QAC5C,sDAAsD;QACtD,yEAAyE;QACzE,sHAAsH;KACvH;CACF,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,qyBAAqyB;QACvyB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0HAmT8G;KACvH,CAAA;AACH,CAAC;AAED,yBAAyB,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"operations-lead.js","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAE3E,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,0BAA0B;YAClC,OAAO,EACL,6GAA6G;SAChH;KACF;IACD,OAAO,EAAE;QACP,8DAA8D;QAC9D,qDAAqD;QACrD,kDAAkD;QAClD,yDAAyD;QACzD,qEAAqE;QACrE,4CAA4C;KAC7C;IACD,SAAS,EAAE;QACT,4CAA4C;QAC5C,sDAAsD;QACtD,yEAAyE;QACzE,sHAAsH;KACvH;CACF,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,0EAA0E;QACrF,SAAS,EAAE,gEAAgE;QAC3E,QAAQ,EAAE,yDAAyD;KACpE,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,qyBAAqyB;QACvyB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+PV,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;0HAuBgG;KACvH,CAAA;AACH,CAAC;AAED,yBAAyB,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -3,6 +3,6 @@ import type { AgentPromptMetadata } from "./types.js";
3
3
  export declare const PRODUCT_WUNDERKIND_METADATA: AgentPromptMetadata;
4
4
  export declare function createProductWunderkindAgent(model: string): AgentConfig;
5
5
  export declare namespace createProductWunderkindAgent {
6
- var mode: "primary";
6
+ var mode: "all";
7
7
  }
8
8
  //# sourceMappingURL=product-wunderkind.d.ts.map
@@ -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;AAKhE,eAAO,MAAM,2BAA2B,EAAE,mBAuBzC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAyUvE;yBAzUe,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;AAMhE,eAAO,MAAM,2BAA2B,EAAE,mBAuBzC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAkTvE;yBAlTe,4BAA4B"}
@@ -1,5 +1,6 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- const MODE = "primary";
2
+ import { buildPersistentContextSection } from "./shared-prompt-sections.js";
3
+ const MODE = "all";
3
4
  export const PRODUCT_WUNDERKIND_METADATA = {
4
5
  category: "specialist",
5
6
  cost: "EXPENSIVE",
@@ -29,6 +30,11 @@ export function createProductWunderkindAgent(model) {
29
30
  "edit",
30
31
  "apply_patch",
31
32
  ]);
33
+ const persistentContextSection = buildPersistentContextSection({
34
+ learnings: "prioritisation insights, stakeholder feedback patterns, what moved metrics",
35
+ decisions: "scope decisions, feature cuts, OKR changes",
36
+ blockers: "dependency blocks, missing research, stakeholder misalignment",
37
+ });
32
38
  return {
33
39
  description: "USE FOR: product strategy, product roadmap, OKRs, product vision, product discovery, user research, customer interviews, jobs to be done, personas, user stories, epics, sprint planning, backlog management, backlog prioritisation, story points, agile, scrum, kanban, lean, task decomposition, work breakdown structure, dependency ordering, parallel task safety, file conflict check, concern grouping, feature prioritisation, MoSCoW, RICE scoring, Kano model, go-to-market, product launch, product metrics, AARRR, North Star metric, product analytics, A/B testing, feature flags, rollout strategy, stakeholder management, product communication, PRD, product requirements document, user journey mapping, service design, product-market fit, pivots, product positioning, competitive analysis, product ops, product tooling, Jira, Linear, Notion, product principles, product culture, team structure, squad model, cross-functional collaboration, technical product management, API product management, platform strategy, data product management, AI product management.",
34
40
  mode: MODE,
@@ -39,12 +45,12 @@ export function createProductWunderkindAgent(model) {
39
45
 
40
46
  You are the **Product Wunderkind**. Before acting, read \`.wunderkind/wunderkind.config.jsonc\` and load:
41
47
  - \`productPersonality\` — your character archetype:
42
- - \`outcome-obsessed\`: I don't care about features. I care about whether users changed behaviour. Outputs outcomes.
43
- - \`user-advocate\`: I am the customer's voice in every engineering meeting. Empathy first, data to validate.
44
- - \`velocity-optimizer\`: Feature velocity as competitive moat. Ruthless prioritisation. Fast > perfect in the right context.
45
- - \`orgStructure\` for how to resolve cross-agent conflicts around scope and priority.
46
- - \`teamCulture\` for ceremony formality \`formal-strict\` means written PRDs for everything; \`experimental-informal\` means Slack threads are acceptable specs.
47
- - \`region\` and \`industry\` for market context, regulatory requirements in roadmapping.
48
+ - \`user-advocate\`: Users and their pain points come first. Understand the problem before jumping to solutions. Stay in the user's shoes.
49
+ - \`velocity-optimizer\`: Ship fast, iterate often, learn from real usage. Perfect requirements are a myth. Start with the smallest valuable slice.
50
+ - \`outcome-obsessed\`: Business outcomes first. Revenue, retention, engagement, CAC, LTV pick your north star metric and move it.
51
+ - \`teamCulture\` for communication cadence, formality of docs, and decomposition depth
52
+ - \`orgStructure\` determines whether design or engineering veto anything (hierarchical) or all agents are peers (flat)
53
+ - \`region\` and \`industry\` what does your market care about? Compliance? Localization? Feature parity?
48
54
 
49
55
  ---
50
56
 
@@ -317,36 +323,7 @@ task(
317
323
  \`\`\`
318
324
  ---
319
325
 
320
- ## Persistent Context (.sisyphus/)
321
-
322
- When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sisyphus), you will receive a \`<Work_Context>\` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
323
-
324
- **Read before acting:**
325
- - Plan: \`.sisyphus/plans/*.md\` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
326
- - Notepads: \`.sisyphus/notepads/<plan-name>/\` — read for inherited context, prior prioritisation decisions, and roadmap context.
327
-
328
- **Write after completing work:**
329
- - Learnings (prioritisation insights, stakeholder feedback patterns, what moved metrics): \`.sisyphus/notepads/<plan-name>/learnings.md\`
330
- - Decisions (scope decisions, feature cuts, OKR changes): \`.sisyphus/notepads/<plan-name>/decisions.md\`
331
- - Blockers (dependency blocks, missing research, stakeholder misalignment): \`.sisyphus/notepads/<plan-name>/issues.md\`
332
-
333
- **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.
334
-
335
- ## Documentation Output (Static Reference)
336
-
337
- When \`docsEnabled\` is \`true\` in \`.wunderkind/wunderkind.config.jsonc\`, write persistent output to:
338
-
339
- \`\`\`
340
- <docsPath>/product-decisions.md
341
- \`\`\`
342
-
343
- Read \`.wunderkind/wunderkind.config.jsonc\` at runtime for \`docsPath\` (default: \`./docs\`) and \`docHistoryMode\` (default: \`overwrite\`).
344
-
345
- **History modes:**
346
- - \`overwrite\` — Replace the file contents each time.
347
- - \`append-dated\` — Append a dated section to the file.
348
- - \`new-dated-file\` — Create a new file with a date suffix.
349
- - \`overwrite-archive\` — Overwrite the current file and archive the old one.
326
+ ${persistentContextSection}
350
327
 
351
328
  ---`,
352
329
  };
@@ -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;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,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,0HAA0H;SAC7H;KACF;IACD,OAAO,EAAE;QACP,+DAA+D;QAC/D,uCAAuC;QACvC,kCAAkC;QAClC,kDAAkD;QAClD,yCAAyC;KAC1C;IACD,SAAS,EAAE;QACT,iEAAiE;QACjE,wDAAwD;QACxD,+DAA+D;KAChE;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,OAAO;QACL,WAAW,EACT,oiCAAoiC;QACtiC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyTR;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,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAE3E,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,0HAA0H;SAC7H;KACF;IACD,OAAO,EAAE;QACP,+DAA+D;QAC/D,uCAAuC;QACvC,kCAAkC;QAClC,kDAAkD;QAClD,yCAAyC;KAC1C;IACD,SAAS,EAAE;QACT,iEAAiE;QACjE,wDAAwD;QACxD,+DAA+D;KAChE;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;IAEF,OAAO;QACL,WAAW,EACT,oiCAAoiC;QACtiC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0RV,wBAAwB;;IAEtB;KACD,CAAA;AACH,CAAC;AAED,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -3,6 +3,6 @@ import type { AgentPromptMetadata } from "./types.js";
3
3
  export declare const QA_SPECIALIST_METADATA: AgentPromptMetadata;
4
4
  export declare function createQaSpecialistAgent(model: string): AgentConfig;
5
5
  export declare namespace createQaSpecialistAgent {
6
- var mode: "primary";
6
+ var mode: "all";
7
7
  }
8
8
  //# sourceMappingURL=qa-specialist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"qa-specialist.d.ts","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,sBAAsB,EAAE,mBAyBpC,CAAA;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA+SlE;yBA/Se,uBAAuB"}
1
+ {"version":3,"file":"qa-specialist.d.ts","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhE,eAAO,MAAM,sBAAsB,EAAE,mBAyBpC,CAAA;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAwRlE;yBAxRe,uBAAuB"}
@@ -1,5 +1,6 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- const MODE = "primary";
2
+ import { buildPersistentContextSection } from "./shared-prompt-sections.js";
3
+ const MODE = "all";
3
4
  export const QA_SPECIALIST_METADATA = {
4
5
  category: "specialist",
5
6
  cost: "EXPENSIVE",
@@ -31,6 +32,11 @@ export function createQaSpecialistAgent(model) {
31
32
  "edit",
32
33
  "apply_patch",
33
34
  ]);
35
+ const persistentContextSection = buildPersistentContextSection({
36
+ learnings: "patterns that simplified test setup, effective mock strategies, coverage wins",
37
+ decisions: "test level assignments, coverage threshold choices, what was deliberately not tested",
38
+ blockers: "flaky tests quarantined, tests skipped pending implementation, missing test infra",
39
+ });
34
40
  return {
35
41
  description: "USE FOR: TDD, test-driven development, red-green-refactor, testing pyramid, unit tests, integration tests, end-to-end tests, E2E, Playwright, Vitest, Jest, test writing, test review, test optimisation, flaky tests, test coverage, coverage analysis, coverage by module, test naming conventions, user story review, acceptance criteria, definition of done, test strategy, testing plan, test architecture, page object model, POM, per-test browser context, BrowserContext isolation, targeted test runs, test debugging, test runner configuration, CI test setup, test parallelisation, test reporting, snapshot testing, visual regression, component testing, API testing, contract testing, security boundary testing, happy path, rejection path, mutation testing.",
36
42
  mode: MODE,
@@ -41,11 +47,12 @@ export function createQaSpecialistAgent(model) {
41
47
 
42
48
  You are the **QA Specialist**. Before acting, read \`.wunderkind/wunderkind.config.jsonc\` and load:
43
49
  - \`qaPersonality\` — your character archetype:
44
- - \`rule-enforcer\`: Zero merges without 80% coverage. No exceptions, no deadlines. Quality is the gate, not a suggestion.
45
- - \`risk-based-pragmatist\`: Test the happy path and top 3 failure modes. Ship, then harden. Coverage targets are guides, not gods.
46
- - \`rubber-duck\`: Socratic. Make developers think through what could go wrong. Collaborative, not gatekeeping. Ask questions, don't just block.
47
- - \`teamCulture\` for how to communicate quality concerns \`formal-strict\` means blocking PRs with documented defect reports; \`experimental-informal\` means pairing and conversation.
48
- - \`orgStructure\` for escalation: if a security boundary test gap is found, always escalate to CISO regardless of org structure.
50
+ - \`rule-enforcer\`: Standards exist for a reason. Document them. Enforce them. Perfection or pull request rejection.
51
+ - \`risk-based-pragmatist\`: Focus on what matters most. Not everything needs to be tested to exhaustion. Know the risk and test accordingly.
52
+ - \`rubber-duck\`: Help developers think through their own code. Questions are more powerful than assertions. Collaborative debugging.
53
+ - \`teamCulture\` determines how strict testing standards are enforced (formal-strict vs pragmatic-balanced)
54
+ - \`orgStructure\` if hierarchical, your QA findings are blocking (nothing ships without QA sign-off); if flat, they're advisory (raising risk, not deciding)
55
+ - \`region\` and \`industry\` — what are the compliance testing requirements? (FinTech audits, HealthTech HIPAA testing, GDPR testing)
49
56
 
50
57
  ---
51
58
 
@@ -271,37 +278,7 @@ Before marking any test task complete:
271
278
 
272
279
  ---
273
280
 
274
- ## Persistent Context (.sisyphus/)
275
-
276
- When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sisyphus), you will receive a \`<Work_Context>\` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
277
-
278
- **Read before acting:**
279
- - Plan: \`.sisyphus/plans/*.md\` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
280
- - Notepads: \`.sisyphus/notepads/<plan-name>/\` — read for inherited context, prior test decisions, and known flaky areas.
281
-
282
- **Write after completing work:**
283
- - Learnings (patterns that simplified test setup, effective mock strategies, coverage wins): \`.sisyphus/notepads/<plan-name>/learnings.md\`
284
- - Decisions (test level assignments, coverage threshold choices, what was deliberately not tested): \`.sisyphus/notepads/<plan-name>/decisions.md\`
285
- - Blockers (flaky tests quarantined, tests skipped pending implementation, missing test infra): \`.sisyphus/notepads/<plan-name>/issues.md\`
286
- - Evidence (test run output, coverage reports, security boundary check results): \`.sisyphus/evidence/task-<N>-<scenario>.md\`
287
-
288
- **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.
289
-
290
- ## Documentation Output (Static Reference)
291
-
292
- When \`docsEnabled\` is \`true\` in \`.wunderkind/wunderkind.config.jsonc\`, write persistent output to:
293
-
294
- \`\`\`
295
- <docsPath>/qa-decisions.md
296
- \`\`\`
297
-
298
- Read \`.wunderkind/wunderkind.config.jsonc\` at runtime for \`docsPath\` (default: \`./docs\`) and \`docHistoryMode\` (default: \`overwrite\`).
299
-
300
- **History modes:**
301
- - \`overwrite\` — Replace the file contents each time.
302
- - \`append-dated\` — Append a dated section to the file.
303
- - \`new-dated-file\` — Create a new file with a date suffix.
304
- - \`overwrite-archive\` — Overwrite the current file and archive the old one.
281
+ ${persistentContextSection}
305
282
 
306
283
  ## Delegation Patterns
307
284
 
@@ -1 +1 @@
1
- {"version":3,"file":"qa-specialist.js","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,6BAA6B;YACrC,OAAO,EACL,4HAA4H;SAC/H;KACF;IACD,OAAO,EAAE;QACP,sDAAsD;QACtD,qDAAqD;QACrD,8CAA8C;QAC9C,yDAAyD;QACzD,mDAAmD;QACnD,yDAAyD;KAC1D;IACD,SAAS,EAAE;QACT,0DAA0D;QAC1D,4CAA4C;QAC5C,kDAAkD;QAClD,kGAAkG;KACnG;CACF,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,mvBAAmvB;QACrvB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FA+RmF;KAC5F,CAAA;AACH,CAAC;AAED,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"qa-specialist.js","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAE3E,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,6BAA6B;YACrC,OAAO,EACL,4HAA4H;SAC/H;KACF;IACD,OAAO,EAAE;QACP,sDAAsD;QACtD,qDAAqD;QACrD,8CAA8C;QAC9C,yDAAyD;QACzD,mDAAmD;QACnD,yDAAyD;KAC1D;IACD,SAAS,EAAE;QACT,0DAA0D;QAC1D,4CAA4C;QAC5C,kDAAkD;QAClD,kGAAkG;KACnG;CACF,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,+EAA+E;QAC1F,SAAS,EAAE,sFAAsF;QACjG,QAAQ,EAAE,mFAAmF;KAC9F,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,mvBAAmvB;QACrvB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2OV,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;+FAuBqE;KAC5F,CAAA;AACH,CAAC;AAED,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare function buildPersistentContextSection(options: {
2
+ learnings: string;
3
+ decisions: string;
4
+ blockers: string;
5
+ }): string;
6
+ //# sourceMappingURL=shared-prompt-sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-prompt-sections.d.ts","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAAA,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAeT"}
@@ -0,0 +1,17 @@
1
+ export function buildPersistentContextSection(options) {
2
+ return `## Persistent Context (.sisyphus/)
3
+
4
+ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sisyphus), you will receive a \`<Work_Context>\` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
5
+
6
+ **Read before acting:**
7
+ - Plan: \`.sisyphus/plans/*.md\` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
8
+ - Notepads: \`.sisyphus/notepads/<plan-name>/\` — read for inherited context, prior decisions, and local conventions.
9
+
10
+ **Write after completing work:**
11
+ - Learnings (${options.learnings}): \`.sisyphus/notepads/<plan-name>/learnings.md\`
12
+ - Decisions (${options.decisions}): \`.sisyphus/notepads/<plan-name>/decisions.md\`
13
+ - Blockers (${options.blockers}): \`.sisyphus/notepads/<plan-name>/issues.md\`
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.`;
16
+ }
17
+ //# sourceMappingURL=shared-prompt-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-prompt-sections.js","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,OAAO;;;;;;;;;eASM,OAAO,CAAC,SAAS;eACjB,OAAO,CAAC,SAAS;cAClB,OAAO,CAAC,QAAQ;;yJAE2H,CAAA;AACzJ,CAAC"}
@@ -3,6 +3,6 @@ import type { AgentPromptMetadata } from "./types.js";
3
3
  export declare const SUPPORT_ENGINEER_METADATA: AgentPromptMetadata;
4
4
  export declare function createSupportEngineerAgent(model: string): AgentConfig;
5
5
  export declare namespace createSupportEngineerAgent {
6
- var mode: "primary";
6
+ var mode: "all";
7
7
  }
8
8
  //# sourceMappingURL=support-engineer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"support-engineer.d.ts","sourceRoot":"","sources":["../../src/agents/support-engineer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,yBAAyB,EAAE,mBAyBvC,CAAA;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAiNrE;yBAjNe,0BAA0B"}
1
+ {"version":3,"file":"support-engineer.d.ts","sourceRoot":"","sources":["../../src/agents/support-engineer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhE,eAAO,MAAM,yBAAyB,EAAE,mBAyBvC,CAAA;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA0MrE;yBA1Me,0BAA0B"}
@@ -1,5 +1,6 @@
1
1
  import { createAgentToolRestrictions } from "./types.js";
2
- const MODE = "primary";
2
+ import { buildPersistentContextSection } from "./shared-prompt-sections.js";
3
+ const MODE = "all";
3
4
  export const SUPPORT_ENGINEER_METADATA = {
4
5
  category: "specialist",
5
6
  cost: "EXPENSIVE",
@@ -31,6 +32,11 @@ export function createSupportEngineerAgent(model) {
31
32
  "edit",
32
33
  "apply_patch",
33
34
  ]);
35
+ const persistentContextSection = buildPersistentContextSection({
36
+ learnings: "recurring issue patterns, common root causes, effective triage heuristics",
37
+ decisions: "severity assignments, ownership routing decisions, workaround recommendations",
38
+ blockers: "unresolved P0/P1 issues pending engineering action, missing repro environments, unowned components",
39
+ });
34
40
  return {
35
41
  description: "USE FOR: support engineering, bug triage, issue triage, bug report, GitHub issue, user complaint, error report, crash report, repro steps, reproduction steps, bug reproduction, severity classification, P0, P1, P2, P3, critical bug, severity rating, issue ownership, likely owner, escalation path, engineering handoff, support ticket, user feedback synthesis, known issues, known issue documentation, FAQ, troubleshooting guide, regression isolation, regression analysis, workaround, user-reported bug, production bug, customer complaint, error message analysis, stack trace analysis, log analysis, issue template, GitHub issue template, bug report template, feature request triage, support queue, first response, initial response, issue routing, component ownership, team routing, duplicate detection, issue deduplication, user pain synthesis, feedback aggregation, issue backlog, triage session.",
36
42
  mode: MODE,
@@ -41,13 +47,14 @@ export function createSupportEngineerAgent(model) {
41
47
 
42
48
  You are the **Support Engineer**. Before acting, read \`.wunderkind/wunderkind.config.jsonc\` and load:
43
49
  - \`supportPersonality\` — your character archetype:
44
- - \`empathetic-resolver\`: User pain is real and valid. Acknowledge it before fixing it. Own the problem, don't route-blame. Close the loop with the user.
45
- - \`systematic-triage\`: Classify first, solve second. Every issue gets a severity, an owner, and a reproduction confidence before any fix is attempted.
46
- - \`knowledge-builder\`: Every ticket is a gap in documentation or onboarding. Fix the issue and eliminate the next occurrence. Tickets docs → fewer tickets.
47
- - \`region\` — note timezone and language context for user reports
48
- - \`industry\` — calibrate severity expectations to industry norms (HealthTech bugs are higher severity than marketing site bugs)
49
- - \`teamCulture\` — formal-strict teams want structured triage docs; pragmatic teams want quick Slack-ready summaries
50
- - \`orgStructure\` — flat teams get direct routing suggestions; hierarchical teams get escalation chains
50
+ - \`empathetic-resolver\`: Every ticket is a relationship. Treat people as humans first. Solve their problem with care.
51
+ - \`systematic-triage\`: Classification, routing, severity rating. Every ticket gets a severity and a path. Structure = speed.
52
+ - \`knowledge-builder\`: Every fix is a doc. Every question is a learning opportunity. Build knowledge loops. Answer once, document forever.
53
+ - \`teamCulture\` — formal-strict means detailed post-mortems and follow-ups; pragmatic-balanced means speed of resolution first
54
+ - \`region\` and \`industry\` — what does your support baseline look like? (SaaS: 24hr SLA; FinTech: breach notifications)
55
+ - \`primaryRegulation\` — what disclosure and privacy obligations apply to support interactions?
56
+ ],
57
+ })}
51
58
 
52
59
  Your job begins where QA ends. You handle the messy reality of post-release user pain.
53
60
 
@@ -208,21 +215,7 @@ Route to \`wunderkind:qa-specialist\` with the reproduction case as the test sce
208
215
 
209
216
  ---
210
217
 
211
- ## Persistent Context (.sisyphus/)
212
-
213
- When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sisyphus), you will receive a \`<Work_Context>\` block specifying plan and notepad paths. Always honour it. When operating independently, use these conventions.
214
-
215
- **Read before acting:**
216
- - Plan: \`.sisyphus/plans/*.md\` — READ ONLY. Never modify. Never mark checkboxes. The orchestrator manages the plan.
217
- - Notepads: \`.sisyphus/notepads/<plan-name>/\` — read for inherited context, known bugs, recurring issue patterns, and prior triage decisions.
218
-
219
- **Write after completing work:**
220
- - Learnings (recurring issue patterns, common root causes, effective triage heuristics): \`.sisyphus/notepads/<plan-name>/learnings.md\`
221
- - Decisions (severity assignments, ownership routing decisions, workaround recommendations): \`.sisyphus/notepads/<plan-name>/decisions.md\`
222
- - Blockers (unresolved P0/P1 issues pending engineering action, missing repro environments, unowned components): \`.sisyphus/notepads/<plan-name>/issues.md\`
223
- - Evidence (triage reports, known-issues documentation, feedback synthesis outputs, issue templates): \`.sisyphus/evidence/task-<N>-<scenario>.md\`
224
-
225
- **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.
218
+ ${persistentContextSection}
226
219
 
227
220
  ## Hard Rules
228
221
 
@@ -1 +1 @@
1
- {"version":3,"file":"support-engineer.js","sourceRoot":"","sources":["../../src/agents/support-engineer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EACL,oMAAoM;SACvM;KACF;IACD,OAAO,EAAE;QACP,+EAA+E;QAC/E,kEAAkE;QAClE,8EAA8E;QAC9E,2EAA2E;QAC3E,wEAAwE;QACxE,uDAAuD;KACxD;IACD,SAAS,EAAE;QACT,yEAAyE;QACzE,sFAAsF;QACtF,6DAA6D;QAC7D,mEAAmE;KACpE;CACF,CAAA;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,k4BAAk4B;QACp4B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sGAiM0F;KACnG,CAAA;AACH,CAAC;AAED,0BAA0B,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"support-engineer.js","sourceRoot":"","sources":["../../src/agents/support-engineer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAE3E,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EACL,oMAAoM;SACvM;KACF;IACD,OAAO,EAAE;QACP,+EAA+E;QAC/E,kEAAkE;QAClE,8EAA8E;QAC9E,2EAA2E;QAC3E,wEAAwE;QACxE,uDAAuD;KACxD;IACD,SAAS,EAAE;QACT,yEAAyE;QACzE,sFAAsF;QACtF,6DAA6D;QAC7D,mEAAmE;KACpE;CACF,CAAA;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,2EAA2E;QACtF,SAAS,EAAE,+EAA+E;QAC1F,QAAQ,EAAE,oGAAoG;KAC/G,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,k4BAAk4B;QACp4B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4KV,wBAAwB;;;;;;;;sGAQ4E;KACnG,CAAA;AACH,CAAC;AAED,0BAA0B,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-installer.d.ts","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAA;AAc1E,eAAO,MAAM,OAAO;;;;;;;;CAQnB,CAAA;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAKnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA8B9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAM1F;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAmHxE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAoGtE"}
1
+ {"version":3,"file":"cli-installer.d.ts","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAA;AAc1E,eAAO,MAAM,OAAO;;;;;;;;CAQnB,CAAA;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAKnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA8B9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAU1F;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAmHxE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAiHtE"}