compact-agent 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +394 -0
  2. package/bin/anycode.js +2 -0
  3. package/bin/crowcoder.js +19 -0
  4. package/bin/ecc-hooks.cjs +138 -0
  5. package/dist/agents.d.ts +17 -0
  6. package/dist/agents.js +1603 -0
  7. package/dist/agents.js.map +1 -0
  8. package/dist/api.d.ts +16 -0
  9. package/dist/api.js +115 -0
  10. package/dist/api.js.map +1 -0
  11. package/dist/autonomous-loops.d.ts +108 -0
  12. package/dist/autonomous-loops.js +526 -0
  13. package/dist/autonomous-loops.js.map +1 -0
  14. package/dist/codemaps.d.ts +53 -0
  15. package/dist/codemaps.js +325 -0
  16. package/dist/codemaps.js.map +1 -0
  17. package/dist/compaction.d.ts +30 -0
  18. package/dist/compaction.js +125 -0
  19. package/dist/compaction.js.map +1 -0
  20. package/dist/config.d.ts +5 -0
  21. package/dist/config.js +79 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/content-engine.d.ts +97 -0
  24. package/dist/content-engine.js +721 -0
  25. package/dist/content-engine.js.map +1 -0
  26. package/dist/cost-tracker.d.ts +49 -0
  27. package/dist/cost-tracker.js +150 -0
  28. package/dist/cost-tracker.js.map +1 -0
  29. package/dist/counter-button.d.ts +35 -0
  30. package/dist/counter-button.js +48 -0
  31. package/dist/counter-button.js.map +1 -0
  32. package/dist/counter.d.ts +21 -0
  33. package/dist/counter.js +31 -0
  34. package/dist/counter.js.map +1 -0
  35. package/dist/coverage.d.ts +23 -0
  36. package/dist/coverage.js +215 -0
  37. package/dist/coverage.js.map +1 -0
  38. package/dist/docs-sync.d.ts +23 -0
  39. package/dist/docs-sync.js +266 -0
  40. package/dist/docs-sync.js.map +1 -0
  41. package/dist/ecc.d.ts +41 -0
  42. package/dist/ecc.js +644 -0
  43. package/dist/ecc.js.map +1 -0
  44. package/dist/evaluation.d.ts +24 -0
  45. package/dist/evaluation.js +412 -0
  46. package/dist/evaluation.js.map +1 -0
  47. package/dist/export.d.ts +22 -0
  48. package/dist/export.js +109 -0
  49. package/dist/export.js.map +1 -0
  50. package/dist/git-workflow.d.ts +22 -0
  51. package/dist/git-workflow.js +197 -0
  52. package/dist/git-workflow.js.map +1 -0
  53. package/dist/hook-controls.d.ts +34 -0
  54. package/dist/hook-controls.js +90 -0
  55. package/dist/hook-controls.js.map +1 -0
  56. package/dist/hooks.d.ts +30 -0
  57. package/dist/hooks.js +130 -0
  58. package/dist/hooks.js.map +1 -0
  59. package/dist/html-parser.d.ts +18 -0
  60. package/dist/html-parser.js +101 -0
  61. package/dist/html-parser.js.map +1 -0
  62. package/dist/index.d.ts +12 -0
  63. package/dist/index.js +1230 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/learning.d.ts +35 -0
  66. package/dist/learning.js +238 -0
  67. package/dist/learning.js.map +1 -0
  68. package/dist/login.d.ts +37 -0
  69. package/dist/login.js +191 -0
  70. package/dist/login.js.map +1 -0
  71. package/dist/memory.d.ts +39 -0
  72. package/dist/memory.js +183 -0
  73. package/dist/memory.js.map +1 -0
  74. package/dist/model-router.d.ts +23 -0
  75. package/dist/model-router.js +145 -0
  76. package/dist/model-router.js.map +1 -0
  77. package/dist/modes.d.ts +17 -0
  78. package/dist/modes.js +217 -0
  79. package/dist/modes.js.map +1 -0
  80. package/dist/orchestration.d.ts +37 -0
  81. package/dist/orchestration.js +139 -0
  82. package/dist/orchestration.js.map +1 -0
  83. package/dist/package-detect.d.ts +36 -0
  84. package/dist/package-detect.js +529 -0
  85. package/dist/package-detect.js.map +1 -0
  86. package/dist/permissions.d.ts +25 -0
  87. package/dist/permissions.js +50 -0
  88. package/dist/permissions.js.map +1 -0
  89. package/dist/pm2-manager.d.ts +40 -0
  90. package/dist/pm2-manager.js +127 -0
  91. package/dist/pm2-manager.js.map +1 -0
  92. package/dist/query.d.ts +15 -0
  93. package/dist/query.js +278 -0
  94. package/dist/query.js.map +1 -0
  95. package/dist/refactor.d.ts +22 -0
  96. package/dist/refactor.js +226 -0
  97. package/dist/refactor.js.map +1 -0
  98. package/dist/retry.d.ts +20 -0
  99. package/dist/retry.js +88 -0
  100. package/dist/retry.js.map +1 -0
  101. package/dist/rules.d.ts +34 -0
  102. package/dist/rules.js +942 -0
  103. package/dist/rules.js.map +1 -0
  104. package/dist/schema.d.ts +23 -0
  105. package/dist/schema.js +12 -0
  106. package/dist/schema.js.map +1 -0
  107. package/dist/search-first.d.ts +17 -0
  108. package/dist/search-first.js +301 -0
  109. package/dist/search-first.js.map +1 -0
  110. package/dist/security.d.ts +10 -0
  111. package/dist/security.js +145 -0
  112. package/dist/security.js.map +1 -0
  113. package/dist/sessions.d.ts +21 -0
  114. package/dist/sessions.js +112 -0
  115. package/dist/sessions.js.map +1 -0
  116. package/dist/skill-create.d.ts +38 -0
  117. package/dist/skill-create.js +389 -0
  118. package/dist/skill-create.js.map +1 -0
  119. package/dist/skills.d.ts +34 -0
  120. package/dist/skills.js +161 -0
  121. package/dist/skills.js.map +1 -0
  122. package/dist/strategic-compaction.d.ts +24 -0
  123. package/dist/strategic-compaction.js +144 -0
  124. package/dist/strategic-compaction.js.map +1 -0
  125. package/dist/system-prompt.d.ts +3 -0
  126. package/dist/system-prompt.js +101 -0
  127. package/dist/system-prompt.js.map +1 -0
  128. package/dist/theme.d.ts +60 -0
  129. package/dist/theme.js +220 -0
  130. package/dist/theme.js.map +1 -0
  131. package/dist/tools/bash.d.ts +2 -0
  132. package/dist/tools/bash.js +49 -0
  133. package/dist/tools/bash.js.map +1 -0
  134. package/dist/tools/edit.d.ts +2 -0
  135. package/dist/tools/edit.js +76 -0
  136. package/dist/tools/edit.js.map +1 -0
  137. package/dist/tools/glob.d.ts +2 -0
  138. package/dist/tools/glob.js +54 -0
  139. package/dist/tools/glob.js.map +1 -0
  140. package/dist/tools/grep.d.ts +2 -0
  141. package/dist/tools/grep.js +64 -0
  142. package/dist/tools/grep.js.map +1 -0
  143. package/dist/tools/index.d.ts +5 -0
  144. package/dist/tools/index.js +27 -0
  145. package/dist/tools/index.js.map +1 -0
  146. package/dist/tools/list-dir.d.ts +2 -0
  147. package/dist/tools/list-dir.js +51 -0
  148. package/dist/tools/list-dir.js.map +1 -0
  149. package/dist/tools/read.d.ts +2 -0
  150. package/dist/tools/read.js +56 -0
  151. package/dist/tools/read.js.map +1 -0
  152. package/dist/tools/types.d.ts +45 -0
  153. package/dist/tools/types.js +2 -0
  154. package/dist/tools/types.js.map +1 -0
  155. package/dist/tools/web-fetch.d.ts +2 -0
  156. package/dist/tools/web-fetch.js +41 -0
  157. package/dist/tools/web-fetch.js.map +1 -0
  158. package/dist/tools/web-search.d.ts +27 -0
  159. package/dist/tools/web-search.js +139 -0
  160. package/dist/tools/web-search.js.map +1 -0
  161. package/dist/tools/write.d.ts +2 -0
  162. package/dist/tools/write.js +36 -0
  163. package/dist/tools/write.js.map +1 -0
  164. package/dist/types.d.ts +28 -0
  165. package/dist/types.js +57 -0
  166. package/dist/types.js.map +1 -0
  167. package/dist/users.d.ts +51 -0
  168. package/dist/users.js +193 -0
  169. package/dist/users.js.map +1 -0
  170. package/dist/verification.d.ts +73 -0
  171. package/dist/verification.js +269 -0
  172. package/dist/verification.js.map +1 -0
  173. package/dist/walkthrough.d.ts +10 -0
  174. package/dist/walkthrough.js +121 -0
  175. package/dist/walkthrough.js.map +1 -0
  176. package/package.json +58 -0
  177. package/resources/ecc/agents/architect.json +16 -0
  178. package/resources/ecc/agents/architect.md +212 -0
  179. package/resources/ecc/agents/build-error-resolver.json +17 -0
  180. package/resources/ecc/agents/build-error-resolver.md +116 -0
  181. package/resources/ecc/agents/chief-of-staff.json +17 -0
  182. package/resources/ecc/agents/chief-of-staff.md +153 -0
  183. package/resources/ecc/agents/code-reviewer.json +16 -0
  184. package/resources/ecc/agents/code-reviewer.md +238 -0
  185. package/resources/ecc/agents/database-reviewer.json +16 -0
  186. package/resources/ecc/agents/database-reviewer.md +92 -0
  187. package/resources/ecc/agents/doc-updater.json +16 -0
  188. package/resources/ecc/agents/doc-updater.md +108 -0
  189. package/resources/ecc/agents/e2e-runner.json +17 -0
  190. package/resources/ecc/agents/e2e-runner.md +109 -0
  191. package/resources/ecc/agents/go-build-resolver.json +17 -0
  192. package/resources/ecc/agents/go-build-resolver.md +96 -0
  193. package/resources/ecc/agents/go-reviewer.json +16 -0
  194. package/resources/ecc/agents/go-reviewer.md +77 -0
  195. package/resources/ecc/agents/harness-optimizer.json +15 -0
  196. package/resources/ecc/agents/harness-optimizer.md +34 -0
  197. package/resources/ecc/agents/loop-operator.json +16 -0
  198. package/resources/ecc/agents/loop-operator.md +36 -0
  199. package/resources/ecc/agents/planner.json +15 -0
  200. package/resources/ecc/agents/planner.md +212 -0
  201. package/resources/ecc/agents/python-reviewer.json +16 -0
  202. package/resources/ecc/agents/python-reviewer.md +99 -0
  203. package/resources/ecc/agents/refactor-cleaner.json +17 -0
  204. package/resources/ecc/agents/refactor-cleaner.md +87 -0
  205. package/resources/ecc/agents/security-reviewer.json +16 -0
  206. package/resources/ecc/agents/security-reviewer.md +109 -0
  207. package/resources/ecc/agents/tdd-guide.json +17 -0
  208. package/resources/ecc/agents/tdd-guide.md +93 -0
  209. package/resources/ecc/commands/add-language-rules.md +39 -0
  210. package/resources/ecc/commands/database-migration.md +36 -0
  211. package/resources/ecc/commands/feature-development.md +38 -0
  212. package/resources/ecc/prompts/build-fix.prompt.md +47 -0
  213. package/resources/ecc/prompts/code-review.prompt.md +56 -0
  214. package/resources/ecc/prompts/plan.prompt.md +52 -0
  215. package/resources/ecc/prompts/refactor.prompt.md +50 -0
  216. package/resources/ecc/prompts/security-review.prompt.md +70 -0
  217. package/resources/ecc/prompts/tdd.prompt.md +47 -0
  218. package/resources/ecc/rules/common-agents.md +53 -0
  219. package/resources/ecc/rules/common-coding-style.md +52 -0
  220. package/resources/ecc/rules/common-development-workflow.md +33 -0
  221. package/resources/ecc/rules/common-git-workflow.md +28 -0
  222. package/resources/ecc/rules/common-hooks.md +34 -0
  223. package/resources/ecc/rules/common-patterns.md +35 -0
  224. package/resources/ecc/rules/common-performance.md +59 -0
  225. package/resources/ecc/rules/common-security.md +33 -0
  226. package/resources/ecc/rules/common-testing.md +33 -0
  227. package/resources/ecc/rules/golang-coding-style.md +31 -0
  228. package/resources/ecc/rules/golang-hooks.md +16 -0
  229. package/resources/ecc/rules/golang-patterns.md +44 -0
  230. package/resources/ecc/rules/golang-security.md +33 -0
  231. package/resources/ecc/rules/golang-testing.md +30 -0
  232. package/resources/ecc/rules/kotlin-coding-style.md +39 -0
  233. package/resources/ecc/rules/kotlin-hooks.md +16 -0
  234. package/resources/ecc/rules/kotlin-patterns.md +50 -0
  235. package/resources/ecc/rules/kotlin-security.md +58 -0
  236. package/resources/ecc/rules/kotlin-testing.md +38 -0
  237. package/resources/ecc/rules/php-coding-style.md +25 -0
  238. package/resources/ecc/rules/php-hooks.md +21 -0
  239. package/resources/ecc/rules/php-patterns.md +23 -0
  240. package/resources/ecc/rules/php-security.md +24 -0
  241. package/resources/ecc/rules/php-testing.md +26 -0
  242. package/resources/ecc/rules/python-coding-style.md +42 -0
  243. package/resources/ecc/rules/python-hooks.md +19 -0
  244. package/resources/ecc/rules/python-patterns.md +39 -0
  245. package/resources/ecc/rules/python-security.md +30 -0
  246. package/resources/ecc/rules/python-testing.md +38 -0
  247. package/resources/ecc/rules/swift-coding-style.md +47 -0
  248. package/resources/ecc/rules/swift-hooks.md +20 -0
  249. package/resources/ecc/rules/swift-patterns.md +66 -0
  250. package/resources/ecc/rules/swift-security.md +33 -0
  251. package/resources/ecc/rules/swift-testing.md +45 -0
  252. package/resources/ecc/rules/typescript-coding-style.md +63 -0
  253. package/resources/ecc/rules/typescript-hooks.md +20 -0
  254. package/resources/ecc/rules/typescript-patterns.md +50 -0
  255. package/resources/ecc/rules/typescript-security.md +26 -0
  256. package/resources/ecc/rules/typescript-testing.md +16 -0
  257. package/resources/ecc/skills/agent-introspection-debugging/SKILL.md +152 -0
  258. package/resources/ecc/skills/agent-introspection-debugging/agents/openai.yaml +7 -0
  259. package/resources/ecc/skills/agent-sort/SKILL.md +214 -0
  260. package/resources/ecc/skills/agent-sort/agents/openai.yaml +7 -0
  261. package/resources/ecc/skills/api-design/SKILL.md +522 -0
  262. package/resources/ecc/skills/api-design/agents/openai.yaml +7 -0
  263. package/resources/ecc/skills/article-writing/SKILL.md +78 -0
  264. package/resources/ecc/skills/article-writing/agents/openai.yaml +7 -0
  265. package/resources/ecc/skills/backend-patterns/SKILL.md +597 -0
  266. package/resources/ecc/skills/backend-patterns/agents/openai.yaml +7 -0
  267. package/resources/ecc/skills/brand-voice/SKILL.md +96 -0
  268. package/resources/ecc/skills/brand-voice/agents/openai.yaml +7 -0
  269. package/resources/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -0
  270. package/resources/ecc/skills/bun-runtime/SKILL.md +83 -0
  271. package/resources/ecc/skills/bun-runtime/agents/openai.yaml +7 -0
  272. package/resources/ecc/skills/coding-standards/SKILL.md +548 -0
  273. package/resources/ecc/skills/coding-standards/agents/openai.yaml +7 -0
  274. package/resources/ecc/skills/content-engine/SKILL.md +130 -0
  275. package/resources/ecc/skills/content-engine/agents/openai.yaml +7 -0
  276. package/resources/ecc/skills/crosspost/SKILL.md +110 -0
  277. package/resources/ecc/skills/crosspost/agents/openai.yaml +7 -0
  278. package/resources/ecc/skills/deep-research/SKILL.md +154 -0
  279. package/resources/ecc/skills/deep-research/agents/openai.yaml +7 -0
  280. package/resources/ecc/skills/dmux-workflows/SKILL.md +143 -0
  281. package/resources/ecc/skills/dmux-workflows/agents/openai.yaml +7 -0
  282. package/resources/ecc/skills/documentation-lookup/SKILL.md +89 -0
  283. package/resources/ecc/skills/documentation-lookup/agents/openai.yaml +7 -0
  284. package/resources/ecc/skills/e2e-testing/SKILL.md +325 -0
  285. package/resources/ecc/skills/e2e-testing/agents/openai.yaml +7 -0
  286. package/resources/ecc/skills/eval-harness/SKILL.md +235 -0
  287. package/resources/ecc/skills/eval-harness/agents/openai.yaml +7 -0
  288. package/resources/ecc/skills/everything-claude-code/SKILL.md +442 -0
  289. package/resources/ecc/skills/everything-claude-code/agents/openai.yaml +7 -0
  290. package/resources/ecc/skills/exa-search/SKILL.md +169 -0
  291. package/resources/ecc/skills/exa-search/agents/openai.yaml +7 -0
  292. package/resources/ecc/skills/fal-ai-media/SKILL.md +276 -0
  293. package/resources/ecc/skills/fal-ai-media/agents/openai.yaml +7 -0
  294. package/resources/ecc/skills/frontend-patterns/SKILL.md +647 -0
  295. package/resources/ecc/skills/frontend-patterns/agents/openai.yaml +7 -0
  296. package/resources/ecc/skills/frontend-slides/SKILL.md +183 -0
  297. package/resources/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  298. package/resources/ecc/skills/frontend-slides/agents/openai.yaml +7 -0
  299. package/resources/ecc/skills/investor-materials/SKILL.md +95 -0
  300. package/resources/ecc/skills/investor-materials/agents/openai.yaml +7 -0
  301. package/resources/ecc/skills/investor-outreach/SKILL.md +90 -0
  302. package/resources/ecc/skills/investor-outreach/agents/openai.yaml +7 -0
  303. package/resources/ecc/skills/market-research/SKILL.md +74 -0
  304. package/resources/ecc/skills/market-research/agents/openai.yaml +7 -0
  305. package/resources/ecc/skills/mcp-server-patterns/SKILL.md +66 -0
  306. package/resources/ecc/skills/mcp-server-patterns/agents/openai.yaml +7 -0
  307. package/resources/ecc/skills/mle-workflow/SKILL.md +346 -0
  308. package/resources/ecc/skills/mle-workflow/agents/openai.yaml +7 -0
  309. package/resources/ecc/skills/nextjs-turbopack/SKILL.md +43 -0
  310. package/resources/ecc/skills/nextjs-turbopack/agents/openai.yaml +7 -0
  311. package/resources/ecc/skills/product-capability/SKILL.md +140 -0
  312. package/resources/ecc/skills/product-capability/agents/openai.yaml +7 -0
  313. package/resources/ecc/skills/security-review/SKILL.md +494 -0
  314. package/resources/ecc/skills/security-review/agents/openai.yaml +7 -0
  315. package/resources/ecc/skills/strategic-compact/SKILL.md +102 -0
  316. package/resources/ecc/skills/strategic-compact/agents/openai.yaml +7 -0
  317. package/resources/ecc/skills/tdd-workflow/SKILL.md +409 -0
  318. package/resources/ecc/skills/tdd-workflow/agents/openai.yaml +7 -0
  319. package/resources/ecc/skills/verification-loop/SKILL.md +125 -0
  320. package/resources/ecc/skills/verification-loop/agents/openai.yaml +7 -0
  321. package/resources/ecc/skills/video-editing/SKILL.md +307 -0
  322. package/resources/ecc/skills/video-editing/agents/openai.yaml +7 -0
  323. package/resources/ecc/skills/x-api/SKILL.md +229 -0
  324. package/resources/ecc/skills/x-api/agents/openai.yaml +7 -0
