From 706ee80069e2c15d06e89eb4104daf83b64c060d Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Fri, 27 Feb 2026 05:50:23 -0800 Subject: [PATCH] feat: add generic content and investor skills --- .agents/skills/article-writing/SKILL.md | 85 ++++++++++++++++ .../skills/article-writing/agents/openai.yaml | 7 ++ .agents/skills/content-engine/SKILL.md | 88 +++++++++++++++++ .../skills/content-engine/agents/openai.yaml | 7 ++ .agents/skills/investor-materials/SKILL.md | 96 +++++++++++++++++++ .../investor-materials/agents/openai.yaml | 7 ++ .agents/skills/investor-outreach/SKILL.md | 76 +++++++++++++++ .../investor-outreach/agents/openai.yaml | 7 ++ .agents/skills/market-research/SKILL.md | 75 +++++++++++++++ .../skills/market-research/agents/openai.yaml | 7 ++ .codex/AGENTS.md | 5 + .cursor/skills/article-writing/SKILL.md | 85 ++++++++++++++++ .cursor/skills/content-engine/SKILL.md | 88 +++++++++++++++++ .cursor/skills/investor-materials/SKILL.md | 96 +++++++++++++++++++ .cursor/skills/investor-outreach/SKILL.md | 76 +++++++++++++++ .cursor/skills/market-research/SKILL.md | 75 +++++++++++++++ .opencode/README.md | 8 ++ README.md | 16 +++- skills/article-writing/SKILL.md | 85 ++++++++++++++++ skills/configure-ecc/SKILL.md | 10 ++ skills/content-engine/SKILL.md | 88 +++++++++++++++++ skills/investor-materials/SKILL.md | 96 +++++++++++++++++++ skills/investor-outreach/SKILL.md | 76 +++++++++++++++ skills/market-research/SKILL.md | 75 +++++++++++++++ 24 files changed, 1331 insertions(+), 3 deletions(-) create mode 100644 .agents/skills/article-writing/SKILL.md create mode 100644 .agents/skills/article-writing/agents/openai.yaml create mode 100644 .agents/skills/content-engine/SKILL.md create mode 100644 .agents/skills/content-engine/agents/openai.yaml create mode 100644 .agents/skills/investor-materials/SKILL.md create mode 100644 .agents/skills/investor-materials/agents/openai.yaml create mode 100644 .agents/skills/investor-outreach/SKILL.md create mode 100644 .agents/skills/investor-outreach/agents/openai.yaml create mode 100644 .agents/skills/market-research/SKILL.md create mode 100644 .agents/skills/market-research/agents/openai.yaml create mode 100644 .cursor/skills/article-writing/SKILL.md create mode 100644 .cursor/skills/content-engine/SKILL.md create mode 100644 .cursor/skills/investor-materials/SKILL.md create mode 100644 .cursor/skills/investor-outreach/SKILL.md create mode 100644 .cursor/skills/market-research/SKILL.md create mode 100644 skills/article-writing/SKILL.md create mode 100644 skills/content-engine/SKILL.md create mode 100644 skills/investor-materials/SKILL.md create mode 100644 skills/investor-outreach/SKILL.md create mode 100644 skills/market-research/SKILL.md diff --git a/.agents/skills/article-writing/SKILL.md b/.agents/skills/article-writing/SKILL.md new file mode 100644 index 00000000..cc4c17a8 --- /dev/null +++ b/.agents/skills/article-writing/SKILL.md @@ -0,0 +1,85 @@ +--- +name: article-writing +description: Write articles, guides, blog posts, tutorials, newsletter issues, and other long-form content in a distinctive voice derived from supplied examples or brand guidance. Use when the user wants polished written content longer than a paragraph, especially when voice consistency, structure, and credibility matter. +origin: ECC +--- + +# Article Writing + +Write long-form content that sounds like a real person or brand, not generic AI output. + +## When to Activate + +- drafting blog posts, essays, launch posts, guides, tutorials, or newsletter issues +- turning notes, transcripts, or research into polished articles +- matching an existing founder, operator, or brand voice from examples +- tightening structure, pacing, and evidence in already-written long-form copy + +## Core Rules + +1. Lead with the concrete thing: example, output, anecdote, number, screenshot description, or code block. +2. Explain after the example, not before. +3. Prefer short, direct sentences over padded ones. +4. Use specific numbers when available and sourced. +5. Never invent biographical facts, company metrics, or customer evidence. + +## Voice Capture Workflow + +If the user wants a specific voice, collect one or more of: +- published articles +- newsletters +- X / LinkedIn posts +- docs or memos +- a short style guide + +Then extract: +- sentence length and rhythm +- whether the voice is formal, conversational, or sharp +- favored rhetorical devices such as parentheses, lists, fragments, or questions +- tolerance for humor, opinion, and contrarian framing +- formatting habits such as headers, bullets, code blocks, and pull quotes + +If no voice references are given, default to a direct, operator-style voice: concrete, practical, and low on hype. + +## Banned Patterns + +Delete and rewrite any of these: +- generic openings like "In today's rapidly evolving landscape" +- filler transitions such as "Moreover" and "Furthermore" +- hype phrases like "game-changer", "cutting-edge", or "revolutionary" +- vague claims without evidence +- biography or credibility claims not backed by provided context + +## Writing Process + +1. Clarify the audience and purpose. +2. Build a skeletal outline with one purpose per section. +3. Start each section with evidence, example, or scene. +4. Expand only where the next sentence earns its place. +5. Remove anything that sounds templated or self-congratulatory. + +## Structure Guidance + +### Technical Guides +- open with what the reader gets +- use code or terminal examples in every major section +- end with concrete takeaways, not a soft summary + +### Essays / Opinion Pieces +- start with tension, contradiction, or a sharp observation +- keep one argument thread per section +- use examples that earn the opinion + +### Newsletters +- keep the first screen strong +- mix insight with updates, not diary filler +- use clear section labels and easy skim structure + +## Quality Gate + +Before delivering: +- verify factual claims against provided sources +- remove filler and corporate language +- confirm the voice matches the supplied examples +- ensure every section adds new information +- check formatting for the intended platform diff --git a/.agents/skills/article-writing/agents/openai.yaml b/.agents/skills/article-writing/agents/openai.yaml new file mode 100644 index 00000000..41f14377 --- /dev/null +++ b/.agents/skills/article-writing/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Article Writing" + short_description: "Write long-form content in a supplied voice without sounding templated" + brand_color: "#B45309" + default_prompt: "Draft a sharp long-form article from these notes and examples" +policy: + allow_implicit_invocation: true diff --git a/.agents/skills/content-engine/SKILL.md b/.agents/skills/content-engine/SKILL.md new file mode 100644 index 00000000..9398c31a --- /dev/null +++ b/.agents/skills/content-engine/SKILL.md @@ -0,0 +1,88 @@ +--- +name: content-engine +description: Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms. +origin: ECC +--- + +# Content Engine + +Turn one idea into strong, platform-native content instead of posting the same thing everywhere. + +## When to Activate + +- writing X posts or threads +- drafting LinkedIn posts or launch updates +- scripting short-form video or YouTube explainers +- repurposing articles, podcasts, demos, or docs into social content +- building a lightweight content plan around a launch, milestone, or theme + +## First Questions + +Clarify: +- source asset: what are we adapting from +- audience: builders, investors, customers, operators, or general audience +- platform: X, LinkedIn, TikTok, YouTube, newsletter, or multi-platform +- goal: awareness, conversion, recruiting, authority, launch support, or engagement + +## Core Rules + +1. Adapt for the platform. Do not cross-post the same copy. +2. Hooks matter more than summaries. +3. Every post should carry one clear idea. +4. Use specifics over slogans. +5. Keep the ask small and clear. + +## Platform Guidance + +### X +- open fast +- one idea per post or per tweet in a thread +- keep links out of the main body unless necessary +- avoid hashtag spam + +### LinkedIn +- strong first line +- short paragraphs +- more explicit framing around lessons, results, and takeaways + +### TikTok / Short Video +- first 3 seconds must interrupt attention +- script around visuals, not just narration +- one demo, one claim, one CTA + +### YouTube +- show the result early +- structure by chapter +- refresh the visual every 20-30 seconds + +### Newsletter +- deliver one clear lens, not a bundle of unrelated items +- make section titles skimmable +- keep the opening paragraph doing real work + +## Repurposing Flow + +Default cascade: +1. anchor asset: article, video, demo, memo, or launch doc +2. extract 3-7 atomic ideas +3. write platform-native variants +4. trim repetition across outputs +5. align CTAs with platform intent + +## Deliverables + +When asked for a campaign, return: +- the core angle +- platform-specific drafts +- optional posting order +- optional CTA variants +- any missing inputs needed before publishing + +## Quality Gate + +Before delivering: +- each draft reads natively for its platform +- hooks are strong and specific +- no generic hype language +- no duplicated copy across platforms unless requested +- the CTA matches the content and audience diff --git a/.agents/skills/content-engine/agents/openai.yaml b/.agents/skills/content-engine/agents/openai.yaml new file mode 100644 index 00000000..739576c9 --- /dev/null +++ b/.agents/skills/content-engine/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Content Engine" + short_description: "Turn one idea into platform-native social and content outputs" + brand_color: "#DC2626" + default_prompt: "Turn this source asset into strong multi-platform content" +policy: + allow_implicit_invocation: true diff --git a/.agents/skills/investor-materials/SKILL.md b/.agents/skills/investor-materials/SKILL.md new file mode 100644 index 00000000..e392706a --- /dev/null +++ b/.agents/skills/investor-materials/SKILL.md @@ -0,0 +1,96 @@ +--- +name: investor-materials +description: Create and update pitch decks, one-pagers, investor memos, accelerator applications, financial models, and fundraising materials. Use when the user needs investor-facing documents, projections, use-of-funds tables, milestone plans, or materials that must stay internally consistent across multiple fundraising assets. +origin: ECC +--- + +# Investor Materials + +Build investor-facing materials that are consistent, credible, and easy to defend. + +## When to Activate + +- creating or revising a pitch deck +- writing an investor memo or one-pager +- building a financial model, milestone plan, or use-of-funds table +- answering accelerator or incubator application questions +- aligning multiple fundraising docs around one source of truth + +## Golden Rule + +All investor materials must agree with each other. + +Create or confirm a single source of truth before writing: +- traction metrics +- pricing and revenue assumptions +- raise size and instrument +- use of funds +- team bios and titles +- milestones and timelines + +If conflicting numbers appear, stop and resolve them before drafting. + +## Core Workflow + +1. inventory the canonical facts +2. identify missing assumptions +3. choose the asset type +4. draft the asset with explicit logic +5. cross-check every number against the source of truth + +## Asset Guidance + +### Pitch Deck +Recommended flow: +1. company + wedge +2. problem +3. solution +4. product / demo +5. market +6. business model +7. traction +8. team +9. competition / differentiation +10. ask +11. use of funds / milestones +12. appendix + +If the user wants a web-native deck, pair this skill with `frontend-slides`. + +### One-Pager / Memo +- state what the company does in one clean sentence +- show why now +- include traction and proof points early +- make the ask precise +- keep claims easy to verify + +### Financial Model +Include: +- explicit assumptions +- bear / base / bull cases when useful +- clean layer-by-layer revenue logic +- milestone-linked spending +- sensitivity analysis where the decision hinges on assumptions + +### Accelerator Applications +- answer the exact question asked +- prioritize traction, insight, and team advantage +- avoid puffery +- keep internal metrics consistent with the deck and model + +## Red Flags to Avoid + +- unverifiable claims +- fuzzy market sizing without assumptions +- inconsistent team roles or titles +- revenue math that does not sum cleanly +- inflated certainty where assumptions are fragile + +## Quality Gate + +Before delivering: +- every number matches the current source of truth +- use of funds and revenue layers sum correctly +- assumptions are visible, not buried +- the story is clear without hype language +- the final asset is defensible in a partner meeting diff --git a/.agents/skills/investor-materials/agents/openai.yaml b/.agents/skills/investor-materials/agents/openai.yaml new file mode 100644 index 00000000..9ebfc93b --- /dev/null +++ b/.agents/skills/investor-materials/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Investor Materials" + short_description: "Create decks, memos, and financial materials from one source of truth" + brand_color: "#7C3AED" + default_prompt: "Draft investor materials that stay numerically consistent across assets" +policy: + allow_implicit_invocation: true diff --git a/.agents/skills/investor-outreach/SKILL.md b/.agents/skills/investor-outreach/SKILL.md new file mode 100644 index 00000000..4fc69f4c --- /dev/null +++ b/.agents/skills/investor-outreach/SKILL.md @@ -0,0 +1,76 @@ +--- +name: investor-outreach +description: Draft cold emails, warm intro blurbs, follow-ups, update emails, and investor communications for fundraising. Use when the user wants outreach to angels, VCs, strategic investors, or accelerators and needs concise, personalized, investor-facing messaging. +origin: ECC +--- + +# Investor Outreach + +Write investor communication that is short, personalized, and easy to act on. + +## When to Activate + +- writing a cold email to an investor +- drafting a warm intro request +- sending follow-ups after a meeting or no response +- writing investor updates during a process +- tailoring outreach based on fund thesis or partner fit + +## Core Rules + +1. Personalize every outbound message. +2. Keep the ask low-friction. +3. Use proof, not adjectives. +4. Stay concise. +5. Never send generic copy that could go to any investor. + +## Cold Email Structure + +1. subject line: short and specific +2. opener: why this investor specifically +3. pitch: what the company does, why now, what proof matters +4. ask: one concrete next step +5. sign-off: name, role, one credibility anchor if needed + +## Personalization Sources + +Reference one or more of: +- relevant portfolio companies +- a public thesis, talk, post, or article +- a mutual connection +- a clear market or product fit with the investor's focus + +If that context is missing, ask for it or state that the draft is a template awaiting personalization. + +## Follow-Up Cadence + +Default: +- day 0: initial outbound +- day 4-5: short follow-up with one new data point +- day 10-12: final follow-up with a clean close + +Do not keep nudging after that unless the user wants a longer sequence. + +## Warm Intro Requests + +Make life easy for the connector: +- explain why the intro is a fit +- include a forwardable blurb +- keep the forwardable blurb under 100 words + +## Post-Meeting Updates + +Include: +- the specific thing discussed +- the answer or update promised +- one new proof point if available +- the next step + +## Quality Gate + +Before delivering: +- message is personalized +- the ask is explicit +- there is no fluff or begging language +- the proof point is concrete +- word count stays tight diff --git a/.agents/skills/investor-outreach/agents/openai.yaml b/.agents/skills/investor-outreach/agents/openai.yaml new file mode 100644 index 00000000..fc5a6385 --- /dev/null +++ b/.agents/skills/investor-outreach/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Investor Outreach" + short_description: "Write concise, personalized outreach and follow-ups for fundraising" + brand_color: "#059669" + default_prompt: "Draft a personalized investor outreach email with a clear low-friction ask" +policy: + allow_implicit_invocation: true diff --git a/.agents/skills/market-research/SKILL.md b/.agents/skills/market-research/SKILL.md new file mode 100644 index 00000000..12ffa034 --- /dev/null +++ b/.agents/skills/market-research/SKILL.md @@ -0,0 +1,75 @@ +--- +name: market-research +description: Conduct market research, competitive analysis, investor due diligence, and industry intelligence with source attribution and decision-oriented summaries. Use when the user wants market sizing, competitor comparisons, fund research, technology scans, or research that informs business decisions. +origin: ECC +--- + +# Market Research + +Produce research that supports decisions, not research theater. + +## When to Activate + +- researching a market, category, company, investor, or technology trend +- building TAM/SAM/SOM estimates +- comparing competitors or adjacent products +- preparing investor dossiers before outreach +- pressure-testing a thesis before building, funding, or entering a market + +## Research Standards + +1. Every important claim needs a source. +2. Prefer recent data and call out stale data. +3. Include contrarian evidence and downside cases. +4. Translate findings into a decision, not just a summary. +5. Separate fact, inference, and recommendation clearly. + +## Common Research Modes + +### Investor / Fund Diligence +Collect: +- fund size, stage, and typical check size +- relevant portfolio companies +- public thesis and recent activity +- reasons the fund is or is not a fit +- any obvious red flags or mismatches + +### Competitive Analysis +Collect: +- product reality, not marketing copy +- funding and investor history if public +- traction metrics if public +- distribution and pricing clues +- strengths, weaknesses, and positioning gaps + +### Market Sizing +Use: +- top-down estimates from reports or public datasets +- bottom-up sanity checks from realistic customer acquisition assumptions +- explicit assumptions for every leap in logic + +### Technology / Vendor Research +Collect: +- how it works +- trade-offs and adoption signals +- integration complexity +- lock-in, security, compliance, and operational risk + +## Output Format + +Default structure: +1. executive summary +2. key findings +3. implications +4. risks and caveats +5. recommendation +6. sources + +## Quality Gate + +Before delivering: +- all numbers are sourced or labeled as estimates +- old data is flagged +- the recommendation follows from the evidence +- risks and counterarguments are included +- the output makes a decision easier diff --git a/.agents/skills/market-research/agents/openai.yaml b/.agents/skills/market-research/agents/openai.yaml new file mode 100644 index 00000000..828a4588 --- /dev/null +++ b/.agents/skills/market-research/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Market Research" + short_description: "Source-attributed market, competitor, and investor research" + brand_color: "#2563EB" + default_prompt: "Research this market and summarize the decision-relevant findings" +policy: + allow_implicit_invocation: true diff --git a/.codex/AGENTS.md b/.codex/AGENTS.md index 45edba3b..e7359c88 100644 --- a/.codex/AGENTS.md +++ b/.codex/AGENTS.md @@ -23,6 +23,11 @@ Available skills: - coding-standards — Universal coding standards - frontend-patterns — React/Next.js patterns - frontend-slides — Viewport-safe HTML presentations and PPTX-to-web conversion +- article-writing — Long-form writing from notes and voice references +- content-engine — Platform-native social content and repurposing +- market-research — Source-attributed market and competitor research +- investor-materials — Decks, memos, models, and one-pagers +- investor-outreach — Personalized investor outreach and follow-ups - backend-patterns — API design, database, caching - e2e-testing — Playwright E2E tests - eval-harness — Eval-driven development diff --git a/.cursor/skills/article-writing/SKILL.md b/.cursor/skills/article-writing/SKILL.md new file mode 100644 index 00000000..cc4c17a8 --- /dev/null +++ b/.cursor/skills/article-writing/SKILL.md @@ -0,0 +1,85 @@ +--- +name: article-writing +description: Write articles, guides, blog posts, tutorials, newsletter issues, and other long-form content in a distinctive voice derived from supplied examples or brand guidance. Use when the user wants polished written content longer than a paragraph, especially when voice consistency, structure, and credibility matter. +origin: ECC +--- + +# Article Writing + +Write long-form content that sounds like a real person or brand, not generic AI output. + +## When to Activate + +- drafting blog posts, essays, launch posts, guides, tutorials, or newsletter issues +- turning notes, transcripts, or research into polished articles +- matching an existing founder, operator, or brand voice from examples +- tightening structure, pacing, and evidence in already-written long-form copy + +## Core Rules + +1. Lead with the concrete thing: example, output, anecdote, number, screenshot description, or code block. +2. Explain after the example, not before. +3. Prefer short, direct sentences over padded ones. +4. Use specific numbers when available and sourced. +5. Never invent biographical facts, company metrics, or customer evidence. + +## Voice Capture Workflow + +If the user wants a specific voice, collect one or more of: +- published articles +- newsletters +- X / LinkedIn posts +- docs or memos +- a short style guide + +Then extract: +- sentence length and rhythm +- whether the voice is formal, conversational, or sharp +- favored rhetorical devices such as parentheses, lists, fragments, or questions +- tolerance for humor, opinion, and contrarian framing +- formatting habits such as headers, bullets, code blocks, and pull quotes + +If no voice references are given, default to a direct, operator-style voice: concrete, practical, and low on hype. + +## Banned Patterns + +Delete and rewrite any of these: +- generic openings like "In today's rapidly evolving landscape" +- filler transitions such as "Moreover" and "Furthermore" +- hype phrases like "game-changer", "cutting-edge", or "revolutionary" +- vague claims without evidence +- biography or credibility claims not backed by provided context + +## Writing Process + +1. Clarify the audience and purpose. +2. Build a skeletal outline with one purpose per section. +3. Start each section with evidence, example, or scene. +4. Expand only where the next sentence earns its place. +5. Remove anything that sounds templated or self-congratulatory. + +## Structure Guidance + +### Technical Guides +- open with what the reader gets +- use code or terminal examples in every major section +- end with concrete takeaways, not a soft summary + +### Essays / Opinion Pieces +- start with tension, contradiction, or a sharp observation +- keep one argument thread per section +- use examples that earn the opinion + +### Newsletters +- keep the first screen strong +- mix insight with updates, not diary filler +- use clear section labels and easy skim structure + +## Quality Gate + +Before delivering: +- verify factual claims against provided sources +- remove filler and corporate language +- confirm the voice matches the supplied examples +- ensure every section adds new information +- check formatting for the intended platform diff --git a/.cursor/skills/content-engine/SKILL.md b/.cursor/skills/content-engine/SKILL.md new file mode 100644 index 00000000..9398c31a --- /dev/null +++ b/.cursor/skills/content-engine/SKILL.md @@ -0,0 +1,88 @@ +--- +name: content-engine +description: Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms. +origin: ECC +--- + +# Content Engine + +Turn one idea into strong, platform-native content instead of posting the same thing everywhere. + +## When to Activate + +- writing X posts or threads +- drafting LinkedIn posts or launch updates +- scripting short-form video or YouTube explainers +- repurposing articles, podcasts, demos, or docs into social content +- building a lightweight content plan around a launch, milestone, or theme + +## First Questions + +Clarify: +- source asset: what are we adapting from +- audience: builders, investors, customers, operators, or general audience +- platform: X, LinkedIn, TikTok, YouTube, newsletter, or multi-platform +- goal: awareness, conversion, recruiting, authority, launch support, or engagement + +## Core Rules + +1. Adapt for the platform. Do not cross-post the same copy. +2. Hooks matter more than summaries. +3. Every post should carry one clear idea. +4. Use specifics over slogans. +5. Keep the ask small and clear. + +## Platform Guidance + +### X +- open fast +- one idea per post or per tweet in a thread +- keep links out of the main body unless necessary +- avoid hashtag spam + +### LinkedIn +- strong first line +- short paragraphs +- more explicit framing around lessons, results, and takeaways + +### TikTok / Short Video +- first 3 seconds must interrupt attention +- script around visuals, not just narration +- one demo, one claim, one CTA + +### YouTube +- show the result early +- structure by chapter +- refresh the visual every 20-30 seconds + +### Newsletter +- deliver one clear lens, not a bundle of unrelated items +- make section titles skimmable +- keep the opening paragraph doing real work + +## Repurposing Flow + +Default cascade: +1. anchor asset: article, video, demo, memo, or launch doc +2. extract 3-7 atomic ideas +3. write platform-native variants +4. trim repetition across outputs +5. align CTAs with platform intent + +## Deliverables + +When asked for a campaign, return: +- the core angle +- platform-specific drafts +- optional posting order +- optional CTA variants +- any missing inputs needed before publishing + +## Quality Gate + +Before delivering: +- each draft reads natively for its platform +- hooks are strong and specific +- no generic hype language +- no duplicated copy across platforms unless requested +- the CTA matches the content and audience diff --git a/.cursor/skills/investor-materials/SKILL.md b/.cursor/skills/investor-materials/SKILL.md new file mode 100644 index 00000000..e392706a --- /dev/null +++ b/.cursor/skills/investor-materials/SKILL.md @@ -0,0 +1,96 @@ +--- +name: investor-materials +description: Create and update pitch decks, one-pagers, investor memos, accelerator applications, financial models, and fundraising materials. Use when the user needs investor-facing documents, projections, use-of-funds tables, milestone plans, or materials that must stay internally consistent across multiple fundraising assets. +origin: ECC +--- + +# Investor Materials + +Build investor-facing materials that are consistent, credible, and easy to defend. + +## When to Activate + +- creating or revising a pitch deck +- writing an investor memo or one-pager +- building a financial model, milestone plan, or use-of-funds table +- answering accelerator or incubator application questions +- aligning multiple fundraising docs around one source of truth + +## Golden Rule + +All investor materials must agree with each other. + +Create or confirm a single source of truth before writing: +- traction metrics +- pricing and revenue assumptions +- raise size and instrument +- use of funds +- team bios and titles +- milestones and timelines + +If conflicting numbers appear, stop and resolve them before drafting. + +## Core Workflow + +1. inventory the canonical facts +2. identify missing assumptions +3. choose the asset type +4. draft the asset with explicit logic +5. cross-check every number against the source of truth + +## Asset Guidance + +### Pitch Deck +Recommended flow: +1. company + wedge +2. problem +3. solution +4. product / demo +5. market +6. business model +7. traction +8. team +9. competition / differentiation +10. ask +11. use of funds / milestones +12. appendix + +If the user wants a web-native deck, pair this skill with `frontend-slides`. + +### One-Pager / Memo +- state what the company does in one clean sentence +- show why now +- include traction and proof points early +- make the ask precise +- keep claims easy to verify + +### Financial Model +Include: +- explicit assumptions +- bear / base / bull cases when useful +- clean layer-by-layer revenue logic +- milestone-linked spending +- sensitivity analysis where the decision hinges on assumptions + +### Accelerator Applications +- answer the exact question asked +- prioritize traction, insight, and team advantage +- avoid puffery +- keep internal metrics consistent with the deck and model + +## Red Flags to Avoid + +- unverifiable claims +- fuzzy market sizing without assumptions +- inconsistent team roles or titles +- revenue math that does not sum cleanly +- inflated certainty where assumptions are fragile + +## Quality Gate + +Before delivering: +- every number matches the current source of truth +- use of funds and revenue layers sum correctly +- assumptions are visible, not buried +- the story is clear without hype language +- the final asset is defensible in a partner meeting diff --git a/.cursor/skills/investor-outreach/SKILL.md b/.cursor/skills/investor-outreach/SKILL.md new file mode 100644 index 00000000..4fc69f4c --- /dev/null +++ b/.cursor/skills/investor-outreach/SKILL.md @@ -0,0 +1,76 @@ +--- +name: investor-outreach +description: Draft cold emails, warm intro blurbs, follow-ups, update emails, and investor communications for fundraising. Use when the user wants outreach to angels, VCs, strategic investors, or accelerators and needs concise, personalized, investor-facing messaging. +origin: ECC +--- + +# Investor Outreach + +Write investor communication that is short, personalized, and easy to act on. + +## When to Activate + +- writing a cold email to an investor +- drafting a warm intro request +- sending follow-ups after a meeting or no response +- writing investor updates during a process +- tailoring outreach based on fund thesis or partner fit + +## Core Rules + +1. Personalize every outbound message. +2. Keep the ask low-friction. +3. Use proof, not adjectives. +4. Stay concise. +5. Never send generic copy that could go to any investor. + +## Cold Email Structure + +1. subject line: short and specific +2. opener: why this investor specifically +3. pitch: what the company does, why now, what proof matters +4. ask: one concrete next step +5. sign-off: name, role, one credibility anchor if needed + +## Personalization Sources + +Reference one or more of: +- relevant portfolio companies +- a public thesis, talk, post, or article +- a mutual connection +- a clear market or product fit with the investor's focus + +If that context is missing, ask for it or state that the draft is a template awaiting personalization. + +## Follow-Up Cadence + +Default: +- day 0: initial outbound +- day 4-5: short follow-up with one new data point +- day 10-12: final follow-up with a clean close + +Do not keep nudging after that unless the user wants a longer sequence. + +## Warm Intro Requests + +Make life easy for the connector: +- explain why the intro is a fit +- include a forwardable blurb +- keep the forwardable blurb under 100 words + +## Post-Meeting Updates + +Include: +- the specific thing discussed +- the answer or update promised +- one new proof point if available +- the next step + +## Quality Gate + +Before delivering: +- message is personalized +- the ask is explicit +- there is no fluff or begging language +- the proof point is concrete +- word count stays tight diff --git a/.cursor/skills/market-research/SKILL.md b/.cursor/skills/market-research/SKILL.md new file mode 100644 index 00000000..12ffa034 --- /dev/null +++ b/.cursor/skills/market-research/SKILL.md @@ -0,0 +1,75 @@ +--- +name: market-research +description: Conduct market research, competitive analysis, investor due diligence, and industry intelligence with source attribution and decision-oriented summaries. Use when the user wants market sizing, competitor comparisons, fund research, technology scans, or research that informs business decisions. +origin: ECC +--- + +# Market Research + +Produce research that supports decisions, not research theater. + +## When to Activate + +- researching a market, category, company, investor, or technology trend +- building TAM/SAM/SOM estimates +- comparing competitors or adjacent products +- preparing investor dossiers before outreach +- pressure-testing a thesis before building, funding, or entering a market + +## Research Standards + +1. Every important claim needs a source. +2. Prefer recent data and call out stale data. +3. Include contrarian evidence and downside cases. +4. Translate findings into a decision, not just a summary. +5. Separate fact, inference, and recommendation clearly. + +## Common Research Modes + +### Investor / Fund Diligence +Collect: +- fund size, stage, and typical check size +- relevant portfolio companies +- public thesis and recent activity +- reasons the fund is or is not a fit +- any obvious red flags or mismatches + +### Competitive Analysis +Collect: +- product reality, not marketing copy +- funding and investor history if public +- traction metrics if public +- distribution and pricing clues +- strengths, weaknesses, and positioning gaps + +### Market Sizing +Use: +- top-down estimates from reports or public datasets +- bottom-up sanity checks from realistic customer acquisition assumptions +- explicit assumptions for every leap in logic + +### Technology / Vendor Research +Collect: +- how it works +- trade-offs and adoption signals +- integration complexity +- lock-in, security, compliance, and operational risk + +## Output Format + +Default structure: +1. executive summary +2. key findings +3. implications +4. risks and caveats +5. recommendation +6. sources + +## Quality Gate + +Before delivering: +- all numbers are sourced or labeled as estimates +- old data is flagged +- the recommendation follows from the evidence +- risks and counterarguments are included +- the output makes a decision easier diff --git a/.opencode/README.md b/.opencode/README.md index 26d00704..6ee8e272 100644 --- a/.opencode/README.md +++ b/.opencode/README.md @@ -144,6 +144,14 @@ The default OpenCode config loads 11 curated ECC skills via the `instructions` a - api-design - e2e-testing +Additional specialized skills are shipped in `skills/` but not loaded by default to keep OpenCode sessions lean: + +- article-writing +- content-engine +- market-research +- investor-materials +- investor-outreach + ## Configuration Full configuration in `opencode.json`: diff --git a/README.md b/README.md index 57b67b77..5f22f05a 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ For manual install instructions see the README in the `rules/` folder. /plugin list everything-claude-code@everything-claude-code ``` -✨ **That's it!** You now have access to 13 agents, 51 skills, and 32 commands. +✨ **That's it!** You now have access to 13 agents, 56 skills, and 32 commands. --- @@ -224,6 +224,11 @@ everything-claude-code/ | |-- backend-patterns/ # API, database, caching patterns | |-- frontend-patterns/ # React, Next.js patterns | |-- frontend-slides/ # HTML slide decks and PPTX-to-web presentation workflows (NEW) +| |-- article-writing/ # Long-form writing in a supplied voice without generic AI tone (NEW) +| |-- content-engine/ # Multi-platform social content and repurposing workflows (NEW) +| |-- market-research/ # Source-attributed market, competitor, and investor research (NEW) +| |-- investor-materials/ # Pitch decks, one-pagers, memos, and financial models (NEW) +| |-- investor-outreach/ # Personalized fundraising outreach and follow-up (NEW) | |-- continuous-learning/ # Auto-extract patterns from sessions (Longform Guide) | |-- continuous-learning-v2/ # Instinct-based learning with confidence scoring | |-- iterative-retrieval/ # Progressive context refinement for subagents @@ -832,7 +837,7 @@ alwaysApply: false ## Codex CLI Support -ECC provides **first-class Codex CLI support** with a reference configuration, Codex-specific AGENTS.md supplement, and 11 ported skills. +ECC provides **first-class Codex CLI support** with a reference configuration, Codex-specific AGENTS.md supplement, and 16 ported skills. ### Quick Start (Codex) @@ -850,7 +855,7 @@ codex |-----------|-------|---------| | Config | 1 | `.codex/config.toml` — model, permissions, MCP servers, persistent instructions | | AGENTS.md | 2 | Root (universal) + `.codex/AGENTS.md` (Codex-specific supplement) | -| Skills | 11 | `.agents/skills/` — SKILL.md + agents/openai.yaml per skill | +| Skills | 16 | `.agents/skills/` — SKILL.md + agents/openai.yaml per skill | | MCP Servers | 4 | GitHub, Context7, Memory, Sequential Thinking (command-based) | | Profiles | 2 | `strict` (read-only sandbox) and `yolo` (full auto-approve) | @@ -865,6 +870,11 @@ Skills at `.agents/skills/` are auto-loaded by Codex: | coding-standards | Universal coding standards | | frontend-patterns | React/Next.js patterns | | frontend-slides | HTML presentations, PPTX conversion, visual style exploration | +| article-writing | Long-form writing from notes and voice references | +| content-engine | Platform-native social content and repurposing | +| market-research | Source-attributed market and competitor research | +| investor-materials | Decks, memos, models, and one-pagers | +| investor-outreach | Personalized outreach, follow-ups, and intro blurbs | | backend-patterns | API design, database, caching | | e2e-testing | Playwright E2E tests | | eval-harness | Eval-driven development | diff --git a/skills/article-writing/SKILL.md b/skills/article-writing/SKILL.md new file mode 100644 index 00000000..cc4c17a8 --- /dev/null +++ b/skills/article-writing/SKILL.md @@ -0,0 +1,85 @@ +--- +name: article-writing +description: Write articles, guides, blog posts, tutorials, newsletter issues, and other long-form content in a distinctive voice derived from supplied examples or brand guidance. Use when the user wants polished written content longer than a paragraph, especially when voice consistency, structure, and credibility matter. +origin: ECC +--- + +# Article Writing + +Write long-form content that sounds like a real person or brand, not generic AI output. + +## When to Activate + +- drafting blog posts, essays, launch posts, guides, tutorials, or newsletter issues +- turning notes, transcripts, or research into polished articles +- matching an existing founder, operator, or brand voice from examples +- tightening structure, pacing, and evidence in already-written long-form copy + +## Core Rules + +1. Lead with the concrete thing: example, output, anecdote, number, screenshot description, or code block. +2. Explain after the example, not before. +3. Prefer short, direct sentences over padded ones. +4. Use specific numbers when available and sourced. +5. Never invent biographical facts, company metrics, or customer evidence. + +## Voice Capture Workflow + +If the user wants a specific voice, collect one or more of: +- published articles +- newsletters +- X / LinkedIn posts +- docs or memos +- a short style guide + +Then extract: +- sentence length and rhythm +- whether the voice is formal, conversational, or sharp +- favored rhetorical devices such as parentheses, lists, fragments, or questions +- tolerance for humor, opinion, and contrarian framing +- formatting habits such as headers, bullets, code blocks, and pull quotes + +If no voice references are given, default to a direct, operator-style voice: concrete, practical, and low on hype. + +## Banned Patterns + +Delete and rewrite any of these: +- generic openings like "In today's rapidly evolving landscape" +- filler transitions such as "Moreover" and "Furthermore" +- hype phrases like "game-changer", "cutting-edge", or "revolutionary" +- vague claims without evidence +- biography or credibility claims not backed by provided context + +## Writing Process + +1. Clarify the audience and purpose. +2. Build a skeletal outline with one purpose per section. +3. Start each section with evidence, example, or scene. +4. Expand only where the next sentence earns its place. +5. Remove anything that sounds templated or self-congratulatory. + +## Structure Guidance + +### Technical Guides +- open with what the reader gets +- use code or terminal examples in every major section +- end with concrete takeaways, not a soft summary + +### Essays / Opinion Pieces +- start with tension, contradiction, or a sharp observation +- keep one argument thread per section +- use examples that earn the opinion + +### Newsletters +- keep the first screen strong +- mix insight with updates, not diary filler +- use clear section labels and easy skim structure + +## Quality Gate + +Before delivering: +- verify factual claims against provided sources +- remove filler and corporate language +- confirm the voice matches the supplied examples +- ensure every section adds new information +- check formatting for the intended platform diff --git a/skills/configure-ecc/SKILL.md b/skills/configure-ecc/SKILL.md index 3971b3a9..cdaf7948 100644 --- a/skills/configure-ecc/SKILL.md +++ b/skills/configure-ecc/SKILL.md @@ -124,6 +124,16 @@ For each selected category, print the full list of skills below and ask the user | `tdd-workflow` | Enforces TDD with 80%+ coverage: unit, integration, E2E | | `verification-loop` | Verification and quality loop patterns | +**Category: Business & Content (5 skills)** + +| Skill | Description | +|-------|-------------| +| `article-writing` | Long-form writing in a supplied voice using notes, examples, or source docs | +| `content-engine` | Multi-platform social content, scripts, and repurposing workflows | +| `market-research` | Source-attributed market, competitor, fund, and technology research | +| `investor-materials` | Pitch decks, one-pagers, investor memos, and financial models | +| `investor-outreach` | Personalized investor cold emails, warm intros, and follow-ups | + **Standalone** | Skill | Description | diff --git a/skills/content-engine/SKILL.md b/skills/content-engine/SKILL.md new file mode 100644 index 00000000..9398c31a --- /dev/null +++ b/skills/content-engine/SKILL.md @@ -0,0 +1,88 @@ +--- +name: content-engine +description: Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms. +origin: ECC +--- + +# Content Engine + +Turn one idea into strong, platform-native content instead of posting the same thing everywhere. + +## When to Activate + +- writing X posts or threads +- drafting LinkedIn posts or launch updates +- scripting short-form video or YouTube explainers +- repurposing articles, podcasts, demos, or docs into social content +- building a lightweight content plan around a launch, milestone, or theme + +## First Questions + +Clarify: +- source asset: what are we adapting from +- audience: builders, investors, customers, operators, or general audience +- platform: X, LinkedIn, TikTok, YouTube, newsletter, or multi-platform +- goal: awareness, conversion, recruiting, authority, launch support, or engagement + +## Core Rules + +1. Adapt for the platform. Do not cross-post the same copy. +2. Hooks matter more than summaries. +3. Every post should carry one clear idea. +4. Use specifics over slogans. +5. Keep the ask small and clear. + +## Platform Guidance + +### X +- open fast +- one idea per post or per tweet in a thread +- keep links out of the main body unless necessary +- avoid hashtag spam + +### LinkedIn +- strong first line +- short paragraphs +- more explicit framing around lessons, results, and takeaways + +### TikTok / Short Video +- first 3 seconds must interrupt attention +- script around visuals, not just narration +- one demo, one claim, one CTA + +### YouTube +- show the result early +- structure by chapter +- refresh the visual every 20-30 seconds + +### Newsletter +- deliver one clear lens, not a bundle of unrelated items +- make section titles skimmable +- keep the opening paragraph doing real work + +## Repurposing Flow + +Default cascade: +1. anchor asset: article, video, demo, memo, or launch doc +2. extract 3-7 atomic ideas +3. write platform-native variants +4. trim repetition across outputs +5. align CTAs with platform intent + +## Deliverables + +When asked for a campaign, return: +- the core angle +- platform-specific drafts +- optional posting order +- optional CTA variants +- any missing inputs needed before publishing + +## Quality Gate + +Before delivering: +- each draft reads natively for its platform +- hooks are strong and specific +- no generic hype language +- no duplicated copy across platforms unless requested +- the CTA matches the content and audience diff --git a/skills/investor-materials/SKILL.md b/skills/investor-materials/SKILL.md new file mode 100644 index 00000000..e392706a --- /dev/null +++ b/skills/investor-materials/SKILL.md @@ -0,0 +1,96 @@ +--- +name: investor-materials +description: Create and update pitch decks, one-pagers, investor memos, accelerator applications, financial models, and fundraising materials. Use when the user needs investor-facing documents, projections, use-of-funds tables, milestone plans, or materials that must stay internally consistent across multiple fundraising assets. +origin: ECC +--- + +# Investor Materials + +Build investor-facing materials that are consistent, credible, and easy to defend. + +## When to Activate + +- creating or revising a pitch deck +- writing an investor memo or one-pager +- building a financial model, milestone plan, or use-of-funds table +- answering accelerator or incubator application questions +- aligning multiple fundraising docs around one source of truth + +## Golden Rule + +All investor materials must agree with each other. + +Create or confirm a single source of truth before writing: +- traction metrics +- pricing and revenue assumptions +- raise size and instrument +- use of funds +- team bios and titles +- milestones and timelines + +If conflicting numbers appear, stop and resolve them before drafting. + +## Core Workflow + +1. inventory the canonical facts +2. identify missing assumptions +3. choose the asset type +4. draft the asset with explicit logic +5. cross-check every number against the source of truth + +## Asset Guidance + +### Pitch Deck +Recommended flow: +1. company + wedge +2. problem +3. solution +4. product / demo +5. market +6. business model +7. traction +8. team +9. competition / differentiation +10. ask +11. use of funds / milestones +12. appendix + +If the user wants a web-native deck, pair this skill with `frontend-slides`. + +### One-Pager / Memo +- state what the company does in one clean sentence +- show why now +- include traction and proof points early +- make the ask precise +- keep claims easy to verify + +### Financial Model +Include: +- explicit assumptions +- bear / base / bull cases when useful +- clean layer-by-layer revenue logic +- milestone-linked spending +- sensitivity analysis where the decision hinges on assumptions + +### Accelerator Applications +- answer the exact question asked +- prioritize traction, insight, and team advantage +- avoid puffery +- keep internal metrics consistent with the deck and model + +## Red Flags to Avoid + +- unverifiable claims +- fuzzy market sizing without assumptions +- inconsistent team roles or titles +- revenue math that does not sum cleanly +- inflated certainty where assumptions are fragile + +## Quality Gate + +Before delivering: +- every number matches the current source of truth +- use of funds and revenue layers sum correctly +- assumptions are visible, not buried +- the story is clear without hype language +- the final asset is defensible in a partner meeting diff --git a/skills/investor-outreach/SKILL.md b/skills/investor-outreach/SKILL.md new file mode 100644 index 00000000..4fc69f4c --- /dev/null +++ b/skills/investor-outreach/SKILL.md @@ -0,0 +1,76 @@ +--- +name: investor-outreach +description: Draft cold emails, warm intro blurbs, follow-ups, update emails, and investor communications for fundraising. Use when the user wants outreach to angels, VCs, strategic investors, or accelerators and needs concise, personalized, investor-facing messaging. +origin: ECC +--- + +# Investor Outreach + +Write investor communication that is short, personalized, and easy to act on. + +## When to Activate + +- writing a cold email to an investor +- drafting a warm intro request +- sending follow-ups after a meeting or no response +- writing investor updates during a process +- tailoring outreach based on fund thesis or partner fit + +## Core Rules + +1. Personalize every outbound message. +2. Keep the ask low-friction. +3. Use proof, not adjectives. +4. Stay concise. +5. Never send generic copy that could go to any investor. + +## Cold Email Structure + +1. subject line: short and specific +2. opener: why this investor specifically +3. pitch: what the company does, why now, what proof matters +4. ask: one concrete next step +5. sign-off: name, role, one credibility anchor if needed + +## Personalization Sources + +Reference one or more of: +- relevant portfolio companies +- a public thesis, talk, post, or article +- a mutual connection +- a clear market or product fit with the investor's focus + +If that context is missing, ask for it or state that the draft is a template awaiting personalization. + +## Follow-Up Cadence + +Default: +- day 0: initial outbound +- day 4-5: short follow-up with one new data point +- day 10-12: final follow-up with a clean close + +Do not keep nudging after that unless the user wants a longer sequence. + +## Warm Intro Requests + +Make life easy for the connector: +- explain why the intro is a fit +- include a forwardable blurb +- keep the forwardable blurb under 100 words + +## Post-Meeting Updates + +Include: +- the specific thing discussed +- the answer or update promised +- one new proof point if available +- the next step + +## Quality Gate + +Before delivering: +- message is personalized +- the ask is explicit +- there is no fluff or begging language +- the proof point is concrete +- word count stays tight diff --git a/skills/market-research/SKILL.md b/skills/market-research/SKILL.md new file mode 100644 index 00000000..12ffa034 --- /dev/null +++ b/skills/market-research/SKILL.md @@ -0,0 +1,75 @@ +--- +name: market-research +description: Conduct market research, competitive analysis, investor due diligence, and industry intelligence with source attribution and decision-oriented summaries. Use when the user wants market sizing, competitor comparisons, fund research, technology scans, or research that informs business decisions. +origin: ECC +--- + +# Market Research + +Produce research that supports decisions, not research theater. + +## When to Activate + +- researching a market, category, company, investor, or technology trend +- building TAM/SAM/SOM estimates +- comparing competitors or adjacent products +- preparing investor dossiers before outreach +- pressure-testing a thesis before building, funding, or entering a market + +## Research Standards + +1. Every important claim needs a source. +2. Prefer recent data and call out stale data. +3. Include contrarian evidence and downside cases. +4. Translate findings into a decision, not just a summary. +5. Separate fact, inference, and recommendation clearly. + +## Common Research Modes + +### Investor / Fund Diligence +Collect: +- fund size, stage, and typical check size +- relevant portfolio companies +- public thesis and recent activity +- reasons the fund is or is not a fit +- any obvious red flags or mismatches + +### Competitive Analysis +Collect: +- product reality, not marketing copy +- funding and investor history if public +- traction metrics if public +- distribution and pricing clues +- strengths, weaknesses, and positioning gaps + +### Market Sizing +Use: +- top-down estimates from reports or public datasets +- bottom-up sanity checks from realistic customer acquisition assumptions +- explicit assumptions for every leap in logic + +### Technology / Vendor Research +Collect: +- how it works +- trade-offs and adoption signals +- integration complexity +- lock-in, security, compliance, and operational risk + +## Output Format + +Default structure: +1. executive summary +2. key findings +3. implications +4. risks and caveats +5. recommendation +6. sources + +## Quality Gate + +Before delivering: +- all numbers are sourced or labeled as estimates +- old data is flagged +- the recommendation follows from the evidence +- risks and counterarguments are included +- the output makes a decision easier