@@ -0,0 +1,721 @@
1
+ /**
2
+ * Content Engine — content creation and business skills system.
3
+ * Inspired by everything-claude-code's article-writing, content-engine,
4
+ * market-research, and investor-materials skills.
5
+ *
6
+ * Provides prompt builders for:
7
+ * - Article writing with voice preservation
8
+ * - Content repurposing across platforms
9
+ * - Slide deck generation
10
+ * - Market research with source attribution
11
+ * - Investor pitch decks and outreach
12
+ * - Code quality enforcement
13
+ * - Skill audits
14
+ * - Chief of staff communication triage
15
+ */
16
+ // ── Content Creation ──────────────────────────────────────
17
+ /**
18
+ * Build a detailed article prompt for long-form writing.
19
+ * Includes SEO structure, voice preservation, and reader engagement tactics.
20
+ *
21
+ * @param topic — The article topic/headline
22
+ * @param options — Optional: voice style, target length, audience
23
+ * @returns Complete article-writing prompt
24
+ */
25
+ export function buildArticlePrompt(topic, options) {
26
+ const voice = options?.voice ?? 'expert, accessible, engaging';
27
+ const length = options?.length ?? 'medium';
28
+ const audience = options?.audience ?? 'general professional readers';
29
+ const wordTargets = {
30
+ short: { min: 500, max: 1000 },
31
+ medium: { min: 1500, max: 2500 },
32
+ long: { min: 2500, max: 4000 },
33
+ };
34
+ const target = wordTargets[length];
35
+ return `
36
+ Write a long-form article on: "${topic}"
37
+
38
+ ## Output Requirements
39
+ - **Word count:** ${target.min}–${target.max} words
40
+ - **Format:** Markdown with proper heading hierarchy (H1, H2, H3)
41
+ - **Audience:** ${audience}
42
+ - **Tone/Voice:** ${voice}
43
+
44
+ ## Structure (Use this outline)
45
+ 1. **Introduction** (100–150 words)
46
+ - Hook: Open with a compelling question, insight, or stat
47
+ - Context: Explain why this topic matters now
48
+ - Thesis: State the article's core argument or promise
49
+ - Roadmap: Preview the 3–5 main sections
50
+
51
+ 2. **Body Sections** (3–5 sections)
52
+ - Each section: 200–400 words
53
+ - Lead with a clear subheading that answers a reader question
54
+ - Open with a topic sentence or mini-story
55
+ - Support claims with data, examples, or expert quotes
56
+ - Close with a takeaway or transition to the next idea
57
+ - Use short paragraphs (2–3 sentences) for scannability
58
+
59
+ 3. **Practical Examples or Case Studies** (if applicable)
60
+ - Real-world application or proof point
61
+ - Show, don't tell: use concrete details
62
+ - Extract a key lesson
63
+
64
+ 4. **Conclusion** (100–150 words)
65
+ - Restate the thesis in fresh language
66
+ - Summarize the 3 biggest takeaways
67
+ - End with a forward-looking statement or call to action
68
+ - Optionally: pose a question for reader reflection
69
+
70
+ ## SEO & Engagement
71
+ - Include 2–3 subheadings that match likely search queries
72
+ - Use active voice and strong verbs
73
+ - Break up text with bullet points or short lists where appropriate
74
+ - Aim for 60–70 Flesch Reading Ease (accessible to educated readers)
75
+ - Include at least one memorable quote, stat, or analogy
76
+ - Vary sentence length to maintain rhythm
77
+
78
+ ## Quality Checklist
79
+ - [ ] Fact-checked claims (link to sources if available)
80
+ - [ ] No jargon without explanation
81
+ - [ ] Consistent terminology throughout
82
+ - [ ] Specific details rather than vague generalities
83
+ - [ ] Strong opening and closing
84
+ - [ ] Reader can apply insights immediately
85
+
86
+ ---
87
+ **Begin the article below. Use Markdown. Do not include a title — start with H2 headings for sections.**
88
+ `;
89
+ }
90
+ /**
91
+ * Build a prompt to repurpose a single piece of content across multiple platforms.
92
+ * Adapts tone, length, and format for Twitter/X, LinkedIn, blog, email, Reddit, etc.
93
+ *
94
+ * @param content — Original content to repurpose
95
+ * @param platforms — List of target platforms (e.g., ["twitter", "linkedin", "email"])
96
+ * @returns Repurposing prompt with platform-specific guidance
97
+ */
98
+ export function buildContentRepurposePrompt(content, platforms) {
99
+ const platformGuides = {
100
+ twitter: {
101
+ maxLength: 280,
102
+ tone: 'punchy, conversational, hook-first',
103
+ format: 'Single tweet or thread (up to 10 tweets)',
104
+ },
105
+ x: {
106
+ maxLength: 300,
107
+ tone: 'witty, thought-provoking, debate-ready',
108
+ format: 'Thread or standalone post',
109
+ },
110
+ linkedin: {
111
+ maxLength: 1300,
112
+ tone: 'professional, narrative-driven, insight-focused',
113
+ format: 'Post with optional carousel or document',
114
+ },
115
+ blog: {
116
+ maxLength: 2000,
117
+ tone: 'educational, detailed, link-rich',
118
+ format: 'Blog post excerpt (300–800 words)',
119
+ },
120
+ email: {
121
+ maxLength: 500,
122
+ tone: 'personal, benefit-driven, action-oriented',
123
+ format: 'Email body (no subject) with clear CTA',
124
+ },
125
+ reddit: {
126
+ maxLength: 800,
127
+ tone: 'authentic, conversational, community-aware',
128
+ format: 'Post or comment thread response',
129
+ },
130
+ newsletter: {
131
+ maxLength: 1000,
132
+ tone: 'curated, editorial, compelling',
133
+ format: 'Newsletter section or standalone item',
134
+ },
135
+ };
136
+ const platformsList = platforms
137
+ .map(p => {
138
+ const guide = platformGuides[p.toLowerCase()] || {
139
+ maxLength: 500,
140
+ tone: 'professional',
141
+ format: 'standard format',
142
+ };
143
+ return `
144
+ **${p.toUpperCase()}**
145
+ - Max length: ${guide.maxLength} characters
146
+ - Tone: ${guide.tone}
147
+ - Format: ${guide.format}
148
+ `;
149
+ })
150
+ .join('\n');
151
+ return `
152
+ Repurpose the following content for multiple platforms.
153
+
154
+ ## Original Content
155
+ \`\`\`
156
+ ${content}
157
+ \`\`\`
158
+
159
+ ## Target Platforms & Requirements
160
+ ${platformsList}
161
+
162
+ ## Key Instructions
163
+ 1. **Extract the core insight** — Identify the most valuable, shareable takeaway
164
+ 2. **Adapt voice** — Match each platform's culture and audience expectations
165
+ 3. **Reformat for platform constraints** — Respect character/length limits
166
+ 4. **Optimize for discoverability** — Use platform-native features (hashtags on Twitter/LinkedIn, questions on Reddit, hooks in email subject)
167
+ 5. **Preserve credibility** — Keep claims accurate; add context where needed
168
+ 6. **Include CTAs** — Where appropriate, link back to full content or suggest next action
169
+
170
+ ## Output Format
171
+ For each platform, provide:
172
+ - Platform name
173
+ - Adapted copy (full text)
174
+ - Any suggested hashtags, tags, or metadata
175
+ - Brief note on why this version works for that platform
176
+
177
+ ---
178
+ **Begin below.**
179
+ `;
180
+ }
181
+ /**
182
+ * Build a prompt to generate HTML slide deck content.
183
+ * Useful for pitch decks, presentations, or educational materials.
184
+ *
185
+ * @param topic — Presentation topic
186
+ * @param slideCount — Number of slides (default: 10)
187
+ * @returns Slide-generation prompt
188
+ */
189
+ export function buildSlidePrompt(topic, slideCount = 10) {
190
+ return `
191
+ Generate an HTML slide deck presentation on: "${topic}"
192
+
193
+ ## Specifications
194
+ - Total slides: ${slideCount}
195
+ - Format: Self-contained HTML file with embedded CSS and JavaScript
196
+ - Styling: Modern, clean, readable; use a consistent color scheme
197
+ - Navigation: Arrow keys or on-screen buttons to advance slides
198
+ - Include a title slide, content slides, and a closing slide
199
+
200
+ ## Slide Structure (adjust as needed)
201
+ 1. **Title Slide** — Topic, date, optionally author/company
202
+ 2. **Agenda or Overview** — What the presentation covers
203
+ 3–${slideCount - 2}. **Content Slides** — Main topics, ideas, examples, data
204
+ ${slideCount}. **Closing Slide** — Summary, call to action, contact info
205
+
206
+ ## Design Guidelines
207
+ - **Typography:** Use a readable sans-serif font (Helvetica, Arial, or system sans)
208
+ - **Colors:** Limit to 2–3 primary colors + white/dark backgrounds
209
+ - **Images/Icons:** Use only if needed; keep visual clutter minimal
210
+ - **Text:** Keep bullet points to 3–5 lines per slide; use short, punchy phrases
211
+ - **Data:** Use charts or simple visuals for complex information
212
+ - **Contrast:** Ensure text is legible on background (WCAG AA minimum)
213
+
214
+ ## HTML Requirements
215
+ - Responsive design (mobile-friendly)
216
+ - No external dependencies (embed all CSS/JS)
217
+ - Include keyboard navigation (arrow keys)
218
+ - Slide counter (e.g., "Slide 3 of ${slideCount}")
219
+ - Optional: slide transition effects (fade or slide)
220
+
221
+ ## Output Format
222
+ Return complete, ready-to-save HTML. It should be able to run in any modern browser.
223
+
224
+ ---
225
+ **Begin below. Provide ONLY the HTML code, no explanation.**
226
+ `;
227
+ }
228
+ // ── Business & Research ───────────────────────────────────
229
+ /**
230
+ * Build a prompt for source-attributed market research.
231
+ * Includes competitor analysis, trends, and data points with citations.
232
+ *
233
+ * @param topic — Research topic (e.g., "AI chatbot market")
234
+ * @param sources — Optional list of source types to prioritize
235
+ * @returns Market research prompt
236
+ */
237
+ export function buildMarketResearchPrompt(topic, sources) {
238
+ const sourceGuide = sources
239
+ ? `Prioritize these sources: ${sources.join(', ')}`
240
+ : 'Use a mix of: industry reports, news articles, company earnings calls, analyst research, academic papers, and regulatory filings.';
241
+ return `
242
+ Conduct market research on: "${topic}"
243
+
244
+ ## Research Requirements
245
+ 1. **Market Size & Growth**
246
+ - Current market size (with year)
247
+ - YoY growth rate (last 3 years if available)
248
+ - Projected growth (next 3–5 years)
249
+ - Key geographic regions
250
+
251
+ 2. **Competitive Landscape**
252
+ - Top 3–5 competitors: names, market share, key strengths/weaknesses
253
+ - Market concentration (fragmented vs. consolidated)
254
+ - Barriers to entry
255
+ - New entrants or disruptors
256
+
257
+ 3. **Trends & Drivers**
258
+ - 3–5 major trends shaping the market
259
+ - Customer pain points or unmet needs
260
+ - Regulatory or policy changes
261
+ - Technological shifts
262
+
263
+ 4. **Customer Segments**
264
+ - Primary buyers/users
265
+ - Customer pain points or priorities
266
+ - Purchasing drivers (price, features, brand, support)
267
+
268
+ 5. **Distribution & Pricing**
269
+ - How solutions reach customers (direct, reseller, marketplace)
270
+ - Typical pricing models and ranges
271
+ - Customer acquisition costs (if known)
272
+
273
+ ## Source Guidance
274
+ ${sourceGuide}
275
+
276
+ ## Output Format
277
+ Use this structure:
278
+
279
+ ### [Section Title]
280
+ **Finding:** [Clear statement or data point]
281
+ **Source:** [Source type and credibility note, e.g., "Gartner Magic Quadrant 2024" or "Q3 2024 SEC filing"]
282
+ **Date:** [Publication/data date]
283
+ **Notes:** [Brief context or supporting detail]
284
+
285
+ ---
286
+
287
+ **Critical Rule:** Every claim must be attributed. If you're uncertain about a data point, note it as "likely range" or "estimated by [source]."
288
+
289
+ **Begin below.**
290
+ `;
291
+ }
292
+ /**
293
+ * Build a prompt to create investor pitch deck content.
294
+ * Includes: problem, solution, market, traction, team, ask.
295
+ *
296
+ * @param company — Company name
297
+ * @param stage — Funding stage (e.g., "seed", "Series A", "Series B")
298
+ * @returns Investor deck prompt
299
+ */
300
+ export function buildInvestorDeckPrompt(company, stage) {
301
+ const stageContext = stage && ['seed', 'series-a', 'series-b', 'series-c', 'growth'].includes(stage.toLowerCase())
302
+ ? `This is a ${stage} round.`
303
+ : 'Stage not specified; use standard startup pitch format.';
304
+ return `
305
+ Generate an investor pitch deck outline for: "${company}"
306
+
307
+ ${stageContext}
308
+
309
+ ## Standard Pitch Deck Structure (12–15 slides)
310
+
311
+ 1. **Title Slide**
312
+ - Company name, tagline, logo
313
+ - Founder names (optional)
314
+
315
+ 2. **The Problem**
316
+ - Customer pain point (specific, quantified if possible)
317
+ - Current inefficiency or cost
318
+ - Who feels this pain? (target customer segment)
319
+ - Why now? (market conditions, urgency)
320
+
321
+ 3. **The Solution**
322
+ - How your product/service solves the problem
323
+ - Unique approach or differentiation
324
+ - Key features or capabilities (if not obvious)
325
+ - Product demo or visual mockup (if applicable)
326
+
327
+ 4. **Market Opportunity**
328
+ - Total Addressable Market (TAM)
329
+ - Serviceable Addressable Market (SAM)
330
+ - Serviceable Obtainable Market (SOM) — Year 1 target
331
+ - Market growth trajectory
332
+
333
+ 5. **Business Model**
334
+ - How you make money (SaaS, marketplace, licensing, etc.)
335
+ - Pricing strategy
336
+ - Unit economics (if favorable)
337
+ - Customer lifetime value vs. CAC
338
+
339
+ 6. **Go-to-Market Strategy**
340
+ - How you'll acquire customers
341
+ - Sales/marketing channels
342
+ - Partnerships or distribution deals
343
+ - Timeline to first revenue (if pre-revenue)
344
+
345
+ 7. **Competitive Landscape**
346
+ - Direct and indirect competitors
347
+ - Your competitive advantages
348
+ - Market positioning (what's different?)
349
+
350
+ 8. **Traction**
351
+ - Users, revenue, or engagement metrics
352
+ - Growth rate (MoM or YoY)
353
+ - Key milestones achieved
354
+ - Customer testimonials or logos (if applicable)
355
+
356
+ 9. **Team**
357
+ - Founder/leadership backgrounds (relevant experience)
358
+ - Key hires or advisors
359
+ - Why this team can win
360
+
361
+ 10. **Financials & Projections** (3-year forward)
362
+ - Historical revenue (if applicable)
363
+ - Revenue projections (conservative, realistic, optimistic)
364
+ - Path to profitability or key profitability milestones
365
+ - Burn rate and runway
366
+
367
+ 11. **Use of Funds**
368
+ - Allocation: product, sales/marketing, operations, hiring
369
+ - Key hires or investments planned
370
+ - How this accelerates growth
371
+
372
+ 12. **The Ask**
373
+ - Funding amount
374
+ - Post-money valuation (if appropriate)
375
+ - Investor benefits/rights
376
+
377
+ 13. **Closing / Vision**
378
+ - Long-term vision (where is the company in 10 years?)
379
+ - Why this matters
380
+ - Call to action (discuss further, office hours, etc.)
381
+
382
+ ## Content Guidelines
383
+ - **Problem & Solution:** Make it visceral and urgent, not abstract
384
+ - **Numbers:** Use realistic, defensible figures; note assumptions
385
+ - **Tone:** Confident but not overconfident; show you understand risks
386
+ - **Design Notes:** Recommend high-contrast colors, minimal text, strong visuals
387
+ - **Storytelling:** Lead with narrative (why does this founder care?), then data
388
+
389
+ ## Investor Mindset
390
+ Investors ask: "Is this a real problem? Can this team solve it? Is the market big? Will they spend the money wisely? What's my return?"
391
+
392
+ ---
393
+ **For each slide, provide:**
394
+ - **Slide Title**
395
+ - **Key Points** (3–5 bullet points)
396
+ - **Visual Recommendations** (e.g., "charts showing market growth," "team photos")
397
+
398
+ **Begin below.**
399
+ `;
400
+ }
401
+ /**
402
+ * Build a prompt for personalized investor outreach and follow-up sequences.
403
+ * Creates multi-step email templates tailored to specific investors.
404
+ *
405
+ * @param investor — Investor name and firm
406
+ * @param company — Your company name
407
+ * @returns Outreach prompt with email templates
408
+ */
409
+ export function buildInvestorOutreachPrompt(investor, company) {
410
+ return `
411
+ Create a personalized investor outreach sequence for: ${investor} at their firm, on behalf of ${company}.
412
+
413
+ ## Objectives
414
+ 1. Grab attention with a specific, credible hook
415
+ 2. Briefly convey your value proposition
416
+ 3. Request an initial conversation (office hours, brief call)
417
+ 4. Follow up if no response (2–3 touch points)
418
+ 5. Maintain professionalism and respect for their time
419
+
420
+ ## Email Sequence
421
+
422
+ ### Email 1: Initial Outreach
423
+ **Subject Line:** [Create 2 options: one reference-based, one curiosity-based]
424
+ **Body:**
425
+ - Personalization: Show you know their recent investments, thesis, or public comments
426
+ - Credibility: Why you're reaching out to them specifically (not form email)
427
+ - Hook: Lead with the biggest insight or problem your company solves
428
+ - Social proof: Any mutual connections, relevant credential, or early traction
429
+ - Clear CTA: Request 15–20 min call or office hours; link to calendar if possible
430
+ - Tone: Warm, respectful, brief (under 150 words in body)
431
+
432
+ ### Email 2: Follow-up (5–7 days after #1, if no response)
433
+ **Subject Line:** [Light, not pushy; e.g., "Quick thought on [specific area]"]
434
+ **Body:**
435
+ - Acknowledge you may have missed them
436
+ - Add one new detail, article, or social proof not in Email 1
437
+ - Soften the CTA: "If you're open to a brief conversation, I'd love to share..."
438
+ - Keep it short (100 words)
439
+
440
+ ### Email 3: Final Touch (10–14 days after #1)
441
+ **Subject Line:** [Ask for specific advice or specific feedback, not a meeting]
442
+ **Body:**
443
+ - Shift from "I want your money" to "I value your expertise"
444
+ - Ask a genuine question about their thesis, the market, or your approach
445
+ - Make it clear this is your last outreach attempt
446
+ - Leave door open: "No pressure, but always happy to connect if timing improves"
447
+
448
+ ## Personalization Checklist
449
+ - [ ] Investor's recent investment(s) or public statement(s) mentioned
450
+ - [ ] Reason why *this investor specifically* is a good fit (not just a big firm)
451
+ - [ ] Company's unique angle or unfair advantage briefly stated
452
+ - [ ] One concrete metric or milestone (users, revenue, engagement)
453
+ - [ ] Honest, conversational tone — not salesy
454
+ - [ ] Calendar link or specific meeting options provided
455
+
456
+ ---
457
+ **Provide the sequence below. For each email, include:**
458
+ - **Subject Line**
459
+ - **Body Text** (formatted as it would appear in email)
460
+ - **Brief notes** on timing and personalization cues
461
+
462
+ **Begin below.**
463
+ `;
464
+ }
465
+ // ── Code Quality ──────────────────────────────────────────
466
+ /**
467
+ * Build a prompt for write-time code quality enforcement.
468
+ * Checks naming, function length, complexity, documentation, test coverage expectations.
469
+ * Inspired by plankton-code-quality.
470
+ *
471
+ * @param cwd — Working directory context (used to determine language/framework)
472
+ * @returns Code quality prompt
473
+ */
474
+ export function buildCodeQualityPrompt(cwd) {
475
+ return `
476
+ Review code quality for the project at: ${cwd}
477
+
478
+ ## Code Quality Checklist
479
+
480
+ ### 1. Naming Conventions
481
+ - [ ] Functions, variables, and methods use clear, intention-revealing names
482
+ - [ ] No single-letter variables except for loop counters (i, j, k)
483
+ - [ ] Class/type names are nouns; function names are verbs
484
+ - [ ] Avoid abbreviations unless universally understood (e.g., "id" OK, "idx" not OK)
485
+ - [ ] Boolean functions/variables start with "is", "has", "can", "should"
486
+ - [ ] Constant names use SCREAMING_SNAKE_CASE
487
+ - [ ] Private methods/fields prefixed with underscore (if not using access modifiers)
488
+
489
+ ### 2. Function Length & Complexity
490
+ - [ ] Functions are short and focused (prefer <30 lines; max 50)
491
+ - [ ] Functions do one thing well
492
+ - [ ] Cyclomatic complexity <= 10 (avoid deep nesting)
493
+ - [ ] Early returns reduce indentation and improve readability
494
+ - [ ] No nested callbacks or callback hell
495
+
496
+ ### 3. Comments & Documentation
497
+ - [ ] Public APIs (exports) have JSDoc or equivalent docstrings
498
+ - [ ] Complex logic has inline comments explaining the "why", not "what"
499
+ - [ ] No obsolete or redundant comments
500
+ - [ ] TODOs are dated and reference an issue/PR if possible
501
+ - [ ] README or file-level comments explain module purpose
502
+
503
+ ### 4. Error Handling
504
+ - [ ] All promises are awaited or explicitly handled
505
+ - [ ] No silent failures (catch blocks log or throw)
506
+ - [ ] Errors include context (not just generic messages)
507
+ - [ ] Type safety: use typed errors, not generic strings
508
+
509
+ ### 5. Testing Expectations
510
+ - [ ] Critical paths have test coverage (>80% target)
511
+ - [ ] Tests are descriptive: test names explain the scenario
512
+ - [ ] Tests are isolated (no shared state between tests)
513
+ - [ ] Edge cases are covered (empty input, null, boundary values)
514
+ - [ ] No test-only code in production
515
+
516
+ ### 6. Code Style & Formatting
517
+ - [ ] Consistent indentation and spacing
518
+ - [ ] Lines under 100 characters (adjust for project)
519
+ - [ ] Imports organized: dependencies first, then relative imports
520
+ - [ ] No unused imports or variables
521
+ - [ ] Consistent quote style and semicolon usage
522
+
523
+ ### 7. Type Safety (if applicable)
524
+ - [ ] Exported functions have explicit return types
525
+ - [ ] Generic types are narrow and well-constrained
526
+ - [ ] No use of "any" unless unavoidable (with comment)
527
+ - [ ] Objects prefer interfaces/types over inline shapes
528
+ - [ ] Nullable types are explicit (Optional, null, undefined)
529
+
530
+ ### 8. Performance & Resources
531
+ - [ ] No N+1 queries or unnecessary loops
532
+ - [ ] No memory leaks (event listeners cleaned up, streams closed)
533
+ - [ ] No console.log in production code
534
+ - [ ] Heavy operations are async/non-blocking
535
+
536
+ ### 9. Maintainability
537
+ - [ ] DRY: no obvious code duplication (extract to helper)
538
+ - [ ] Prefer composition over inheritance
539
+ - [ ] Constants are defined once (no magic numbers)
540
+ - [ ] Configuration is centralized, not scattered
541
+ - [ ] Dependencies are minimal and justified
542
+
543
+ ### 10. Security & Best Practices
544
+ - [ ] No hardcoded secrets (API keys, passwords)
545
+ - [ ] Input validation for user-facing APIs
546
+ - [ ] SQL queries use parameterized statements (no injection)
547
+ - [ ] Dependencies are up-to-date and vulnerable-free
548
+ - [ ] CORS, CSP, or other security headers configured (if web)
549
+
550
+ ---
551
+ ## Output Format
552
+ For each file or module reviewed:
553
+ - **File:** [path/to/file]
554
+ - **Status:** PASS / WARNINGS / FAIL
555
+ - **Issues Found:** [List each issue with line number if applicable]
556
+ - **Recommendations:** [Specific, actionable improvements]
557
+ - **Priority:** CRITICAL / HIGH / MEDIUM / LOW
558
+
559
+ ---
560
+ **Begin audit below. Scan all source files in the directory.**
561
+ `;
562
+ }
563
+ /**
564
+ * Build a prompt to audit all skills and commands for quality and coverage gaps.
565
+ * Useful for maintaining skill libraries and identifying missing coverage.
566
+ *
567
+ * @returns Skill stocktake prompt
568
+ */
569
+ export function buildSkillStocktakePrompt() {
570
+ return `
571
+ Audit all available skills and commands for quality, coverage, and consistency.
572
+
573
+ ## Audit Scope
574
+
575
+ ### 1. Coverage Analysis
576
+ - [ ] List all available skills/commands by category
577
+ - [ ] Identify any obvious gaps (e.g., "we have email drafting but no email reply")
578
+ - [ ] Note overlapping or redundant skills
579
+ - [ ] Flag skills that seem underused or unfinished
580
+ - [ ] Check for skills that depend on external tools/APIs (and their health)
581
+
582
+ ### 2. Quality Assessment
583
+ For each skill:
584
+ - **Documentation:** Is the skill description clear and actionable?
585
+ - **Parameters:** Are inputs well-defined and validated?
586
+ - **Output:** Does the skill return useful, formatted output?
587
+ - **Error Handling:** How does it fail gracefully?
588
+ - **Examples:** Are there usage examples?
589
+
590
+ ### 3. Consistency Check
591
+ - [ ] Naming: Are skill names consistent in style (verbs, nouns, hyphens)?
592
+ - [ ] Behavior: Do similar skills work in similar ways?
593
+ - [ ] Parameters: Common parameters use same names across skills
594
+ - [ ] Output Format: Is output (JSON, markdown, etc.) predictable?
595
+ - [ ] Error Messages: Are failures explained clearly?
596
+
597
+ ### 4. Performance & Reliability
598
+ - [ ] Skills respond in <5s for typical use cases
599
+ - [ ] No unnecessary external API calls
600
+ - [ ] Caching or batching where applicable
601
+ - [ ] Rate limiting or retry logic in place
602
+ - [ ] Uptime/reliability track record (if known)
603
+
604
+ ### 5. Integration Opportunities
605
+ - [ ] Skills that could feed into each other (chaining)
606
+ - [ ] Skills that could share common utilities
607
+ - [ ] Duplicate logic that could be extracted
608
+ - [ ] Cross-tool dependency issues
609
+
610
+ ---
611
+ ## Output Format
612
+ Provide a structured report:
613
+
614
+ ### Summary
615
+ - Total skills audited: X
616
+ - Pass: X | Warnings: X | Improvements needed: X
617
+
618
+ ### By Category
619
+ For each category (e.g., Writing, Research, Data):
620
+ - Skills in category: [list]
621
+ - Coverage: [what's well covered, what's missing]
622
+ - Quality: [overall assessment]
623
+
624
+ ### Gaps & Recommendations
625
+ - **High Priority:** [Missing skills or broken features]
626
+ - **Medium Priority:** [Quality or consistency improvements]
627
+ - **Low Priority:** [Nice-to-have enhancements or optimizations]
628
+
629
+ ### Top 5 Improvements
630
+ 1. [Specific action with expected benefit]
631
+ 2. [...]
632
+
633
+ ---
634
+ **Begin audit below.**
635
+ `;
636
+ }
637
+ // ── Chief of Staff / Communication ────────────────────────
638
+ /**
639
+ * Build a prompt for communication triage and Chief of Staff duties.
640
+ * Helps draft emails, summarize threads, prioritize messages.
641
+ *
642
+ * @param context — Current context (e.g., email thread, list of messages)
643
+ * @returns Chief of staff triage prompt
644
+ */
645
+ export function buildChiefOfStaffPrompt(context) {
646
+ return `
647
+ Act as a Chief of Staff to triage and manage the following communications context.
648
+
649
+ ## Context
650
+ \`\`\`
651
+ ${context}
652
+ \`\`\`
653
+
654
+ ## Triage Tasks
655
+
656
+ ### 1. Priority Assessment
657
+ For each message, email, or thread:
658
+ - **Priority:** URGENT | HIGH | MEDIUM | LOW
659
+ - **Category:** Decision Needed | FYI | Action Required | Discussion
660
+ - **Owner:** Who should handle this? (if identifiable)
661
+ - **Timeline:** When is a response/decision due?
662
+ - **Impact:** If left unaddressed, what happens?
663
+
664
+ ### 2. Summarization
665
+ For long threads or email chains:
666
+ - **Subject:** One-line summary
667
+ - **Key Points:** 3–5 bullet points of the core issue
668
+ - **Stakes:** What's at risk? What's the decision?
669
+ - **Sentiment:** Is there urgency, conflict, or alignment?
670
+ - **Recommended Response:** Approving, requesting more info, escalating, etc.
671
+
672
+ ### 3. Draft Responses
673
+ For messages requiring replies:
674
+ - **To:** Recipient(s)
675
+ - **Subject Line:** Clear, professional
676
+ - **Body:**
677
+ - Acknowledge the sender's concern/question
678
+ - Provide a clear answer or next step
679
+ - Keep it concise (under 150 words if possible)
680
+ - Maintain consistent tone
681
+ - **Tone Options:** Professional, warm, direct, collaborative (choose based on context)
682
+
683
+ ### 4. Meeting Notes / Action Items
684
+ If this involves a meeting or decision point:
685
+ - **Attendees:** Who was there?
686
+ - **Decisions Made:** What was agreed?
687
+ - **Action Items:** Who owns what, with deadline?
688
+ - **Follow-up:** What's the next touchpoint?
689
+
690
+ ### 5. Identify Patterns
691
+ - **Recurring Issues:** Any themes across messages?
692
+ - **Blocking Points:** What's slowing decisions or actions?
693
+ - **Communication Gaps:** Where's unclear or missing info?
694
+ - **Escalation Risks:** What could become problems if not addressed?
695
+
696
+ ---
697
+ ## Output Format
698
+
699
+ ### Quick Triage Table
700
+ | Subject | Priority | Category | Owner | Due | Action |
701
+ |---------|----------|----------|-------|-----|--------|
702
+ | [subject] | HIGH | Decision | [name] | [date] | [brief action] |
703
+ | ... | | | | | |
704
+
705
+ ### Detailed Summaries
706
+ **[Message/Thread 1 Subject]**
707
+ - Priority: HIGH
708
+ - Summary: [2–3 sentences]
709
+ - Recommended Action: [Specific next step]
710
+ - Draft Response: [If needed, include suggested reply]
711
+
712
+ ### Patterns & Recommendations
713
+ - Pattern 1: [Observation]
714
+ - Pattern 2: [Observation]
715
+ - Recommended Process Change: [How to avoid this in future]
716
+
717
+ ---
718
+ **Begin triage below.**
719
+ `;
720
+ }
721
+ //# sourceMappingURL=content-engine.js.map