diff --git a/.agents/skills/analytics/SKILL.md b/.agents/skills/analytics/SKILL.md new file mode 100644 index 0000000..da39c1d --- /dev/null +++ b/.agents/skills/analytics/SKILL.md @@ -0,0 +1,309 @@ +--- +name: analytics +description: When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-testing. +metadata: + version: 2.0.0 +--- + +# Analytics Tracking + +You are an expert in analytics implementation and measurement. Your goal is to help set up tracking that provides actionable insights for marketing and product decisions. + +## Initial Assessment + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Before implementing tracking, understand: + +1. **Business Context** - What decisions will this data inform? What are key conversions? +2. **Current State** - What tracking exists? What tools are in use? +3. **Technical Context** - What's the tech stack? Any privacy/compliance requirements? + +--- + +## Core Principles + +### 1. Track for Decisions, Not Data +- Every event should inform a decision +- Avoid vanity metrics +- Quality > quantity of events + +### 2. Start with the Questions +- What do you need to know? +- What actions will you take based on this data? +- Work backwards to what you need to track + +### 3. Name Things Consistently +- Naming conventions matter +- Establish patterns before implementing +- Document everything + +### 4. Maintain Data Quality +- Validate implementation +- Monitor for issues +- Clean data > more data + +--- + +## Tracking Plan Framework + +### Structure + +``` +Event Name | Category | Properties | Trigger | Notes +---------- | -------- | ---------- | ------- | ----- +``` + +### Event Types + +| Type | Examples | +|------|----------| +| Pageviews | Automatic, enhanced with metadata | +| User Actions | Button clicks, form submissions, feature usage | +| System Events | Signup completed, purchase, subscription changed | +| Custom Conversions | Goal completions, funnel stages | + +**For comprehensive event lists**: See [references/event-library.md](references/event-library.md) + +--- + +## Event Naming Conventions + +### Recommended Format: Object-Action + +``` +signup_completed +button_clicked +form_submitted +article_read +checkout_payment_completed +``` + +### Best Practices +- Lowercase with underscores +- Be specific: `cta_hero_clicked` vs. `button_clicked` +- Include context in properties, not event name +- Avoid spaces and special characters +- Document decisions + +--- + +## Essential Events + +### Marketing Site + +| Event | Properties | +|-------|------------| +| cta_clicked | button_text, location | +| form_submitted | form_type | +| signup_completed | method, source | +| demo_requested | - | + +### Product/App + +| Event | Properties | +|-------|------------| +| onboarding_step_completed | step_number, step_name | +| feature_used | feature_name | +| purchase_completed | plan, value | +| subscription_cancelled | reason | + +**For full event library by business type**: See [references/event-library.md](references/event-library.md) + +--- + +## Event Properties + +### Standard Properties + +| Category | Properties | +|----------|------------| +| Page | page_title, page_location, page_referrer | +| User | user_id, user_type, account_id, plan_type | +| Campaign | source, medium, campaign, content, term | +| Product | product_id, product_name, category, price | + +### Best Practices +- Use consistent property names +- Include relevant context +- Don't duplicate automatic properties +- Avoid PII in properties + +--- + +## GA4 Implementation + +### Quick Setup + +1. Create GA4 property and data stream +2. Install gtag.js or GTM +3. Enable enhanced measurement +4. Configure custom events +5. Mark conversions in Admin + +### Custom Event Example + +```javascript +gtag('event', 'signup_completed', { + 'method': 'email', + 'plan': 'free' +}); +``` + +**For detailed GA4 implementation**: See [references/ga4-implementation.md](references/ga4-implementation.md) + +--- + +## Google Tag Manager + +### Container Structure + +| Component | Purpose | +|-----------|---------| +| Tags | Code that executes (GA4, pixels) | +| Triggers | When tags fire (page view, click) | +| Variables | Dynamic values (click text, data layer) | + +### Data Layer Pattern + +```javascript +dataLayer.push({ + 'event': 'form_submitted', + 'form_name': 'contact', + 'form_location': 'footer' +}); +``` + +**For detailed GTM implementation**: See [references/gtm-implementation.md](references/gtm-implementation.md) + +--- + +## UTM Parameter Strategy + +### Standard Parameters + +| Parameter | Purpose | Example | +|-----------|---------|---------| +| utm_source | Traffic source | google, newsletter | +| utm_medium | Marketing medium | cpc, email, social | +| utm_campaign | Campaign name | spring_sale | +| utm_content | Differentiate versions | hero_cta | +| utm_term | Paid search keywords | running+shoes | + +### Naming Conventions +- Lowercase everything +- Use underscores or hyphens consistently +- Be specific but concise: `blog_footer_cta`, not `cta1` +- Document all UTMs in a spreadsheet + +--- + +## Debugging and Validation + +### Testing Tools + +| Tool | Use For | +|------|---------| +| GA4 DebugView | Real-time event monitoring | +| GTM Preview Mode | Test triggers before publish | +| Browser Extensions | Tag Assistant, dataLayer Inspector | + +### Validation Checklist + +- [ ] Events firing on correct triggers +- [ ] Property values populating correctly +- [ ] No duplicate events +- [ ] Works across browsers and mobile +- [ ] Conversions recorded correctly +- [ ] No PII leaking + +### Common Issues + +| Issue | Check | +|-------|-------| +| Events not firing | Trigger config, GTM loaded | +| Wrong values | Variable path, data layer structure | +| Duplicate events | Multiple containers, trigger firing twice | + +--- + +## Privacy and Compliance + +### Considerations +- Cookie consent required in EU/UK/CA +- No PII in analytics properties +- Data retention settings +- User deletion capabilities + +### Implementation +- Use consent mode (wait for consent) +- IP anonymization +- Only collect what you need +- Integrate with consent management platform + +--- + +## Output Format + +### Tracking Plan Document + +```markdown +# [Site/Product] Tracking Plan + +## Overview +- Tools: GA4, GTM +- Last updated: [Date] + +## Events + +| Event Name | Description | Properties | Trigger | +|------------|-------------|------------|---------| +| signup_completed | User completes signup | method, plan | Success page | + +## Custom Dimensions + +| Name | Scope | Parameter | +|------|-------|-----------| +| user_type | User | user_type | + +## Conversions + +| Conversion | Event | Counting | +|------------|-------|----------| +| Signup | signup_completed | Once per session | +``` + +--- + +## Task-Specific Questions + +1. What tools are you using (GA4, Mixpanel, etc.)? +2. What key actions do you want to track? +3. What decisions will this data inform? +4. Who implements - dev team or marketing? +5. Are there privacy/consent requirements? +6. What's already tracked? + +--- + +## Tool Integrations + +For implementation, see the [tools registry](../../tools/REGISTRY.md). Key analytics tools: + +| Tool | Best For | MCP | Guide | +|------|----------|:---:|-------| +| **GA4** | Web analytics, Google ecosystem | ✓ | [ga4.md](../../tools/integrations/ga4.md) | +| **Mixpanel** | Product analytics, event tracking | - | [mixpanel.md](../../tools/integrations/mixpanel.md) | +| **Amplitude** | Product analytics, cohort analysis | - | [amplitude.md](../../tools/integrations/amplitude.md) | +| **PostHog** | Open-source analytics, session replay | - | [posthog.md](../../tools/integrations/posthog.md) | +| **Segment** | Customer data platform, routing | - | [segment.md](../../tools/integrations/segment.md) | + +--- + +## Related Skills + +- **ab-testing**: For experiment tracking +- **seo-audit**: For organic traffic analysis +- **cro**: For conversion optimization (uses this data) +- **revops**: For pipeline metrics, CRM tracking, and revenue attribution diff --git a/.agents/skills/analytics/evals/evals.json b/.agents/skills/analytics/evals/evals.json new file mode 100644 index 0000000..fd3df6a --- /dev/null +++ b/.agents/skills/analytics/evals/evals.json @@ -0,0 +1,90 @@ +{ + "skill_name": "analytics", + "evals": [ + { + "id": 1, + "prompt": "Help me set up analytics tracking for our B2B SaaS product. We use GA4 and GTM. We need to track signups, feature usage, and upgrade events.", + "expected_output": "Should check for product-marketing.md first. Should apply the 'track for decisions' principle — ask what decisions the tracking will inform. Should use the event naming convention (object_action, lowercase with underscores). Should define essential events for SaaS: signup_completed, trial_started, feature_used, plan_upgraded, etc. Should provide GA4 implementation details with proper event parameters. Should include GTM data layer push examples. Should organize output as a tracking plan with event name, trigger, parameters, and purpose for each event.", + "assertions": [ + "Checks for product-marketing.md", + "Applies 'track for decisions' principle", + "Uses object_action naming convention", + "Defines essential SaaS events (signup, feature usage, upgrade)", + "Provides GA4 implementation details", + "Includes GTM data layer examples", + "Output follows tracking plan format" + ], + "files": [] + }, + { + "id": 2, + "prompt": "What UTM parameters should we use? We run ads on Google, Meta, and LinkedIn, plus send a weekly newsletter and post on LinkedIn organically.", + "expected_output": "Should apply the UTM parameter strategy framework. Should define consistent UTM conventions: source (google, meta, linkedin, newsletter), medium (cpc, paid-social, email, organic-social), campaign (naming convention with date or identifier). Should provide specific UTM examples for each channel mentioned. Should warn about common UTM mistakes (inconsistent casing, redundant parameters, missing medium). Should recommend a UTM tracking spreadsheet or naming convention document.", + "assertions": [ + "Applies UTM parameter strategy", + "Defines source, medium, and campaign conventions", + "Provides specific UTM examples for each channel", + "Uses consistent naming conventions (lowercase)", + "Warns about common UTM mistakes", + "Recommends tracking documentation" + ], + "files": [] + }, + { + "id": 3, + "prompt": "our tracking seems broken — we're seeing duplicate events and our conversion numbers in GA4 don't match what our database shows. help?", + "expected_output": "Should trigger on casual phrasing. Should apply the debugging and validation framework. Should systematically check for common issues: duplicate GTM tags firing, missing event deduplication, incorrect trigger conditions, cross-domain tracking issues, consent mode filtering. Should provide specific debugging steps: use GA4 DebugView, GTM Preview mode, browser developer tools. Should address the GA4 vs database discrepancy (common causes: consent mode, ad blockers, client-side vs server-side tracking, session timeout differences).", + "assertions": [ + "Triggers on casual phrasing", + "Applies debugging and validation framework", + "Checks for duplicate tag firing", + "Provides specific debugging tools (GA4 DebugView, GTM Preview)", + "Addresses GA4 vs database discrepancy", + "Lists common causes of data mismatches", + "Provides systematic troubleshooting steps" + ], + "files": [] + }, + { + "id": 4, + "prompt": "We're launching an e-commerce store and need to set up tracking from scratch. What events do we absolutely need?", + "expected_output": "Should reference the essential events by site type, specifically e-commerce. Should define the e-commerce event taxonomy: product_viewed, product_added_to_cart, cart_viewed, checkout_started, checkout_step_completed, purchase_completed, product_removed_from_cart. Should include enhanced e-commerce parameters (item_id, item_name, price, quantity, etc.). Should follow object_action naming convention. Should organize as a tracking plan with priorities (must-have vs nice-to-have).", + "assertions": [ + "References essential events for e-commerce site type", + "Defines full e-commerce event taxonomy", + "Includes enhanced e-commerce parameters", + "Follows object_action naming convention", + "Organizes by priority (must-have vs nice-to-have)", + "Provides tracking plan format output" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We need to make sure our tracking is GDPR compliant. We have European users and we're using GA4, Hotjar, and Facebook Pixel.", + "expected_output": "Should apply the privacy and compliance framework. Should address GDPR requirements for each tool: consent before tracking, consent management platform (CMP) setup, GA4 consent mode configuration, conditional loading of Hotjar and Facebook Pixel. Should recommend a consent hierarchy (necessary, analytics, marketing). Should provide GTM implementation for consent-based tag firing. Should mention data retention settings in GA4. Should address cookie banner requirements.", + "assertions": [ + "Applies privacy and compliance framework", + "Addresses GDPR requirements specifically", + "Recommends consent management platform", + "Covers GA4 consent mode configuration", + "Addresses conditional loading for each tool", + "Provides consent hierarchy", + "Mentions data retention settings" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Help me set up tracking for our A/B test. We want to measure which version of our pricing page converts better.", + "expected_output": "Should recognize this overlaps with A/B test setup, not just analytics tracking. Should defer to or cross-reference the ab-testing skill for the experiment design, hypothesis, and statistical analysis. May help with the tracking implementation (events to fire, parameters to include) but should make clear that ab-testing is the right skill for the experiment framework.", + "assertions": [ + "Recognizes overlap with A/B test setup", + "References or defers to ab-testing skill", + "May help with tracking implementation specifics", + "Does not attempt to design the full experiment" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/analytics/references/event-library.md b/.agents/skills/analytics/references/event-library.md new file mode 100644 index 0000000..c381b56 --- /dev/null +++ b/.agents/skills/analytics/references/event-library.md @@ -0,0 +1,260 @@ +# Event Library Reference + +Comprehensive list of events to track by business type and context. + +## Contents +- Marketing Site Events (navigation & engagement, CTA & form interactions, conversion events) +- Product/App Events (onboarding, core usage, errors & support) +- Monetization Events (pricing & checkout, subscription management) +- E-commerce Events (browsing, cart, checkout, post-purchase) +- B2B / SaaS Specific Events (team & collaboration, integration events, account events) +- Event Properties (Parameters) +- Funnel Event Sequences + +## Marketing Site Events + +### Navigation & Engagement + +| Event Name | Description | Properties | +|------------|-------------|------------| +| page_view | Page loaded (enhanced) | page_title, page_location, content_group | +| scroll_depth | User scrolled to threshold | depth (25, 50, 75, 100) | +| outbound_link_clicked | Click to external site | link_url, link_text | +| internal_link_clicked | Click within site | link_url, link_text, location | +| video_played | Video started | video_id, video_title, duration | +| video_completed | Video finished | video_id, video_title, duration | + +### CTA & Form Interactions + +| Event Name | Description | Properties | +|------------|-------------|------------| +| cta_clicked | Call to action clicked | button_text, cta_location, page | +| form_started | User began form | form_name, form_location | +| form_field_completed | Field filled | form_name, field_name | +| form_submitted | Form successfully sent | form_name, form_location | +| form_error | Form validation failed | form_name, error_type | +| resource_downloaded | Asset downloaded | resource_name, resource_type | + +### Conversion Events + +| Event Name | Description | Properties | +|------------|-------------|------------| +| signup_started | Initiated signup | source, page | +| signup_completed | Finished signup | method, plan, source | +| demo_requested | Demo form submitted | company_size, industry | +| contact_submitted | Contact form sent | inquiry_type | +| newsletter_subscribed | Email list signup | source, list_name | +| trial_started | Free trial began | plan, source | + +--- + +## Product/App Events + +### Onboarding + +| Event Name | Description | Properties | +|------------|-------------|------------| +| signup_completed | Account created | method, referral_source | +| onboarding_started | Began onboarding | - | +| onboarding_step_completed | Step finished | step_number, step_name | +| onboarding_completed | All steps done | steps_completed, time_to_complete | +| onboarding_skipped | User skipped onboarding | step_skipped_at | +| first_key_action_completed | Aha moment reached | action_type | + +### Core Usage + +| Event Name | Description | Properties | +|------------|-------------|------------| +| session_started | App session began | session_number | +| feature_used | Feature interaction | feature_name, feature_category | +| action_completed | Core action done | action_type, count | +| content_created | User created content | content_type | +| content_edited | User modified content | content_type | +| content_deleted | User removed content | content_type | +| search_performed | In-app search | query, results_count | +| settings_changed | Settings modified | setting_name, new_value | +| invite_sent | User invited others | invite_type, count | + +### Errors & Support + +| Event Name | Description | Properties | +|------------|-------------|------------| +| error_occurred | Error experienced | error_type, error_message, page | +| help_opened | Help accessed | help_type, page | +| support_contacted | Support request made | contact_method, issue_type | +| feedback_submitted | User feedback given | feedback_type, rating | + +--- + +## Monetization Events + +### Pricing & Checkout + +| Event Name | Description | Properties | +|------------|-------------|------------| +| pricing_viewed | Pricing page seen | source | +| plan_selected | Plan chosen | plan_name, billing_cycle | +| checkout_started | Began checkout | plan, value | +| payment_info_entered | Payment submitted | payment_method | +| purchase_completed | Purchase successful | plan, value, currency, transaction_id | +| purchase_failed | Purchase failed | error_reason, plan | + +### Subscription Management + +| Event Name | Description | Properties | +|------------|-------------|------------| +| trial_started | Trial began | plan, trial_length | +| trial_ended | Trial expired | plan, converted (bool) | +| subscription_upgraded | Plan upgraded | from_plan, to_plan, value | +| subscription_downgraded | Plan downgraded | from_plan, to_plan | +| subscription_cancelled | Cancelled | plan, reason, tenure | +| subscription_renewed | Renewed | plan, value | +| billing_updated | Payment method changed | - | + +--- + +## E-commerce Events + +### Browsing + +| Event Name | Description | Properties | +|------------|-------------|------------| +| product_viewed | Product page viewed | product_id, product_name, category, price | +| product_list_viewed | Category/list viewed | list_name, products[] | +| product_searched | Search performed | query, results_count | +| product_filtered | Filters applied | filter_type, filter_value | +| product_sorted | Sort applied | sort_by, sort_order | + +### Cart + +| Event Name | Description | Properties | +|------------|-------------|------------| +| product_added_to_cart | Item added | product_id, product_name, price, quantity | +| product_removed_from_cart | Item removed | product_id, product_name, price, quantity | +| cart_viewed | Cart page viewed | cart_value, items_count | + +### Checkout + +| Event Name | Description | Properties | +|------------|-------------|------------| +| checkout_started | Checkout began | cart_value, items_count | +| checkout_step_completed | Step finished | step_number, step_name | +| shipping_info_entered | Address entered | shipping_method | +| payment_info_entered | Payment entered | payment_method | +| coupon_applied | Coupon used | coupon_code, discount_value | +| purchase_completed | Order placed | transaction_id, value, currency, items[] | + +### Post-Purchase + +| Event Name | Description | Properties | +|------------|-------------|------------| +| order_confirmed | Confirmation viewed | transaction_id | +| refund_requested | Refund initiated | transaction_id, reason | +| refund_completed | Refund processed | transaction_id, value | +| review_submitted | Product reviewed | product_id, rating | + +--- + +## B2B / SaaS Specific Events + +### Team & Collaboration + +| Event Name | Description | Properties | +|------------|-------------|------------| +| team_created | New team/org made | team_size, plan | +| team_member_invited | Invite sent | role, invite_method | +| team_member_joined | Member accepted | role | +| team_member_removed | Member removed | role | +| role_changed | Permissions updated | user_id, old_role, new_role | + +### Integration Events + +| Event Name | Description | Properties | +|------------|-------------|------------| +| integration_viewed | Integration page seen | integration_name | +| integration_started | Setup began | integration_name | +| integration_connected | Successfully connected | integration_name | +| integration_disconnected | Removed integration | integration_name, reason | + +### Account Events + +| Event Name | Description | Properties | +|------------|-------------|------------| +| account_created | New account | source, plan | +| account_upgraded | Plan upgrade | from_plan, to_plan | +| account_churned | Account closed | reason, tenure, mrr_lost | +| account_reactivated | Returned customer | previous_tenure, new_plan | + +--- + +## Event Properties (Parameters) + +### Standard Properties to Include + +**User Context:** +``` +user_id: "12345" +user_type: "free" | "trial" | "paid" +account_id: "acct_123" +plan_type: "starter" | "pro" | "enterprise" +``` + +**Session Context:** +``` +session_id: "sess_abc" +session_number: 5 +page: "/pricing" +referrer: "https://google.com" +``` + +**Campaign Context:** +``` +source: "google" +medium: "cpc" +campaign: "spring_sale" +content: "hero_cta" +``` + +**Product Context (E-commerce):** +``` +product_id: "SKU123" +product_name: "Product Name" +category: "Category" +price: 99.99 +quantity: 1 +currency: "USD" +``` + +**Timing:** +``` +timestamp: "2024-01-15T10:30:00Z" +time_on_page: 45 +session_duration: 300 +``` + +--- + +## Funnel Event Sequences + +### Signup Funnel +1. signup_started +2. signup_step_completed (email) +3. signup_step_completed (password) +4. signup_completed +5. onboarding_started + +### Purchase Funnel +1. pricing_viewed +2. plan_selected +3. checkout_started +4. payment_info_entered +5. purchase_completed + +### E-commerce Funnel +1. product_viewed +2. product_added_to_cart +3. cart_viewed +4. checkout_started +5. shipping_info_entered +6. payment_info_entered +7. purchase_completed diff --git a/.agents/skills/analytics/references/ga4-implementation.md b/.agents/skills/analytics/references/ga4-implementation.md new file mode 100644 index 0000000..f2656dc --- /dev/null +++ b/.agents/skills/analytics/references/ga4-implementation.md @@ -0,0 +1,300 @@ +# GA4 Implementation Reference + +Detailed implementation guide for Google Analytics 4. + +## Contents +- Configuration (data streams, enhanced measurement events, recommended events) +- Custom Events (gtag.js implementation, Google Tag Manager) +- Conversions Setup (creating conversions, conversion values) +- Custom Dimensions and Metrics (when to use, setup steps, examples) +- Audiences (creating audiences, audience examples) +- Debugging (DebugView, real-time reports, common issues) +- Data Quality (filters, cross-domain tracking, session settings) +- Integration with Google Ads (linking, audience export) + +## Configuration + +### Data Streams + +- One stream per platform (web, iOS, Android) +- Enable enhanced measurement for automatic tracking +- Configure data retention (2 months default, 14 months max) +- Enable Google Signals (for cross-device, if consented) + +### Enhanced Measurement Events (Automatic) + +| Event | Description | Configuration | +|-------|-------------|---------------| +| page_view | Page loads | Automatic | +| scroll | 90% scroll depth | Toggle on/off | +| outbound_click | Click to external domain | Automatic | +| site_search | Search query used | Configure parameter | +| video_engagement | YouTube video plays | Toggle on/off | +| file_download | PDF, docs, etc. | Configurable extensions | + +### Recommended Events + +Use Google's predefined events when possible for enhanced reporting: + +**All properties:** +- login, sign_up +- share +- search + +**E-commerce:** +- view_item, view_item_list +- add_to_cart, remove_from_cart +- begin_checkout +- add_payment_info +- purchase, refund + +**Games:** +- level_up, unlock_achievement +- post_score, spend_virtual_currency + +Reference: https://support.google.com/analytics/answer/9267735 + +--- + +## Custom Events + +### gtag.js Implementation + +```javascript +// Basic event +gtag('event', 'signup_completed', { + 'method': 'email', + 'plan': 'free' +}); + +// Event with value +gtag('event', 'purchase', { + 'transaction_id': 'T12345', + 'value': 99.99, + 'currency': 'USD', + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99 + }] +}); + +// User properties +gtag('set', 'user_properties', { + 'user_type': 'premium', + 'plan_name': 'pro' +}); + +// User ID (for logged-in users) +gtag('config', 'GA_MEASUREMENT_ID', { + 'user_id': 'USER_ID' +}); +``` + +### Google Tag Manager (dataLayer) + +```javascript +// Custom event +dataLayer.push({ + 'event': 'signup_completed', + 'method': 'email', + 'plan': 'free' +}); + +// Set user properties +dataLayer.push({ + 'user_id': '12345', + 'user_type': 'premium' +}); + +// E-commerce purchase +dataLayer.push({ + 'event': 'purchase', + 'ecommerce': { + 'transaction_id': 'T12345', + 'value': 99.99, + 'currency': 'USD', + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'quantity': 1 + }] + } +}); + +// Clear ecommerce before sending (best practice) +dataLayer.push({ ecommerce: null }); +dataLayer.push({ + 'event': 'view_item', + 'ecommerce': { + // ... + } +}); +``` + +--- + +## Conversions Setup + +### Creating Conversions + +1. **Collect the event** - Ensure event is firing in GA4 +2. **Mark as conversion** - Admin > Events > Mark as conversion +3. **Set counting method**: + - Once per session (leads, signups) + - Every event (purchases) +4. **Import to Google Ads** - For conversion-optimized bidding + +### Conversion Values + +```javascript +// Event with conversion value +gtag('event', 'purchase', { + 'value': 99.99, + 'currency': 'USD' +}); +``` + +Or set default value in GA4 Admin when marking conversion. + +--- + +## Custom Dimensions and Metrics + +### When to Use + +**Custom dimensions:** +- Properties you want to segment/filter by +- User attributes (plan type, industry) +- Content attributes (author, category) + +**Custom metrics:** +- Numeric values to aggregate +- Scores, counts, durations + +### Setup Steps + +1. Admin > Data display > Custom definitions +2. Create dimension or metric +3. Choose scope: + - **Event**: Per event (content_type) + - **User**: Per user (account_type) + - **Item**: Per product (product_category) +4. Enter parameter name (must match event parameter) + +### Examples + +| Dimension | Scope | Parameter | Description | +|-----------|-------|-----------|-------------| +| User Type | User | user_type | Free, trial, paid | +| Content Author | Event | author | Blog post author | +| Product Category | Item | item_category | E-commerce category | + +--- + +## Audiences + +### Creating Audiences + +Admin > Data display > Audiences + +**Use cases:** +- Remarketing audiences (export to Ads) +- Segment analysis +- Trigger-based events + +### Audience Examples + +**High-intent visitors:** +- Viewed pricing page +- Did not convert +- In last 7 days + +**Engaged users:** +- 3+ sessions +- Or 5+ minutes total engagement + +**Purchasers:** +- Purchase event +- For exclusion or lookalike + +--- + +## Debugging + +### DebugView + +Enable with: +- URL parameter: `?debug_mode=true` +- Chrome extension: GA Debugger +- gtag: `'debug_mode': true` in config + +View at: Reports > Configure > DebugView + +### Real-Time Reports + +Check events within 30 minutes: +Reports > Real-time + +### Common Issues + +**Events not appearing:** +- Check DebugView first +- Verify gtag/GTM firing +- Check filter exclusions + +**Parameter values missing:** +- Custom dimension not created +- Parameter name mismatch +- Data still processing (24-48 hrs) + +**Conversions not recording:** +- Event not marked as conversion +- Event name doesn't match +- Counting method (once vs. every) + +--- + +## Data Quality + +### Filters + +Admin > Data streams > [Stream] > Configure tag settings > Define internal traffic + +**Exclude:** +- Internal IP addresses +- Developer traffic +- Testing environments + +### Cross-Domain Tracking + +For multiple domains sharing analytics: + +1. Admin > Data streams > [Stream] > Configure tag settings +2. Configure your domains +3. List all domains that should share sessions + +### Session Settings + +Admin > Data streams > [Stream] > Configure tag settings + +- Session timeout (default 30 min) +- Engaged session duration (10 sec default) + +--- + +## Integration with Google Ads + +### Linking + +1. Admin > Product links > Google Ads links +2. Enable auto-tagging in Google Ads +3. Import conversions in Google Ads + +### Audience Export + +Audiences created in GA4 can be used in Google Ads for: +- Remarketing campaigns +- Customer match +- Similar audiences diff --git a/.agents/skills/analytics/references/gtm-implementation.md b/.agents/skills/analytics/references/gtm-implementation.md new file mode 100644 index 0000000..956e638 --- /dev/null +++ b/.agents/skills/analytics/references/gtm-implementation.md @@ -0,0 +1,390 @@ +# Google Tag Manager Implementation Reference + +Detailed guide for implementing tracking via Google Tag Manager. + +## Contents +- Container Structure (tags, triggers, variables) +- Naming Conventions +- Data Layer Patterns +- Common Tag Configurations (GA4 configuration tag, GA4 event tag, Facebook pixel) +- Preview and Debug +- Workspaces and Versioning +- Consent Management +- Advanced Patterns (tag sequencing, exception handling, custom JavaScript variables) + +## Container Structure + +### Tags + +Tags are code snippets that execute when triggered. + +**Common tag types:** +- GA4 Configuration (base setup) +- GA4 Event (custom events) +- Google Ads Conversion +- Facebook Pixel +- LinkedIn Insight Tag +- Custom HTML (for other pixels) + +### Triggers + +Triggers define when tags fire. + +**Built-in triggers:** +- Page View: All Pages, DOM Ready, Window Loaded +- Click: All Elements, Just Links +- Form Submission +- Scroll Depth +- Timer +- Element Visibility + +**Custom triggers:** +- Custom Event (from dataLayer) +- Trigger Groups (multiple conditions) + +### Variables + +Variables capture dynamic values. + +**Built-in (enable as needed):** +- Click Text, Click URL, Click ID, Click Classes +- Page Path, Page URL, Page Hostname +- Referrer +- Form Element, Form ID + +**User-defined:** +- Data Layer variables +- JavaScript variables +- Lookup tables +- RegEx tables +- Constants + +--- + +## Naming Conventions + +### Recommended Format + +``` +[Type] - [Description] - [Detail] + +Tags: +GA4 - Event - Signup Completed +GA4 - Config - Base Configuration +FB - Pixel - Page View +HTML - LiveChat Widget + +Triggers: +Click - CTA Button +Submit - Contact Form +View - Pricing Page +Custom - signup_completed + +Variables: +DL - user_id +JS - Current Timestamp +LT - Campaign Source Map +``` + +--- + +## Data Layer Patterns + +### Basic Structure + +```javascript +// Initialize (in before GTM) +window.dataLayer = window.dataLayer || []; + +// Push event +dataLayer.push({ + 'event': 'event_name', + 'property1': 'value1', + 'property2': 'value2' +}); +``` + +### Page Load Data + +```javascript +// Set on page load (before GTM container) +window.dataLayer = window.dataLayer || []; +dataLayer.push({ + 'pageType': 'product', + 'contentGroup': 'products', + 'user': { + 'loggedIn': true, + 'userId': '12345', + 'userType': 'premium' + } +}); +``` + +### Form Submission + +```javascript +document.querySelector('#contact-form').addEventListener('submit', function() { + dataLayer.push({ + 'event': 'form_submitted', + 'formName': 'contact', + 'formLocation': 'footer' + }); +}); +``` + +### Button Click + +```javascript +document.querySelector('.cta-button').addEventListener('click', function() { + dataLayer.push({ + 'event': 'cta_clicked', + 'ctaText': this.innerText, + 'ctaLocation': 'hero' + }); +}); +``` + +### E-commerce Events + +```javascript +// Product view +dataLayer.push({ ecommerce: null }); // Clear previous +dataLayer.push({ + 'event': 'view_item', + 'ecommerce': { + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'item_category': 'Category', + 'quantity': 1 + }] + } +}); + +// Add to cart +dataLayer.push({ ecommerce: null }); +dataLayer.push({ + 'event': 'add_to_cart', + 'ecommerce': { + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'quantity': 1 + }] + } +}); + +// Purchase +dataLayer.push({ ecommerce: null }); +dataLayer.push({ + 'event': 'purchase', + 'ecommerce': { + 'transaction_id': 'T12345', + 'value': 99.99, + 'currency': 'USD', + 'tax': 5.00, + 'shipping': 10.00, + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'quantity': 1 + }] + } +}); +``` + +--- + +## Common Tag Configurations + +### GA4 Configuration Tag + +**Tag Type:** Google Analytics: GA4 Configuration + +**Settings:** +- Measurement ID: G-XXXXXXXX +- Send page view: Checked (for pageviews) +- User Properties: Add any user-level dimensions + +**Trigger:** All Pages + +### GA4 Event Tag + +**Tag Type:** Google Analytics: GA4 Event + +**Settings:** +- Configuration Tag: Select your config tag +- Event Name: {{DL - event_name}} or hardcode +- Event Parameters: Add parameters from dataLayer + +**Trigger:** Custom Event with event name match + +### Facebook Pixel - Base + +**Tag Type:** Custom HTML + +```html + +``` + +**Trigger:** All Pages + +### Facebook Pixel - Event + +**Tag Type:** Custom HTML + +```html + +``` + +**Trigger:** Custom Event - form_submitted + +--- + +## Preview and Debug + +### Preview Mode + +1. Click "Preview" in GTM +2. Enter site URL +3. GTM debug panel opens at bottom + +**What to check:** +- Tags fired on this event +- Tags not fired (and why) +- Variables and their values +- Data layer contents + +### Debug Tips + +**Tag not firing:** +- Check trigger conditions +- Verify data layer push +- Check tag sequencing + +**Wrong variable value:** +- Check data layer structure +- Verify variable path (nested objects) +- Check timing (data may not exist yet) + +**Multiple firings:** +- Check trigger uniqueness +- Look for duplicate tags +- Check tag firing options + +--- + +## Workspaces and Versioning + +### Workspaces + +Use workspaces for team collaboration: +- Default workspace for production +- Separate workspaces for large changes +- Merge when ready + +### Version Management + +**Best practices:** +- Name every version descriptively +- Add notes explaining changes +- Review changes before publish +- Keep production version noted + +**Version notes example:** +``` +v15: Added purchase conversion tracking +- New tag: GA4 - Event - Purchase +- New trigger: Custom Event - purchase +- New variables: DL - transaction_id, DL - value +- Tested: Chrome, Safari, Mobile +``` + +--- + +## Consent Management + +### Consent Mode Integration + +```javascript +// Default state (before consent) +gtag('consent', 'default', { + 'analytics_storage': 'denied', + 'ad_storage': 'denied' +}); + +// Update on consent +function grantConsent() { + gtag('consent', 'update', { + 'analytics_storage': 'granted', + 'ad_storage': 'granted' + }); +} +``` + +### GTM Consent Overview + +1. Enable Consent Overview in Admin +2. Configure consent for each tag +3. Tags respect consent state automatically + +--- + +## Advanced Patterns + +### Tag Sequencing + +**Setup tags to fire in order:** +Tag Configuration > Advanced Settings > Tag Sequencing + +**Use cases:** +- Config tag before event tags +- Pixel initialization before tracking +- Cleanup after conversion + +### Exception Handling + +**Trigger exceptions** - Prevent tag from firing: +- Exclude certain pages +- Exclude internal traffic +- Exclude during testing + +### Custom JavaScript Variables + +```javascript +// Get URL parameter +function() { + var params = new URLSearchParams(window.location.search); + return params.get('campaign') || '(not set)'; +} + +// Get cookie value +function() { + var match = document.cookie.match('(^|;) ?user_id=([^;]*)(;|$)'); + return match ? match[2] : null; +} + +// Get data from page +function() { + var el = document.querySelector('.product-price'); + return el ? parseFloat(el.textContent.replace('$', '')) : 0; +} +``` diff --git a/.agents/skills/community-marketing/SKILL.md b/.agents/skills/community-marketing/SKILL.md new file mode 100644 index 0000000..06246dc --- /dev/null +++ b/.agents/skills/community-marketing/SKILL.md @@ -0,0 +1,163 @@ +--- +name: community-marketing +description: "Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a community strategy, grow a Discord or Slack community, manage a forum or subreddit, build brand advocates, increase word-of-mouth, drive community-led growth, engage users post-signup, or turn customers into evangelists. Trigger phrases: \"build a community,\" \"community strategy,\" \"Discord community,\" \"Slack community,\" \"community-led growth,\" \"brand advocates,\" \"user community,\" \"forum strategy,\" \"community engagement,\" \"grow our community,\" \"ambassador program,\" \"community flywheel.\"" +metadata: + version: 2.0.0 +--- + +# Community Marketing + +You are an expert community builder and community-led growth strategist. Your goal is to help the user design, launch, and grow a community that creates genuine value for members while driving measurable business outcomes. + +## Before You Start + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered. + +Understand the situation (ask if not provided): + +1. **What is the product or brand?** — What problem does it solve, who uses it +2. **What community platform(s) are in play?** — Discord, Slack, Circle, Reddit, Facebook Groups, forum, etc. +3. **What stage is the community at?** — Pre-launch, 0–100 members, 100–1k, scaling, or established +4. **What is the primary community goal?** — Retention, activation, word-of-mouth, support deflection, product feedback, revenue +5. **Who is the ideal community member?** — Role, motivation, what they hope to get from joining + +Work with whatever context is available. If key details are missing, make reasonable assumptions and flag them. + +--- + +## Community Strategy Principles + +### Build around a shared identity, not just a product + +The strongest communities are built around who members *are* or aspire to be — not around your product. Members join because of the product but stay because of the people and identity. + +Examples: +- Indie hackers (identity: bootstrapped founders) +- r/homelab (identity: tinkerers who self-host) +- Figma community (identity: designers who care about craft) + +Always define: **What identity does this community reinforce for its members?** + +### Value must flow to members first + +Every community touchpoint should answer: *What does the member get from this?* + +- Exclusive knowledge or early access +- Peer connections they can't get elsewhere +- Recognition and status within a group they respect +- Direct influence on the product roadmap +- Career opportunities, visibility, or credibility + +### The Community Flywheel + +Healthy communities compound over time: + +``` +Members join → get value → engage → create content/help others + ↑ ↓ + ←←←←← new members discover the community ←← +``` + +Design for the flywheel from day one. Every decision should ask: *Does this accelerate the loop or slow it down?* + +--- + +## Playbooks by Goal + +### Launching a Community from Zero + +1. **Recruit 20–50 founding members manually** — DM your most engaged users, beta testers, or fans. Don't open publicly until there is baseline activity. +2. **Set the culture explicitly** — Write community guidelines that describe the *vibe*, not just the rules. What does great participation look like here? +3. **Seed conversations before launch** — Pre-populate channels with 5–10 posts that model the behavior you want. Questions, wins, resources. +4. **Do things that don't scale at first** — Reply to every post. Welcome every new member by name. Host a weekly call. You are buying social proof. +5. **Define your core loop** — What action do you want members to take weekly? Make it easy and reward it publicly. + +### Growing an Existing Community + +1. **Audit where members drop off** — Are people joining but not posting? Posting once and disappearing? Identify the leaky stage. +2. **Create a new member journey** — A pinned welcome post, a #introduce-yourself channel, a DM or email from a community manager, a clear "start here" path. +3. **Surface member wins publicly** — Showcase user projects, testimonials, milestones. This reinforces identity and signals that participation has rewards. +4. **Run recurring community rituals** — Weekly threads (e.g., "What are you working on?"), monthly AMAs, seasonal challenges. Rituals create habit. +5. **Identify and invest in power users** — 1% of members generate 90% of value. Give them recognition, early access, moderator roles, or direct product input. + +### Building a Brand Ambassador / Advocate Program + +1. **Identify candidates** — Look for people who already recommend you unprompted. Check reviews, social mentions, community posts. +2. **Make the ask personal** — Don't send a generic form. Reach out 1:1 and explain why you chose them specifically. +3. **Offer meaningful benefits** — Exclusive access, swag, revenue share, or public recognition — not just "early access to features." +4. **Give them tools and content** — Referral links, shareable assets, key talking points, a private Slack channel. +5. **Measure and iterate** — Track referral traffic, signups, and engagement driven by advocates. Double down on what works. + +### Community-Led Support (Deflection + Retention) + +1. **Create a searchable knowledge base** from top community questions +2. **Recognize members who help others** — "Community Expert" badges, leaderboards, shoutouts +3. **Close the loop with product** — When community feedback drives a change, announce it publicly and credit the members who raised it +4. **Monitor sentiment weekly** — Look for patterns in complaints or confusion before they become churn signals + +--- + +## Platform Selection Guide + +| Platform | Best For | Watch Out For | +|----------|----------|---------------| +| Discord | Developer, gaming, creator communities; real-time chat | High noise, hard to search, onboarding friction | +| Slack | B2B / professional communities; familiar to SaaS buyers | Free tier limits history; feels like work | +| Circle | Creator or course-based communities; clean UX | Less organic discovery; requires driving traffic | +| Reddit | High-volume public communities; SEO benefit | You don't own it; moderation is hard | +| Facebook Groups | Consumer brands; older demographics | Declining organic reach; algorithm dependent | +| Forum (Discourse) | Long-form technical communities; SEO-rich | Slower velocity; higher effort to post | + +--- + +## Community Health Metrics + +Track these signals weekly: + +- **DAU/MAU ratio** — Stickiness. Above 20% is healthy for most communities. +- **New member post rate** — % of new members who post within 7 days of joining +- **Thread reply rate** — % of posts that receive at least one reply +- **Churn / lurker ratio** — Members who joined but haven't posted in 30+ days +- **Content created by non-staff** — % of posts not written by the company team + +**Warning signs:** +- Most posts are from the company team, not members +- Questions go unanswered for >24 hours +- The same 5 people account for 80%+ of engagement +- New members stop posting after their intro message + +--- + +## Output Formats + +Depending on what the user needs, produce one of: + +- **Community Strategy Doc** — Platform choice, identity definition, core loop, 90-day launch plan +- **Channel Architecture** — Recommended channels/categories with purpose and posting guidelines for each +- **New Member Journey** — Welcome sequence: pinned post, DM template, first-week prompts +- **Community Ritual Calendar** — Weekly/monthly recurring events and threads +- **Ambassador Program Brief** — Criteria, benefits, outreach template, tracking plan +- **Health Audit Report** — Current metrics, diagnosis, top 3 priorities to fix + +Always be specific. Generic advice ("be consistent," "provide value") is not useful. Give the user something they can act on today. + +--- + +## Task-Specific Questions + +1. What platform are you building on (or considering)? +2. What stage is the community at? (Pre-launch, early, growing, established) +3. What's the primary business goal? (Retention, activation, word-of-mouth, support deflection) +4. Who is the ideal community member and what motivates them? +5. Do you have existing users or customers to seed from? +6. How much time can you dedicate to community management weekly? + +--- + +## Related Skills + +- **referrals**: For structured referral and ambassador incentive programs +- **churn-prevention**: For retention strategies that complement community engagement +- **social**: For content creation across social platforms +- **customer-research**: For understanding your community members' needs and language diff --git a/.agents/skills/community-marketing/evals/evals.json b/.agents/skills/community-marketing/evals/evals.json new file mode 100644 index 0000000..543a857 --- /dev/null +++ b/.agents/skills/community-marketing/evals/evals.json @@ -0,0 +1,89 @@ +{ + "skill_name": "community-marketing", + "evals": [ + { + "id": 1, + "prompt": "We're a B2B SaaS that wants to start a community. Should we use Discord or Slack?", + "expected_output": "Should check for product-marketing.md first. Should apply the platform selection guide. Should recommend Slack for B2B SaaS communities — familiar to SaaS buyers, professional context — but flag the trade-offs: free tier history limits, can feel like work. Should explain Discord is stronger for developer, gaming, or creator communities with real-time chat needs. Should consider the audience identity: if buyers are professionals during workday, Slack fits the moment; if they're hobbyists or developers, Discord may work. Should ask the user about their ideal community member and primary goal before fully committing. Should also note Circle as an alternative if they want clean UX without platform baggage.", + "assertions": [ + "Checks for product-marketing.md", + "Recommends Slack for B2B context", + "Notes Slack free tier limitations", + "Compares Discord use case", + "Mentions Circle or other alternatives", + "Asks about audience identity or goal" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We just launched our community 3 weeks ago. We have 40 members but only 2-3 people post regularly. Everyone else just lurks. What do we do?", + "expected_output": "Should diagnose this as the 'launching from zero' stage and apply that playbook. Should audit where members drop off and identify the 'leaky stage' — in this case, new member activation. Should recommend specific tactics: do things that don't scale (DM every new member personally, welcome them by name, host a weekly call), create a new member journey (pinned welcome post, #introduce-yourself channel, 'start here' path), seed conversations (post 5-10 messages modeling the behavior you want), define the core loop (what action should members take weekly), surface member wins publicly. Should warn that 1% of members typically generate 90% of value at this stage — identifying and investing in those few power users matters more than chasing the lurkers. Should reference the warning signs: most posts from company team is a red flag.", + "assertions": [ + "Diagnoses as launch-stage / new member activation problem", + "Applies 'launching from zero' playbook", + "Recommends DMs to new members", + "Recommends new member journey design", + "Recommends seeding conversations", + "Mentions the 1% / 90% power user dynamic", + "Mentions warning sign of company-dominated posts" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Help me write community guidelines for our Discord. We're building a community for indie game developers.", + "expected_output": "Should apply 'build around a shared identity' principle — the community is for indie game devs, the identity is being a scrappy maker shipping games. Should write guidelines that describe the *vibe*, not just the rules. Should answer: what does great participation look like here? Should include both rules (no spam, no harassment, no piracy) AND aspirational guidance (share works-in-progress freely, give constructive feedback, lift other devs up). Should reinforce the identity throughout. Should keep the tone matching the audience — indie game devs respond to plainspoken, no-corporate-speak. May suggest channels structure that reinforces the identity (e.g., #devlog, #playtest-requests, #publishing-tips).", + "assertions": [ + "Reinforces shared identity (indie game devs)", + "Describes vibe, not just rules", + "Includes both rules and aspirational guidance", + "Tone matches audience (indie maker)", + "May suggest channel structure" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Design an ambassador program for our community. We have about 5,000 members and a few that always help others. Want to give them more recognition.", + "expected_output": "Should apply the 'Building a Brand Ambassador / Advocate Program' playbook. Should recommend: identify candidates by looking at who already recommends and helps unprompted (check posts, replies, reviews, social mentions), make the ask personal 1:1 and explain why you chose them specifically, offer meaningful benefits beyond 'early access' (exclusive access, swag, revenue share, public recognition, direct product input), give them tools (referral links, shareable assets, talking points, private Slack channel), measure and iterate (track referral traffic, signups, engagement driven by advocates). Should cross-reference referrals skill for structured incentive programs. Should warn against generic forms and impersonal asks.", + "assertions": [ + "Identifies candidates from existing helpful behavior", + "Recommends personal 1:1 ask", + "Suggests meaningful benefits beyond early access", + "Mentions tools/assets to enable advocates", + "Includes measurement plan", + "May cross-reference referrals skill" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Our community feels dead. Members joined 6 months ago but most haven't posted in months. How do I tell if it's salvageable?", + "expected_output": "Should run the Health Audit Report output format. Should reference the community health metrics: DAU/MAU ratio (above 20% is healthy), new member post rate (% who post within 7 days), thread reply rate, churn / lurker ratio, % of content created by non-staff. Should list the warning signs: most posts from company team, questions go unanswered >24 hours, same 5 people account for 80%+ of engagement, new members stop posting after intro. Should recommend audit steps to diagnose: pull the metrics, look at posting patterns, talk to disengaged members. Should give honest assessment criteria — sometimes the answer is to relaunch with a new identity, sometimes a few rituals can revive it. Should propose the top 3 priorities to fix based on common patterns.", + "assertions": [ + "Uses Health Audit Report format", + "References specific health metrics with benchmarks", + "Lists warning signs", + "Recommends concrete audit steps", + "Considers that some communities can't be saved", + "Proposes top 3 priorities" + ], + "files": [] + }, + { + "id": 6, + "prompt": "We use our community mainly for support. How do we reduce ticket volume without making customers feel ignored?", + "expected_output": "Should apply the 'Community-Led Support (Deflection + Retention)' playbook. Should recommend: create a searchable knowledge base from top community questions, recognize members who help others (Community Expert badges, leaderboards, shoutouts — this incentivizes peer support), close the loop with product (when community feedback drives a change, announce it publicly and credit members), monitor sentiment weekly to catch churn signals early. Should note that community-led support works best when peer answers are recognized as valuable, not as a way to dodge company responsibility. Should warn against the warning sign of questions going unanswered >24 hours.", + "assertions": [ + "Applies community-led support playbook", + "Recommends searchable knowledge base from community Q&A", + "Recommends recognizing peer helpers", + "Mentions closing the loop with product", + "Warns about unanswered questions threshold", + "Notes peer support must feel valued, not used" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/competitor-profiling/SKILL.md b/.agents/skills/competitor-profiling/SKILL.md new file mode 100644 index 0000000..9b0ca70 --- /dev/null +++ b/.agents/skills/competitor-profiling/SKILL.md @@ -0,0 +1,412 @@ +--- +name: competitor-profiling +description: "When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,' 'competitor analysis,' 'profile this competitor,' 'analyze competitor,' 'competitive intelligence,' 'competitor deep dive,' 'who are my competitors,' 'competitor landscape,' 'competitor dossier,' 'competitive audit,' or 'research these competitors.' Input is a list of competitor URLs. Output is structured competitor profile markdown files. For creating comparison/alternative pages from profiles, see competitors. For sales-specific battle cards, see sales-enablement." +metadata: + version: 2.0.0 +--- + +# Competitor Profiling + +You are an expert competitive intelligence analyst. Your goal is to take a list of competitor URLs and produce comprehensive, structured competitor profile documents by combining live site scraping with SEO and market data. + +## Initial Assessment + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered. + +Before profiling, confirm: + +1. **Competitor URLs** — the list of competitor website URLs to profile +2. **Your product** — what you do (if not in product marketing context) +3. **Depth level** — quick scan (key facts only) or deep profile (full research) +4. **Focus areas** — any specific dimensions to prioritize (e.g., pricing, positioning, SEO strength, content strategy) + +If the user provides URLs and context is available, proceed without asking. + +--- + +## Core Principles + +### 1. Facts Over Opinions +Every claim in a profile should be traceable to a source — scraped page content, review data, or SEO metrics. Label inferences clearly. + +### 2. Structured and Comparable +All profiles follow the same template so they can be compared side by side. Consistency matters more than completeness on any single profile. + +### 3. Current Data +Profiles are snapshots. Always include the date generated. Flag anything that looks stale (e.g., "pricing page last updated 2023"). + +### 4. Honest Assessment +Don't exaggerate competitor weaknesses or downplay their strengths. Accurate profiles are useful profiles. + +--- + +## Saving Raw Data + +Before synthesizing the profile, persist all raw scrape, SEO, and review data to disk so it can be re-read, audited, or re-used later without re-running expensive API calls. + +**Directory layout** (relative to project root): + +``` +competitor-profiles/ +├── raw/ +│ └── / +│ └── / +│ ├── scrapes/ # one .md file per scraped page (homepage.md, pricing.md, ...) +│ ├── seo/ # one .json file per DataForSEO call (backlinks-summary.json, ranked-keywords.json, ...) +│ └── reviews/ # one .md or .json file per review source (g2.md, capterra.md, ...) +├── .md # final synthesized profile +└── _summary.md # cross-competitor summary +``` + +Rules: + +- `` is lowercase, hyphenated (e.g. `responsehub`, `safe-base`) +- `` is the date the data was pulled — supports re-running and diffing snapshots over time +- Save each Firecrawl scrape as raw markdown to `scrapes/.md` +- Save each DataForSEO response as raw JSON to `seo/.json` +- Save each review source to `reviews/.md` (cleaned text) or `.json` (raw) +- Always create the date folder fresh on a new run; never overwrite a prior date's data + +The synthesized profile (`.md`) should reference the raw data folder it was built from in its `## Raw Data Sources` section. + +--- + +## Research Process + +### Phase 1: Site Scraping (Firecrawl) + +For each competitor URL, scrape key pages to extract positioning, features, pricing, and messaging. + +#### Step 1: Map the site + +Use **Firecrawl Map** to discover the competitor's site structure and identify key pages: + +``` +firecrawl_map → competitor URL +``` + +From the map, identify and prioritize these page types: +- Homepage +- Pricing page +- Features / product pages +- About / company page +- Blog (top-level, for content strategy signals) +- Customers / case studies page +- Integrations page +- Changelog / what's new (if exists) + +#### Step 2: Scrape key pages + +Use **Firecrawl Scrape** on each identified page: + +``` +firecrawl_scrape → each key page URL +``` + +Save each result to `competitor-profiles/raw///scrapes/.md` before extracting fields. + +Extract from each page: + +| Page | What to Extract | +|------|----------------| +| **Homepage** | Headline, subheadline, value proposition, primary CTA, social proof claims, target audience signals | +| **Pricing** | Tiers, prices, feature breakdown per tier, billing options, free tier/trial details, enterprise pricing signals | +| **Features** | Feature categories, key capabilities, how they describe each feature, screenshots/demo signals | +| **About** | Founding story, team size, funding, mission statement, headquarters | +| **Customers** | Named customers, logos, industries served, case study themes | +| **Integrations** | Integration count, key integrations, categories | +| **Changelog** | Release velocity, recent focus areas, product direction signals | + +#### Step 3: Scrape competitor reviews (optional but high-value) + +Use **Firecrawl Scrape** or **Firecrawl Search** to find: +- G2 reviews page for the competitor +- Capterra reviews page +- Product Hunt launch page +- TrustRadius profile + +Save each scraped review page to `competitor-profiles/raw///reviews/.md`. Then extract: overall rating, review count, common praise themes, common complaint themes, and 3-5 representative quotes. + +--- + +### Phase 2: SEO & Market Data (DataForSEO) + +Use DataForSEO MCP tools to gather quantitative competitive intelligence. Save each raw response as JSON to `competitor-profiles/raw///seo/.json` before parsing it into the profile. For the full list of MCP tools used in this skill (Firecrawl + DataForSEO) and example calls, see [references/tool-reference.md](references/tool-reference.md). + +#### Domain Authority & Backlinks + +Use **backlinks_summary** to get: +- Domain rank / authority score +- Total backlinks +- Referring domains count +- Spam score + +Use **backlinks_referring_domains** for: +- Top referring domains (quality signals) +- Link acquisition patterns + +#### Keyword & Traffic Intelligence + +Use **dataforseo_labs_google_ranked_keywords** to get: +- Total organic keywords ranking +- Keywords in top 3, top 10, top 100 +- Estimated organic traffic + +Use **dataforseo_labs_google_domain_rank_overview** for: +- Domain-level organic metrics +- Estimated traffic value +- Top keywords by traffic + +Use **dataforseo_labs_google_keywords_for_site** to discover: +- What keywords they target +- Content gaps vs. your site + +#### Competitive Positioning Data + +Use **dataforseo_labs_google_competitors_domain** to find: +- Their closest organic competitors (may reveal competitors you haven't considered) +- Market overlap data + +Use **dataforseo_labs_google_relevant_pages** to find: +- Their highest-traffic pages +- Content that drives the most organic value + +--- + +### Phase 3: Synthesis + +Combine scraped content with SEO data to build the profile. Cross-reference claims (e.g., if they claim "10,000 customers" on site, check if their traffic/backlink profile supports that scale). + +--- + +## Output Format + +### Profile Document Structure + +Generate one markdown file per competitor, saved to a `competitor-profiles/` directory in the project root. + +**Filename**: `competitor-profiles/[competitor-name].md` + +**For the full profile and summary templates**: See [references/templates.md](references/templates.md) + +Each profile follows this structure: + +```markdown +# [Competitor Name] — Competitor Profile + +**URL**: [website] +**Generated**: [date] +**Depth**: [quick scan / deep profile] + +--- + +## At a Glance + +| Metric | Value | +|--------|-------| +| Tagline | [from homepage] | +| Founded | [year] | +| Headquarters | [location] | +| Team size | [estimate] | +| Funding | [if known] | +| Domain rank | [from DataForSEO] | +| Est. organic traffic | [monthly] | +| Referring domains | [count] | +| Organic keywords | [count] | + +--- + +## Positioning & Messaging + +**Primary value proposition**: [headline + subheadline from homepage] + +**Target audience**: [who they're speaking to, based on copy analysis] + +**Positioning angle**: [how they position — e.g., "simplicity-first," "enterprise-grade," "all-in-one"] + +**Key messaging themes**: +- [theme 1 — with source page] +- [theme 2] +- [theme 3] + +--- + +## Product & Features + +### Core capabilities +- [capability 1] — [brief description from their site] +- [capability 2] +- ... + +### Notable differentiators +- [what they emphasize as unique] + +### Integrations +- [count] integrations +- Key: [list top 5-10] + +### Product direction signals +- [based on changelog / recent feature releases] + +--- + +## Pricing + +| Tier | Price | Key Inclusions | +|------|-------|---------------| +| [Free/Starter] | [price] | [what's included] | +| [Pro/Growth] | [price] | [what's included] | +| [Enterprise] | [price] | [what's included] | + +**Billing**: [monthly/annual, discount for annual] +**Free trial**: [yes/no, duration] +**Notable**: [any pricing quirks — per-seat, usage-based, hidden costs] + +--- + +## Customers & Social Proof + +**Named customers**: [list notable logos] +**Industries**: [primary industries served] +**Case study themes**: [what outcomes they highlight] +**Review ratings**: +- G2: [rating] ([count] reviews) +- Capterra: [rating] ([count] reviews) + +--- + +## SEO & Content Strategy + +**Organic strength**: +- Estimated monthly organic traffic: [number] +- Organic keywords (top 10): [count] +- Organic traffic value: $[estimated] + +**Top organic pages** (by estimated traffic): +1. [page URL] — [keyword] — [est. traffic] +2. [page URL] — [keyword] — [est. traffic] +3. [page URL] — [keyword] — [est. traffic] + +**Content strategy signals**: +- Blog post frequency: [estimate] +- Primary content types: [guides, comparisons, templates, etc.] +- Content focus areas: [topics they invest in] + +**Backlink profile**: +- Referring domains: [count] +- Top referring sites: [list 5] +- Link acquisition pattern: [growing/stable/declining] + +--- + +## Strengths & Weaknesses + +### Strengths +- [strength 1 — with evidence source] +- [strength 2] +- [strength 3] + +### Weaknesses +- [weakness 1 — with evidence source] +- [weakness 2] +- [weakness 3] + +--- + +## Competitive Implications for [Your Product] + +**Where they're strong vs. us**: [areas where this competitor has an advantage] + +**Where we're strong vs. them**: [areas where you have an advantage] + +**Opportunities**: [gaps in their offering or positioning we can exploit] + +**Threats**: [areas where they're improving or gaining ground] + +--- + +## Raw Data Sources + +- Homepage scraped: [date] +- Pricing page scraped: [date] +- SEO data pulled: [date] +- Review data pulled: [date, sources] +``` + +--- + +### Summary Document + +After profiling all competitors, generate a `competitor-profiles/_summary.md` that includes: + +1. **Competitor landscape overview** — one paragraph summarizing the competitive field +2. **Comparison table** — key metrics side by side for all profiled competitors +3. **Positioning map** — where each competitor sits (e.g., simple↔complex, cheap↔premium) +4. **Key takeaways** — 3-5 strategic observations from the research +5. **Gaps and opportunities** — where the market is underserved + +--- + +## Quick Scan vs. Deep Profile + +### Quick Scan (faster, lower cost) +- Scrape: homepage + pricing page only +- SEO: domain rank overview + ranked keywords summary +- Skip: reviews, technology stack, backlink details +- Output: abbreviated profile (At a Glance + Positioning + Pricing + SEO summary) + +### Deep Profile (comprehensive) +- Scrape: all key pages + review sites +- SEO: full backlink analysis + keyword intelligence + competitor discovery +- Include: technology stack, content strategy analysis, review mining +- Output: full profile template + +Default to **quick scan** unless the user requests deep profiling or specifies a small number of competitors (3 or fewer). + +--- + +## Handling Multiple Competitors + +When profiling more than one competitor: + +1. **Parallelize scraping** — scrape all competitors' homepages simultaneously, then pricing pages, etc. +2. **Use consistent metrics** — pull the same DataForSEO metrics for every competitor so profiles are comparable +3. **Build the summary last** — after all individual profiles are complete +4. **Prioritize by relevance** — if the user has 10+ competitors, suggest profiling the top 5 first based on domain overlap or market similarity + +--- + +## Updating Profiles + +Profiles are snapshots. When updating: + +- Check pricing pages first (most volatile) +- Re-pull SEO metrics (traffic and rankings shift monthly) +- Scan changelog for product changes +- Update the "Generated" date +- Note what changed since last profile in a `## Change Log` section at the bottom + +--- + +## Task-Specific Questions + +Only ask if not answered by context or input: + +1. What competitor URLs should I profile? +2. Quick scan or deep profile? +3. Any specific dimensions to focus on (pricing, SEO, positioning)? +4. Should I compare findings against your product? + +--- + +## Related Skills + +- **competitors**: For creating comparison/alternative pages from these profiles +- **prospecting**: For broader list-building qualification (this skill does deep research on specific accounts; prospecting builds the initial list) +- **customer-research**: For mining reviews and community sentiment in depth +- **content-strategy**: For using competitor content gaps to plan your own content +- **seo-audit**: For auditing your own site relative to competitors +- **sales-enablement**: For turning profiles into battle cards and sales collateral +- **ads**: For analyzing competitor ad strategies +- **pricing**: For deeper pricing analysis informed by competitor profiles diff --git a/.agents/skills/competitor-profiling/evals/evals.json b/.agents/skills/competitor-profiling/evals/evals.json new file mode 100644 index 0000000..630a2ea --- /dev/null +++ b/.agents/skills/competitor-profiling/evals/evals.json @@ -0,0 +1,85 @@ +{ + "skill_name": "competitor-profiling", + "evals": [ + { + "id": 1, + "prompt": "Profile these three competitors for us: https://competitor1.com, https://competitor2.com, https://competitor3.com. We need this for sales enablement and to find positioning gaps.", + "expected_output": "Should check for product-marketing.md first. Should run the full research process: Phase 1 site scraping (Firecrawl map + scrape of homepage, pricing, features, about, customers, integrations, changelog), Phase 2 SEO and market data (DataForSEO for backlinks, ranked keywords, traffic, competitors), Phase 3 synthesis. Should save raw data to competitor-profiles/raw/// with scrapes/, seo/, reviews/ subfolders before synthesizing. Should produce one markdown file per competitor following the profile template (At a Glance, Positioning & Messaging, Product & Features, Pricing, Customers & Social Proof, SEO & Content Strategy, Strengths & Weaknesses, Competitive Implications). Should produce a _summary.md after individual profiles with comparison table, positioning map, key takeaways, gaps and opportunities. Should parallelize scraping when handling multiple competitors and use consistent metrics across all three for comparability.", + "assertions": [ + "Checks for product-marketing.md", + "Runs all three phases (scraping, SEO data, synthesis)", + "Saves raw data to competitor-profiles/raw/ with date subfolder", + "Produces individual profile per competitor", + "Produces _summary.md after individual profiles", + "Uses consistent metrics across competitors", + "Parallelizes scraping when possible" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We have 12 competitors. Profile all of them.", + "expected_output": "Should recommend prioritizing rather than profiling all 12. Should suggest profiling the top 5 first based on domain overlap or market similarity (handling-multiple-competitors guidance). Should default to quick scan mode for a list this size, not deep profile. Should explain the difference: quick scan covers homepage + pricing + domain rank overview + ranked keywords summary, deep profile adds reviews, technology stack, backlink details. Should offer deep profile only if user requests or for 3 or fewer competitors. Should ask which competitors are highest priority if user wants to narrow further.", + "assertions": [ + "Recommends prioritization over profiling all 12", + "Suggests top 5 based on relevance", + "Defaults to quick scan for large list", + "Explains quick scan vs deep profile difference", + "Asks user to prioritize" + ], + "files": [] + }, + { + "id": 3, + "prompt": "I have an existing profile of Notion from 4 months ago. Should I update it or start fresh?", + "expected_output": "Should explain profile updating process from the Updating Profiles section. Should recommend updating rather than starting fresh — preserves history and enables diffing. Should explain what to re-pull: pricing page first (most volatile), SEO metrics (traffic and rankings shift monthly), changelog scan for product changes. Should update the Generated date. Should add a Change Log section at the bottom noting what changed since last profile. Should also save the new raw data to a new folder rather than overwriting prior data — supports diffing over time.", + "assertions": [ + "Recommends updating over starting fresh", + "Lists what to re-pull (pricing, SEO, changelog)", + "Mentions adding Change Log section", + "Says to save raw data to new date folder", + "Says never overwrite prior date's data" + ], + "files": [] + }, + { + "id": 4, + "prompt": "What pages should I scrape for a competitor profile?", + "expected_output": "Should list the prioritized page types from Phase 1: homepage, pricing page, features/product pages, about/company page, blog (top-level for content strategy signals), customers/case studies page, integrations page, changelog/what's new (if exists). Should explain what to extract from each: homepage (headline, value prop, primary CTA, social proof, target audience signals), pricing (tiers, prices, feature breakdown, billing options, free tier/trial details), features (categories, key capabilities, how they describe each feature), about (founding story, team size, funding, mission, HQ), customers (named customers, logos, industries, case study themes), integrations (count, key integrations, categories), changelog (release velocity, recent focus areas, product direction signals). Should mention optional review scraping (G2, Capterra, Product Hunt, TrustRadius).", + "assertions": [ + "Lists all key page types in priority order", + "Specifies what to extract from each page type", + "Includes changelog as product direction signal", + "Mentions optional review scraping", + "References Firecrawl Map then Scrape workflow" + ], + "files": [] + }, + { + "id": 5, + "prompt": "I want a profile but I don't care about SEO data — just pricing, positioning, and customer logos. Can you skip the DataForSEO calls?", + "expected_output": "Should accept the scoped request and skip Phase 2. Should run Phase 1 (Firecrawl scraping of homepage, pricing, customers pages) and Phase 3 synthesis only. Should explain that without SEO data, the profile won't include Domain Rank, organic traffic estimates, ranked keywords, referring domains, or top organic pages — but the positioning, pricing, and customer sections will be complete. Should produce an abbreviated profile flagging the SEO section as 'not collected per user request' rather than leaving placeholders. Should still save raw scrapes to disk for reuse.", + "assertions": [ + "Skips Phase 2 (DataForSEO) as requested", + "Runs Phase 1 and Phase 3", + "Explains what's missing without SEO data", + "Flags SEO section as skipped, not blank", + "Still saves raw data" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Should I trust the customer logo wall on the competitor's homepage as evidence of who their customers are?", + "expected_output": "Should apply the 'Facts Over Opinions' and 'Honest Assessment' principles. Should explain that customer logos are a positioning claim, not necessarily an accurate customer breakdown — companies often show their best-known logos regardless of share of revenue. Should recommend cross-referencing: check case studies for actual usage details, search for press releases naming customers, look at customer reviews on G2/Capterra/TrustRadius for company name signals, check their LinkedIn for posts about customers. Should note: if they claim '10,000 customers' but have weak traffic/backlink profile, the claim should be flagged in the profile. Should distinguish between named customers (verifiable claims) and 'industries served' (positioning statement). Always include the date the data was pulled.", + "assertions": [ + "Treats logos as positioning claim, not customer breakdown", + "Recommends cross-referencing case studies and reviews", + "Mentions checking traffic/backlink profile against claim scale", + "Distinguishes verifiable named customers from claims", + "Notes including date pulled" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/competitor-profiling/references/templates.md b/.agents/skills/competitor-profiling/references/templates.md new file mode 100644 index 0000000..0a5ad33 --- /dev/null +++ b/.agents/skills/competitor-profiling/references/templates.md @@ -0,0 +1,167 @@ +# Profile Templates + +Ready-to-use templates for competitor profile sections and the summary document. + +## Contents +- Quick Scan Template +- Summary Comparison Table +- Positioning Map +- Competitive SWOT +- Profile Update Changelog + +--- + +## Quick Scan Template + +Abbreviated profile for when speed matters more than depth. + +```markdown +# [Competitor Name] — Quick Profile + +**URL**: [website] +**Generated**: [date] + +## At a Glance + +| Metric | Value | +|--------|-------| +| Tagline | [from homepage] | +| Target audience | [inferred from copy] | +| Pricing starts at | [lowest paid tier] | +| Free tier/trial | [yes/no + details] | +| Domain rank | [from DataForSEO] | +| Est. organic traffic | [monthly] | +| Organic keywords (top 10) | [count] | +| Referring domains | [count] | + +## Positioning + +**Headline**: "[exact homepage headline]" +**Subheadline**: "[exact subheadline]" +**Positioning angle**: [1-2 sentence summary of how they position] + +## Pricing Summary + +| Tier | Price | Notable Inclusions | +|------|-------|-------------------| +| [tier] | [price] | [key items] | +| [tier] | [price] | [key items] | + +## Key Takeaway + +[2-3 sentences: what makes this competitor notable, where they're strong, where they're weak] +``` + +--- + +## Summary Comparison Table + +Use after profiling all competitors to create a side-by-side view. + +```markdown +# Competitive Landscape Summary + +**Generated**: [date] +**Your product**: [name] +**Competitors profiled**: [count] + +## Side-by-Side Comparison + +| Dimension | [Your Product] | [Competitor 1] | [Competitor 2] | [Competitor 3] | +|-----------|---------------|----------------|----------------|----------------| +| **Tagline** | [yours] | [theirs] | [theirs] | [theirs] | +| **Target audience** | [yours] | [theirs] | [theirs] | [theirs] | +| **Positioning** | [angle] | [angle] | [angle] | [angle] | +| **Starting price** | $[X]/mo | $[X]/mo | $[X]/mo | $[X]/mo | +| **Free tier** | [yes/no] | [yes/no] | [yes/no] | [yes/no] | +| **Domain rank** | [score] | [score] | [score] | [score] | +| **Est. organic traffic** | [number] | [number] | [number] | [number] | +| **Referring domains** | [count] | [count] | [count] | [count] | +| **G2 rating** | [score] | [score] | [score] | [score] | +| **Key strength** | [one-liner] | [one-liner] | [one-liner] | [one-liner] | +| **Key weakness** | [one-liner] | [one-liner] | [one-liner] | [one-liner] | +``` + +--- + +## Positioning Map + +Visual representation of where competitors sit along two key dimensions. Choose the two axes most relevant to your market. + +### Common Axis Pairs + +| Market Type | X-Axis | Y-Axis | +|-------------|--------|--------| +| SaaS tools | Simple → Complex | Cheap → Expensive | +| Developer tools | Low-code → Code-first | Individual → Team | +| B2B platforms | SMB-focused → Enterprise-focused | Point solution → Platform | +| Content tools | Template-driven → Custom | Self-serve → Managed | + +### Format + +```markdown +## Positioning Map + +**Axes**: [X-axis label] vs. [Y-axis label] + + [Y-axis high label] + │ + │ + [Competitor A] │ [Competitor B] + │ + ───────────────────────┼─────────────────────── + [X-axis low] │ [X-axis high] + │ + [Your Product] │ [Competitor C] + │ + [Y-axis low label] + +### Interpretation +- [1-2 sentences about what the map reveals] +- [where the whitespace / opportunity is] +``` + +--- + +## Competitive SWOT + +Per-competitor SWOT relative to your product. + +```markdown +## SWOT: [Competitor] vs. [Your Product] + +### Strengths (theirs vs. ours) +- [Where they genuinely outperform us — be honest] + +### Weaknesses (theirs vs. ours) +- [Where they fall short compared to us — with evidence] + +### Opportunities (for us) +- [Gaps in their offering we can exploit] +- [Segments they're ignoring] +- [Messaging angles they're missing] + +### Threats (from them) +- [Areas where they're improving fast] +- [Features they're building that overlap with us] +- [Market moves that could shift perception] +``` + +--- + +## Profile Update Changelog + +Append to the bottom of any profile when updating it. + +```markdown +--- + +## Change Log + +| Date | What Changed | Source | +|------|-------------|--------| +| [date] | Pricing increased from $X to $Y | Pricing page re-scrape | +| [date] | Launched [feature] | Changelog scrape | +| [date] | Domain rank changed from X to Y | DataForSEO re-pull | +| [date] | Added [integration] | Integrations page re-scrape | +``` diff --git a/.agents/skills/competitor-profiling/references/tool-reference.md b/.agents/skills/competitor-profiling/references/tool-reference.md new file mode 100644 index 0000000..ef3dd36 --- /dev/null +++ b/.agents/skills/competitor-profiling/references/tool-reference.md @@ -0,0 +1,179 @@ +# MCP Tool Reference for Competitor Profiling + +Quick reference for the Firecrawl and DataForSEO MCP tools used in competitor profiling. + +## Contents +- Firecrawl Tools (site scraping) +- DataForSEO Tools (SEO & market data) +- Recommended Execution Order +- Error Handling + +--- + +## Firecrawl Tools + +### firecrawl_map +**Purpose**: Discover all URLs on a competitor's site to identify key pages. +**When to use**: First step for every competitor — before scraping individual pages. +**Key output**: List of URLs with their page types/paths. +**Tip**: Look for paths containing `/pricing`, `/features`, `/about`, `/customers`, `/integrations`, `/blog`, `/changelog`. + +### firecrawl_scrape +**Purpose**: Extract content from a single page as clean markdown. +**When to use**: After mapping, scrape each key page individually. +**Key output**: Page content in markdown format — headlines, body text, structured data. +**Tip**: Scrape homepage first — it reveals positioning, audience, and social proof in one shot. + +### firecrawl_search +**Purpose**: Search the web for specific content about a competitor. +**When to use**: Finding review pages, press coverage, or competitor mentions not on their own site. +**Example queries**: +- `"[Competitor Name]" site:g2.com` +- `"[Competitor Name]" review` +- `"[Competitor Name]" funding OR raised` + +### firecrawl_crawl +**Purpose**: Crawl multiple pages from a site in one operation. +**When to use**: Deep profiles where you want to analyze many pages (e.g., all feature pages, all blog posts). More expensive — use selectively. +**Tip**: Set page limits to avoid crawling entire sites. Target specific URL patterns. + +### firecrawl_extract +**Purpose**: Extract structured data from a page using a schema. +**When to use**: When you need specific data points in a consistent format (e.g., pricing tier details, feature lists). +**Tip**: Define a clear schema for what you want extracted — more reliable than parsing raw markdown. + +--- + +## DataForSEO MCP Tools + +### Domain-Level Intelligence + +#### backlinks_summary +**Purpose**: Get domain authority, total backlinks, referring domains, spam score. +**Input**: Target domain (e.g., `competitor.com`) +**Key metrics**: `domain_rank`, `total_backlinks`, `referring_domains`, `backlinks_spam_score` + +#### backlinks_referring_domains +**Purpose**: List top referring domains — shows where their link equity comes from. +**Input**: Target domain + limit +**Key metrics**: Per-domain: `rank`, `backlinks`, `domain` name + +#### dataforseo_labs_google_domain_rank_overview +**Purpose**: Organic search overview — traffic, keywords, traffic value. +**Input**: Target domain +**Key metrics**: `organic_count` (keywords), `organic_traffic` (estimated monthly), `organic_cost` (traffic value in $) + +#### dataforseo_labs_google_ranked_keywords +**Purpose**: What keywords a domain ranks for, with positions. +**Input**: Target domain +**Key metrics**: Per-keyword: `keyword`, `position`, `search_volume`, `url` (ranking page) +**Tip**: Sort by traffic to find their highest-value keywords. + +#### dataforseo_labs_google_keywords_for_site +**Purpose**: Keywords relevant to a domain — broader than ranked keywords, includes opportunities. +**Input**: Target domain +**Key metrics**: `keyword`, `search_volume`, `competition`, `cpc` + +### Competitive Analysis + +#### dataforseo_labs_google_competitors_domain +**Purpose**: Find a domain's closest organic competitors by keyword overlap. +**Input**: Target domain +**Key metrics**: `domain`, `avg_position`, `intersections` (shared keywords), `full_domain_rank` +**Tip**: May reveal competitors the user hasn't considered. + +#### dataforseo_labs_google_domain_intersection +**Purpose**: Find keywords where two domains both rank — shows direct competition. +**Input**: Two target domains +**Key metrics**: `keyword`, position for each domain, `search_volume` +**Tip**: Use this to compare the user's domain vs. each competitor. + +#### dataforseo_labs_google_relevant_pages +**Purpose**: Find a domain's most important pages by organic traffic. +**Input**: Target domain +**Key metrics**: `page`, `metrics` (traffic, keywords per page) +**Tip**: Reveals their content strategy — which pages drive the most value. + +### Technology Detection + +#### domain_analytics_technologies_domain_technologies +**Purpose**: Detect the technology stack a domain uses. +**Input**: Target domain +**Key metrics**: Technologies grouped by category (CMS, analytics, marketing, payments, etc.) + +### Backlink Deep Dive + +#### backlinks_backlinks +**Purpose**: List individual backlinks to a domain. +**Input**: Target domain + limit +**Key metrics**: `url_from`, `url_to`, `anchor`, `domain_from_rank`, `is_new` + +#### backlinks_bulk_ranks +**Purpose**: Compare domain ranks across multiple domains at once. +**Input**: Array of target domains +**Key metrics**: `domain_rank` per domain +**Tip**: Use this for the summary comparison table. + +--- + +## Recommended Execution Order + +### Quick Scan (per competitor) + +``` +1. firecrawl_map → get site URLs +2. In parallel: + a. firecrawl_scrape → homepage + b. firecrawl_scrape → pricing page + c. dataforseo_labs_google_domain_rank_overview → organic metrics + d. backlinks_summary → domain authority +3. Synthesize into abbreviated profile +``` + +### Deep Profile (per competitor) + +``` +1. firecrawl_map → get site URLs +2. In parallel (batch 1 — scraping): + a. firecrawl_scrape → homepage + b. firecrawl_scrape → pricing page + c. firecrawl_scrape → features page(s) + d. firecrawl_scrape → about page + e. firecrawl_scrape → customers/case studies page + f. firecrawl_scrape → integrations page +3. In parallel (batch 2 — SEO data): + a. dataforseo_labs_google_domain_rank_overview + b. dataforseo_labs_google_ranked_keywords + c. backlinks_summary + d. backlinks_referring_domains + e. dataforseo_labs_google_relevant_pages + f. dataforseo_labs_google_competitors_domain +4. In parallel (batch 3 — optional extras): + a. domain_analytics_technologies_domain_technologies + b. firecrawl_search → G2/Capterra reviews + c. dataforseo_labs_google_domain_intersection (vs. user's domain) +5. Synthesize into full profile +``` + +### Multi-Competitor (3+ competitors) + +``` +1. Map all competitor sites in parallel +2. Scrape all homepages in parallel, then pricing pages in parallel +3. Pull domain_rank_overview for all in parallel +4. Pull backlinks_bulk_ranks for all at once +5. Build profiles in sequence (synthesis requires focus) +6. Build summary comparison last +``` + +--- + +## Error Handling + +| Issue | Action | +|-------|--------| +| Firecrawl scrape returns empty/blocked | Try with `firecrawl_browser_create` for JS-heavy sites | +| Pricing page not found in map | Search for `/pricing`, `/plans`, `/packages` — some sites use different paths | +| DataForSEO returns no data for domain | Domain may be too new or too small — note "insufficient data" in profile | +| Rate limits hit | Space out requests; prioritize highest-value data first | +| Review page scraping blocked | Use `firecrawl_search` to find cached or alternative review sources | diff --git a/.agents/skills/competitors/SKILL.md b/.agents/skills/competitors/SKILL.md new file mode 100644 index 0000000..49ef0ff --- /dev/null +++ b/.agents/skills/competitors/SKILL.md @@ -0,0 +1,256 @@ +--- +name: competitors +description: "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement." +metadata: + version: 2.0.0 +--- + +# Competitor & Alternative Pages + +You are an expert in creating competitor comparison and alternative pages. Your goal is to build pages that rank for competitive search terms, provide genuine value to evaluators, and position your product effectively. + +## Initial Assessment + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Before creating competitor pages, understand: + +1. **Your Product** + - Core value proposition + - Key differentiators + - Ideal customer profile + - Pricing model + - Strengths and honest weaknesses + +2. **Competitive Landscape** + - Direct competitors + - Indirect/adjacent competitors + - Market positioning of each + - Search volume for competitor terms + +3. **Goals** + - SEO traffic capture + - Sales enablement + - Conversion from competitor users + - Brand positioning + +--- + +## Core Principles + +### 1. Honesty Builds Trust +- Acknowledge competitor strengths +- Be accurate about your limitations +- Don't misrepresent competitor features +- Readers are comparing—they'll verify claims + +### 2. Depth Over Surface +- Go beyond feature checklists +- Explain *why* differences matter +- Include use cases and scenarios +- Show, don't just tell + +### 3. Help Them Decide +- Different tools fit different needs +- Be clear about who you're best for +- Be clear about who competitor is best for +- Reduce evaluation friction + +### 4. Modular Content Architecture +- Competitor data should be centralized +- Updates propagate to all pages +- Single source of truth per competitor + +--- + +## Page Formats + +### Format 1: [Competitor] Alternative (Singular) + +**Search intent**: User is actively looking to switch from a specific competitor + +**URL pattern**: `/alternatives/[competitor]` or `/[competitor]-alternative` + +**Target keywords**: "[Competitor] alternative", "alternative to [Competitor]", "switch from [Competitor]" + +**Page structure**: +1. Why people look for alternatives (validate their pain) +2. Summary: You as the alternative (quick positioning) +3. Detailed comparison (features, service, pricing) +4. Who should switch (and who shouldn't) +5. Migration path +6. Social proof from switchers +7. CTA + +--- + +### Format 2: [Competitor] Alternatives (Plural) + +**Search intent**: User is researching options, earlier in journey + +**URL pattern**: `/alternatives/[competitor]-alternatives` + +**Target keywords**: "[Competitor] alternatives", "best [Competitor] alternatives", "tools like [Competitor]" + +**Page structure**: +1. Why people look for alternatives (common pain points) +2. What to look for in an alternative (criteria framework) +3. List of alternatives (you first, but include real options) +4. Comparison table (summary) +5. Detailed breakdown of each alternative +6. Recommendation by use case +7. CTA + +**Important**: Include 4-7 real alternatives. Being genuinely helpful builds trust and ranks better. + +--- + +### Format 3: You vs [Competitor] + +**Search intent**: User is directly comparing you to a specific competitor + +**URL pattern**: `/vs/[competitor]` or `/compare/[you]-vs-[competitor]` + +**Target keywords**: "[You] vs [Competitor]", "[Competitor] vs [You]" + +**Page structure**: +1. TL;DR summary (key differences in 2-3 sentences) +2. At-a-glance comparison table +3. Detailed comparison by category (Features, Pricing, Support, Ease of use, Integrations) +4. Who [You] is best for +5. Who [Competitor] is best for (be honest) +6. What customers say (testimonials from switchers) +7. Migration support +8. CTA + +--- + +### Format 4: [Competitor A] vs [Competitor B] + +**Search intent**: User comparing two competitors (not you directly) + +**URL pattern**: `/compare/[competitor-a]-vs-[competitor-b]` + +**Page structure**: +1. Overview of both products +2. Comparison by category +3. Who each is best for +4. The third option (introduce yourself) +5. Comparison table (all three) +6. CTA + +**Why this works**: Captures search traffic for competitor terms, positions you as knowledgeable. + +--- + +## Essential Sections + +### TL;DR Summary +Start every page with a quick summary for scanners—key differences in 2-3 sentences. + +### Paragraph Comparisons +Go beyond tables. For each dimension, write a paragraph explaining the differences and when each matters. + +### Feature Comparison +For each category: describe how each handles it, list strengths and limitations, give bottom line recommendation. + +### Pricing Comparison +Include tier-by-tier comparison, what's included, hidden costs, and total cost calculation for sample team size. + +### Who It's For +Be explicit about ideal customer for each option. Honest recommendations build trust. + +### Migration Section +Cover what transfers, what needs reconfiguration, support offered, and quotes from customers who switched. + +**For detailed templates**: See [references/templates.md](references/templates.md) + +--- + +## Content Architecture + +### Centralized Competitor Data +Create a single source of truth for each competitor with: +- Positioning and target audience +- Pricing (all tiers) +- Feature ratings +- Strengths and weaknesses +- Best for / not ideal for +- Common complaints (from reviews) +- Migration notes + +**For data structure and examples**: See [references/content-architecture.md](references/content-architecture.md) + +--- + +## Research Process + +### Deep Competitor Research + +For each competitor, gather: + +1. **Product research**: Sign up, use it, document features/UX/limitations +2. **Pricing research**: Current pricing, what's included, hidden costs +3. **Review mining**: G2, Capterra, TrustRadius for common praise/complaint themes +4. **Customer feedback**: Talk to customers who switched (both directions) +5. **Content research**: Their positioning, their comparison pages, their changelog + +### Ongoing Updates + +- **Quarterly**: Verify pricing, check for major feature changes +- **When notified**: Customer mentions competitor change +- **Annually**: Full refresh of all competitor data + +--- + +## SEO Considerations + +### Keyword Targeting + +| Format | Primary Keywords | +|--------|-----------------| +| Alternative (singular) | [Competitor] alternative, alternative to [Competitor] | +| Alternatives (plural) | [Competitor] alternatives, best [Competitor] alternatives | +| You vs Competitor | [You] vs [Competitor], [Competitor] vs [You] | +| Competitor vs Competitor | [A] vs [B], [B] vs [A] | + +### Internal Linking +- Link between related competitor pages +- Link from feature pages to relevant comparisons +- Create hub page linking to all competitor content + +### Schema Markup +Consider FAQ schema for common questions like "What is the best alternative to [Competitor]?" + +--- + +## Output Format + +### Competitor Data File +Complete competitor profile in YAML format for use across all comparison pages. + +### Page Content +For each page: URL, meta tags, full page copy organized by section, comparison tables, CTAs. + +### Page Set Plan +Recommended pages to create with priority order based on search volume. + +--- + +## Task-Specific Questions + +1. What are common reasons people switch to you? +2. Do you have customer quotes about switching? +3. What's your pricing vs. competitors? +4. Do you offer migration support? + +--- + +## Related Skills + +- **programmatic-seo**: For building competitor pages at scale +- **copywriting**: For writing compelling comparison copy +- **seo-audit**: For optimizing competitor pages +- **schema**: For FAQ and comparison schema +- **sales-enablement**: For internal sales collateral, decks, and objection docs diff --git a/.agents/skills/competitors/evals/evals.json b/.agents/skills/competitors/evals/evals.json new file mode 100644 index 0000000..26bda04 --- /dev/null +++ b/.agents/skills/competitors/evals/evals.json @@ -0,0 +1,93 @@ +{ + "skill_name": "competitors", + "evals": [ + { + "id": 1, + "prompt": "Create a 'Best Asana Alternatives' page for our project management tool. We compete mainly on price (we're $8/user vs their $24/user) and simplicity (they've become bloated). Target audience is small teams (5-20 people).", + "expected_output": "Should check for product-marketing.md first. Should identify this as the plural alternatives format ([Competitor] Alternatives). Should include the essential sections: TL;DR comparison, brief paragraphs on each alternative (including the user's product positioned first or prominently), feature comparison table, pricing comparison, who each alternative is best for. Should use the modular content architecture approach. Should address SEO considerations for the target keyword 'Asana alternatives.' Should position the user's product with the stated differentiators (price, simplicity).", + "assertions": [ + "Checks for product-marketing.md", + "Identifies as plural alternatives format", + "Includes TL;DR comparison section", + "Includes feature comparison table", + "Includes pricing comparison", + "Includes 'who it's best for' per alternative", + "Positions user's product prominently with differentiators", + "Addresses SEO for target keyword" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Write a 'HubSpot vs Salesforce' comparison page. We're HubSpot and want to show why we're the better choice for SMBs.", + "expected_output": "Should identify this as the 'you vs competitor' format. Should include structured comparison sections: overview of both, feature-by-feature comparison, pricing comparison, pros/cons of each, who each is best for, and migration path. Should be factually accurate about the competitor while strategically positioning the user's product. Should include a TL;DR at the top. Should address the SMB angle throughout. Should use the centralized competitor data architecture pattern.", + "assertions": [ + "Identifies as 'you vs competitor' format", + "Includes structured comparison sections", + "Includes feature-by-feature comparison", + "Includes pricing comparison", + "Includes TL;DR at the top", + "Factually accurate about competitor", + "Strategically positions user's product for SMBs", + "Includes migration path or switching section" + ], + "files": [] + }, + { + "id": 3, + "prompt": "we need a page targeting 'mailchimp alternative' (singular). we're an email marketing platform focused on e-commerce brands.", + "expected_output": "Should trigger on casual phrasing. Should identify this as the singular alternative format ([Competitor] Alternative — positioning your product as THE alternative). Should focus the entire page on why the user's product is the best Mailchimp alternative for e-commerce. Should include: why people switch from Mailchimp, what the user's product does better (e-commerce specific features), feature comparison, pricing comparison, migration guide, customer testimonials. Should optimize for the singular keyword 'Mailchimp alternative.'", + "assertions": [ + "Triggers on casual phrasing", + "Identifies as singular alternative format", + "Focuses on user's product as THE alternative", + "Includes why people switch from Mailchimp", + "Highlights e-commerce-specific advantages", + "Includes feature and pricing comparison", + "Includes migration guide", + "Optimizes for singular keyword" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Can you create a comparison page for 'Notion vs Coda'? We're a third-party review site, not affiliated with either product.", + "expected_output": "Should identify this as the 'competitor vs competitor' format (third-party perspective). Should maintain objectivity since the user isn't either product. Should include balanced comparison: overview of both, feature comparison, pricing, pros/cons, use case recommendations. Should use the essential page sections from the skill. Should suggest how to monetize the page (affiliate links, CTA to the user's own product if relevant). Should address SEO for the 'Notion vs Coda' keyword.", + "assertions": [ + "Identifies as 'competitor vs competitor' format", + "Maintains objectivity (third-party perspective)", + "Includes balanced feature comparison", + "Includes pricing comparison", + "Includes use case recommendations", + "Addresses SEO considerations", + "Suggests monetization approach" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We want to build a whole competitor comparison hub. We have 5 main competitors and want to create alternative pages for each, plus head-to-head comparisons. How should we structure this?", + "expected_output": "Should apply the centralized competitor data architecture. Should recommend a hub structure with: individual alternative pages for each competitor (5 singular pages), a 'best alternatives' roundup page, head-to-head comparison pages for key matchups. Should address internal linking strategy between these pages. Should recommend the research process for gathering competitive data. Should address URL structure and site architecture for the hub.", + "assertions": [ + "Applies centralized competitor data architecture", + "Recommends hub structure with multiple page types", + "Suggests individual and roundup alternative pages", + "Addresses internal linking between comparison pages", + "Recommends research process for competitive data", + "Addresses URL structure" + ], + "files": [] + }, + { + "id": 6, + "prompt": "I need to create a battle card for our sales team comparing us to Zendesk. It should help reps handle competitive objections during sales calls.", + "expected_output": "Should recognize this as internal sales enablement material, not a public comparison page. Should defer to or cross-reference the sales-enablement skill, which handles battle cards, objection handling docs, and internal competitive collateral. May provide some competitive positioning advice but should make clear that sales-enablement is the right skill for internal sales materials.", + "assertions": [ + "Recognizes this as internal sales enablement material", + "References or defers to sales-enablement skill", + "Does not attempt to create internal battle card using public comparison page patterns" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/competitors/references/content-architecture.md b/.agents/skills/competitors/references/content-architecture.md new file mode 100644 index 0000000..74b9ead --- /dev/null +++ b/.agents/skills/competitors/references/content-architecture.md @@ -0,0 +1,271 @@ +# Content Architecture for Competitor Pages + +How to structure and maintain competitor data for scalable comparison pages. + +## Contents +- Centralized Competitor Data +- Competitor Data Template +- Your Product Data +- Page Generation +- Index Page Structure (alternatives index, vs comparisons index, index page best practices) +- Footer Navigation + +## Centralized Competitor Data + +Create a single source of truth for each competitor: + +``` +competitor_data/ +├── notion.md +├── airtable.md +├── monday.md +└── ... +``` + +--- + +## Competitor Data Template + +Per competitor, document: + +```yaml +name: Notion +website: notion.so +tagline: "The all-in-one workspace" +founded: 2016 +headquarters: San Francisco + +# Positioning +primary_use_case: "docs + light databases" +target_audience: "teams wanting flexible workspace" +market_position: "premium, feature-rich" + +# Pricing +pricing_model: per-seat +free_tier: true +free_tier_limits: "limited blocks, 1 user" +starter_price: $8/user/month +business_price: $15/user/month +enterprise: custom + +# Features (rate 1-5 or describe) +features: + documents: 5 + databases: 4 + project_management: 3 + collaboration: 4 + integrations: 3 + mobile_app: 3 + offline_mode: 2 + api: 4 + +# Strengths (be honest) +strengths: + - Extremely flexible and customizable + - Beautiful, modern interface + - Strong template ecosystem + - Active community + +# Weaknesses (be fair) +weaknesses: + - Can be slow with large databases + - Learning curve for advanced features + - Limited automations compared to dedicated tools + - Offline mode is limited + +# Best for +best_for: + - Teams wanting all-in-one workspace + - Content-heavy workflows + - Documentation-first teams + - Startups and small teams + +# Not ideal for +not_ideal_for: + - Complex project management needs + - Large databases (1000s of rows) + - Teams needing robust offline + - Enterprise with strict compliance + +# Common complaints (from reviews) +common_complaints: + - "Gets slow with lots of content" + - "Hard to find things as workspace grows" + - "Mobile app is clunky" + +# Migration notes +migration_from: + difficulty: medium + data_export: "Markdown, CSV, HTML" + what_transfers: "Pages, databases" + what_doesnt: "Automations, integrations setup" + time_estimate: "1-3 days for small team" +``` + +--- + +## Your Product Data + +Same structure for yourself—be honest: + +```yaml +name: [Your Product] +# ... same fields + +strengths: + - [Your real strengths] + +weaknesses: + - [Your honest weaknesses] + +best_for: + - [Your ideal customers] + +not_ideal_for: + - [Who should use something else] +``` + +--- + +## Page Generation + +Each page pulls from centralized data: + +- **[Competitor] Alternative page**: Pulls competitor data + your data +- **[Competitor] Alternatives page**: Pulls competitor data + your data + other alternatives +- **You vs [Competitor] page**: Pulls your data + competitor data +- **[A] vs [B] page**: Pulls both competitor data + your data + +**Benefits**: +- Update competitor pricing once, updates everywhere +- Add new feature comparison once, appears on all pages +- Consistent accuracy across pages +- Easier to maintain at scale + +--- + +## Index Page Structure + +### Alternatives Index + +**URL**: `/alternatives` or `/alternatives/index` + +**Purpose**: Lists all "[Competitor] Alternative" pages + +**Page structure**: +1. Headline: "[Your Product] as an Alternative" +2. Brief intro on why people switch to you +3. List of all alternative pages with: + - Competitor name/logo + - One-line summary of key differentiator vs. that competitor + - Link to full comparison +4. Common reasons people switch (aggregated) +5. CTA + +**Example**: +```markdown +## Explore [Your Product] as an Alternative + +Looking to switch? See how [Your Product] compares to the tools you're evaluating: + +- **[Notion Alternative](/alternatives/notion)** — Better for teams who need [X] +- **[Airtable Alternative](/alternatives/airtable)** — Better for teams who need [Y] +- **[Monday Alternative](/alternatives/monday)** — Better for teams who need [Z] +``` + +--- + +### Vs Comparisons Index + +**URL**: `/vs` or `/compare` + +**Purpose**: Lists all "You vs [Competitor]" and "[A] vs [B]" pages + +**Page structure**: +1. Headline: "Compare [Your Product]" +2. Section: "[Your Product] vs Competitors" — list of direct comparisons +3. Section: "Head-to-Head Comparisons" — list of [A] vs [B] pages +4. Brief methodology note +5. CTA + +--- + +### Index Page Best Practices + +**Keep them updated**: When you add a new comparison page, add it to the relevant index. + +**Internal linking**: +- Link from index → individual pages +- Link from individual pages → back to index +- Cross-link between related comparisons + +**SEO value**: +- Index pages can rank for broad terms like "project management tool comparisons" +- Pass link equity to individual comparison pages +- Help search engines discover all comparison content + +**Sorting options**: +- By popularity (search volume) +- Alphabetically +- By category/use case +- By date added (show freshness) + +**Include on index pages**: +- Last updated date for credibility +- Number of pages/comparisons available +- Quick filters if you have many comparisons + +--- + +## Footer Navigation + +The site footer appears on all marketing pages, making it a powerful internal linking opportunity for competitor pages. + +### Option 1: Link to Index Pages (Minimum) + +At minimum, add links to your comparison index pages in the footer: + +``` +Footer +├── Compare +│ ├── Alternatives → /alternatives +│ └── Comparisons → /vs +``` + +This ensures every marketing page passes link equity to your comparison content hub. + +### Option 2: Footer Columns by Format (Recommended for SEO) + +For stronger internal linking, create dedicated footer columns for each format you've built, linking directly to your top competitors: + +``` +Footer +├── [Product] vs ├── Alternatives to ├── Compare +│ ├── vs Notion │ ├── Notion Alternative │ ├── Notion vs Airtable +│ ├── vs Airtable │ ├── Airtable Alternative │ ├── Monday vs Asana +│ ├── vs Monday │ ├── Monday Alternative │ ├── Notion vs Monday +│ ├── vs Asana │ ├── Asana Alternative │ ├── ... +│ ├── vs Clickup │ ├── Clickup Alternative │ └── View all → +│ ├── ... │ ├── ... │ +│ └── View all → │ └── View all → │ +``` + +**Guidelines**: +- Include up to 8 links per column (top competitors by search volume) +- Add "View all" link to the full index page +- Only create columns for formats you've actually built pages for +- Prioritize competitors with highest search volume + +### Why Footer Links Matter + +1. **Sitewide distribution**: Footer links appear on every marketing page, passing link equity from your entire site to comparison content +2. **Crawl efficiency**: Search engines discover all comparison pages quickly +3. **User discovery**: Visitors evaluating your product can easily find comparisons +4. **Competitive positioning**: Signals to search engines that you're a key player in the space + +### Implementation Notes + +- Update footer when adding new high-priority comparison pages +- Keep footer clean—don't list every comparison, just the top ones +- Match column headers to your URL structure (e.g., "vs" column → `/vs/` URLs) +- Consider mobile: columns may stack, so order by priority diff --git a/.agents/skills/competitors/references/templates.md b/.agents/skills/competitors/references/templates.md new file mode 100644 index 0000000..7437505 --- /dev/null +++ b/.agents/skills/competitors/references/templates.md @@ -0,0 +1,223 @@ +# Section Templates for Competitor Pages + +Ready-to-use templates for each section of competitor comparison pages. + +## Contents +- TL;DR Summary +- Paragraph Comparison (Not Just Tables) +- Feature Comparison Section +- Pricing Comparison Section +- Service & Support Comparison +- Who It's For Section +- Migration Section +- Social Proof Section +- Comparison Table Best Practices (beyond checkmarks, organize by category, include ratings where useful) + +## TL;DR Summary + +Start every page with a quick summary for scanners: + +```markdown +**TL;DR**: [Competitor] excels at [strength] but struggles with [weakness]. +[Your product] is built for [your focus], offering [key differentiator]. +Choose [Competitor] if [their ideal use case]. Choose [You] if [your ideal use case]. +``` + +--- + +## Paragraph Comparison (Not Just Tables) + +For each major dimension, write a paragraph: + +```markdown +## Features + +[Competitor] offers [description of their feature approach]. +Their strength is [specific strength], which works well for [use case]. +However, [limitation] can be challenging for [user type]. + +[Your product] takes a different approach with [your approach]. +This means [benefit], though [honest tradeoff]. +Teams who [specific need] often find this more effective. +``` + +--- + +## Feature Comparison Section + +Go beyond checkmarks: + +```markdown +## Feature Comparison + +### [Feature Category] + +**[Competitor]**: [2-3 sentence description of how they handle this] +- Strengths: [specific] +- Limitations: [specific] + +**[Your product]**: [2-3 sentence description] +- Strengths: [specific] +- Limitations: [specific] + +**Bottom line**: Choose [Competitor] if [scenario]. Choose [You] if [scenario]. +``` + +--- + +## Pricing Comparison Section + +```markdown +## Pricing + +| | [Competitor] | [Your Product] | +|---|---|---| +| Free tier | [Details] | [Details] | +| Starting price | $X/user/mo | $X/user/mo | +| Business tier | $X/user/mo | $X/user/mo | +| Enterprise | Custom | Custom | + +**What's included**: [Competitor]'s $X plan includes [features], while +[Your product]'s $X plan includes [features]. + +**Total cost consideration**: Beyond per-seat pricing, consider [hidden costs, +add-ons, implementation]. [Competitor] charges extra for [X], while +[Your product] includes [Y] in base pricing. + +**Value comparison**: For a 10-person team, [Competitor] costs approximately +$X/year while [Your product] costs $Y/year, with [key differences in what you get]. +``` + +--- + +## Service & Support Comparison + +```markdown +## Service & Support + +| | [Competitor] | [Your Product] | +|---|---|---| +| Documentation | [Quality assessment] | [Quality assessment] | +| Response time | [SLA if known] | [Your SLA] | +| Support channels | [List] | [List] | +| Onboarding | [What they offer] | [What you offer] | +| CSM included | [At what tier] | [At what tier] | + +**Support quality**: Based on [G2/Capterra reviews, your research], +[Competitor] support is described as [assessment]. Common feedback includes +[quotes or themes]. + +[Your product] offers [your support approach]. [Specific differentiator like +response time, dedicated CSM, implementation help]. +``` + +--- + +## Who It's For Section + +```markdown +## Who Should Choose [Competitor] + +[Competitor] is the right choice if: +- [Specific use case or need] +- [Team type or size] +- [Workflow or requirement] +- [Budget or priority] + +**Ideal [Competitor] customer**: [Persona description in 1-2 sentences] + +## Who Should Choose [Your Product] + +[Your product] is built for teams who: +- [Specific use case or need] +- [Team type or size] +- [Workflow or requirement] +- [Priority or value] + +**Ideal [Your product] customer**: [Persona description in 1-2 sentences] +``` + +--- + +## Migration Section + +```markdown +## Switching from [Competitor] + +### What transfers +- [Data type]: [How easily, any caveats] +- [Data type]: [How easily, any caveats] + +### What needs reconfiguration +- [Thing]: [Why and effort level] +- [Thing]: [Why and effort level] + +### Migration support + +We offer [migration support details]: +- [Free data import tool / white-glove migration] +- [Documentation / migration guide] +- [Timeline expectation] +- [Support during transition] + +### What customers say about switching + +> "[Quote from customer who switched]" +> — [Name], [Role] at [Company] +``` + +--- + +## Social Proof Section + +Focus on switchers: + +```markdown +## What Customers Say + +### Switched from [Competitor] + +> "[Specific quote about why they switched and outcome]" +> — [Name], [Role] at [Company] + +> "[Another quote]" +> — [Name], [Role] at [Company] + +### Results after switching +- [Company] saw [specific result] +- [Company] reduced [metric] by [amount] +``` + +--- + +## Comparison Table Best Practices + +### Beyond Checkmarks + +Instead of: +| Feature | You | Competitor | +|---------|-----|-----------| +| Feature A | ✓ | ✓ | +| Feature B | ✓ | ✗ | + +Do this: +| Feature | You | Competitor | +|---------|-----|-----------| +| Feature A | Full support with [detail] | Basic support, [limitation] | +| Feature B | [Specific capability] | Not available | + +### Organize by Category + +Group features into meaningful categories: +- Core functionality +- Collaboration +- Integrations +- Security & compliance +- Support & service + +### Include Ratings Where Useful + +| Category | You | Competitor | Notes | +|----------|-----|-----------|-------| +| Ease of use | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | [Brief note] | +| Feature depth | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | [Brief note] | diff --git a/.agents/skills/content-strategy/SKILL.md b/.agents/skills/content-strategy/SKILL.md new file mode 100644 index 0000000..3a54e3f --- /dev/null +++ b/.agents/skills/content-strategy/SKILL.md @@ -0,0 +1,365 @@ +--- +name: content-strategy +description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," "content planning," "editorial calendar," "content marketing," "content roadmap," "what content should I create," "blog topics," "content pillars," or "I don't know what to write." Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social. +metadata: + version: 2.0.0 +--- + +# Content Strategy + +You are a content strategist. Your goal is to help plan content that drives traffic, builds authority, and generates leads by being either searchable, shareable, or both. + +## Before Planning + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Gather this context (ask if not provided): + +### 1. Business Context +- What does the company do? +- Who is the ideal customer? +- What's the primary goal for content? (traffic, leads, brand awareness, thought leadership) +- What problems does your product solve? + +### 2. Customer Research +- What questions do customers ask before buying? +- What objections come up in sales calls? +- What topics appear repeatedly in support tickets? +- What language do customers use to describe their problems? + +### 3. Current State +- Do you have existing content? What's working? +- What resources do you have? (writers, budget, time) +- What content formats can you produce? (written, video, audio) + +### 4. Competitive Landscape +- Who are your main competitors? +- What content gaps exist in your market? + +--- + +## Searchable vs Shareable + +Every piece of content must be searchable, shareable, or both. Prioritize in that order—search traffic is the foundation. + +**Searchable content** captures existing demand. Optimized for people actively looking for answers. + +**Shareable content** creates demand. Spreads ideas and gets people talking. + +### When Writing Searchable Content + +- Target a specific keyword or question +- Match search intent exactly—answer what the searcher wants +- Use clear titles that match search queries +- Structure with headings that mirror search patterns +- Place keywords in title, headings, first paragraph, URL +- Provide comprehensive coverage (don't leave questions unanswered) +- Include data, examples, and links to authoritative sources +- Optimize for AI/LLM discovery: clear positioning, structured content, brand consistency across the web + +### When Writing Shareable Content + +- Lead with a novel insight, original data, or counterintuitive take +- Challenge conventional wisdom with well-reasoned arguments +- Tell stories that make people feel something +- Create content people want to share to look smart or help others +- Connect to current trends or emerging problems +- Share vulnerable, honest experiences others can learn from + +--- + +## Content Types + +### Searchable Content Types + +**Use-Case Content** +Formula: [persona] + [use-case]. Targets long-tail keywords. +- "Project management for designers" +- "Task tracking for developers" +- "Client collaboration for freelancers" + +**Hub and Spoke** +Hub = comprehensive overview. Spokes = related subtopics. +``` +/topic (hub) +├── /topic/subtopic-1 (spoke) +├── /topic/subtopic-2 (spoke) +└── /topic/subtopic-3 (spoke) +``` +Create hub first, then build spokes. Interlink strategically. + +**Note:** Most content works fine under `/blog`. Only use dedicated hub/spoke URL structures for major topics with layered depth (e.g., Atlassian's `/agile` guide). For typical blog posts, `/blog/post-title` is sufficient. + +**Template Libraries** +High-intent keywords + product adoption. +- Target searches like "marketing plan template" +- Provide immediate standalone value +- Show how product enhances the template + +### Shareable Content Types + +**Thought Leadership** +- Articulate concepts everyone feels but hasn't named +- Challenge conventional wisdom with evidence +- Share vulnerable, honest experiences + +**Data-Driven Content** +- Product data analysis (anonymized insights) +- Public data analysis (uncover patterns) +- Original research (run experiments, share results) + +**Expert Roundups** +15-30 experts answering one specific question. Built-in distribution. + +**Case Studies** +Structure: Challenge → Solution → Results → Key learnings + +**Meta Content** +Behind-the-scenes transparency. "How We Got Our First $5k MRR," "Why We Chose Debt Over VC." + +For programmatic content at scale, see **programmatic-seo** skill. + +--- + +## Content Pillars and Topic Clusters + +Content pillars are the 3-5 core topics your brand will own. Each pillar spawns a cluster of related content. + +Most of the time, all content can live under `/blog` with good internal linking between related posts. Dedicated pillar pages with custom URL structures (like `/guides/topic`) are only needed when you're building comprehensive resources with multiple layers of depth. + +### How to Identify Pillars + +1. **Product-led**: What problems does your product solve? +2. **Audience-led**: What does your ICP need to learn? +3. **Search-led**: What topics have volume in your space? +4. **Competitor-led**: What are competitors ranking for? + +### Pillar Structure + +``` +Pillar Topic (Hub) +├── Subtopic Cluster 1 +│ ├── Article A +│ ├── Article B +│ └── Article C +├── Subtopic Cluster 2 +│ ├── Article D +│ ├── Article E +│ └── Article F +└── Subtopic Cluster 3 + ├── Article G + ├── Article H + └── Article I +``` + +### Pillar Criteria + +Good pillars should: +- Align with your product/service +- Match what your audience cares about +- Have search volume and/or social interest +- Be broad enough for many subtopics + +--- + +## Keyword Research by Buyer Stage + +Map topics to the buyer's journey using proven keyword modifiers: + +### Awareness Stage +Modifiers: "what is," "how to," "guide to," "introduction to" + +Example: If customers ask about project management basics: +- "What is Agile Project Management" +- "Guide to Sprint Planning" +- "How to Run a Standup Meeting" + +### Consideration Stage +Modifiers: "best," "top," "vs," "alternatives," "comparison" + +Example: If customers evaluate multiple tools: +- "Best Project Management Tools for Remote Teams" +- "Asana vs Trello vs Monday" +- "Basecamp Alternatives" + +### Decision Stage +Modifiers: "pricing," "reviews," "demo," "trial," "buy" + +Example: If pricing comes up in sales calls: +- "Project Management Tool Pricing Comparison" +- "How to Choose the Right Plan" +- "[Product] Reviews" + +### Implementation Stage +Modifiers: "templates," "examples," "tutorial," "how to use," "setup" + +Example: If support tickets show implementation struggles: +- "Project Template Library" +- "Step-by-Step Setup Tutorial" +- "How to Use [Feature]" + +--- + +## Content Ideation Sources + +### 1. Keyword Data + +If user provides keyword exports (Ahrefs, SEMrush, GSC), analyze for: +- Topic clusters (group related keywords) +- Buyer stage (awareness/consideration/decision/implementation) +- Search intent (informational, commercial, transactional) +- Quick wins (low competition + decent volume + high relevance) +- Content gaps (keywords competitors rank for that you don't) + +Output as prioritized table: +| Keyword | Volume | Difficulty | Buyer Stage | Content Type | Priority | + +### 2. Call Transcripts + +If user provides sales or customer call transcripts, extract: +- Questions asked → FAQ content or blog posts +- Pain points → problems in their own words +- Objections → content to address proactively +- Language patterns → exact phrases to use (voice of customer) +- Competitor mentions → what they compared you to + +Output content ideas with supporting quotes. + +### 3. Survey Responses + +If user provides survey data, mine for: +- Open-ended responses (topics and language) +- Common themes (30%+ mention = high priority) +- Resource requests (what they wish existed) +- Content preferences (formats they want) + +### 4. Forum Research + +Use web search to find content ideas: + +**Reddit:** `site:reddit.com [topic]` +- Top posts in relevant subreddits +- Questions and frustrations in comments +- Upvoted answers (validates what resonates) + +**Quora:** `site:quora.com [topic]` +- Most-followed questions +- Highly upvoted answers + +**Other:** Indie Hackers, Hacker News, Product Hunt, industry Slack/Discord + +Extract: FAQs, misconceptions, debates, problems being solved, terminology used. + +### 5. Competitor Analysis + +Use web search to analyze competitor content: + +**Find their content:** `site:competitor.com/blog` + +**Analyze:** +- Top-performing posts (comments, shares) +- Topics covered repeatedly +- Gaps they haven't covered +- Case studies (customer problems, use cases, results) +- Content structure (pillars, categories, formats) + +**Identify opportunities:** +- Topics you can cover better +- Angles they're missing +- Outdated content to improve on + +### 6. Sales and Support Input + +Extract from customer-facing teams: +- Common objections +- Repeated questions +- Support ticket patterns +- Success stories +- Feature requests and underlying problems + +--- + +## Prioritizing Content Ideas + +Score each idea on four factors: + +### 1. Customer Impact (40%) +- How frequently did this topic come up in research? +- What percentage of customers face this challenge? +- How emotionally charged was this pain point? +- What's the potential LTV of customers with this need? + +### 2. Content-Market Fit (30%) +- Does this align with problems your product solves? +- Can you offer unique insights from customer research? +- Do you have customer stories to support this? +- Will this naturally lead to product interest? + +### 3. Search Potential (20%) +- What's the monthly search volume? +- How competitive is this topic? +- Are there related long-tail opportunities? +- Is search interest growing or declining? + +### 4. Resource Requirements (10%) +- Do you have expertise to create authoritative content? +- What additional research is needed? +- What assets (graphics, data, examples) will you need? + +### Scoring Template + +| Idea | Customer Impact (40%) | Content-Market Fit (30%) | Search Potential (20%) | Resources (10%) | Total | +|------|----------------------|-------------------------|----------------------|-----------------|-------| +| Topic A | 8 | 9 | 7 | 6 | 8.0 | +| Topic B | 6 | 7 | 9 | 8 | 7.1 | + +--- + +## Output Format + +When creating a content strategy, provide: + +### 1. Content Pillars +- 3-5 pillars with rationale +- Subtopic clusters for each pillar +- How pillars connect to product + +### 2. Priority Topics +For each recommended piece: +- Topic/title +- Searchable, shareable, or both +- Content type (use-case, hub/spoke, thought leadership, etc.) +- Target keyword and buyer stage +- Why this topic (customer research backing) + +### 3. Topic Cluster Map +Visual or structured representation of how content interconnects. + +--- + +## Task-Specific Questions + +1. What patterns emerge from your last 10 customer conversations? +2. What questions keep coming up in sales calls? +3. Where are competitors' content efforts falling short? +4. What unique insights from customer research aren't being shared elsewhere? +5. Which existing content drives the most conversions, and why? + +--- + +## References + +- **[Headless CMS Guide](references/headless-cms.md)**: CMS selection, content modeling for marketing, editorial workflows, platform comparison (Sanity, Contentful, Strapi) + +--- + +## Related Skills + +- **copywriting**: For writing individual content pieces +- **seo-audit**: For technical SEO and on-page optimization +- **ai-seo**: For optimizing content for AI search engines and getting cited by LLMs +- **programmatic-seo**: For scaled content generation +- **site-architecture**: For page hierarchy, navigation design, and URL structure +- **emails**: For email-based content +- **social**: For social media content diff --git a/.agents/skills/content-strategy/evals/evals.json b/.agents/skills/content-strategy/evals/evals.json new file mode 100644 index 0000000..bbefec2 --- /dev/null +++ b/.agents/skills/content-strategy/evals/evals.json @@ -0,0 +1,90 @@ +{ + "skill_name": "content-strategy", + "evals": [ + { + "id": 1, + "prompt": "Help me build a content strategy for our B2B SaaS product. We sell expense management software to finance teams at companies with 50-500 employees. We currently have no blog and want to start from scratch.", + "expected_output": "Should check for product-marketing.md first. Should establish content pillars (3-5 core topic areas). Should map content types by buyer stage (awareness → consideration → decision → implementation). Should identify keyword research opportunities by buyer stage. Should recommend a mix of searchable (SEO-driven) and shareable (thought leadership, data) content. Should use the prioritization scoring framework (customer impact 40%, content-market fit 30%, search potential 20%, resources 10%). Should provide an initial content calendar or publishing cadence. Should recommend content types appropriate for starting from scratch.", + "assertions": [ + "Checks for product-marketing.md", + "Establishes 3-5 content pillars", + "Maps content by buyer stage (awareness through implementation)", + "Includes keyword research by buyer stage", + "Recommends mix of searchable and shareable content", + "Uses prioritization scoring framework", + "Provides publishing cadence or calendar", + "Recommends appropriate starting content types" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We have 200+ blog posts but traffic has been flat for a year. Our content feels random — no clear strategy. How do we fix this?", + "expected_output": "Should diagnose the 'random content' problem. Should recommend a content audit process to evaluate existing posts. Should introduce content pillars and topical clustering to organize the existing library. Should identify hub-and-spoke opportunities from existing content. Should recommend which posts to update, consolidate, or retire. Should use the prioritization framework to plan next steps. Should address topical authority building through clusters.", + "assertions": [ + "Diagnoses the 'random content' problem", + "Recommends content audit for existing posts", + "Introduces content pillars and topical clustering", + "Identifies hub-and-spoke opportunities", + "Recommends update, consolidate, or retire decisions", + "Uses prioritization framework", + "Addresses topical authority building" + ], + "files": [] + }, + { + "id": 3, + "prompt": "what kind of content should we be creating? we're a developer tool (API testing platform) and our audience is backend developers and QA engineers", + "expected_output": "Should trigger on casual phrasing. Should recommend content types appropriate for a developer audience: technical tutorials, documentation-style guides, use-case content, template/example libraries, data-driven benchmarks. Should note that developer audiences prefer depth, accuracy, and practical value over marketing fluff. Should suggest content pillars aligned with developer interests. Should use the ideation sources framework (keyword data, community forums like Stack Overflow/Reddit, competitor gaps).", + "assertions": [ + "Triggers on casual phrasing", + "Recommends content types for developer audience", + "Emphasizes technical depth and practical value", + "Notes developers prefer substance over marketing", + "Suggests content pillars for developer tool", + "Uses ideation sources framework", + "Mentions developer community channels" + ], + "files": [] + }, + { + "id": 4, + "prompt": "How should we prioritize which content to create first? We have a list of 50 blog post ideas but limited resources — one content marketer writing 2 posts per week.", + "expected_output": "Should apply the prioritization scoring framework: customer impact (40%), content-market fit (30%), search potential (20%), resources required (10%). Should help score or rank the content ideas using this framework. Should recommend focusing on high-impact, lower-effort content first. Should consider the buyer stage distribution (don't write only top-of-funnel). Should provide a practical workflow for the single content marketer to use going forward.", + "assertions": [ + "Applies prioritization scoring framework with weights", + "Explains each scoring dimension", + "Recommends focusing on high-impact, lower-effort first", + "Considers buyer stage distribution", + "Provides practical workflow for limited resources" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We want to build topical authority in 'employee engagement.' What does a content cluster look like for this topic?", + "expected_output": "Should apply the hub-and-spoke content cluster model. Should design a pillar page for 'employee engagement' (comprehensive, 3000+ word guide). Should identify 8-15 supporting spoke articles targeting long-tail keywords related to employee engagement. Should map the internal linking structure between hub and spokes. Should address keyword research for the cluster. Should recommend content types for each piece (guide, how-to, template, data-driven, etc.).", + "assertions": [ + "Applies hub-and-spoke content cluster model", + "Designs a pillar page for the core topic", + "Identifies 8-15 supporting spoke articles", + "Maps internal linking between hub and spokes", + "Addresses keyword research for the cluster", + "Recommends content types for each piece" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Can you write a blog post about remote work best practices for our HR software blog?", + "expected_output": "Should recognize this is a copywriting/content creation task, not a content strategy task. Should defer to or cross-reference the copywriting skill for writing individual pieces of content. May provide strategic context (where this fits in the content strategy, keyword targeting, audience) but should make clear that copywriting is the right skill for writing the actual content.", + "assertions": [ + "Recognizes this as content creation, not strategy", + "References or defers to copywriting skill", + "Does not attempt to write the full blog post", + "May provide strategic context for the piece" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/content-strategy/references/headless-cms.md b/.agents/skills/content-strategy/references/headless-cms.md new file mode 100644 index 0000000..c40aeaf --- /dev/null +++ b/.agents/skills/content-strategy/references/headless-cms.md @@ -0,0 +1,194 @@ +# Headless CMS Guide + +Reference for choosing, modeling, and implementing a headless CMS for marketing content. + +## When to Use This Reference + +Use this when selecting a CMS for a new project, designing content models for marketing sites, setting up editorial workflows, or connecting CMS content to programmatic pages. + +--- + +## Headless vs Traditional CMS + +A headless CMS separates content management from presentation. Content is stored in a structured backend and delivered via API to any frontend. + +### When Headless Makes Sense + +- Multiple frontends consume the same content (web, mobile, email) +- Developers want full control over the frontend stack +- Content needs to be reused across channels +- You're building with a modern framework (Next.js, Remix, Astro) +- Marketing needs structured, reusable content blocks + +### When Traditional Works Better + +- Small team with no dedicated developers +- Simple blog or brochure site +- WYSIWYG editing is a hard requirement +- Budget is tight and WordPress/Webflow does the job + +### Decision Checklist + +| Factor | Headless | Traditional | +|--------|----------|-------------| +| Multi-channel delivery | Yes | Limited | +| Developer control | Full | Constrained | +| Non-technical editing | Requires setup | Built-in | +| Time to launch | Longer | Faster | +| Content reuse | Native | Manual | +| Hosting flexibility | Any frontend | Platform-dependent | + +--- + +## Content Modeling for Marketing + +### Core Principles + +1. **Think in types, not pages.** A "Landing Page" is a content type with fields — not an HTML file. This lets you reuse components across pages. +2. **Separate content from presentation.** Store the headline text, not the styled headline. Presentation belongs in the frontend. +3. **Design for reuse.** If testimonials appear on 5 pages, create a Testimonial type and reference it — don't duplicate. +4. **Keep models flat.** Deeply nested structures are hard to query and maintain. Prefer references over nesting. + +### Common Marketing Content Types + +| Type | Key Fields | Notes | +|------|-----------|-------| +| **Landing Page** | title, slug, hero, sections[], seo | Modular sections for flexibility | +| **Blog Post** | title, slug, body, author, category, tags, publishedAt, seo | Rich text or Portable Text body | +| **Case Study** | title, customer, challenge, solution, results, metrics[], logo | Link to related products/features | +| **Testimonial** | quote, author, role, company, avatar, rating | Reference from landing pages | +| **FAQ** | question, answer, category | Group by category for programmatic pages | +| **Author** | name, bio, avatar, social links | Reference from blog posts | +| **CTA Block** | heading, body, buttonText, buttonUrl, variant | Reusable across pages | + +### SEO Fields Checklist + +Every page-level content type needs: + +- `metaTitle` — 50-60 characters +- `metaDescription` — 150-160 characters +- `ogImage` — 1200x630px social preview +- `slug` — URL path segment +- `canonicalUrl` — optional override +- `noIndex` — boolean for excluding from search +- `structuredData` — optional JSON-LD override + +--- + +## Editorial Workflows + +### Draft → Review → Publish Cycle + +1. **Draft** — Author creates or edits content +2. **Review** — Editor reviews for accuracy, brand voice, SEO +3. **Approve** — Stakeholder signs off +4. **Schedule** — Set publish date/time +5. **Publish** — Content goes live via API + +### Preview APIs + +All major headless CMS platforms support draft previews: + +- **Sanity**: Real-time preview with `useLiveQuery` or Presentation tool +- **Contentful**: Preview API (`preview.contentful.com`) with separate access token +- **Strapi**: Draft & Publish system with `status=draft` query parameter (v5; replaces v4's `publicationState`) + +Set up a preview route in your frontend (e.g., `/api/preview`) that authenticates and renders draft content. + +### Roles and Permissions + +| Role | Can Create | Can Edit | Can Publish | Can Delete | +|------|:----------:|:--------:|:-----------:|:----------:| +| Author | Yes | Own | No | Own drafts | +| Editor | Yes | All | Yes | Drafts | +| Admin | Yes | All | Yes | All | + +Exact permission models vary by platform. Sanity uses role-based access. Contentful has space-level roles. Strapi has granular RBAC. + +--- + +## Platform Comparison + +| Feature | Sanity | Contentful | Strapi | +|---------|--------|------------|--------| +| Hosting | Cloud (managed) | Cloud (managed) | Self-hosted or Cloud | +| Query Language | GROQ | REST / GraphQL | REST / GraphQL | +| Free Tier | Generous | Limited | Open source (free) | +| Real-time Collab | Yes (built-in) | Limited | No | +| Best For | Developer flexibility | Enterprise multi-locale | Budget / self-hosted | +| Content Modeling | Schema-as-code | Web UI | Web UI or code | +| Media Handling | Built-in DAM | Built-in | Plugin-based | + +### Sanity + +**Strengths**: GROQ query language is powerful and flexible. Schema defined in code (version-controlled). Real-time collaborative editing. Portable Text for rich content. Generous free tier. + +**Considerations**: Steeper learning curve for non-developers. Studio customization requires React knowledge. Vendor lock-in on GROQ queries. + +**Marketing fit**: Best when developers and marketers collaborate closely. Strong for content-heavy sites with complex models. + +### Contentful + +**Strengths**: Mature enterprise platform. Excellent multi-locale support. Strong ecosystem of integrations. Composable content with Studio. Well-documented APIs. + +**Considerations**: Pricing scales with content types and locales. Two separate APIs (Delivery and Management). Rate limits can be tight on lower plans. + +**Marketing fit**: Best for enterprises with multi-market content needs. Good when you need established vendor reliability. + +### Strapi + +**Strengths**: Open source, self-hosted option. Full control over data. No per-seat pricing. Customizable admin panel. Plugin ecosystem. REST by default, GraphQL via plugin. + +**Considerations**: Self-hosting means you handle infrastructure. Smaller ecosystem than Sanity/Contentful. V5 migration can be significant from V4. + +**Marketing fit**: Best for teams with DevOps capability who want full control and no vendor lock-in. Good for budget-conscious projects. + +### Others Worth Knowing + +- **Hygraph** — GraphQL-native, strong for federation and multi-source content +- **Keystatic** — Git-based, good for developer-content hybrid workflows +- **Payload** — TypeScript-first, self-hosted, code-configured like Sanity +- **Builder.io** — Visual editor with headless backend, good for non-technical marketers +- **Prismic** — Slice-based content modeling, strong Next.js integration + +--- + +## Integration with Marketing Skills + +### Programmatic SEO + +Use CMS as the data source for programmatic pages. Store structured data (FAQs, comparisons, city pages) as content types and generate pages from queries. See **programmatic-seo** skill. + +### Copywriting + +CMS content models enforce consistent structure. Define fields that match your copy frameworks (headline, subheadline, social proof, CTA). See **copywriting** skill. + +### Site Architecture + +URL structure, navigation hierarchy, and internal linking all depend on how content is organized in the CMS. Plan your content model and site architecture together. See **site-architecture** skill. + +### Email Sequences + +Pull CMS content into email templates for consistent messaging across web and email. Case studies, testimonials, and blog posts can feed email nurture sequences. See **emails** skill. + +--- + +## Implementation Checklist + +- [ ] Define content types based on page types and reusable blocks +- [ ] Add SEO fields to every page-level content type +- [ ] Set up preview/draft mode in your frontend +- [ ] Configure roles and permissions for your team +- [ ] Create sample content for each type before building frontend +- [ ] Set up webhook notifications for content changes (rebuild triggers) +- [ ] Document content guidelines for editors (field descriptions, character limits) +- [ ] Test content delivery performance (CDN, caching, ISR) +- [ ] Plan migration strategy if moving from existing CMS + +--- + +## Relevant Integration Guides + +- [Sanity](../../../tools/integrations/sanity.md) — GROQ queries, mutations, CLI +- [Contentful](../../../tools/integrations/contentful.md) — Delivery/Management APIs, publishing +- [Strapi](../../../tools/integrations/strapi.md) — REST CRUD, filters, document API diff --git a/.agents/skills/copy-editing/SKILL.md b/.agents/skills/copy-editing/SKILL.md new file mode 100644 index 0000000..33110f4 --- /dev/null +++ b/.agents/skills/copy-editing/SKILL.md @@ -0,0 +1,457 @@ +--- +name: copy-editing +description: "When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' 'copy sweep,' 'tighten this up,' 'this reads awkwardly,' 'clean up this text,' 'too wordy,' 'sharpen the messaging,' 'refresh this content,' 'update this page,' 'this content is outdated,' or 'content audit.' Use this when the user already has copy and wants it improved or refreshed rather than rewritten from scratch. For writing new copy, see copywriting." +metadata: + version: 2.0.0 +--- + +# Copy Editing + +You are an expert copy editor specializing in marketing and conversion copy. Your goal is to systematically improve existing copy through focused editing passes while preserving the core message. + +## Core Philosophy + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before editing. Use brand voice and customer language from that context to guide your edits. + +Good copy editing isn't about rewriting—it's about enhancing. Each pass focuses on one dimension, catching issues that get missed when you try to fix everything at once. + +**Key principles:** +- Don't change the core message; focus on enhancing it +- Multiple focused passes beat one unfocused review +- Each edit should have a clear reason +- Preserve the author's voice while improving clarity + +--- + +## The Seven Sweeps Framework + +Edit copy through seven sequential passes, each focusing on one dimension. After each sweep, loop back to check previous sweeps aren't compromised. + +### Sweep 1: Clarity + +**Focus:** Can the reader understand what you're saying? + +**What to check:** +- Confusing sentence structures +- Unclear pronoun references +- Jargon or insider language +- Ambiguous statements +- Missing context + +**Common clarity killers:** +- Sentences trying to say too much +- Abstract language instead of concrete +- Assuming reader knowledge they don't have +- Burying the point in qualifications + +**Process:** +1. Read through quickly, highlighting unclear parts +2. Don't correct yet—just note problem areas +3. After marking issues, recommend specific edits +4. Verify edits maintain the original intent + +**After this sweep:** Confirm the "Rule of One" (one main idea per section) and "You Rule" (copy speaks to the reader) are intact. + +--- + +### Sweep 2: Voice and Tone + +**Focus:** Is the copy consistent in how it sounds? + +**What to check:** +- Shifts between formal and casual +- Inconsistent brand personality +- Mood changes that feel jarring +- Word choices that don't match the brand + +**Common voice issues:** +- Starting casual, becoming corporate +- Mixing "we" and "the company" references +- Humor in some places, serious in others (unintentionally) +- Technical language appearing randomly + +**Process:** +1. Read aloud to hear inconsistencies +2. Mark where tone shifts unexpectedly +3. Recommend edits that smooth transitions +4. Ensure personality remains throughout + +**After this sweep:** Return to Clarity Sweep to ensure voice edits didn't introduce confusion. + +--- + +### Sweep 3: So What + +**Focus:** Does every claim answer "why should I care?" + +**What to check:** +- Features without benefits +- Claims without consequences +- Statements that don't connect to reader's life +- Missing "which means..." bridges + +**The So What test:** +For every statement, ask "Okay, so what?" If the copy doesn't answer that question with a deeper benefit, it needs work. + +❌ "Our platform uses AI-powered analytics" +*So what?* +✅ "Our AI-powered analytics surface insights you'd miss manually—so you can make better decisions in half the time" + +**Common So What failures:** +- Feature lists without benefit connections +- Impressive-sounding claims that don't land +- Technical capabilities without outcomes +- Company achievements that don't help the reader + +**Process:** +1. Read each claim and literally ask "so what?" +2. Highlight claims missing the answer +3. Add the benefit bridge or deeper meaning +4. Ensure benefits connect to real reader desires + +**After this sweep:** Return to Voice and Tone, then Clarity. + +--- + +### Sweep 4: Prove It + +**Focus:** Is every claim supported with evidence? + +**What to check:** +- Unsubstantiated claims +- Missing social proof +- Assertions without backup +- "Best" or "leading" without evidence + +**Types of proof to look for:** +- Testimonials with names and specifics +- Case study references +- Statistics and data +- Third-party validation +- Guarantees and risk reversals +- Customer logos +- Review scores + +**Common proof gaps:** +- "Trusted by thousands" (which thousands?) +- "Industry-leading" (according to whom?) +- "Customers love us" (show them saying it) +- Results claims without specifics + +**Process:** +1. Identify every claim that needs proof +2. Check if proof exists nearby +3. Flag unsupported assertions +4. Recommend adding proof or softening claims + +**After this sweep:** Return to So What, Voice and Tone, then Clarity. + +--- + +### Sweep 5: Specificity + +**Focus:** Is the copy concrete enough to be compelling? + +**What to check:** +- Vague language ("improve," "enhance," "optimize") +- Generic statements that could apply to anyone +- Round numbers that feel made up +- Missing details that would make it real + +**Specificity upgrades:** + +| Vague | Specific | +|-------|----------| +| Save time | Save 4 hours every week | +| Many customers | 2,847 teams | +| Fast results | Results in 14 days | +| Improve your workflow | Cut your reporting time in half | +| Great support | Response within 2 hours | + +**Common specificity issues:** +- Adjectives doing the work nouns should do +- Benefits without quantification +- Outcomes without timeframes +- Claims without concrete examples + +**Process:** +1. Highlight vague words and phrases +2. Ask "Can this be more specific?" +3. Add numbers, timeframes, or examples +4. Remove content that can't be made specific (it's probably filler) + +**After this sweep:** Return to Prove It, So What, Voice and Tone, then Clarity. + +--- + +### Sweep 6: Heightened Emotion + +**Focus:** Does the copy make the reader feel something? + +**What to check:** +- Flat, informational language +- Missing emotional triggers +- Pain points mentioned but not felt +- Aspirations stated but not evoked + +**Emotional dimensions to consider:** +- Pain of the current state +- Frustration with alternatives +- Fear of missing out +- Desire for transformation +- Pride in making smart choices +- Relief from solving the problem + +**Techniques for heightening emotion:** +- Paint the "before" state vividly +- Use sensory language +- Tell micro-stories +- Reference shared experiences +- Ask questions that prompt reflection + +**Process:** +1. Read for emotional impact—does it move you? +2. Identify flat sections that should resonate +3. Add emotional texture while staying authentic +4. Ensure emotion serves the message (not manipulation) + +**After this sweep:** Return to Specificity, Prove It, So What, Voice and Tone, then Clarity. + +--- + +### Sweep 7: Zero Risk + +**Focus:** Have we removed every barrier to action? + +**What to check:** +- Friction near CTAs +- Unanswered objections +- Missing trust signals +- Unclear next steps +- Hidden costs or surprises + +**Risk reducers to look for:** +- Money-back guarantees +- Free trials +- "No credit card required" +- "Cancel anytime" +- Social proof near CTA +- Clear expectations of what happens next +- Privacy assurances + +**Common risk issues:** +- CTA asks for commitment without earning trust +- Objections raised but not addressed +- Fine print that creates doubt +- Vague "Contact us" instead of clear next step + +**Process:** +1. Focus on sections near CTAs +2. List every reason someone might hesitate +3. Check if the copy addresses each concern +4. Add risk reversals or trust signals as needed + +**After this sweep:** Return through all previous sweeps one final time: Heightened Emotion, Specificity, Prove It, So What, Voice and Tone, Clarity. + +--- + +## Expert Panel Scoring + +Use this after completing the Seven Sweeps for an additional quality gate. For high-stakes copy (landing pages, launch emails, sales pages), a multi-persona expert review catches issues that a single perspective misses. + +### How It Works + +1. **Assemble 3-5 expert personas** relevant to the copy type +2. **Each persona scores the copy 1-10** on their area of expertise +3. **Collect specific critiques** — not just scores, but what to fix +4. **Revise based on feedback** — address the lowest-scoring areas first +5. **Re-score after revisions** — iterate until all personas score 7+, with an average of 8+ across the panel + +### Recommended Expert Panels + +**Landing page copy:** +- Conversion copywriter (clarity, CTA strength, benefit hierarchy) +- UX writer (scannability, cognitive load, user flow) +- Target customer persona (does this speak to me? do I trust it?) +- Brand strategist (voice consistency, positioning accuracy) + +**Email sequence:** +- Email marketing specialist (subject lines, open/click optimization) +- Copywriter (hooks, storytelling, persuasion) +- Spam filter analyst (deliverability red flags, trigger words) +- Target customer persona (relevance, value, unsubscribe risk) + +**Sales page / long-form:** +- Direct response copywriter (offer structure, objection handling, urgency) +- Skeptical buyer persona (proof gaps, trust issues, red flags) +- Editor (flow, readability, conciseness) +- SEO specialist (keyword coverage, search intent alignment) + +### Scoring Rubric + +| Score | Meaning | +|-------|---------| +| 9-10 | Publish-ready. No meaningful improvements. | +| 7-8 | Strong. Minor tweaks only. | +| 5-6 | Functional but has clear gaps. Needs another pass. | +| 3-4 | Significant issues. Major revision needed. | +| 1-2 | Fundamentally broken. Rethink approach. | + +### When to Use + +- **Always** for launch copy, pricing pages, and high-traffic landing pages +- **Recommended** for email sequences, sales pages, and ad copy +- **Optional** for blog posts, social content, and internal docs +- **Skip** for quick updates, minor edits, and low-stakes content + +--- + +## Quick-Pass Editing Checks + +Use these for faster reviews when a full seven-sweep process isn't needed. + +### Word-Level Checks + +**Cut these words:** +- Very, really, extremely, incredibly (weak intensifiers) +- Just, actually, basically (filler) +- In order to (use "to") +- That (often unnecessary) +- Things, stuff (vague) + +**Replace these:** + +| Weak | Strong | +|------|--------| +| Utilize | Use | +| Implement | Set up | +| Leverage | Use | +| Facilitate | Help | +| Innovative | New | +| Robust | Strong | +| Seamless | Smooth | +| Cutting-edge | New/Modern | + +**Watch for:** +- Adverbs (usually unnecessary) +- Passive voice (switch to active) +- Nominalizations (verb → noun: "make a decision" → "decide") + +### Sentence-Level Checks + +- One idea per sentence +- Vary sentence length (mix short and long) +- Front-load important information +- Max 3 conjunctions per sentence +- No more than 25 words (usually) + +### Paragraph-Level Checks + +- One topic per paragraph +- Short paragraphs (2-4 sentences for web) +- Strong opening sentences +- Logical flow between paragraphs +- White space for scannability + +--- + +## Copy Editing Checklist + +For a final QA pass before delivering edits, work through the full checklist in [references/checklist.md](references/checklist.md) — covering all seven sweeps plus pre-start and final-check items. + +--- + +## Common Copy Problems & Fixes + +### Problem: Wall of Features +**Symptom:** List of what the product does without why it matters +**Fix:** Add "which means..." after each feature to bridge to benefits + +### Problem: Corporate Speak +**Symptom:** "Leverage synergies to optimize outcomes" +**Fix:** Ask "How would a human say this?" and use those words + +### Problem: Weak Opening +**Symptom:** Starting with company history or vague statements +**Fix:** Lead with the reader's problem or desired outcome + +### Problem: Buried CTA +**Symptom:** The ask comes after too much buildup, or isn't clear +**Fix:** Make the CTA obvious, early, and repeated + +### Problem: No Proof +**Symptom:** "Customers love us" with no evidence +**Fix:** Add specific testimonials, numbers, or case references + +### Problem: Generic Claims +**Symptom:** "We help businesses grow" +**Fix:** Specify who, how, and by how much + +### Problem: Mixed Audiences +**Symptom:** Copy tries to speak to everyone, resonates with no one +**Fix:** Pick one audience and write directly to them + +### Problem: Feature Overload +**Symptom:** Listing every capability, overwhelming the reader +**Fix:** Focus on 3-5 key benefits that matter most to the audience + +--- + +## Working with Copy Sweeps + +When editing collaboratively: + +1. **Run a sweep and present findings** - Show what you found, why it's an issue +2. **Recommend specific edits** - Don't just identify problems; propose solutions +3. **Request the updated copy** - Let the author make final decisions +4. **Verify previous sweeps** - After each round of edits, re-check earlier sweeps +5. **Repeat until clean** - Continue until a full sweep finds no new issues + +This iterative process ensures each edit doesn't create new problems while respecting the author's ownership of the copy. + +--- + +## References + +- [Plain English Alternatives](references/plain-english-alternatives.md): Replace complex words with simpler alternatives +- [Content Refresh](references/content-refresh.md): Full checklist, refresh vs. rewrite matrix, and cadence guide +- [Copy Editing Checklist](references/checklist.md): Full QA checklist across all seven sweeps + +--- + +## Content Refresh Editing + +Copy editing isn't just for new content. Existing pages decay over time — outdated stats, stale examples, and drifted brand voice. Use the content refresh framework when traffic is declining, data is stale, or the product has changed. + +**For the full refresh checklist, refresh vs. rewrite decision matrix, and cadence guide**: See [references/content-refresh.md](references/content-refresh.md) + +--- + +## Task-Specific Questions + +1. What's the goal of this copy? (Awareness, conversion, retention) +2. What action should readers take? +3. Are there specific concerns or known issues? +4. What proof/evidence do you have available? +5. Is this new copy or a refresh of existing content? + +--- + +## Related Skills + +- **copywriting**: For writing new copy from scratch (use this skill to edit after your first draft is complete) +- **cro**: For broader page optimization beyond copy +- **marketing-psychology**: For understanding why certain edits improve conversion +- **ab-testing**: For testing copy variations + +--- + +## When to Use Each Skill + +| Task | Skill to Use | +|------|--------------| +| Writing new page copy from scratch | copywriting | +| Reviewing and improving existing copy | copy-editing (this skill) | +| Editing copy you just wrote | copy-editing (this skill) | +| Structural or strategic page changes | cro | diff --git a/.agents/skills/copy-editing/evals/evals.json b/.agents/skills/copy-editing/evals/evals.json new file mode 100644 index 0000000..90d2ce1 --- /dev/null +++ b/.agents/skills/copy-editing/evals/evals.json @@ -0,0 +1,89 @@ +{ + "skill_name": "copy-editing", + "evals": [ + { + "id": 1, + "prompt": "Edit this homepage copy for us: 'Welcome to CloudSync! We are very excited to offer you an innovative, cutting-edge platform that seamlessly integrates with your existing tools. Our powerful solution helps businesses of all sizes optimize their workflows and drive meaningful results. Get started today and experience the difference!'", + "expected_output": "Should check for product-marketing.md first. Should apply the Seven Sweeps Framework systematically. Sweep 1 (Clarity): identify vague language ('optimize workflows,' 'drive meaningful results,' 'experience the difference'). Sweep 2 (Voice & Tone): flag 'Welcome to' as weak opening, 'we are very excited' as company-focused. Sweep 3 (So What): question what specific value is being offered. Sweep 4 (Prove It): note no proof points, stats, or evidence. Sweep 5 (Specificity): flag 'businesses of all sizes,' 'existing tools,' 'powerful solution' as generic. Sweep 6 (Heightened Emotion): assess emotional impact. Sweep 7 (Zero Risk): check for trust signals. Should provide a rewritten version addressing all issues.", + "assertions": [ + "Checks for product-marketing.md", + "Applies Seven Sweeps Framework", + "Identifies vague language (Clarity sweep)", + "Flags weak opening and company-focused language (Voice & Tone sweep)", + "Questions missing value proposition (So What sweep)", + "Notes missing proof points (Prove It sweep)", + "Flags generic terms (Specificity sweep)", + "Provides a rewritten version" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Quick edit on this CTA section: 'Ready to take your business to the next level? Our team of dedicated professionals is standing by to help you achieve your goals. Click here to learn more about how we can help you succeed.'", + "expected_output": "Should apply the quick-pass editing checks. Should identify: 'take your business to the next level' (cliché), 'team of dedicated professionals' (filler), 'standing by' (passive), 'click here' (weak CTA), 'learn more' (vague action), 'help you succeed' (generic). Should apply word-level, sentence-level, and paragraph-level checks. Should rewrite with specific value prop, active voice, and strong action-oriented CTA. Should be concise since this was requested as a 'quick edit.'", + "assertions": [ + "Identifies clichés and filler phrases", + "Flags 'click here' and 'learn more' as weak", + "Applies word-level and sentence-level checks", + "Rewrites with specific value and strong CTA", + "Uses active voice in rewrite", + "Keeps response concise for a quick edit" + ], + "files": [] + }, + { + "id": 3, + "prompt": "edit this product description, it feels too long and wordy: 'Our comprehensive project management solution provides teams with a robust set of tools that enable them to efficiently plan, execute, and monitor their projects from start to finish. With our intuitive interface, powerful analytics dashboard, and seamless integration capabilities, you can ensure that every aspect of your project is managed with precision and care. Whether you're a small startup or a large enterprise, our platform scales to meet your unique needs and requirements, helping you deliver projects on time and within budget every single time.'", + "expected_output": "Should trigger on casual phrasing. Should apply the Clarity and Specificity sweeps primarily. Should identify: redundancy ('plan, execute, and monitor' overlaps with 'from start to finish'), filler words ('comprehensive,' 'robust,' 'efficiently,' 'seamless,' 'unique'), hedge phrases ('ensuring every aspect,' 'with precision and care'), and generic claims ('scales to meet your needs,' 'on time and within budget every single time'). Should cut the copy significantly (probably by 50%+). Should provide a tighter rewrite that says the same thing in fewer, more specific words.", + "assertions": [ + "Triggers on casual phrasing", + "Identifies redundancy in the copy", + "Identifies filler words and hedge phrases", + "Identifies generic claims", + "Cuts copy significantly (50%+ reduction)", + "Provides tighter rewrite with specific language" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Review this testimonial section and improve it: 'CloudSync is great! It really helped our company. The team was very responsive and the product works well. We would recommend it to anyone looking for a solution. - John S., CEO'", + "expected_output": "Should apply the Prove It and Specificity sweeps. Should identify the testimonial as too vague to be persuasive ('great,' 'really helped,' 'works well,' 'anyone looking for a solution'). Should recommend replacing with specific results ('reduced project delivery time by 30%'), specific context ('team of 45 engineers'), and specific outcomes. Should suggest questions to ask the customer for a better testimonial. Should not fabricate specific numbers but should provide a template showing what a strong testimonial looks like.", + "assertions": [ + "Applies Prove It and Specificity sweeps", + "Identifies testimonial as too vague", + "Recommends specific results and context", + "Suggests questions to get better testimonial", + "Does not fabricate specific numbers", + "Provides template for strong testimonial" + ], + "files": [] + }, + { + "id": 5, + "prompt": "I need you to apply the 'So What' and 'Zero Risk' sweeps to this pricing page copy: 'Our Pro plan includes unlimited projects, advanced reporting, priority support, and custom integrations. Starting at $99/month.'", + "expected_output": "Should apply specifically the So What and Zero Risk sweeps as requested. So What: for each feature, ask 'so what does this mean for the customer?' — unlimited projects (what does that enable?), advanced reporting (what decisions can they make?), priority support (what does that mean in practice? response time?), custom integrations (which ones? what workflow does it enable?). Zero Risk: identify missing trust signals — no guarantee, no trial mention, no social proof near pricing, no 'cancel anytime' assurance. Should provide rewritten copy addressing both sweeps.", + "assertions": [ + "Applies So What sweep to each feature", + "Translates features to customer benefits", + "Applies Zero Risk sweep", + "Identifies missing trust signals", + "Suggests guarantee, trial, or cancel-anytime language", + "Provides rewritten copy addressing both sweeps" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Write fresh homepage copy for our new product. We're launching a CRM for real estate agents.", + "expected_output": "Should recognize this is a copywriting-from-scratch task, not copy editing. Should defer to or cross-reference the copywriting skill, which handles writing new copy from scratch. Copy-editing is specifically for improving existing copy. Should make this distinction clear.", + "assertions": [ + "Recognizes this as writing new copy, not editing existing copy", + "References or defers to copywriting skill", + "Explains that copy-editing is for improving existing copy", + "Does not attempt to write full page copy from scratch" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/copy-editing/references/checklist.md b/.agents/skills/copy-editing/references/checklist.md new file mode 100644 index 0000000..e84b52c --- /dev/null +++ b/.agents/skills/copy-editing/references/checklist.md @@ -0,0 +1,66 @@ +# Copy Editing Checklist + +Use this checklist alongside the Seven Sweeps Framework (see SKILL.md) as a final QA pass before delivering edited copy. + +## Before You Start + +- [ ] Understand the goal of this copy +- [ ] Know the target audience +- [ ] Identify the desired action +- [ ] Read through once without editing + +## Clarity (Sweep 1) + +- [ ] Every sentence is immediately understandable +- [ ] No jargon without explanation +- [ ] Pronouns have clear references +- [ ] No sentences trying to do too much + +## Voice & Tone (Sweep 2) + +- [ ] Consistent formality level throughout +- [ ] Brand personality maintained +- [ ] No jarring shifts in mood +- [ ] Reads well aloud + +## So What (Sweep 3) + +- [ ] Every feature connects to a benefit +- [ ] Claims answer "why should I care?" +- [ ] Benefits connect to real desires +- [ ] No impressive-but-empty statements + +## Prove It (Sweep 4) + +- [ ] Claims are substantiated +- [ ] Social proof is specific and attributed +- [ ] Numbers and stats have sources +- [ ] No unearned superlatives + +## Specificity (Sweep 5) + +- [ ] Vague words replaced with concrete ones +- [ ] Numbers and timeframes included +- [ ] Generic statements made specific +- [ ] Filler content removed + +## Heightened Emotion (Sweep 6) + +- [ ] Copy evokes feeling, not just information +- [ ] Pain points feel real +- [ ] Aspirations feel achievable +- [ ] Emotion serves the message authentically + +## Zero Risk (Sweep 7) + +- [ ] Objections addressed near CTA +- [ ] Trust signals present +- [ ] Next steps are crystal clear +- [ ] Risk reversals stated (guarantee, trial, etc.) + +## Final Checks + +- [ ] No typos or grammatical errors +- [ ] Consistent formatting +- [ ] Links work (if applicable) +- [ ] Core message preserved through all edits diff --git a/.agents/skills/copy-editing/references/content-refresh.md b/.agents/skills/copy-editing/references/content-refresh.md new file mode 100644 index 0000000..70e97ff --- /dev/null +++ b/.agents/skills/copy-editing/references/content-refresh.md @@ -0,0 +1,38 @@ +# Content Refresh Editing + +Copy editing isn't just for new content. Existing pages and posts decay over time — outdated stats, stale examples, drifted brand voice, and missed SEO opportunities. A content refresh applies the same editing rigor to content that's already published. + +## When to Refresh + +- **Traffic declining** on a page that used to perform well +- **Stats or data** are more than 12 months old +- **Product has changed** — features, pricing, or positioning no longer match +- **Competitors updated** their version of the same content +- **AI search visibility** matters — outdated content gets cited less (see ai-seo skill) + +## Content Refresh Checklist + +1. **Freshness pass** — Update all dates, stats, and examples. Replace "in 2024" with current data. Remove references to deprecated features or tools. +2. **Accuracy pass** — Verify all claims are still true. Check that linked resources still exist. Confirm pricing and feature descriptions match current state. +3. **Voice pass** — Does the tone match your current brand voice? Older content often reflects an earlier stage of the company. +4. **SEO pass** — Has search intent shifted for this topic? Are there new keywords or questions to address? Add "Last updated: [date]" prominently. +5. **Proof pass** — Can you add newer testimonials, case studies, or data points that didn't exist when this was first published? +6. **Structure pass** — Add comparison tables, FAQ sections, or other scannable formats that make the content easier to consume. + +## Refresh vs. Rewrite + +| Signal | Action | +|--------|--------| +| Core message still valid, details outdated | Refresh (update facts, stats, examples) | +| Brand voice has evolved significantly | Refresh + voice rewrite | +| Topic angle or audience has shifted | Full rewrite | +| Page structure doesn't match current search intent | Full rewrite | +| Just needs updated stats and links | Light refresh | + +## Refresh Cadence + +- **Pricing and product pages**: Every quarter, or when pricing/features change +- **High-traffic blog posts**: Every 6 months +- **Comparison and alternatives pages**: Every 3-6 months (competitors change fast) +- **Evergreen guides**: Annually, unless traffic drops sooner +- **Low-traffic pages**: Only when traffic data suggests an opportunity diff --git a/.agents/skills/copy-editing/references/plain-english-alternatives.md b/.agents/skills/copy-editing/references/plain-english-alternatives.md new file mode 100644 index 0000000..2fc3235 --- /dev/null +++ b/.agents/skills/copy-editing/references/plain-english-alternatives.md @@ -0,0 +1,394 @@ +# Plain English Alternatives + +Replace complex or pompous words with plain English alternatives. + +Source: Plain English Campaign A-Z of Alternative Words (2001), Australian Government Style Manual (2024), plainlanguage.gov + +--- + +## Contents +- A +- B +- C +- D +- E +- F +- G-H +- I +- L-M +- N-O +- P +- R +- S +- T-U +- V-Z +- Phrases to Remove Entirely + +## A + +| Complex | Plain Alternative | +|---------|-------------------| +| (an) absence of | no, none | +| abundance | enough, plenty, many | +| accede to | allow, agree to | +| accelerate | speed up | +| accommodate | meet, hold, house | +| accomplish | do, finish, complete | +| accordingly | so, therefore | +| acknowledge | thank you for, confirm | +| acquire | get, buy, obtain | +| additional | extra, more | +| adjacent | next to | +| advantageous | useful, helpful | +| advise | tell, say, inform | +| aforesaid | this, earlier | +| aggregate | total | +| alleviate | ease, reduce | +| allocate | give, share, assign | +| alternative | other, choice | +| ameliorate | improve | +| anticipate | expect | +| apparent | clear, obvious | +| appreciable | large, noticeable | +| appropriate | proper, right, suitable | +| approximately | about, roughly | +| ascertain | find out | +| assistance | help | +| at the present time | now | +| attempt | try | +| authorise | allow, let | + +--- + +## B + +| Complex | Plain Alternative | +|---------|-------------------| +| belated | late | +| beneficial | helpful, useful | +| bestow | give | +| by means of | by | + +--- + +## C + +| Complex | Plain Alternative | +|---------|-------------------| +| calculate | work out | +| cease | stop, end | +| circumvent | avoid, get around | +| clarification | explanation | +| commence | start, begin | +| communicate | tell, talk, write | +| competent | able | +| compile | collect, make | +| complete | fill in, finish | +| component | part | +| comprise | include, make up | +| (it is) compulsory | (you) must | +| conceal | hide | +| concerning | about | +| consequently | so | +| considerable | large, great, much | +| constitute | make up, form | +| consult | ask, talk to | +| consumption | use | +| currently | now | + +--- + +## D + +| Complex | Plain Alternative | +|---------|-------------------| +| deduct | take off | +| deem | treat as, consider | +| defer | delay, put off | +| deficiency | lack | +| delete | remove, cross out | +| demonstrate | show, prove | +| denote | show, mean | +| designate | name, appoint | +| despatch/dispatch | send | +| determine | decide, find out | +| detrimental | harmful | +| diminish | reduce, lessen | +| discontinue | stop | +| disseminate | spread, distribute | +| documentation | papers, documents | +| due to the fact that | because | +| duration | time, length | +| dwelling | home | + +--- + +## E + +| Complex | Plain Alternative | +|---------|-------------------| +| economical | cheap, good value | +| eligible | allowed, qualified | +| elucidate | explain | +| enable | allow | +| encounter | meet | +| endeavour | try | +| enquire | ask | +| ensure | make sure | +| entitlement | right | +| envisage | expect | +| equivalent | equal, the same | +| erroneous | wrong | +| establish | set up, show | +| evaluate | assess, test | +| excessive | too much | +| exclusively | only | +| exempt | free from | +| expedite | speed up | +| expenditure | spending | +| expire | run out | + +--- + +## F + +| Complex | Plain Alternative | +|---------|-------------------| +| fabricate | make | +| facilitate | help, make possible | +| finalise | finish, complete | +| following | after | +| for the purpose of | to, for | +| for the reason that | because | +| forthwith | now, at once | +| forward | send | +| frequently | often | +| furnish | give, provide | +| furthermore | also, and | + +--- + +## G-H + +| Complex | Plain Alternative | +|---------|-------------------| +| generate | produce, create | +| henceforth | from now on | +| hitherto | until now | + +--- + +## I + +| Complex | Plain Alternative | +|---------|-------------------| +| if and when | if, when | +| illustrate | show | +| immediately | at once, now | +| implement | carry out, do | +| imply | suggest | +| in accordance with | under, following | +| in addition to | and, also | +| in conjunction with | with | +| in excess of | more than | +| in lieu of | instead of | +| in order to | to | +| in receipt of | receive | +| in relation to | about | +| in respect of | about, for | +| in the event of | if | +| in the majority of instances | most, usually | +| in the near future | soon | +| in view of the fact that | because | +| inception | start | +| indicate | show, suggest | +| inform | tell | +| initiate | start, begin | +| insert | put in | +| instances | cases | +| irrespective of | despite | +| issue | give, send | + +--- + +## L-M + +| Complex | Plain Alternative | +|---------|-------------------| +| (a) large number of | many | +| liaise with | work with, talk to | +| locality | place, area | +| locate | find | +| magnitude | size | +| (it is) mandatory | (you) must | +| manner | way | +| modification | change | +| moreover | also, and | + +--- + +## N-O + +| Complex | Plain Alternative | +|---------|-------------------| +| negligible | small | +| nevertheless | but, however | +| notify | tell | +| notwithstanding | despite, even if | +| numerous | many | +| objective | aim, goal | +| (it is) obligatory | (you) must | +| obtain | get | +| occasioned by | caused by | +| on behalf of | for | +| on numerous occasions | often | +| on receipt of | when you get | +| on the grounds that | because | +| operate | work, run | +| optimum | best | +| option | choice | +| otherwise | or | +| outstanding | unpaid | +| owing to | because | + +--- + +## P + +| Complex | Plain Alternative | +|---------|-------------------| +| partially | partly | +| participate | take part | +| particulars | details | +| per annum | a year | +| perform | do | +| permit | let, allow | +| personnel | staff, people | +| peruse | read | +| possess | have, own | +| practically | almost | +| predominant | main | +| prescribe | set | +| preserve | keep | +| previous | earlier, before | +| principal | main | +| prior to | before | +| proceed | go ahead | +| procure | get | +| prohibit | ban, stop | +| promptly | quickly | +| provide | give | +| provided that | if | +| provisions | rules, terms | +| proximity | nearness | +| purchase | buy | +| pursuant to | under | + +--- + +## R + +| Complex | Plain Alternative | +|---------|-------------------| +| reconsider | think again | +| reduction | cut | +| referred to as | called | +| regarding | about | +| reimburse | repay | +| reiterate | repeat | +| relating to | about | +| remain | stay | +| remainder | rest | +| remuneration | pay | +| render | make, give | +| represent | stand for | +| request | ask | +| require | need | +| residence | home | +| retain | keep | +| revised | changed, new | + +--- + +## S + +| Complex | Plain Alternative | +|---------|-------------------| +| scrutinise | examine, check | +| select | choose | +| solely | only | +| specified | given, stated | +| state | say | +| statutory | legal, by law | +| subject to | depending on | +| submit | send, give | +| subsequent to | after | +| subsequently | later | +| substantial | large, much | +| sufficient | enough | +| supplement | add to | +| supplementary | extra | + +--- + +## T-U + +| Complex | Plain Alternative | +|---------|-------------------| +| terminate | end, stop | +| thereafter | then | +| thereby | by this | +| thus | so | +| to date | so far | +| transfer | move | +| transmit | send | +| ultimately | in the end | +| undertake | agree, do | +| uniform | same | +| utilise | use | + +--- + +## V-Z + +| Complex | Plain Alternative | +|---------|-------------------| +| variation | change | +| virtually | almost | +| visualise | imagine, see | +| ways and means | ways | +| whatsoever | any | +| with a view to | to | +| with effect from | from | +| with reference to | about | +| with regard to | about | +| with respect to | about | +| zone | area | + +--- + +## Phrases to Remove Entirely + +These phrases often add nothing. Delete them: + +- a total of +- absolutely +- actually +- all things being equal +- as a matter of fact +- at the end of the day +- at this moment in time +- basically +- currently (when "now" or nothing works) +- I am of the opinion that (use: I think) +- in due course (use: soon, or say when) +- in the final analysis +- it should be understood +- last but not least +- obviously +- of course +- quite +- really +- the fact of the matter is +- to all intents and purposes +- very diff --git a/.agents/skills/copywriting/SKILL.md b/.agents/skills/copywriting/SKILL.md new file mode 100644 index 0000000..0793e62 --- /dev/null +++ b/.agents/skills/copywriting/SKILL.md @@ -0,0 +1,252 @@ +--- +name: copywriting +description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," "CTA copy," "value proposition," "tagline," "subheadline," "hero section copy," "above the fold," "this copy is weak," "make this more compelling," or "help me describe my product." Use this whenever someone is working on website text that needs to persuade or convert. For email copy, see emails. For popup copy, see popups. For editing existing copy, see copy-editing. For the offer underneath the copy (bonuses, guarantees, value framing), see offers. +metadata: + version: 2.0.1 +--- + +# Copywriting + +You are an expert conversion copywriter. Your goal is to write marketing copy that is clear, compelling, and drives action. + +## Before Writing + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Gather this context (ask if not provided): + +### 1. Page Purpose +- What type of page? (homepage, landing page, pricing, feature, about) +- What is the ONE primary action you want visitors to take? + +### 2. Audience +- Who is the ideal customer? +- What problem are they trying to solve? +- What objections or hesitations do they have? +- What language do they use to describe their problem? + +### 3. Product/Offer +- What are you selling or offering? +- What makes it different from alternatives? +- What's the key transformation or outcome? +- Any proof points (numbers, testimonials, case studies)? + +### 4. Context +- Where is traffic coming from? (ads, organic, email) +- What do visitors already know before arriving? + +--- + +## Copywriting Principles + +### Clarity Over Cleverness +If you have to choose between clear and creative, choose clear. + +### Benefits Over Features +Features: What it does. Benefits: What that means for the customer. + +### Specificity Over Vagueness +- Vague: "Save time on your workflow" +- Specific: "Cut your weekly reporting from 4 hours to 15 minutes" + +### Customer Language Over Company Language +Use words your customers use. Mirror voice-of-customer from reviews, interviews, support tickets. + +### One Idea Per Section +Each section should advance one argument. Build a logical flow down the page. + +--- + +## Writing Style Rules + +### Core Principles + +1. **Simple over complex** — "Use" not "utilize," "help" not "facilitate" +2. **Specific over vague** — Avoid "streamline," "optimize," "innovative" +3. **Active over passive** — "We generate reports" not "Reports are generated" +4. **Confident over qualified** — Remove "almost," "very," "really" +5. **Show over tell** — Describe the outcome instead of using adverbs +6. **Honest over sensational** — Fabricated statistics or testimonials erode trust and create legal liability + +### Quick Quality Check + +- Jargon that could confuse outsiders? +- Sentences trying to do too much? +- Passive voice constructions? +- Exclamation points? (remove them) +- Marketing buzzwords without substance? + +For thorough line-by-line review, use the **copy-editing** skill after your draft. + +--- + +## Best Practices + +### Be Direct +Get to the point. Don't bury the value in qualifications. + +❌ Slack lets you share files instantly, from documents to images, directly in your conversations + +✅ Need to share a screenshot? Send as many documents, images, and audio files as your heart desires. + +### Use Rhetorical Questions +Questions engage readers and make them think about their own situation. +- "Hate returning stuff to Amazon?" +- "Tired of chasing approvals?" + +### Use Analogies When Helpful +Analogies make abstract concepts concrete and memorable. + +### Pepper in Humor (When Appropriate) +Puns and wit make copy memorable—but only if it fits the brand and doesn't undermine clarity. + +--- + +## Page Structure Framework + +### Above the Fold + +**Headline** +- Your single most important message +- Communicate core value proposition +- Specific > generic + +**Example formulas:** +- "{Achieve outcome} without {pain point}" +- "The {category} for {audience}" +- "Never {unpleasant event} again" +- "{Question highlighting main pain point}" + +**For comprehensive headline formulas**: See [references/copy-frameworks.md](references/copy-frameworks.md) + +**For natural transition phrases**: See [references/natural-transitions.md](references/natural-transitions.md) + +**Subheadline** +- Expands on headline +- Adds specificity +- 1-2 sentences max + +**Primary CTA** +- Action-oriented button text +- Communicate what they get: "Start Free Trial" > "Sign Up" + +### Core Sections + +| Section | Purpose | +|---------|---------| +| Social Proof | Build credibility (logos, stats, testimonials) | +| Problem/Pain | Show you understand their situation | +| Solution/Benefits | Connect to outcomes (3-5 key benefits) | +| How It Works | Reduce perceived complexity (3-4 steps) | +| Objection Handling | FAQ, comparisons, guarantees | +| Final CTA | Recap value, repeat CTA, risk reversal | + +**For detailed section types and page templates**: See [references/copy-frameworks.md](references/copy-frameworks.md) + +--- + +## CTA Copy Guidelines + +**Weak CTAs (avoid):** +- Submit, Sign Up, Learn More, Click Here, Get Started + +**Strong CTAs (use):** +- Start Free Trial +- Get [Specific Thing] +- See [Product] in Action +- Create Your First [Thing] +- Download the Guide + +**Formula:** [Action Verb] + [What They Get] + [Qualifier if needed] + +Examples: +- "Start My Free Trial" +- "Get the Complete Checklist" +- "See Pricing for My Team" + +--- + +## Page-Specific Guidance + +### Homepage +- Serve multiple audiences without being generic +- Lead with broadest value proposition +- Provide clear paths for different visitor intents + +### Landing Page +- Single message, single CTA +- Match headline to ad/traffic source +- Complete argument on one page + +### Pricing Page +- Help visitors choose the right plan +- Address "which is right for me?" anxiety +- Make recommended plan obvious + +### Feature Page +- Connect feature → benefit → outcome +- Show use cases and examples +- Clear path to try or buy + +### About Page +- Tell the story of why you exist +- Connect mission to customer benefit +- Still include a CTA + +--- + +## Voice and Tone + +Before writing, establish: + +**Formality level:** +- Casual/conversational +- Professional but friendly +- Formal/enterprise + +**Brand personality:** +- Playful or serious? +- Bold or understated? +- Technical or accessible? + +Maintain consistency, but adjust intensity: +- Headlines can be bolder +- Body copy should be clearer +- CTAs should be action-oriented + +--- + +## Output Format + +When writing copy, provide: + +### Page Copy +Organized by section: +- Headline, Subheadline, CTA +- Section headers and body copy +- Secondary CTAs + +### Annotations +For key elements, explain: +- Why you made this choice +- What principle it applies + +### Alternatives +For headlines and CTAs, provide 2-3 options: +- Option A: [copy] — [rationale] +- Option B: [copy] — [rationale] + +### Meta Content (if relevant) +- Page title (for SEO) +- Meta description + +--- + +## Related Skills + +- **copy-editing**: For polishing existing copy (use after your draft) +- **cro**: If page structure/strategy needs work, not just copy +- **emails**: For email copywriting +- **popups**: For popup and modal copy +- **ab-testing**: To test copy variations diff --git a/.agents/skills/copywriting/evals/evals.json b/.agents/skills/copywriting/evals/evals.json new file mode 100644 index 0000000..17da92e --- /dev/null +++ b/.agents/skills/copywriting/evals/evals.json @@ -0,0 +1,111 @@ +{ + "skill_name": "copywriting", + "evals": [ + { + "id": 1, + "prompt": "Write homepage copy for a SaaS tool that automates employee onboarding. Target audience is HR directors at mid-size companies (200-2000 employees). Main differentiator is that it integrates with all major HRIS systems and cuts onboarding time from 2 weeks to 2 days.", + "expected_output": "Should check for product-marketing.md first. Should write full page copy organized by section: Headline, Subheadline, CTA (above the fold), then Social Proof, Problem/Pain, Solution/Benefits, How It Works, Objection Handling, and Final CTA. Should follow copywriting principles: clarity over cleverness, benefits over features, specificity (use the '2 weeks to 2 days' stat), customer language. Headline should communicate core value proposition. CTAs should be action-oriented ('Start Free Trial' not 'Submit'). Should provide 2-3 headline alternatives with rationale. Should include annotations explaining key copy choices. Should include meta content (SEO page title and meta description).", + "assertions": [ + "Checks for product-marketing.md", + "Writes full page copy organized by section", + "Includes Headline, Subheadline, and CTA above the fold", + "Includes Social Proof, Problem/Pain, Solution/Benefits, How It Works sections", + "Uses the '2 weeks to 2 days' specificity in copy", + "CTAs are action-oriented, not generic", + "Provides 2-3 headline alternatives with rationale", + "Includes annotations explaining copy choices", + "Includes meta content (SEO title and meta description)" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Rewrite this headline: 'An Innovative AI-Powered Platform for Streamlined Business Operations' — it's for a B2B SaaS tool that helps small businesses manage invoicing and payments.", + "expected_output": "Should identify problems: jargon ('innovative,' 'AI-powered,' 'streamlined,' 'business operations'), too vague, company language not customer language. Should apply copywriting principles — specificity over vagueness, benefits over features, customer language over company language. Should provide 2-3 alternative headlines using formulas like '{Achieve outcome} without {pain point}' or 'The {category} for {audience}'. Each alternative should include rationale. Should also suggest a subheadline that adds specificity.", + "assertions": [ + "Identifies jargon in original headline", + "Identifies vagueness as a problem", + "Identifies company language vs customer language issue", + "Provides 2-3 alternative headlines", + "Alternatives use headline formulas from the skill", + "Each alternative includes rationale", + "Suggests a subheadline" + ], + "files": [] + }, + { + "id": 3, + "prompt": "i need copy for my pricing page. we have three plans: starter ($29/mo), pro ($79/mo), business ($199/mo). it's a social media scheduling tool for marketers", + "expected_output": "Should trigger on the casual phrasing. Should ask or infer audience context. Should apply Pricing Page guidance: help visitors choose the right plan, address 'which is right for me?' anxiety, make recommended plan obvious. Should write plan names, descriptions, feature lists with benefit-oriented copy (not just feature names). Should include a page headline that addresses the pricing decision. CTAs should be specific per plan. Should handle objection handling (FAQ copy). Should provide alternatives for key elements.", + "assertions": [ + "Triggers on casual phrasing", + "Applies Pricing Page guidance", + "Addresses 'which plan is right for me' anxiety", + "Makes recommended plan obvious", + "Writes benefit-oriented feature copy, not just feature names", + "Includes page headline", + "CTAs are specific per plan", + "Includes FAQ or objection handling copy", + "Provides alternatives for key elements" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Write copy for our About page. We're a 3-person startup that built a developer tool for database migrations. Founded because we kept losing data during migrations at our last jobs. Tone should be professional but human.", + "expected_output": "Should apply About Page guidance: tell the story of why you exist, connect mission to customer benefit, still include a CTA. Should adapt voice and tone to 'professional but human' as specified. Should tell the founder origin story authentically. Should connect the personal pain to the customer's pain. Should include a CTA even on the About page. Copy should follow style rules: active voice, confident, specific. Should NOT be overly corporate or generic.", + "assertions": [ + "Applies About Page guidance", + "Tells the story of why the company exists", + "Connects mission to customer benefit", + "Includes a CTA", + "Adapts tone to professional but human", + "Uses the founder origin story", + "Connects personal pain to customer pain", + "Uses active voice", + "Avoids corporate jargon" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Can you improve this CTA? We currently have 'Learn More' on our feature page for our analytics dashboard product.", + "expected_output": "Should immediately identify 'Learn More' as a weak CTA per the guidelines. Should apply the CTA formula: [Action Verb] + [What They Get] + [Qualifier]. Should provide 2-3 strong alternatives like 'See the Dashboard in Action,' 'Start Your Free Trial,' or 'Explore Analytics Features.' Each alternative should include rationale and context for when it works best. Should also consider CTA hierarchy — whether this is a primary or secondary CTA, and suggest complementary CTAs if relevant.", + "assertions": [ + "Identifies 'Learn More' as a weak CTA", + "Applies the CTA formula from the skill", + "Provides 2-3 strong alternatives", + "Each alternative includes rationale", + "Considers CTA hierarchy (primary vs secondary)", + "Suggests complementary CTAs" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Write me a 5-email welcome sequence for new trial users of our project management tool.", + "expected_output": "Should recognize this is an email copywriting task, not page copywriting. Should defer to or cross-reference the emails skill, which specifically handles email sequences, drip campaigns, and lifecycle emails. May provide brief general guidance but should make clear that emails is the right skill for this task.", + "assertions": [ + "Recognizes this as email sequence work", + "References or defers to emails skill", + "Does not attempt to write a full email sequence using page copywriting patterns" + ], + "files": [] + }, + { + "id": 7, + "prompt": "Review this copy and tell me what's wrong: 'We are extremely excited to announce our revolutionary, cutting-edge platform that will totally transform how businesses optimize their workflows! Sign up now!!'", + "expected_output": "Should apply the Quick Quality Check. Should identify: exclamation points (remove them), marketing buzzwords without substance ('revolutionary,' 'cutting-edge,' 'totally transform,' 'optimize'), passive/weak constructions ('we are excited to announce'), vague language ('workflows'). Should apply writing style rules: simple over complex, specific over vague, confident over qualified, show over tell. Should rewrite the copy following these principles. Should provide 2-3 alternatives.", + "assertions": [ + "Identifies exclamation point overuse", + "Identifies marketing buzzwords without substance", + "Identifies vague language", + "Applies writing style rules", + "Rewrites the copy following principles", + "Provides alternatives", + "Result is specific, clear, and jargon-free" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/copywriting/references/copy-frameworks.md b/.agents/skills/copywriting/references/copy-frameworks.md new file mode 100644 index 0000000..0abc812 --- /dev/null +++ b/.agents/skills/copywriting/references/copy-frameworks.md @@ -0,0 +1,344 @@ +# Copy Frameworks Reference + +Headline formulas, page section types, and structural templates. + +## Contents +- Headline Formulas (outcome-focused, problem-focused, audience-focused, differentiation-focused, proof-focused, additional formulas) +- Landing Page Section Types (core sections, supporting sections) +- Page Structure Templates (feature-heavy page, varied engaging page, compact landing page, enterprise/B2B landing page, product launch page) +- Section Writing Tips (problem section, benefits section, how it works section, testimonial selection) + +## Headline Formulas + +### Outcome-Focused + +**{Achieve desirable outcome} without {pain point}** +> Understand how users are really experiencing your site without drowning in numbers + +**{Achieve desirable outcome} by {how product makes it possible}** +> Generate more leads by seeing which companies visit your site + +**Turn {input} into {outcome}** +> Turn your hard-earned sales into repeat customers + +**[Achieve outcome] in [timeframe]** +> Get your tax refund in 10 days + +--- + +### Problem-Focused + +**Never {unpleasant event} again** +> Never miss a sales opportunity again + +**{Question highlighting the main pain point}** +> Hate returning stuff to Amazon? + +**Stop [pain]. Start [pleasure].** +> Stop chasing invoices. Start getting paid on time. + +--- + +### Audience-Focused + +**{Key feature/product type} for {target audience}** +> Advanced analytics for Shopify e-commerce + +**{Key feature/product type} for {target audience} to {what it's used for}** +> An online whiteboard for teams to ideate and brainstorm together + +**You don't have to {skills or resources} to {achieve desirable outcome}** +> With Ahrefs, you don't have to be an SEO pro to rank higher and get more traffic + +--- + +### Differentiation-Focused + +**The {opposite of usual process} way to {achieve desirable outcome}** +> The easiest way to turn your passion into income + +**The [category] that [key differentiator]** +> The CRM that updates itself + +--- + +### Proof-Focused + +**[Number] [people] use [product] to [outcome]** +> 50,000 marketers use Drip to send better emails + +**{Key benefit of your product}** +> Sound clear in online meetings + +--- + +### Additional Formulas + +**The simple way to {outcome}** +> The simple way to track your time + +**Finally, {category} that {benefit}** +> Finally, accounting software that doesn't suck + +**{Outcome} without {common pain}** +> Build your website without writing code + +**Get {benefit} from your {thing}** +> Get more revenue from your existing traffic + +**{Action verb} your {thing} like {admirable example}** +> Market your SaaS like a Fortune 500 + +**What if you could {desirable outcome}?** +> What if you could close deals 30% faster? + +**Everything you need to {outcome}** +> Everything you need to launch your course + +**The {adjective} {category} built for {audience}** +> The lightweight CRM built for startups + +--- + +## Landing Page Section Types + +### Core Sections + +**Hero (Above the Fold)** +- Headline + subheadline +- Primary CTA +- Supporting visual (product screenshot, hero image) +- Optional: Social proof bar + +**Social Proof Bar** +- Customer logos (recognizable > many) +- Key metric ("10,000+ teams") +- Star rating with review count +- Short testimonial snippet + +**Problem/Pain Section** +- Articulate their problem better than they can +- Create recognition ("that's exactly my situation") +- Hint at cost of not solving it + +**Solution/Benefits Section** +- Bridge from problem to your solution +- 3-5 key benefits (not 10) +- Each: headline + explanation + proof if available + +**How It Works** +- 3-4 numbered steps +- Reduces perceived complexity +- Each step: action + outcome + +**Final CTA Section** +- Recap value proposition +- Repeat primary CTA +- Risk reversal (guarantee, free trial) + +--- + +### Supporting Sections + +**Testimonials** +- Full quotes with names, roles, companies +- Photos when possible +- Specific results over vague praise +- Formats: quote cards, video, tweet embeds + +**Case Studies** +- Problem → Solution → Results +- Specific metrics and outcomes +- Customer name and context +- Can be snippets with "Read more" links + +**Use Cases** +- Different ways product is used +- Helps visitors self-identify +- "For marketers who need X" format + +**Personas / "Built For" Sections** +- Explicitly call out target audience +- "Perfect for [role]" blocks +- Addresses "Is this for me?" question + +**FAQ Section** +- Address common objections +- Good for SEO +- Reduces support burden +- 5-10 most common questions + +**Comparison Section** +- vs. competitors (name them or don't) +- vs. status quo (spreadsheets, manual processes) +- Tables or side-by-side format + +**Integrations / Partners** +- Logos of tools you connect with +- "Works with your stack" messaging +- Builds credibility + +**Founder Story / Manifesto** +- Why you built this +- What you believe +- Emotional connection +- Differentiates from faceless competitors + +**Demo / Product Tour** +- Interactive demos +- Video walkthroughs +- GIF previews +- Shows product in action + +**Pricing Preview** +- Teaser even on non-pricing pages +- Starting price or "from $X/mo" +- Moves decision-makers forward + +**Guarantee / Risk Reversal** +- Money-back guarantee +- Free trial terms +- "Cancel anytime" +- Reduces friction + +**Stats Section** +- Key metrics that build credibility +- "10,000+ customers" +- "4.9/5 rating" +- "$2M saved for customers" + +--- + +## Page Structure Templates + +### Feature-Heavy Page (Weak) + +``` +1. Hero +2. Feature 1 +3. Feature 2 +4. Feature 3 +5. Feature 4 +6. CTA +``` + +This is a list, not a persuasive narrative. + +--- + +### Varied, Engaging Page (Strong) + +``` +1. Hero with clear value prop +2. Social proof bar (logos or stats) +3. Problem/pain section +4. How it works (3 steps) +5. Key benefits (2-3, not 10) +6. Testimonial +7. Use cases or personas +8. Comparison to alternatives +9. Case study snippet +10. FAQ +11. Final CTA with guarantee +``` + +This tells a story and addresses objections. + +--- + +### Compact Landing Page + +``` +1. Hero (headline, subhead, CTA, image) +2. Social proof bar +3. 3 key benefits with icons +4. Testimonial +5. How it works (3 steps) +6. Final CTA with guarantee +``` + +Good for ad landing pages where brevity matters. + +--- + +### Enterprise/B2B Landing Page + +``` +1. Hero (outcome-focused headline) +2. Logo bar (recognizable companies) +3. Problem section (business pain) +4. Solution overview +5. Use cases by role/department +6. Security/compliance section +7. Integration logos +8. Case study with metrics +9. ROI/value section +10. Contact/demo CTA +``` + +Addresses enterprise buyer concerns. + +--- + +### Product Launch Page + +``` +1. Hero with launch announcement +2. Video demo or walkthrough +3. Feature highlights (3-5) +4. Before/after comparison +5. Early testimonials +6. Launch pricing or early access offer +7. CTA with urgency +``` + +Good for ProductHunt, launches, or announcements. + +--- + +## Section Writing Tips + +### Problem Section + +Start with phrases like: +- "You know the feeling..." +- "If you're like most [role]..." +- "Every day, [audience] struggles with..." +- "We've all been there..." + +Then describe: +- The specific frustration +- The time/money wasted +- The impact on their work/life + +### Benefits Section + +For each benefit, include: +- **Headline**: The outcome they get +- **Body**: How it works (1-2 sentences) +- **Proof**: Number, testimonial, or example (optional) + +### How It Works Section + +Each step should be: +- **Numbered**: Creates sense of progress +- **Simple verb**: "Connect," "Set up," "Get" +- **Outcome-oriented**: What they get from this step + +Example: +1. Connect your tools (takes 2 minutes) +2. Set your preferences +3. Get automated reports every Monday + +### Testimonial Selection + +Best testimonials include: +- Specific results ("increased conversions by 32%") +- Before/after context ("We used to spend hours...") +- Role + company for credibility +- Something quotable and specific + +Avoid testimonials that just say: +- "Great product!" +- "Love it!" +- "Easy to use!" diff --git a/.agents/skills/copywriting/references/natural-transitions.md b/.agents/skills/copywriting/references/natural-transitions.md new file mode 100644 index 0000000..ee72faa --- /dev/null +++ b/.agents/skills/copywriting/references/natural-transitions.md @@ -0,0 +1,272 @@ +# Natural Transitions + +Transitional phrases to guide readers through your content. Good signposting improves readability, user engagement, and helps search engines understand content structure. + +Adapted from: University of Manchester Academic Phrasebank (2023), Plain English Campaign, web content best practices + +--- + +## Contents +- Previewing Content Structure +- Introducing a New Topic +- Referring Back +- Moving Between Sections +- Indicating Addition +- Indicating Contrast +- Indicating Similarity +- Indicating Cause and Effect +- Giving Examples +- Emphasising Key Points +- Providing Evidence (neutral attribution, expert quotes, supporting claims) +- Summarising Sections +- Concluding Content +- Question-Based Transitions +- List Introductions +- Hedging Language +- Best Practice Guidelines +- Transitions to Avoid (AI Tells) + +## Previewing Content Structure + +Use to orient readers and set expectations: + +- Here's what we'll cover... +- This guide walks you through... +- Below, you'll find... +- We'll start with X, then move to Y... +- First, let's look at... +- Let's break this down step by step. +- The sections below explain... + +--- + +## Introducing a New Topic + +- When it comes to X,... +- Regarding X,... +- Speaking of X,... +- Now let's talk about X. +- Another key factor is... +- X is worth exploring because... + +--- + +## Referring Back + +Use to connect ideas and reinforce key points: + +- As mentioned earlier,... +- As we covered above,... +- Remember when we discussed X? +- Building on that point,... +- Going back to X,... +- Earlier, we explained that... + +--- + +## Moving Between Sections + +- Now let's look at... +- Next up:... +- Moving on to... +- With that covered, let's turn to... +- Now that you understand X, here's Y. +- That brings us to... + +--- + +## Indicating Addition + +- Also,... +- Plus,... +- On top of that,... +- What's more,... +- Another benefit is... +- Beyond that,... +- In addition,... +- There's also... + +**Note:** Use "moreover" and "furthermore" sparingly. They can sound AI-generated when overused. + +--- + +## Indicating Contrast + +- However,... +- But,... +- That said,... +- On the flip side,... +- In contrast,... +- Unlike X, Y... +- While X is true, Y... +- Despite this,... + +--- + +## Indicating Similarity + +- Similarly,... +- Likewise,... +- In the same way,... +- Just like X, Y also... +- This mirrors... +- The same applies to... + +--- + +## Indicating Cause and Effect + +- So,... +- This means... +- As a result,... +- That's why... +- Because of this,... +- This leads to... +- The outcome?... +- Here's what happens:... + +--- + +## Giving Examples + +- For example,... +- For instance,... +- Here's an example:... +- Take X, for instance. +- Consider this:... +- A good example is... +- To illustrate,... +- Like when... +- Say you want to... + +--- + +## Emphasising Key Points + +- Here's the key takeaway:... +- The important thing is... +- What matters most is... +- Don't miss this:... +- Pay attention to... +- This is critical:... +- The bottom line?... + +--- + +## Providing Evidence + +Use when citing sources, data, or expert opinions: + +### Neutral attribution +- According to [Source],... +- [Source] reports that... +- Research shows that... +- Data from [Source] indicates... +- A study by [Source] found... + +### Expert quotes +- As [Expert] puts it,... +- [Expert] explains,... +- In the words of [Expert],... +- [Expert] notes that... + +### Supporting claims +- This is backed by... +- Evidence suggests... +- The numbers confirm... +- This aligns with findings from... + +--- + +## Summarising Sections + +- To recap,... +- Here's the short version:... +- In short,... +- The takeaway?... +- So what does this mean?... +- Let's pull this together:... +- Quick summary:... + +--- + +## Concluding Content + +- Wrapping up,... +- The bottom line is... +- Here's what to do next:... +- To sum up,... +- Final thoughts:... +- Ready to get started?... +- Now it's your turn. + +**Note:** Avoid "In conclusion" at the start of a paragraph. It's overused and signals AI writing. + +--- + +## Question-Based Transitions + +Useful for conversational tone and featured snippet optimization: + +- So what does this mean for you? +- But why does this matter? +- How do you actually do this? +- What's the catch? +- Sound complicated? It's not. +- Wondering where to start? +- Still not sure? Here's the breakdown. + +--- + +## List Introductions + +For numbered lists and step-by-step content: + +- Here's how to do it: +- Follow these steps: +- The process is straightforward: +- Here's what you need to know: +- Key things to consider: +- The main factors are: + +--- + +## Hedging Language + +For claims that need qualification or aren't absolute: + +- may, might, could +- tends to, generally +- often, usually, typically +- in most cases +- it appears that +- evidence suggests +- this can help +- many experts believe + +--- + +## Best Practice Guidelines + +1. **Match tone to audience**: B2B content can be slightly more formal; B2C often benefits from conversational transitions +2. **Vary your transitions**: Repeating the same phrase gets noticed (and not in a good way) +3. **Don't over-signpost**: Trust your reader; every sentence doesn't need a transition +4. **Use for scannability**: Transitions at paragraph starts help skimmers navigate +5. **Keep it natural**: Read aloud; if it sounds forced, simplify +6. **Front-load key info**: Put the important word or phrase early in the transition + +--- + +## Transitions to Avoid (AI Tells) + +These phrases are overused in AI-generated content: + +- "That being said,..." +- "It's worth noting that..." +- "At its core,..." +- "In today's digital landscape,..." +- "When it comes to the realm of..." +- "This begs the question..." +- "Let's delve into..." + +See the seo-audit skill's `references/ai-writing-detection.md` for a complete list of AI writing tells. diff --git a/.agents/skills/cro/SKILL.md b/.agents/skills/cro/SKILL.md new file mode 100644 index 0000000..74a2394 --- /dev/null +++ b/.agents/skills/cro/SKILL.md @@ -0,0 +1,187 @@ +--- +name: cro +description: "When the user wants to optimize, improve, or increase conversions on any marketing page or form — including homepage, landing pages, pricing pages, feature pages, lead capture forms, or contact forms. Also use when the user says 'CRO,' 'conversion rate optimization,' 'this page isn't converting,' 'improve conversions,' 'why isn't this page working,' 'my landing page sucks,' 'form abandonment,' 'nobody's converting,' 'low conversion rate,' or 'this page needs work.' Use this even if the user just shares a URL and asks for feedback. For signup/registration flows, see signup. For post-signup activation, see onboarding. For popups/modals, see popups." +metadata: + version: 2.0.0 +--- + +# Conversion Rate Optimization (CRO) + +You are a conversion rate optimization expert. Your goal is to analyze marketing pages and provide actionable recommendations to improve conversion rates. + +## Initial Assessment + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Before providing recommendations, identify: + +1. **Page Type**: Homepage, landing page, pricing, feature, blog, about, other +2. **Primary Conversion Goal**: Sign up, request demo, purchase, subscribe, download, contact sales +3. **Traffic Context**: Where are visitors coming from? (organic, paid, email, social) + +--- + +## CRO Analysis Framework + +Analyze the page across these dimensions, in order of impact: + +### 1. Value Proposition Clarity (Highest Impact) + +**Check for:** +- Can a visitor understand what this is and why they should care within 5 seconds? +- Is the primary benefit clear, specific, and differentiated? +- Is it written in the customer's language (not company jargon)? + +**Common issues:** +- Feature-focused instead of benefit-focused +- Too vague or too clever (sacrificing clarity) +- Trying to say everything instead of the most important thing + +### 2. Headline Effectiveness + +**Evaluate:** +- Does it communicate the core value proposition? +- Is it specific enough to be meaningful? +- Does it match the traffic source's messaging? + +**Strong headline patterns:** +- Outcome-focused: "Get [desired outcome] without [pain point]" +- Specificity: Include numbers, timeframes, or concrete details +- Social proof: "Join 10,000+ teams who..." + +### 3. CTA Placement, Copy, and Hierarchy + +**Primary CTA assessment:** +- Is there one clear primary action? +- Is it visible without scrolling? +- Does the button copy communicate value, not just action? + - Weak: "Submit," "Sign Up," "Learn More" + - Strong: "Start Free Trial," "Get My Report," "See Pricing" + +**CTA hierarchy:** +- Is there a logical primary vs. secondary CTA structure? +- Are CTAs repeated at key decision points? + +### 4. Visual Hierarchy and Scannability + +**Check:** +- Can someone scanning get the main message? +- Are the most important elements visually prominent? +- Is there enough white space? +- Do images support or distract from the message? + +### 5. Trust Signals and Social Proof + +**Types to look for:** +- Customer logos (especially recognizable ones) +- Testimonials (specific, attributed, with photos) +- Case study snippets with real numbers +- Review scores and counts +- Security badges (where relevant) + +**Placement:** Near CTAs and after benefit claims + +### 6. Objection Handling + +**Common objections to address:** +- Price/value concerns +- "Will this work for my situation?" +- Implementation difficulty +- "What if it doesn't work?" + +**Address through:** FAQ sections, guarantees, comparison content, process transparency + +### 7. Friction Points + +**Look for:** +- Too many form fields +- Unclear next steps +- Confusing navigation +- Required information that shouldn't be required +- Mobile experience issues +- Long load times + +--- + +## Output Format + +Structure your recommendations as: + +### Quick Wins (Implement Now) +Easy changes with likely immediate impact. + +### High-Impact Changes (Prioritize) +Bigger changes that require more effort but will significantly improve conversions. + +### Test Ideas +Hypotheses worth A/B testing rather than assuming. + +### Copy Alternatives +For key elements (headlines, CTAs), provide 2-3 alternatives with rationale. + +--- + +## Page-Specific Frameworks + +### Homepage CRO +- Clear positioning for cold visitors +- Quick path to most common conversion +- Handle both "ready to buy" and "still researching" + +### Landing Page CRO +- Message match with traffic source +- Single CTA (remove navigation if possible) +- Complete argument on one page + +### Pricing Page CRO +- Clear plan comparison +- Recommended plan indication +- Address "which plan is right for me?" anxiety + +### Feature Page CRO +- Connect feature to benefit +- Use cases and examples +- Clear path to try/buy + +### Blog Post CRO +- Contextual CTAs matching content topic +- Inline CTAs at natural stopping points + +--- + +## Experiment Ideas + +When recommending experiments, consider tests for: +- Hero section (headline, visual, CTA) +- Trust signals and social proof placement +- Pricing presentation +- Form optimization +- Navigation and UX + +**For comprehensive experiment ideas by page type**: See [references/experiments.md](references/experiments.md) + +--- + +## Task-Specific Questions + +1. What's your current conversion rate and goal? +2. Where is traffic coming from? +3. What does your signup/purchase flow look like after this page? +4. Do you have user research, heatmaps, or session recordings? +5. What have you already tried? + +--- + +## Related Skills + +- **signup**: If the issue is in the signup process itself +- **popups**: If considering popups as part of the strategy +- **copywriting**: If the page needs a complete copy rewrite +- **ab-testing**: To properly test recommended changes + +--- + +## Form Optimization + +For detailed form CRO guidance — including field optimization, multi-step forms, error handling, and form-specific experiments — see [references/form.md](references/form.md). diff --git a/.agents/skills/cro/evals/evals.json b/.agents/skills/cro/evals/evals.json new file mode 100644 index 0000000..a739312 --- /dev/null +++ b/.agents/skills/cro/evals/evals.json @@ -0,0 +1,111 @@ +{ + "skill_name": "cro", + "evals": [ + { + "id": 1, + "prompt": "Here's my SaaS landing page: https://example.com/product. We get about 5,000 visitors/month from Google Ads but only 1.2% convert to free trial signups. Can you help me figure out what's wrong?", + "expected_output": "Should check for product-marketing.md first. Should identify page type (landing page) and conversion goal (free trial signup). Should analyze across the CRO framework dimensions: value proposition clarity, headline effectiveness, CTA placement/copy/hierarchy, visual hierarchy, trust signals, objection handling, and friction points. Should provide recommendations organized as Quick Wins, High-Impact Changes, and Test Ideas. Should note the message match issue between Google Ads and landing page. Should provide 2-3 headline and CTA copy alternatives with rationale.", + "assertions": [ + "Checks for product-marketing.md", + "Identifies page type as landing page", + "Identifies conversion goal as free trial signup", + "Analyzes value proposition clarity", + "Analyzes CTA placement and copy", + "Notes message match between ads and landing page", + "Output has Quick Wins section", + "Output has High-Impact Changes section", + "Output has Test Ideas section", + "Provides 2-3 headline or CTA alternatives" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Our pricing page has three tiers but nobody picks the middle one. 60% choose the cheapest plan and 30% bounce entirely. What should we change?", + "expected_output": "Should apply the Pricing Page CRO framework. Should address plan comparison clarity, recommended plan indication, and 'which plan is right for me?' anxiety. Should analyze whether the middle tier's value proposition is differentiated enough. Should recommend trust signals and social proof near pricing. Should suggest specific experiments like changing plan names, adjusting feature differentiation, adding an annual toggle, or highlighting the recommended plan visually. Output should include Quick Wins, High-Impact Changes, and Test Ideas sections.", + "assertions": [ + "Applies Pricing Page CRO framework", + "Addresses recommended plan indication", + "Addresses 'which plan is right for me' anxiety", + "Analyzes middle tier differentiation", + "Suggests specific experiments", + "Output has Quick Wins section", + "Output has High-Impact Changes section", + "Output has Test Ideas section" + ], + "files": [] + }, + { + "id": 3, + "prompt": "this page isn't converting. can you take a look? it's our homepage for a B2B project management tool", + "expected_output": "Should trigger on the casual 'this page isn't converting' phrasing. Should identify this as a Homepage CRO analysis. Should ask clarifying questions about current conversion rate, traffic sources, and conversion goal. Should apply the full CRO Analysis Framework starting with value proposition clarity. Should address the homepage-specific guidance: serving multiple audiences, leading with broadest value prop, and providing clear paths for different visitor intents. Should provide structured output with Quick Wins, High-Impact Changes, Test Ideas, and Copy Alternatives.", + "assertions": [ + "Triggers on casual phrasing", + "Identifies as Homepage CRO", + "Asks about current conversion rate", + "Asks about traffic sources", + "Applies CRO Analysis Framework", + "Addresses serving multiple audiences", + "Addresses clear paths for different visitor intents", + "Output has structured sections" + ], + "files": [] + }, + { + "id": 4, + "prompt": "We have a blog that gets 20k organic visits/month but almost nobody clicks through to our product. How do we get more conversions from blog readers?", + "expected_output": "Should apply the Blog Post CRO framework. Should recommend contextual CTAs matching content topics and inline CTAs at natural stopping points. Should analyze whether CTAs are relevant to the content topic or generic. Should suggest specific CTA placements: within content, end of post, sidebar, sticky bar. Should recommend testing different CTA formats (inline text links, banner cards, exit-intent). Should cross-reference copywriting skill for CTA copy improvement.", + "assertions": [ + "Applies Blog Post CRO framework", + "Recommends contextual CTAs matching content", + "Recommends inline CTAs at natural stopping points", + "Suggests specific CTA placements", + "Suggests testing different CTA formats", + "Cross-references copywriting or related skill" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We redesigned our landing page and conversions dropped from 4.2% to 2.8%. Here's the new page. What went wrong?", + "expected_output": "Should approach this as a diagnostic CRO audit focused on what changed. Should systematically compare against the CRO framework dimensions to identify likely regression causes. Should check for common redesign mistakes: losing trust signals, weaker value proposition clarity, CTA hierarchy changes, added friction, broken message match with traffic sources. Should provide specific fixes organized by likely impact. Should recommend reverting high-risk changes while testing others.", + "assertions": [ + "Approaches as diagnostic audit", + "Checks for lost trust signals", + "Checks for weakened value proposition", + "Checks for CTA hierarchy changes", + "Checks for added friction", + "Checks for broken message match with traffic sources", + "Provides fixes organized by impact", + "Recommends reverting high-risk changes" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Our signup form has too many fields and people keep abandoning it halfway through. Can you help optimize it?", + "expected_output": "Should recognize this is about signup form optimization, not general page CRO. Should defer to or cross-reference the signup skill, which specifically handles signup, registration, and account creation flows. May provide some general friction reduction advice but should make clear that signup is the right skill for this task.", + "assertions": [ + "Recognizes this as signup flow optimization", + "References or defers to signup skill", + "Does not attempt full cro analysis on a form" + ], + "files": [] + }, + { + "id": 7, + "prompt": "Review this feature page for our API monitoring tool. Most traffic comes from organic search for 'API monitoring tools'. We want them to start a free trial.", + "expected_output": "Should apply the Feature Page CRO framework: connect feature to benefit, show use cases and examples, clear path to try/buy. Should reference the experiments section and suggest prioritized test ideas for hero section, trust signals, and CTA variations. Should note the organic search traffic source and check for message match with search intent. Should cross-reference ab-testing skill for proper test implementation.", + "assertions": [ + "Applies Feature Page CRO framework", + "Connects features to benefits", + "Suggests use cases and examples", + "Provides clear path to try/buy", + "Notes organic traffic source and search intent match", + "Suggests specific experiment hypotheses", + "Cross-references ab-testing skill" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/cro/references/experiments.md b/.agents/skills/cro/references/experiments.md new file mode 100644 index 0000000..abc31c7 --- /dev/null +++ b/.agents/skills/cro/references/experiments.md @@ -0,0 +1,248 @@ +# Page CRO Experiment Ideas + +Comprehensive list of A/B tests and experiments organized by page type. + +## Contents +- Homepage Experiments (Hero Section, Trust & Social Proof, Features & Content, Navigation & UX) +- Pricing Page Experiments (Price Presentation, Pricing UX, Objection Handling, Trust Signals) +- Demo Request Page Experiments (Form Optimization, Page Content, CTA & Routing) +- Resource/Blog Page Experiments (Content CTAs, Resource Section) +- Landing Page Experiments (Message Match, Conversion Focus, Page Length) +- Feature Page Experiments (Feature Presentation, Conversion Path) +- Cross-Page Experiments (Site-Wide Tests, Navigation Tests) + +## Homepage Experiments + +### Hero Section + +| Test | Hypothesis | +|------|------------| +| Headline variations | Specific vs. abstract messaging | +| Subheadline clarity | Add/refine to support headline | +| CTA above fold | Include or exclude prominent CTA | +| Hero visual format | Screenshot vs. GIF vs. illustration vs. video | +| CTA button color | Test contrast and visibility | +| CTA button text | "Start Free Trial" vs. "Get Started" vs. "See Demo" | +| Interactive demo | Engage visitors immediately with product | + +### Trust & Social Proof + +| Test | Hypothesis | +|------|------------| +| Logo placement | Hero section vs. below fold | +| Case study in hero | Show results immediately | +| Trust badges | Add security, compliance, awards | +| Social proof in headline | "Join 10,000+ teams" messaging | +| Testimonial placement | Above fold vs. dedicated section | +| Video testimonials | More engaging than text quotes | + +### Features & Content + +| Test | Hypothesis | +|------|------------| +| Feature presentation | Icons + descriptions vs. detailed sections | +| Section ordering | Move high-value features up | +| Secondary CTAs | Add/remove throughout page | +| Benefit vs. feature focus | Lead with outcomes | +| Comparison section | Show vs. competitors or status quo | + +### Navigation & UX + +| Test | Hypothesis | +|------|------------| +| Sticky navigation | Persistent nav with CTA | +| Nav menu order | High-priority items at edges | +| Nav CTA button | Add prominent button in nav | +| Support widget | Live chat vs. AI chatbot | +| Footer optimization | Clearer secondary conversions | +| Exit intent popup | Capture abandoning visitors | + +--- + +## Pricing Page Experiments + +### Price Presentation + +| Test | Hypothesis | +|------|------------| +| Annual vs. monthly display | Highlight savings or simplify | +| Price points | $99 vs. $100 vs. $97 psychology | +| "Most Popular" badge | Highlight target plan | +| Number of tiers | 3 vs. 4 vs. 2 visible options | +| Price anchoring | Order plans to anchor expectations | +| Custom enterprise tier | Show vs. "Contact Sales" | + +### Pricing UX + +| Test | Hypothesis | +|------|------------| +| Pricing calculator | For usage-based pricing clarity | +| Guided pricing flow | Multistep wizard vs. comparison table | +| Feature comparison format | Table vs. expandable sections | +| Monthly/annual toggle | With savings highlighted | +| Plan recommendation quiz | Help visitors choose | +| Checkout flow length | Steps required after plan selection | + +### Objection Handling + +| Test | Hypothesis | +|------|------------| +| FAQ section | Address pricing objections | +| ROI calculator | Demonstrate value vs. cost | +| Money-back guarantee | Prominent placement | +| Per-user breakdowns | Clarity for team plans | +| Feature inclusion clarity | What's in each tier | +| Competitor comparison | Side-by-side value comparison | + +### Trust Signals + +| Test | Hypothesis | +|------|------------| +| Value testimonials | Quotes about ROI specifically | +| Customer logos | Near pricing section | +| Review scores | G2/Capterra ratings | +| Case study snippet | Specific pricing/value results | + +--- + +## Demo Request Page Experiments + +### Form Optimization + +| Test | Hypothesis | +|------|------------| +| Field count | Fewer fields, higher completion | +| Multi-step vs. single | Progress bar encouragement | +| Form placement | Above fold vs. after content | +| Phone field | Include vs. exclude | +| Field enrichment | Hide fields you can auto-fill | +| Form labels | Inside field vs. above | + +### Page Content + +| Test | Hypothesis | +|------|------------| +| Benefits above form | Reinforce value before ask | +| Demo preview | Video/GIF showing demo experience | +| "What You'll Learn" | Set expectations clearly | +| Testimonials near form | Reduce friction at decision point | +| FAQ below form | Address common objections | +| Video vs. text | Format for explaining value | + +### CTA & Routing + +| Test | Hypothesis | +|------|------------| +| CTA text | "Book Your Demo" vs. "Schedule 15-Min Call" | +| On-demand option | Instant demo alongside live option | +| Personalized messaging | Based on visitor data/source | +| Navigation removal | Reduce page distractions | +| Calendar integration | Inline booking vs. external link | +| Qualification routing | Self-serve for some, sales for others | + +--- + +## Resource/Blog Page Experiments + +### Content CTAs + +| Test | Hypothesis | +|------|------------| +| Floating CTAs | Sticky CTA on blog posts | +| CTA placement | Inline vs. end-of-post only | +| Reading time display | Estimated reading time | +| Related resources | End-of-article recommendations | +| Gated vs. free | Content access strategy | +| Content upgrades | Specific to article topic | + +### Resource Section + +| Test | Hypothesis | +|------|------------| +| Navigation/filtering | Easier to find relevant content | +| Search functionality | Find specific resources | +| Featured resources | Highlight best content | +| Layout format | Grid vs. list view | +| Topic bundles | Grouped resources by theme | +| Download tracking | Gate some, track engagement | + +--- + +## Landing Page Experiments + +### Message Match + +| Test | Hypothesis | +|------|------------| +| Headline matching | Match ad copy exactly | +| Visual matching | Match ad creative | +| Offer alignment | Same offer as ad promised | +| Audience-specific pages | Different pages per segment | + +### Conversion Focus + +| Test | Hypothesis | +|------|------------| +| Navigation removal | Single-focus page | +| CTA repetition | Multiple CTAs throughout | +| Form vs. button | Direct capture vs. click-through | +| Urgency/scarcity | If genuine, test messaging | +| Social proof density | Amount and placement | +| Video inclusion | Explain offer with video | + +### Page Length + +| Test | Hypothesis | +|------|------------| +| Short vs. long | Quick conversion vs. complete argument | +| Above-fold only | Minimal scroll required | +| Section ordering | Most important content first | +| Footer removal | Eliminate navigation | + +--- + +## Feature Page Experiments + +### Feature Presentation + +| Test | Hypothesis | +|------|------------| +| Demo/screenshot | Show feature in action | +| Use case examples | How customers use it | +| Before/after | Impact visualization | +| Video walkthrough | Feature tour | +| Interactive demo | Try feature without signup | + +### Conversion Path + +| Test | Hypothesis | +|------|------------| +| Trial CTA | Feature-specific trial offer | +| Related features | Cross-link to other features | +| Comparison | vs. competitors' version | +| Pricing mention | Connect to relevant plan | +| Case study link | Feature-specific success story | + +--- + +## Cross-Page Experiments + +### Site-Wide Tests + +| Test | Hypothesis | +|------|------------| +| Chat widget | Impact on conversions | +| Cookie consent UX | Minimize friction | +| Page load speed | Performance vs. features | +| Mobile experience | Responsive optimization | +| Accessibility | Impact on conversion | +| Personalization | Dynamic content by segment | + +### Navigation Tests + +| Test | Hypothesis | +|------|------------| +| Menu structure | Information architecture | +| Search placement | Help visitors find content | +| CTA in nav | Always-visible conversion path | +| Breadcrumbs | Navigation clarity | diff --git a/.agents/skills/cro/references/form.md b/.agents/skills/cro/references/form.md new file mode 100644 index 0000000..470aeb1 --- /dev/null +++ b/.agents/skills/cro/references/form.md @@ -0,0 +1,422 @@ +# Form CRO + +You are an expert in form optimization. Your goal is to maximize form completion rates while capturing the data that matters. + +## Initial Assessment + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Before providing recommendations, identify: + +1. **Form Type** + - Lead capture (gated content, newsletter) + - Contact form + - Demo/sales request + - Application form + - Survey/feedback + - Checkout form + - Quote request + +2. **Current State** + - How many fields? + - What's the current completion rate? + - Mobile vs. desktop split? + - Where do users abandon? + +3. **Business Context** + - What happens with form submissions? + - Which fields are actually used in follow-up? + - Are there compliance/legal requirements? + +--- + +## Core Principles + +### 1. Every Field Has a Cost +Each field reduces completion rate. Rule of thumb: +- 3 fields: Baseline +- 4-6 fields: 10-25% reduction +- 7+ fields: 25-50%+ reduction + +For each field, ask: +- Is this absolutely necessary before we can help them? +- Can we get this information another way? +- Can we ask this later? + +### 2. Value Must Exceed Effort +- Clear value proposition above form +- Make what they get obvious +- Reduce perceived effort (field count, labels) + +### 3. Reduce Cognitive Load +- One question per field +- Clear, conversational labels +- Logical grouping and order +- Smart defaults where possible + +--- + +## Field-by-Field Optimization + +### Email Field +- Single field, no confirmation +- Inline validation +- Typo detection (did you mean gmail.com?) +- Proper mobile keyboard + +### Name Fields +- Single "Name" vs. First/Last — test this +- Single field reduces friction +- Split needed only if personalization requires it + +### Phone Number +- Make optional if possible +- If required, explain why +- Auto-format as they type +- Country code handling + +### Company/Organization +- Auto-suggest for faster entry +- Enrichment after submission (Clearbit, etc.) +- Consider inferring from email domain + +### Job Title/Role +- Dropdown if categories matter +- Free text if wide variation +- Consider making optional + +### Message/Comments (Free Text) +- Make optional +- Reasonable character guidance +- Expand on focus + +### Dropdown Selects +- "Select one..." placeholder +- Searchable if many options +- Consider radio buttons if < 5 options +- "Other" option with text field + +### Checkboxes (Multi-select) +- Clear, parallel labels +- Reasonable number of options +- Consider "Select all that apply" instruction + +--- + +## Form Layout Optimization + +### Field Order +1. Start with easiest fields (name, email) +2. Build commitment before asking more +3. Sensitive fields last (phone, company size) +4. Logical grouping if many fields + +### Labels and Placeholders +- Labels: Keep visible (not just placeholder) — placeholders disappear when typing, leaving users unsure what they're filling in +- Placeholders: Examples, not labels +- Help text: Only when genuinely helpful + +**Good:** +``` +Email +[name@company.com] +``` + +**Bad:** +``` +[Enter your email address] ← Disappears on focus +``` + +### Visual Design +- Sufficient spacing between fields +- Clear visual hierarchy +- CTA button stands out +- Mobile-friendly tap targets (44px+) + +### Single Column vs. Multi-Column +- Single column: Higher completion, mobile-friendly +- Multi-column: Only for short related fields (First/Last name) +- When in doubt, single column + +--- + +## Multi-Step Forms + +### When to Use Multi-Step +- More than 5-6 fields +- Logically distinct sections +- Conditional paths based on answers +- Complex forms (applications, quotes) + +### Multi-Step Best Practices +- Progress indicator (step X of Y) +- Start with easy, end with sensitive +- One topic per step +- Allow back navigation +- Save progress (don't lose data on refresh) +- Clear indication of required vs. optional + +### Progressive Commitment Pattern +1. Low-friction start (just email) +2. More detail (name, company) +3. Qualifying questions +4. Contact preferences + +--- + +## Error Handling + +### Inline Validation +- Validate as they move to next field +- Don't validate too aggressively while typing +- Clear visual indicators (green check, red border) + +### Error Messages +- Specific to the problem +- Suggest how to fix +- Positioned near the field +- Don't clear their input + +**Good:** "Please enter a valid email address (e.g., name@company.com)" +**Bad:** "Invalid input" + +### On Submit +- Focus on first error field +- Summarize errors if multiple +- Preserve all entered data +- Don't clear form on error + +--- + +## Submit Button Optimization + +### Button Copy +Weak: "Submit" | "Send" +Strong: "[Action] + [What they get]" + +Examples: +- "Get My Free Quote" +- "Download the Guide" +- "Request Demo" +- "Send Message" +- "Start Free Trial" + +### Button Placement +- Immediately after last field +- Left-aligned with fields +- Sufficient size and contrast +- Mobile: Sticky or clearly visible + +### Post-Submit States +- Loading state (disable button, show spinner) +- Success confirmation (clear next steps) +- Error handling (clear message, focus on issue) + +--- + +## Trust and Friction Reduction + +### Near the Form +- Privacy statement: "We'll never share your info" +- Security badges if collecting sensitive data +- Testimonial or social proof +- Expected response time + +### Reducing Perceived Effort +- "Takes 30 seconds" +- Field count indicator +- Remove visual clutter +- Generous white space + +### Addressing Objections +- "No spam, unsubscribe anytime" +- "We won't share your number" +- "No credit card required" + +--- + +## Form Types: Specific Guidance + +### Lead Capture (Gated Content) +- Minimum viable fields (often just email) +- Clear value proposition for what they get +- Consider asking enrichment questions post-download +- Test email-only vs. email + name + +### Contact Form +- Essential: Email/Name + Message +- Phone optional +- Set response time expectations +- Offer alternatives (chat, phone) + +### Demo Request +- Name, Email, Company required +- Phone: Optional with "preferred contact" choice +- Use case/goal question helps personalize +- Calendar embed can increase show rate + +### Quote/Estimate Request +- Multi-step often works well +- Start with easy questions +- Technical details later +- Save progress for complex forms + +### Survey Forms +- Progress bar essential +- One question per screen for engagement +- Skip logic for relevance +- Consider incentive for completion + +--- + +## Mobile Optimization + +- Larger touch targets (44px minimum height) +- Appropriate keyboard types (email, tel, number) +- Autofill support +- Single column only +- Sticky submit button +- Minimal typing (dropdowns, buttons) + +--- + +## Measurement + +### Key Metrics +- **Form start rate**: Page views → Started form +- **Completion rate**: Started → Submitted +- **Field drop-off**: Which fields lose people +- **Error rate**: By field +- **Time to complete**: Total and by field +- **Mobile vs. desktop**: Completion by device + +### What to Track +- Form views +- First field focus +- Each field completion +- Errors by field +- Submit attempts +- Successful submissions + +--- + +## Output Format + +### Form Audit +For each issue: +- **Issue**: What's wrong +- **Impact**: Estimated effect on conversions +- **Fix**: Specific recommendation +- **Priority**: High/Medium/Low + +### Recommended Form Design +- **Required fields**: Justified list +- **Optional fields**: With rationale +- **Field order**: Recommended sequence +- **Copy**: Labels, placeholders, button +- **Error messages**: For each field +- **Layout**: Visual guidance + +### Test Hypotheses +Ideas to A/B test with expected outcomes + +--- + +## Experiment Ideas + +### Form Structure Experiments + +**Layout & Flow** +- Single-step form vs. multi-step with progress bar +- 1-column vs. 2-column field layout +- Form embedded on page vs. separate page +- Vertical vs. horizontal field alignment +- Form above fold vs. after content + +**Field Optimization** +- Reduce to minimum viable fields +- Add or remove phone number field +- Add or remove company/organization field +- Test required vs. optional field balance +- Use field enrichment to auto-fill known data +- Hide fields for returning/known visitors + +**Smart Forms** +- Add real-time validation for emails and phone numbers +- Progressive profiling (ask more over time) +- Conditional fields based on earlier answers +- Auto-suggest for company names + +--- + +### Copy & Design Experiments + +**Labels & Microcopy** +- Test field label clarity and length +- Placeholder text optimization +- Help text: show vs. hide vs. on-hover +- Error message tone (friendly vs. direct) + +**CTAs & Buttons** +- Button text variations ("Submit" vs. "Get My Quote" vs. specific action) +- Button color and size testing +- Button placement relative to fields + +**Trust Elements** +- Add privacy assurance near form +- Show trust badges next to submit +- Add testimonial near form +- Display expected response time + +--- + +### Form Type-Specific Experiments + +**Demo Request Forms** +- Test with/without phone number requirement +- Add "preferred contact method" choice +- Include "What's your biggest challenge?" question +- Test calendar embed vs. form submission + +**Lead Capture Forms** +- Email-only vs. email + name +- Test value proposition messaging above form +- Gated vs. ungated content strategies +- Post-submission enrichment questions + +**Contact Forms** +- Add department/topic routing dropdown +- Test with/without message field requirement +- Show alternative contact methods (chat, phone) +- Expected response time messaging + +--- + +### Mobile & UX Experiments + +- Larger touch targets for mobile +- Test appropriate keyboard types by field +- Sticky submit button on mobile +- Auto-focus first field on page load +- Test form container styling (card vs. minimal) + +--- + +## Task-Specific Questions + +1. What's your current form completion rate? +2. Do you have field-level analytics? +3. What happens with the data after submission? +4. Which fields are actually used in follow-up? +5. Are there compliance/legal requirements? +6. What's the mobile vs. desktop split? + +--- + +## Related Skills + +- **signup**: For account creation forms +- **popups**: For forms inside popups/modals +- **cro**: For the page containing the form +- **ab-testing**: For testing form changes diff --git a/.agents/skills/marketing-ideas/SKILL.md b/.agents/skills/marketing-ideas/SKILL.md new file mode 100644 index 0000000..6aada21 --- /dev/null +++ b/.agents/skills/marketing-ideas/SKILL.md @@ -0,0 +1,168 @@ +--- +name: marketing-ideas +description: "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' Use this as a starting point whenever someone is stuck or looking for inspiration on how to grow. For specific channel execution, see the relevant skill (ads, social, emails, etc.)." +metadata: + version: 2.0.0 +--- + +# Marketing Ideas for SaaS + +You are a marketing strategist with a library of 139 proven marketing ideas. Your goal is to help users find the right marketing strategies for their specific situation, stage, and resources. + +## How to Use This Skill + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +When asked for marketing ideas: +1. Ask about their product, audience, and current stage if not clear +2. Suggest 3-5 most relevant ideas based on their context +3. Provide details on implementation for chosen ideas +4. Consider their resources (time, budget, team size) + +--- + +## Ideas by Category (Quick Reference) + +| Category | Ideas | Examples | +|----------|-------|----------| +| Content & SEO | 1-10 | Programmatic SEO, Glossary marketing, Content repurposing | +| Competitor | 11-13 | Comparison pages, Marketing jiu-jitsu | +| Free Tools | 14-22 | Calculators, Generators, Chrome extensions | +| Paid Ads | 23-34 | LinkedIn, Google, Retargeting, Podcast ads | +| Social & Community | 35-44 | LinkedIn audience, Reddit marketing, Short-form video | +| Email | 45-53 | Founder emails, Onboarding sequences, Win-back | +| Partnerships | 54-64 | Affiliate programs, Integration marketing, Newsletter swaps | +| Events | 65-72 | Webinars, Conference speaking, Virtual summits | +| PR & Media | 73-76 | Press coverage, Documentaries | +| Launches | 77-86 | Product Hunt, Lifetime deals, Giveaways | +| Product-Led | 87-96 | Viral loops, Powered-by marketing, Free migrations | +| Content Formats | 97-109 | Podcasts, Courses, Annual reports, Year wraps | +| Unconventional | 110-122 | Awards, Challenges, Guerrilla marketing | +| Platforms | 123-130 | App marketplaces, Review sites, YouTube | +| International | 131-132 | Expansion, Price localization | +| Developer | 133-136 | DevRel, Certifications | +| Audience-Specific | 137-139 | Referrals, Podcast tours, Customer language | + +**For the complete list with descriptions**: See [references/ideas-by-category.md](references/ideas-by-category.md) + +--- + +## Implementation Tips + +### By Stage + +**Pre-launch:** +- Waitlist referrals (#79) +- Early access pricing (#81) +- Product Hunt prep (#78) + +**Early stage:** +- Content & SEO (#1-10) +- Community (#35) +- Founder-led sales (#47) + +**Growth stage:** +- Paid acquisition (#23-34) +- Partnerships (#54-64) +- Events (#65-72) + +**Scale:** +- Brand campaigns +- International (#131-132) +- Media acquisitions (#73) + +### By Budget + +**Free:** +- Content & SEO +- Community building +- Social media +- Comment marketing + +**Low budget:** +- Targeted ads +- Sponsorships +- Free tools + +**Medium budget:** +- Events +- Partnerships +- PR + +**High budget:** +- Acquisitions +- Conferences +- Brand campaigns + +### By Timeline + +**Quick wins:** +- Ads, email, social posts + +**Medium-term:** +- Content, SEO, community + +**Long-term:** +- Brand, thought leadership, platform effects + +--- + +## Top Ideas by Use Case + +### Need Leads Fast +- Google Ads (#31) - High-intent search +- LinkedIn Ads (#28) - B2B targeting +- Engineering as Marketing (#15) - Free tool lead gen + +### Building Authority +- Conference Speaking (#70) +- Book Marketing (#104) +- Podcasts (#107) + +### Low Budget Growth +- Easy Keyword Ranking (#1) +- Reddit Marketing (#38) +- Comment Marketing (#44) + +### Product-Led Growth +- Viral Loops (#93) +- Powered By Marketing (#87) +- In-App Upsells (#91) + +### Enterprise Sales +- Investor Marketing (#133) +- Expert Networks (#57) +- Conference Sponsorship (#72) + +--- + +## Output Format + +When recommending ideas, provide for each: + +- **Idea name**: One-line description +- **Why it fits**: Connection to their situation +- **How to start**: First 2-3 implementation steps +- **Expected outcome**: What success looks like +- **Resources needed**: Time, budget, skills required + +--- + +## Task-Specific Questions + +1. What's your current stage and main growth goal? +2. What's your marketing budget and team size? +3. What have you already tried that worked or didn't? +4. What competitor tactics do you admire? + +--- + +## Related Skills + +- **marketing-plan**: When the user wants a comprehensive plan instead of standalone ideas. Section 12 of the plan cross-references all 139 ideas here against AARRR stages and client-specific status. +- **programmatic-seo**: For scaling SEO content (#4) +- **competitors**: For comparison pages (#11) +- **emails**: For email marketing tactics +- **free-tools**: For engineering as marketing (#15) +- **referrals**: For viral growth (#93) diff --git a/.agents/skills/marketing-ideas/evals/evals.json b/.agents/skills/marketing-ideas/evals/evals.json new file mode 100644 index 0000000..dbd981e --- /dev/null +++ b/.agents/skills/marketing-ideas/evals/evals.json @@ -0,0 +1,90 @@ +{ + "skill_name": "marketing-ideas", + "evals": [ + { + "id": 1, + "prompt": "I need marketing ideas for my SaaS product. We're a bootstrapped team of 3, sell a $49/month analytics tool for e-commerce, and have about 200 customers. Budget is tight — maybe $500/month for marketing.", + "expected_output": "Should check for product-marketing.md first. Should filter ideas by low budget and early-stage constraints. Should pull relevant ideas from the 139 marketing ideas organized by category. Should provide ideas appropriate for bootstrapped SaaS: content marketing, community building, SEO, partnerships, referral programs, social media, Product Hunt, and others that don't require large budgets. Output should follow the format: idea name, why it fits, how to start, expected outcome, resources needed. Should prioritize by likely impact given their stage.", + "assertions": [ + "Checks for product-marketing.md", + "Filters ideas by low budget constraint", + "Provides ideas from the 139 marketing ideas catalog", + "Ideas are appropriate for bootstrapped SaaS stage", + "Output follows structured format per idea", + "Includes why it fits, how to start, expected outcome", + "Prioritizes by likely impact", + "Includes resources needed per idea" + ], + "files": [] + }, + { + "id": 2, + "prompt": "What's the fastest way to get more leads? We sell enterprise security software and have a $10k/month marketing budget.", + "expected_output": "Should apply the 'top ideas by use case' — specifically 'leads fast' recommendations. Should recommend paid channels (Google Ads, LinkedIn Ads for enterprise), outbound (cold email, LinkedIn outreach), and content-based lead magnets. Should filter for enterprise-appropriate tactics. Should provide the structured output with why each idea fits, how to start, expected timeline, and resources needed. Should note that 'fast leads' typically means paid or outbound channels.", + "assertions": [ + "Applies 'leads fast' use case filter", + "Recommends paid channels appropriate for enterprise", + "Recommends outbound tactics", + "Filters for enterprise-appropriate tactics", + "Provides structured output per idea", + "Notes that fast leads means paid or outbound", + "Includes timeline expectations" + ], + "files": [] + }, + { + "id": 3, + "prompt": "how do we grow without spending money on ads? we're a PLG (product-led growth) company with a freemium model", + "expected_output": "Should trigger on casual phrasing. Should apply the 'PLG' use case filter from top ideas. Should recommend PLG-specific tactics: product virality features, referral programs, community building, content marketing, SEO, free tools/calculators, open-source contributions, social proof loops. Should avoid ad-dependent ideas given the constraint. Should provide structured output with implementation guidance.", + "assertions": [ + "Triggers on casual phrasing", + "Applies PLG use case filter", + "Recommends PLG-specific tactics", + "Avoids ad-dependent ideas", + "Includes virality and referral tactics", + "Provides structured output with implementation guidance" + ], + "files": [] + }, + { + "id": 4, + "prompt": "We want to build authority and thought leadership in the HR tech space. We're a newer company and nobody knows who we are yet.", + "expected_output": "Should apply the 'authority building' use case filter. Should recommend thought leadership tactics: original research/surveys, guest posting, podcast appearances, speaking engagements, LinkedIn content, industry report publishing, expert roundups. Should note that authority building is a longer-term play. Should provide structured output with how to start each idea, expected outcomes, and timeline.", + "assertions": [ + "Applies 'authority building' use case filter", + "Recommends thought leadership tactics", + "Includes original research and content", + "Includes community and media appearances", + "Notes authority building is longer-term", + "Provides structured output with timelines" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Give me 20 marketing ideas. We sell project management software.", + "expected_output": "Should provide a curated list of ~20 ideas from the catalog. Should organize them by category or by effort/impact. Should provide brief implementation context for each. Should vary the ideas across categories (content, community, partnerships, product, paid, etc.) for a well-rounded set. Output should follow the structured format with at least idea name and brief description for each.", + "assertions": [ + "Provides approximately 20 ideas", + "Ideas span multiple categories", + "Organizes by category or effort/impact", + "Provides brief implementation context per idea", + "Output follows structured format", + "Ideas are relevant to project management software" + ], + "files": [] + }, + { + "id": 6, + "prompt": "We want to set up a referral program. How should we structure it?", + "expected_output": "Should recognize this is specifically a referral program design request. Should defer to or cross-reference the referrals skill, which provides detailed guidance on referral loop design, incentive structures, implementation, and optimization. May briefly mention referral programs as a marketing idea but should make clear that referrals is the right skill for detailed program design.", + "assertions": [ + "Recognizes this as a referral program design request", + "References or defers to referrals skill", + "Does not attempt detailed referral program design", + "May briefly mention as a marketing idea" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/marketing-ideas/references/ideas-by-category.md b/.agents/skills/marketing-ideas/references/ideas-by-category.md new file mode 100644 index 0000000..3819a9c --- /dev/null +++ b/.agents/skills/marketing-ideas/references/ideas-by-category.md @@ -0,0 +1,366 @@ +# The 139 Marketing Ideas + +Complete list of proven marketing approaches organized by category. + +## Contents +- Content & SEO (1-10) +- Competitor & Comparison (11-13) +- Free Tools & Engineering (14-22) +- Paid Advertising (23-34) +- Social Media & Community (35-44) +- Email Marketing (45-53) +- Partnerships & Programs (54-64) +- Events & Speaking (65-72) +- PR & Media (73-76) +- Launches & Promotions (77-86) +- Product-Led Growth (87-96) +- Content Formats (97-109) +- Unconventional & Creative (110-122) +- Platforms & Marketplaces (123-130) +- International & Localization (131-132) +- Developer & Technical (133-136) +- Audience-Specific (137-139) + +## Content & SEO (1-10) + +1. **Easy Keyword Ranking** - Target low-competition keywords where you can rank quickly. Find terms competitors overlook—niche variations, long-tail queries, emerging topics. + +2. **SEO Audit** - Conduct comprehensive technical SEO audits of your own site and share findings publicly. Document fixes and improvements to build authority. + +3. **Glossary Marketing** - Create comprehensive glossaries defining industry terms. Each term becomes an SEO-optimized page targeting "what is X" searches. + +4. **Programmatic SEO** - Build template-driven pages at scale targeting keyword patterns. Location pages, comparison pages, integration pages—any pattern with search volume. + +5. **Content Repurposing** - Transform one piece of content into multiple formats. Blog post becomes Twitter thread, YouTube video, podcast episode, infographic. + +6. **Proprietary Data Content** - Leverage unique data from your product to create original research and reports. Data competitors can't replicate creates linkable assets. + +7. **Internal Linking** - Strategic internal linking distributes authority and improves crawlability. Build topical clusters connecting related content. + +8. **Content Refreshing** - Regularly update existing content with fresh data, examples, and insights. Refreshed content often outperforms new content. + +9. **Knowledge Base SEO** - Optimize help documentation for search. Support articles targeting problem-solution queries capture users actively seeking solutions. + +10. **Parasite SEO** - Publish content on high-authority platforms (Medium, LinkedIn, Substack) that rank faster than your own domain. + +--- + +## Competitor & Comparison (11-13) + +11. **Competitor Comparison Pages** - Create detailed comparison pages positioning your product against competitors. "[Your Product] vs [Competitor]" pages capture high-intent searchers. + +12. **Marketing Jiu-Jitsu** - Turn competitor weaknesses into your strengths. When competitors raise prices, launch affordability campaigns. + +13. **Competitive Ad Research** - Study competitor advertising through tools like SpyFu or Facebook Ad Library. Learn what messaging resonates. + +--- + +## Free Tools & Engineering (14-22) + +14. **Side Projects as Marketing** - Build small, useful tools related to your main product. Side projects attract users who may later convert. + +15. **Engineering as Marketing** - Build free tools that solve real problems. Calculators, analyzers, generators—useful utilities that naturally lead to your paid product. + +16. **Importers as Marketing** - Build import tools for competitor data. "Import from [Competitor]" reduces switching friction. + +17. **Quiz Marketing** - Create interactive quizzes that engage users while qualifying leads. Personality quizzes, assessments, and diagnostic tools generate shares. + +18. **Calculator Marketing** - Build calculators solving real problems—ROI calculators, pricing estimators, savings tools. Calculators attract links and rank well. + +19. **Chrome Extensions** - Create browser extensions providing standalone value. Chrome Web Store becomes another distribution channel. + +20. **Microsites** - Build focused microsites for specific campaigns, products, or audiences. Dedicated domains can rank faster. + +21. **Scanners** - Build free scanning tools that audit or analyze something. Website scanners, security checkers, performance analyzers. + +22. **Public APIs** - Open APIs enable developers to build on your platform, creating an ecosystem. + +--- + +## Paid Advertising (23-34) + +23. **Podcast Advertising** - Sponsor relevant podcasts to reach engaged audiences. Host-read ads perform especially well. + +24. **Pre-targeting Ads** - Show awareness ads before launching direct response campaigns. Warm audiences convert better. + +25. **Facebook Ads** - Meta's detailed targeting reaches specific audiences. Test creative variations and leverage retargeting. + +26. **Instagram Ads** - Visual-first advertising for products with strong imagery. Stories and Reels ads capture attention. + +27. **Twitter Ads** - Reach engaged professionals discussing industry topics. Promoted tweets and follower campaigns. + +28. **LinkedIn Ads** - Target by job title, company size, and industry. Premium CPMs justified by B2B purchase intent. + +29. **Reddit Ads** - Reach passionate communities with authentic messaging. Transparency wins on Reddit. + +30. **Quora Ads** - Target users actively asking questions your product answers. Intent-rich environment. + +31. **Google Ads** - Capture high-intent search queries. Brand terms, competitor terms, and category terms. + +32. **YouTube Ads** - Video ads with detailed targeting. Pre-roll and discovery ads reach users consuming related content. + +33. **Cross-Platform Retargeting** - Follow users across platforms with consistent messaging. + +34. **Click-to-Messenger Ads** - Ads that open direct conversations rather than landing pages. + +--- + +## Social Media & Community (35-44) + +35. **Community Marketing** - Build and nurture communities around your product. Slack groups, Discord servers, Facebook groups. + +36. **Quora Marketing** - Answer relevant questions with genuine expertise. Include product mentions where naturally appropriate. + +37. **Reddit Keyword Research** - Mine Reddit for real language your audience uses. Discover pain points and desires. + +38. **Reddit Marketing** - Participate authentically in relevant subreddits. Provide value first. + +39. **LinkedIn Audience** - Build personal brands on LinkedIn for B2B reach. Thought leadership builds authority. + +40. **Instagram Audience** - Visual storytelling for products with strong aesthetics. Behind-the-scenes and user stories. + +41. **X Audience** - Build presence on X/Twitter through consistent value. Threads and insights grow followings. + +42. **Short Form Video** - TikTok, Reels, and Shorts reach new audiences with snackable content. + +43. **Engagement Pods** - Coordinate with peers to boost each other's content engagement. + +44. **Comment Marketing** - Thoughtful comments on relevant content build visibility. + +--- + +## Email Marketing (45-53) + +45. **Mistake Email Marketing** - Send "oops" emails when something genuinely goes wrong. Authenticity generates engagement. + +46. **Reactivation Emails** - Win back churned or inactive users with targeted campaigns. + +47. **Founder Welcome Email** - Personal welcome emails from founders create connection. + +48. **Dynamic Email Capture** - Smart email capture that adapts to user behavior. Exit intent, scroll depth triggers. + +49. **Monthly Newsletters** - Consistent newsletters keep your brand top-of-mind. + +50. **Inbox Placement** - Technical email optimization for deliverability. Authentication and list hygiene. + +51. **Onboarding Emails** - Guide new users to activation with targeted sequences. + +52. **Win-back Emails** - Re-engage churned users with compelling reasons to return. + +53. **Trial Reactivation** - Expired trials aren't lost causes. Targeted campaigns can recover them. + +--- + +## Partnerships & Programs (54-64) + +54. **Affiliate Discovery Through Backlinks** - Find potential affiliates by analyzing who links to competitors. + +55. **Influencer Whitelisting** - Run ads through influencer accounts for authentic reach. + +56. **Reseller Programs** - Enable agencies to resell your product. White-label options create distribution partners. + +57. **Expert Networks** - Build networks of certified experts who implement your product. + +58. **Newsletter Swaps** - Exchange promotional mentions with complementary newsletters. + +59. **Article Quotes** - Contribute expert quotes to journalists. HARO connects experts with writers. + +60. **Pixel Sharing** - Partner with complementary companies to share remarketing audiences. + +61. **Shared Slack Channels** - Create shared channels with partners and customers. + +62. **Affiliate Program** - Structured commission programs for referrers. + +63. **Integration Marketing** - Joint marketing with integration partners. + +64. **Community Sponsorship** - Sponsor relevant communities, newsletters, or publications. + +--- + +## Events & Speaking (65-72) + +65. **Live Webinars** - Educational webinars demonstrate expertise while generating leads. + +66. **Virtual Summits** - Multi-speaker online events attract audiences through varied perspectives. + +67. **Roadshows** - Take your product on the road to meet customers directly. + +68. **Local Meetups** - Host or attend local meetups in key markets. + +69. **Meetup Sponsorship** - Sponsor relevant meetups to reach engaged local audiences. + +70. **Conference Speaking** - Speak at industry conferences to reach engaged audiences. + +71. **Conferences** - Host your own conference to become the center of your industry. + +72. **Conference Sponsorship** - Sponsor relevant conferences for brand visibility. + +--- + +## PR & Media (73-76) + +73. **Media Acquisitions as Marketing** - Acquire newsletters, podcasts, or publications in your space. + +74. **Press Coverage** - Pitch newsworthy stories to relevant publications. + +75. **Fundraising PR** - Leverage funding announcements for press coverage. + +76. **Documentaries** - Create documentary content exploring your industry or customers. + +--- + +## Launches & Promotions (77-86) + +77. **Black Friday Promotions** - Annual deals create urgency and acquisition spikes. + +78. **Product Hunt Launch** - Structured Product Hunt launches reach early adopters. + +79. **Early-Access Referrals** - Reward referrals with earlier access during launches. + +80. **New Year Promotions** - New Year brings fresh budgets and goal-setting energy. + +81. **Early Access Pricing** - Launch with discounted early access tiers. + +82. **Product Hunt Alternatives** - Launch on BetaList, Launching Next, AlternativeTo. + +83. **Twitter Giveaways** - Engagement-boosting giveaways that require follows or retweets. + +84. **Giveaways** - Strategic giveaways attract attention and capture leads. + +85. **Vacation Giveaways** - Grand prize giveaways generate massive engagement. + +86. **Lifetime Deals** - One-time payment deals generate cash and users. + +--- + +## Product-Led Growth (87-96) + +87. **Powered By Marketing** - "Powered by [Your Product]" badges create free impressions. + +88. **Free Migrations** - Offer free migration services from competitors. + +89. **Contract Buyouts** - Pay to exit competitor contracts. + +90. **One-Click Registration** - Minimize signup friction with OAuth options. + +91. **In-App Upsells** - Strategic upgrade prompts within the product experience. + +92. **Newsletter Referrals** - Built-in referral programs for newsletters. + +93. **Viral Loops** - Product mechanics that naturally encourage sharing. + +94. **Offboarding Flows** - Optimize cancellation flows to retain or learn. + +95. **Concierge Setup** - White-glove onboarding for high-value accounts. + +96. **Onboarding Optimization** - Continuous improvement of new user experience. + +--- + +## Content Formats (97-109) + +97. **Playlists as Marketing** - Create Spotify playlists for your audience. + +98. **Template Marketing** - Offer free templates users can immediately use. + +99. **Graphic Novel Marketing** - Transform complex stories into visual narratives. + +100. **Promo Videos** - High-quality promotional videos showcase your product. + +101. **Industry Interviews** - Interview customers, experts, and thought leaders. + +102. **Social Screenshots** - Design shareable screenshot templates for social proof. + +103. **Online Courses** - Educational courses establish authority while generating leads. + +104. **Book Marketing** - Author a book establishing expertise in your domain. + +105. **Annual Reports** - Publish annual reports showcasing industry data and trends. + +106. **End of Year Wraps** - Personalized year-end summaries users want to share. + +107. **Podcasts** - Launch a podcast reaching audiences during commutes. + +108. **Changelogs** - Public changelogs showcase product momentum. + +109. **Public Demos** - Live product demonstrations showing real usage. + +--- + +## Unconventional & Creative (110-122) + +110. **Awards as Marketing** - Create industry awards positioning your brand as tastemaker. + +111. **Challenges as Marketing** - Launch viral challenges that spread organically. + +112. **Reality TV Marketing** - Create reality-show style content following real customers. + +113. **Controversy as Marketing** - Strategic positioning against industry norms. + +114. **Moneyball Marketing** - Data-driven marketing finding undervalued channels. + +115. **Curation as Marketing** - Curate valuable resources for your audience. + +116. **Grants as Marketing** - Offer grants to customers or community members. + +117. **Product Competitions** - Sponsor competitions using your product. + +118. **Cameo Marketing** - Use Cameo celebrities for personalized messages. + +119. **OOH Advertising** - Out-of-home advertising—billboards, transit ads. + +120. **Marketing Stunts** - Bold, attention-grabbing marketing moments. + +121. **Guerrilla Marketing** - Unconventional, low-cost marketing in unexpected places. + +122. **Humor Marketing** - Use humor to stand out and create memorability. + +--- + +## Platforms & Marketplaces (123-130) + +123. **Open Source as Marketing** - Open-source components or tools build developer goodwill. + +124. **App Store Optimization** - Optimize app store listings for discoverability. + +125. **App Marketplaces** - List in Salesforce AppExchange, Shopify App Store, etc. + +126. **YouTube Reviews** - Get YouTubers to review your product. + +127. **YouTube Channel** - Build a YouTube presence with tutorials and thought leadership. + +128. **Source Platforms** - Submit to G2, Capterra, GetApp, and similar directories. + +129. **Review Sites** - Actively manage presence on review platforms. + +130. **Live Audio** - Host Twitter Spaces, Clubhouse, or LinkedIn Audio discussions. + +--- + +## International & Localization (131-132) + +131. **International Expansion** - Expand to new geographic markets with localization. + +132. **Price Localization** - Adjust pricing for local purchasing power. + +--- + +## Developer & Technical (133-136) + +133. **Investor Marketing** - Market to investors for portfolio introductions. + +134. **Certifications** - Create certification programs validating expertise. + +135. **Support as Marketing** - Exceptional support creates stories customers share. + +136. **Developer Relations** - Build relationships with developer communities. + +--- + +## Audience-Specific (137-139) + +137. **Two-Sided Referrals** - Reward both referrer and referred. + +138. **Podcast Tours** - Guest on multiple podcasts reaching your target audience. + +139. **Customer Language** - Use the exact words your customers use in marketing. diff --git a/.agents/skills/marketing-loops/SKILL.md b/.agents/skills/marketing-loops/SKILL.md new file mode 100644 index 0000000..34fd0ba --- /dev/null +++ b/.agents/skills/marketing-loops/SKILL.md @@ -0,0 +1,107 @@ +--- +name: marketing-loops +description: "When the user wants to set up a recurring, self-running marketing workflow — a repeatable loop an AI agent runs on a cadence (weekly, daily, on a trigger) rather than a one-off task. Also use when the user mentions 'marketing loop,' 'recurring marketing workflow,' 'automate my marketing,' 'marketing on autopilot,' 'weekly marketing review,' 'ad fatigue check,' 'content refresh loop,' 'churn watch,' 'ranking drop alert,' 'always-on marketing,' 'marketing automation workflow,' or 'run this every week.' Use this to pick, adapt, and schedule an ongoing marketing loop that orchestrates the other marketing skills. For one-off marketing ideas, see marketing-ideas. For the experimentation loop specifically, see ab-testing." +metadata: + version: 1.0.0 +--- + +# Marketing Loops + +You help set up **marketing loops** — repeatable marketing workflows an AI agent runs on a cadence, each with a defined trigger, a bounded set of steps, a self-check, and an explicit stopping condition. A loop turns a marketing task you'd otherwise do manually (and forget) into an always-on system: the weekly SEO opportunity scan, the ad-fatigue refresh, the churn-signal watch. + +This is the operational cousin of `marketing-ideas`. Ideas tell you *what to try once*. Loops tell you *what to keep doing on a schedule* — and wire the other marketing skills together to do it. + +## How to Use This Skill + +**Check for product marketing context first:** if `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md`), read it before asking questions. Use that context and only ask for what's missing. + +Then: +1. **Clarify the job.** What outcome should this loop protect or grow? (rankings, ad efficiency, activation, retention, revenue, referrals) +2. **Pick a loop** from the catalog in `references/loop-catalog.md` — or adapt the closest one. +3. **Tune the cadence** to how fast the underlying signal actually changes (see the cadence rule below). +4. **Confirm the human checkpoint.** Decide what the loop does autonomously vs. what it stages for human approval before publishing or spending — see `references/loop-guardrails.md`. +5. **Schedule it** (see "Scheduling a loop" below). + +Building more than one loop, or a whole marketing operating system? See `references/loop-orchestration.md` for how loops compose and the order to adopt them (start with tracking + a weekly review; don't build 43 at once). + +## Anatomy of a Marketing Loop + +Every loop in the catalog has these nine parts. When you author or adapt one, fill all of them — a loop missing a stop condition, a self-check, or its state handling is a liability, not an asset. + +| Part | What it defines | +|------|-----------------| +| **Check cadence** | How often the loop *looks* (weekly / daily / on-trigger). Match it to signal speed. | +| **Acts when** | The action condition — what must be true to actually *do* something, vs. just check and skip. Most runs of a good loop are "checked, nothing to do." | +| **Purpose** | The one outcome this loop exists to move. | +| **Skills used** | Which marketing skills the loop orchestrates each iteration. | +| **Loop body** | The ordered steps run each iteration. | +| **Self-check** | The verification done *before* acting — so the loop doesn't act on noise, seasonality, or a tracking bug. | +| **State / idempotency** | What the loop remembers between runs: last-run marker, dedupe key, cooldown window, "already handled" set. Without this, loops double-act, re-nag the same people, or re-alert the same thing. Non-negotiable for anything scheduled — see `references/loop-state.md` for where state lives and the idempotency patterns. | +| **Stop / bail-out** | When the loop skips, halts, escalates to a human, or disables itself — plus what it does on error. Every loop needs one, including heartbeat loops (their stop is "manual disable + error-halt," never "n/a"). | +| **Output** | Where results go: a file, a PR, a staged draft, a notification, a report. | + +The **Check cadence / Acts when** split matters: a churn-signal loop might *check* daily but only *act* when an account crosses a risk threshold it hasn't been contacted about inside the cooldown window. Conflating the two produces loops that either miss the window or spam. + +## The cadence rule + +Match cadence to how fast the signal actually changes — not to how often you'd *like* an update. + +| Signal | Realistic cadence | Why | +|--------|-------------------|-----| +| Rankings, backlinks, domain authority | Weekly | Move slowly; daily checks are noise | +| Ad creative fatigue, CPA drift | Every 2–3 days | Meta/Google feedback loops are days, not hours | +| Activation / onboarding funnel | Weekly | Needs enough signups to be significant | +| Churn signals | Daily or on-trigger | Early intervention window is short | +| Content / copy decay | Monthly | Traffic erosion is gradual | +| Competitor changes | Weekly | Pricing/positioning shifts are infrequent but matter | +| Social listening / mentions | Daily | Engagement windows close fast | + +Over-frequent loops are the most common failure mode: they generate busywork, burn budget, and train you to ignore the output. + +## When NOT to loop + +Not everything should be automated on a cadence. Skip a loop — or add a mandatory human checkpoint — when: + +- **Strategy or creative direction is the real work.** Loops maintain and optimize; they don't set positioning, invent campaigns, or make brand calls. +- **The action publishes or spends without review.** Auto-*drafting* an ad, email, or post is fine. Auto-*publishing* or auto-*shifting budget* needs a human checkpoint unless the user has explicitly authorized autonomous action and set guardrails (caps, allowlists). +- **The signal is too sparse to be significant.** A weekly conversion-rate loop on 40 visitors/week is measuring noise. +- **It's a vanity loop.** If nobody acts on the output, delete the loop. A loop that emails a dashboard nobody reads is worse than nothing. + +For any loop that sends, spends, publishes, or touches personal data, apply `references/loop-guardrails.md` — the two-tier action model (autonomous-safe vs. gated), spend/send caps, CAN-SPAM/GDPR/FTC/ToS rules, the always-escalate list, and a required kill switch. + +## Scheduling a loop + +These loops are agent-agnostic — the *body* works in any agent. The *scheduling* depends on your environment: + +- **Claude Code** — native options: `/loop` (self-paced, until a condition), `ScheduleWakeup` (dynamic pacing that reacts to state), and `CronCreate` (fixed cron schedule). If you have a loop-mechanics skill such as `loopify` installed, use it to choose between them and tune delays; otherwise the guidance below is enough. +- **Any agent + cron** — wrap the loop body as a scheduled prompt/script (`0 9 * * 1` for Mondays 9am, etc.). +- **Manual cadence** — for high-judgment loops, "run this skill every Monday" is a perfectly good loop. The value is the repeatable *body*, not the automation. + +Default to time-of-day cron for review-style loops (weekly review, ranking watch) and dynamic pacing for monitor-until-threshold loops (churn watch, launch-day tracking). + +## The Catalog + +`references/loop-catalog.md` holds the full library — 43 marketing loops with thorough funnel coverage: SEO & Content, Paid, Earned/Social/Partnerships, Activation, Retention, Revenue, Referral & Advocacy, and Ongoing Ops. Each is a complete, adaptable spec. Start there, pick the closest match, and tune it to the user's product, stage, and tooling. + +## Authoring a new loop + +When nothing in the catalog fits, author a new loop from `references/loop-template.md` — a copy-paste template with fill-in prompts, a worked before/after example, and a ship checklist. Fill all nine anatomy parts; if you can't answer the self-check, state/idempotency, and stop/bail-out concretely, the loop isn't ready to run. + +## Anti-patterns + +- Looping without a stop condition → runaway spend or infinite churn. +- Same cadence for every loop → most run too often and get ignored. +- No self-check → the loop acts on noise, seasonality, or a tracking bug. +- No human checkpoint on spend/publish actions. +- Building 10 loops at once → start with one, prove it earns its keep, then add the next. + +## Banned vocabulary + +Avoid: "set it and forget it," "fully autonomous marketing," "AI does everything," "10x on autopilot," "growth hacking machine." Loops are disciplined systems with checkpoints, not magic. Describe them honestly. + +## Related Skills + +- **marketing-ideas** — one-off tactics and inspiration (what to try). Loops operationalize the ones worth repeating. +- **ab-testing** — the experimentation loop specifically (hypothesis → test → promote winner → repeat). +- **analytics** — most loops read from analytics to decide whether to act. +- Individual channel skills (`ads`, `seo-audit`, `emails`, `social`, `churn-prevention`, `pricing`, `referrals`) — the loop bodies orchestrate these. diff --git a/.agents/skills/marketing-loops/evals/evals.json b/.agents/skills/marketing-loops/evals/evals.json new file mode 100644 index 0000000..4ff60f9 --- /dev/null +++ b/.agents/skills/marketing-loops/evals/evals.json @@ -0,0 +1,101 @@ +{ + "skill_name": "marketing-loops", + "evals": [ + { + "id": 1, + "prompt": "I want to set up a recurring loop that watches our SEO and tells me what to do each week. We're a B2B SaaS with a content-heavy site.", + "expected_output": "Should check for product-marketing.md first. Should recognize this maps to SEO loops in the catalog (keyword-gap, ranking-drop watch, content-decay) and propose the closest match(es). Should present the loop using the nine-part anatomy: check cadence, acts-when (action condition), purpose, skills used, loop body, self-check, state/idempotency, stop/bail-out, and output. Should set a weekly cadence (matching how slowly rankings move) and explain the cadence rule. Should include a stop/bail-out and note that most runs may find no action. Should reference the seo-audit skill for execution.", + "assertions": [ + "Checks for product-marketing.md", + "Selects appropriate SEO loop(s) from the catalog", + "Presents the loop with the nine-part anatomy", + "Includes state/idempotency (last-run marker or dedupe)", + "Includes an explicit stop/bail-out condition", + "Sets a weekly cadence and justifies it via the cadence rule", + "References seo-audit or related skills for execution" + ], + "files": [] + }, + { + "id": 2, + "prompt": "I want to automate my marketing so it basically runs itself. Where do I start?", + "expected_output": "Should clarify the outcome to protect or grow before dumping loops (acquisition, activation, retention, revenue, referral). Should push back gently on 'runs itself' framing and avoid the banned vocabulary ('set it and forget it', 'fully autonomous'). Should recommend starting with ONE loop and proving it earns its keep rather than building many at once. Should describe loops as disciplined systems with checkpoints, not autopilot. Should likely suggest the weekly-marketing-review loop as a good first heartbeat loop, and explain human checkpoints for anything that spends or publishes.", + "assertions": [ + "Asks about the target outcome / funnel stage before recommending", + "Avoids banned autopilot vocabulary", + "Recommends starting with one loop, not many", + "Frames loops as systems with checkpoints, not magic", + "Emphasizes human checkpoints for spend/publish actions", + "May suggest the weekly-marketing-review loop as a starting point" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Set up a newsjacking loop that finds trending stories and automatically posts our take to X and pitches journalists.", + "expected_output": "Should build the newsjacking loop but refuse to make it fully autonomous. Must include the veto list (skip tragedies, deaths, disasters, active crises, politically/socially charged stories unless the brand takes such stances, and legal/medical/financial-sensitive topics) and require verified sources. Must require human approval before any pitch or post rather than auto-posting. Should include state/idempotency (dedupe per story, one angle per story) and note most days will correctly skip. Should reference the public-relations skill.", + "assertions": [ + "Builds the newsjacking loop with the nine-part anatomy", + "Includes an explicit veto list for sensitive story types", + "Requires human approval before pitching or posting", + "Does not enable fully autonomous posting", + "Includes dedupe/state so stories aren't re-pitched", + "References the public-relations skill" + ], + "files": [] + }, + { + "id": 4, + "prompt": "How do I actually schedule these loops so they run on their own?", + "expected_output": "Should explain that the loop body is agent-agnostic but scheduling depends on the environment. Should cover the options: Claude Code native primitives (/loop, ScheduleWakeup, CronCreate), any-agent + cron (with an example cron expression), and manual cadence for high-judgment loops. Should default to time-of-day cron for review-style loops and dynamic pacing for monitor-until-threshold loops. Should treat a dedicated loop-mechanics skill like loopify as an optional companion, not a hard dependency, and not assume it is installed.", + "assertions": [ + "Explains scheduling is environment-dependent", + "Covers Claude Code native options and plain cron", + "Includes manual cadence as a valid option", + "Gives cron vs dynamic-pacing default guidance", + "Treats loopify as optional, not a required dependency" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Can you make me a loop that continuously improves our brand positioning and comes up with our big campaign ideas?", + "expected_output": "Should push back: strategy, positioning, and creative direction are the 'when NOT to loop' cases. Loops maintain and optimize; they don't set positioning or invent campaigns. Should explain why (high-judgment, low-frequency, not signal-driven) and redirect: those belong in strategy work, while loops can operationalize the executional follow-through (e.g., competitor-watch to inform positioning, content-calendar refill, campaign-postmortem to compound learnings). Should not fabricate a positioning loop as if it were a good fit.", + "assertions": [ + "Identifies this as a 'when NOT to loop' case", + "Explains loops optimize/maintain rather than set strategy or creative", + "Redirects strategy/creative to the appropriate non-loop work", + "Suggests adjacent operational loops that genuinely fit", + "Does not force an ill-fitting positioning/campaign-ideation loop" + ], + "files": [] + }, + { + "id": 6, + "prompt": "We keep losing customers to failed payments and expired cards. Set up something to recover that revenue automatically.", + "expected_output": "Should select the failed-payment/dunning loop. Should trigger on payment failure or upcoming card expiration, run a retry schedule with escalating update-card messaging, and include state (track dunning stage per account, stop on recovery). Must include a stop/bail-out so it doesn't loop forever (escalate/deactivate after final retry) and a self-check to distinguish involuntary failures from intentional cancellations (don't dun someone who chose to leave). Should reference revops and emails skills. May note this is often the highest-ROI retention loop.", + "assertions": [ + "Selects the failed-payment/dunning loop", + "Triggers on failed payment or card expiration", + "Includes a retry schedule with dunning stage state", + "Has a stop condition so it does not loop forever", + "Self-check separates involuntary failures from intentional cancels", + "References revops and/or emails skills" + ], + "files": [] + }, + { + "id": 7, + "prompt": "I want a loop that keeps our A/B testing program running — generating hypotheses, running tests, and analyzing results every week.", + "expected_output": "Should recognize heavy overlap with the ab-testing skill and treat the experiment-backlog loop as a thin wrapper only. The loop should maintain and re-rank the hypothesis backlog and manage hand-off cadence, but defer test design, statistical analysis, and velocity management to the ab-testing skill rather than duplicating them. Should include ICE prioritization for the backlog and dedupe of incoming hypotheses, and avoid starting conflicting tests.", + "assertions": [ + "Recognizes overlap with the ab-testing skill", + "Keeps the loop as a thin wrapper that defers to ab-testing", + "Does not duplicate test design or statistical analysis in the loop", + "Includes backlog prioritization (ICE) and hypothesis dedupe", + "References the ab-testing skill as the owner of execution" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/marketing-loops/references/loop-catalog.md b/.agents/skills/marketing-loops/references/loop-catalog.md new file mode 100644 index 0000000..eefccb2 --- /dev/null +++ b/.agents/skills/marketing-loops/references/loop-catalog.md @@ -0,0 +1,656 @@ +# Marketing Loop Catalog + +A library of repeatable marketing loops with thorough coverage across the funnel. Each is a complete, adaptable spec. Pick the closest match, then tune the cadence, thresholds, state handling, and human checkpoints to the user's product, stage, and tooling. + +Every loop lists nine parts: **Check cadence · Acts when · Purpose · Skills used · Loop body · Self-check · State / idempotency · Stop / bail-out · Output**. See `SKILL.md` for the anatomy, the cadence rule, and when not to loop. + +Two rules that apply to every entry: +- **Most runs should do nothing.** A healthy loop checks, finds nothing worth acting on, logs "no action," and exits. Loops that act every run are usually acting on noise. +- **State prevents harm.** Every loop tracks what it already did (last-run marker, dedupe key, cooldown) so it never double-acts, re-nags the same person, or re-alerts the same issue. + +Loops are grouped by function. Naming follows the "The X loop" convention. + +--- + +## SEO & Content + +### The keyword-gap loop +- **Check cadence**: Weekly +- **Acts when**: A striking-distance keyword (positions 5–20) or a rising query has no adequate page. +- **Purpose**: Surface new ranking opportunities before competitors take them. +- **Skills used**: `seo-audit`, `programmatic-seo`, `content-strategy` +- **Loop body**: + 1. Pull ranking + impression data (Search Console / rank tracker). + 2. Diff vs. last run: new striking-distance keywords, rising queries with no matching page. + 3. Classify each gap: quick on-page win / net-new page / programmatic template candidate. + 4. Draft briefs for the top 3. +- **Self-check**: Movement real vs. seasonal? Compare to the same period last month, not just last week. +- **State / idempotency**: Store the set of gaps already briefed; don't re-brief an open one. +- **Stop / bail-out**: No gap clears a minimum impression threshold → log "no action." Halt on data-source outage rather than acting on partial data. +- **Output**: Up to 3 content briefs staged for review + a one-line movement summary. + +### The ranking-drop watch loop +- **Check cadence**: Weekly +- **Acts when**: A priority keyword or page drops more than N positions vs. baseline. +- **Purpose**: Catch and diagnose SEO regressions before they compound. +- **Skills used**: `seo-audit`, `analytics` +- **Loop body**: + 1. Track positions for priority keywords/pages. + 2. Flag material drops; diff what changed (content, links, SERP layout, algo-update timing). + 3. Diagnose likely cause + propose a fix. +- **Self-check**: Rule out a SERP-feature change or one-off volatility before declaring a real loss. +- **State / idempotency**: Remember which drops are already open as issues; update rather than re-file. +- **Stop / bail-out**: No material drop → log "stable." Escalate suspected algo hits to a human rather than mass-editing. +- **Output**: A regression report with a recommended fix. + +### The content-decay loop +- **Check cadence**: Monthly +- **Acts when**: A page's traffic/rankings declined materially over the trailing 90 days. +- **Purpose**: Refresh decaying content before it slides out of rankings. +- **Skills used**: `copy-editing`, `seo-audit`, `content-strategy` +- **Loop body**: + 1. Find pages with declining trailing-90-day traffic/rankings. + 2. Pick the highest-value decayers. + 3. Draft a refresh plan (update stats, expand thin sections, fix intent match, re-link). +- **Self-check**: Decay from the page itself, or from a SERP/seasonality shift? Refresh only what a refresh can fix. +- **State / idempotency**: Track last-refresh date per page; don't re-queue a page refreshed within the cooldown. +- **Stop / bail-out**: No meaningful decayers → skip. +- **Output**: A prioritized refresh list with per-page plans. + +### The internal-linking loop +- **Check cadence**: On new/updated content, or weekly +- **Acts when**: A published page has fewer relevant internal links (in or out) than it should. +- **Purpose**: Distribute link equity and help new content get discovered and rank. +- **Skills used**: `seo-audit`, `site-architecture`, `content-strategy` +- **Loop body**: + 1. Identify recently published/updated pages. + 2. Find relevant existing pages that should link to them (and vice versa). + 3. Draft the specific link insertions with anchor text. +- **Self-check**: Is each link contextually relevant, or link-stuffing? Skip forced links. +- **State / idempotency**: Track which page pairs are already linked; never suggest a duplicate. +- **Stop / bail-out**: No relevant link targets → skip. Stage edits for review; don't mass-edit live pages autonomously. +- **Output**: A list of specific internal-link edits. + +### The programmatic-SEO quality loop +- **Check cadence**: Monthly +- **Acts when**: Template pages show indexation gaps, thin content, duplication, or cannibalization. +- **Purpose**: Keep large templated page sets healthy so they don't drag the whole domain. +- **Skills used**: `programmatic-seo`, `seo-audit` +- **Loop body**: + 1. Sample the template page set; check indexation, word/data uniqueness, and query overlap. + 2. Flag thin, duplicate, cannibalizing, or deindexed pages. + 3. Recommend fix, consolidate, noindex, or prune. +- **Self-check**: Is low traffic a quality problem or just low demand? Don't prune pages that serve real long-tail intent. +- **State / idempotency**: Track pages already flagged/actioned; re-check only on the next cycle. +- **Stop / bail-out**: Set healthy → log and skip. Escalate mass-noindex/prune decisions to a human. +- **Output**: A quality report with per-bucket actions. + +### The content-repurposing loop +- **Check cadence**: Weekly +- **Acts when**: A long-form asset (post/video/podcast) hasn't been repurposed yet. +- **Purpose**: Turn every long-form asset into a week of channel-native content. +- **Skills used**: `social`, `content-strategy`, `copywriting` +- **Loop body**: + 1. Find the newest un-repurposed asset. + 2. Extract the 3–5 strongest ideas. + 3. Draft channel-native versions (LinkedIn post, X thread, short-form script). + 4. Stage in the scheduling queue. +- **Self-check**: Does each piece stand alone, or read like a link-dump? Rewrite anything that only works with the original open. +- **State / idempotency**: Mark assets as repurposed; never re-process one. +- **Stop / bail-out**: Nothing new published → skip. +- **Output**: Drafts in the social queue for approval. + +### The content-calendar refill loop +- **Check cadence**: Weekly +- **Acts when**: The editorial pipeline has fewer than N weeks of planned content queued. +- **Purpose**: Keep the content pipeline from running dry. +- **Skills used**: `content-strategy`, `marketing-ideas`, `seo-audit` +- **Loop body**: + 1. Count planned/drafted pieces remaining in the calendar. + 2. If below the buffer, generate new topic ideas from the keyword-gap output, customer questions, and pillar plan. + 3. Prioritize and slot them. +- **Self-check**: Do new topics map to real search demand or audience questions, not just "content for content's sake"? +- **State / idempotency**: Dedupe proposed topics against the existing calendar and published archive. +- **Stop / bail-out**: Pipeline above buffer → skip. +- **Output**: New prioritized topics added to the calendar. + +--- + +## Paid + +### The ad-fatigue loop +- **Check cadence**: Every 2–3 days +- **Acts when**: An ad shows rising frequency + declining CTR/CVR past a real significance bar. +- **Purpose**: Refresh creative before CPA drifts up as ads fatigue. +- **Skills used**: `ads`, `ad-creative`, `analytics` +- **Loop body**: + 1. Pull per-ad metrics: CTR, frequency, CPA, spend, trend vs. baseline. + 2. Flag fatiguing ads and clear winners. + 3. Generate 3–5 fresh variants off the winning angle. + 4. Stage variants; recommend budget shift fatigued → winning. +- **Self-check**: Enough spend, impressions, and conversions to read CPA past the attribution window, and the ad is out of the learning phase. Rising frequency alone with thin conversion data is not fatigue evidence — wait. +- **State / idempotency**: Track per-ad last-refresh date; don't regenerate variants for an ad refreshed within the cooldown. +- **Stop / bail-out**: Never auto-shift budget or publish without a human checkpoint unless spend caps + an allowlist are explicitly authorized. Halt if daily spend exceeds its cap. +- **Output**: Staged creative drafts + a recommended budget move. + +### The paid-search query-mining loop +- **Check cadence**: Weekly +- **Acts when**: Search-term reports reveal wasted spend or new intent. +- **Purpose**: Continuously refine keywords, negatives, and landing-page mapping. +- **Skills used**: `ads`, `analytics` +- **Loop body**: + 1. Pull the search-terms report. + 2. Identify irrelevant terms (→ negatives), high-performing terms (→ new exact-match), and terms whose landing page is a poor match. + 3. Stage keyword/negative changes and landing-page notes. +- **Self-check**: Enough clicks/conversions per term to justify a change? Don't negate on a single click. +- **State / idempotency**: Track already-added negatives/keywords; never re-add. +- **Stop / bail-out**: No terms clear thresholds → skip. Stage changes for review before pushing to the account. +- **Output**: A staged list of negatives, new keywords, and LP mismatches. + +### The retargeting-hygiene loop +- **Check cadence**: Weekly +- **Acts when**: Audiences are stale, too small, over-frequent, or missing exclusions. +- **Purpose**: Keep retargeting efficient and non-annoying. +- **Skills used**: `ads`, `analytics` +- **Loop body**: + 1. Review retargeting audiences: size, recency, frequency, exclusions, creative sequencing. + 2. Flag issues (converters not excluded, audiences too small to serve, frequency too high). + 3. Recommend fixes. +- **Self-check**: Is the audience actually underperforming, or just small-but-valuable? Don't kill high-intent segments for size. +- **State / idempotency**: Track which audiences were already fixed this cycle. +- **Stop / bail-out**: All healthy → skip. Human-approve audience deletions. +- **Output**: A hygiene report with recommended audience changes. + +### The landing-page regression loop +- **Check cadence**: Weekly (or on deploy) +- **Acts when**: A top acquisition page regresses on conversion, speed, tracking, or form function. +- **Purpose**: Catch silent breakage on the pages that receive paid/organic traffic. +- **Skills used**: `cro`, `analytics` +- **Loop body**: + 1. Monitor top acquisition pages: conversion rate, load speed, form submits, tracking fires. + 2. Flag regressions vs. baseline; correlate with recent deploys/changes. + 3. Diagnose and propose a fix. +- **Self-check**: Rule out tracking breakage vs. a real conversion drop before raising an alarm — and vice versa. +- **State / idempotency**: Track open regressions; update rather than re-file. +- **Stop / bail-out**: No regression → log "stable." Escalate a live-revenue-page break immediately, don't wait for the next run. +- **Output**: A regression alert with cause + fix. + +--- + +## Earned, Social & Partnerships + +### The newsjacking loop +- **Check cadence**: Daily +- **Acts when**: A trending story matches the brand's space, clears newsworthiness + fit, **and** passes the veto list. +- **Purpose**: Ride relevant news with a timely angle before the window closes. +- **Skills used**: `public-relations`, `social` +- **Loop body**: + 1. Scan news/HN/Reddit/X for stories intersecting the product's space. + 2. Score newsworthiness + fit + reach. + 3. Run the veto list. For a surviving top story, draft an angle (post, pitch, or commentary). +- **Self-check**: Is the angle genuinely additive, or forced? Kill forced takes — they cost credibility. +- **Veto list (skip immediately)**: tragedies, deaths, disasters, active crises; politically or socially charged stories unless the brand explicitly takes such stances; legal/medical/financial-sensitive topics; anything sourced from an unverified/single unreliable source. +- **State / idempotency**: Dedupe on story ID; one angle per story; never re-pitch a covered story. +- **Stop / bail-out**: Any veto trip → skip. Always require human approval before pitching/posting. Most days will skip — that's correct. +- **Output**: A staged post/pitch for human approval, or nothing. + +### The social-listening loop +- **Check cadence**: Daily +- **Acts when**: A thread/mention clears the ICP-fit + intent + reach score. +- **Purpose**: Surface the highest-value conversations to engage in, instead of scrolling feeds. +- **Skills used**: `social` (see its `references/listening.md`), `community-marketing` +- **Loop body**: + 1. Pull mentions and relevant threads across configured sources. + 2. Score by ICP fit, intent, reach, and comment opportunity. + 3. Draft comments/replies for the top handful. +- **Self-check**: Would a human recognize each reply as genuinely useful, not promotional? +- **State / idempotency**: Track already-engaged threads; never double-reply. Respect a per-account interaction cooldown. +- **Stop / bail-out**: Nothing clears the threshold → skip. Stage replies for human post (don't auto-post — bot-detection + brand risk). +- **Output**: A short list of threads with drafted, on-brand replies. + +### The community-engagement loop +- **Check cadence**: Daily +- **Acts when**: A target community (subreddit/Slack/Discord/forum) has a relevant thread where a helpful, non-promotional reply fits. +- **Purpose**: Build durable presence and trust in the communities where the ICP lives. +- **Skills used**: `community-marketing`, `social` +- **Loop body**: + 1. Scan configured communities for relevant threads/questions. + 2. Score for genuine help opportunity (not just keyword match). + 3. Draft value-first replies; note any that warrant a longer resource. +- **Self-check**: Does the reply lead with help and respect community norms? Self-promo ratio stays low. +- **State / idempotency**: Track engaged threads + per-community posting cadence to avoid over-posting. +- **Stop / bail-out**: No genuine-help opportunity → skip. Stage for human review where communities are strict about vendors. +- **Output**: Drafted community replies + resource ideas. + +### The competitor-watch loop +- **Check cadence**: Weekly +- **Acts when**: A competitor makes a substantive pricing, positioning, product, or messaging change. +- **Purpose**: Catch competitor moves early enough to respond. +- **Skills used**: `competitor-profiling`, `competitors`, `product-marketing` +- **Loop body**: + 1. Fetch competitor pricing pages, homepages, changelogs, recent posts. + 2. Diff vs. last snapshot. + 3. Summarize meaningful changes; flag anything needing a response (comparison-page update, counter-messaging). +- **Self-check**: Substantive vs. cosmetic? Don't raise a copy tweak as a strategic shift. +- **State / idempotency**: Store per-competitor snapshots; diff against the last, and don't re-flag a known change. +- **Stop / bail-out**: No meaningful diffs → log "no change." +- **Output**: A change digest + recommended responses. + +### The backlink-prospecting loop +- **Check cadence**: Weekly +- **Acts when**: New relevant link/guest-post/mention targets appear (or the pipeline is thin). +- **Purpose**: Keep a steady flow of link-building and earned-mention opportunities. +- **Skills used**: `public-relations`, `seo-audit` +- **Loop body**: + 1. Find new prospects: sites linking to competitors, relevant roundups, unlinked brand mentions, resource pages. + 2. Qualify by relevance + authority. + 3. Draft outreach angles for the top targets. +- **Self-check**: Is the target genuinely relevant, or a low-quality link that could hurt? Skip spammy sites. +- **State / idempotency**: Track already-contacted targets + outcomes; respect a follow-up cadence, don't re-pitch cold. +- **Stop / bail-out**: No qualified new targets → skip. Human-approve outreach sends. +- **Output**: A qualified prospect list with drafted outreach. + +### The directory-submission loop +- **Check cadence**: Monthly +- **Acts when**: A relevant new directory/launch platform/marketplace exists that the product isn't listed on. +- **Purpose**: Steadily expand distribution and referral/SEO footprint via directories. +- **Skills used**: `directory-submissions` +- **Loop body**: + 1. Check for new/relevant directories, launch sites, and marketplaces. + 2. Qualify by relevance, authority, and audience fit. + 3. Prepare listing copy/assets for the top ones. +- **Self-check**: Real audience/SEO value, or a link farm? Skip low-quality directories. +- **State / idempotency**: Maintain a submitted-directories list; never resubmit. +- **Stop / bail-out**: No worthwhile new directories → skip. +- **Output**: Prepared listings staged for submission. + +### The partner-pipeline loop +- **Check cadence**: Monthly +- **Acts when**: A viable co-marketing, integration, affiliate, or newsletter-swap opportunity surfaces (or the pipeline is thin). +- **Purpose**: Keep a fresh pipeline of partnership and co-marketing opportunities. +- **Skills used**: `co-marketing`, `referrals` +- **Loop body**: + 1. Scan for potential partners (complementary tools, aligned audiences, active newsletters, integration targets). + 2. Qualify by audience overlap + reach + fit. + 3. Draft partnership/swap outreach for the top prospects. +- **Self-check**: Real audience overlap and mutual value, or a one-sided ask? Skip mismatches. +- **State / idempotency**: Track contacted partners + status; respect follow-up cadence. +- **Stop / bail-out**: No qualified opportunities → skip. Human-approve outreach. +- **Output**: A qualified partner list with drafted outreach. + +--- + +## Activation + +### The onboarding drop-off loop +- **Check cadence**: Weekly +- **Acts when**: An onboarding step's drop exceeds benchmark or regresses vs. last period. +- **Purpose**: Find and fix the biggest leak between signup and first value. +- **Skills used**: `onboarding`, `analytics`, `cro` +- **Loop body**: + 1. Pull the activation funnel step-by-step (signup → key action → aha). + 2. Identify the worst-dropping step vs. benchmark and last period. + 3. Diagnose likely cause; propose one focused fix + how to measure it. +- **Self-check**: Enough new users through the funnel for step rates to be significant? +- **State / idempotency**: Track which fixes were already proposed/shipped; measure their effect before re-touching. +- **Stop / bail-out**: Sample too small → widen window or skip. +- **Output**: One prioritized activation fix with a measurement plan. + +### The signup-funnel-leak loop +- **Check cadence**: Weekly +- **Acts when**: A signup/checkout step regresses vs. baseline. +- **Purpose**: Keep the signup/checkout path converting as the site changes. +- **Skills used**: `signup`, `cro`, `analytics`, `ab-testing` +- **Loop body**: + 1. Pull conversion by step across the signup/checkout flow. + 2. Compare to baseline; flag regressions (a deploy or copy change may have hurt it). + 3. Draft a hypothesis + test for the worst step (hand test execution to `ab-testing`). +- **Self-check**: Rule out tracking breakage before declaring a real drop. +- **State / idempotency**: Track open regressions + running tests; don't start a conflicting test. +- **Stop / bail-out**: No regression and no test-worthy idea → skip. +- **Output**: A prioritized experiment brief for `ab-testing`. + +### The lead-capture-asset loop +- **Check cadence**: Monthly +- **Acts when**: A lead magnet, free tool, or opt-in underperforms on capture rate. +- **Purpose**: Keep top-of-funnel capture assets (lead magnets + free tools) converting visitors to leads. +- **Skills used**: `lead-magnets`, `free-tools`, `cro`, `popups` +- **Loop body**: + 1. Pull view → capture conversion for each lead magnet, free tool, and opt-in. + 2. Flag underperformers vs. benchmark; diagnose (offer, placement, form friction, targeting). + 3. Propose a fix or refresh (new angle, better placement, reduced friction). +- **Self-check**: Enough traffic per asset for the capture rate to be meaningful? +- **State / idempotency**: Track last-optimized date per asset; cooldown before re-touching. +- **Stop / bail-out**: All assets healthy → skip. +- **Output**: A prioritized fix per underperforming asset. + +### The feature-adoption loop +- **Check cadence**: Weekly +- **Acts when**: A sticky/valuable feature is underused by a segment that would benefit. +- **Purpose**: Drive adoption of the features that correlate with retention. +- **Skills used**: `onboarding`, `emails`, `analytics` +- **Loop body**: + 1. Identify high-retention-correlated features and the segments not using them. + 2. Pick the highest-leverage feature × segment. + 3. Draft an in-app nudge or email to drive adoption. +- **Self-check**: Is the feature genuinely valuable to that segment, or would the nudge be noise? Don't push features people rationally skip. +- **State / idempotency**: Track who's already been nudged for which feature; enforce a cooldown; suppress adopters. +- **Stop / bail-out**: No clear feature × segment gap → skip. +- **Output**: A staged adoption nudge. + +--- + +## Retention + +### The churn-signal loop +- **Check cadence**: Daily (or on-trigger) +- **Acts when**: An account newly crosses a churn-risk threshold and isn't already in an intervention. +- **Purpose**: Intervene inside the short window before an at-risk account leaves. +- **Skills used**: `churn-prevention`, `analytics`, `emails` +- **Loop body**: + 1. Score accounts on churn-risk signals (usage decline, seat drop, dunning, support escalations). + 2. Segment newly at-risk accounts. + 3. Match each to the right intervention (re-engagement email, CS outreach, offer); stage it. +- **Self-check**: Is the "drop" a real trend or a weekend/holiday dip? Compare to the account's own baseline. +- **State / idempotency**: Never re-trigger on an account already in an active intervention; enforce a cooldown between attempts. +- **Stop / bail-out**: No newly at-risk accounts → skip. Escalate high-value accounts to a human rather than auto-emailing. +- **Output**: A prioritized at-risk list with staged interventions. + +### The lifecycle-email-refresh loop +- **Check cadence**: Monthly +- **Acts when**: A sequence email underperforms on real engagement or contains stale content. +- **Purpose**: Keep automated sequences performing as the product and audience evolve. +- **Skills used**: `emails`, `analytics`, `copy-editing` +- **Loop body**: + 1. Pull per-email performance — clicks, conversions, replies, unsubscribes, spam complaints, bounces (**not opens** — open tracking is unreliable post-privacy-changes). + 2. Flag weak performers and stale references (old features, dates, pricing). + 3. Draft rewrites or subject-line tests for the bottom performers. +- **Self-check**: Enough sends per email for rates to be meaningful? +- **State / idempotency**: Track last-revised date per email; cooldown before re-testing. +- **Stop / bail-out**: All sequences healthy → skip. **Pause and escalate any sequence with rising complaint/bounce rates — that's a deliverability emergency, not a copy tweak.** +- **Output**: Staged email rewrites + subject-line tests. + +### The re-engagement loop +- **Check cadence**: Weekly +- **Acts when**: A user newly crosses the inactivity threshold. +- **Purpose**: Win back dormant users before they're gone for good. +- **Skills used**: `emails`, `sms`, `offers` +- **Loop body**: + 1. Identify users newly crossing the inactivity threshold. + 2. Pick the win-back angle (new feature, offer, "we miss you," sunset warning). + 3. Draft the message; set suppression so they aren't re-hit next week. +- **Self-check**: Truly dormant, or just low-frequency-by-design users? Don't nag healthy accounts. +- **State / idempotency**: Track win-back attempts per user; suppress after each send for the cooldown. +- **Stop / bail-out**: After N unsuccessful attempts, move to sunset — not another email. +- **Output**: A staged win-back message + updated suppression list. + +### The email-deliverability loop +- **Check cadence**: Weekly +- **Acts when**: Bounce, complaint, or unsubscribe rates rise, or list-hygiene decays. +- **Purpose**: Protect sender reputation and inbox placement. +- **Skills used**: `emails`, `analytics` +- **Loop body**: + 1. Monitor bounces, spam complaints, unsubscribes, domain/DKIM/SPF/DMARC health, and inbox-placement signals. + 2. Flag rising problem rates or authentication issues. + 3. Recommend actions: suppress hard bounces, sunset chronically unengaged, fix auth, throttle. +- **Self-check**: Is a spike a one-off send or a trend? Correlate with recent campaigns. +- **State / idempotency**: Track already-suppressed addresses + last hygiene sweep date. +- **Stop / bail-out**: All metrics healthy → log and skip. **Escalate a complaint-rate spike immediately** — reputation damage compounds fast. +- **Output**: A deliverability report + a suppression/hygiene action list. + +### The voice-of-customer loop +- **Check cadence**: Weekly +- **Acts when**: New feedback (NPS, surveys, support tickets, reviews, calls) has arrived. +- **Purpose**: Route feedback to the right action **and** mine it for marketing inputs. +- **Skills used**: `customer-research`, `churn-prevention`, `referrals`, `copywriting` +- **Loop body**: + 1. Collect new feedback across sources. + 2. Route: detractors/at-risk → save motion (`churn-prevention`); promoters → referral/review ask (`referrals`); recurring pain/desire → experiment + copy inputs. + 3. Extract verbatim customer language for copy, FAQ, and objection-handling. +- **Self-check**: Is a theme a real pattern or one loud voice? Require a minimum count before acting on it. +- **State / idempotency**: Track processed feedback IDs; never double-route the same item. +- **Stop / bail-out**: No new feedback → skip. Escalate sensitive/legal complaints to a human. +- **Output**: Routed actions + a language/insight digest for marketing. + +--- + +## Revenue + +### The trial-conversion loop +- **Check cadence**: Daily +- **Acts when**: A trial user reaches a conversion-relevant moment (mid-trial, near-expiry, activated-but-not-paid). +- **Purpose**: Move more trials to paid with well-timed nudges. +- **Skills used**: `emails`, `paywalls`, `analytics`, `offers` +- **Loop body**: + 1. Segment active trials by stage and activation level. + 2. Match each to the right nudge (value recap, use-case tip, near-expiry push, offer). + 3. Stage the nudge. +- **Self-check**: Is the user activated enough for a paid push to land, or do they need more value first? +- **State / idempotency**: Track nudges sent per trial; enforce cadence; suppress converters. +- **Stop / bail-out**: No trials at an actionable stage → skip. Don't over-message a single trial. +- **Output**: Staged, stage-appropriate trial nudges. + +### The PQL / upgrade-intent loop +- **Check cadence**: Daily +- **Acts when**: A free/trial user shows product-qualified buying intent (usage limits, key-feature use, team invites). +- **Purpose**: Catch high-intent users and stage upgrade outreach at the right moment. +- **Skills used**: `analytics`, `sales-enablement`, `revops` +- **Loop body**: + 1. Score free/trial users on PQL signals. + 2. Surface newly qualified users. + 3. Stage the right motion (in-app upgrade prompt, sales-assist for high-value, targeted email). +- **Self-check**: Is the signal genuine buying intent or incidental usage? Calibrate the threshold to avoid false positives. +- **State / idempotency**: Track already-actioned PQLs; don't re-route within the cooldown. +- **Stop / bail-out**: No newly qualified users → skip. Route high-value accounts to a human, don't auto-close. +- **Output**: A prioritized PQL list with staged motions. + +### The pricing-page-experiment loop +- **Check cadence**: Monthly (tests run longer) +- **Acts when**: No test is running on the page and there's a worthwhile hypothesis — or a running test has concluded. +- **Purpose**: Improve pricing-page conversion **and revenue quality**, continuously. +- **Skills used**: `pricing`, `ab-testing`, `cro` +- **Loop body**: + 1. Review pricing-page conversion, plan mix, and revenue-per-visitor. + 2. Generate one pricing/packaging/copy hypothesis, or read a concluded test. + 3. Hand design/analysis to `ab-testing`; promote a clean winner. +- **Self-check**: Judge winners on **revenue per visitor, plan mix, refunds, downgrades, churn, and support load — not conversion rate alone.** Is the running test statistically done before you call it? +- **State / idempotency**: Track the running test + concluded-test log; never start a conflicting test on the same page. +- **Stop / bail-out**: A test is in flight → hold. **Do not promote a variant that lifts conversion but lowers revenue-per-visitor or raises refunds/churn.** +- **Output**: A test result + next hypothesis. + +### The paywall-optimization loop +- **Check cadence**: Monthly +- **Acts when**: No paywall test is running and there's a hypothesis — or one has concluded. +- **Purpose**: Improve in-app upgrade conversion without degrading revenue quality. +- **Skills used**: `paywalls`, `ab-testing`, `analytics` +- **Loop body**: + 1. Pull paywall view → upgrade conversion and bounce points. + 2. Form one hypothesis (trigger timing, framing, plan anchor), or read a concluded test. + 3. Hand execution to `ab-testing`. +- **Self-check**: Segment by plan/cohort — an aggregate number can hide a segment that's tanking. Watch refunds/downgrades alongside conversion. +- **State / idempotency**: Track running/concluded tests; no conflicting tests. +- **Stop / bail-out**: Test in flight → hold. Don't promote a conversion win that raises refunds or churn. +- **Output**: A test result + next hypothesis. + +### The expansion / upsell loop +- **Check cadence**: Weekly +- **Acts when**: An existing paid account hits an expansion signal (usage near limits, added seats, new use case). +- **Purpose**: Grow revenue from existing customers via well-timed upsell/cross-sell. +- **Skills used**: `revops`, `sales-enablement`, `emails` +- **Loop body**: + 1. Score paid accounts on expansion signals. + 2. Surface newly expansion-ready accounts. + 3. Stage the right motion (usage-based upgrade prompt, CSM outreach, cross-sell offer). +- **Self-check**: Is the account healthy enough that an upsell won't sour the relationship? Don't upsell an at-risk account — that's a churn loop's job. +- **State / idempotency**: Track upsell touches per account; enforce cadence. +- **Stop / bail-out**: No expansion-ready accounts → skip. Route strategic accounts to a human. +- **Output**: A prioritized expansion list with staged motions. + +### The failed-payment / dunning loop +- **Check cadence**: Daily +- **Acts when**: A payment fails or a card is about to expire. +- **Purpose**: Recover involuntary churn — often the highest-ROI retention work. +- **Skills used**: `revops`, `emails` +- **Loop body**: + 1. Detect failed payments and upcoming card expirations. + 2. Trigger the dunning sequence (retry schedule + escalating update-card messaging). + 3. Route persistent failures to a human/CS. +- **Self-check**: Is the failure involuntary (card issue) vs. an intentional cancel? Don't dun someone who chose to leave. +- **State / idempotency**: Track dunning stage per account; follow the retry schedule; stop on recovery. +- **Stop / bail-out**: After the final retry, escalate/deactivate per policy — don't loop forever. +- **Output**: An active dunning queue + recovery status. + +--- + +## Referral & Advocacy + +### The referral-nudge loop +- **Check cadence**: Weekly +- **Acts when**: A user hits a "happy moment" (milestone, positive NPS) and hasn't been asked recently. +- **Purpose**: Ask for referrals when users are most delighted. +- **Skills used**: `referrals`, `emails` +- **Loop body**: + 1. Identify users who just hit a happy moment and aren't in the ask-cooldown. + 2. Match to the right ask (share link, incentive, review request). + 3. Stage the ask. +- **Self-check**: Genuinely a happy moment, or just any event? A bad-timing ask erodes goodwill. +- **State / idempotency**: Enforce a cooldown — never ask the same user twice in the window. +- **Stop / bail-out**: No one at a happy moment → skip. +- **Output**: A staged, well-timed referral ask. + +### The review-and-UGC-harvest loop +- **Check cadence**: Weekly +- **Acts when**: New reviews, testimonials, or user-generated content have appeared. +- **Purpose**: Keep a steady flow of social proof and route it into marketing. +- **Skills used**: `social`, `referrals`, `sales-enablement`, `cro` +- **Loop body**: + 1. Collect new reviews/testimonials/UGC/mentions since last run. + 2. Sort by strength and relevance. + 3. Draft where each should go (site proof section, ad, social post, sales deck). + 4. Flag anything negative for a human response. +- **Self-check**: Is it genuinely strong and on-message? Don't force weak proof into prime placement. +- **State / idempotency**: Track already-harvested items; never re-use the same one twice. +- **Stop / bail-out**: **Verify consent and platform ToS before public reuse; add FTC-required disclosure for incentivized content.** No verifiable consent, or platform prohibits reuse → don't use. Negative/sensitive → escalate to a human, don't auto-publish. +- **Output**: New proof assets routed to their destinations. + +### The review-site-management loop +- **Check cadence**: Weekly +- **Acts when**: New reviews land on G2/Capterra/app stores, or listings drift out of date. +- **Purpose**: Maintain reputation and conversion on third-party review platforms. +- **Skills used**: `sales-enablement`, `social`, `cro` +- **Loop body**: + 1. Track new reviews across review sites/app stores. + 2. Draft responses (thank promoters, address detractors constructively). + 3. Flag listing updates needed (screenshots, features, pricing). +- **Self-check**: Is the response specific and non-defensive? Never argue publicly with a reviewer. +- **State / idempotency**: Track responded reviews; never double-respond. +- **Stop / bail-out**: No new reviews/updates → skip. Human-approve responses to negative/legal-sensitive reviews. +- **Output**: Drafted responses + a listing-update checklist. + +### The case-study-sourcing loop +- **Check cadence**: Monthly +- **Acts when**: A customer hits case-study-worthy success (strong results, milestone, enthusiastic feedback). +- **Purpose**: Keep a pipeline of case studies and customer stories. +- **Skills used**: `sales-enablement`, `customer-research`, `referrals` +- **Loop body**: + 1. Identify customers with standout results/engagement. + 2. Qualify for a case study (results, willingness, logo value). + 3. Draft the outreach + interview questions. +- **Self-check**: Are the results real and attributable, or coincidental? Verify before pitching a story. +- **State / idempotency**: Track approached customers + status; respect a no-repeat cooldown. +- **Stop / bail-out**: No qualified candidates → skip. Human-approve customer outreach. +- **Output**: A candidate list with drafted outreach. + +--- + +## Ongoing Ops / Meta + +### The weekly-marketing-review loop +- **Check cadence**: Weekly (Mon 9am) +- **Acts when**: Always runs — this is the heartbeat. It "acts" by flagging the week's notable movers. +- **Purpose**: One standing full-funnel pulse so nothing drifts unnoticed. +- **Skills used**: `analytics`, `marketing-plan`, `marketing-ideas` +- **Loop body**: + 1. Pull top-line AARRR metrics vs. last week and vs. plan. + 2. Flag the biggest mover (good and bad) per stage. + 3. Tie each flag to the loop or skill that should act on it; surface 1–2 experiment ideas. +- **Self-check**: Distinguish trend from noise before raising an alarm. +- **State / idempotency**: Store each week's snapshot for accurate week-over-week deltas. +- **Stop / bail-out**: Manual disable + error-halt. On a data-source outage, report "stale data," never fabricated movement. (Not "n/a" — even the heartbeat needs an off switch and an error path.) +- **Output**: A one-page weekly digest with owners/next actions. + +### The experiment-backlog loop +- **Check cadence**: Weekly +- **Acts when**: New hypotheses exist to log, the backlog needs re-ranking, or a test slot is free. +- **Purpose**: Keep the experiment pipeline full and prioritized. **Thin wrapper — defer all test design, statistical analysis, and velocity management to `ab-testing`.** +- **Skills used**: `ab-testing` (owner), `cro`, `analytics` +- **Loop body**: + 1. Harvest new hypotheses from the week (data, research, competitors, support, other loops). + 2. Re-rank the backlog with ICE. + 3. If a slot is free, hand the top idea to `ab-testing`; if a test concluded there, log the learning. +- **Self-check**: Is the top idea actually testable with current traffic, or ICE-inflated? +- **State / idempotency**: Dedupe incoming hypotheses against the backlog; track which tests are live. +- **Stop / bail-out**: Backlog full and a test running → just log new ideas. Don't duplicate `ab-testing`'s job. +- **Output**: An updated, ranked backlog (the source of record lives with `ab-testing`). + +### The analytics-anomaly loop +- **Check cadence**: Daily +- **Acts when**: A tracked metric breaks its expected band (spike or drop beyond normal variance). +- **Purpose**: Catch anything breaking — good or bad — before it runs for days unnoticed. +- **Skills used**: `analytics` +- **Loop body**: + 1. Check key metrics (traffic, signups, conversion, revenue, spend) against their normal range. + 2. Flag anomalies; separate "real event" from "tracking artifact." + 3. Route each to the responsible loop/owner for diagnosis. +- **Self-check**: Is the anomaly real or a tracking/seasonality artifact? Check for known causes (holiday, launch, deploy) before alarming. +- **State / idempotency**: Track already-alerted anomalies; don't re-alert the same ongoing one daily. +- **Stop / bail-out**: All metrics in-band → silent (no alert = good). Escalate a revenue/spend anomaly immediately. +- **Output**: An anomaly alert routed to an owner, or nothing. + +### The brand-mention / reputation loop +- **Check cadence**: Daily +- **Acts when**: A meaningful brand mention appears anywhere (not just where you're listening for engagement). +- **Purpose**: Monitor and protect reputation; respond where it matters. +- **Skills used**: `social`, `public-relations` +- **Loop body**: + 1. Scan the open web/social/forums for brand mentions. + 2. Classify sentiment + reach + risk. + 3. Route: positive → amplify/thank; negative/risky → drafted response for human review; unlinked mention → backlink-prospecting. +- **Self-check**: Does a negative mention need a response, or would engaging amplify it? Judge reach + legitimacy. +- **State / idempotency**: Dedupe on mention ID; track handled mentions. +- **Stop / bail-out**: No meaningful mentions → skip. **Always human-approve responses to negative/crisis mentions** — never auto-reply to a complaint. +- **Output**: A mention digest with routed actions. + +### The tracking-QA loop +- **Check cadence**: Weekly (and on deploy / campaign launch) +- **Acts when**: Analytics, pixels, UTMs, or conversion events are missing, misfiring, or misconfigured. +- **Purpose**: Keep the measurement layer trustworthy — every other loop depends on it. +- **Skills used**: `analytics` +- **Loop body**: + 1. Verify key events fire correctly, pixels are present, UTMs are consistent, and conversions attribute. + 2. Flag broken/missing/duplicate tracking, especially after deploys or new campaigns. + 3. Recommend fixes. +- **Self-check**: Is it truly broken, or an expected change? Confirm against a known-good baseline. +- **State / idempotency**: Track open tracking issues; update rather than re-file. +- **Stop / bail-out**: All tracking healthy → log "clean." **Escalate a broken revenue/conversion event immediately** — every downstream loop is blind until it's fixed. +- **Output**: A tracking-QA report with prioritized fixes. + +### The campaign-postmortem loop +- **Check cadence**: On campaign end (event-based) +- **Acts when**: A campaign (launch, promo, seasonal push) concludes. +- **Purpose**: Capture results, lessons, and reusable assets so each campaign compounds. +- **Skills used**: `analytics`, `marketing-plan` +- **Loop body**: + 1. Pull final campaign results vs. goals. + 2. Capture what worked, what didn't, and why; save reusable assets (copy, creative, workflows). + 3. Feed learnings into the experiment backlog and the next plan; log follow-ups. +- **Self-check**: Are conclusions supported by the data, or hindsight narrative? Separate correlation from cause. +- **State / idempotency**: One postmortem per campaign; don't re-run on an already-documented campaign. +- **Stop / bail-out**: No concluded campaign → skip. +- **Output**: A postmortem doc + backlog/plan inputs. + +--- + +## Adapting and authoring loops + +To adapt a loop: keep all nine anatomy parts, swap skills/thresholds for the user's stack, and re-tune cadence to signal speed. To author a brand-new one: use `loop-template.md` (copy-paste template + fill-in prompts + worked example + ship checklist). Either way, do not ship a loop until every part is filled — especially **State / idempotency**, **Self-check**, and **Stop / bail-out**. A loop without those isn't a system; it's a way to do the wrong thing on a schedule, repeatedly, to the same people. diff --git a/.agents/skills/marketing-loops/references/loop-guardrails.md b/.agents/skills/marketing-loops/references/loop-guardrails.md new file mode 100644 index 0000000..9c26ebc --- /dev/null +++ b/.agents/skills/marketing-loops/references/loop-guardrails.md @@ -0,0 +1,73 @@ +# Loop Guardrails & Compliance + +Loops act on a schedule, often on customer data, sometimes with money or a public voice. This reference consolidates the safety rules that keep autonomous loops from doing harm. Apply it to every loop that sends, spends, publishes, or touches personal data. + +## The two-tier action model + +Classify every action a loop can take: + +**Tier 1 — Autonomous-safe** (a loop may do these unattended): +read data, analyze, diff, score, **draft**, and **stage** work for review. + +**Tier 2 — Gated** (require a human checkpoint by default): +**spend** money, **shift budget**, **send** messages, **publish** anything public, **delete/suppress** records, **change** live account settings. + +A Tier-2 action may run without a per-action human check only if the user has **explicitly authorized** it *and* it's bounded by caps + an allowlist (below). Absent that, the loop stages a draft and a human approves. + +## Spend guardrails (ad-fatigue, paid-search, retargeting, expansion) + +- **Hard caps**: a daily/weekly spend ceiling the loop can never exceed; halt and alert if approached. +- **Per-run change limit**: cap how much budget can move in one run (e.g., ≤20%), so a bad read can't reallocate everything. +- **Allowlist**: only specified accounts/campaigns are eligible for autonomous changes; everything else is staged. +- **Directional guardrails**: judge paid changes on revenue/ROAS, not just CTR/CPA — never optimize a proxy metric into a revenue loss. + +## Publish & send guardrails (email, social, PR, community, reviews) + +- **Default to a staging queue** + human approval for anything public or outbound. Auto-*drafting* is fine; auto-*publishing* is not, unless explicitly authorized. +- **Volume caps**: per-run and per-recipient limits so a loop can't blast a list or over-post a channel. +- **Suppression first**: always check suppression/unsubscribe/do-not-contact lists before sending. +- **No auto-posting where detection/ToS bites**: owned social, press pitches, and community replies are staged for a human (bot detection + brand risk). + +## Compliance + +Match each rule to the loops it governs: + +- **CAN-SPAM / CASL (email/SMS loops — lifecycle, re-engagement, churn, trial, dunning, referral)**: honor unsubscribes immediately and permanently; include a working unsubscribe + physical address; identify the sender; don't email/text without a lawful basis or consent; scrub against suppression every send. +- **GDPR / CCPA (any loop touching personal data)**: process on a lawful basis; get consent for EU marketing; honor deletion and opt-out requests; minimize data pulled and retained; don't repurpose data beyond its collected purpose. +- **FTC (review-and-UGC-harvest, referral, social)**: disclose material connections and incentives (#ad, "I was compensated"); only use testimonials with permission; no fabricated or cherry-picked-to-mislead claims. +- **Platform ToS (social-listening, community-engagement, review-site-management, scraping-based loops)**: respect rate limits and automation rules; follow review-platform response policies; don't scrape or auto-act where prohibited. + +When a loop can't confirm consent, permission, or ToS-compatibility, its stop condition is **don't act** — stage for a human instead. + +## PII handling + +- Don't log raw PII in loop **state** or **run logs** — use internal IDs or hashes. +- Pull the minimum personal data needed to make the decision; don't hoard it in state. +- Keep exports and drafts out of shared/synced locations unless intended. + +## Always-escalate list + +These never run fully autonomously — route to a human regardless of authorization: + +- Negative or crisis brand mentions; responses to complaints or legal/medical/financial-sensitive issues. +- Newsjacking angles (see the veto list in the catalog) — human approval before any pitch/post. +- High-value or strategic accounts (enterprise, at-risk logos). +- Anomalies in **revenue** or **ad spend** — flag immediately, don't self-correct. +- Anything that would delete data or contact a large audience at once. + +## Kill switch + +Every scheduled loop needs a manual off switch, and you should know how to stop **all** loops fast (disable the schedule / cron, or a global flag the loop bodies check). Document it where the loops are scheduled. A loop you can't stop quickly is a liability. + +## Pre-launch guardrail checklist + +Before scheduling any loop that sends, spends, publishes, or touches personal data: + +- [ ] Every action is classified Tier 1 (auto) or Tier 2 (gated). +- [ ] Tier-2 actions are staged for approval — or bounded by explicit authorization + caps + allowlist. +- [ ] Spend loops have a hard cap and a per-run change limit. +- [ ] Send loops check suppression/unsubscribe and have volume caps. +- [ ] Applicable compliance rules (CAN-SPAM/GDPR/FTC/ToS) are satisfied, with "don't act" as the fallback. +- [ ] No raw PII in state or logs. +- [ ] The always-escalate cases route to a human. +- [ ] There's a documented kill switch. diff --git a/.agents/skills/marketing-loops/references/loop-orchestration.md b/.agents/skills/marketing-loops/references/loop-orchestration.md new file mode 100644 index 0000000..eb0bfe3 --- /dev/null +++ b/.agents/skills/marketing-loops/references/loop-orchestration.md @@ -0,0 +1,69 @@ +# Loop Orchestration & Rollout + +Loops aren't independent scripts — they compose into a marketing operating system. This reference covers how they fit together and the order to adopt them so you never build 43 at once. + +## The system view + +Loops fall into four layers. Data flows down and learnings flow back up. + +``` +SENSING analytics-anomaly · tracking-QA · weekly-marketing-review + │ (detect what changed; trust the numbers first) + ▼ +DIAGNOSTIC per-stage watchers — onboarding drop-off, churn-signal, + ranking-drop, landing-page regression, ad-fatigue, … + │ (figure out what to do about it) + ▼ +ACTION staged drafts, nudges, outreach, budget moves + │ (mostly human-checkpointed) + ▼ +LEARNING experiment-backlog · campaign-postmortem · voice-of-customer + │ (capture what worked) + └──────────────► feeds back into SENSING & DIAGNOSTIC +``` + +Key connective tissue: +- **weekly-marketing-review is the router.** It reads top-line metrics and dispatches each notable mover to the loop that owns it. It's the one loop that sees the whole board. +- **tracking-QA + analytics-anomaly are the foundation.** Every other loop reads from analytics. If tracking is broken, every downstream loop acts on lies. These come first. +- **experiment-backlog is the sink.** Hypotheses generated by many loops (signup-leak, pricing, onboarding, voice-of-customer) converge here, then hand off to `ab-testing`. Don't let each loop run its own tests. +- **voice-of-customer is a source.** Customer language it mines feeds copy for ad-fatigue, lifecycle-email, landing-page, and pricing loops. +- **campaign-postmortem closes the loop.** Its learnings become next quarter's hypotheses and plan inputs. + +Avoid duplicate ownership: when two loops could act on the same signal, one owns the action and the other just flags. (E.g., an at-risk account belongs to churn-signal, not expansion/upsell — never upsell an account that's churning.) + +## Rollout path (adopt in this order) + +Add a loop only when the loops before it are running and earning their keep. Each stage assumes the previous one is solid. + +**Stage 0 — Foundation (trust the data + see the board).** +`tracking-QA`, `weekly-marketing-review`. +You cannot run any loop responsibly on untrustworthy data or without a full-funnel pulse. This is non-negotiable and comes first. + +**Stage 1 — Plug the leaks (highest ROI, protects existing revenue).** +`failed-payment/dunning`, `churn-signal`, `lifecycle-email-refresh`. +Recovering customers you already have is cheaper than acquiring new ones. Dunning alone often pays for the whole system. + +**Stage 2 — Convert what you already get (fix the bucket before adding water).** +`onboarding drop-off`, `signup-funnel-leak`, `trial-conversion`. +More traffic into a leaky funnel is waste. Seal activation and conversion next. + +**Stage 3 — Grow the top (now scale acquisition).** +`keyword-gap`, `content-repurposing`, `ad-fatigue`, `social-listening`, `analytics-anomaly`. +With the bucket sealed, turn on demand generation and the safety-net anomaly watcher. + +**Stage 4 — Optimize monetization.** +`pricing-page-experiment`, `paywall-optimization`, `PQL/upgrade-intent`, `expansion/upsell`. +Once volume is healthy, tune revenue per user — judged on revenue quality, not conversion alone. + +**Stage 5 — Compounding & advocacy.** +`referral-nudge`, `review-and-UGC-harvest`, `review-site-management`, `case-study-sourcing`, `partner-pipeline`, `brand-mention/reputation`, `experiment-backlog`, `campaign-postmortem`. +The flywheel: happy customers and earned media that feed back into acquisition, plus the learning loops that make everything compound. + +The remaining catalog loops (content-decay, internal-linking, programmatic-SEO quality, content-calendar refill, paid-search query-mining, retargeting-hygiene, landing-page regression, community-engagement, competitor-watch, backlink-prospecting, directory-submission, feature-adoption, lead-capture-asset, email-deliverability, voice-of-customer) slot into the stage that matches their function as each channel becomes a priority. + +## Rollout rules + +- **One at a time.** Prove a loop earns its keep (someone acts on its output, it moves its metric) before adding the next. +- **Foundation before growth.** Acquisition loops before solid tracking + retention = pouring water into a leaky bucket. +- **Cap the total.** If you're running more loops than you can review the output of, you have vanity loops. Retire the ones nobody acts on. +- **Re-audit quarterly.** Recalibrate thresholds, kill dead loops, promote the ones that consistently drive action. diff --git a/.agents/skills/marketing-loops/references/loop-state.md b/.agents/skills/marketing-loops/references/loop-state.md new file mode 100644 index 0000000..c36a7b8 --- /dev/null +++ b/.agents/skills/marketing-loops/references/loop-state.md @@ -0,0 +1,67 @@ +# Loop State & Run Logging + +Idempotency is only real if the loop can remember what it already did between runs. This reference defines where that state lives and how to log runs — so loops don't double-act, re-nag the same people, or re-alert the same issue. + +## Where state lives + +Persist each loop's state in a file under `.agents/loops/` — the same `.agents/` convention this repo uses for `product-marketing.md` and `listening-sources.md`. One state file per loop: + +``` +.agents/loops/.json # the loop's memory +.agents/loops/.log # append-only run log +``` + +If your scheduler or platform provides its own dedupe/cursor storage, use that instead — the point is durable state, not the specific file. Never keep state only in memory; a loop that forgets on restart will repeat itself. + +## What to store + +A state file holds whatever the loop needs to not repeat itself: + +```json +{ + "loop": "churn-signal", + "last_run": "2026-07-01T09:00:00Z", + "cursor": "2026-06-30T23:59:59Z", // watermark — only process items newer than this + "handled": ["acct_1042", "acct_1077"], // dedupe keys already acted on + "cooldowns": { // entity -> next-eligible timestamp + "acct_1042": "2026-07-15T00:00:00Z" + }, + "in_flight": ["exp_pricing_v3"], // actions/tests currently open + "counters": { "acct_1042_attempts": 2 } // e.g. dunning/win-back attempt counts +} +``` + +- **cursor / watermark** — the high-water mark of what's been processed (a timestamp or last ID). The loop only looks at items past it. +- **handled** — dedupe keys for items already acted on, so re-runs skip them. +- **cooldowns** — per-entity suppression windows so you never re-contact someone inside the window. +- **in_flight** — open items (running tests, active interventions) so the loop doesn't start a conflicting one. +- **counters** — attempt counts that drive stop conditions (e.g., "after 2 win-back emails, stop"). + +Keep state small and prune it: expire old `handled`/`cooldown` entries once they're past their window. + +## Idempotency patterns + +- **Watermark**: process only items newer than `cursor`; advance `cursor` at the end of a successful run. Safe to re-run — it won't reprocess. +- **Dedupe set**: before acting on an item, check its key against `handled`; add it after acting. +- **Cooldown map**: before contacting an entity, check `cooldowns[entity]`; set it after contact. +- **In-flight guard**: before starting an action that shouldn't overlap (a test, an intervention), check `in_flight`. + +## Run logging + +Append one line per run, whether or not it acted. This is the audit trail and the vanity-loop detector. + +``` +2026-07-01T09:00Z checked=312 acted=2 note="2 accounts newly at-risk, interventions staged" +2026-07-02T09:00Z checked=298 acted=0 note="no action" +2026-07-03T09:00Z checked=305 acted=0 note="no action" +``` + +Log at minimum: timestamp, how many items checked, how many acted on, and a short note. Use it to answer two questions: +- **Is it a vanity loop?** If every run is `acted=0` for weeks and nobody misses it — or it acts every run (a sign it's chasing noise) — reconsider it. +- **Did it double-act?** Two runs acting on the same entity means the dedupe/cooldown state isn't working. + +## Resetting & backfilling safely + +- To **reset** a loop, clear its `cursor`/`handled` — but keep `cooldowns` so a reset doesn't spam people who were recently contacted. +- On **first run** (no state yet), set the watermark to "now" rather than processing all history, or you'll blast every historical item. If you genuinely want a backfill, do a dry run first (log what it *would* do, act on nothing) and respect cooldowns. +- Never log raw PII in state or run logs — use IDs or hashes (see `loop-guardrails.md`). diff --git a/.agents/skills/marketing-loops/references/loop-template.md b/.agents/skills/marketing-loops/references/loop-template.md new file mode 100644 index 0000000..757e22d --- /dev/null +++ b/.agents/skills/marketing-loops/references/loop-template.md @@ -0,0 +1,79 @@ +# Loop Template + +A copy-paste template for authoring your own marketing loop. Fill every one of the nine parts — a loop missing its **state/idempotency**, **self-check**, or **stop/bail-out** isn't a system, it's a way to do the wrong thing on a schedule. + +Before you start, sanity-check that this *should* be a loop at all (see "When NOT to loop" in `SKILL.md`): it's recurring, signal-driven, and doesn't require human judgment to set strategy or creative direction each run. + +--- + +## Blank template (copy this) + +```markdown +### The loop +- **Check cadence**: +- **Acts when**: +- **Purpose**: +- **Skills used**: +- **Loop body**: + 1. + 2. + 3. +- **Self-check**: +- **State / idempotency**: +- **Stop / bail-out**: +- **Output**: +``` + +--- + +## Fill-in prompts (answer these, in order) + +1. **What outcome does this protect or grow?** (rankings, ad efficiency, activation, retention, revenue, referrals) → *Purpose* +2. **How fast does that signal actually change?** (hours / days / weeks / months) → *Check cadence* +3. **What has to be true before it's worth acting?** (a threshold crossed, a new item appeared, a regression vs. baseline) → *Acts when* +4. **What data does it read and what does it produce each run?** → *Loop body* + *Output* +5. **What would make it act on a false signal?** (noise, seasonality, a tracking break, too-small a sample) → *Self-check* +6. **What must it remember so it doesn't repeat itself?** (dedupe key, cooldown, last-run marker) → *State / idempotency* +7. **When should it stop, skip, or hand off to a human?** (no action needed, error, spend/publish decision, N failed attempts) → *Stop / bail-out* + +If you can't answer 5, 6, and 7 concretely, the loop isn't ready to run. + +--- + +## Worked example (blank → filled) + +Say you sell a freemium API tool and want to stop losing signups who never make their first API call. + +```markdown +### The first-call activation loop +- **Check cadence**: Daily +- **Acts when**: A user who signed up 48h ago still hasn't made a successful API call and isn't already in this nudge sequence. +- **Purpose**: Increase the share of new signups that reach first value (first successful API call). +- **Skills used**: `onboarding`, `emails`, `analytics` +- **Loop body**: + 1. Pull signups from ~48h ago and their first-call status. + 2. Filter to those with zero successful calls and no active nudge. + 3. Draft a targeted "get your first call working" email (docs link, common blocker, offer to help). +- **Self-check**: Is "no call" a real activation gap, or a tracking gap (calls firing but not logged)? Confirm against server logs before emailing. +- **State / idempotency**: Track which users have entered this sequence; suppress anyone who has made a call since; one nudge per user per stage. +- **Stop / bail-out**: After 2 nudges with no call, stop and route to the broader re-engagement loop — don't keep emailing. Skip the run entirely if the events pipeline looks stale. +- **Output**: A staged activation email per qualifying user + a daily count of new activations. +``` + +Notice what makes it safe: the **self-check** guards against a tracking bug emailing active users, the **state** stops it re-nagging, and the **stop** caps attempts and hands off instead of looping forever. + +--- + +## Ship checklist + +Before you schedule a new loop, confirm: + +- [ ] All nine parts are filled — especially self-check, state, and stop. +- [ ] Cadence matches signal speed (you're not checking daily for a weekly-moving signal). +- [ ] It's designed so **most runs do nothing** — it acts only on a real condition. +- [ ] Anything that **spends money or publishes** has a human checkpoint (unless caps + an allowlist are explicitly authorized). +- [ ] State prevents double-acting and re-nagging the same people. +- [ ] There's an error path (stale data → report "stale," don't fabricate movement) and a manual off switch. +- [ ] For scheduling mechanics, see the "Scheduling a loop" section in `SKILL.md`. + +Once it runs, give it a few cycles and ask the "is this a vanity loop?" question: if nobody acts on the output, delete it. diff --git a/.agents/skills/marketing-plan/SKILL.md b/.agents/skills/marketing-plan/SKILL.md new file mode 100644 index 0000000..a647a52 --- /dev/null +++ b/.agents/skills/marketing-plan/SKILL.md @@ -0,0 +1,270 @@ +--- +name: marketing-plan +description: When the user needs a comprehensive marketing plan for a client, a company they advise, or their own product. Also use when the user mentions "marketing plan," "growth plan," "GTM plan," "go-to-market plan," "AARRR plan," "90-day marketing plan," "12-month marketing roadmap," "fractional CMO plan," or "fCMO plan." Generates an exhaustive 13-section plan structured by AARRR (Acquisition, Activation, Retention, Referral, Revenue), customized to the client's current budget, team, and stage, mapped to future funding milestones, cross-referenced with the 139-idea marketing-ideas library and an embedded 17-section current-state audit rubric, with a full marketing operations stack showing which skills and MCP/API integrations execute each part. Outputs a Notion-paste-ready markdown document. For positioning and ICP context before planning, see product-marketing. For stage-specific deep work, see onboarding, signup, emails, referrals, pricing. +--- + +# Marketing Plan + +You are an expert marketing strategist operating at fCMO (fractional CMO) level. Your job is to produce a comprehensive, executable 12-month marketing plan for a specific client or company, structured by AARRR (Acquisition, Activation, Retention, Referral, Revenue), customized to their actual budget, team, stage, and capabilities, and cross-referenced with the full marketing-ideas library and the embedded 17-section current-state audit rubric. + +The deliverable is a single Notion-paste-ready markdown document — the kind of strategy artifact a fractional CMO would present to founders. It must be specific to the client (not generic), exhaustive (covers every tactical surface area, not just what's prescribed), and operationally honest (reflects what their team can actually execute with their current stack and headcount). + +## When to use + +Invoke this skill when: + +- A user is starting a new client engagement as a fractional CMO or marketing consultant +- A founder needs a 12-month marketing roadmap they can share with their team or investors +- A team wants to consolidate scattered marketing work (SEO research, brand voice docs, audit findings, onboarding analyses) into a single coherent plan +- The user explicitly asks for a "marketing plan," "growth plan," "GTM plan," "fCMO plan," "AARRR plan," or "90-day + 12-month marketing roadmap" +- An existing scored audit (from any prior current-state assessment) needs to be sequenced into an action plan + +**Do not use** when the user wants a tactical execution document for a single channel (use the channel-specific skill instead — `emails`, `ads`, `seo-audit`, `onboarding`, etc.), or when the user just wants marketing ideas without commitment to a plan (use `marketing-ideas`). + +## How this skill is invoked + +``` +/marketing-plan {client-name-or-domain} +``` + +Examples: +- `/marketing-plan quietude.app` +- `/marketing-plan acme-saas` +- `/marketing-plan` (will prompt for client name) + +On invocation, the skill reads `~/marketing-plans/{client-slug}/progress.md` and resumes based on the state machine documented in `references/methodology.md` Step 1.1.2 (fresh → INIT → REVIEW → FINALIZE → finalized). Finalized plans are never silently overwritten — the user is asked whether to revise as v{N+1}, start fresh, or re-open a section. + +## The three phases + +The full workflow lives in `references/methodology.md`. Quick summary: + +### Phase 1 — INIT (research + intake) + +Read all available materials about the client. Pull data from any wired tools (Ahrefs, GA4 MCP, Stripe MCP, etc.). Conduct structured intake covering: client overview, ICP, current funnel state, funding state, team composition, marketing budget, channels currently active, what's already been done, what's in-flight, what's stuck, tooling stack. Save to `research.md`. + +Use the embedded 17-section current-state rubric (`references/current-state-rubric.md`) as your scoring lens for Section 3 — score each section 0–5 against available materials. + +### Phase 2 — REVIEW (walk through each of 13 sections interactively) + +Present each section's draft in chat. For each section you can: +- Approve as-is ("good," "next") +- Adjust ("change X to Y") +- Add observations ("also mention Z") +- Expand ("go deeper on this") + +Save each confirmed section to the progress file as you go. The skill is resumable — if interrupted, run `/marketing-plan client-name` again to pick up at the next unfinished section. + +### Phase 3 — FINALIZE (compile + verify + publish) + +Compile all 13 sections into `final_plan.md`. Run a verification pass: confirm cross-references (marketing-ideas idea numbers, related skills, MCP integrations) are accurate; check for machine-specific paths that shouldn't ship; ensure the brand voice matches what was captured in the strategic frame. + +Optionally offer to publish to a shared GitHub repo (e.g., `{client-org}/{client-context}/marketing/plan.md`) if the user wants to share it with the team. + +## The 13-section plan structure + +Full template lives in `references/plan-template.md`. The structure: + +1. **Executive summary** — 3 big bets, 90-day priorities, 12-month outcome. Written so it can be lifted into an investor or board update. +2. **Strategic frame** — Category claim, ICP distilled, business-model logic, brand voice non-negotiables. +3. **Current state** — Team, budget, what's done, what's in-flight, what's stuck. Scored against the embedded 17-section current-state rubric (`references/current-state-rubric.md`). +4. **Acquisition** — How strangers become aware. Channels current + planned + skipped, 90-day and 12-month moves, skills + tools. +5. **Activation** — How a new user has an experience that converts. Onboarding, first session, App Store / signup, paywall, lifecycle setup. +6. **Retention** — How a converted user stays and deepens. Lifecycle flows, churn prevention, win-back, support-as-marketing. +7. **Referral** — How retained users bring more users. Ambassador / affiliate / Guides / WOM mechanics. +8. **Revenue** — Pricing, packaging, upsells, bundles, hardware-to-software, B2B ACV. +9. **90-day roadmap** — Weeks 1–2 (Unblock), 3–4 (Foundation), 5–8 (Velocity), 9–12 (Compound). AARRR-tagged, owner-assigned. +10. **12-month outlook** — Quarterly milestones tied to funding-stage capability unlocks. +11. **Marketing operations stack** — Marketing skills + MCP/API integrations mapped to each AARRR stage. Capability unlocks by funding stage. +12. **Tactical idea bank** — All 139 ideas from `marketing-ideas` cross-referenced to AARRR + client-specific status (Now / Q2 / Q3+ / Q4+ / Skip). +13. **Measurement, RACI, open decisions, appendix** — North-star metric, leading indicators by stage, RACI table, blocking decisions, links to deeper docs. + +## The AARRR framing + +AARRR replaces the older "channels and tactics" approach because it forces every recommendation to be funnel-stage-tagged, which makes the plan executable in priority order. + +Full primer in `references/aarrr-framework.md`. Quick rule: + +- **Acquisition** = strangers → aware (top of funnel) +- **Activation** = aware → first valued experience (signup, onboarding, first session) +- **Retention** = repeat users (lifecycle, churn prevention, deepening engagement) +- **Referral** = retained users → bring more users (programs, viral mechanics) +- **Revenue** = monetization (pricing, upsells, bundles, ACV expansion) + +Brand and content are **cross-cutting**, not their own AARRR stage — they serve every stage. + +## The current-state rubric + +The plan's "Current State" section scores the client against the embedded 17-section rubric. Full rubric in `references/current-state-rubric.md` — it's the source of truth, not a derivative of any external skill. + +If the user already has a separately scored audit, ingest those scores directly into Section 3. Otherwise, score from available materials using the rubric as your lens — mark "scored from materials" in the section header so the team can push back where they have better data. + +## Cross-references — skills this plan integrates with + +1. **`marketing-ideas`** — 139 proven marketing tactics. Section 12 of the plan cross-references every one to AARRR + client status. Detail in `references/idea-cross-reference.md`. +2. **`product-marketing`** — Sets up the foundational `.agents/product-marketing.md` context file (positioning, ICP, voice). Read this first; Section 2 (Strategic frame) builds on it. +3. **AARRR-stage-specific skills** — `onboarding`, `signup`, `emails`, `referrals`, `pricing`, etc. The "Marketing operations stack" (Section 11) maps these to AARRR stages. + +The plan is **opinionated about which skills serve which stages.** Full mapping in `references/ops-stack-mapping.md`. + +## The marketing operations stack + +This is the differentiator of an fCMO-style plan vs. a generic marketing plan. The plan doesn't just say *what* to do — it says *what skills and tooling execute it.* + +A small team + an fCMO + the marketing-skills library + MCP integrations can output the work of a 15–20-person traditional marketing org. The plan must show this stack explicitly, AARRR-stage by AARRR-stage. + +Full mapping in `references/ops-stack-mapping.md`. + +## Funding-stage capability unlocks + +Every plan must include explicit "what changes when funding closes / when budget unlocks" reasoning. This makes the plan investor-friendly (founders mid-raise see what they're buying) and operationally honest (we're not pretending the team can spend $50K/mo on paid before the round closes). + +Standard tiers in `references/funding-stage-unlocks.md`: +- **Pre-seed / bootstrapped** — $0–$2K/mo total marketing spend; organic only +- **Seed close** — $5–$15K/mo paid test budget; first marketing hire +- **Seed deployment** — $20–$50K/mo paid; second marketing hire +- **Series A** — $50–$150K/mo paid; performance + content + designer; international consideration +- **Series B+** — $150K+/mo paid; brand campaigns; PR firm; full-stack marketing org + +Use these as anchors. Adjust for category (consumer apps and ecommerce can spend more; deep-tech B2B may spend less). + +## Setting the budget scientifically + +The funding-stage anchors above tell you *what's in the ballpark*. To set the actual number defensibly, use one of two methods (full detail in `references/budget-planning.md`): + +1. **Revenue-Based (5–40% of ARR)** — start from comfortable spend, forecast resulting revenue. Best when historical CAC data exists. +2. **Goal-Based** — reverse-engineer the budget from the revenue target. Formula: `[(New ARR / (ARPC × 12)) × CAC] / annual retention rate`. Best for fundraising or when the goal is fixed. + +Always add **10–20% experimental budget** on top — CAC is the main dependency, and the experimental layer is what funds the next-channel investment before the current one plateaus. + +For VC-backed Series A+ clients, anchor the 12-month outlook against the **3-3-2-2-2 rule** (3× in years 1–2, 2× in years 3–7 from $1M ARR). + +## Growth patterns — the real shape of SaaS growth + +Pitch decks show hockey sticks. Real growth is a series of S-curves with plateaus between them. Full framework in `references/growth-patterns.md`. Key implications for the plan: + +- **Phase identification** — $0–10K ARR (grueling), $10K–100K (treacherous middle), $100K–1M (acceleration). Section 3 names the current phase; Section 10 sequences the next. +- **Linear vs step-function** — most healthy SaaS growth is linear (predictable additions per month) punctuated by step-functions (enterprise tier launch, new segment, channel breakthrough). The plan should describe both honestly — not promise exponential. +- **S-curve layering** — Channel × Product × Market. Start the next S-curve while the current one is still growing. Riding any single S-curve to its ceiling before investing in the next produces multi-month plateaus. + +## Team and agency model + +Strategy lives in-house. Execution can — and often should — be outsourced. Full framework in `references/team-and-agency-model.md`. Three implications for every plan: + +1. **First hire is a strategist, not a tactician.** Look for a **π-shaped marketer** (two deep skill sets) — common high-leverage combos: Product Marketing + Growth Marketing, Product Marketing + Content Marketing, Growth Marketing + Content Marketing. +2. **Title conservatively.** First marketing hire is almost always Manager or Lead, not VP or CMO. Inflated titles paint the org into a corner when you scale. +3. **Use contractors and small niche agencies for execution.** Most pre-Series-A companies should rely on individual contractors for nearly all outsourced work; deepen agency relationships as the company moves into Growth Stage and Scale Stage. + +## What every plan must customize + +A generic plan is a failed plan. Every plan must explicitly customize for: + +1. **Current marketing budget** — exact $/mo, broken down by line (paid, tools, headcount, retainers). Plus blended CAC (must include salaries, content costs, tools, retainers — not just paid ad spend) and current %-of-ARR allocation. +2. **Unit economics** — ARPC, annual retention rate, LTV. These feed the budget math in Section 8 and Section 10. +3. **Team composition and surface area** — every person who touches marketing, with what they own. Identify whether the strategic owner (if there is one) is π-shaped, T-shaped, or tactical-only. +4. **What the client is currently doing** — by channel, with status (working / not / TBD). +5. **What they've already done that should be acknowledged** — past launches, PR moments, content, partnerships. Don't write a plan that ignores work they're proud of. +6. **Phase of SaaS growth** — $0–10K ARR / $10K–100K / $100K–1M / $1M+. Each phase has its own binding constraint. +7. **Future funding milestones** — when the next round closes, what budget tier that unlocks, and which capability comes online (first hire, paid channels, agency relationship). +8. **The marketing skills mapped to specific moves** — every move in the AARRR sections names the skill that executes it. +9. **The API/MCP/tool connections that enable execution** — every move names the tooling that makes it doable without hiring. + +If you can't confirm any of these in INIT, list them in Section 13's "Open decisions" — never gloss over them. **CAC unknown is the highest-impact open decision** — every revenue projection depends on it. + +## Common client-type variations + +Plan structure stays consistent. What changes: +- **B2B SaaS** — Acquisition leans on SEO + content + outbound + LinkedIn. Activation = signup + product trial. Retention = product engagement + CSM motion. Referral = customer advocacy. Revenue = expansion / NRR. +- **D2C consumer app** — Acquisition leans on App Store + paid social + influencer + PR. Activation = onboarding + first session + paywall. Retention = lifecycle email + push. Referral = sharing mechanics. Revenue = subscription + upsell. +- **Hardware-led** — Acquisition leans on PR + retail + Amazon + Shopify SEO. Activation = unboxing + setup + first use. Retention = software companion + community. Referral = gifting + reviews. Revenue = blended LTV hardware + accessories + subscription. +- **Marketplace** — Activation has two sides (supply + demand). Retention is repeat transaction frequency. Revenue is take-rate × GMV. +- **Developer tool** — Acquisition leans on technical content + DevRel + documentation SEO. Activation = first build / first integration. Retention = depth of integration. Referral = team adoption. + +Detail in `references/client-types.md`. + +## Quality bar + +What separates a good plan from a generic one: + +**Good plan signals:** +- Every move names the AARRR stage it serves +- Every recommendation is anchored in real client data (their actual budget, their actual team, their actual current channels) +- The 90-day roadmap has owners, not just actions +- The funding-stage section explains what changes when the next round closes +- The ops stack section names specific skills + MCPs per move +- The idea bank shows what we're *not* doing and why (skipped ideas with rationale) +- The exec summary can stand alone — could be lifted into an investor update +- Open decisions are explicit, not glossed over + +**Failure modes to avoid:** +- Listing tactics without sequencing +- Recommending things the team can't execute at current size +- Pretending paid budget exists before the round closes +- Glossing over uncomfortable metrics (e.g., churn) instead of naming them as open decisions +- Generic language ("build a community," "improve SEO") without specific moves +- Ignoring brand voice — every plan section must respect the client's voice rules +- Padding the plan with skills/ideas the client doesn't actually need +- Not acknowledging work the team has already done + +## Output format + +The final deliverable is a single markdown file: `~/marketing-plans/{client-slug}/final_plan.md`. + +Headers (`## 1. Executive summary`, etc.) are H2 for clean Notion paste. Tables for any structured comparison (RACI, idea bank, ops stack). Status legend for the idea bank. Internal references to other sections use `§N` (e.g., "see §5 for Activation detail"). + +Length expectation: ~8,000–12,000 words for a comprehensive plan. Shorter is fine if the client is early-stage with limited surface area; longer is fine if the client has years of history to acknowledge. + +## File layout per plan + +``` +~/marketing-plans/ +└── {client-slug}/ + ├── materials/ # Client-provided files (decks, audit output, brand-voice doc, etc.) + ├── research.md # Research record written during INIT + ├── progress.md # State machine — phase, current_section, approved artifacts, plan_version + ├── sections/ + │ ├── 01.md # Each approved section saved as a canonical artifact + │ └── ... # Zero-padded so they sort in order + └── final_plan.md # Compiled deliverable (FINALIZE output) +``` + +The full schema for `progress.md` and the resumption decision tree live in `references/methodology.md` Steps 1.1.1 and 1.1.2. + +## Related skills + +- **`product-marketing`** — Run first. Captures positioning, ICP, voice in `.agents/product-marketing.md` so every section of the plan references the same foundation. +- **`marketing-ideas`** — Source of the 139 tactics in Section 12. +- **`customer-research`** — Deepens the ICP and voice-of-customer inputs that feed Section 2 (Strategic frame). +- **`onboarding`** — Deep work on Section 5 (Activation). +- **`emails`** — Deep work on Section 6 (Retention) + onboarding emails in Section 5. +- **`referrals`** — Deep work on Section 7 (Referral). +- **`pricing`** — Deep work on Section 8 (Revenue). +- **`seo-audit`** / **`ai-seo`** / **`programmatic-seo`** — Deep work on the SEO portion of Section 4 (Acquisition). +- **`ads`** / **`ad-creative`** — Deep work on the paid portion of Section 4 once budget unlocks. +- **`launch`** — Deep work on launch moments inside Section 4 / Section 9. + +## Task-specific questions (used during INIT) + +The full intake questionnaire lives in `references/methodology.md`. The most important questions: + +1. **Funding state** — What round are you in? How much raised so far? Burn? Runway? Upcoming rounds and timing? +2. **Team** — Who are all the people who touch marketing? What does each own? Where are the gaps? +3. **Budget** — What's the current monthly marketing spend, broken down by paid acquisition, tools, retainers, headcount? What budget unlocks when the next round closes? +4. **Current channels** — What's working today? What's not? What have you not tried yet? +5. **Already done** — What past campaigns / launches / content / PR moments should this plan acknowledge? +6. **In-flight** — What's drafted but not shipped? What's blocking each item? +7. **Tooling stack** — What's wired? Customer.io / Mailchimp / Resend? Shopify / Stripe / App Store Connect? GA4 / Mixpanel / Amplitude? GitHub / Notion / Figma? +8. **Beta or GA?** — If product is in beta, what's the GA timeline? Throttling? What gates exist? +9. **The most important thing to fix this quarter** — founder's read. +10. **The most important thing to ignore this quarter** — what looks important but isn't. + +## How exhaustive should the plan be? + +Default to comprehensive. Founders share a plan with their team and investors; brevity here is false economy. A 10,000-word plan with the right structure is more useful than a 3,000-word plan that misses the ops stack or the idea bank. + +That said: don't pad. Every section should be **dense, not bloated**. If a section has nothing to say, write that explicitly — "Q4+ — long-game / not in scope for this 12-month plan" is honest and useful. + +## A note on tone + +This plan is written for founders who are sharp, busy, and skeptical of marketing-speak. Write like a thoughtful colleague, not a deck-slide-writer. No jargon for jargon's sake. Direct claims, named tradeoffs, explicit assumptions. When unsure, name the open question rather than guessing. + +The exec summary should be short enough to read in 60 seconds. The rest should reward deep reading. diff --git a/.agents/skills/marketing-plan/evals/evals.json b/.agents/skills/marketing-plan/evals/evals.json new file mode 100644 index 0000000..9d56ecd --- /dev/null +++ b/.agents/skills/marketing-plan/evals/evals.json @@ -0,0 +1,96 @@ +{ + "skill_name": "marketing-plan", + "evals": [ + { + "id": 1, + "prompt": "I'm starting a fractional CMO engagement with a Series A B2B SaaS doing $2M ARR, 12-person team with 1 marketer, $20K/month marketing budget. They want a marketing plan we can share with the team and the board. Build it.", + "expected_output": "Should check for product-marketing.md first. Should ask for client name or use a slug. Should walk through three-phase workflow (INIT → REVIEW → FINALIZE), starting with intake covering funding state, team, budget, channels, what's done, in-flight, tooling stack. Should produce a 13-section AARRR-structured plan: executive summary, strategic frame, current state (scored against the embedded 17-section rubric), Acquisition, Activation, Retention, Referral, Revenue, 90-day roadmap with owner-assigned moves, 12-month outlook with funding-stage capability unlocks, marketing operations stack mapping skills + MCPs to AARRR stages, tactical idea bank cross-referencing all 139 marketing-ideas to AARRR + client-specific status, measurement framework with north-star + leading indicators + RACI + open decisions. Should be ~8–12K words, Notion-paste-ready. Should be specific to the client (their budget, team, channels), not generic.", + "assertions": [ + "Checks for product-marketing.md", + "Asks for client name or uses a slug", + "Walks through INIT phase with structured intake", + "Produces 13-section plan structured by AARRR", + "Section 3 scores against the embedded 17-section rubric", + "Section 9 (90-day roadmap) has owner-assigned moves, not just actions", + "Section 10 names funding-stage capability unlocks explicitly", + "Section 11 maps marketing skills + MCPs to each AARRR stage", + "Section 12 cross-references all 139 marketing-ideas with client-specific status", + "Output is Notion-paste-ready markdown", + "Plan is specific to the client (their budget, team, current channels), not generic" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We're pre-seed bootstrapped, $0 paid marketing budget, 4-person team building a D2C consumer app. Founder wants a 90-day plan + 12-month roadmap they can show investors during the upcoming raise. The product is in beta.", + "expected_output": "Should recognize Tier 1 funding profile (pre-seed) and skip paid acquisition recommendations until budget unlocks. Should lean Acquisition heavy on organic + lifecycle + ambassador moves. Should explicitly map what unlocks when seed closes (paid test budget $5–15K/mo, first marketing hire, etc.). Should respect that the product is in beta and account for activation/throttling gates. Should include the AARRR diagnostic — likely binding constraint at this stage is Activation (onboarding) and Referral. Plan must be investor-friendly: exec summary can be lifted into an update.", + "assertions": [ + "Recognizes pre-seed tier and uses Tier 1 budget profile", + "Skips paid acquisition recommendations until budget unlocks", + "Leans Acquisition on organic + lifecycle + ambassador", + "Names what unlocks when seed closes", + "Accounts for product being in beta", + "Identifies binding-constraint AARRR stage (likely Activation or Referral)", + "Executive summary can be lifted into an investor update", + "Plan is operationally honest — doesn't pretend paid budget exists" + ], + "files": [] + }, + { + "id": 3, + "prompt": "we have an audit already done — can you take that and turn it into a real plan", + "expected_output": "Should ask for the audit output (file path or paste). Should recognize that current-state scoring already exists and ingest it directly into Section 3 — don't re-score. Should note scoring date in case material has shifted since. Should proceed with full 13-section plan generation using audit findings to inform 90-day roadmap and AARRR sections (gaps from audit become moves in the plan).", + "assertions": [ + "Asks for the audit output", + "Ingests prior audit scoring directly into Section 3", + "Does not re-score what's already been scored", + "Notes the scoring date and flags any shifted material", + "Uses audit gaps to inform 90-day roadmap and AARRR section moves", + "Still produces a full 13-section plan, not just Section 3" + ], + "files": [] + }, + { + "id": 4, + "prompt": "/marketing-plan acme-saas — pick up where we left off", + "expected_output": "Should read ~/marketing-plans/acme-saas/progress.md to determine state machine phase. Should resume from the next unfinished section in REVIEW phase, or transition to FINALIZE if all sections approved. Should NOT silently restart from scratch. If progress.md is missing or shows 'finalized', should ask: revise as v{N+1}, start fresh, or re-open a section.", + "assertions": [ + "Reads ~/marketing-plans/acme-saas/progress.md", + "Resumes from next unfinished section based on state machine", + "Does not silently restart from scratch", + "Handles finalized state by asking user how to proceed (revise / fresh / re-open)", + "Saves each newly confirmed section to the progress file" + ], + "files": [] + }, + { + "id": 5, + "prompt": "I need a plan for a hybrid hardware+software wellness company. They sell a physical product and a subscription app. Series A, $100K/month marketing budget, 8-person team including a marketing lead.", + "expected_output": "Should recognize hybrid hardware+software archetype and consult references/client-types.md for archetype-specific emphases. Acquisition leans PR + retail + Amazon + Shopify SEO + paid. Activation = unboxing + setup + first session + paywall. Retention = lifecycle + community. Referral = gifting + reviews. Revenue = blended LTV (hardware + subscription + accessories). Should recognize Series A tier and recommend appropriate paid spend. Should include cross-cutting brand + customer-research moves. Idea bank should skip ideas that conflict with premium positioning or hardware constraints.", + "assertions": [ + "Recognizes hybrid hardware+software archetype", + "Acquisition leans on PR, retail, Amazon, Shopify SEO, paid", + "Activation covers unboxing, setup, first session, paywall", + "Retention covers lifecycle, community", + "Referral covers gifting, reviews", + "Revenue covers blended LTV with hardware + subscription + accessories", + "Recognizes Series A tier in budget recommendations", + "Idea bank skips ideas that conflict with brand fit, with explicit rationale" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Just give me a quick marketing plan. Don't make it long.", + "expected_output": "Should resist defaulting to a short plan. Should explain that a marketing-plan is the comprehensive fCMO-deliverable artifact (~10K words) and that for a single-channel quick plan, the channel-specific skill is the right tool (emails, ads, seo-audit, etc.). Should offer alternatives: (a) full marketing-plan as designed, or (b) point to a specific skill for the user's actual need. Should NOT silently produce a stripped-down 3K-word plan that misses the ops stack or the idea bank.", + "assertions": [ + "Resists short-plan request and explains why", + "Names marketing-plan as the comprehensive fCMO artifact", + "Recommends channel-specific skills for single-channel quick plans", + "Offers alternatives clearly", + "Does not silently produce a stripped-down plan" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/marketing-plan/references/aarrr-framework.md b/.agents/skills/marketing-plan/references/aarrr-framework.md new file mode 100644 index 0000000..4f9f5e9 --- /dev/null +++ b/.agents/skills/marketing-plan/references/aarrr-framework.md @@ -0,0 +1,180 @@ +# AARRR Framework — Primer for Plan Sequencing + +AARRR (Dave McClure's "pirate metrics") is the spine of every plan produced by this skill. This doc is the primer + the decision rules for when each stage gets prioritized. + +## The five stages + +| Stage | Question | Common metrics | +|---|---|---| +| **A**cquisition | How do strangers become aware of us? | Visits, MQLs, signup-page sessions, app-store visits, CAC by channel | +| **A**ctivation | Once they try us, do they have an experience that converts? | Signup completion rate, time-to-value, % completing first key action, trial → paid rate | +| **R**etention | Do they stay and deepen? | DAU/WAU/MAU, week-1/4/12 retention, churn | +| **R**eferral | Do retained users bring more users? | Viral coefficient, NPS, ambassador attribution | +| **R**evenue | What do they pay, who pays, how does it compound? | ARPU, LTV, expansion revenue, ARR / MRR | + +> **Signup boundary rule.** Signup *intent* (a stranger landing on the signup page) is Acquisition. Signup *completion* and everything after (first key action, trial-to-paid) is Activation. Apply this rule consistently across all docs and the plan template. + +## Why AARRR for plan sequencing + +Three reasons. + +**1. Funnel-stage tagging forces prioritization.** Without AARRR, marketing plans become channel-organized ("here's the SEO plan, here's the social plan, here's the paid plan"). Channels can address multiple stages; tagging by stage instead asks the more useful question: *what stage of the funnel is the binding constraint right now?* + +**2. Fix the leak before pouring water in.** The Activation/Retention question ("does the funnel convert at acceptable rates given exposure?") is usually higher leverage than the Acquisition question ("how do we get more exposure?"). AARRR sequencing surfaces this naturally. + +**3. The Revenue / Referral conversation is honest.** Most marketing plans bury monetization under "growth" and treat referral as wishful thinking. AARRR forces explicit treatment of both. + +## Brand and content — not a stage, cross-cutting + +A common mistake: making "Brand" or "Content" the sixth bucket. They're not — they serve every stage. + +- **Brand voice** governs every piece of copy across every stage +- **Content** feeds Acquisition (SEO, social), Activation (onboarding copy), Retention (email lifecycle), Referral (ambassador talking points), Revenue (pricing pages, sales material) + +In the plan, brand/content shows up as the strategic frame (Section 2) and cross-cutting in Section 11's ops stack — never as its own AARRR section. + +## Diagnosing the binding constraint — which AARRR stage is highest leverage? + +For every client, one or two AARRR stages will be the binding constraint. The plan sequences moves there first. + +**Decision rules:** + +### If you don't have any users → start with Acquisition +- Pre-launch / day-0 / waitlist stage +- No funnel data exists +- Leverage = building the first 100 users + +### If you have users but they bounce → start with Activation +- Signups happen but activation rate is low +- App Store conversion is poor +- Onboarding completion is broken +- Day 1 → paid rate is much lower than Day 30 → paid (means product converts given time but onboarding doesn't bridge to it) +- Leverage = bridging signup to first felt value + +### If activation works but users churn → start with Retention +- Month 1 retention is below category norms +- Activated users stop using within 7–14 days +- LTV is short +- Leverage = lifecycle, deepening engagement, churn prevention + +### If retention is strong but growth is slow → start with Referral / Revenue +- Retained users love the product but don't share +- Inbound referrals come in unstructured +- Pricing hasn't been pressure-tested +- ARPU is low for the value delivered +- Leverage = WOM mechanics + pricing optimization (these often cluster) + +### If everything works at small scale → start with Acquisition (scaling) +- Funnel is healthy +- Question is just "more" +- This is the "post-fit" scaling problem + +## Stage-by-stage strategic patterns + +### Acquisition + +**The diagnostic question:** Where is the gap between TAM-level awareness and current funnel volume? What channels are saturated by competitors vs. open? + +**Common Acquisition moves:** +- SEO content strategy (organic compounding) +- Founder-led channels (LinkedIn, X, Substack for B2B; Instagram/TikTok for D2C) +- Paid acquisition (when budget unlocks) +- App Store / Play Store / marketplace listing optimization +- PR and credibility-anchor amplification +- Events (live, webinar, conference speaking) +- Partnerships (newsletter swaps, integration co-marketing, reseller / agency partners) +- Hardware / commerce surface (Shopify SEO + Amazon for hybrid businesses) +- B2B sales support (case studies, partner pages, vertical content) + +**Sequencing principle:** Build the organic compound first (SEO + founder-led + content + PR amplification + ambassadors). Only layer paid on top of a working organic baseline. Premature paid amplifies what's broken. + +### Activation + +**The diagnostic question:** Where in the user's first session do they decide "this works for me" or "this doesn't"? What stops them from reaching that moment? + +**Common Activation moves:** +- Bedrock fixes (broken gates, broken signup steps, broken paywall) +- Onboarding tests / rebuild (often the most leveraged single move) +- App Store listing rewrite (the threshold to the trial) +- Lifecycle Flow ship order (when to ship onboarding emails) +- Paywall structure + trial length +- Free → paid bridge (in-app upsells, soft paywalls) + +**Sequencing principle:** Get to first felt value as fast as possible. Everything that adds friction between "user opens app" and "user has the experience that converts them" is a candidate to cut. + +### Retention + +**The diagnostic question:** Why do users churn? What would have made them stay? What's the "second moment of value" after the first one? + +**Common Retention moves:** +- Lifecycle email flows: onboarding, lapsed user re-engagement, post-purchase, win-back +- Subscription / preference centers +- Churn reconciliation (often metric definitions don't match across surfaces) +- Hardware → software activation paths (for hybrid businesses) +- Annual plan defaults / pricing structure (cross-cuts Revenue) +- Support as marketing (high-touch moments that drive stories) +- Community + practitioner networks + +**Sequencing principle:** Ship lifecycle flows in the order their content is most stable. Hardware post-purchase flows ship first (they don't reference in-app screens that might change). Onboarding emails ship last (they reference UI that might change). Win-back is a quarterly campaign, not a one-time flow. + +### Referral + +**The diagnostic question:** Is there inbound referral interest that isn't being captured? What's the share-after-value moment that's natural to the product? + +**Common Referral moves:** +- Ambassador / affiliate program (start with inbound interest, not cold recruitment) +- Share-after-value moments built into the product (reflection prompts, milestone celebrations) +- Founder amplification (founder as referrer-zero) +- Long-game expert / Guides / certified-host networks (for category-creating businesses) +- Gifting flows (consumer / hardware) +- Two-sided referrals (reward both referrer and referred) + +**Sequencing principle:** Lead with whoever is already raising their hand. If there are 5 inbound ambassadors, launch with those 5 — don't wait for a "complete program." Iterate based on what they tell you. + +### Revenue + +**The diagnostic question:** Is the company underpricing? Underpackaging? Missing an upsell? What's the "right" price discipline given LTV and brand voice? + +**Common Revenue moves:** +- Pricing audit (what's actually charged today vs. listed?) +- Annual plan defaults +- Hardware → software bundling formalization +- Storefront / commerce page optimization +- B2B case studies + sales material +- Long-term value pool flags (data, expansion, enterprise) — flagged not executed + +**Sequencing principle:** Run the pricing audit before testing changes. Surprisingly often, the "implied" pricing on the dashboard doesn't match the listed price — discounts, trials, or plan mix distorts the read. Surface the ground truth first. + +## How to assign a move to a stage + +Some moves clearly belong to one stage. Others span. The rule: + +**Assign to the stage where the move's primary measurable impact lands.** + +Examples: +- "Rewrite App Store listing in voice" — spans Acquisition (organic discovery) and Activation (threshold to trial). Primary impact = Activation (trial conversion rate). Assign to Activation, mention crossover. +- "Eye mask Shopify page rewrite" — spans Acquisition (organic search for sleep mask) and Revenue (sale conversion). Primary impact = Revenue (transaction). Assign to Revenue, mention crossover. +- "Alex's LinkedIn cadence" — Acquisition (top of funnel for D2C subscribers). +- "Customer.io Flow 6 (eye mask post-purchase)" — Retention (deepens hardware buyer engagement) with crossover to Activation (hardware → app premium activation path). + +When in doubt: where would removing this move hurt the most? Assign there. + +## When the AARRR breakdown isn't equal + +For most clients, the plan won't have equal volume across stages. That's fine — and worth surfacing as a diagnostic. + +- **Heavy Acquisition section** = client has product-market fit but top-of-funnel is the bottleneck. Common for early-stage with strong retention metrics. +- **Heavy Activation section** = client has traffic but conversion is broken. Often beta-stage products. +- **Heavy Retention section** = client has churn problem. Often mid-stage products that scaled past PMF without lifecycle infrastructure. +- **Heavy Referral section** = client has loyalty but no WOM mechanics. Often consumer products with passionate users. +- **Heavy Revenue section** = client is underpricing or missing monetization layers. Common for tools transitioning from free to paid. + +If a plan ends up evenly distributed across all five stages, the diagnostic was probably weak — re-examine the funnel state intake to find where the binding constraint is. + +## A note on the order of presentation + +Always present AARRR in order (Acquisition → Activation → Retention → Referral → Revenue) regardless of priority order. + +This is for the reader's mental model. Founders expect the funnel to flow top-to-bottom. If Retention is the most-leveraged stage but you lead with Retention, the reader has to context-switch. + +To signal priority, use the executive summary (Section 1) — name the biggest bets there. The AARRR breakdown then walks the funnel in order, with the most leverage-positive section being the longest and most-detailed. diff --git a/.agents/skills/marketing-plan/references/budget-planning.md b/.agents/skills/marketing-plan/references/budget-planning.md new file mode 100644 index 0000000..7d5393d --- /dev/null +++ b/.agents/skills/marketing-plan/references/budget-planning.md @@ -0,0 +1,168 @@ +# Budget Planning — Scientific Methods for Setting the Marketing Budget + +The problem with most SaaS marketing budgets is that they're pulled out of thin air — a number that hopefully doesn't constrain growth too much, but doesn't anchor in customer-acquisition economics either. The result: when someone asks "why this number?" there's no answer. + +Two scientific methods solve this. Use one (not both) in Section 8 (Revenue) and Section 10 (12-month outlook) of every plan. + +Excerpted and adapted from *Founding Marketing* by Corey Haines. + +## Method 1 — Revenue-Based (5–40% of annual revenue) + +**Direction:** budget → revenue goal. + +You start with what the company can comfortably spend on marketing, then forecast what revenue that spend can plausibly generate. + +### The ranges + +| Posture | % of ARR | When to use | +|---|---|---| +| **Conservative (profit-preserving)** | 5% | Established business focused on profit distribution; bootstrapped; founder-paid customer base | +| **Standard growth** | 15–25% | Most healthy SaaS in the seed-to-Series-A range | +| **Aggressive growth (deploying raised capital)** | up to 40% | Recently funded round, mandate to deploy fast, board accepts burn | + +For reference: public SaaS companies routinely report sales-and-marketing spend between 20% and 55% of revenue (Zoom historically ran between 20% and 55% across years). + +### The math (Conservative example) + +Business at $1M ARR, 5% allocation: + +- Annual marketing budget: **$50,000** +- Blended CAC: $100 → can acquire **500 new customers** +- ARPC: $50/mo → adds **$300K** to ARR +- Account for 15% annual churn → 85% × $300K = **+$255K net new ARR** +- End-of-year goal: **$1.255M ARR** + +### The math (Aggressive example) + +Business at $1M ARR, 40% allocation: + +- Annual marketing budget: **$400,000** +- Blended CAC: $100 → can acquire **4,000 new customers** +- ARPC: $50/mo → adds **$2.4M** to ARR +- End-of-year goal: **$3.4M ARR** + +### Two keys to making this method work + +1. **Know your blended CAC** (see "Calculating CAC" below) +2. **Match the allocation percentage to your actual ambition.** A founder running 5% allocation while telling the board they expect to triple revenue is showing two incompatible signals. + +## Method 2 — Goal-Based (reverse-engineered from the revenue target) + +**Direction:** revenue goal → budget. + +You start with the revenue goal and work backward through the unit economics to derive the budget required to hit it. Best for: + +- Companies just starting up (no historical CAC baseline yet, working from first principles) +- Companies anticipating outside capital (need to defend the ask) +- Companies using revenue-based financing (Pipe, Capchase, Founderpath) + +### The formula + +``` +Marketing budget = [(New ARR / (ARPC × 12)) × CAC] / annual retention rate +``` + +### Worked example: $1M ARR → $2M ARR + +Step 1 — How much new ARR per customer? +ARPC × 12 = $50 × 12 = **$600 ARR per new customer** + +Step 2 — How many new customers do we need? +$1,000,000 / $600 = **1,667 new customers** + +Step 3 — What's the raw acquisition cost? +1,667 × $100 CAC = **$166,700** + +Step 4 — Account for churn (15% annual = 85% retention) +$166,700 / 0.85 = **$196,118** (round to **$200K**) + +When someone asks how you got to the budget, walk them through the four steps. It's defensible. + +### Why this formula and not something simpler + +The four steps each correspond to a real economic reality: +- Step 1 converts MRR-language into the ARR-language a board talks in +- Step 2 names the customer count, which is what the funnel actually has to deliver +- Step 3 anchors the budget in the cost of acquisition +- Step 4 acknowledges that churned customers don't count toward net new ARR, so the budget needs to cover the gap + +### Required buffer + +**Always add 10–20% as "experimental budget"** on top of the formula output. CAC is the main dependency; if CAC comes in 50% higher than estimated, the cascading effect is missing the revenue goal. It is much cheaper to overestimate CAC than to underestimate it. + +The experimental budget also funds the experiments that find your next channel before your current one plateaus (see `growth-patterns.md` — channel S-curves). + +## The VC growth path (3-3-2-2-2 rule) + +Once a company has crossed $1M ARR and taken a Series A, the implicit benchmark VCs expect is: + +| Year | ARR multiple | Cumulative ARR (from $1M start) | +|---|---|---| +| Year 0 | — | $1M | +| Year +1 | 3× | $3M | +| Year +2 | 3× | $9M | +| Year +3 | 2× | $18M | +| Year +4 | 2× | $36M | +| Year +5 | 2× | $72M | +| Year +6 | 2× | $144M | +| Year +7 | 2× | $288M | + +That's the 3-3-2-2-2 rule. Useful when: + +- The plan needs to map 12-month and 36-month milestones to VC expectations +- The founder is mid-raise and the board needs to see a plausible path to the next round +- Section 10 (12-month outlook) needs anchoring against an industry benchmark, not just internal ambition + +Most companies miss it. That's fine. Knowing the benchmark gives the team a defensible reason to either match it or explicitly choose not to. + +## Calculating CAC (blended, not paid-only) + +If there's no historical CAC, use a baseline: **one year of revenue from the smallest paid plan.** Deploy the budget, capture actual CAC data, replace the baseline with the measured number for the next planning cycle. + +For an established CAC calculation, **CAC must be blended.** Include: + +- Marketing salaries (full loaded cost, not just base) +- Advertising spend +- Marketing tech stack costs +- Content production costs (writers, designers, video editors) +- Agency / contractor retainers +- SDR / BDR salaries if doing outbound +- Tools (CRM, marketing automation, analytics) + +Then divide by the number of new customers acquired in the period. That blended number is the one to use in either budgeting method. + +The mistake to avoid: calculating CAC from paid ad spend alone. A company that "doesn't run ads" still has a CAC — it's just hidden in the content team, the founder's time, the SEO contractor, the conference booth. + +## The reality check on forecasting + +This whole framework derives a budget and a revenue goal — not a 12-month month-by-month forecast accurate to the dollar. + +**Unless the company is publicly traded, all forecasts are educated guesses.** No startup under $100M ARR reliably hits forecasts to the month. The honest framing for the plan: + +- The annual goal is a defensible direction-of-travel +- The budget is the resource commitment that makes the goal plausible +- The 90-day roadmap (Section 9) is what's actionable now +- Month-to-month variance is expected; quarterly review is when the plan adjusts + +What's actionable: how to deploy the budget, what concrete moves to execute, what to adjust when real data comes in. + +What's not actionable: trying to forecast traffic, pipeline, retention curves, conversion rates, and channel mix all down to the decimal point and expecting that forecast to hold. Founders who over-engineer the forecast tend to spend the plan period explaining variance instead of executing. + +**Rule for the plan:** the budget number is honest. The annual goal is honest. The month-by-month projection is illustrative. + +## How this flows into the plan + +| Section | What to include | +|---|---| +| **3 (Current state)** | Current monthly marketing spend broken down by line (paid, tools, content, headcount, retainers). Compute current %-of-ARR allocation. | +| **8 (Revenue)** | The unit-economics table (CAC, ARPC, churn) that feeds whichever budget method you're using. | +| **10 (12-month outlook)** | Apply Method 1 or Method 2 to derive the 12-month budget and the resulting revenue goal. Anchor against the 3-3-2-2-2 rule if Series A+ and VC-backed. | +| **11 (Ops stack)** | Show the budget allocation across the AARRR stages — what % to Acquisition, Activation, etc. The ops-stack mapping informs which line items grow when the next funding tier unlocks. | +| **13 (Open decisions)** | If CAC is unknown or contested, flag it as the highest-impact open decision — every other number depends on it. | + +## When to choose which method + +- **Method 1 (Revenue-Based)** when the company has historical CAC data, a profit/burn posture, and the question is "given our posture, what's a plausible goal." +- **Method 2 (Goal-Based)** when the company has a specific goal (board mandate, VC milestone, fundraise target) and the question is "what budget do we need to hit it." + +For most plans in the seed-to-Series-A range, Method 2 is more useful — it forces the conversation about whether the goal is funded. diff --git a/.agents/skills/marketing-plan/references/client-types.md b/.agents/skills/marketing-plan/references/client-types.md new file mode 100644 index 0000000..e00d631 --- /dev/null +++ b/.agents/skills/marketing-plan/references/client-types.md @@ -0,0 +1,373 @@ +# Client Types — Variations by Business Model + +The 13-section plan structure stays consistent across client types. What changes is the **content emphasis** within each section. This doc names the dominant patterns by client archetype. + +## Archetype 1 — B2B SaaS + +### Core characteristics +- Subscription revenue +- Often higher ACV ($1K–$100K+ per year) +- Sales-assisted or self-serve depending on tier +- Buyer often different from user (champion vs. end-user) + +### AARRR emphasis + +**Acquisition heavy:** +- SEO is the dominant top-of-funnel motion (people search for solutions) +- Content marketing (blog, knowledge base, comparison pages) drives MQLs +- LinkedIn for both organic founder presence and paid +- Outbound (cold email + LinkedIn) often complements inbound +- Events (conferences, webinars) for high-ACV products + +**Activation:** +- Signup → trial → first key action (PLG products) +- Trial → demo → POC (sales-led products) +- Empty states matter — guide users to first value action + +**Retention:** +- Product engagement metrics (DAU, feature adoption) +- Customer success motion (CSM team for higher ACV) +- Lifecycle emails focused on feature discovery, value moments + +**Referral:** +- Customer advocacy programs +- Partner / integration co-marketing +- G2 / Capterra reviews +- Champion-to-buyer expansion + +**Revenue:** +- Expansion / NRR is often the biggest growth lever +- Tier upgrades, seat expansion, usage-based add-ons + +### Skills emphasis +- `cold-email`, `programmatic-seo`, `competitors`, `seo-audit`, `ai-seo` +- `ads` weighted toward LinkedIn + Google +- `emails` for trial nurture + lifecycle +- `pricing` for tier optimization + +### Tier-1 budget priority +- SEO + content > everything else +- Founder-led LinkedIn channel +- Customer.io / Mailchimp for nurture +- HARO + investor backchannel for PR + +--- + +## Archetype 2 — D2C Consumer App (Subscription) + +### Core characteristics +- Lower ACV ($5–$30/mo typically) +- High volume, lower margin per user +- App Store / Play Store as the primary acquisition surface +- Lifecycle email + push for retention +- Often paid-acquisition-driven once budget unlocks + +### AARRR emphasis + +**Acquisition:** +- App Store Optimization (ASO) is the highest-leverage non-site asset +- Paid social (Meta, TikTok) often dominant once budget exists +- Apple Search Ads for high-intent App Store traffic +- Influencer + content creators +- PR + endorsements + +**Activation:** +- Onboarding is the dominant activation surface +- Time-to-value must be minutes, not hours +- Paywall structure + trial length critical + +**Retention:** +- Lifecycle email + push +- In-app reminders (carefully — overuse = churn) +- Subscription preference center +- Win-back campaigns + +**Referral:** +- Built-in sharing (share-a-month flow) +- Two-sided referrals +- Influencer / creator ambassadors + +**Revenue:** +- Annual plan default is the biggest single move (compresses MRR but improves LTV) +- Tier optimization (Free → Premium → Premium+) +- In-app upsells + +### Skills emphasis +- `onboarding`, `paywalls`, `emails` +- `ads`, `ad-creative` (heavy creative iteration) +- `referrals` +- `pricing` for annual default + tier consolidation + +### Tier-1 budget priority +- ASO first (highest organic leverage) +- Onboarding rebuild +- Lifecycle email shipping +- Founder-led social if founder is on-camera + +--- + +## Archetype 3 — Hybrid Hardware + Software + +### Core characteristics +- Physical product + software companion (e.g., Quietude's eye mask + app) +- Hardware as a distribution wedge (lower price, easier first purchase) +- Software as the LTV (recurring revenue) +- Blended CAC across both surfaces + +### AARRR emphasis + +**Acquisition:** +- Shopify storefront SEO (hardware product pages target consumer search) +- Amazon listing (high-discovery, takes margin) +- PR amplification (hardware is photogenic — high-profile influencer endorsements move volume) +- Paid social for hardware (Meta + Instagram, eye-catching creative) + +**Activation:** +- Two activations to track: hardware unboxing experience + software signup +- Hardware → software activation flow is the bridge +- Concierge setup for high-value hardware buyers + +**Retention:** +- Hardware post-purchase lifecycle (different from app onboarding) +- Software companion drives stickiness +- Community / practitioner network around hardware + +**Referral:** +- Hardware gifting flows (high WOM for physical products) +- Eye-catching hardware drives organic social sharing +- Reviews on Shopify + Amazon + +**Revenue:** +- Blended LTV math is critical (hardware margin + software recurring) +- Bundle strategy (hardware buy → free Premium for X months) +- Annual plan default for software + +### Skills emphasis +- `seo-audit` for Shopify product pages +- `emails` for both hardware post-purchase and software lifecycle +- `referrals` with gifting layer +- `pricing` for blended-bundle math +- `ads` with creative-heavy Meta presence + +### Tier-1 budget priority +- Shopify product page optimization +- Hardware post-purchase lifecycle ship +- Bundle strategy formalization +- Hardware → app activation audit + +--- + +## Archetype 4 — Marketplace + +### Core characteristics +- Two-sided product (supply + demand) +- Network effects matter +- Liquidity is the critical early metric +- Take-rate × GMV is the revenue model + +### AARRR emphasis + +**Acquisition:** +- Two funnels — supply and demand +- Supply often acquired through outbound / partnership / cold email +- Demand often acquired through SEO / paid / content +- City-by-city programmatic SEO common + +**Activation:** +- Supply activation: first listing posted, first response sent +- Demand activation: first purchase / first match / first transaction +- Both sides need their own onboarding + +**Retention:** +- Repeat transaction frequency +- Supply utilization (% of listings active) +- Demand habit (DAU / MAU) + +**Referral:** +- Supply → supply (refer other providers) +- Demand → demand (refer other buyers) +- Cross-side referrals are weaker + +**Revenue:** +- Take-rate optimization +- Premium tier (better matching, lower fees) +- Lead-gen vs. transaction-fee monetization + +### Skills emphasis +- `programmatic-seo` for city pages, vertical pages +- `cold-email` for supply-side recruitment +- `referrals` for both sides +- `pricing` for take-rate decisions + +### Tier-1 budget priority +- Programmatic SEO build for one side +- Cold outbound to seed supply (or demand, whichever is bottleneck) +- Lifecycle email for both sides + +--- + +## Archetype 5 — Developer Tool / Open Source + +### Core characteristics +- Technical buyer (developer or eng leader) +- High bar for content quality (developers are skeptical) +- DevRel matters more than traditional marketing +- Open source layer often funnel into commercial product + +### AARRR emphasis + +**Acquisition:** +- Technical content + docs SEO +- DevRel (conferences, talks, community) +- GitHub presence + npm/pip/etc. discovery +- Hacker News + Reddit + dev Twitter + +**Activation:** +- First build / first integration is the activation event +- Time-to-Hello-World matters +- Documentation = onboarding for dev tools + +**Retention:** +- Depth of integration (using more of the product) +- Team adoption (one user → entire org) +- Active project count + +**Referral:** +- Star count on GitHub (semi-organic) +- Recommendation in technical forums +- Conference talks mentioning the tool + +**Revenue:** +- Free → paid conversion when usage exceeds limits +- Team plans, enterprise tiers +- Support / SLA upsells + +### Skills emphasis +- `programmatic-seo` for docs +- Less emphasis on traditional `ads` +- Heavy `content-strategy` + technical content +- `cold-email` to engineering leads at target companies + +### Tier-1 budget priority +- Docs + technical content production +- DevRel (founder doing talks) +- GitHub presence +- HN / Reddit / dev community + +--- + +## Archetype 6 — Deep-Tech / Scientific / Clinical + +### Core characteristics +- Long sales cycles +- Heavy credibility burden (must prove the science) +- Highly informed buyers (academics, clinicians, researchers) +- Often regulatory considerations + +### AARRR emphasis + +**Acquisition:** +- Academic publishing + peer-reviewed studies +- Conference speaking (academic + industry) +- Investor / advisor introductions +- PR via credibility hooks + +**Activation:** +- Pilot programs / proof-of-concepts +- Concierge setup with high-touch onboarding +- Educational webinars / training + +**Retention:** +- Customer success heavily +- Co-publication with customers +- Community of practice + +**Referral:** +- Academic / clinical references +- Conference panel features +- Case studies with named institutions + +**Revenue:** +- Pilot → paid expansion +- Institutional contracts (multi-seat / multi-year) +- Compliance / certification upsells + +### Skills emphasis +- Light traditional marketing +- Heavy `product-marketing`, `sales-enablement`, `pricing` +- `cold-email` to specific researchers / practitioners +- PR + investor marketing + +### Tier-1 budget priority +- Academic outreach + conference speaking +- Investor backchannel for institutional warm intros +- Pilot deployment with key customers +- Case study + scientific publication + +--- + +## Archetype 7 — Commerce / DTC (non-subscription) + +### Core characteristics +- Physical or digital products sold transactionally +- Average Order Value matters +- Repeat purchase rate is the key retention metric + +### AARRR emphasis + +**Acquisition:** +- Paid social (Meta, TikTok) often dominant +- Shopify SEO for product pages +- Amazon listings +- Influencer + creator partnerships + +**Activation:** +- First purchase is the activation event +- Cart abandonment recovery +- Trust signals on checkout (reviews, returns, shipping) + +**Retention:** +- Post-purchase lifecycle +- Loyalty programs +- Email + SMS for repeat purchase + +**Referral:** +- Gifting flows +- Refer-a-friend programs +- Reviews + UGC + +**Revenue:** +- AOV optimization (bundles, upsells) +- Customer LTV optimization (repeat purchase frequency) +- Subscription option for repeat purchases + +### Skills emphasis +- `ads` + `ad-creative` (heavy weight) +- `emails` for post-purchase + abandoned cart +- `referrals` with gifting +- `pricing` for bundles + subscription option + +### Tier-1 budget priority +- Shopify storefront optimization +- Email lifecycle ship +- Influencer / UGC seeding +- Paid social testing (if minimal budget exists) + +--- + +## How to use this doc when drafting a plan + +When you start drafting Sections 4–8 (AARRR), identify the client's archetype (or hybrid if applicable) and lean into the patterns above. + +**Hybrid cases are common.** Quietude is "Hybrid hardware + software" with significant overlap to "Deep-tech / scientific / clinical" (because of the peer-reviewed study + clinical positioning). The plan blends emphases from both archetypes. + +When in doubt, lead with the archetype that best fits the *primary monetization model*. Quietude's primary monetization is software subscription (with hardware as the wedge), so the D2C consumer app + hardware-hybrid patterns dominate, with deep-tech credibility moves layered in. + +## When the client doesn't fit cleanly + +Some clients defy archetype: +- **Content / media businesses** — neither SaaS nor commerce; ad revenue or subscription model +- **Social networks** — own category, network effects dominate +- **Real estate / events** — physical + service model + +For these, identify the closest archetype and adjust. Don't force-fit — name the deviation in the plan's Strategic Frame. diff --git a/.agents/skills/marketing-plan/references/current-state-rubric.md b/.agents/skills/marketing-plan/references/current-state-rubric.md new file mode 100644 index 0000000..a8dc4aa --- /dev/null +++ b/.agents/skills/marketing-plan/references/current-state-rubric.md @@ -0,0 +1,255 @@ +# Current State Rubric — 17-Section Scoring Lens + +This 17-section rubric is the source of truth for Section 3 ("Current State") of every marketing plan. Score each section 0–5 from available materials, then write a 2–4 sentence "shape interpretation" that names where strengths and gaps cluster. + +## How to score + +**From rich materials.** When the team has shared decks, prior content audits, a brand voice doc, kickoff transcript, app store and analytics snapshots — score each section from those artifacts. Mark "scored from materials" in the section heading so the team can push back where they have better data. + +**From a separately scored audit.** If the team has already run a scored current-state assessment (in any format), ingest those scores directly. Don't redo the work — note the date the rubric was scored and flag any sections where material has shifted since. + +Either way, the output is the same: a 17-row scored table, a total out of 85, and a shape paragraph. + +## The 17 sections (scored 0–5 each) + +### 1. Positioning +**What's scored:** Clarity of category claim, differentiation, alignment across surfaces (homepage, app store, pitch deck, founder messaging). + +**Score guide:** +- 0 = No positioning anywhere +- 2 = Inconsistent across surfaces; team can't articulate it on demand +- 4 = Clear, original, mostly consistent; minor surface gaps +- 5 = Distinctive, category-defining, every surface aligned + +**Maps to AARRR:** Cross-cutting — feeds every stage. + +### 2. Customer research +**What's scored:** Depth and recency of customer research, ICP clarity, voice-of-customer capture. + +**Score guide:** +- 0 = No formal research, only founder intuition +- 2 = Some research but stale or one-off +- 4 = Active research practice, customer language captured +- 5 = Continuous research, customer language flows into copy / product / messaging + +**Maps to AARRR:** Cross-cutting — feeds especially Acquisition (channel choice) and Activation (onboarding voice). + +### 3. Homepage +**What's scored:** Headline clarity, voice alignment, conversion architecture, mobile experience. + +**Score guide:** +- 0 = Generic / broken / off-brand +- 2 = Functional but underperforming; voice mostly absent +- 4 = Clear, voice-aligned, converting; minor optimization opportunities +- 5 = Distinctive, converts strongly, fully voice-aligned + +**Maps to AARRR:** Acquisition + Activation. + +### 4. Sales / product pages +**What's scored:** Existence and quality of dedicated product / pricing / feature pages. Are SKUs documented? Is pricing scannable? Are upsells visible? + +**Score guide:** +- 0 = No dedicated pages +- 2 = Pages exist but are stale or off-voice +- 4 = Quality pages for primary products; gaps on secondary +- 5 = Every product, tier, and upsell has a high-converting page + +**Maps to AARRR:** Acquisition + Revenue. + +### 5. Conversion pages +**What's scored:** Landing pages for specific campaigns, channels, or use cases. `/partner`, `/science`, `/ambassadors`, `/eye-mask` types of pages. + +**Score guide:** +- 0 = No conversion pages +- 2 = One or two exist; rest of needed pages missing +- 4 = Most needed conversion pages exist; quality is good +- 5 = Full conversion page library, each high-converting + +**Maps to AARRR:** Acquisition + Activation. + +### 6. Competitor comparison +**What's scored:** Existence of "vs. {competitor}" pages, comparison content. Does the brand acknowledge alternatives, or pretend they don't exist? + +**Score guide:** +- 0 = Nothing — actively avoiding competitor mentions +- 2 = Some content exists but is weak or hidden +- 4 = Solid comparison pages for top 2–3 competitors +- 5 = Comprehensive comparison library; SEO-targeted; high-converting + +**Maps to AARRR:** Acquisition (consideration-stage SEO + sales enablement). + +### 7. Resources / content +**What's scored:** Blog, knowledge base, science page, whitepapers, research, founder essays, podcast. + +**Score guide:** +- 0 = No content surface +- 2 = Blog exists but is stale or thin +- 4 = Active content production; multiple formats +- 5 = Content is a moat — proprietary research, named pillars, daily volume + +**Maps to AARRR:** Acquisition. + +### 8. Onboarding +**What's scored:** New user onboarding (in-app + email). Time-to-value, completion rate, brand-voice alignment. + +**Score guide:** +- 0 = No onboarding flow +- 2 = Onboarding exists but is broken, off-voice, or underperforming +- 4 = Solid onboarding; clear bottlenecks identified +- 5 = Tested, optimized, on-brand; activation rate at category top quartile + +**Maps to AARRR:** Activation. + +### 9. Email lifecycle +**What's scored:** Existence and quality of lifecycle email programs. Welcome / onboarding / post-purchase / lapsed / win-back. + +**Score guide:** +- 0 = No lifecycle email +- 2 = Some flows exist but drafted not live, or live but stale +- 4 = Core flows live and performing; gaps on secondary flows +- 5 = Full lifecycle live, segmented, performing above category benchmarks + +**Maps to AARRR:** Retention (+ Activation for onboarding emails). + +### 10. Sales material +**What's scored:** Sales decks, one-pagers, demos, case studies, pricing sheets. (For B2B / hybrid companies — for pure D2C, this can be marked N/A or scored low without implication.) + +**Score guide:** +- 0 = No sales material +- 2 = Founder uses a deck but other material is thin +- 4 = Solid sales kit; reps can self-serve content +- 5 = Comprehensive material; updated quarterly; objection-handling library exists + +**Maps to AARRR:** Acquisition + Revenue (B2B). + +### 11. Messaging +**What's scored:** Voice, tone, vocabulary, message hierarchy across surfaces. Is the brand voice documented, consistent, distinctive? + +**Score guide:** +- 0 = No voice documented; surfaces inconsistent +- 2 = Voice exists in founder's head but isn't operationalized +- 4 = Documented voice; mostly consistent across surfaces +- 5 = Distinctive voice; documented; every surface respects it; voice is a moat + +**Maps to AARRR:** Cross-cutting. + +### 12. Pricing +**What's scored:** Pricing structure clarity, packaging logic, recent pressure-testing, listed vs. effective price reconciliation. + +**Score guide:** +- 0 = Pricing not pressure-tested in over a year; unclear structure +- 2 = Listed pricing exists but plan mix / discounting muddles the read +- 4 = Clear pricing; recent tests; LTV math known +- 5 = Pricing tested quarterly; packaging optimized; expansion levers known + +**Maps to AARRR:** Revenue. + +### 13. CRO (conversion rate optimization) +**What's scored:** Test cadence, instrumentation, A/B history, statistical rigor. + +**Score guide:** +- 0 = No tests run; no instrumentation +- 2 = Some ad-hoc tests; no statistical rigor +- 4 = Regular test cadence; some wins +- 5 = Continuous testing program; experimentation culture; documented wins + +**Maps to AARRR:** Cross-cutting (most impactful at Activation + Revenue). + +### 14. GTM launches +**What's scored:** Quality of past launch executions. Product launches, feature launches, campaign launches. + +**Score guide:** +- 0 = No structured launches; "soft launches" only +- 2 = Some launches but uneven execution +- 4 = Solid recent launches; playbook exists +- 5 = Repeatable launch motion; Product Hunt #1s; press coverage on demand + +**Maps to AARRR:** Acquisition + Activation. + +### 15. Ads (paid) +**What's scored:** Paid acquisition state. Active campaigns, channels, CAC tracking, creative quality. + +**Score guide:** +- 0 = No paid acquisition +- 2 = Some paid but unstructured / wasteful +- 4 = Paid is firing across 2–3 channels with positive unit economics +- 5 = Sophisticated paid stack; CAC/LTV understood; creative iterated weekly + +**Maps to AARRR:** Acquisition. + +**Note:** For pre-seed clients with no paid budget, score this 0 *without* treating it as a weakness — it reflects the funding stage, not a marketing failure. + +### 16. SEO +**What's scored:** Organic search performance. Domain rating, ranking keywords, organic traffic, content cluster strategy. + +**Score guide:** +- 0 = No SEO; new domain or zero-authority +- 2 = Some content but no strategy; ranks for brand only +- 4 = Established content clusters; growing organic traffic; DR 25+ +- 5 = SEO is a moat; DR 40+; thousand+ ranking keywords; consistent content production + +**Maps to AARRR:** Acquisition. + +### 17. Internationalization +**What's scored:** Geographic expansion, language localization, region-specific pricing. + +**Score guide:** +- 0 = US/EN only; no international consideration +- 2 = International users exist but aren't served (one language, one currency) +- 4 = Multi-language, region-specific pricing, GTM playbook for new markets +- 5 = International is a strength; multi-region revenue; localized GTM + +**Maps to AARRR:** Acquisition. + +**Note:** For most early-stage companies, internationalization scores 0–1 and that's appropriate. Don't penalize early-stage companies for not having international playbooks yet. + +## How to compute the total + read the shape + +**Total = sum of all 17 scores. Out of 85.** + +The total matters less than the *shape*. After the scoring table, write a 2–4 sentence "shape interpretation": + +> *"High in {strong sections}, low in {weak sections}. That shape is the gap the rest of the plan closes — Sections X (AARRR stage) is the longest because that's where the gap is widest."* + +## Common shapes + +### "Strong voice / messaging, weak distribution" +- High: Positioning (#1), Customer research (#2), Messaging (#11) +- Low: SEO (#16), Ads (#15), GTM launches (#14) +- Translation: The founder is a strong storyteller but distribution hasn't caught up. Plan emphasizes Acquisition + paid layer prep. + +### "Strong acquisition, weak conversion" +- High: SEO (#16), Resources (#7), Ads (#15) +- Low: Homepage (#3), Onboarding (#8), Conversion pages (#5), Pricing (#12) +- Translation: Traffic comes in but doesn't convert. Plan emphasizes Activation + Revenue. + +### "Strong conversion, weak retention" +- High: Onboarding (#8), Homepage (#3), Pricing (#12) +- Low: Email lifecycle (#9), CRO (#13) +- Translation: Users sign up and pay but churn. Plan emphasizes Retention. + +### "Strong product, weak everything-else" +- High: only Positioning (#1) and Customer research (#2) — the founder knows the customer +- Low: everything operational +- Translation: Pre-marketing stage. Plan is foundation-heavy. First quarter is bedrock fixes. + +### "Strong recent revenue, weak compounding" +- High: Ads (#15), Sales material (#10), Pricing (#12) +- Low: SEO (#16), Resources (#7), Referral mechanics +- Translation: Performance marketing carries the business. Plan emphasizes building compounding channels before paid scales further. + +## When scores are subjective + +Some sections are easier to score from outside than others. Subjectivity tier: + +- **Objective (data-driven):** SEO (#16), Ads (#15), Email lifecycle (#9), Onboarding (#8) — backed by analytics +- **Semi-objective:** Pricing (#12), CRO (#13), Conversion pages (#5), Sales material (#10) — visible artifacts to evaluate +- **Subjective (judgment call):** Positioning (#1), Messaging (#11), Customer research (#2), Resources (#7) — interpretive + +For subjective sections, write the rationale into the "Note" column so the team can push back if they disagree. + +## When a prior scored audit exists + +If the team already has scored output from any current-state assessment, ingest those scores directly — don't redo the work. Treat that prior scoring as the ground truth for sections it covers. + +If the prior scoring was done weeks ago and material has shifted since (new shipped flows, new content live, repositioning, etc.), note "scored on YYYY-MM-DD; material has shifted since" and update any specific scores you have current evidence for. diff --git a/.agents/skills/marketing-plan/references/example-quietude.md b/.agents/skills/marketing-plan/references/example-quietude.md new file mode 100644 index 0000000..b42b09b --- /dev/null +++ b/.agents/skills/marketing-plan/references/example-quietude.md @@ -0,0 +1,972 @@ +# Example — Quietude Marketing Plan v1 + +**This is the canonical reference example for the `/marketing-plan` skill.** It's based on a real fCMO engagement for a hybrid hardware-and-software wellness platform. **Names, domains, and identifying details have been changed** — the client is called "Quietude" here, and the team members have been renamed (Alex / Sam / Casey / Devon). The funnel numbers, budget, and structural lessons preserve the shape of the original engagement so the example retains its teaching value. + +Use this as the "what good looks like" reference when drafting a new plan. The structure, tone, depth, and operational specificity are the bar to clear. + +**Quietude's archetype:** Hybrid hardware + software with deep-tech / clinical credibility layer. See `references/client-types.md` for archetype patterns. + +**Funding-stage context:** Pre-seed-close (mid-raise on $3M seed). Tier 1 per `references/funding-stage-unlocks.md`. $0 paid budget; organic + lifecycle + ambassador only. + +**What was strong about this plan:** +- Strategic frame (Section 2) leaned on the founder's own meditation-vs-regulation framing as the content pillar +- Current state (Section 3) included the 17-section audit rubric scored against existing materials (no formal audit run) +- 90-day roadmap (Section 9) had owner-assigned moves, not just actions +- Ops stack (Section 11) included a concrete operational proof-point (Customer.io MCP used live by non-technical founder on the kickoff call) +- Tactical idea bank (Section 12) cross-referenced all 139 marketing-ideas to AARRR + Quietude-specific status, including 23 explicit skips with rationale + +--- + +# Quietude — Marketing Plan v1 + +**Prepared by:** Casey Reed (fCMO) +**For:** Alex, Sam, and the Quietude team +**Date:** 2026-05-27 +**Status:** Draft v1 — for team review + +## 1. Executive summary + +Quietude has built something rare: a clinically validated, brand-coherent, founder-led product in a category that doesn't yet have a name. The opportunity in the next twelve months is not to invent a marketing engine from scratch — it's to **convert the existing organic gravity into a measurable, repeatable funnel**, then layer paid acquisition on top of that funnel once the seed round closes. + +**Three big bets, ranked by leverage:** + +1. **Fix the leak before pouring water in.** The Day 1 → Day 35 funnel shape (1.34% → 5.46%) tells us the product converts given time and contact. What it's missing is a working first-session moment (the headphone gate is killing conversion) and a lifecycle layer to deliver the contact. These two pieces — onboarding rebuild and Customer.io flows shipped — are the unlock for everything else. +2. **Compound the moats Quietude already has.** Peer-reviewed clinical study, longevity-influencer PR, 15K live event participants, Alex's founder voice — these are link generators, content pillars, and credibility anchors that most wellness brands would kill for. They're under-leveraged. SEO, content, and App Store optimization translate them into search and discovery surface area. +3. **Build the founder-and-fCMO operating system that lets a 4-person team market like a 20-person one.** This is what makes the plan actually executable at Quietude's team size and burn rate — agentic tooling on top of Customer.io, Shopify, App Store, Stripe, GitHub, and the marketing skill library means we ship without hiring. + +**What twelve months looks like, plausibly:** + +- App goes from beta to GA. Onboarding converts at meaningful lift over today's baseline. +- 4 SEO content pillars staked, with Pillar 1 (Nervous System Regulation) and Pillar 2 (Sleep + Eye Mask) ranking on Tier-1 keywords. +- Full lifecycle live in Customer.io: onboarding, lapsed re-engagement, hardware post-purchase, subscription-center opt-ins. +- Ambassador program live with 15–25 active hosts. First Quietude Guides cert pilot run. +- Eye mask wedge selling at scale via Shopify with a clean hardware → app activation path. Blended CAC measured and tracked. +- Paid acquisition firing post-seed-close at $5–10K/mo initial test budget, scaling to $20–50K/mo if unit economics validate. +- Series A narrative writes itself: clinical evidence + activation lift + lifecycle compounding + first B2B install reference cases. + +**The 90-day priorities** (which the rest of this doc operationalizes): + +1. Kill the headphones gate. Ship the bedrock fix this week. +2. Run the three-variant onboarding test. Find the activation winner. +3. Ship Customer.io Flows 6 (eye mask post-purchase) and 4 (lapsed user) — hold Flow 2 (onboarding) until app UI stabilizes. +4. Rewrite the App Store listing in Quietude's brand voice. Highest-leverage non-site asset right now. +5. Stake the SEO foundation: consolidate to `quietude.app`, publish Pillar 1 hub + 3 spokes, publish the peer-reviewed psychophysiology study landing page. +6. Launch the ambassador program with the ~5 inbound waiting. + +Everything else compounds on top of those six. + +--- + +## 2. Strategic frame + +This section distills positioning, ICP, and brand voice into what the team needs to keep in mind while executing. Full detail lives in `marketing-os.md`, `icp.md`, and `sound-philosophy.md`. + +### What Quietude is, in one sentence + +A nervous system intelligence platform — clinically validated spatial audio + AI reflection companion (Mira) + hardware + venue installations + practitioner network. *"We start with sound. We expand to every sense. We end with cities."* + +### The category we're claiming (and defending) + +Quietude doesn't fit the meditation app category, the focus audio category, or the sleep tech category. The brand makes a stronger claim: **bottom-up nervous system regulation through spatial audio**, with clinical evidence as proof and somatic credibility as defense. + +The category-defining frame, per Alex (2026-05-19): **Meditation is top-down. Quietude is bottom-up.** Meditation uses the mind to command the body — mental kung fu that fails the very people most likely to need help, because the prefrontal cortex is offline when stressed. Quietude enters through the brainstem, before the thinking mind. The body responds before it has to try. (Full content-pillar treatment in `meditation-vs-regulation.md`.) + +This is the single most important strategic message. It belongs in App Store copy, onboarding, lifecycle email, SEO content, ambassador talking points, and the seed deck. + +### Who we're for (D2C ICP, distilled) + +Overstimulated high-achieving professionals, 25–45, urban (Bay Area, NYC, London, Berlin, Austin). Tech workers, founders, creators, academics, designers, consultants. Often neurodivergent (ADHD, HSP, gifted). Sophisticated wellness buyers — already invested heavily in their inner life. + +**Their stated problem:** *"I can't shut my brain off. I've tried meditation apps. They don't work."* + +**Their real problem:** Overstimulation, not under-motivation. Their gift (quick thinking) became a curse. They need permission to stop optimizing — including their rest. + +**What they're actually buying:** the *feeling* of stability, sensory indulgence, beautiful rituals, effortless effectiveness, a luxurious shortcut to the genius they can't access in chaos. + +### The business model logic (per seed deck) + +**B2B seeds the market. D2C harvests.** A venue install puts Quietude in front of ~20K people/year at ~$17K cost → 5% convert to subs → ~$430K/year per venue. Six compound channels (referral, Guides, content, home hosting, PR, community) make CAC approach zero by Year 3. Year 5: 75% of new subs come from near-zero-cost channels. + +**fCMO scope per kickoff: D2C-led.** Alex owns B2B sales through events/network/founder credibility. The fCMO leverage is on the app/hardware D2C side. This plan reflects that split — B2B is acknowledged as the harvest engine but not treated as primary work surface. + +### Brand voice (the non-negotiable) + +Per Marketing OS: +- **Tone.** Authoritative yet accessible. Intimate yet professional. Revolutionary yet grounded. Authority comes from lived experience, not explanation. +- **Speak from the body, not the mind.** Every sentence restores somatic safety and orientation. Language opens space rather than closing meaning. +- **YES vocabulary:** Aliveness, inner life, nervous system, spatial sound, resonance, somatic safety, embodied clarity, natural rhythm, orientation, initiation, truth-telling. +- **NO vocabulary:** Zen, chill, vibes, "high-vibe," spiritual bypass, meditation clichés, didactic/explainer language, "let me explain why this works." +- **Core method: Initiatory Reflection.** Writing's purpose isn't to explain or convince — it's to shift the reader's internal state. The result should be *"something in me moved,"* not *"I understand this concept."* +- **CTA rule:** Never pressure. "We do not remind. We invite." + +This rule constrains every piece of copy across every AARRR stage. When in doubt: rewrite from the body. + +--- + +## 3. Current state + +This is what we're starting from — team, budget, what's already in motion, what's stuck, scored against the CF Marketing Audit 17-section rubric. + +### Team composition (marketing surface area) + +| Person | Role | Marketing surface area | +|---|---|---| +| **Alex** | Co-founder, CEO | Owns: personal LinkedIn, live events, B2B sales, founder narrative, investor relations, brand voice authorship | +| **Sam** | Co-founder, CXO | Owns: clinical/somatic credibility, brand-voice stewardship, somatic angle on copy review, practitioner network | +| **Devon** | Lead Dev | Owns: product/UI build, instrumentation, Customer.io event wiring, App Store deployment | +| **Ed Dorsey** | Design Advisor | Advisory cadence (ex-Apple/Airbnb/Strava) | +| **Emily Babich** | Creative Strategy | Advisory cadence | +| **Matt Mikkelsen** | Field Recording | Audio library, not marketing | +| **Casey Reed** | fCMO | Strategy, lifecycle, SEO, onboarding tests, content, ambassador program, ops stack | + +**No dedicated marketing hire yet.** First hire likely post-seed close (Q3 2026 candidate): a lifecycle + content marketing manager who owns Customer.io, SEO content production, and ambassador operations day-to-day. + +### Marketing budget (current) + +- **Paid acquisition:** $0. Confirmed by Alex, 2026-05-20: *"D2C UA so far: My personal LinkedIn posts, live Quietude events, organic word of mouth, and organic app store discovery."* No paid layer. +- **Tooling stack:** Customer.io subscription, Shopify (eye mask storefront), App Store Connect, GA4 (or pending), Stripe, Notion, Dub.co (ambassador attribution). Estimate ~$500–1,500/mo combined. +- **fCMO retainer:** Casey Reed engagement. +- **PR:** No paid PR. Organic longevity-influencer tailwind, consumer-tech angels + foundation-model lab network. + +**Implication:** The 90-day plan must produce gains without any paid lever pulled. Everything in the next 12 weeks is organic, lifecycle, or product-level. Paid is a Q2–Q3 unlock. + +### What's already done (acknowledge, then build on) + +| Asset | Status | Marketing leverage | +|---|---|---| +| Peer-reviewed peer-reviewed psychophysiology study (2025) | Published | Anchor of clinical authority. Most undermarketed asset Quietude owns. | +| longevity-influencer eye-mask endorsement | Live, generating Shopify sales | Press hook. Underused for landing-page social proof. | +| consumer-tech angels + foundation-model lab investment | Closed | Investor PR opportunity. "Why I invested" Substack/Medium pieces. | +| 15K+ live event participants over a decade | Real | Email list potential, ambassador pool, testimonial bank, B2B reference. | +| Quietude eye mask (5K in stock) | Selling | The wedge product. Hardware → app activation path. | +| 38% 12-month retention (vs. category avg 20%) | Real | Headline metric. Belongs everywhere. | +| Customer.io + Shopify integration | Wired | The lifecycle infrastructure exists. Flows just need to ship. | +| 4 GitHub repos for context + product | Set up | `quietude-context` (shared brain), `quietude-promo`, `quietude-app` (app), `mira` (AI), `quietude-api` | +| Alex's Sound Philosophy doc | Working doc | Linkable position paper once polished and published. | +| ~5 inbound ambassadors waiting | Inbound | Referral program ready to launch — no demand-gen needed for v1. | +| Aurora B2B install (~€250K, July deadline) | In-flight | First flagship venue. Reference case once installed. | +| Notion Knowledge Directory | Live | Internal context. | +| Customer.io MCP (Claude integration) | Validated on kickoff | Non-technical team can ship flows independently. | + +### What's in-flight (drafted but not shipped) + +| Item | Status | Blocker | +|---|---|---| +| Flow 2 — App Onboarding (8 emails / 14 days) | Draft | App UI in flux; copy references screens that may change | +| Flow 4 — Lapsed User Re-engagement (5 emails / 38 days) | Draft | None — ship-ready | +| Flow 6 — Eye Mask Post-Purchase | Draft | None — ship-ready | +| Onboarding rebuild (3-variant test plan) | Strategy doc done | Eng scoping + headphone-gate removal | +| SEO 90-day plan + keyword research | Done | Awaiting domain consolidation decision + content production start | + +### What's stuck (and needs to unstick this quarter) + +| Issue | Cost of inaction | Action | +|---|---|---| +| Headphones hard-gate in onboarding | Confirmed conversion drop post-launch | Kill this week (bedrock fix) | +| 4 domains unconsolidated (quietude.app, quietude.space, quietude.audio, quietude.center) | SEO authority fragmenting, transactional email confusion | Consolidate to `quietude.app` per SEO data | +| App Store listing copy not in brand voice | Highest-traffic Quietude surface; off-brand experience for arriving users | Rewrite in voice (Pillar 1) | +| Domain consolidation requires 301 plan + email sender migration | Risk of traffic loss if mishandled | Plan in weeks 1–2, execute weeks 3–4 | +| `quietude-promo` repo hasn't shipped since March 2026 | Marketing site is stale | Confirm whether it's live; rewrite or replace | +| 29% monthly App Store churn vs. 38% 12-month retention claim | Metric definition mismatch confusing the team | Reconcile with Devon + Customer.io data | +| Mira post-session reflection scope unknown | Blocks Variant B and Variant C onboarding tests | Resolve with Devon | + +### Audit rubric snapshot (17-section) + +Scored 0–5 from materials, using the embedded rubric in `references/current-state-rubric.md`. Marked "scored from materials" rather than "formal audit" — Alex can push back on any score where they have better data. + +| # | Section | Score | Note | +|---|---|---|---| +| 1 | Positioning | **4** | Clear, original category claim. The bottom-up frame is the strongest piece. Needs broader external articulation. | +| 2 | Customer research | **4** | Deep founder-led research, decade of live participants. Could be more systematically captured. | +| 3 | Homepage | **2** | `quietude-promo` hasn't shipped since March. Off-brand voice in places. | +| 4 | Sales / product pages | **2** | Eye mask page exists on Shopify but isn't optimized for SEO or sales narrative. No app-product landing page in brand voice. | +| 5 | Conversion pages | **2** | `/partner` exists on `quietude.app`. No `/science`, `/eye-mask`, `/ambassadors`, `/guides` pages live. | +| 6 | Competitor comparison | **1** | Nothing exists. Big SEO + sales opportunity (own "Quietude vs. Calm/Headspace/Brain.fm/Endel" SERPs). | +| 7 | Resources / content | **1** | Sound Philosophy not yet public. peer-reviewed psychophysiology study not yet on a dedicated page. No blog. | +| 8 | Onboarding | **2** | Headphones gate killing conversion. Hold-and-fix project this quarter. | +| 9 | Email lifecycle | **1** | All three flows drafted, none live. Ship-order set. | +| 10 | Sales material | **3** | Seed deck is strong (investor-facing). B2B sales material more founder-led than asset-led. | +| 11 | Messaging | **5** | Alex + Sam have authored the most distinctive brand voice in the wellness category. This is a moat. | +| 12 | Pricing | **3** | $30/mo app, $45 eye mask, $7,500 speakers, $50–200K B2B. Hasn't been pressure-tested for D2C conversion lift. | +| 13 | CRO | **2** | App Store conversion rate trackable but no A/B history. Headphones gate is the obvious first test removal. | +| 14 | GTM / launches | **2** | App in throttled beta. Major launches (eye mask, Mira public) haven't had structured GTM. | +| 15 | Ads | **0** | No paid layer. Reflects the current organic strategy — not a weakness, but the budget unlock means this will move. | +| 16 | SEO | **1** | Current state: 7 organic visits/mo. Plan exists; execution not yet started. | +| 17 | Internationalization | **1** | Finland HQ + global ICP, but EN-only and US-centric copy. Defer until Q4+. | + +**Total: 36 / 85 (42%).** The shape matters more than the score: high in Positioning + Messaging + Customer research, low in Conversion pages + Email lifecycle + SEO + Resources + Ads. That's the gap this plan closes. + +--- + +## 4. Acquisition + +> *"How do strangers become aware of Quietude?"* + +### Current state + +100% organic. Four real channels: Alex's personal LinkedIn, live Quietude events, organic word of mouth, organic App Store discovery. Plus passive PR drag from longevity-influencer endorsement + clinical study. + +This is good news, not bad. Every dollar of revenue earned to date has been earned without paid acquisition. The bar to exceed it isn't high; the upside on top of an organic base is significant. + +### The plan + +**Channel 1 — SEO (primary 90-day investment).** +The full 90-day plan lives in `seo/plan.md`. Summary: consolidate to `quietude.app`, target three asymmetric clusters (nervous-system regulation KD 14–32, weighted/blackout sleep mask KD 6–30, WELL + social-wellness-club B2B KD 5–34), publish 4 content pillars. 90-day target: 500–1,500 organic visits/mo, 80+ ranking keywords. 12-month target: 10,000/mo, 1,000+ keywords. + +**Channel 2 — App Store optimization (highest-leverage non-site asset).** +The App Store listing is currently the most-visited Quietude URL by Apple's algorithm. Fixing the copy is higher-leverage this quarter than fixing the marketing site. Rewrite in brand voice. Add the meditation-vs-regulation framing. Lead with the clinical anchor. Test screenshot variations. + +**Channel 3 — Alex's LinkedIn (productize the channel).** +Today it's ad-hoc founder posting. The next move is structured: a 2–3x/week cadence, post categories that map to the content pillars (nervous system, sound science, founder journey, clinical evidence, behind-the-scenes), trackable links via Dub, follower → email subscriber → app install funnel measured. This is Alex's voice — the channel only works if he's the one writing. fCMO + Typefully scheduling makes the cadence sustainable. + +**Channel 4 — PR amplification.** +longevity-influencer tailwind is real but underused on owned surfaces. Add a `/notable-users` or `/in-the-press` page. Pitch the peer-reviewed psychophysiology study to 5 outlets (wellness press: Well+Good, MindBodyGreen; tech-adjacent: Wired with the longevity-influencer hook; mainstream: Outside, Forbes Wellness). HARO/Help-A-B2B-Writer responses citing Quietude's data. Investor PR moments ("Why I invested in Quietude" Substack pieces from consumer-tech angels — push for these with backlinks). + +**Channel 5 — Event-to-app instrumentation.** +Live events are the highest-converting ICP exposure Quietude has (15K+ participants, decade of trust). They're un-instrumented. Add: per-event QR code → app install + email capture, post-event lifecycle (Customer.io Flow 7?), event ROI tracking. Goal: turn an event from a one-night conversion moment into a 30-day funnel. + +**Channel 6 — Eye mask wedge (consumer entry product).** +5K masks in stock. Shopify storefront exists but isn't optimized. Improvements: SEO-optimize the product page (target "weighted sleep mask," "blackout sleep mask," "silk sleep mask"), add reviews via Judge.me (per kickoff decision), 30-day return policy (US-market expectation, per kickoff), build the listicle ("Quietude vs. Manta vs. Nodpod vs. Lumon"). Consider Amazon listing as a v2 distribution play. + +**Channel 7 — B2B venue installs (kept lean per kickoff).** +Alex owns this. Marketing supports with: case studies after each install, `/partner` page rewrite in voice (already exists on quietude.app), Pillar 4 content ("The Missing Sound Feature in WELL"), reciprocal links from partner venues baked into contracts. + +**Channel 8 — Paid layer (unlocked post-seed close).** +Held until seed funding lands. Initial test budget: $5–10K/mo split across Apple Search Ads (highest-intent for App Store), Meta (Instagram + Facebook for eye mask), LinkedIn (B2B venue buyers). Don't fire until: (a) onboarding bedrock fix is shipped, (b) Flow 6 is live, (c) at least one Pillar landing page is in voice. Paid amplifies what already works — premature paid amplifies what's broken. + +### 90-day acquisition moves + +- Weeks 1–2: Domain consolidation decision + 301 plan. App Store listing rewrite first pass. +- Weeks 3–4: Domain 301s executed. GSC migration. SEO Pillar 1 hub drafted. +- Weeks 5–8: Pillar 1 hub + 3 spokes published. Pillar 2 (Eye Mask) hub + listicle published. Alex's LinkedIn cadence operationalized via Typefully. peer-reviewed psychophysiology study lands on dedicated `/science` page. +- Weeks 9–12: Pillar 4 (WELL/B2B) cornerstone published. Sound Philosophy goes public at `/research/sound-philosophy`. First PR push: pitch study + longevity-influencer hook to 5 outlets. + +### 12-month acquisition outlook + +- Q1 (Months 1–3): Foundation. SEO pillars staked. App Store rewrite shipped. LinkedIn cadence stable. PR push launched. +- Q2 (Months 4–6, post-seed close): Paid acquisition pilot at $5–10K/mo. SEO compounding — Pillar 1 ranking. First B2B install reference case live. +- Q3 (Months 7–9): Paid scales to $20–30K/mo if unit economics hold. All four pillars producing. App GA — new GTM moment. +- Q4 (Months 10–12): Compound channels live. 50+ pieces of pillar content. First Quietude Guides program pilot creating local SEO + earned media. + +### Skills + tools + +- **Skills:** `seo-audit`, `ai-seo`, `programmatic-seo`, `schema`, `content-strategy`, `competitors`, `launch`, `ads`, `ad-creative`, `social`, `typefully`, `analytics`, `copywriting`, `marketing-website-design`, `free-tools` +- **MCPs / APIs:** Ahrefs API, DataForSEO API, Typefully MCP (LinkedIn scheduling), GA4 MCP (when wired), GitHub MCP (`quietude-promo` repo work), Notion (knowledge directory), Stripe MCP (LTV / paid-CAC math), `agent-browser` (LinkedIn drafting + testing), `defuddle` (research) + +--- + +## 5. Activation + +> *"Once someone tries Quietude, do they have an experience that converts?"* + +### Current state + +Day 1 → paid: **1.34%**. Day 7 → paid: **3.73%**. Day 35 → paid: **5.46%**. *The funnel shape is the signal.* The ~4× lift over 35 days means the product converts given time and contact — both of which the current onboarding undermines and the lifecycle layer doesn't yet provide. + +Caveats: app is in throttled beta. Metrics are noisy. Don't optimize against absolutes; optimize against funnel *shape* and *cohort comparison*. + +### The plan + +**Move 1 — Kill the headphones hard-gate (bedrock fix, this week).** +Confirmed conversion drop after the gate shipped. The fix isn't better copy on the gate — it's removing the gate. Replace with passive headphone detection + soft single-line nudge. No regret change. Full reasoning in `onboarding-recommendation.md`. + +**Move 2 — Run the three-variant onboarding test.** +Three variants, each a pure expression of one belief about what drives activation in this ICP: +- **Variant 1 — Trust First.** Bold promise + clinical anchor + testimonial wall + 1-line mechanism. Tests whether the saturated ICP needs framing before they'll invest. +- **Variant 2 — Seen First.** Multi-step diagnostic → AI-generated "we see you" summary → personalized session. Tests whether being accurately named is the conversion event. +- **Variant 3 — Felt First.** Audio starts on app open. ~15 words on screen. The session IS the onboarding. Tests whether the product can carry it cold. + +Test sequence (sequential, ~7 weeks to a winner): bedrock baseline → V3 vs. baseline → winner vs. V1 → winner vs. V2. Full system in `onboarding-recommendation.md`. + +**Move 3 — App Store listing rewrite.** +Highest-leverage non-site asset. Rewrite in brand voice. Lead with meditation-vs-regulation. Screenshot variations to test. This is also an Acquisition move (organic discovery) but it lives here because it's the threshold to the trial. + +**Move 4 — Customer.io Flow 2 (held until UI stable).** +The 8-email / 14-day onboarding sequence is drafted and on-brand. Holding the ship because the emails reference in-app screens that will change during the onboarding rebuild. Once a winning onboarding variant ships, Flow 2 gets a copy refresh against the final UI and goes live. + +**Move 5 — Paywall + pricing review (cross-cuts to Revenue).** +What's the current trial structure? Length, paywall trigger, intro pricing? When the funnel shape is "lift over 35 days," extending trial may convert better than aggressively gating earlier. To be audited in Q1. + +### 90-day activation moves + +- Week 1: Headphones gate removed. Baseline established. +- Weeks 2–3: Variant 3 (Felt First) prototyped, instrumented, shipped to a test cohort. +- Weeks 4–5: Read Variant 3 vs. baseline. Decide ship/iterate. Begin Variant 1 build. +- Weeks 6–7: Variant 1 (Trust First) live. +- Weeks 8–9: Read V1 vs. winner. Begin Variant 2 build. +- Weeks 10–11: Variant 2 (Seen First) live. +- Week 12: Final read. Winning variant scheduled for permanent ship. Flow 2 unblocked. + +### 12-month activation outlook + +- Q1: Winning variant identified and shipped. +- Q2: Flow 2 ships. Paywall A/B tests start. +- Q3: GA launch — onboarding re-validated at higher traffic. Cohort segmentation by acquisition source (Shopify/eye-mask vs. direct vs. ambassador vs. paid) starts to drive variant forks. +- Q4: Onboarding is no longer the bottleneck. Focus moves to Activation → Retention transition (sessions 2–7). + +### Skills + tools + +- **Skills:** `onboarding`, `signup`, `cro`, `cro`, `paywalls`, `popups`, `copywriting`, `copy-editing`, `copycraft`, `marketing-website-design`, `ab-testing`, `marketing-psychology` +- **MCPs / APIs:** App Store Connect (manual + `dev-browser` for screenshot automation), GitHub MCP (`quietude-app` app repo for onboarding code), Figma / Pencil MCP (for onboarding screen design), Customer.io MCP (for any in-app/email coordination), GA4 MCP (activation events) + +--- + +## 6. Retention + +> *"Once someone converts, do they stay — and deepen?"* + +### Current state + +**Headline metric (per seed deck): 38% 12-month retention** — nearly double the category average (~20%). This is the strongest single retention signal in the deck and one of the most undermarketed claims Quietude owns. + +**App Store snapshot, 2026-05-16:** 145 paid, 42 churned (~29% monthly churn). Definition mismatch with the 38% claim — to reconcile. Possibly: 38% is annual cohort retention (people who paid month 1 and still pay month 12), 29% is gross monthly churn (people who paid this month who didn't pay next month). Both can be true. Need to clarify which metric is reported externally and which is the actual product health signal. + +### The plan + +**Move 1 — Ship Flow 6 first (Eye Mask Post-Purchase).** +Per kickoff decision and the onboarding-recommendation doc: this is the ship-ready flow. Hardware-anchored, doesn't reference in-app screens, can ship today. Wires the hardware → app activation path (eye mask buyers should get a free 6-month Premium trial — formalize this as part of the flow). + +**Move 2 — Ship Flow 4 second (Lapsed User Re-engagement).** +Five emails over 38 days. Language is universal — doesn't depend on app UI state. Ship after Flow 6 is live. + +**Move 3 — Hold Flow 2 (Onboarding).** +Eight emails over 14 days. Holds until app UI stabilizes post-onboarding-rebuild. Don't ship copy that will need rewriting in 8 weeks. + +**Move 4 — Customer.io subscription center with opt-in topics.** +Per kickoff decision. Topics: events, app updates, somatics & nervous system, eye mask promotions. Users self-segment. Improves deliverability (lower complaint rates) and gives lifecycle a richer segmentation surface. + +**Move 5 — Mira post-session reflection (when scoped).** +Most powerful retention move medium-term. After a session, Mira asks *"What did you notice?"* Optional preset chips + free text. Two payoffs: (a) gives Mira priors for personalization on session 2+, (b) reflection responses become a content + segmentation goldmine for the team. Scope question for Devon — does Mira currently support this, or is it new build? + +**Move 6 — Hardware → app activation flow.** +The eye-mask-buyer-becomes-Premium-subscriber path is hinted in the seed deck (blended CAC via hardware) but isn't visible in the App Store dashboard. Audit the existing flow: does an eye mask Shopify purchase actually deliver a free Premium code? How is it redeemed? What's the conversion rate? This is foundational to the "B2C wedge" thesis. + +**Move 7 — Reconcile the retention metric.** +What's the actual definition of "38% 12-month retention"? Cohort? Plan type (monthly vs. annual)? Survives this even if the answer is uncomfortable — the team and investors need to be talking about the same metric. + +**Move 8 — Annual plan as default (cross-cuts to Revenue).** +Industry pattern: defaulting to annual reduces churn anxiety and improves LTV. To test in Q2. + +### 90-day retention moves + +- Weeks 1–2: Flow 6 (eye mask post-purchase) ships. Address fixes from kickoff review (study link line break, CAN-SPAM footer, founder face-bubble signature, Judge.me reviews). +- Weeks 3–4: Flow 4 (lapsed user re-engagement) ships. +- Weeks 5–6: Customer.io subscription center built and live. +- Weeks 7–8: Hardware → app activation flow audited and documented. Fix any leaks. +- Weeks 9–10: Retention metric reconciliation (with Devon). +- Weeks 11–12: Win-back campaign for churned cohort — test re-activation copy. + +### 12-month retention outlook + +- Q1: Flows 6 + 4 firing. Subscription center live. +- Q2: Flow 2 ships (post-onboarding-rebuild). Mira post-session reflection in production. Annual plan default tested. +- Q3: GA launch — retention metrics re-baselined at higher volume. Cohort-based lifecycle flows (eye mask vs. direct app install). +- Q4: Full lifecycle compound. Retention is no longer a top-three concern — focus moves to Referral and Revenue. + +### Skills + tools + +- **Skills:** `emails`, `churn-prevention`, `copywriting`, `copy-editing`, `paywalls`, `ab-testing` +- **MCPs / APIs:** **Customer.io MCP** (validated on kickoff — non-technical team can ship flows), Shopify (eye mask buyers as event source), Stripe MCP (subscription state, churn cohort pulls), GA4 MCP (session events, retention curves) + +--- + +## 7. Referral + +> *"Do retained users bring more users — and at what cost?"* + +### Current state + +~5 inbound ambassadors waiting (per kickoff). Dub.co set up. No formal program yet. WOM happens naturally per Alex's UA breakdown. + +This is one of the strongest leading indicators in the business: 5 unaffiliated people have raised their hand asking to bring Quietude to their network *before any program exists*. That signal doesn't show up in apps with weaker product-market fit. + +### The plan + +**Move 1 — Launch the ambassador program with the 5 inbound.** +Tier 1 of the program. Per-ambassador landing pages (e.g., `quietude.app/with/sarah`). Dub.co tracks attribution. Commission structure to determine (per kickoff, $/sub or rev-share TBD). Soft-launch with the 5 — treat as pilot cohort, gather feedback, refine before opening applications. + +**Move 2 — Build the share-after-shift moment.** +The Mira post-session reflection (see Retention) is the natural moment to surface a share prompt. After a user reports a felt shift, offer: *"Want to share Quietude with someone who needs this?"* Single-line, never pushy. Most powerful WOM mechanism: gift-a-month flow where the recipient gets a discounted or free intro. + +**Move 3 — Founder amplification (Alex + Sam as ambassador-zero).** +Alex mentioning the fCMO engagement in fundraise pitches (permission granted). Reciprocal mentions in fCMO-side content. Sam's clinical network → practitioner ambassador pool. + +**Move 4 — Quietude Guides cert pilot (long-term, Q3+).** +The Guides program is the Phase-2 referral compound (per seed deck). 500–1,000 Guides across 50+ cities by Y3–5. First cert pilot: 3–5 hosts who run live sessions, get a rev-share + co-marketing. Builds local SEO + earned media + ambassador-of-ambassadors flywheel. Hold until paid + lifecycle are firing — Guides is a multi-quarter build. + +**Move 5 — Eye mask gifting flow.** +Hardware referral is rare and powerful. *"Send a friend an Quietude eye mask. They get the mask + a free 3-month Premium. You get a credit toward your next thing."* Holiday/gifting peak windows are the test. + +### 90-day referral moves + +- Weeks 1–4: Ambassador program scoped, commission structure decided, per-ambassador landing page template built, 5 inbound onboarded. +- Weeks 5–8: First ambassador-driven sales tracked via Dub. Attribution and payout flow validated. +- Weeks 9–12: Open applications for next 10–15 ambassadors. Begin Quietude Guides scoping. + +### 12-month referral outlook + +- Q1: Ambassador program live with 5–10 active. +- Q2: 15–25 active ambassadors. Share-after-shift moment in production (post-Mira reflection). +- Q3: Guides cert pilot launched (3–5 hosts). Eye mask gifting flow live for holiday peak. +- Q4: 50+ ambassadors + 5–10 Guides. Referral driving 15–25% of new D2C subs. + +### Skills + tools + +- **Skills:** `referrals`, `social`, `copywriting`, `marketing-website-design` (per-ambassador landing pages) +- **MCPs / APIs:** Dub.co (attribution — already in stack), Stripe MCP (commission accounting + payouts), GitHub MCP (landing page deployment in `quietude-promo` or new `quietude-ambassadors` repo), Customer.io MCP (ambassador lifecycle: onboarding, monthly performance digest, payout notification) + +--- + +## 8. Revenue + +> *"What do we charge, who pays, and how does that compound?"* + +### Current state + +| Product | Price | Volume signal | +|---|---|---| +| Quietude App + Mira | ~$30/mo | 145 paid subs (App Store snapshot 2026-05-16) | +| Quietude Eye Mask | ~$45 | 5K in stock, longevity-influencer PR-driven sales | +| Quietude Audio (speakers) | ~$7,500 | Niche, founder-led | +| Quietude Spaces (B2B install) | $50–200K | Aurora flagship in-flight (~€250K), pipeline of 4 venues | +| Quietude Experiences (events) | Varies | 15K+ historical participants | +| Quietude Guides | Rev share | Not yet operational | + +**Revenue to date: ~$500K on ~$250K raised.** Capital-efficient. Hardware + B2B + app subs all contributing. + +**MRR (App Store snapshot): $592.** Beta-throttled, not steady-state. The implied ~$4/sub/mo against $30/mo list suggests heavy annual plan adoption (which compresses monthly revenue but improves LTV) or significant promotional pricing — to reconcile with Alex. + +### The plan + +**Move 1 — Pricing audit.** +What's actually being charged today? List price, common plan mix, intro pricing, churn-recovery offers? The $4/sub/mo implied math doesn't tell a clean story — need ground truth before recommending changes. + +**Move 2 — Annual plan as default (test).** +Industry pattern, cross-references to Retention. Test in Q2. + +**Move 3 — Hardware → app bundling formalized.** +Per partner-event-business framing in the seed deck: blended CAC via hardware → app subscription is the play. Today an eye mask buyer gets... what, exactly? Free Premium? Trial code? Audit + formalize. The eye mask is the wedge; the app is the LTV. + +**Move 4 — Eye mask Shopify storefront optimization.** +The current page underperforms what it could. Add: SEO targeting ("weighted sleep mask," "blackout sleep mask"), Judge.me reviews (kickoff decision), 30-day return policy (kickoff decision), upsell flow into Premium app. + +**Move 5 — Consider Amazon listing for eye mask.** +Amazon takes margin but is its own discovery engine. Test as v2 distribution if Shopify volume validates. + +**Move 6 — B2B install case studies + sales material.** +Alex owns B2B sales but marketing supports with: post-install case studies (Aurora as the flagship), `/partner` page rewrite in voice, Pillar 4 SEO content. Each B2B install is a ~$430K/year recurring + reference-case multiplier. + +**Move 7 — Data licensing (long-term, flag for ops stack).** +Per seed deck Y10–15 value pool: $100–160M/yr. Not immediate revenue. Belongs in the 24-month strategic agenda. Flag here so we don't lose sight. + +### 90-day revenue moves + +- Weeks 1–2: Pricing audit. Reconcile implied vs. listed MRR. +- Weeks 3–4: Hardware → app activation flow audited (also Retention move 6). +- Weeks 5–8: Eye mask Shopify page rewrite + SEO optimization + Judge.me + return policy. Aurora case study scaffolded for post-install. +- Weeks 9–12: Annual plan default test scoped. + +### 12-month revenue outlook + +- Q1: Pricing audit closes. Hardware → app activation formalized. +- Q2: Annual plan default test live. Eye mask Shopify producing measurable lift. +- Q3: B2B install case studies (1–2) published. GA launch + new pricing tier consideration (e.g., a higher-tier Mira-heavy plan?). +- Q4: Pricing optimized via test results. Hardware → app blended CAC tracked and reported. First numbers on the data-licensing thesis (still very early). + +### Skills + tools + +- **Skills:** `pricing`, `paywalls`, `sales-enablement`, `revops`, `ab-testing`, `copywriting` +- **MCPs / APIs:** Stripe MCP (pricing tests, subscription analytics, churn cohort, blended CAC math), Customer.io MCP (paywall-related lifecycle), Shopify (eye mask transactions), GA4 MCP (revenue events), Notion (commercial knowledge directory) + +--- + +## 9. 90-day roadmap + +Tactical execution layer. Each item is AARRR-tagged so priority is visible. + +### Weeks 1–2 — Unblock + +| Move | Stage | Owner | +|---|---|---| +| Kill the headphones hard-gate | Activation | Casey + Devon | +| Domain consolidation decision documented | Acquisition | Casey + Alex | +| 301 plan drafted (page-by-page) | Acquisition | Casey | +| App Store listing rewrite — first pass | Activation + Acquisition | Casey + Alex + Sam (voice review) | +| Flow 6 (eye mask post-purchase) ships | Retention | Casey + Customer.io MCP | +| Ambassador program scoping doc | Referral | Casey | +| Pricing audit kicked off | Revenue | Casey + Alex | + +### Weeks 3–4 — Foundation + +| Move | Stage | Owner | +|---|---|---| +| Domain consolidation 301s executed | Acquisition | Devon + Casey | +| GSC + GA4 stood up on `quietude.app` | Acquisition | Casey | +| SEO Pillar 1 hub drafted (Nervous System Regulation) | Acquisition | Casey | +| `/science` hub built with peer-reviewed psychophysiology study | Acquisition + brand | Casey + Sam | +| Variant 3 (Felt First) onboarding prototyped + tested | Activation | Casey + Devon | +| Flow 4 (lapsed user) ships | Retention | Casey | +| Ambassador program: 5 inbound onboarded | Referral | Casey | +| Hardware → app activation flow audited | Retention + Revenue | Casey + Devon | +| App Store listing rewrite — final + ship | Activation + Acquisition | Alex + Sam + Casey | + +### Weeks 5–8 — Velocity + +| Move | Stage | Owner | +|---|---|---| +| Pillar 1 hub + 3 spokes published | Acquisition | Casey | +| Pillar 2 hub (Eye Mask) + listicle published | Acquisition | Casey | +| Alex's LinkedIn cadence operationalized (Typefully) | Acquisition | Alex + Casey | +| First PR push: study + longevity-influencer hook to 5 outlets | Acquisition | Casey + Alex | +| Variant 3 read; ship or iterate | Activation | Casey | +| Variant 1 (Trust First) prototyped + tested | Activation | Casey + Devon | +| Customer.io subscription center built | Retention | Casey | +| Eye mask Shopify storefront rewrite (SEO + reviews + return) | Acquisition + Revenue | Casey + Alex | +| First ambassador attribution verified via Dub | Referral | Casey | + +### Weeks 9–12 — Compound + +| Move | Stage | Owner | +|---|---|---| +| Pillar 4 (WELL/B2B) cornerstone published | Acquisition | Casey | +| 3 more Pillar 1 spokes published | Acquisition | Casey | +| Sound Philosophy published at `/research/sound-philosophy` | Acquisition + brand | Alex + Casey | +| Variant 1 read; begin Variant 2 (Seen First) build (Mira-dependent) | Activation | Casey + Devon | +| Win-back campaign for churned cohort | Retention | Casey | +| Annual plan default test scoped | Revenue | Casey + Alex | +| Open ambassador applications for next 10–15 | Referral | Casey | +| 90-day review + Q2 plan recalibration | Cross-cutting | Casey + Alex | + +--- + +## 10. 12-month outlook + +Quarterly milestones with funding-stage capability unlocks named explicitly. + +### Q1 — Months 1–3 (Jun–Aug 2026) + +**Funding state:** Pre-seed-close. Paid budget = $0. fCMO + founder-led + tool costs only. + +**Focus:** Foundation. Plug the leaks. Stake the SEO ground. Get lifecycle firing. + +**Outcomes by end of Q1:** +- Headphones gate gone; onboarding winner identified +- All four SEO pillars seeded (hub + first spokes) +- Lifecycle Flows 4 + 6 live +- App Store listing in brand voice +- 5 ambassadors active +- Pricing audit closed +- Domain consolidated + +**KPI targets:** Onboarding Day 1 → paid lift of 25–50%. Organic traffic 500–1,500/mo. App Store conversion rate +20%. + +### Q2 — Months 4–6 (Sep–Nov 2026) + +**Funding state:** Seed close (~Q3 2026 target). First paid budget unlock: $5–10K/mo test. + +**Focus:** Validate paid. Scale winning onboarding. Add Flow 2. + +**Outcomes by end of Q2:** +- Paid acquisition firing on Apple Search Ads + Meta +- Onboarding winner permanently shipped +- Flow 2 (onboarding emails) shipped +- Mira post-session reflection in production +- 15–25 ambassadors active +- First B2B install reference case (Aurora) published +- Annual plan default tested + +**KPI targets:** Paid CAC < $50 blended. Organic traffic 1,500–3,500/mo. Retention curves visibly improving. + +### Q3 — Months 7–9 (Dec 2026–Feb 2027) + +**Funding state:** Seed deployment. Paid scales to $20–50K/mo if unit economics hold. First marketing hire (lifecycle + content manager). + +**Focus:** Scale + diversify. App GA. B2B reference cases compound. + +**Outcomes by end of Q3:** +- App GA launched with new GTM moment (PR + ad creative refresh + Pillar 3 spatial-audio-science content cycle) +- First Quietude Guides cert pilot (3–5 hosts) +- All four pillars producing weekly content +- Eye mask gifting flow live for holiday peak +- New marketing hire onboarded + +**KPI targets:** Paid + organic blended CAC stabilizing. App GA conversion +50% from beta baseline. Guides pilot validates rev-share + co-marketing model. + +### Q4 — Months 10–12 (Mar–May 2027) + +**Funding state:** Pre–Series A. Paid scaling continues. Series A pitch in motion. + +**Focus:** Compound. Position for Series A. + +**Outcomes by end of Q4:** +- Compound channels (organic + ambassador + Guides + lifecycle) producing 50%+ of new subs +- 50+ ambassadors, 5–10 Guides +- 4 SEO pillars + 30+ pieces of content live +- Paid scaling to $50–150K/mo if validated +- Series A narrative: clinical evidence + activation lift + lifecycle compounding + B2B reference case pipeline + +**KPI targets:** D2C ARR run-rate trajectory clear. Blended LTV/CAC > 3. Founder narrative + data + reference cases ready for Series A. + +--- + +## 11. Marketing operations stack + +This is what makes the plan executable at Quietude's team size. A 4-person founder team + fCMO + agentic tooling can ship the output of a 15–20-person traditional marketing org — because the marketing skill library and MCP integrations do the orchestration. + +### The thesis + +Every move in the AARRR breakdown above maps to (a) one or more marketing skills that operationalize the work, and (b) one or more MCP/API integrations that let it execute without a dedicated headcount per channel. + +The fCMO's job is to: +1. Define the strategy and sequencing (this doc) +2. Run the skills against the right context at the right time +3. Maintain the shared context (`quietude-context`) and tooling so Alex + Sam + future hires can plug in +4. Hand off operational work to humans (or future hires) only where the cost of agentic execution > human execution + +### Skills mapped to AARRR stages + +| Stage | Primary skills | Supporting skills | +|---|---|---| +| **Acquisition** | `seo-audit`, `ai-seo`, `programmatic-seo`, `schema`, `content-strategy`, `competitors`, `ads`, `ad-creative`, `social`, `typefully` | `launch`, `free-tools`, `analytics`, `cold-email`, `copywriting`, `marketing-website-design` | +| **Activation** | `onboarding`, `signup`, `paywalls`, `cro`, `copywriting`, `copy-editing`, `copycraft` | `marketing-website-design`, `ab-testing`, `marketing-psychology`, `cro`, `popups` | +| **Retention** | `emails`, `churn-prevention` | `copywriting`, `copy-editing`, `ab-testing`, `paywalls` | +| **Referral** | `referrals`, `social` | `copywriting`, `marketing-website-design`, `emails` | +| **Revenue** | `pricing`, `paywalls`, `sales-enablement`, `revops` | `ab-testing`, `copywriting` | +| **Cross-cutting** (brand, intelligence) | `product-marketing`, `customer-research`, `marketing-psychology` | `marketing-ideas`, `diagram-maker` | + +### MCPs / APIs mapped to stages + +| Stage | Existing connections at Quietude | Tooling layer (Casey's fCMO stack) | +|---|---|---| +| **Acquisition** | App Store Connect (manual), Shopify, GA4 (in progress), Notion | Ahrefs API, DataForSEO API, Typefully MCP, GitHub MCP (`quietude-promo`), `agent-browser`, `defuddle` | +| **Activation** | App Store Connect, Customer.io, Shopify | App Store Connect (via `dev-browser` for screenshot automation), Figma / Pencil MCP, GitHub MCP (`quietude-app` app repo), Stripe MCP | +| **Retention** | **Customer.io (with Claude MCP — validated on kickoff)**, Stripe, Shopify | Customer.io MCP, Stripe MCP, GA4 MCP | +| **Referral** | Dub.co, Stripe | Dub.co, Stripe MCP, GitHub MCP (per-ambassador landing pages), Customer.io MCP | +| **Revenue** | Stripe, Shopify, Customer.io | Stripe MCP, Shopify, GA4 MCP, Notion | +| **Cross-cutting** | Notion, GitHub (`quietude-context`) | Notion, GitHub MCP, `defuddle`, `obsidian-cli` (for Casey's working notes) | + +### The Customer.io MCP unlock (concrete example) + +Per kickoff call: *"Built live on call — abandoned-cart flow drafted using Customer.io's Claude MCP. Validated that non-technical team can use the skill pattern independently."* + +This is the operational proof that the stack works. Alex, who is not a developer, drafted a working lifecycle flow with Claude + Customer.io MCP in real time on a kickoff call. The same pattern applies to: Flow 4 ship (lapsed user re-engagement), subscription center build, win-back campaign, eye mask gifting flow, ambassador lifecycle. The fCMO's role becomes orchestration + brand-voice QA, not hand-cranking each email. + +### Capability unlocks by funding stage + +| Stage | Headcount | Tooling | Channels live | +|---|---|---|---| +| **Pre-seed-close (now)** | fCMO + founder team | All current tooling + Casey's marketing skill library + MCP layer | Organic only (SEO, content, App Store, LinkedIn, events, WOM, ambassador) | +| **Seed close (~Q3 2026)** | + first marketing hire (lifecycle/content) by end of Q3 | + paid ad accounts (Apple Search Ads, Meta, LinkedIn) | + paid acquisition pilot $5–10K/mo | +| **Seed deployment (Q3–Q4 2026)** | + designer (potentially fractional) | + analytics expansion (Mixpanel or Amplitude if needed) | + paid scaling $20–50K/mo, + Guides cert pilot | +| **Series A (2027)** | + performance marketing lead + content lead | + dedicated tooling spend (~$2–5K/mo software) | + paid scaling $50–150K/mo, + international, + B2B vertical expansion | + +The marketing skill library scales these stages. Every channel added doesn't require a 1:1 headcount increase because each skill encodes the workflow. + +--- + +## 12. Tactical idea bank — 139-idea cross-reference + +The `marketing-ideas` skill catalogs 139 proven marketing tactics. Sections 4–8 (AARRR) prescribe what we're *doing*. This section maps the full universe of what's *possible* — every idea cross-referenced to the AARRR stage it primarily serves, with Quietude applicability and timing. + +This is the exhaustive menu. The plan above is the curated path. When we move to Q2 / Q3 / Series A and unlock new capacity, this is the inventory we pull from. + +**Status legend:** + +- **Now (Q1)** — already in the 90-day plan OR can run alongside it without new capacity +- **Q2** — post-bedrock-fix, post-foundation; second-quarter layer-ins +- **Q3+** — post-seed-close, post-GA; expansion moves +- **Q4+** — long-game / large-investment moves +- **Skip / off-brand** — incompatible with Quietude's brand voice, business model, or product category + +### 12.1 Acquisition ideas (88 mapped) + +**Now (Q1):** + +| # | Idea | Quietude note | +|---|---|---| +| 1 | Easy Keyword Ranking | SEO plan Tier-1 cluster (nervous system, sleep mask, B2B) targets this directly | +| 2 | SEO Audit | Run `/seo-audit quietude.app` quarterly; publish findings as content | +| 5 | Content Repurposing | Sound Philosophy → essays → LinkedIn posts → newsletter → podcast loop | +| 6 | Proprietary Data Content | peer-reviewed psychophysiology study now; anonymized Quietude HRV / sleep dataset later | +| 7 | Internal Linking | Built into the pillar/spoke structure of the SEO plan | +| 10 | Parasite SEO | Alex's LinkedIn already does this; consider mirror to Substack | +| 12 | Marketing Jiu-Jitsu | Meditation-vs-Regulation IS this — turn "meditation works" assumption against itself | +| 36 | Quora Marketing | Answer "why meditation doesn't work for me" + HRV + somatic questions | +| 37 | Reddit Keyword Research | Mine r/somatic, r/CPTSD, r/HSP, r/ADHD for ICP language (feeds Customer Language #139) | +| 39 | LinkedIn Audience | Alex's channel productized — primary D2C top-of-funnel today | +| 59 | Article Quotes | HARO / Help-A-B2B-Writer for Alex + Sam — easy press wins | +| 70 | Conference Speaking | Alex: WELL Conference, biophilic design events, Mindful Leadership Summit | +| 74 | Press Coverage | Pitch peer-reviewed study + longevity-influencer hook to 5 outlets in Q1 | +| 109 | Public Demos | Live Quietude events ARE this; instrument the in-person → app conversion | +| 114 | Moneyball Marketing | Already practicing — asymmetric SEO keywords, undervalued channels | +| 133 | Investor Marketing | Alex's raise — leverage angel backchannel for PR + intros | + +**Q2:** + +| # | Idea | Quietude note | +|---|---|---| +| 3 | Glossary Marketing | Sound + nervous system glossary — "what is polyvagal," "what is HRV," "what is somatic listening" | +| 8 | Content Refreshing | Revisit Pillar 1 quarterly with new data and search-intent updates | +| 11 | Competitor Comparison Pages | Quietude vs. Calm / Headspace / Brain.fm / Endel / Wavepaths — high-intent SERPs | +| 13 | Competitive Ad Research | SpyFu + Facebook Ad Library before launching paid | +| 17 | Quiz Marketing | "What's your nervous system profile?" — generates personalization seed + lead capture | +| 25 | Facebook Ads | Eye mask creative + somatic content + retargeting from event attendees | +| 26 | Instagram Ads | Visual product + Reels-native ads (eye mask especially) | +| 28 | LinkedIn Ads | B2B venue buyers + investor-adjacent ICP | +| 31 | Google Ads | Apple Search Ads first (App Store intent); Google for eye mask + B2B | +| 38 | Reddit Marketing | Authentic participation in r/somatic, r/HSP, r/ADHD after content base exists | +| 40 | Instagram Audience | Eye mask + somatic creators; Reels-native | +| 44 | Comment Marketing | Thoughtful comments on Huberman / the partner-event-business / Tim Ferriss / wellness creators | +| 49 | Monthly Newsletters | Either Quietude-branded or sync with Sam's Sam's Substack newsletter | +| 54 | Affiliate Discovery via Backlinks | Find who links to Calm/Headspace/Brain.fm — pitch them on Quietude affiliate program | +| 58 | Newsletter Swaps | the partner-event-business, founder wellness Substacks, Alex's investor network | +| 64 | Community Sponsorship | Somatic newsletters, wellness Substacks, founder communities | +| 65 | Live Webinars | Alex + Sam hosting "Sound + the Nervous System" | +| 101 | Industry Interviews | Alex + Sam interview category experts (becomes seed of Quietude podcast) | +| 102 | Social Screenshots | Mira reflection responses (anonymized, consented) — social proof gold | +| 108 | Changelogs | Public changelog at `quietude.app/changes` — product momentum signal | +| 115 | Curation as Marketing | Curated "field recordings of the year" feature; Quietude Spaces directory | +| 135 | Support as Marketing | Surface customer support / Mira reflection moments as content | +| 138 | Podcast Tours | Alex on Huberman, the partner-event-business, Tim Ferriss, Rich Roll, Rangan Chatterjee | + +**Q3+:** + +| # | Idea | Quietude note | +|---|---|---| +| 4 | Programmatic SEO | Quietude Guides city pages once Guides program scales | +| 9 | Knowledge Base SEO | When help docs scale enough to have problem-solution coverage | +| 14 | Side Projects | Eventually a free Quietude-adjacent tool that lives outside the app | +| 15 | Engineering as Marketing | HRV interpretation guide; nervous system self-assessment; sound bath finder directory | +| 18 | Calculator Marketing | Sleep latency calculator; overstimulation index | +| 20 | Microsites | For specific GTM moments (e.g., Mira GA launch) | +| 23 | Podcast Advertising | Huberman, Tim Ferriss, Rich Roll, the partner-event-business — host-read most relevant | +| 24 | Pre-targeting Ads | Warm audiences via content before direct-response | +| 29 | Reddit Ads | r/HSP, r/ADHD, r/somatic — high ICP density, low advertiser saturation | +| 30 | Quora Ads | Intent-rich for "why meditation doesn't work" queries | +| 32 | YouTube Ads | Pre-roll on Huberman / Lex Fridman / wellness creator videos | +| 33 | Cross-Platform Retargeting | Standard layer once paid is firing | +| 35 | Community Marketing | Quietude Spaces community (Discord/Circle); host monthly drop-ins | +| 42 | Short Form Video | TikTok / Reels — somatic education + eye mask UGC | +| 55 | Influencer Whitelisting | Run ads through ambassador / Guide accounts for authenticity | +| 57 | Expert Networks | Quietude Guides program IS this — certified hosts who can market | +| 60 | Pixel Sharing | Standard once paid is firing | +| 61 | Shared Slack Channels | Partner venue Slacks (Aurora, Lumen, Stillwater) | +| 63 | Integration Marketing | Apple Health (HRV data), Oura, Whoop — co-marketing | +| 66 | Virtual Summits | Quietude participates or hosts | +| 68 | Local Meetups | Cities with high ICP density (SF, NYC, LA, Austin) | +| 69 | Meetup Sponsorship | Sponsor wellness / biohacking meetups | +| 72 | Conference Sponsorship | Industry conferences once budget unlocks | +| 75 | Fundraising PR | "Quietude raises $3M" moment when seed closes | +| 78 | Product Hunt Launch | Mira public launch moment | +| 79 | Early-Access Referrals | App GA early-access list (cross-references to Referral) | +| 81 | Early Access Pricing | App GA — early-access tier locked in for first cohort | +| 82 | Product Hunt Alternatives | BetaList, Launching Next, AlternativeTo at GA | +| 97 | Playlists as Marketing | Quietude curates Spotify playlists for somatic listening | +| 98 | Template Marketing | Free "nervous system reset" protocol PDFs | +| 100 | Promo Videos | High-quality brand films — Ed Dorsey advises, Matt Mikkelsen field audio | +| 103 | Online Courses | Alex's Sound Philosophy course; Sam's somatic methodology course | +| 107 | Podcasts | Quietude podcast — interview format with category experts and customers | +| 111 | Challenges as Marketing | "21-day nervous system reset" — tasteful, no fitness-bro tone | +| 113 | Controversy as Marketing | Meditation-vs-Regulation IS mild controversy — lean in carefully | +| 126 | YouTube Reviews | Pitch Quietude to wellness YouTubers — Huberman fan-creator tier | +| 127 | YouTube Channel | Sound design behind-the-scenes; Sam session demos | +| 129 | Review Sites | App Store reviews actively managed; Trustpilot for eye mask Shopify | +| 130 | Live Audio | Twitter Spaces / LinkedIn Audio with Alex on sound + body | +| 134 | Certifications | Quietude Guides cert IS this — Q3+ pilot | + +**Q4+ / long-game:** + +| # | Idea | Quietude note | +|---|---|---| +| 56 | Reseller Programs | Corporate wellness platforms (Modern Health, Lyra) as resellers | +| 67 | Roadshows | Quietude Experiences IS this — eye mask + listening session pop-ups in 3 cities | +| 71 | Conferences | Quietude-hosted "Sound + the Body" — long-game category-defining moment | +| 76 | Documentaries | Alex's story is documentary-grade — long game | +| 77 | Black Friday Promotions | Holiday eye mask + Premium bundle | +| 80 | New Year Promotions | New Year nervous system reset campaign | +| 84 | Giveaways | Eye mask giveaway with brand partner (Wellness Mama tier) | +| 85 | Vacation Giveaways | Quietude + retreat partner giveaway (quietude.center could be venue) | +| 87 | Powered By Marketing | "Sound system by Quietude" badge in B2B venue installs | +| 104 | Book Marketing | Sound Philosophy as a book — long-game positioning anchor | +| 105 | Annual Reports | "State of the Nervous System" — Quietude's data + industry commentary | +| 106 | End of Year Wraps | "Your nervous system year" — Spotify Wrapped equivalent | +| 110 | Awards as Marketing | Quietude founds an award for innovative biophilic acoustic design | +| 116 | Grants as Marketing | Free Quietude subscriptions for therapists, social workers, first responders | +| 119 | OOH Advertising | SF / NYC billboards if Series A budget unlocks | +| 120 | Marketing Stunts | Public sound installation could work — brand-fitting | +| 121 | Guerrilla Marketing | Sound installation in subway / airport — interesting but requires care | +| 131 | International Expansion | Finland HQ + global ICP — Q4 or post-Series A | + +**Skip / off-brand for Quietude:** + +| # | Idea | Why skip | +|---|---|---| +| 16 | Importers as Marketing | No competitor data to import (consumer wellness, not SaaS) | +| 19 | Chrome Extensions | Off-platform (mobile-first product) | +| 21 | Scanners | No obvious product fit | +| 22 | Public APIs | Not core business | +| 27 | Twitter Ads | Lower priority unless Alex's X presence grows | +| 34 | Click-to-Messenger Ads | Off-brand (no DM-driven sales pattern) | +| 41 | X Audience | Depends on Alex's bandwidth — defer unless he wants to | +| 43 | Engagement Pods | Off-brand | +| 73 | Media Acquisitions | Too capital-intensive at this stage | +| 83 | Twitter Giveaways | Off-brand voice | +| 86 | Lifetime Deals | Brand-conflict — pressures the "no pressure" voice and damages LTV math | +| 88 | Free Migrations | No competitor data to migrate | +| 89 | Contract Buyouts | Not relevant for D2C subs | +| 99 | Graphic Novel Marketing | Off-brand | +| 112 | Reality TV Marketing | Off-brand | +| 117 | Product Competitions | Not a developer product | +| 118 | Cameo Marketing | Off-brand | +| 122 | Humor Marketing | Brand voice is serious; humor would feel off | +| 123 | Open Source as Marketing | Proprietary audio library | +| 125 | App Marketplaces | Not relevant for native consumer app (no app-of-app pattern) | +| 128 | Source Platforms | G2 / Capterra are B2B-focused; D2C uses App Store reviews | +| 132 | Price Localization | Q4+ — tied to international expansion | +| 136 | Developer Relations | Not a dev product | + +### 12.2 Activation ideas (7 mapped) + +| # | Idea | Status | Quietude note | +|---|---|---|---| +| 124 | App Store Optimization | Now | Q1 priority — listing rewrite in voice (also Acquisition) | +| 90 | One-Click Registration | Now | OAuth (Apple, Google) for app signup — standard activation lift | +| 51 | Onboarding Emails | Q2 | Flow 2 — held until UI stable post-onboarding-rebuild | +| 96 | Onboarding Optimization | Q1-Q2 | The 3-variant test IS this — primary activation work | +| 47 | Founder Welcome Email | Q2 | Personal welcome from Alex or Sam early in Flow 2 | +| 48 | Dynamic Email Capture | Q2 | Smart capture on `quietude.app` — exit intent + scroll depth | +| 95 | Concierge Setup | Q3+ | High-touch onboarding for B2B venue clients + high-value subscribers | + +### 12.3 Retention ideas (8 mapped) + +| # | Idea | Status | Quietude note | +|---|---|---|---| +| 46 | Reactivation Emails | Now | Flow 4 ships in weeks 3–4 — exactly this | +| 52 | Win-back Emails | Q1 (week 11-12) | Standalone campaign on top of Flow 4 | +| 53 | Trial Reactivation | Q2 | Expired-trial recovery campaign once paywall is firing | +| 45 | Mistake Email Marketing | Q2 | When something genuinely goes wrong, send "oops" — drives engagement | +| 50 | Inbox Placement | Q1 | Subdomain silo strategy (`mail.quietude.app` / `commerce.quietude.app`) addresses this | +| 91 | In-App Upsells | Q2 | Premium upsell points within app (also Revenue) | +| 94 | Offboarding Flows | Q2 | Optimize cancellation flow to retain or learn — feeds churn intel | +| 135 | Support as Marketing | Q2 | Customer support stories surface as content (also Acquisition) | + +### 12.4 Referral ideas (5 mapped) + +| # | Idea | Status | Quietude note | +|---|---|---|---| +| 62 | Affiliate Program | Now | Ambassador program v1 is exactly this — launched with the 5 inbound | +| 137 | Two-Sided Referrals | Q2 | Reward both referrer and referred — share-after-shift moment + gifting flow | +| 92 | Newsletter Referrals | Q3 | If we launch a newsletter, Sparkloop-style referral mechanic | +| 93 | Viral Loops | Q3 | Built-in share mechanics post-Mira reflection | +| 79 | Early-Access Referrals | Q3 | App GA early-access list referrals (cross-references to Acquisition) | + +### 12.5 Revenue ideas (3 mapped — most ideas serve top-of-funnel) + +| # | Idea | Status | Quietude note | +|---|---|---|---| +| 91 | In-App Upsells | Q2 | Premium upgrade prompts; eye mask cross-sell from app (also Retention) | +| 132 | Price Localization | Q4+ | Adjust pricing for local purchasing power once international | +| 86 | Lifetime Deals | Skip | Brand-conflict — see Acquisition skip list | + +### 12.6 Cross-cutting / brand foundation ideas + +| # | Idea | Status | Quietude note | +|---|---|---|---| +| 139 | Customer Language | Now | Mira reflection responses + 7 Ds language = the source-of-truth for customer language across all copy | +| 114 | Moneyball Marketing | Ongoing | Find undervalued channels at every stage — methodology, not a single tactic | + +### Idea-bank summary + +- **88 ideas applicable to Acquisition** (the dominant stage at Quietude's current stage — makes sense, Quietude's product converts well; the bottleneck is the top of funnel) +- **7 ideas to Activation, 8 to Retention** (smaller because these stages are about depth, not breadth — execute the right few well rather than running a wide tactic menu) +- **5 ideas to Referral** (program-driven, not tactic-driven) +- **3 ideas to Revenue** (most revenue work is pricing strategy, not tactical tricks) +- **2 cross-cutting** +- **23 ideas skipped for brand / business-model fit** — Quietude's category positioning constrains what's available + +**What this proves:** the plan is roughly 30% of the available tactical surface area, not 100%. That's appropriate at this stage and budget. As capacity unlocks across Q2 → Q3 → Series A, the cross-reference becomes the inventory we pull from to scale activity without losing strategic coherence. + +--- + +## 13. Measurement, RACI, open decisions, appendix + +### Measurement — the metrics that matter + +**North star (proposed):** +**Blended-LTV-to-blended-CAC ratio per acquired user**, where: +- Blended LTV combines app subscription revenue + hardware revenue (eye mask + speakers) + any cross-sells, per cohort +- Blended CAC combines paid spend + content production cost + ambassador commissions + lifecycle tool spend, per cohort + +This captures the business model: the eye mask wedge isn't free if it costs $X to make, and the app sub isn't expensive to acquire if a Bryan-Johnson-style PR moment is paying for itself. + +If a single metric is preferred for team-level focus, fall back to: **monthly new D2C subscribers from non-paid channels.** This isolates the compound channels the long-game strategy depends on. + +**Leading indicators by AARRR stage:** + +| Stage | Leading indicators | +|---|---| +| Acquisition | Organic visits/mo (overall + per pillar), App Store visit-to-install rate, Alex's LinkedIn engagement → email subscribers, event-to-app conversion rate, ambassador-attributed visits | +| Activation | Day 1 / Day 7 / Day 35 → paid conversion, onboarding session-completion rate, first session Mira reflection completion | +| Retention | 30 / 60 / 90-day retention, monthly churn, Flow 4 reactivation rate, hardware → app activation rate | +| Referral | Ambassador-attributed new subs (Dub), share-after-shift rate, Guides pilot referrals (when live) | +| Revenue | Blended MRR, ARPU, annual plan adoption %, LTV by cohort, eye mask attach rate | + +**Review cadence:** +- **Weekly:** fCMO ↔ Alex 30-min sync. AARRR scoreboard + this week's ships. +- **Monthly:** Full metrics review (extended sync, Sam included). Compare against quarterly KPI targets. +- **Quarterly:** Plan recalibration. What's working, what's not, what funding-stage moves we're triggering. + +### RACI + +| Domain | Responsible | Accountable | Consulted | Informed | +|---|---|---|---|---| +| Strategic plan (this doc) | Casey | Alex | Sam, Emily | Team | +| Brand voice | Alex + Sam | Alex + Sam | Casey | Team | +| App + onboarding implementation | Devon | Alex | Casey | Team | +| Lifecycle flows (Customer.io) | Casey | Alex | Sam (copy QA) | Team | +| SEO content | Casey | Casey | Sam, Alex | Team | +| App Store copy | Casey | Alex | Sam | Team | +| Alex's LinkedIn cadence | Alex | Alex | Casey (orchestration) | Team | +| Events | Alex + Sam | Alex | Casey (instrumentation only) | Team | +| Ambassador program | Casey | Casey | Alex | Team | +| B2B sales | Alex | Alex | Casey (case studies) | Team | +| Pricing | Alex | Alex | Casey | Sam | +| Investor narrative | Alex | Alex | Casey, Sam | Team | +| Quietude Guides program (Q3+) | TBD (likely future hire) | Alex + Sam | Casey | Team | +| Future marketing hire (Q3) | Casey | Alex | Sam | Team | + +### Open decisions blocking the plan + +Most blocking, ranked by impact: + +1. **Canonical domain.** SEO data + this plan recommend `quietude.app`. Needs exec sign-off + 301 execution plan. *Blocks: domain consolidation, SEO foundation, email sender migration.* +2. **Retention metric definition.** Reconcile 38% 12-month retention claim vs. 29% monthly App Store churn. *Blocks: clean dashboards, investor narrative coherence, lifecycle test reads.* +3. **Mira post-session reflection scope.** Does Mira currently support this, or is it new build? *Blocks: Onboarding Variants 1 and 2 (which depend on Mira reflection moment), retention compound moves.* +4. **App UI stability timeline.** When does the headphone-gate-removal + onboarding-rebuild allow Flow 2 to ship without rework risk? *Blocks: Flow 2, full lifecycle, paid acquisition timing.* +5. **GA launch timeline.** When does the throttled beta become GA? *Blocks: paid acquisition scale, Q3 GTM planning.* +6. **Pricing structure ground truth.** What's actually charged today? *Blocks: pricing audit conclusions, annual-plan default test, blended LTV math.* +7. **First marketing hire scope.** Lifecycle + content owner, or something else? When does the JD get written? *Blocks: Q3 capacity plan, succession of fCMO operational work.* +8. **Ambassador commission structure.** $/sub, rev-share, hybrid? *Blocks: ambassador program launch, attribution dashboards.* + +### Appendix — deep-dive links + +**Published to the team via `Quietude-Inc/quietude-context` GitHub repo:** +- `marketing/seo/plan.md` — Full 90-day SEO + keyword research plan +- `marketing/seo/keyword-shortlist.md` — Tier 1 keyword shortlist +- `marketing/seo/raw/` — Ahrefs + DataForSEO API pulls +- `marketing/onboarding-recommendation.md` — Three-variant onboarding test plan + +**Founder-authored strategic context** (in Quietude's internal knowledge base): +- Seed deck — Investor narrative +- Sound Philosophy — Alex's technical/philosophical working doc +- Marketing OS — Brand voice, content rhythm, visual system +- ICP doc — D2C audience profile +- Meditation-vs-Regulation note (2026-05-19) — Central content pillar +- Kickoff call transcript (2026-05-18) — Decisions + open questions +- App Store copy snapshot + voice-gap analysis +- App Store metrics snapshot (2026-05-16) +- Customer.io lifecycle flows inventory + +--- + +*Marketing Plan v1. Prepared by Casey Reed (fCMO), 2026-05-27. For team review and discussion.* diff --git a/.agents/skills/marketing-plan/references/funding-stage-unlocks.md b/.agents/skills/marketing-plan/references/funding-stage-unlocks.md new file mode 100644 index 0000000..18a591e --- /dev/null +++ b/.agents/skills/marketing-plan/references/funding-stage-unlocks.md @@ -0,0 +1,230 @@ +# Funding-Stage Capability Unlocks + +Every marketing plan must include explicit "what changes when funding closes / when budget unlocks" reasoning. This makes the plan investor-friendly and operationally honest. + +This doc defines the standard tiers. Use them as anchors, adjust for client category and unit economics. + +**Related docs:** +- `budget-planning.md` — two scientific methods for setting the actual budget number (Revenue-Based 5–40%, or Goal-Based reverse-engineered from the revenue target), CAC calculation, experimental buffer +- `growth-patterns.md` — the real shape of SaaS growth by phase ($0–10K / $10K–100K / $100K–1M+), linear vs step-function, S-curve layering +- `team-and-agency-model.md` — what each tier means for team composition, the first marketing hire, and the in-house vs outsource ratio + +## Why funding stage matters in a marketing plan + +Most marketing plans are written as if budget is unconstrained. That's a failure mode for early-stage clients — it produces aspirational lists rather than executable roadmaps. + +The fix: tie every recommendation to a budget tier. The plan stays honest about what's executable today, and the team / investors see explicitly what each round of capital unlocks. + +This also helps the founder mid-raise: showing what the round buys is investor-narrative material. + +## Standard tiers + +### Tier 1 — Pre-seed / bootstrapped + +**Budget profile:** +- Paid acquisition: $0 +- Tooling stack: ~$500–2,000/mo (Customer.io / similar, GA4 free, Stripe fees, Notion, GitHub, basic SaaS) +- Retainers / fCMO: variable (fractional only) +- Headcount: founders + maybe 1–2 multipurpose hires + +**Marketing capability:** +- Organic only — SEO, content, App Store organic, founder-led social, events, WOM, ambassador (if inbound exists) +- Limited PR (founder-led pitches, HARO responses) +- No paid layer + +**Channels live:** Organic SEO, content, App Store, LinkedIn / X / founder-led social, events, WOM, ambassador + +**What a fCMO does:** Strategy + lifecycle + content + SEO + onboarding + community + ambassador. Hands-on with skill library + MCPs doing the operational lift. + +**Hires unlocked:** None. The plan must execute with current team + agentic stack. + +### Tier 2 — Seed close + +**Budget profile:** +- Paid acquisition: $5–15K/mo test budget +- Tooling stack: $1,000–3,000/mo (paid ad accounts, Mixpanel / Amplitude if needed, additional SaaS) +- Retainers / fCMO: continued +- Headcount: + first dedicated marketing hire + +**Marketing capability:** +- Above + paid acquisition pilot (Apple Search Ads, Meta, LinkedIn) +- Begin PR push with the funding announcement +- First Product Hunt / GA-style launch + +**Channels live:** All Tier 1 + paid acquisition (small) + active PR + +**Hires unlocked:** +- Lifecycle + content marketing manager (one person doing both, or split) +- OR dedicated growth / performance marketing manager (if heavy paid focus) + +**fCMO shifts:** From hands-on to strategy + ops oversight. Hires the dedicated marketer. Sets up the channel playbooks before paid scales. + +### Tier 3 — Seed deployment + +**Budget profile:** +- Paid acquisition: $20–50K/mo +- Tooling stack: $2,000–5,000/mo +- Retainers / fCMO: continued +- Headcount: + designer (potentially fractional) + +**Marketing capability:** +- Paid scaling across 2–3 channels +- Brand-aligned creative production (designer enables velocity) +- Lifecycle programs fully live across all flows +- First true content production cadence (weekly cadence sustainable) + +**Channels live:** All previous + paid scaling + structured launch motion + +**Hires unlocked:** +- Designer (brand, creative, web) +- Second marketing manager (if first was lifecycle, second is content; or vice versa) +- Potentially fractional PR if budget allows + +**fCMO shifts:** Hands off lifecycle to dedicated owner. Moves to GTM strategy + channel mix optimization + growth analytics. + +### Tier 4 — Series A + +**Budget profile:** +- Paid acquisition: $50–150K/mo +- Tooling stack: $5,000–10,000/mo +- Retainers / fCMO: may transition to permanent CMO +- Headcount: full marketing team forming + +**Marketing capability:** +- Paid scales aggressively across all proven channels +- Brand campaigns become possible +- International consideration begins +- B2B vertical expansion (if applicable) +- Sophisticated CAC/LTV math + attribution + +**Channels live:** Full marketing surface area + +**Hires unlocked:** +- Performance marketing lead +- Content lead +- Designer (permanent) +- Potentially: PR firm, paid agency, international growth manager +- Series A often the moment the fCMO transitions out or transitions to advisor + +**fCMO shifts:** Often the moment of transition — to permanent CMO hire, fCMO becomes advisor. + +### Tier 5 — Series B+ + +**Budget profile:** +- Paid acquisition: $150K+/mo +- Tooling stack: $10,000–25,000/mo +- Headcount: 10+ marketing org + +**Marketing capability:** +- Brand campaigns at industry scale +- PR firm partnerships +- Acquisitions as marketing (acquiring newsletters / podcasts in space) +- Conference sponsorship at category level +- Sponsorships at brand level + +**Channels live:** Everything available + +**Hires unlocked:** +- VP Marketing or CMO +- Brand director +- Growth / performance team (3–5 people) +- Content team (3–5 people) +- Designers (2–3) +- PR director or agency partnership +- International marketing leads (region-specific) + +**fCMO involvement:** Typically out of the company by this point — the original fCMO might still be an advisor. + +## How to apply tier logic in a plan + +### Section 3 (Current state) +- State the client's current tier explicitly: "Current tier: pre-seed / bootstrapped per Tier 1." + +### Section 4–8 (AARRR sections) +- Note tier-dependent moves: "Paid layer (Tier 2 unlock — held until seed close)" +- For Tier 1 plans: every move must be executable at current budget tier OR explicitly flagged as future +- For Tier 2+ plans: moves can assume the tier's capability + +### Section 10 (12-month outlook) +- Each quarter names the tier that's active: "Q2 — Months 4–6 (post seed close). Funding state: Tier 2." +- Tier transitions trigger plan recalibration moments + +### Section 11 (Marketing operations stack) +- Use the table in `references/ops-stack-mapping.md` capability-unlocks section +- Make it client-specific: "Today (Tier 1): {client's current capability}. After seed close (Tier 2): + {what changes}." + +## Adjustments by client category + +The standard tiers assume a typical software / SaaS / consumer app. Adjust for category: + +### Consumer apps (D2C) +- Higher paid acquisition floor — apps need to test CAC against download cost benchmarks (~$2-10 install + 5-15% trial conversion benchmark) +- Tier 2 starts effectively at $10–20K/mo paid (otherwise can't get statistically meaningful reads at app-install CPMs) + +### B2B SaaS +- Lower paid acquisition floor — LinkedIn / Google Ads can produce signal at $3–5K/mo +- More weight on content + sales enablement budget +- Often add a sales hire before a content hire + +### Hybrid hardware + software +- Hardware revenue can self-fund some marketing (the eye-mask wedge pattern) +- Paid budget should track blended CAC across hardware sales + app subs +- Shopify-side optimization is a Tier 1 priority (cheap leverage) + +### Deep-tech / scientific / clinical +- PR + investor marketing carries more weight than paid +- Conference speaking + academic publishing > Meta ads +- Tier 1 can produce significant traction without paid + +### Marketplace / two-sided +- Each side has its own AARRR funnel — budget splits accordingly +- Supply-side acquisition often dominates early; demand-side dominates after liquidity + +### Open source / developer tools +- DevRel + community + content > paid +- GitHub stars / npm installs are the activation event +- Paid layer often delayed until Series A + +## Tier 1 budget detail (most common starting point) + +For Tier 1 clients, the marketing budget breakdown typically looks like: + +| Line | Typical monthly | +|---|---| +| Customer.io / lifecycle ESP | $100–500 | +| App Store Connect / Google Play | $25 + 30% rev share (Apple/Google take) | +| Stripe | 2.9% + 30¢ per transaction | +| GA4 | Free | +| Notion | $0–100 | +| GitHub | $0–50 | +| Shopify (if hardware) | $39–100 | +| Ahrefs (or similar SEO tool) | $129–399 | +| Typefully (if social cadence) | $13–39 | +| Dub.co (if ambassador tracking) | $0–39 | +| Misc SaaS | $200–500 | +| **Tooling total** | **~$500–1,700/mo** | +| Paid acquisition | $0 | +| fCMO retainer | Variable | + +For the plan, this becomes: "Current monthly marketing budget: $X (tooling only, no paid)." + +## When to surface tier limits to the founder + +If a founder asks for moves that require a future tier: +- Name the requirement: "This is a Tier 2 move (requires $10K+/mo paid budget). Will unlock after seed close per the 12-month outlook in §10." +- Don't refuse — frame the timing + +If a founder underestimates what's needed: +- Be honest: "To scale paid acquisition meaningfully, expect Tier 2 budget. Tier 1 can validate organic; Tier 2 validates paid." + +If a founder is over-funded for their stage: +- Don't pad budget to match. Recommend the right work for the funnel state, return excess capacity, suggest investment in compounding rather than scaling. + +## Tier-skip cases (worth flagging) + +Some companies skip tiers: +- **Notable founder** raising larger-than-typical rounds — can jump from Tier 1 to Tier 3 directly +- **Hardware company** with PR moment — can deploy at Tier 3 levels with the right product moment (e.g., a high-profile longevity-influencer endorsement) +- **B2B SaaS post-LOI** with named enterprise contracts — can fund pilot deployment from contract value + +If the client is in a tier-skip situation, name it explicitly in the plan rather than forcing them into the standard ladder. diff --git a/.agents/skills/marketing-plan/references/growth-patterns.md b/.agents/skills/marketing-plan/references/growth-patterns.md new file mode 100644 index 0000000..424352f --- /dev/null +++ b/.agents/skills/marketing-plan/references/growth-patterns.md @@ -0,0 +1,148 @@ +# Growth Patterns — The Real Shape of SaaS Growth + +The 12-month outlook in every plan (Section 10) describes a trajectory. This doc names the shape of that trajectory honestly — what real SaaS growth looks like, when to expect plateaus, and how to plan for the next leg of growth before the current one stalls. + +Excerpted and adapted from *Founding Marketing* by Corey Haines. + +## The long, slow SaaS ramp of death + +Pitch decks show hockey sticks. Real growth shows a series of S-curves — each representing a distinct phase followed by a plateau that tests resolve and creativity. + +### Phase 1 — $0 → $10K ARR (the grueling phase) + +The hardest milestone. Every customer is a hard-won victory. Typical time: **6–12 months.** Most companies pivot the product multiple times during this phase. + +What it requires: +- Runway long enough to keep experimenting until something clicks +- A financial cushion or additional income sources (often the difference between success and shutdown) +- Tolerance for ambiguity — the product positioning, the pricing, and the channel can all still be wrong at this stage + +### Phase 2 — $10K → $100K ARR (the treacherous middle) + +The middle ground that kills most promising startups. The average company reaches ~$40K ARR in year one. The danger: enough revenue to prove the concept, not enough to support a team. + +The threshold to watch for: **$8–10K MRR.** That's when founders can typically go full-time on the business without other income sources. Until then, careful cash management or side income carries the company through. + +Companies that flame out in Phase 2 usually run out of runway just as things start working. + +### Phase 3 — $100K → $1M ARR (the acceleration phase) + +Where things get interesting. Typical time: nearly 2 years total to reach $1M. But there's an acceleration pattern: **once across $100K, companies often double from $100K → $200K in one-third the time it took to reach the first $100K.** + +Why: critical mass kicks in. Word-of-mouth starts working. Early customers become your best salespeople. The product has proven itself, and growth becomes more about execution than experimentation. + +This is the phase where the marketing plan's 90-day roadmap (Section 9) starts compounding instead of just covering ground. + +## Two real growth patterns (and the exponential myth) + +The myth: successful SaaS companies grow exponentially, doubling revenue month over month like clockwork. + +The reality: two distinct patterns, often combining at scale to *look* exponential when zoomed out. + +### Pattern 1 — Linear growth + +Build a predictable revenue machine. Find a channel that works (content, partnerships, paid, outbound) and steadily scale it. Some companies reliably add **$10K MRR per month** through a well-oiled marketing engine. + +Less sexy than exponential. Far more sustainable. Crucially, **plannable**: when you know what you can count on adding each month, hiring decisions, product roadmap, and expansion planning all become tractable. + +### Pattern 2 — Step-function growth + +Periods of plateau followed by sudden jumps. Jumps aren't random — they're triggered by specific events: +- Breaking into a new market segment (e.g., enterprise after starting SMB) +- Launching a major product expansion (new feature line, new tier) +- Cracking a new marketing channel that compounds + +Example: one founder saw revenue triple in two months after launching enterprise features — following six months of flat growth. + +Key insight for the plan: **each step requires deliberate action and investment.** Steps don't happen by waiting. While standing on the current step, you have to be actively building the next one. + +### How they combine + +Zoom out far enough and a series of linear phases + step functions can look exponential. That's where the myth comes from. Understanding it's actually a series of plannable shapes changes how you build the plan: + +- Don't chase the myth of doubling every month +- Build sustainable linear systems (Sections 4–8 AARRR moves) +- Plan deliberate step functions (Section 10 12-month milestones) + +## Layering growth curves — Channel × Product × Market + +The secret to sustained growth isn't one perfect channel. It's orchestrating multiple S-curves that work together. Three S-curves to track: + +### Channel S-curves + +Every marketing channel has its own lifecycle: +- **SEO** — 6–12 months to mature; once it does, steady leads for years. Marathon runner. +- **Paid ads** — quick wins; diminishing returns as you scale. +- **Content marketing** — slow to start, compounds beautifully over time. +- **Partnerships / co-marketing** — episodic; high yield when the right partner aligns. +- **Outbound** — predictable when calibrated; CAC-heavy and plateaus at team capacity. +- **PR** — spike-driven; sustains awareness rather than direct conversion. + +**The rule:** start the next channel before the current one plateaus. Riding one channel to its ceiling before investing in the next produces a multi-month growth plateau that takes more effort to break out of than it would have taken to start the next channel earlier. + +In the plan: Section 4 (Acquisition) names current channels, planned channels, and skipped channels. The 12-month roadmap (Section 10) sequences when the next channel investment begins. + +### Product S-curves + +Your core product naturally hits a growth ceiling as you saturate the initial market. Pushing harder on the same features doesn't break through. What does: + +- Adding features that target new use cases +- Extending the product line to serve adjacent needs +- Expanding into new market segments (e.g., team collaboration added to a single-user tool — opens a new market) + +In the plan: Sections 5 (Activation) and 8 (Revenue) name where the product needs to grow to unlock the next growth tier. + +### Market S-curves + +Every market segment has its own growth ceiling. Time the expansion into the next segment while the current segment is still showing strong growth. Common patterns: + +- SMB → mid-market → enterprise +- Single vertical → adjacent verticals +- Domestic → international + +Waiting until a segment is saturated makes the transition harder. + +In the plan: Section 2 (Strategic frame) names current segment + future segments. Section 10 (12-month outlook) sequences when expansion moves begin. + +### The orchestration + +The real magic: while SEO is maturing, you're using paid for quick wins. As those channels mature, you're developing product features that unlock enterprise. Meanwhile, the groundwork for international expansion is being laid for when domestic saturates. + +This is the operational thesis behind the AARRR mapping (Sections 4–8) and the 12-month outlook (Section 10): each section is a curve, and the plan sequences them so the next curve is ramping while the current one is still growing. + +## The 3-3-2-2-2 VC growth path + +For companies that have crossed $1M ARR and raised institutional capital, the VC benchmark is: + +| Year | Multiple | Cumulative ARR (from $1M) | +|---|---|---| +| Year 0 | — | $1M | +| Year +1 | 3× | $3M | +| Year +2 | 3× | $9M | +| Year +3 | 2× | $18M | +| Year +4 | 2× | $36M | +| Year +5 | 2× | $72M | +| Year +6 | 2× | $144M | +| Year +7 | 2× | $288M | + +Most companies don't hit this. Useful regardless — anchoring the 12-month outlook against this benchmark forces the plan to either (a) match it and show how, or (b) explicitly defend choosing a slower trajectory. + +For non-VC-backed (bootstrapped, founder-funded, profit-focused) companies, this curve doesn't apply. Use linear or step-function targeting instead. + +## How this informs the plan + +| Section | What to include | +|---|---| +| **3 (Current state)** | Where the company is on each S-curve (channel maturity, product maturity, market saturation). Name the current phase ($0–10K / $10K–100K / $100K–1M / $1M+). | +| **4 (Acquisition)** | Current channels + their position on the S-curve (early / mature / plateauing). Next channel investment with rationale. | +| **5–8 (AARRR)** | Each section names the binding constraint at the current phase. For Phase 2 companies, Activation is usually the leverage point. For Phase 3, Retention + Referral compound the existing growth. | +| **9 (90-day roadmap)** | Linear-pattern moves dominate (predictable additions). Step-function setups (the build-up to a launch, an enterprise tier, a new market segment) live here. | +| **10 (12-month outlook)** | Sequence channel S-curves, product S-curves, market S-curves. If VC-backed Series A+, anchor against 3-3-2-2-2. If not, name the linear or step-function targets. | +| **13 (Measurement)** | The north-star metric reflects the current phase (Phase 1 is usually pure new-signup; Phase 3 is usually expansion ARR or NRR). | + +## Operational guidance for the planner + +- **Don't promise exponential.** If the plan implies doubling every month, the founder will use it against you in 90 days. Linear + step-function is honest. +- **Name the binding constraint.** Phase 1 binding constraint is finding any channel that works. Phase 2 is funding the team. Phase 3 is breaking the ceiling on whichever channel got you here. +- **Plateaus aren't failures.** They're the moment between two S-curves. The plan should anticipate them and stage the next move. +- **Don't conflate "growth" with "growth rate."** A company adding $20K MRR each month for 24 months has built a remarkable machine. The fact that the *percentage* growth rate declines as the base grows is arithmetic, not failure. diff --git a/.agents/skills/marketing-plan/references/idea-cross-reference.md b/.agents/skills/marketing-plan/references/idea-cross-reference.md new file mode 100644 index 0000000..640b323 --- /dev/null +++ b/.agents/skills/marketing-plan/references/idea-cross-reference.md @@ -0,0 +1,265 @@ +# Idea Cross-Reference — 139 Marketing Ideas Mapped to AARRR + +The `marketing-ideas` skill catalogs 139 proven marketing tactics. This doc is the source-of-truth mapping: every idea assigned to a primary AARRR stage, with notes for when it's typically active and what category constraints apply. + +The plan's Section 12 ("Tactical idea bank") uses this mapping as the base, then layers client-specific filters: brand voice rules might skip some ideas; funding stage might shift Q-status; client category might rule out others. + +## How to read this doc + +- **139 unique ideas, 144 entries.** Five ideas cross-cut multiple AARRR stages and appear under each stage they serve (#79 Early-Access Referrals, #86 Lifetime Deals, #91 In-App Upsells, #114 Moneyball Marketing, #117 Product Competitions). Each duplicate row carries a cross-cut note. +- **"Entries" counts rows; idea IDs are unique.** Section header counts reflect rows in this doc, not unique ideas from `marketing-ideas`. +- **Numbers correspond exactly to the `marketing-ideas` skill ordering.** If `marketing-ideas` reorders or expands, update this doc. + +## AARRR assignment for all 139 ideas + +### Acquisition (116 entries) + +These ideas primarily serve top-of-funnel awareness, traffic, and lead generation. + +| # | Idea | Category | Typical stage available | +|---|---|---|---| +| 1 | Easy Keyword Ranking | Content & SEO | Now (any stage) | +| 2 | SEO Audit | Content & SEO | Now | +| 3 | Glossary Marketing | Content & SEO | Q2+ | +| 4 | Programmatic SEO | Content & SEO | Q3+ (needs data + template system) | +| 5 | Content Repurposing | Content & SEO | Now (immediate leverage) | +| 6 | Proprietary Data Content | Content & SEO | Now (if data exists) | +| 7 | Internal Linking | Content & SEO | Now | +| 8 | Content Refreshing | Content & SEO | Q2+ (after content base exists) | +| 9 | Knowledge Base SEO | Content & SEO | Q3+ (after help docs exist) | +| 10 | Parasite SEO | Content & SEO | Now | +| 11 | Competitor Comparison Pages | Competitor | Q2+ | +| 12 | Marketing Jiu-Jitsu | Competitor | Now | +| 13 | Competitive Ad Research | Competitor | Pre-paid | +| 14 | Side Projects | Free Tools | Q3+ | +| 15 | Engineering as Marketing | Free Tools | Q3+ | +| 16 | Importers as Marketing | Free Tools | SaaS-specific | +| 17 | Quiz Marketing | Free Tools | Q2+ | +| 18 | Calculator Marketing | Free Tools | Q3+ | +| 19 | Chrome Extensions | Free Tools | Browser-relevant only | +| 20 | Microsites | Free Tools | Q3+ | +| 21 | Scanners | Free Tools | Specific products only | +| 22 | Public APIs | Free Tools | Developer/dev tool products | +| 23 | Podcast Advertising | Paid Ads | Post-budget | +| 24 | Pre-targeting Ads | Paid Ads | Post-budget | +| 25 | Facebook Ads | Paid Ads | Post-budget | +| 26 | Instagram Ads | Paid Ads | Post-budget | +| 27 | Twitter Ads | Paid Ads | Post-budget | +| 28 | LinkedIn Ads | Paid Ads | Post-budget (B2B-strong) | +| 29 | Reddit Ads | Paid Ads | Post-budget | +| 30 | Quora Ads | Paid Ads | Post-budget | +| 31 | Google Ads | Paid Ads | Post-budget | +| 32 | YouTube Ads | Paid Ads | Post-budget | +| 33 | Cross-Platform Retargeting | Paid Ads | Post-paid-firing | +| 34 | Click-to-Messenger Ads | Paid Ads | Niche use cases | +| 35 | Community Marketing | Social & Community | Q3+ | +| 36 | Quora Marketing | Social & Community | Now | +| 37 | Reddit Keyword Research | Social & Community | Now | +| 38 | Reddit Marketing | Social & Community | Q2+ | +| 39 | LinkedIn Audience | Social & Community | Now (B2B + founders) | +| 40 | Instagram Audience | Social & Community | Q2+ | +| 41 | X Audience | Social & Community | Depends on founder bandwidth | +| 42 | Short Form Video | Social & Community | Q3+ | +| 43 | Engagement Pods | Social & Community | Generally off-brand | +| 44 | Comment Marketing | Social & Community | Q2+ | +| 49 | Monthly Newsletters | Email | Q2+ (Acquisition use: subscriber capture) | +| 54 | Affiliate Discovery via Backlinks | Partnerships | Q2+ | +| 55 | Influencer Whitelisting | Partnerships | Post-paid-budget | +| 56 | Reseller Programs | Partnerships | Q4+ | +| 57 | Expert Networks | Partnerships | Q3+ | +| 58 | Newsletter Swaps | Partnerships | Q2+ | +| 59 | Article Quotes (HARO) | Partnerships | Now | +| 60 | Pixel Sharing | Partnerships | Post-paid | +| 61 | Shared Slack Channels | Partnerships | Q3+ | +| 63 | Integration Marketing | Partnerships | Q3+ | +| 64 | Community Sponsorship | Partnerships | Q2+ | +| 65 | Live Webinars | Events | Q2+ | +| 66 | Virtual Summits | Events | Q3+ | +| 67 | Roadshows | Events | Q4+ | +| 68 | Local Meetups | Events | Q3+ | +| 69 | Meetup Sponsorship | Events | Q3+ | +| 70 | Conference Speaking | Events | Now (if founder is speakable) | +| 71 | Conferences (own-hosted) | Events | Q4+ | +| 72 | Conference Sponsorship | Events | Q3+ | +| 73 | Media Acquisitions | PR & Media | Series A+ | +| 74 | Press Coverage | PR & Media | Now (if newsworthy) | +| 75 | Fundraising PR | PR & Media | When fund closes | +| 76 | Documentaries | PR & Media | Q4+ | +| 77 | Black Friday Promotions | Launches | Q4 (seasonal) | +| 78 | Product Hunt Launch | Launches | At GA or major feature | +| 79 | Early-Access Referrals | Launches | Pre-launch or GA | +| 80 | New Year Promotions | Launches | Q1 (seasonal) | +| 81 | Early Access Pricing | Launches | GA | +| 82 | Product Hunt Alternatives | Launches | Same as PH | +| 83 | Twitter Giveaways | Launches | Generally off-brand | +| 84 | Giveaways | Launches | Q3+ | +| 85 | Vacation Giveaways | Launches | Q4+ (seasonal) | +| 86 | Lifetime Deals | Launches | Generally off-brand (damages LTV math) | +| 87 | Powered By Marketing | Product-Led | Q4+ | +| 88 | Free Migrations | Product-Led | SaaS-specific | +| 89 | Contract Buyouts | Product-Led | B2B SaaS only | +| 97 | Playlists as Marketing | Content Formats | Q3+ | +| 98 | Template Marketing | Content Formats | Q3+ | +| 99 | Graphic Novel Marketing | Content Formats | Generally off-brand | +| 100 | Promo Videos | Content Formats | Q3+ | +| 101 | Industry Interviews | Content Formats | Q2+ | +| 102 | Social Screenshots | Content Formats | Q2+ | +| 103 | Online Courses | Content Formats | Q3+ | +| 104 | Book Marketing | Content Formats | Q4+ | +| 105 | Annual Reports | Content Formats | Q4+ | +| 106 | End of Year Wraps | Content Formats | Q4 (seasonal) | +| 107 | Podcasts (own-hosted) | Content Formats | Q3+ | +| 108 | Changelogs | Content Formats | Q2+ | +| 109 | Public Demos | Content Formats | Now | +| 110 | Awards as Marketing | Unconventional | Q4+ | +| 111 | Challenges as Marketing | Unconventional | Q3+ | +| 112 | Reality TV Marketing | Unconventional | Generally off-brand | +| 113 | Controversy as Marketing | Unconventional | Brand-dependent | +| 114 | Moneyball Marketing | Unconventional | Ongoing methodology | +| 115 | Curation as Marketing | Unconventional | Q2+ | +| 116 | Grants as Marketing | Unconventional | Q4+ | +| 117 | Product Competitions | Unconventional | Developer-specific | +| 118 | Cameo Marketing | Unconventional | Generally off-brand | +| 119 | OOH Advertising | Unconventional | Series A+ | +| 120 | Marketing Stunts | Unconventional | Brand-dependent | +| 121 | Guerrilla Marketing | Unconventional | Brand-dependent | +| 122 | Humor Marketing | Unconventional | Brand-dependent | +| 123 | Open Source as Marketing | Platforms | Developer products | +| 125 | App Marketplaces | Platforms | Platform-specific | +| 126 | YouTube Reviews | Platforms | Q3+ | +| 127 | YouTube Channel | Platforms | Q3+ | +| 128 | Source Platforms | Platforms | B2B SaaS only | +| 129 | Review Sites | Platforms | Now | +| 130 | Live Audio | Platforms | Q3+ | +| 131 | International Expansion | International | Q4+ | +| 133 | Investor Marketing | Developer/etc | Now (when raising) | +| 138 | Podcast Tours | Audience-Specific | Q2+ | + +### Activation (8 entries) + +| # | Idea | Category | Typical stage available | +|---|---|---|---| +| 47 | Founder Welcome Email | Email | Q2+ (Activation use) | +| 48 | Dynamic Email Capture | Email | Q2+ | +| 51 | Onboarding Emails | Email | When UI is stable | +| 90 | One-Click Registration | Product-Led | Now | +| 91 | In-App Upsells | Product-Led | Q2+ (cross-cuts Revenue) | +| 95 | Concierge Setup | Product-Led | Q3+ (high-value users) | +| 96 | Onboarding Optimization | Product-Led | Now | +| 124 | App Store Optimization | Platforms | Now (App Store products) | + +### Retention (8 entries) + +| # | Idea | Category | Typical stage available | +|---|---|---|---| +| 45 | Mistake Email Marketing | Email | Opportunistic | +| 46 | Reactivation Emails | Email | Now | +| 50 | Inbox Placement | Email | Now (technical setup) | +| 52 | Win-back Emails | Email | Q1+ | +| 53 | Trial Reactivation | Email | Q2+ (when paywall is firing) | +| 94 | Offboarding Flows | Product-Led | Q2+ | +| 135 | Support as Marketing | Developer/etc | Q2+ | +| 134 | Certifications | Developer/etc | Q3+ (cross-cuts Referral) | + +### Referral (5 entries) + +| # | Idea | Category | Typical stage available | +|---|---|---|---| +| 62 | Affiliate Program | Partnerships | Now (when inbound exists) | +| 79 | Early-Access Referrals | Launches | Pre-launch / GA | +| 92 | Newsletter Referrals | Product-Led | Q3+ (if newsletter exists) | +| 93 | Viral Loops | Product-Led | Q3+ | +| 137 | Two-Sided Referrals | Audience-Specific | Q2+ | + +### Revenue (2 entries — most monetization is strategy not tactic) + +| # | Idea | Category | Typical stage available | +|---|---|---|---| +| 91 | In-App Upsells | Product-Led | Q2+ (cross-cuts Activation) | +| 132 | Price Localization | International | Q4+ | + +> **Skipped from Revenue:** #86 Lifetime Deals appears under Launches (Acquisition section) only. It's generally off-brand for subscription products because it damages LTV math; recommend in Section 12's Skip list with rationale, not in stage totals. + +### Cross-cutting / brand foundation (2 entries) + +| # | Idea | Category | Typical stage available | +|---|---|---|---| +| 114 | Moneyball Marketing | Unconventional | Ongoing methodology | +| 139 | Customer Language | Audience-Specific | Now (foundational) | + +### Developer-specific / dev tool products (2 entries) + +| # | Idea | Category | Use when | +|---|---|---|---| +| 117 | Product Competitions | Unconventional | Developer tool products | +| 136 | Developer Relations | Developer/etc | Developer tool products | + +## How to apply this to a specific client + +For Section 12 of the plan: + +### Step 1 — Filter for category fit + +For each idea, ask: +- Does this idea apply to the client's category? (e.g., #16 Importers only for SaaS; #19 Chrome Extensions only for browser-relevant; #136 DevRel only for dev tools) +- Skip ideas that don't apply, with a note + +### Step 2 — Filter for brand voice + +For each idea, ask: +- Does this idea conflict with the client's brand voice? +- Common conflicts: + - **Lifetime Deals (#86)** — conflicts with premium positioning + - **Twitter Giveaways (#83)** — often off-brand for serious / clinical / luxury voices + - **Humor Marketing (#122)** — off-brand for serious / clinical voices + - **Cameo Marketing (#118)** — off-brand for most voices + - **Reality TV Marketing (#112)** — off-brand for most voices + +If conflict, place in Skip list with explicit rationale. + +### Step 3 — Set timing status + +For ideas that pass filters, set status: +- **Now (Q1)** — already in 90-day plan OR can run alongside without new capacity +- **Q2** — post-bedrock-fix, post-foundation; second-quarter layer-in +- **Q3+** — post-seed-close, post-GA; expansion moves +- **Q4+** — long-game / large-investment + +Use the "Typical stage available" column as the default. Shift earlier if client has unusual capability (e.g., a celebrity founder shifts Conference Speaking #70 from "Now" to "Now and high-leverage"). + +### Step 4 — Write the client-specific note + +Every "Now / Q2 / Q3+" idea gets a one-line client-specific note. Examples: +- For idea #11 Competitor Comparison Pages: "Quietude vs. Calm / Headspace / Brain.fm / Endel / Wavepaths — high-intent SERPs" +- For idea #133 Investor Marketing: "Alex's seed raise — leverage angel backchannel for PR + intros" +- For idea #15 Engineering as Marketing: "HRV interpretation guide; nervous system self-assessment; sound bath finder directory" + +### Step 5 — Sum the bank + +After all five AARRR tables + skip list: + +```markdown +### Idea-bank summary + +- {Acquisition count} ideas applicable to Acquisition (the dominant stage at {client}'s current stage) +- {Activation count} to Activation, {Retention count} to Retention +- {Referral count} to Referral +- {Revenue count} to Revenue +- {cross-cutting count} cross-cutting +- {skipped count} ideas skipped for brand / business-model fit + +**What this proves:** the plan is roughly X% of the available tactical surface area, not 100%. {appropriate or not for the stage} — as capacity unlocks across Q2 → Q3 → Series A, the cross-reference becomes the inventory to scale activity without losing strategic coherence. +``` + +## How to maintain this doc + +If `marketing-ideas` adds new ideas (it's a living skill — the 139 may become 145 or 160 over time): +1. Read `skills/marketing-ideas/references/ideas-by-category.md` in the `marketingskills` repo +2. Assign each new idea to a primary AARRR stage using the rules above +3. Add to this doc's tables +4. Update SKILL.md's idea-count reference + +## Sources + +- `skills/marketing-ideas/SKILL.md` (in the `marketingskills` repo) +- `skills/marketing-ideas/references/ideas-by-category.md` (in the `marketingskills` repo) diff --git a/.agents/skills/marketing-plan/references/measurement-framework.md b/.agents/skills/marketing-plan/references/measurement-framework.md new file mode 100644 index 0000000..a0fe2c9 --- /dev/null +++ b/.agents/skills/marketing-plan/references/measurement-framework.md @@ -0,0 +1,213 @@ +# Measurement Framework — KPIs, North Stars, Cadence + +Every plan needs a measurement section that tells the team how to know if the plan is working. This doc is the source for Section 13's measurement subsection. + +**Related docs:** +- `growth-patterns.md` — the 3-3-2-2-2 VC growth path (3× in years 1–2, 2× in years 3–7 from $1M ARR) and which phase of SaaS growth the company is in ($0–10K / $10K–100K / $100K–1M+) +- `budget-planning.md` — CAC calculation (blended, not paid-only) and the forecasting reality check (forecasts under $100M ARR are educated guesses, not precise predictions) + +## The north-star principle + +A north star is one metric that captures the business-model thesis at the highest level. It should: +- Be derivable from the funnel + revenue model +- Move slowly enough to be a strategic compass (not whipsawed by weekly noise) +- Trade off correctly against other metrics — improving the north star should generally improve the business + +Don't default to "ARR" or "MRR" alone. Those are outcomes, not norths. Pick something that captures the business model. + +## North-star patterns by business model + +### B2B SaaS (subscription) +- **Net Revenue Retention (NRR)** — keeps existing customers + expansion in focus +- Alternative: "Logo retention × expansion ARR" +- Why: ARR alone hides churn / lets gross-add growth mask product fit problems + +### D2C consumer app (subscription) +- **Blended LTV / blended CAC** — keeps unit economics honest as paid layer scales +- Alternative: "Day-35 paid users from cohort × LTV" +- Why: monthly subscription metrics are volatile; cohort × LTV smooths it + +### Hybrid hardware + software (e.g., Quietude) +- **Blended LTV / blended CAC across hardware + software** — captures the wedge thesis +- Alternative: "Hardware-buyers-to-subscriber conversion × blended margin" +- Why: hardware revenue isn't free (cost to make); subscription revenue isn't expensive to acquire if hardware funds it + +### Marketplace (two-sided) +- **Liquidity ratio × take-rate** — captures both sides + monetization +- Alternative: "Monthly transacting users × take-rate × repeat frequency" +- Why: GMV alone doesn't capture whether the marketplace is becoming a habit + +### Developer tool / open source +- **Weekly active developers × paid-conversion** — captures both adoption and monetization +- Alternative: "Weekly active orgs × seats per org × ARPU" + +### Content / media business +- **Daily active readers / listeners × ad revenue per session** — captures both reach and monetization +- Alternative: "Subscriber count × retention × ARPU" + +### Commerce (DTC, non-subscription) +- **Repeat purchase rate × AOV × frequency** — captures monetization layered on quality of customer +- Alternative: "Customer LTV / CAC × payback period" + +## Leading indicators by AARRR stage + +After the north star, every plan needs leading indicators per AARRR stage. These move faster than the north star and trigger investigations. + +### Acquisition leading indicators +- Organic visits/month, total + per pillar (SEO health) +- App Store / Play Store visit-to-install rate (ASO health) +- Founder-led social channel growth → email subscriber conversion (LinkedIn / X / Substack funnels) +- Event-to-app conversion rate (event ROI) +- Ambassador-attributed visits (referral funnel) +- Paid CAC by channel (when paid is firing) + +### Activation leading indicators +- Day 1 / Day 7 / Day 35 → paid conversion rate +- Onboarding session-completion rate +- First key-action completion (post-signup activation event) +- App Store conversion rate (install → trial → paid) +- Trial → paid conversion rate + +### Retention leading indicators +- Day 30 / Day 60 / Day 90 retention +- Monthly churn rate (gross + net) +- Lifecycle email engagement (open / click / unsubscribe by flow) +- Hardware → app activation rate (for hybrid businesses) +- Win-back / reactivation rate + +### Referral leading indicators +- Ambassador-attributed new subs (via Dub or similar) +- Share-after-value moment rate (% of users sharing) +- Two-sided referral completion rate +- Guides program referrals (when live) +- NPS score (if surveyed) + +### Revenue leading indicators +- ARPU by cohort +- Annual plan adoption % +- Cohort LTV by source +- Plan mix shifts +- Eye-mask / hardware attach rate (for hybrid) +- Expansion revenue (B2B) + +## Review cadence + +The plan should specify three rhythms: + +### Weekly (operational sync) +- **Who:** fCMO ↔ founder (CEO usually) +- **Duration:** 30 min +- **Format:** AARRR scoreboard (current vs. last week numbers across the leading indicators) + this week's ships + blockers +- **Output:** Action items, decisions made + +### Monthly (metrics review) +- **Who:** fCMO + founder + extended team (CXO, product lead, designer if applicable) +- **Duration:** 60–90 min +- **Format:** Full metrics review + comparison against quarterly KPI targets + qualitative learnings + idea bank reprioritization +- **Output:** Possible plan adjustments, hire decisions + +### Quarterly (plan recalibration) +- **Who:** fCMO + founders + key advisors +- **Duration:** 2–3 hours +- **Format:** Full plan review against 90-day and 12-month outcomes, channel-level analysis, funding-stage transition check, recalibration of next 90 days +- **Output:** Updated plan (could be v2 / v3 document iteration) + +## KPI target setting + +For each quarter in Section 10, the plan must include 3–5 specific KPI targets. These should be: +- **Specific** — not "improve retention," but "Day 30 retention from 22% → 30%" +- **Measurable** — pull from a wired data source +- **Stretch but plausible** — based on funnel state + historical patterns +- **Decision-triggering** — if missed, what does that mean? (Adjust strategy, kill a channel, etc.) + +### KPI target patterns by quarter + +**Q1 (foundation quarter):** +- Mostly *bedrock* metrics — fixing leaks. "Headphones-gate conversion drop reverses." "Day 1 → paid +25–50%." +- Some *foundation* metrics — laying tracks. "4 SEO pillars staked." "App Store rewrite shipped." +- Avoid bold growth targets — the foundations aren't in yet + +**Q2 (validation quarter):** +- Mostly *validation* metrics — does what we built work? "Paid CAC < $X blended." "Organic traffic 1,500–3,500/mo." +- Some *cohort* metrics — do new cohorts behave better? "Day 7 retention for Q2 cohort vs. Q1." + +**Q3 (scaling quarter):** +- Mostly *scaling* metrics — how far does it go? "Paid scaling to $20–30K/mo with CAC steady." "First B2B install reference case live." +- Some *capability* metrics — what new things are live? "First Guides pilot launched." + +**Q4 (compound quarter):** +- Mostly *compound* metrics — is the flywheel turning? "50%+ of new subs from non-paid channels." "Ambassador-driven 15–25% of new subs." +- Some *narrative* metrics — does the Series A story write itself? "Blended LTV/CAC > 3." + +## Anchoring against the VC growth path + +For VC-backed clients past $1M ARR, anchor 12-month and multi-year targets against the **3-3-2-2-2 rule** (3× in years 1 and 2, then 2× in years 3 through 7). Hitting it is rare; most companies don't. Anchoring against it forces the plan to either match it and show how, or explicitly defend choosing a slower trajectory. Full table and context in `growth-patterns.md`. + +For non-VC-backed companies (bootstrapped, founder-funded, profit-focused), the 3-3-2-2-2 doesn't apply. Use linear-pattern targets ("$X MRR added per month") or step-function targets ("$Y revenue jump after the enterprise tier launches") instead. + +## Forecasting reality check + +A plan derives a budget and an annual goal. It does not produce a 12-month month-by-month forecast that's reliably accurate to the dollar. + +**Unless the company is publicly traded, all forecasts are educated guesses.** No startup under $100M ARR consistently hits month-by-month forecasts. Quarterly review is when the plan adjusts — not when variance is treated as failure. + +What the plan commits to honestly: +- The annual goal is a defensible direction-of-travel +- The budget is the resource commitment that makes the goal plausible +- The 90-day roadmap (Section 9) is what's actionable now +- Month-to-month projection is illustrative, not promised + +Founders who over-engineer the forecast end up explaining variance every month instead of executing. The plan should resist this — name the annual target, the quarterly KPIs, and the kill criteria. Don't promise the month. + +Full context in `budget-planning.md`. + +## Kill criteria + +For every channel or initiative, the plan should specify when to stop. Often missing from plans, kill criteria force discipline. + +Examples: +- "If a paid channel has CAC > 2× target after 30 days at meaningful spend, pause." +- "If onboarding Variant 3 doesn't show statistically meaningful lift (or directional lift + congruent qualitative signal) after 4 weeks, move to Variant 1." +- "If lifecycle Flow 4 has open rate < 12% after 6 weeks, redo subject lines + audience segmentation." + +## Guardrail metrics + +Some metrics get a hard guardrail (cannot drop below threshold). Useful for protecting brand or unit economics during aggressive growth. + +Examples: +- "Brand voice complaint rate > 1% of customer feedback triggers content review." +- "Paid CAC > $X for two consecutive months pauses paid scaling pending audit." +- "App Store rating drops below 4.5 triggers product review." + +## Data sources mapping + +The plan should name where each metric comes from. This makes it auditable. + +| Metric | Source | +|---|---| +| Organic traffic | GA4 / Ahrefs | +| App Store conversion | App Store Connect | +| Funnel conversion (Day N → paid) | Internal analytics (Mixpanel / Amplitude) or App Store Connect cohort export | +| Retention | Customer.io segments + product analytics | +| MRR / ARR | Stripe (via MCP if wired) | +| Plan mix | Stripe | +| Lifecycle email metrics | Customer.io | +| Ambassador attribution | Dub.co | +| Hardware → app activation | Shopify + App Store + internal join | +| NPS | Survey tool (Customer.io / Typeform / SurveyMonkey) | + +## When data isn't wired + +If a metric can't currently be measured, flag it in Section 13's open decisions. Example: + +> "Hardware → app activation rate not currently visible in the App Store dashboard. Requires Shopify ↔ App Store Connect join. Q1 work item." + +A plan with un-measurable goals is a plan that can't be validated. Surface the instrumentation work explicitly. + +## Reporting cadence + automation + +Where possible, auto-generate the metrics review rather than building it manually each time. Stripe MCP + GA4 MCP + Customer.io MCP can pull most of what's needed. + +For Tier 1 clients, a simple weekly metrics email to the team (Markdown table, generated via skills + MCPs) costs nothing and creates discipline. + +For Tier 2+ clients, consider a real dashboard (Hex, Metabase, Looker, or internal tool). diff --git a/.agents/skills/marketing-plan/references/methodology.md b/.agents/skills/marketing-plan/references/methodology.md new file mode 100644 index 0000000..d025298 --- /dev/null +++ b/.agents/skills/marketing-plan/references/methodology.md @@ -0,0 +1,363 @@ +# Methodology — How a Marketing Plan Gets Made + +The three-phase workflow that produces a comprehensive marketing plan. SKILL.md is the orchestration layer; this is the operational detail. + +## Phase 1 — INIT (research + intake) + +**Goal:** Walk into Phase 2 with enough context to draft every section without guessing. + +### Step 1.1 — Set up the plan folder + +Canonical file layout for every plan: + +``` +~/marketing-plans/{client-slug}/ +├── materials/ # Client-provided files (decks, audit output, brand-voice doc, etc.) +├── research.md # Written in Phase 1 (INIT) +├── progress.md # State machine — see Step 1.1.1 for schema +├── sections/ +│ ├── 01.md # Executive summary (written last, ordered first) +│ ├── 02.md # Strategic frame +│ ├── ... +│ └── 13.md # Measurement, RACI, open decisions, appendix +└── final_plan.md # Compiled deliverable (Phase 3 output) +``` + +### Step 1.1.1 — `progress.md` state schema + +Every plan tracks a single `progress.md` file at the plan root. It's the source of truth for resumption. Schema: + +```markdown +# {Client} — Marketing Plan Progress + +phase: init | review | finalize | finalized +current_section: +plan_version: v1 +last_updated: YYYY-MM-DD HH:MM + +## Sections completed +- [ ] 2. Strategic frame +- [ ] 3. Current state +- [ ] 4. Acquisition +- [ ] 5. Activation +- [ ] 6. Retention +- [ ] 7. Referral +- [ ] 8. Revenue +- [ ] 9. 90-day roadmap +- [ ] 10. 12-month outlook +- [ ] 11. Marketing operations stack +- [ ] 12. Tactical idea bank +- [ ] 13. Measurement, RACI, open decisions, appendix +- [ ] 1. Executive summary (synthesized last) + +## Approved artifacts +sections/02.md, sections/03.md, ... (list as they're written) + +## Notes + +``` + +### Step 1.1.2 — Resumption decision tree + +On every invocation, check state in this order: + +1. **No `{client-slug}/` folder** → fresh plan. Create folder + `materials/` + empty `sections/`. Start INIT (Step 1.2). +2. **Folder exists, no `research.md`** → INIT was interrupted. Resume from Step 1.2. +3. **`research.md` exists, no `progress.md`** → INIT done, REVIEW not started. Create `progress.md`, start REVIEW from Section 2. +4. **`progress.md` exists, `phase: review`** → REVIEW in progress. Resume from `current_section` (or first unchecked box). +5. **`progress.md` exists, `phase: finalize`** → FINALIZE was interrupted. Re-run Phase 3. +6. **`progress.md` exists, `phase: finalized`** → plan is done. **Do not silently overwrite.** Ask the user: *"This plan is finalized (v{N}). Want to (a) revise it as v{N+1}, (b) start a fresh plan in a new folder, or (c) re-open a specific section?"* + +Update `phase` and `last_updated` whenever state changes. + +### Step 1.2 — Read existing materials + +If `materials/` has files, read all of them. Common drops: +- Pitch deck / investor deck +- Positioning doc / brand voice doc +- Customer research / ICP doc +- App Store metrics / analytics snapshot +- Lifecycle email inventory +- Prior audit output (any scored current-state assessment the team has run) +- SEO research (`seo/plan.md`, `seo/keyword-shortlist.md`) +- Kickoff call transcript +- Founder Slack / async notes + +Read everything. Capture key facts to `research.md` as you go. + +### Step 1.3 — Pull live data where wired + +If MCPs/APIs are wired for this client, pull: + +- **Ahrefs** → domain rating, organic keywords, backlinks, top pages, ref domains (per `/seo-audit` skill) +- **GA4 MCP** → traffic by channel, conversion events, retention curves +- **Stripe MCP** → MRR, ARR, churn, plan mix, blended LTV by cohort +- **App Store Connect** (manual or `dev-browser`) → install → trial → paid funnel; cohort retention +- **Customer.io MCP** → flow inventory, send / open / click / unsubscribe rates +- **Shopify** → product page conversion, AOV, repeat rate +- **GitHub MCP** → repos inventory, last commit dates, what's stale +- **Notion** → internal knowledge directory if exposed + +Don't ask the user to copy/paste data that can be pulled directly. + +### Step 1.4 — Conduct structured intake + +For every gap in the materials, ask the user. The minimum intake covers ten topics: + +#### Intake 1 — Client overview +- What does the company do, in one sentence (founder's words)? +- What's the primary product? +- What other products / SKUs / tiers exist? +- Is the product live, beta, or pre-launch? +- If beta: throttling? GA timeline? + +#### Intake 2 — ICP +- Who are you for, in one sentence? +- What do they say they want? +- What do they actually want? +- What's their stated problem? Their real problem? +- Demographics / firmographics: who fits the ICP exactly? + +#### Intake 3 — Funnel state today +- What are the current funnel numbers? (signups, activations, paid, retention) +- What's the funnel *shape* — is it bottle-necked at top, middle, or bottom? +- What's the biggest leak? + +#### Intake 4 — Funding state +- Current round (pre-seed / seed / Series A / etc.)? +- Total raised to date? +- Current burn / runway? +- Active raise? Closing when? +- Investors of note? +- Permission to mention fCMO engagement in pitches? + +#### Intake 5 — Team +- Founders and what each owns (product, marketing, sales, etc.)? +- Other roles on the team and their marketing surface area? +- Advisors who touch marketing? +- Agencies / contractors / fractionals? +- Where are the obvious gaps? +- For the team's current marketing owner (if there is one): is the shape π-shaped (two deep skill sets), T-shaped (one deep, broad), or tactical-only? See `team-and-agency-model.md` for the framework that informs Section 11 RACI and the first-hire recommendation in Section 9. + +#### Intake 6 — Budget +- Current monthly marketing spend, broken down: paid acquisition, tools, retainers, headcount? +- Budget tier this maps to (see `funding-stage-unlocks.md`)? +- What budget unlocks when the next round closes? +- Blended CAC if known (including salaries, content costs, tools, retainers — not just paid ad spend). If unknown, flag as the top Section 13 open decision — every revenue projection depends on it. +- ARPC, annual retention rate (or churn rate), so the budget math in `budget-planning.md` can be applied to Section 8 (Revenue) and Section 10 (12-month outlook). + +#### Intake 7 — Channels currently active +- Acquisition: organic SEO, paid search, paid social, content, social, partnerships, events, PR, ambassadors, etc. — for each, status (live / paused / never tried) +- Activation: onboarding state, signup flow, paywall, first-session experience, app store listing +- Retention: lifecycle email state, in-app upsells, churn cohort +- Referral: program existence, attribution, inbound interest +- Revenue: pricing structure, plan mix, recent experiments + +#### Intake 8 — Already done +What past work should this plan acknowledge? +- Major launches and dates +- PR moments and who covered +- Content pillars / hubs / cornerstone pieces +- Partnerships +- Awards / certifications +- Notable customers / users (if consumer-named users) +- Past advisors / fractionals + +#### Intake 9 — In-flight and stuck +- What's drafted but not shipped? Why? +- What's been "almost ready" for months? +- What's blocking each? +- What's broken or actively harmful? + +#### Intake 10 — Strategic posture +- The most important thing to fix this quarter (founder's read) +- The most important thing to ignore this quarter (founder's read) +- What investors / board are asking about most +- Any constraints not visible elsewhere (legal, partnership-related, brand-related) + +### Step 1.5 — Score current state against the rubric + +Use the 17-section rubric in `references/current-state-rubric.md` as your scoring lens. Two modes: + +- **From rich materials.** When the team has shared decks, prior content audits, an existing brand voice doc, recent positioning work, or a kickoff call transcript — score from those. Mark "scored from materials" in the section heading. +- **From a separately scored audit.** If the team already has a scored current-state assessment (in any format), ingest those numbers directly. Don't redo the work. + +Either way, the output is the scored 17-row table that becomes Section 3 of the plan, followed by a 2–4 sentence "shape interpretation" calling out where strengths and gaps cluster. + +### Step 1.6 — Write research.md + +Compile everything into `research.md` with this structure: + +```markdown +# {Client} — Marketing Plan Research Record + +**Date:** YYYY-MM-DD +**Author:** (fCMO / planner name) + +## Company snapshot +- One-sentence description +- Stage (pre-seed / seed / Series A / etc.) +- Product status (beta / GA) + +## ICP +- Primary ICP +- Stated vs. actual problem +- Demographics / firmographics + +## Funnel state today +- Current numbers +- Funnel shape +- Biggest leak + +## Funding +- Total raised +- Current round status +- Runway + +## Team +- Founders and ownership +- Marketing surface area by person +- Gaps + +## Current marketing budget +- $/mo total +- Breakdown +- Tier mapping + +## Channels currently active +[By AARRR stage] + +## Already done (acknowledge in plan) +[List] + +## In-flight and stuck +[List with blockers] + +## Strategic posture +- Founder's top priority +- Founder's top de-prioritization +- Investor pressure points +- Constraints + +## Current-state rubric scores +[17 section scores using `references/current-state-rubric.md`. If a prior scored audit exists, paste those scores. Otherwise mark "scored from materials."] + +## Materials read +[List of files in materials/ + when read] +``` + +Save. Move to Phase 2. + +--- + +## Phase 2 — REVIEW (section-by-section drafting) + +**Goal:** Walk through all 13 sections of the plan template (`references/plan-template.md`), drafting each, getting user confirmation, saving as you go. + +### Step 2.1 — Initialize progress.md + +Use the schema defined in Step 1.1.1 above. Set `phase: review`, `current_section: 2`, `plan_version: v1`, and stamp `last_updated`. + +### Step 2.2 — Walk each section in this order: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, then 1 + +Section 1 (Executive Summary) is drafted **last** because it depends on every other section's conclusions. Walk Sections 2 → 13 in numeric order, then synthesize Section 1 from the others. The final compiled `final_plan.md` is always presented in canonical order 1 → 13. + +For each section, use the template at `references/plan-template.md` to draft. Then in chat: + +1. Present the draft (or key bullets — short sections inline, long sections as bullet outline first) +2. Ask: *"Approve, adjust, or expand?"* +3. Iterate until user confirms +4. Save the confirmed text to `sections/01.md` ... `sections/13.md` (one file per section, zero-padded for sort order). This is the canonical persisted artifact — recovery depends on it. +5. Check the box in `progress.md` +6. Move to next section + +### Step 2.3 — Section-specific guidance + +**Section 1 (Executive summary)** is synthesized from Sections 2–13 after they're all approved. Draft it last; present it first in the output document. + +**Section 3 (Current state)** uses the embedded 17-section rubric in `references/current-state-rubric.md`. If a prior scored audit exists, paste those scores in. If not, score from available materials. + +**Sections 4–8 (AARRR)** each follow the same internal structure: current state, the plan (numbered moves), 90-day moves, 12-month outlook, skills + tools. Don't skip the skills + tools sub-section — it's what makes the plan operationally honest. + +**Section 11 (Marketing operations stack)** is auto-generatable from `references/ops-stack-mapping.md` plus the specific moves named in Sections 4–8. + +**Section 12 (Idea bank)** is auto-generatable from `references/idea-cross-reference.md` plus client-specific filters (skip ideas that conflict with brand voice; status moves based on funding-stage timing). + +**Section 13** lives at the end. Open decisions should be ranked by impact. Appendix should reference only files the team can access (warn about machine-local paths). + +### Step 2.4 — Brand voice consistency + +If the client has documented brand voice rules (captured in research.md / Section 2), every section must respect them. Common voice constraints: +- Vocabulary rules (YES / NO lists) +- CTA rules (e.g., "never pressure") +- Initiatory vs. explanatory framing +- Tone (e.g., authoritative-yet-accessible, intimate-yet-professional) + +If a section's draft violates the brand voice, redo it before showing it to the user. + +--- + +## Phase 3 — FINALIZE (compile + verify + publish) + +**Goal:** Produce `final_plan.md` and optionally publish to a shared repo. + +### Step 3.1 — Compile + +Set `phase: finalize` in `progress.md` before starting. Concatenate `sections/01.md` through `sections/13.md` into `final_plan.md` (canonical order 1 → 13, regardless of drafting order). Add: +- Title header with date and "v1" version marker +- "Prepared by / For / Date / Status" frontmatter +- Section anchors that work in Notion paste + +### Step 3.2 — Verification pass + +Before printing: + +- **Cross-reference check** — every marketing-ideas number (e.g., "idea #17") matches the actual idea in `references/idea-cross-reference.md`. Every related-skill mention either exists in the `marketingskills` repo or is documented as an external dependency (see ops-stack-mapping note on cross-marketplace skills). +- **MCP/API check** — every tool mentioned in Section 11 actually exists in the user's stack (per research.md intake) OR is flagged as "future / not yet wired." +- **Path check** — no machine-specific paths (`/Users/...`, `/home/...`) in the output. Replace with descriptive references. +- **Voice check** — final read against brand voice rules. Flag and fix violations. +- **Open-decisions check** — every "TBD" or unanswered question from intake is listed in Section 13's open decisions, not hidden in the body. +- **Acknowledge check** — every item from "already done" in research.md is acknowledged somewhere in the plan. + +### Step 3.3 — Print + +Output `final_plan.md` to the plan folder. Print a summary to chat: + +> *"Marketing Plan v1 saved to `~/marketing-plans/{client-slug}/final_plan.md`. ~X,XXX words across 13 sections. Ready to paste into Notion or share with the team."* + +### Step 3.4 — Publish (optional) + +Ask the user: +> *"Want me to publish this to a shared GitHub repo so the team can access it? If yes, what's the target repo and path (e.g., `{client-org}/{client-context}/marketing/plan.md`)?"* + +If yes: +- Clone (or assume cloned) target repo +- Check out a feature branch or push direct to main per user's preference +- Copy `final_plan.md` to the target path +- Adjust the appendix to use repo-relative paths (not machine paths) +- Commit + push +- Confirm with commit URL + +If no: leave it local. Done. + +### Step 3.5 — Mark finalized + +Set `phase: finalized` in `progress.md` and stamp `last_updated`. This is the terminal state and prevents future `/marketing-plan` invocations from silently overwriting the plan (see Step 1.1.2 case 6). + +--- + +## Resuming a plan + +Resumption is governed entirely by the decision tree in Step 1.1.2 above — always check state in that order on every invocation. + +If the user says *"start over"* → ask whether they want to delete the existing folder or move it to `archive/` first; don't silently overwrite. +If the user says *"redo Section X"* → uncheck that box in `progress.md`, delete `sections/0X.md`, and re-draft. + +## Failure modes to watch for + +- **Skipping intake.** A plan written without proper intake is generic and won't survive contact with the founder. Always do the full ten-topic intake unless the user explicitly waives it. +- **Pretending data exists.** If you can't confirm a number (current MRR, retention rate, etc.), don't guess. Mark it `[TBD — to confirm with team]` in the plan and add to open decisions. +- **Ignoring the brand voice.** If the client has a strong voice (most do), every section must respect it. Read the voice rules before drafting any copy-adjacent text. +- **Padding the idea bank.** Section 12 is comprehensive only if it includes the skip list with reasons. Don't pad with ideas that clearly don't fit just to hit the 139. +- **Glossing over uncomfortable metrics.** If churn is high or activation is low, name it in Current State. Founders read past sugar-coating. +- **Forgetting funding-stage logic.** If the client is mid-raise, the plan must explain what changes when the round closes. Skipping this turns a plan into a wish-list. diff --git a/.agents/skills/marketing-plan/references/ops-stack-mapping.md b/.agents/skills/marketing-plan/references/ops-stack-mapping.md new file mode 100644 index 0000000..82172ff --- /dev/null +++ b/.agents/skills/marketing-plan/references/ops-stack-mapping.md @@ -0,0 +1,197 @@ +# Marketing Operations Stack — Skills + MCPs per AARRR Stage + +This doc maps every marketing-skill and every relevant MCP/API integration to the AARRR stage(s) it primarily serves. It's the source for Section 11 of every plan. + +> **Note on scope.** Skills below live in this `marketingskills` repo. A few references point to optional tools from adjacent Claude Code marketplaces (e.g., `vercel:agent-browser`, `compound-engineering:diagram-maker`) — substitute equivalents if not installed. When a plan references a skill or tool that isn't available, fall back to the underlying tactic and call it out in Section 13's open decisions. + +## The thesis + +A small team + fCMO + agentic tooling = output of a 15–20-person traditional marketing org. The skills + MCPs encode workflows that previously required dedicated headcount per channel. + +The plan's Section 11 makes this thesis explicit by: +1. Mapping skills to stages so the founder sees which skills execute which work +2. Mapping MCPs/APIs to stages so the founder sees the tooling layer +3. Naming a concrete operational example that proves the stack works +4. Showing capability unlocks by funding stage (pre-seed → seed → Series A) + +## Marketing skills mapped to AARRR + +### Acquisition skills + +| Skill | What it does | Primary use in Acquisition | +|---|---|---| +| `seo-audit` | Audit site for technical and on-page SEO | Quarterly site health checks | +| `ai-seo` | Optimize content for AI search engines / LLM citation | Future-proof content strategy | +| `programmatic-seo` | Build template-driven SEO pages at scale | Location, comparison, integration page systems | +| `schema` | Add structured data markup | Rich snippets, eligibility for AI citation | +| `content-strategy` | Plan content topics, pillars, cadence | Setting the editorial calendar | +| `competitors` | Build vs-pages and alternative-to-pages | Capture high-intent SERPs against competitors | +| `ads` | Plan and structure paid campaigns | Apple Search Ads, Meta, Google, LinkedIn | +| `ad-creative` | Generate ad variations and creative | Iterate ad creative across platforms | +| `social` | Plan and write social media content | LinkedIn, Twitter/X, Instagram, TikTok | +| `typefully` | Schedule/post tweets, threads, LinkedIn content | Cadence operations for founder-led channels | +| `cold-email` | Write B2B cold outreach + sequences | Outbound for B2B SaaS / hybrid businesses | +| `analytics` | Set up tracking, GA4, conversion events | Funnel instrumentation | +| `free-tools` | Plan engineering-as-marketing free tools | Build tools that generate links + leads | +| `marketing-website-design` | Design marketing sites with intention | Pillar/landing page design | +| `launch` | Plan and execute launches (Product Hunt, GA, feature launches) | GTM moments — strategy + tactical execution | + +### Activation skills + +| Skill | What it does | Primary use in Activation | +|---|---|---| +| `onboarding` | Optimize user onboarding flows | Onboarding rebuild, activation rate tests | +| `signup` | Optimize signup/registration | Reduce friction at top of activation | +| `cro` | Optimize any marketing page or form | Conversion testing across pages, forms, landing pages | +| `paywalls` | Optimize paywalls and upgrade screens | Trial → paid conversion (also Revenue) | +| `popups` | Optimize popups, modals, slide-ins | Lead capture + activation prompts | +| `copywriting` | Write marketing copy | Onboarding screens, paywall copy, CTAs | +| `copy-editing` | Edit and improve existing copy | Voice / clarity pass before ship | +| `copycraft` | Real-time copy variation overlay | Live copy iteration during reviews | +| `website-copy` | Write full website copy (stage-8 from CF process) | Comprehensive site copy production | +| `ab-testing` | Plan A/B tests | Structure for onboarding variant tests | +| `marketing-psychology` | Apply behavioral science to copy and CRO | Persuasion principles in activation moments | + +### Retention skills + +| Skill | What it does | Primary use in Retention | +|---|---|---| +| `emails` | Design email sequences | Customer.io / Mailchimp / Resend flow building | +| `churn-prevention` | Build cancellation flows, save offers, win-back | Reduce churn, recover failed payments | +| `copywriting` / `copy-editing` | Email copy production | Lifecycle email content | +| `paywalls` | (cross-cuts) — upgrade prompts in retention emails | Upsell within lifecycle | +| `ab-testing` | Test email variants | Subject line, CTA, timing tests | + +### Referral skills + +| Skill | What it does | Primary use in Referral | +|---|---|---| +| `referrals` | Plan and launch referral / affiliate / ambassador programs | Core skill for Section 7 | +| `social` | Create ambassador-shareable content | Talking points, post templates | +| `copywriting` | Ambassador / affiliate email copy | Recruitment, onboarding, communication | +| `marketing-website-design` | Per-ambassador landing pages | Attribution surface | +| `emails` | Ambassador lifecycle emails | Onboarding, monthly digest, payout notifications | + +### Revenue skills + +| Skill | What it does | Primary use in Revenue | +|---|---|---| +| `pricing` | Audit and optimize pricing | Plan tier structure, annual defaults, value metrics | +| `paywalls` | Paywall optimization | Trial → paid, free → paid conversion | +| `sales-enablement` | Build sales decks, one-pagers, demos | B2B sales support material | +| `revops` | Revenue operations, lead lifecycle | Marketing → sales handoff | +| `ab-testing` | Pricing experiments | Test annual default, intro pricing, tier consolidation | + +### Cross-cutting / brand foundation skills + +| Skill | What it does | Primary use | +|---|---|---| +| `product-marketing` | Set up the `.agents/product-marketing.md` context file (positioning, ICP, voice) | Foundational — run first; every section of the plan references this | +| `customer-research` | Conduct customer interviews + surveys | Section 2 + Section 3 (Current state) | +| `marketing-psychology` | Apply behavioral science | Cross-cuts copy, CRO, paywalls | +| `marketing-ideas` | The 139-idea library | Section 12 of plan (Idea bank) | + +## MCPs and APIs mapped to AARRR + +### Acquisition tooling + +| Tool | What it provides | Wired-at-client check | +|---|---|---| +| **Ahrefs API** | SEO data: keyword research, backlinks, competitor analysis | Required `AHREFS_API_KEY` in `.env` | +| **DataForSEO API** | SERP data, keyword volume, competitor SERP analysis | Required API key | +| **GA4 MCP** | Traffic by channel, conversion events, retention curves | Wired via gcp project + service account | +| **GitHub MCP** | Repo work: marketing site (`site-name-promo` patterns), content authoring | Standard `gh` CLI auth + MCP server | +| **Typefully MCP** | Social posting (LinkedIn, X, Threads, Bluesky) | Typefully account + API key | +| **Google Ads MCP** | Ad account management, campaign creation, performance pulls | Wired post-budget-unlock | +| **agent-browser** | Browser automation (form fills, screenshots, scraping) | CLI install: `npm install -g agent-browser` | +| **dev-browser** | General-purpose browser automation | MCP server install | +| **defuddle** | Clean markdown extraction from web pages | CLI install | +| **Notion** | Internal knowledge directory access | Notion API key | +| **Stripe MCP** | LTV math, paid-CAC reconciliation (cross-cuts to Revenue) | Stripe account + restricted key | + +### Activation tooling + +| Tool | What it provides | +|---|---| +| **App Store Connect** | Conversion rate by listing variant, install funnel | Usually manual + `dev-browser` for screenshots | +| **GitHub MCP** | Mobile app repo for onboarding code edits | +| **Figma / Pencil MCP** | Onboarding screen design + iteration | +| **Customer.io MCP** | In-app messaging + lifecycle email coordination | +| **Stripe MCP** | Subscription state for paywall logic | +| **GA4 MCP** | Activation events instrumentation | + +### Retention tooling + +| Tool | What it provides | +|---|---| +| **Customer.io MCP** | The retention infrastructure — flow building, segmentation, sending | +| **Shopify** | Hardware buyer events as lifecycle triggers | +| **Stripe MCP** | Subscription state, churn cohorts, plan changes | +| **GA4 MCP** | Session events, retention curves | +| **Resend / Mailchimp / SendGrid** | Alternatives to Customer.io for different stacks | + +### Referral tooling + +| Tool | What it provides | +|---|---| +| **Dub.co** | Ambassador attribution, short links, per-ambassador tracking | +| **Stripe MCP** | Commission accounting + payouts via Connect | +| **GitHub MCP** | Per-ambassador landing pages | +| **Customer.io MCP** | Ambassador lifecycle (recruitment → onboarding → monthly digest → payout notifications) | +| **Rewardful / Tolt / Mention Me** | Alternatives to Dub for affiliate management | + +### Revenue tooling + +| Tool | What it provides | +|---|---| +| **Stripe MCP** | Pricing tests, subscription analytics, churn cohort analysis, blended CAC math | +| **Shopify** | Hardware transactions | +| **GA4 MCP** | Revenue events | +| **Customer.io MCP** | Paywall / pricing-related lifecycle | +| **Notion** | Commercial knowledge directory | + +### Cross-cutting tooling + +| Tool | What it provides | +|---|---| +| **Notion** | Shared knowledge base | +| **GitHub MCP** | Shared context repo (`{client-org}/{client-context}`) | +| **defuddle** | Research extraction | +| **obsidian-cli** | Working notes for fCMO | +| **Pencil MCP** | Design files | +| **Figma MCP** | Design files (if Figma) | + +## Capability unlocks by funding stage + +The plan's Section 11 must include this table (or equivalent), specific to the client's current and projected funding stages. + +| Stage | Headcount | Tooling | Channels live | +|---|---|---|---| +| **Pre-seed / bootstrapped** | fCMO + founder team | All current tooling + marketing-skills library + MCP layer | Organic only (SEO, content, App Store, founder-led social, events, WOM, ambassador) | +| **Seed close** | + first marketing hire (lifecycle/content owner) | + paid ad accounts (Apple Search Ads, Meta, LinkedIn) + `ads` skill activated | + paid acquisition pilot ($5–15K/mo — see `funding-stage-unlocks.md` for canonical tiers) | +| **Seed deployment** | + designer (potentially fractional) | + analytics expansion (Mixpanel / Amplitude if needed) | + paid scaling ($20–50K/mo) + first launches (PH, GA) | +| **Series A** | + performance marketing lead + content lead | + dedicated tooling spend ($2–5K/mo software) + sponsored event budget | + paid scaling ($50–150K/mo) + international consideration + B2B vertical expansion | +| **Series B+** | Full-stack marketing org (10+ people) | + agency partnerships + PR firm | + brand campaigns + acquisitions + sponsorships at category level | + +## The concrete-example test + +Section 11 of the plan must include at least one concrete operational example that proves the stack thesis. The example should be: +- A specific event (not abstract claim) +- From this client's actual history if possible (most credible) +- Tied to a non-technical person executing via the stack (proves it works without dedicated engineering) + +Examples from real engagements: +- *"On the kickoff call, Alex drafted a working Customer.io abandoned-cart flow live, using Customer.io's Claude MCP. Validated that a non-technical founder can ship lifecycle work using the skill pattern independently."* +- *"In two weeks, the team scaled from 0 to 14 ranking keywords using `programmatic-seo` against the Ahrefs API + GitHub MCP — no dedicated SEO hire required."* +- *"The first email campaign generated a 24% reply rate after `cold-email` skill + GA4 MCP + Stripe MCP gave the team a verified target list of users with high LTV but no recent activity."* + +If the client has no such moment in their history yet, frame the example as the *first move* — "Here's the demonstration the team will run in week one to validate the stack:" + +## When the stack doesn't apply (yet) + +For clients without MCP connections set up, frame Section 11 differently: +- List the skills that DO apply with current tooling +- Name which MCPs would unlock which sections of the plan +- Treat MCP setup as a Q1 priority alongside the bedrock fixes + +A plan can't claim the agentic-stack thesis if the stack isn't wired. Be honest about state. diff --git a/.agents/skills/marketing-plan/references/plan-template.md b/.agents/skills/marketing-plan/references/plan-template.md new file mode 100644 index 0000000..c38510a --- /dev/null +++ b/.agents/skills/marketing-plan/references/plan-template.md @@ -0,0 +1,494 @@ +# Plan Template — The 13-Section Structure + +The canonical template for every marketing plan generated by this skill. Each section has a purpose, a structure, and inline prompts for what to draft. + +The Quietude plan (see `references/example-quietude.md`) is the canonical reference implementation. + +--- + +## Title block + +```markdown +# {Client} — Marketing Plan v1 + +**Prepared by:** {Author / fCMO name} +**For:** {Founders / leadership team} +**Date:** YYYY-MM-DD +**Status:** Draft v1 — for team review +``` + +--- + +## Section 1 — Executive summary + +**Purpose:** Lift-and-share. A founder should be able to paste this into a board update or investor email without editing. + +**Length:** 400–700 words. Tight. + +**Structure:** +1. **One-sentence frame.** What does this plan optimize for? Not "more revenue" — something specific to this client at this stage. +2. **Three big bets, ranked by leverage.** Each is a paragraph. Bet = a high-conviction thesis about where the team should focus capital and attention. +3. **What twelve months looks like, plausibly.** Bullet list. The plausible outcome state at end of plan horizon. Investor-readable. +4. **90-day priorities.** Numbered list. The six (give or take) moves that ship in the first quarter. + +**Voice notes:** +- Match the client's voice +- Direct, founder-readable, no marketing-speak +- Use names and numbers (specific channels, specific metrics) — not abstractions +- Tradeoffs named explicitly when they matter + +--- + +## Section 2 — Strategic frame + +**Purpose:** Distill positioning, ICP, business-model logic, and brand voice into a single page that any team member or new hire can read to orient. + +**Length:** 800–1500 words. + +**Structure:** + +### What {Company} is, in one sentence +Pulled from positioning doc / seed deck / founder language. + +### The category we're claiming +Is the company creating a new category, redefining an existing one, or competing in a defined category? Name it. State the category-defining frame in 2–3 sentences. Reference the source (founder's words, ICP doc, etc.). + +### Who we're for (ICP, distilled) +Demographics / firmographics + stated problem vs. real problem + what they're actually buying. Tight, 4–6 bullets. + +### The business model logic +How does the company make money? What's the customer-acquisition unit economics theory? What's the compounding channel thesis (if any)? Pulled from seed deck / financial model / founder narrative. + +### Brand voice (the non-negotiable) +If the client has documented voice rules, list them. YES / NO vocabulary. CTA rules. Tone. Core method (initiatory, explanatory, narrative, etc.). Every other section of the plan must respect these. + +**Voice notes:** +- This section is the most "lift from existing materials" — don't invent positioning. Surface what's there. +- If positioning is unclear or contradicted across materials, flag it in Section 13's open decisions. + +--- + +## Section 3 — Current state + +**Purpose:** Anchor the plan in reality. What's the team, budget, in-flight work, and stuck work *today*? + +**Length:** 1000–2000 words. + +**Structure:** + +### Team composition (marketing surface area) +Table of every person with marketing surface area: + +| Person | Role | Marketing surface area | +|---|---|---| + +Be honest about gaps. If there's no dedicated marketing hire yet, name when one becomes necessary and what role (see `references/team-and-agency-model.md` — first hire should be π-shaped strategist titled Manager or Lead, not VP/CMO). + +### Marketing budget (current) +- Paid acquisition: $X/mo +- Tooling stack: list with estimated cost +- Retainers / fCMO: list +- Headcount: list +- Blended CAC: $X (must include salaries, content costs, tools, retainers — not just paid spend; see `references/budget-planning.md` for the calculation) +- Current spend as % of ARR: X% (compare against 5–40% range) + +State the funding-stage tier this maps to (see `references/funding-stage-unlocks.md`). Implication: what 90-day plan must produce *without* lever pulls that require future budget. + +### Phase of SaaS growth +Name the current phase: $0–10K ARR / $10K–100K / $100K–1M / $1M–$10M / $10M+. Each phase has its own binding constraint and dominant growth pattern (see `references/growth-patterns.md`). Section 10 sequences the move into the next phase. + +### What's already done (acknowledge, then build on) +Table: + +| Asset | Status | Marketing leverage | +|---|---|---| + +This is where past launches, PR moments, content pillars, certifications, notable users get acknowledged. **Critical**: don't write a plan that ignores work the team is proud of. + +### What's in-flight (drafted but not shipped) +Table: + +| Item | Status | Blocker | +|---|---|---| + +Be honest about blockers. Where the blocker is "no time" or "no decision," that goes to Section 13's open decisions. + +### What's stuck (and needs to unstick this quarter) +Table: + +| Issue | Cost of inaction | Action | +|---|---|---| + +Stuck things are the most leverage-positive places to focus the first weeks of the 90-day plan. + +### Audit rubric snapshot +17-section scored snapshot using the embedded current-state rubric. See `references/current-state-rubric.md` for the full rubric and scoring guides. + +If a prior scored audit exists, paste those scores in. Otherwise score from available materials and note "scored from materials" under the heading. + +| # | Section | Score | Note | +|---|---|---|---| +| 1 | Positioning | 0–5 | | +| 2 | Customer research | 0–5 | | +| ... | ... | ... | ... | +| 17 | Internationalization | 0–5 | | + +**Total: X / 85 (Y%).** Note the *shape* of strength and weakness — that shape is the gap the rest of the plan closes. + +**Voice notes:** +- Honest > polished. If the client's metrics are bad, name them. Founders read past sugar-coating. + +--- + +## Section 4 — Acquisition + +**Purpose:** Answer "how do strangers become aware of us?" Map every channel: current state, planned moves, skipped (with reason). + +**Length:** 1000–1800 words. + +**Structure:** + +### Current state +Brief. What's working today, what's not, what the data shows about channel mix. + +### The plan +Numbered "Moves." Each move is a paragraph (3–6 sentences) describing the channel, the thesis, and the specific work. Common moves: + +- **Move 1 — SEO (and content)** — Reference the SEO plan if one exists (`seo/plan.md`). Otherwise: keyword research, pillar/spoke structure, content cadence. +- **Move 2 — App Store / Play Store optimization** (for consumer apps) — Listing rewrite, screenshot tests, ASO keyword targeting. +- **Move 3 — Founder-led channels** — LinkedIn for B2B/SaaS, Twitter/X for tech, Instagram for consumer. Cadence, topics, owners. +- **Move 4 — PR amplification** — What's the credibility anchor? How to amplify it. +- **Move 5 — Events (if applicable)** — Live events, conferences, webinars. Acquisition vs. activation role. +- **Move 6 — Hardware / commerce surface (if applicable)** — Shopify storefront, Amazon, retail. +- **Move 7 — B2B sales support** — Case studies, partner pages, vertical-specific content. +- **Move 8 — Paid layer (when budget unlocks)** — Apple Search Ads, Meta, LinkedIn, Google. Held until specified funding stage. + +### 90-day acquisition moves +Week-by-week breakdown of the ships in the first quarter. + +### 12-month acquisition outlook +Quarter-by-quarter outcome state (Q1 / Q2 / Q3 / Q4). + +### Skills + tools +- **Skills:** list relevant marketing-skills repo skills (`seo-audit`, `ai-seo`, `ads`, `social`, `competitors`, etc.) +- **MCPs / APIs:** list connections (Ahrefs API, GA4 MCP, Typefully MCP, Stripe MCP for LTV math, etc.) + +--- + +## Section 5 — Activation + +**Purpose:** Answer "once someone tries us, do they have an experience that converts?" + +**Length:** 800–1500 words. + +**Structure:** Same as Acquisition (Current state / The plan / 90-day / 12-month / Skills + tools). + +**Common moves:** +- Bedrock fixes (broken signup, broken onboarding gates, etc.) +- Onboarding tests / rebuild (often the most leveraged move at this stage) +- App Store listing rewrite (cross-references to Acquisition) +- Lifecycle Flow ship order (when to ship onboarding emails vs. hold for product stability) +- Paywall + pricing review (often Activation × Revenue) + +### Skills + tools +`onboarding`, `signup`, `paywalls`, `copywriting`, `marketing-website-design`, `ab-testing`, etc. + +--- + +## Section 6 — Retention + +**Purpose:** Answer "once someone converts, do they stay and deepen?" + +**Length:** 800–1500 words. + +**Structure:** Same as above. + +**Common moves:** +- Lifecycle email flows (post-purchase, lapsed user, win-back) +- Subscription / preference centers +- Churn reconciliation (often metric definitions don't match across surfaces) +- Hardware → software activation paths (for hybrid businesses) +- Annual plan default tests (cross-references to Revenue) + +### Skills + tools +`emails`, `churn-prevention`, `copywriting`, `paywalls`, etc. + +--- + +## Section 7 — Referral + +**Purpose:** Answer "do retained users bring more users, and at what cost?" + +**Length:** 500–1200 words. + +**Structure:** Same as above. + +**Common moves:** +- Ambassador / affiliate program launch (if inbound interest exists, lead with it) +- Share-after-value moments built into product +- Founder amplification (founder as referrer-zero) +- Long-game expert / Guides / certified-host network +- Gifting flows (for consumer / hardware) + +### Skills + tools +`referrals`, `social`, `emails` (for ambassador lifecycle), `copywriting`, etc. + +--- + +## Section 8 — Revenue + +**Purpose:** Answer "what do we charge, who pays, and how does it compound?" + +**Length:** 500–1200 words. + +**Structure:** Same as above. + +**Common moves:** +- Pricing audit (what's actually charged today vs. listed?) +- Annual plan default tests +- Hardware → software bundling formalization (for hybrid businesses) +- Storefront / commerce page optimization +- B2B case studies + sales material +- Long-term value pools (data licensing, enterprise expansion) — flagged not executed in 12-month plan + +### Unit economics +Required table: + +| Metric | Value | Note | +|---|---|---| +| ARPC (avg monthly revenue per customer) | $X | Pulled from Stripe / billing | +| Blended CAC | $X | Includes all marketing costs, not just paid | +| Annual retention rate | X% | 1 − annual churn | +| LTV (rough) | $X | ARPC × 12 / annual churn | +| LTV / CAC | X | Health benchmark: > 3 | + +These feed the budget math in Section 10. If any of these are unknown, flag in Section 13 as top open decision. + +### Skills + tools +`pricing`, `paywalls`, `sales-enablement`, `revops`, `ab-testing`, etc. + +--- + +## Section 9 — 90-day roadmap + +**Purpose:** The tactical execution layer. Every move ships within a named week, with an owner. + +**Length:** Tables, not prose. Should fit on one printed page if possible. + +**Structure:** Four 2–3-week sprints: + +### Weeks 1–2 — Unblock +Highest-confidence, lowest-cost changes. Removing things that are broken. + +| Move | Stage | Owner | +|---|---|---| + +### Weeks 3–4 — Foundation +Pillar/foundational work. Domain consolidation. First content. First flows shipping. First tests live. + +### Weeks 5–8 — Velocity +Compounding work begins. Content cadence. Repeat tests. Channel scaling. + +### Weeks 9–12 — Compound +Second-order moves. Layered tactics. 90-day review prep. + +--- + +## Section 10 — 12-month outlook + +**Purpose:** Quarterly milestones with explicit funding-stage capability unlocks named, anchored against a defensible growth pattern. + +**Length:** Four sub-sections, one per quarter. ~250–400 words each. Plus a short framing paragraph at the top naming the budget method and growth pattern. + +### Framing (top of Section 10) + +State explicitly: +- **Budget method used.** Method 1 (Revenue-Based 5–40% of ARR) or Method 2 (Goal-Based formula). See `references/budget-planning.md`. Show the math. +- **Annual budget total** + the experimental buffer (+10–20%). +- **Resulting end-of-year ARR goal.** Honest forecast, not a guarantee — see the forecasting reality check in `references/measurement-framework.md`. +- **Growth pattern expected.** Linear (predictable $X MRR added per month), step-function (plateau between deliberate jumps), or layered S-curves. For VC-backed Series A+, anchor against 3-3-2-2-2 and show whether the plan matches it or explicitly chooses a different trajectory. See `references/growth-patterns.md`. + +### Structure (per quarter) + +#### Q{N} — Months {X}–{Y} + +**Funding state:** {tier} per `funding-stage-unlocks.md` + +**Focus:** One-sentence focus theme for the quarter. + +**Outcomes by end of Q{N}:** +- Bulleted outcome list (5–8 items) + +**KPI targets:** 3–5 specific numerical targets. + +**Channel/Product/Market S-curve position:** Which curves are growing, which are plateauing, which is the next one being staged for this quarter (see `growth-patterns.md` — layering principle). + +--- + +## Section 11 — Marketing operations stack + +**Purpose:** The fCMO differentiator. Show how a small team + agentic tooling executes the plan without hiring at every channel. + +**Length:** Tables + brief explanation. + +**Structure:** + +### The thesis +1–2 paragraphs explaining the principle: small team + marketing-skills library + MCP integrations = output of a larger team. + +### Skills mapped to AARRR stages + +| Stage | Primary skills | Supporting skills | +|---|---|---| +| Acquisition | (list) | (list) | +| Activation | (list) | (list) | +| Retention | (list) | (list) | +| Referral | (list) | (list) | +| Revenue | (list) | (list) | +| Cross-cutting | (list) | (list) | + +### MCPs / APIs mapped to stages + +| Stage | Existing connections | fCMO tooling layer | +|---|---|---| + +### A concrete example +Pick one operational moment that proves the stack works (e.g., "Customer.io MCP let the non-technical founder draft a flow live on the kickoff call"). Anchor the abstract claim in a specific event. + +### Capability unlocks by funding stage + +| Stage | Headcount | Tooling | Channels live | +|---|---|---|---| +| (current) | (list) | (list) | (list) | +| (next round) | (delta) | (delta) | (delta) | +| ... | ... | ... | ... | + +### Team and agency model (RACI) + +Apply the principle from `references/team-and-agency-model.md`: strategy in-house, execution often outsourced. + +| Function | Owned by (internal strategic role) | Executed by (IC / contractor / agency) | +|---|---|---| +| Growth marketing (demand engine) | | | +| Product marketing (story engine) | | | +| Content marketing (trust engine) | | | + +If the team is missing a strategic owner for one of these functions, the first 90-day move (Section 9) should be the hire — Manager or Lead title, π-shaped if possible, not VP/CMO. + +If execution capacity is the gap, name the contractor or small niche agency in the right cell rather than the team's existing IC. + +Pull from `references/funding-stage-unlocks.md`. + +--- + +## Section 12 — Tactical idea bank + +**Purpose:** Cross-reference all 139 ideas from the `marketing-ideas` skill against AARRR stages, with client-specific status. + +**Length:** Long — tables can easily total 150+ rows. + +**Structure:** + +### Intro paragraph +Explain the cross-reference: Sections 4–8 prescribe what's *being done*. This section maps what's *possible*. + +### Status legend + +- **Now (Q1)** — already in 90-day plan +- **Q2** — post-foundation layer-in +- **Q3+** — post-seed-close or post-GA expansion +- **Q4+** — long-game +- **Skip / off-brand** — incompatible with brand voice or business model + +### 12.1 Acquisition ideas + +By status (Now / Q2 / Q3+ / Q4+ / Skip), tables of relevant marketing-ideas by number. + +| # | Idea | Client note | +|---|---|---| + +### 12.2 Activation ideas +### 12.3 Retention ideas +### 12.4 Referral ideas +### 12.5 Revenue ideas +### 12.6 Cross-cutting / brand foundation ideas + +### Idea-bank summary +- Counts per AARRR stage +- Counts skipped, with rationale +- What the plan covers as a % of the available tactical surface area +- What this proves about the client's stage + +Use `references/idea-cross-reference.md` as the source-of-truth mapping. Apply client-specific filters during draft (brand voice rules out some; funding stage shifts timing of others). + +--- + +## Section 13 — Measurement, RACI, open decisions, appendix + +**Purpose:** Operational close. Define how the plan gets measured, who owns what, what's still TBD, and where to find the deeper docs. + +**Structure:** + +### Measurement — the metrics that matter + +**North star (proposed):** One metric that captures the business-model thesis. For Quietude it was blended-LTV-to-blended-CAC; for a B2B SaaS it might be NRR × NPS; for a marketplace, take-rate × monthly transacting users. Make it specific to the company. + +**Leading indicators by AARRR stage:** Table: + +| Stage | Leading indicators | +|---|---| +| Acquisition | ... | +| Activation | ... | +| Retention | ... | +| Referral | ... | +| Revenue | ... | + +**Review cadence:** +- Weekly: who syncs with whom, on what +- Monthly: who reviews what +- Quarterly: plan recalibration trigger + +### RACI + +| Domain | Responsible | Accountable | Consulted | Informed | +|---|---|---|---|---| + +Common domains: strategic plan, brand voice, app/product implementation, lifecycle, SEO content, App Store, founder-led social, events, ambassadors, B2B sales, pricing, investor narrative, future hires. + +### Open decisions blocking the plan + +Ranked by impact. Each is: name + impact + what's blocked. + +1. (highest impact) ... +2. ... +8. (lowest impact) ... + +### Appendix — deep-dive links + +**Published in this repo / shared with team:** {relative paths to docs in the shared repo} + +**Founder-authored strategic context** (internal knowledge base): {names of docs the team has access to outside the plan repo} + +**fCMO working drafts** (not yet published): {names + how to access from author} + +--- + +## Closing line + +```markdown +*{Client} Marketing Plan v1. Prepared by {Author}, {Date}. For team review and discussion.* +``` + +--- + +## Per-section heuristics for "is this section done?" + +- **Section 1** — A non-Quietude reader could understand the company's growth thesis from this alone. +- **Section 2** — Brand voice rules are explicit enough that any new copywriter could follow them. +- **Section 3** — All "in-flight" items have an owner and a blocker named. +- **Sections 4–8** — Each move names a skill (`some-skill`) and a tool (Customer.io MCP / Stripe MCP / Ahrefs / etc.). +- **Section 9** — Every row has an owner. +- **Section 10** — Each quarter names the funding stage explicitly. +- **Section 11** — At least one concrete operational example proves the stack thesis. +- **Section 12** — Skip list has rationale, not just absence. +- **Section 13** — North-star is specific to this company (not generic "ARR growth"). diff --git a/.agents/skills/marketing-plan/references/team-and-agency-model.md b/.agents/skills/marketing-plan/references/team-and-agency-model.md new file mode 100644 index 0000000..9db127d --- /dev/null +++ b/.agents/skills/marketing-plan/references/team-and-agency-model.md @@ -0,0 +1,278 @@ +# Team and Agency Model — Hire for Strategy, Outsource Execution + +The marketing operations stack (Section 11 of every plan) describes *what* gets done. This doc describes *who does it* — the operating principle, the org shape, the first hire, the agency model, and how it evolves as the company scales. + +Excerpted and adapted from *Founding Marketing* by Corey Haines. + +## The principle + +**Strategy lives in-house. Execution can — and often should — be outsourced.** + +Two failure modes are common when founders ignore this: + +1. **Hire junior tactician first.** Founder hits a milestone, raises a round, hires a junior to "do marketing" (run ads, write blogs, post on social). Six months later: scattered tactics, no coherent strategy, disappointing results. +2. **Hire expensive agency for strategy.** Burns cash while the internal team struggles to execute on recommendations they don't fully understand. Strategic insight gathers dust; tactical needs go unmet. + +The traditional advice — "hire full-time for competitive advantages, only use agencies for commoditized work" — made sense when marketing moved slowly and talent stayed for decades. That world is gone. Full-time hires take months to ramp and years to develop deep expertise. The best agencies and contractors deliver results immediately, with cross-industry pattern recognition you couldn't build in-house affordably. + +## What stays in-house + +The strategic heart of the marketing operation. Specifically: + +- **Strategic direction and vision** — the "why" behind every move +- **Customer and market understanding** — only comes from daily immersion in the business +- **Positioning and deep market knowledge** — represents the company's unique place in the market +- **Core product and service delivery** — the heart of the value proposition +- **Long-term institutional knowledge** — the compound interest of experience + +These are not delegatable. An external partner can sharpen the articulation, but the underlying conviction must come from the team. + +## What's safe to outsource + +External expertise shines in specific contexts: + +- **Best-in-class implementation of specialized skills** (paid media operators, technical SEO, video production, designers) +- **Burst capacity** — launch sprints, campaign cycles, one-off content production +- **Well-defined strategies** — when the scope, deliverables, and success metrics are clear +- **Fresh eyes on old problems** — external perspective when the team is too close to see clearly + +The trick is *defining* what's being outsourced. Vague briefs ("help us with marketing") produce vague results. Specific briefs ("ship 20 RSAs across 4 ad groups by month-end with the CTR benchmarks in the brief") produce shippable work. + +## The three core functions + +Every marketing engine has three primary functions. Whether you have a team of 1 or 50, the functions exist — even if one person owns several. + +### Growth Marketing — the demand engine + +- Optimizes campaigns +- Manages the funnel +- Operates distribution channels +- Runs the marketing tech stack +- Data-driven; constantly testing and measuring + +Drives quantitative outcomes: leads, signups, paid traffic, conversion rate, CAC. + +### Product Marketing — the story engine + +- Transforms product benefits into compelling messages +- Powers product launches +- Equips the sales team +- Owns pricing and packaging communication +- Bridges what's built and why people should care + +Drives positioning quality, message-market fit, launch impact, sales enablement. + +### Content Marketing — the trust engine + +- Maintains the brand voice +- Manages the editorial calendar +- Produces content that reaches and teaches the audience +- Proves impact through customer stories +- Shapes industry conversations through thought leadership +- Supports sales with closing content + +Drives organic traffic, brand affinity, thought leadership, trust signals. + +These three functions are interconnected. Growth without story is performance with no positioning. Story without distribution is a great pitch nobody hears. Trust without demand capture is brand affinity that doesn't compound into revenue. + +## The first marketing hire + +The most consequential decision in building the marketing engine isn't about channels or technology — it's who leads. + +**The first marketing hire should be a strategist, not a tactician.** Counterintuitive when there's a mountain of tactical work to ship. Essential for sustainable growth. + +### Look for π-shaped, not T-shaped + +The standard advice is to hire a **T-shaped marketer**: broad knowledge across many areas, deep in one. That's fine for a tactical IC role. + +For the first strategic hire, look for **π-shaped**: two deep skill sets, plus broad surface-level competency across the rest. The two depths create unique leverage through their combination. + +#### High-leverage combinations + +**Product Marketing + Growth Marketing** +- Owns positioning *and* drives distribution +- Crafts the message *and* gets it to market +- No gap between planning and doing +- Best for technical products or complex sales + +**Product Marketing + Content Marketing** +- Translates product into compelling stories +- Owns voice and positioning together +- Creates content that compounds +- Best for thought-leadership or education-driven markets + +**Growth Marketing + Content Marketing** +- Builds the demand engine and the content that fuels it +- Closes the loop between SEO/social distribution and conversion +- Best for content-led growth motions + +The wrong shape for a first hire: deep paid media specialist alone, deep SEO specialist alone, deep designer alone. These are tactical depths; they need a strategic owner above them. + +### Title and progression — don't inflate + +A common mistake: making the first marketing hire a "CMO" or "VP." Creates problems when you actually need to scale the org, because there's no headroom above them. + +The right progression: + +| Title | Scope | +|---|---| +| **Manager** | Individual contributor, co-manages freelancers | +| **Lead** | Senior IC, manages freelancers/agencies | +| **Director / Head** | Manages ICs and vendors | +| **VP** | Manages Directors | +| **Chief (CMO)** | Manages VPs | + +The first hire is almost always **Marketing Manager** or **Marketing Lead**. They should be able to: + +- Define positioning — not just describe what you do, but why it matters +- Identify best channels — from data, not intuition +- Create the messaging framework — consistency across touchpoints +- Build the marketing engine — systems that scale beyond any individual +- Manage external resources — get the most from agencies and contractors + +Both strategic *and* hands-on. Comfortable setting direction and rolling up sleeves. Most importantly: a **builder** — creates processes, frameworks, and systems that scale beyond their individual capacity. + +## The marketing engine — three components + +Think of the marketing organization as an engine. Each part has a specific role; the magic is in how they work together. + +### The Fuel — Strategy + +What powers everything else. Without good fuel, even the best engine sputters. + +- Product marketing creates positioning (foundation of all communication) +- Content marketing develops stories (features → benefits that resonate) +- Brand marketing establishes identity (memorable and meaningful) + +Quality of the fuel determines efficiency. Poor positioning, weak stories, inconsistent branding waste energy regardless of execution. + +### The Engine — Execution + +Where strategy turns into action. + +- Growth marketing drives distribution (right message to the right people) +- Demand gen creates opportunities (attention → interest) +- Operations maintains systems (everything running smoothly) + +Needs to be well-maintained and properly tuned. Right processes, tools, people in place to execute consistently. + +### The Dashboard — Analytics + +How you know if you're heading in the right direction. + +- Metrics track performance (measuring what matters) +- Attribution shows what works (cause and effect) +- Data informs decisions (evidence over opinion) + +Without good instrumentation, flying blind. Need both leading and lagging indicators. + +## Working with agencies — selection framework + +Not all agencies are created equal. Ranked from most appropriate for early-stage to least: + +### Individual contractors +- **Most flexible** — adapt quickly to changing requirements +- **Direct relationship** — no account-management layer +- **Often most cost-effective** — pay for pure expertise +- **Best for** specific skills (paid media op, technical SEO, video editor, designer) + +For most pre-Series-A companies, this is the right answer for nearly all outsourced work. + +### Small niche agencies +- **Specialized expertise** — deep knowledge in specific areas +- **Personal attention** — often working directly with senior team +- **Often founder-led** — experienced practitioners calling the shots +- **Clear focus** — they know what they're good at +- **Best for** specialized needs with some complexity (full SEO program, lifecycle email program, brand identity work) + +### Small generalist agencies +- **Broader capabilities** — handle multiple needs +- **More resources** — team approach to problems +- **Multiple skill sets** — cross-functional +- **Usually more expensive** — paying for convenience +- **Best for** companies needing broader support and willing to pay for the simplicity of fewer relationships + +### Large agencies (not recommended for most startups) +- Long contracts, high minimums, junior account teams, slow turnaround +- Useful only when the brand spend is large enough to command senior attention + +## Setting agencies up for success + +The difference between a successful and failed agency relationship usually comes down to structure and management. + +### Before starting + +- **Define clear objectives** — what specific outcomes are we seeking? +- **Set realistic timelines** — when do we need to see results? +- **Establish communication channels** — how do we stay aligned? +- **Agree on metrics** — what defines success? +- **Document processes** — how do we work together? + +### During engagement + +- **Regular check-ins** — weekly tactical, monthly strategic +- **Clear feedback loops** — both ways, positive and constructive +- **Data sharing** — give them what they need to succeed +- **Performance reviews** — measure against agreed metrics +- **Strategy alignment** — ensure they're moving with the business + +### Red flags + +- **Scope creep beyond core expertise** — trying to do too much +- **High team turnover** — losing institutional knowledge +- **Missed deadlines** — failing to deliver as promised +- **Poor communication** — lack of proactive updates +- **Unclear reporting** — can't demonstrate value + +The best agency relationships feel like partnership: they understand the business, care about success, bring expertise you couldn't build in-house affordably. Takes work on both sides — clear expectations, open communication, mutual respect. + +## Scaling the model by stage + +The right ratio of internal to external resources isn't static. It evolves with stage, needs, and market conditions. + +### Early stage (pre-product-market-fit) + +**Mode:** discovery and iteration + +- **Internal:** 1–2 strategic hires leading the charge (often the founder + one π-shaped marketer) +- **External:** specialized contractors for execution (no long-term commitment) +- **Agency relationships:** project-based, testing approaches before bigger investments +- **North star:** solid foundation while keeping fixed costs low + +### Growth stage (post-PMF, scaling what works) + +**Mode:** optimization + +- **Internal:** small but mighty core strategic team that owns marketing direction +- **External:** balanced mix of contractors and agencies, each chosen for specific expertise +- **Agency relationships:** deeper, longer-term — partners who grow with you +- **North star:** double down on channels and approaches that have proven successful + +### Scale stage (multi-channel, multi-segment) + +**Mode:** coordination + +- **Internal:** larger strategic team focused on coordination and oversight (not execution) +- **External:** specialized agencies, each bringing deep expertise in specific areas of the mix +- **Trusted contractor network:** flexibility for variable workloads and special projects +- **North star:** finding efficiencies, improving processes, maximizing return + +The metaphor: a symphony orchestra. The internal team conducts. External partners play their instruments with expertise. + +## How this informs the plan + +| Section | What to include | +|---|---| +| **3 (Current state)** | Team composition — every person who touches marketing, what they own. Identify where the team is π-shaped vs. T-shaped vs. tactical-only. Flag gaps. | +| **9 (90-day roadmap)** | If the team is missing the strategic owner, the first move is the first marketing hire (Lead or Manager). If the team has strategy but no execution capacity, the first move is the first contractor or specialized agency. | +| **10 (12-month outlook)** | Map team evolution against funding-stage capability unlocks (see `funding-stage-unlocks.md`). When does the second hire come in? When does an agency relationship deepen? | +| **11 (Marketing operations stack)** | RACI is more honest with this model: "owned by" = internal strategic role; "executed by" = internal IC, contractor, or agency. The plan should make it explicit who does what. | +| **13 (Open decisions)** | If "first marketing hire" is open, name it as a top-three decision. If "in-house vs agency" for a specific function is open, frame the tradeoff using this doc's heuristics. | + +## Operational guardrails + +- **Don't title-inflate the first hire.** It paints the org into a corner. +- **Don't outsource positioning.** Even the best agency can articulate it back to you, but only if the conviction came from the team. +- **Don't full-time hire for a six-month sprint.** Use a contractor. The hidden cost of full-time is the months of ramp + the awkwardness of letting them go if the work doesn't compound. +- **Don't agency-hire to delay a strategy conversation.** Agencies execute; they don't replace strategic owners. If the internal team can't tell the agency what to do, the agency can't help. +- **Don't measure team size as a success metric.** Measure output, not headcount. A 4-person team with the right π-shaped leader and great external partners out-performs a 15-person team without strategic clarity. diff --git a/.agents/skills/marketing-psychology/SKILL.md b/.agents/skills/marketing-psychology/SKILL.md new file mode 100644 index 0000000..806c09f --- /dev/null +++ b/.agents/skills/marketing-psychology/SKILL.md @@ -0,0 +1,455 @@ +--- +name: marketing-psychology +description: "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' 'consumer behavior,' 'anchoring,' 'social proof,' 'scarcity,' 'loss aversion,' 'framing,' or 'nudge.' Use this whenever someone wants to understand or leverage how people think and make decisions in a marketing context. For applying psychology to specific pages, see cro; for pricing tactics, see pricing; for copy framing, see copywriting." +metadata: + version: 2.0.0 +--- + +# Marketing Psychology & Mental Models + +You are an expert in applying psychological principles and mental models to marketing. Your goal is to help users understand why people buy, how to influence behavior ethically, and how to make better marketing decisions. + +## How to Use This Skill + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before applying mental models. Use that context to tailor recommendations to the specific product and audience. + +Mental models are thinking tools that help you make better decisions, understand customer behavior, and create more effective marketing. When helping users: + +1. Identify which mental models apply to their situation +2. Explain the psychology behind the model +3. Provide specific marketing applications +4. Suggest how to implement ethically + +--- + +## Foundational Thinking Models + +These models sharpen your strategy and help you solve the right problems. + +### First Principles +Break problems down to basic truths and build solutions from there. Instead of copying competitors, ask "why" repeatedly to find root causes. Use the 5 Whys technique to tunnel down to what really matters. + +**Marketing application**: Don't assume you need content marketing because competitors do. Ask why you need it, what problem it solves, and whether there's a better solution. + +### Jobs to Be Done +People don't buy products—they "hire" them to get a job done. Focus on the outcome customers want, not features. + +**Marketing application**: A drill buyer doesn't want a drill—they want a hole. Frame your product around the job it accomplishes, not its specifications. + +### Circle of Competence +Know what you're good at and stay within it. Venture outside only with proper learning or expert help. + +**Marketing application**: Don't chase every channel. Double down where you have genuine expertise and competitive advantage. + +### Inversion +Instead of asking "How do I succeed?", ask "What would guarantee failure?" Then avoid those things. + +**Marketing application**: List everything that would make your campaign fail—confusing messaging, wrong audience, slow landing page—then systematically prevent each. + +### Occam's Razor +The simplest explanation is usually correct. Avoid overcomplicating strategies or attributing results to complex causes when simple ones suffice. + +**Marketing application**: If conversions dropped, check the obvious first (broken form, page speed) before assuming complex attribution issues. + +### Pareto Principle (80/20 Rule) +Roughly 80% of results come from 20% of efforts. Identify and focus on the vital few. + +**Marketing application**: Find the 20% of channels, customers, or content driving 80% of results. Cut or reduce the rest. + +### Local vs. Global Optima +A local optimum is the best solution nearby, but a global optimum is the best overall. Don't get stuck optimizing the wrong thing. + +**Marketing application**: Optimizing email subject lines (local) won't help if email isn't the right channel (global). Zoom out before zooming in. + +### Theory of Constraints +Every system has one bottleneck limiting throughput. Find and fix that constraint before optimizing elsewhere. + +**Marketing application**: If your funnel converts well but traffic is low, more conversion optimization won't help. Fix the traffic bottleneck first. + +### Opportunity Cost +Every choice has a cost—what you give up by not choosing alternatives. Consider what you're saying no to. + +**Marketing application**: Time spent on a low-ROI channel is time not spent on high-ROI activities. Always compare against alternatives. + +### Law of Diminishing Returns +After a point, additional investment yields progressively smaller gains. + +**Marketing application**: The 10th blog post won't have the same impact as the first. Know when to diversify rather than double down. + +### Second-Order Thinking +Consider not just immediate effects, but the effects of those effects. + +**Marketing application**: A flash sale boosts revenue (first order) but may train customers to wait for discounts (second order). + +### Map ≠ Territory +Models and data represent reality but aren't reality itself. Don't confuse your analytics dashboard with actual customer experience. + +**Marketing application**: Your customer persona is a useful model, but real customers are more complex. Stay in touch with actual users. + +### Probabilistic Thinking +Think in probabilities, not certainties. Estimate likelihoods and plan for multiple outcomes. + +**Marketing application**: Don't bet everything on one campaign. Spread risk and plan for scenarios where your primary strategy underperforms. + +### Barbell Strategy +Combine extreme safety with small high-risk/high-reward bets. Avoid the mediocre middle. + +**Marketing application**: Put 80% of budget into proven channels, 20% into experimental bets. Avoid moderate-risk, moderate-reward middle. + +--- + +## Understanding Buyers & Human Psychology + +These models explain how customers think, decide, and behave. + +### Fundamental Attribution Error +People attribute others' behavior to character, not circumstances. "They didn't buy because they're not serious" vs. "The checkout was confusing." + +**Marketing application**: When customers don't convert, examine your process before blaming them. The problem is usually situational, not personal. + +### Mere Exposure Effect +People prefer things they've seen before. Familiarity breeds liking. + +**Marketing application**: Consistent brand presence builds preference over time. Repetition across channels creates comfort and trust. + +### Availability Heuristic +People judge likelihood by how easily examples come to mind. Recent or vivid events seem more common. + +**Marketing application**: Case studies and testimonials make success feel more achievable. Make positive outcomes easy to imagine. + +### Confirmation Bias +People seek information confirming existing beliefs and ignore contradictory evidence. + +**Marketing application**: Understand what your audience already believes and align messaging accordingly. Fighting beliefs head-on rarely works. + +### The Lindy Effect +The longer something has survived, the longer it's likely to continue. Old ideas often outlast new ones. + +**Marketing application**: Proven marketing principles (clear value props, social proof) outlast trendy tactics. Don't abandon fundamentals for fads. + +### Mimetic Desire +People want things because others want them. Desire is socially contagious. + +**Marketing application**: Show that desirable people want your product. Waitlists, exclusivity, and social proof trigger mimetic desire. + +### Sunk Cost Fallacy +People continue investing in something because of past investment, even when it's no longer rational. + +**Marketing application**: Know when to kill underperforming campaigns. Past spend shouldn't justify future spend if results aren't there. + +### Endowment Effect +People value things more once they own them. + +**Marketing application**: Free trials, samples, and freemium models let customers "own" the product, making them reluctant to give it up. + +### IKEA Effect +People value things more when they've put effort into creating them. + +**Marketing application**: Let customers customize, configure, or build something. Their investment increases perceived value and commitment. + +### Zero-Price Effect +Free isn't just a low price—it's psychologically different. "Free" triggers irrational preference. + +**Marketing application**: Free tiers, free trials, and free shipping have disproportionate appeal. The jump from $1 to $0 is bigger than $2 to $1. + +### Hyperbolic Discounting / Present Bias +People strongly prefer immediate rewards over future ones, even when waiting is more rational. + +**Marketing application**: Emphasize immediate benefits ("Start saving time today") over future ones ("You'll see ROI in 6 months"). + +### Status-Quo Bias +People prefer the current state of affairs. Change requires effort and feels risky. + +**Marketing application**: Reduce friction to switch. Make the transition feel safe and easy. "Import your data in one click." + +### Default Effect +People tend to accept pre-selected options. Defaults are powerful. + +**Marketing application**: Pre-select the plan you want customers to choose. Opt-out beats opt-in for subscriptions (ethically applied). + +### Paradox of Choice +Too many options overwhelm and paralyze. Fewer choices often lead to more decisions. + +**Marketing application**: Limit options. Three pricing tiers beat seven. Recommend a single "best for most" option. + +### Goal-Gradient Effect +People accelerate effort as they approach a goal. Progress visualization motivates action. + +**Marketing application**: Show progress bars, completion percentages, and "almost there" messaging to drive completion. + +### Peak-End Rule +People judge experiences by the peak (best or worst moment) and the end, not the average. + +**Marketing application**: Design memorable peaks (surprise upgrades, delightful moments) and strong endings (thank you pages, follow-up emails). + +### Zeigarnik Effect +Unfinished tasks occupy the mind more than completed ones. Open loops create tension. + +**Marketing application**: "You're 80% done" creates pull to finish. Incomplete profiles, abandoned carts, and cliffhangers leverage this. + +### Pratfall Effect +Competent people become more likable when they show a small flaw. Perfection is less relatable. + +**Marketing application**: Admitting a weakness ("We're not the cheapest, but...") can increase trust and differentiation. + +### Curse of Knowledge +Once you know something, you can't imagine not knowing it. Experts struggle to explain simply. + +**Marketing application**: Your product seems obvious to you but confusing to newcomers. Test copy with people unfamiliar with your space. + +### Mental Accounting +People treat money differently based on its source or intended use, even though money is fungible. + +**Marketing application**: Frame costs in favorable mental accounts. "$3/day" feels different than "$90/month" even though it's the same. + +### Regret Aversion +People avoid actions that might cause regret, even if the expected outcome is positive. + +**Marketing application**: Address regret directly. Money-back guarantees, free trials, and "no commitment" messaging reduce regret fear. + +### Bandwagon Effect / Social Proof +People follow what others are doing. Popularity signals quality and safety. + +**Marketing application**: Show customer counts, testimonials, logos, reviews, and "trending" indicators. Numbers create confidence. + +--- + +## Influencing Behavior & Persuasion + +These models help you ethically influence customer decisions. + +### Reciprocity Principle +People feel obligated to return favors. Give first, and people want to give back. + +**Marketing application**: Free content, free tools, and generous free tiers create reciprocal obligation. Give value before asking for anything. + +### Commitment & Consistency +Once people commit to something, they want to stay consistent with that commitment. + +**Marketing application**: Get small commitments first (email signup, free trial). People who've taken one step are more likely to take the next. + +### Authority Bias +People defer to experts and authority figures. Credentials and expertise create trust. + +**Marketing application**: Feature expert endorsements, certifications, "featured in" logos, and thought leadership content. + +### Liking / Similarity Bias +People say yes to those they like and those similar to themselves. + +**Marketing application**: Use relatable spokespeople, founder stories, and community language. "Built by marketers for marketers" signals similarity. + +### Unity Principle +Shared identity drives influence. "One of us" is powerful. + +**Marketing application**: Position your brand as part of the customer's tribe. Use insider language and shared values. + +### Scarcity / Urgency Heuristic +Limited availability increases perceived value. Scarcity signals desirability. + +**Marketing application**: Limited-time offers, low-stock warnings, and exclusive access create urgency. Only use when genuine. + +### Foot-in-the-Door Technique +Start with a small request, then escalate. Compliance with small requests leads to compliance with larger ones. + +**Marketing application**: Free trial → paid plan → annual plan → enterprise. Each step builds on the last. + +### Door-in-the-Face Technique +Start with an unreasonably large request, then retreat to what you actually want. The contrast makes the second request seem reasonable. + +**Marketing application**: Show enterprise pricing first, then reveal the affordable starter plan. The contrast makes it feel like a deal. + +### Loss Aversion / Prospect Theory +Losses feel roughly twice as painful as equivalent gains feel good. People will work harder to avoid losing than to gain. + +**Marketing application**: Frame in terms of what they'll lose by not acting. "Don't miss out" beats "You could gain." + +### Anchoring Effect +The first number people see heavily influences subsequent judgments. + +**Marketing application**: Show the higher price first (original price, competitor price, enterprise tier) to anchor expectations. + +### Decoy Effect +Adding a third, inferior option makes one of the original two look better. + +**Marketing application**: A "decoy" pricing tier that's clearly worse value makes your preferred tier look like the obvious choice. + +### Framing Effect +How something is presented changes how it's perceived. Same facts, different frames. + +**Marketing application**: "90% success rate" vs. "10% failure rate" are identical but feel different. Frame positively. + +### Contrast Effect +Things seem different depending on what they're compared to. + +**Marketing application**: Show the "before" state clearly. The contrast with your "after" makes improvements vivid. + +--- + +## Pricing Psychology + +These models specifically address how people perceive and respond to prices. + +### Charm Pricing / Left-Digit Effect +Prices ending in 9 seem significantly lower than the next round number. $99 feels much cheaper than $100. + +**Marketing application**: Use .99 or .95 endings for value-focused products. The left digit dominates perception. + +### Rounded-Price (Fluency) Effect +Round numbers feel premium and are easier to process. $100 signals quality; $99 signals value. + +**Marketing application**: Use round prices for premium products ($500/month), charm prices for value products ($497/month). + +### Rule of 100 +For prices under $100, percentage discounts seem larger ("20% off"). For prices over $100, absolute discounts seem larger ("$50 off"). + +**Marketing application**: $80 product: "20% off" beats "$16 off." $500 product: "$100 off" beats "20% off." + +### Price Relativity / Good-Better-Best +People judge prices relative to options presented. A middle tier seems reasonable between cheap and expensive. + +**Marketing application**: Three tiers where the middle is your target. The expensive tier makes it look reasonable; the cheap tier provides an anchor. + +### Mental Accounting (Pricing) +Framing the same price differently changes perception. + +**Marketing application**: "$1/day" feels cheaper than "$30/month." "Less than your morning coffee" reframes the expense. + +--- + +## Design & Delivery Models + +These models help you design effective marketing systems. + +### Hick's Law +Decision time increases with the number and complexity of choices. More options = slower decisions = more abandonment. + +**Marketing application**: Simplify choices. One clear CTA beats three. Fewer form fields beat more. + +### AIDA Funnel +Attention → Interest → Desire → Action. The classic customer journey model. + +**Marketing application**: Structure pages and campaigns to move through each stage. Capture attention before building desire. + +### Rule of 7 +Prospects need roughly 7 touchpoints before converting. One ad rarely converts; sustained presence does. + +**Marketing application**: Build multi-touch campaigns across channels. Retargeting, email sequences, and consistent presence compound. + +### Nudge Theory / Choice Architecture +Small changes in how choices are presented significantly influence decisions. + +**Marketing application**: Default selections, strategic ordering, and friction reduction guide behavior without restricting choice. + +### BJ Fogg Behavior Model +Behavior = Motivation × Ability × Prompt. All three must be present for action. + +**Marketing application**: High motivation but hard to do = won't happen. Easy to do but no prompt = won't happen. Design for all three. + +### EAST Framework +Make desired behaviors: Easy, Attractive, Social, Timely. + +**Marketing application**: Reduce friction (easy), make it appealing (attractive), show others doing it (social), ask at the right moment (timely). + +### COM-B Model +Behavior requires: Capability, Opportunity, Motivation. + +**Marketing application**: Can they do it (capability)? Is the path clear (opportunity)? Do they want to (motivation)? Address all three. + +### Activation Energy +The initial energy required to start something. High activation energy prevents action even if the task is easy overall. + +**Marketing application**: Reduce starting friction. Pre-fill forms, offer templates, show quick wins. Make the first step trivially easy. + +### North Star Metric +One metric that best captures the value you deliver to customers. Focus creates alignment. + +**Marketing application**: Identify your North Star (active users, completed projects, revenue per customer) and align all efforts toward it. + +### The Cobra Effect +When incentives backfire and produce the opposite of intended results. + +**Marketing application**: Test incentive structures. A referral bonus might attract low-quality referrals gaming the system. + +--- + +## Growth & Scaling Models + +These models explain how marketing compounds and scales. + +### Feedback Loops +Output becomes input, creating cycles. Positive loops accelerate growth; negative loops create decline. + +**Marketing application**: Build virtuous cycles: more users → more content → better SEO → more users. Identify and strengthen positive loops. + +### Compounding +Small, consistent gains accumulate into large results over time. Early gains matter most. + +**Marketing application**: Consistent content, SEO, and brand building compound. Start early; benefits accumulate exponentially. + +### Network Effects +A product becomes more valuable as more people use it. + +**Marketing application**: Design features that improve with more users: shared workspaces, integrations, marketplaces, communities. + +### Flywheel Effect +Sustained effort creates momentum that eventually maintains itself. Hard to start, easy to maintain. + +**Marketing application**: Content → traffic → leads → customers → case studies → more content. Each element powers the next. + +### Switching Costs +The price (time, money, effort, data) of changing to a competitor. High switching costs create retention. + +**Marketing application**: Increase switching costs ethically: integrations, data accumulation, workflow customization, team adoption. + +### Exploration vs. Exploitation +Balance trying new things (exploration) with optimizing what works (exploitation). + +**Marketing application**: Don't abandon working channels for shiny new ones, but allocate some budget to experiments. + +### Critical Mass / Tipping Point +The threshold after which growth becomes self-sustaining. + +**Marketing application**: Focus resources on reaching critical mass in one segment before expanding. Depth before breadth. + +### Survivorship Bias +Focusing on successes while ignoring failures that aren't visible. + +**Marketing application**: Study failed campaigns, not just successful ones. The viral hit you're copying had 99 failures you didn't see. + +--- + +## Quick Reference + +When facing a marketing challenge, consider: + +| Challenge | Relevant Models | +|-----------|-----------------| +| Low conversions | Hick's Law, Activation Energy, BJ Fogg, Friction | +| Price objections | Anchoring, Framing, Mental Accounting, Loss Aversion | +| Building trust | Authority, Social Proof, Reciprocity, Pratfall Effect | +| Increasing urgency | Scarcity, Loss Aversion, Zeigarnik Effect | +| Retention/churn | Endowment Effect, Switching Costs, Status-Quo Bias | +| Growth stalling | Theory of Constraints, Local vs Global Optima, Compounding | +| Decision paralysis | Paradox of Choice, Default Effect, Nudge Theory | +| Onboarding | Goal-Gradient, IKEA Effect, Commitment & Consistency | + +--- + +## Task-Specific Questions + +1. What specific behavior are you trying to influence? +2. What does your customer believe before encountering your marketing? +3. Where in the journey (awareness → consideration → decision) is this? +4. What's currently preventing the desired action? +5. Have you tested this with real customers? + +--- + +## Related Skills + +- **cro**: Apply psychology to page optimization +- **copywriting**: Write copy using psychological principles +- **popups**: Use triggers and psychology in popups +- **pricing-page optimization**: See cro for pricing psychology +- **ab-testing**: Test psychological hypotheses diff --git a/.agents/skills/marketing-psychology/evals/evals.json b/.agents/skills/marketing-psychology/evals/evals.json new file mode 100644 index 0000000..09bda2f --- /dev/null +++ b/.agents/skills/marketing-psychology/evals/evals.json @@ -0,0 +1,88 @@ +{ + "skill_name": "marketing-psychology", + "evals": [ + { + "id": 1, + "prompt": "How can I use psychology to increase conversions on our pricing page? We sell a B2B SaaS tool with three tiers ($29, $79, $199/month).", + "expected_output": "Should check for product-marketing.md first. Should apply relevant pricing psychology models: anchoring (show the highest plan first or use a decoy), charm pricing (consider $29 vs $30), Rule of 100 (percentage vs dollar discounts), Good-Better-Best framing, loss aversion (show what they miss on lower tiers). Should also apply broader persuasion models: social proof near pricing, scarcity for limited-time offers, default effect (pre-select recommended plan). Should provide specific, actionable recommendations tied to their price points.", + "assertions": [ + "Checks for product-marketing.md", + "Applies pricing psychology models (anchoring, charm pricing, Rule of 100)", + "Applies Good-Better-Best framing", + "Applies loss aversion to tier differentiation", + "Applies social proof near pricing", + "Provides specific recommendations for their price points", + "References specific mental models by name" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Explain the scarcity principle and how to use it ethically in SaaS marketing without being manipulative.", + "expected_output": "Should explain scarcity as a mental model (limited availability increases perceived value). Should provide legitimate SaaS applications: limited beta spots, early-bird pricing with real deadlines, limited-time feature access, cohort-based launches. Should distinguish ethical scarcity (real constraints) from manufactured urgency (fake countdown timers, artificial limits). Should provide specific examples and implementation guidance. Should reference related models (urgency, FOMO, loss aversion).", + "assertions": [ + "Explains scarcity principle clearly", + "Provides legitimate SaaS applications", + "Distinguishes ethical from manipulative use", + "Provides specific examples", + "References related mental models", + "Addresses ethical considerations directly" + ], + "files": [] + }, + { + "id": 3, + "prompt": "what psychological principles should I use to write better marketing copy?", + "expected_output": "Should trigger on casual phrasing. Should recommend copy-relevant mental models from the skill's taxonomy: social proof, reciprocity, loss aversion, anchoring, scarcity, IKEA Effect, Endowment Effect, Commitment & Consistency. For each principle, should explain what it is and provide a specific copywriting application. Should reference the quick reference table by challenge. Should organize by where in the copy each principle applies (headlines, body, CTAs, testimonials).", + "assertions": [ + "Triggers on casual phrasing", + "Recommends copy-relevant mental models", + "Explains each principle briefly", + "Provides specific copywriting application per principle", + "Organizes by where each applies in copy", + "References multiple model categories" + ], + "files": [] + }, + { + "id": 4, + "prompt": "I'm designing an onboarding flow and want to use behavioral psychology to increase activation. What models should I apply?", + "expected_output": "Should apply design and behavioral models from the skill's taxonomy: Goal-Gradient Effect (motivation increases near goal), Hick's Law (reduce choices), IKEA Effect (let users build something), Endowment Effect (let them experience ownership), Zeigarnik Effect (incomplete tasks drive completion), Commitment & Consistency (small asks first). Should explain how each applies to onboarding specifically. Should provide actionable recommendations for each model.", + "assertions": [ + "Applies Goal-Gradient Effect", + "Applies Hick's Law", + "Applies IKEA Effect or Endowment Effect", + "Applies Zeigarnik Effect or commitment principles", + "Explains how each applies to onboarding", + "Provides actionable recommendations per model" + ], + "files": [] + }, + { + "id": 5, + "prompt": "What's the psychology behind why free trials work better than freemium for some products?", + "expected_output": "Should apply relevant mental models: loss aversion (trial users fear losing access), endowment effect (they feel ownership after using), sunk cost (time invested during trial), Zero-Price Effect (free removes psychological barrier to start), status quo bias (inertia to keep what they have). Should explain how these models interact in trial vs freemium contexts. Should note when each model works best (trial for products with high activation effort, freemium for products with network effects).", + "assertions": [ + "Applies loss aversion to trial context", + "Applies endowment effect", + "Applies Zero-Price Effect", + "Explains how models interact in trial vs freemium", + "Notes when each approach works best", + "Provides clear, educational explanation" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Help me run an A/B test on which psychological principle works better for our CTA — scarcity vs social proof.", + "expected_output": "Should recognize this is an A/B test setup task, not a psychology task. Should defer to or cross-reference the ab-testing skill for the experiment design. May provide psychological context on both principles to inform the hypothesis, but should make clear that ab-testing is the right skill for designing and running the experiment.", + "assertions": [ + "Recognizes this as an A/B test setup task", + "References or defers to ab-testing skill", + "May provide psychological context for hypothesis", + "Does not attempt full test design using psychology patterns" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/product-marketing/SKILL.md b/.agents/skills/product-marketing/SKILL.md new file mode 100644 index 0000000..850235c --- /dev/null +++ b/.agents/skills/product-marketing/SKILL.md @@ -0,0 +1,241 @@ +--- +name: product-marketing +description: "When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' 'who is my target audience,' 'describe my product,' 'ICP,' 'ideal customer profile,' or wants to avoid repeating foundational information across marketing tasks. Use this at the start of any new project before using other marketing skills — it creates `.agents/product-marketing.md` that all other skills reference for product, audience, and positioning context." +metadata: + version: 2.0.0 +--- + +# Product Marketing Context + +You help users create and maintain a product marketing context document. This captures foundational positioning and messaging information that other marketing skills reference, so users don't repeat themselves. + +The document is stored at `.agents/product-marketing.md`. + +## Workflow + +### Step 1: Check for Existing Context + +First, check if `.agents/product-marketing.md` already exists. Also check `.claude/product-marketing.md` and the legacy filename `product-marketing-context.md` (in either `.agents/` or `.claude/`) for older setups — if found anywhere other than `.agents/product-marketing.md`, offer to move it to the canonical location. + +**If it exists:** +- Read it and summarize what's captured +- Ask which sections they want to update +- Only gather info for those sections + +**If it doesn't exist, offer two options:** + +1. **Auto-draft from codebase** (recommended): You'll study the repo—README, landing pages, marketing copy, package.json, etc.—and draft a V1 of the context document. The user then reviews, corrects, and fills gaps. This is faster than starting from scratch. + +2. **Start from scratch**: Walk through each section conversationally, gathering info one section at a time. + +Most users prefer option 1. After presenting the draft, ask: "What needs correcting? What's missing?" + +### Step 2: Gather Information + +**If auto-drafting:** +1. Read the codebase: README, landing pages, marketing copy, about pages, meta descriptions, package.json, any existing docs +2. Draft all sections based on what you find +3. Present the draft and ask what needs correcting or is missing +4. Iterate until the user is satisfied + +**If starting from scratch:** +Walk through each section below conversationally, one at a time. Don't dump all questions at once. + +For each section: +1. Briefly explain what you're capturing +2. Ask relevant questions +3. Confirm accuracy +4. Move to the next + +Push for verbatim customer language — exact phrases are more valuable than polished descriptions because they reflect how customers actually think and speak, which makes copy more resonant. + +--- + +## Sections to Capture + +### 1. Product Overview +- One-line description +- What it does (2-3 sentences) +- Product category (what "shelf" you sit on—how customers search for you) +- Product type (SaaS, marketplace, e-commerce, service, etc.) +- Business model and pricing + +### 2. Target Audience +- Target company type (industry, size, stage) +- Target decision-makers (roles, departments) +- Primary use case (the main problem you solve) +- Jobs to be done (2-3 things customers "hire" you for) +- Specific use cases or scenarios + +### 3. Personas (B2B only) +If multiple stakeholders are involved in buying, capture for each: +- User, Champion, Decision Maker, Financial Buyer, Technical Influencer +- What each cares about, their challenge, and the value you promise them + +### 4. Problems & Pain Points +- Core challenge customers face before finding you +- Why current solutions fall short +- What it costs them (time, money, opportunities) +- Emotional tension (stress, fear, doubt) + +### 5. Competitive Landscape +- **Direct competitors**: Same solution, same problem (e.g., Calendly vs SavvyCal) +- **Secondary competitors**: Different solution, same problem (e.g., Calendly vs Superhuman scheduling) +- **Indirect competitors**: Conflicting approach (e.g., Calendly vs personal assistant) +- How each falls short for customers + +### 6. Differentiation +- Key differentiators (capabilities alternatives lack) +- How you solve it differently +- Why that's better (benefits) +- Why customers choose you over alternatives + +### 7. Objections & Anti-Personas +- Top 3 objections heard in sales and how to address them +- Who is NOT a good fit (anti-persona) + +### 8. Switching Dynamics +The JTBD Four Forces: +- **Push**: What frustrations drive them away from current solution +- **Pull**: What attracts them to you +- **Habit**: What keeps them stuck with current approach +- **Anxiety**: What worries them about switching + +### 9. Customer Language +- How customers describe the problem (verbatim) +- How they describe your solution (verbatim) +- Words/phrases to use +- Words/phrases to avoid +- Glossary of product-specific terms + +### 10. Brand Voice +- Tone (professional, casual, playful, etc.) +- Communication style (direct, conversational, technical) +- Brand personality (3-5 adjectives) + +### 11. Proof Points +- Key metrics or results to cite +- Notable customers/logos +- Testimonial snippets +- Main value themes and supporting evidence + +### 12. Goals +- Primary business goal +- Key conversion action (what you want people to do) +- Current metrics (if known) + +--- + +## Step 3: Create the Document + +After gathering information, create `.agents/product-marketing.md` with this structure: + +```markdown +# Product Marketing Context + +*Last updated: [date]* + +## Product Overview +**One-liner:** +**What it does:** +**Product category:** +**Product type:** +**Business model:** + +## Target Audience +**Target companies:** +**Decision-makers:** +**Primary use case:** +**Jobs to be done:** +- +**Use cases:** +- + +## Personas +| Persona | Cares about | Challenge | Value we promise | +|---------|-------------|-----------|------------------| +| | | | | + +## Problems & Pain Points +**Core problem:** +**Why alternatives fall short:** +- +**What it costs them:** +**Emotional tension:** + +## Competitive Landscape +**Direct:** [Competitor] — falls short because... +**Secondary:** [Approach] — falls short because... +**Indirect:** [Alternative] — falls short because... + +## Differentiation +**Key differentiators:** +- +**How we do it differently:** +**Why that's better:** +**Why customers choose us:** + +## Objections +| Objection | Response | +|-----------|----------| +| | | + +**Anti-persona:** + +## Switching Dynamics +**Push:** +**Pull:** +**Habit:** +**Anxiety:** + +## Customer Language +**How they describe the problem:** +- "[verbatim]" +**How they describe us:** +- "[verbatim]" +**Words to use:** +**Words to avoid:** +**Glossary:** +| Term | Meaning | +|------|---------| +| | | + +## Brand Voice +**Tone:** +**Style:** +**Personality:** + +## Proof Points +**Metrics:** +**Customers:** +**Testimonials:** +> "[quote]" — [who] +**Value themes:** +| Theme | Proof | +|-------|-------| +| | | + +## Goals +**Business goal:** +**Conversion action:** +**Current metrics:** +``` + +--- + +## Step 4: Confirm and Save + +- Show the completed document +- Ask if anything needs adjustment +- Save to `.agents/product-marketing.md` +- Tell them: "Other marketing skills will now use this context automatically. Run `/product-marketing` anytime to update it." + +--- + +## Tips + +- **Be specific**: Ask "What's the #1 frustration that brings them to you?" not "What problem do they solve?" +- **Capture exact words**: Customer language beats polished descriptions +- **Ask for examples**: "Can you give me an example?" unlocks better answers +- **Validate as you go**: Summarize each section and confirm before moving on +- **Skip what doesn't apply**: Not every product needs all sections (e.g., Personas for B2C) diff --git a/.agents/skills/product-marketing/evals/evals.json b/.agents/skills/product-marketing/evals/evals.json new file mode 100644 index 0000000..4db06e9 --- /dev/null +++ b/.agents/skills/product-marketing/evals/evals.json @@ -0,0 +1,85 @@ +{ + "skill_name": "product-marketing", + "evals": [ + { + "id": 1, + "prompt": "I want to set up my product marketing context. We're a B2B SaaS company that sells a customer feedback platform to product teams.", + "expected_output": "Should check if .agents/product-marketing.md already exists. If not, should offer two options: (1) Auto-draft from codebase (recommended) or (2) Start from scratch. If user chooses start from scratch, should walk through sections conversationally one at a time. Should cover all applicable sections: Product Overview, Target Audience, Personas, Problems You Solve, Competitive Landscape, Differentiation, Objections, Switching Dynamics, Customer Language, Brand Voice, Proof Points, and Goals. Should create the file at .agents/product-marketing.md when complete.", + "assertions": [ + "Checks for existing product-marketing.md", + "Offers two options: auto-draft or start from scratch", + "Covers applicable sections", + "Walks through sections conversationally one at a time", + "Creates file at .agents/product-marketing.md" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Update our product marketing context. We just added a new enterprise tier and our target audience has expanded to include VP of Engineering, not just Product Managers.", + "expected_output": "Should check for existing .agents/product-marketing.md and read it. Should identify which sections need updating based on the changes: Target Audience (add VP of Engineering), Personas (add new persona), Product Overview (new enterprise tier, including pricing updates within that section), Objections (enterprise-specific), and Competitive Landscape (enterprise competitors). Should update only the relevant sections, preserving existing content that hasn't changed.", + "assertions": [ + "Reads existing product-marketing.md", + "Identifies sections that need updating", + "Updates Target Audience with VP of Engineering", + "Adds new persona for the expanded audience", + "Updates Product Overview for enterprise tier", + "Preserves unchanged sections" + ], + "files": [] + }, + { + "id": 3, + "prompt": "create a product context doc for my app. it's a mobile app that helps people find hiking trails. we're just getting started.", + "expected_output": "Should trigger on casual phrasing. Should check for existing context doc. Should offer auto-draft or start-from-scratch options. Should adapt questions for an early-stage B2C mobile app (outdoor/fitness niche). Should note that some sections may be sparse for an early-stage product and that's okay — they can be filled in as the business matures. Should skip non-applicable sections (e.g., Personas section is B2B-focused) rather than forcing all 12. Should accept lighter answers for sections like Proof Points or Competitive Landscape if the company is new.", + "assertions": [ + "Triggers on casual phrasing", + "Checks for existing context doc", + "Offers auto-draft or start-from-scratch options", + "Adapts questions for early-stage B2C mobile app", + "Notes some sections may be sparse early on", + "Skips non-applicable sections rather than forcing all 12", + "Creates file at .agents/product-marketing.md" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Can you auto-draft our product marketing context from our existing codebase and marketing materials?", + "expected_output": "Should activate the auto-draft workflow mode. Should scan the codebase for existing marketing context: README, landing page copy, pricing page, about page, meta descriptions, any existing documentation. Should draft the product-marketing.md from what it finds, filling in sections where information is available and flagging sections that need manual input. Should present the draft for review before saving.", + "assertions": [ + "Activates auto-draft workflow mode", + "Scans codebase for existing marketing materials", + "Drafts context from found information", + "Flags sections needing manual input", + "Presents draft for review before saving" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Do we have a product marketing context set up? I want to make sure the other marketing skills have context about our product.", + "expected_output": "Should check for .agents/product-marketing.md (and the older .claude/product-marketing.md location). Should report whether it exists and summarize its contents if found. If it doesn't exist, should offer to create one and explain why it's valuable (other skills like copywriting, cro, seo-audit check for it first). Should explain how other skills use this context document.", + "assertions": [ + "Checks both file locations", + "Reports whether context doc exists", + "Summarizes contents if found", + "Offers to create if missing", + "Explains how other skills use it" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Write homepage copy for our SaaS product.", + "expected_output": "Should recognize this is a copywriting task, not a product marketing context task. Should check for product-marketing.md (as other skills do), and if it doesn't exist, may suggest creating one first. But should defer to the copywriting skill for actually writing the homepage copy.", + "assertions": [ + "Recognizes this as a copywriting task", + "May check for or suggest creating product-marketing.md", + "References or defers to copywriting skill for the actual copy", + "Does not attempt to write homepage copy using context creation patterns" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/programmatic-seo/SKILL.md b/.agents/skills/programmatic-seo/SKILL.md new file mode 100644 index 0000000..e96bf82 --- /dev/null +++ b/.agents/skills/programmatic-seo/SKILL.md @@ -0,0 +1,238 @@ +--- +name: programmatic-seo +description: When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions "programmatic SEO," "template pages," "pages at scale," "directory pages," "location pages," "[keyword] + [city] pages," "comparison pages," "integration pages," "building many pages for SEO," "pSEO," "generate 100 pages," "data-driven pages," or "templated landing pages." Use this whenever someone wants to create many similar pages targeting different keywords or locations. For auditing existing SEO issues, see seo-audit. For content strategy planning, see content-strategy. +metadata: + version: 2.0.0 +--- + +# Programmatic SEO + +You are an expert in programmatic SEO—building SEO-optimized pages at scale using templates and data. Your goal is to create pages that rank, provide value, and avoid thin content penalties. + +## Initial Assessment + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Before designing a programmatic SEO strategy, understand: + +1. **Business Context** + - What's the product/service? + - Who is the target audience? + - What's the conversion goal for these pages? + +2. **Opportunity Assessment** + - What search patterns exist? + - How many potential pages? + - What's the search volume distribution? + +3. **Competitive Landscape** + - Who ranks for these terms now? + - What do their pages look like? + - Can you realistically compete? + +--- + +## Core Principles + +### 1. Unique Value Per Page +- Every page must provide value specific to that page +- Not just swapped variables in a template +- Maximize unique content—the more differentiated, the better + +### 2. Proprietary Data Wins +Hierarchy of data defensibility: +1. Proprietary (you created it) +2. Product-derived (from your users) +3. User-generated (your community) +4. Licensed (exclusive access) +5. Public (anyone can use—weakest) + +### 3. Clean URL Structure +**Use subfolders, not subdomains** — subfolders consolidate domain authority while subdomains split it: +- Good: `yoursite.com/templates/resume/` +- Bad: `templates.yoursite.com/resume/` + +### 4. Genuine Search Intent Match +Pages must actually answer what people are searching for. + +### 5. Quality Over Quantity +Better to have 100 great pages than 10,000 thin ones. + +### 6. Avoid Google Penalties +- No doorway pages +- No keyword stuffing +- No duplicate content +- Genuine utility for users + +--- + +## The 12 Playbooks (Overview) + +| Playbook | Pattern | Example | +|----------|---------|---------| +| Templates | "[Type] template" | "resume template" | +| Curation | "best [category]" | "best website builders" | +| Conversions | "[X] to [Y]" | "$10 USD to GBP" | +| Comparisons | "[X] vs [Y]" | "webflow vs wordpress" | +| Examples | "[type] examples" | "landing page examples" | +| Locations | "[service] in [location]" | "dentists in austin" | +| Personas | "[product] for [audience]" | "crm for real estate" | +| Integrations | "[product A] [product B] integration" | "slack asana integration" | +| Glossary | "what is [term]" | "what is pSEO" | +| Translations | Content in multiple languages | Localized content | +| Directory | "[category] tools" | "ai copywriting tools" | +| Profiles | "[entity name]" | "stripe ceo" | + +**For detailed playbook implementation**: See [references/playbooks.md](references/playbooks.md) + +--- + +## Choosing Your Playbook + +| If you have... | Consider... | +|----------------|-------------| +| Proprietary data | Directories, Profiles | +| Product with integrations | Integrations | +| Design/creative product | Templates, Examples | +| Multi-segment audience | Personas | +| Local presence | Locations | +| Tool or utility product | Conversions | +| Content/expertise | Glossary, Curation | +| Competitor landscape | Comparisons | + +You can layer multiple playbooks (e.g., "Best coworking spaces in San Diego"). + +--- + +## Implementation Framework + +### 1. Keyword Pattern Research + +**Identify the pattern:** +- What's the repeating structure? +- What are the variables? +- How many unique combinations exist? + +**Validate demand:** +- Aggregate search volume +- Volume distribution (head vs. long tail) +- Trend direction + +### 2. Data Requirements + +**Identify data sources:** +- What data populates each page? +- Is it first-party, scraped, licensed, public? +- How is it updated? + +### 3. Template Design + +**Page structure:** +- Header with target keyword +- Unique intro (not just variables swapped) +- Data-driven sections +- Related pages / internal links +- CTAs appropriate to intent + +**Ensuring uniqueness:** +- Each page needs unique value +- Conditional content based on data +- Original insights/analysis per page + +### 4. Internal Linking Architecture + +**Hub and spoke model:** +- Hub: Main category page +- Spokes: Individual programmatic pages +- Cross-links between related spokes + +**Avoid orphan pages:** +- Every page reachable from main site +- XML sitemap for all pages +- Breadcrumbs with structured data + +### 5. Indexation Strategy + +- Prioritize high-volume patterns +- Noindex very thin variations +- Manage crawl budget thoughtfully +- Separate sitemaps by page type + +--- + +## Quality Checks + +### Pre-Launch Checklist + +**Content quality:** +- [ ] Each page provides unique value +- [ ] Answers search intent +- [ ] Readable and useful + +**Technical SEO:** +- [ ] Unique titles and meta descriptions +- [ ] Proper heading structure +- [ ] Schema markup implemented +- [ ] Page speed acceptable + +**Internal linking:** +- [ ] Connected to site architecture +- [ ] Related pages linked +- [ ] No orphan pages + +**Indexation:** +- [ ] In XML sitemap +- [ ] Crawlable +- [ ] No conflicting noindex + +### Post-Launch Monitoring + +Track: Indexation rate, Rankings, Traffic, Engagement, Conversion + +Watch for: Thin content warnings, Ranking drops, Manual actions, Crawl errors + +--- + +## Common Mistakes + +- **Thin content**: Just swapping city names in identical content +- **Keyword cannibalization**: Multiple pages targeting same keyword +- **Over-generation**: Creating pages with no search demand +- **Poor data quality**: Outdated or incorrect information +- **Ignoring UX**: Pages exist for Google, not users + +--- + +## Output Format + +### Strategy Document +- Opportunity analysis +- Implementation plan +- Content guidelines + +### Page Template +- URL structure +- Title/meta templates +- Content outline +- Schema markup + +--- + +## Task-Specific Questions + +1. What keyword patterns are you targeting? +2. What data do you have (or can acquire)? +3. How many pages are you planning? +4. What does your site authority look like? +5. Who currently ranks for these terms? +6. What's your technical stack? + +--- + +## Related Skills + +- **seo-audit**: For auditing programmatic pages after launch +- **schema**: For adding structured data +- **site-architecture**: For page hierarchy, URL structure, and internal linking +- **competitors**: For comparison page frameworks diff --git a/.agents/skills/programmatic-seo/evals/evals.json b/.agents/skills/programmatic-seo/evals/evals.json new file mode 100644 index 0000000..d953573 --- /dev/null +++ b/.agents/skills/programmatic-seo/evals/evals.json @@ -0,0 +1,94 @@ +{ + "skill_name": "programmatic-seo", + "evals": [ + { + "id": 1, + "prompt": "We want to create programmatic SEO pages for our CRM. We're thinking of 'CRM for [industry]' pages — like 'CRM for Real Estate,' 'CRM for Healthcare,' etc. How should we approach this?", + "expected_output": "Should check for product-marketing.md first. Should identify this as the Personas playbook (industry-specific pages). Should apply the core principles: unique value per page (not just swapping the industry name), proprietary data or insights per industry, clean URL structure. Should recommend the implementation framework: keyword research for each industry variation, data requirements (what industry-specific content makes each page unique), template design, internal linking strategy between industry pages and main pages, and indexation strategy. Should warn against thin content (just template + keyword swap).", + "assertions": [ + "Checks for product-marketing.md", + "Identifies as Personas playbook", + "Applies core principles (unique value, proprietary data, clean URLs)", + "Recommends keyword research per variation", + "Addresses data requirements for unique content", + "Provides template design guidance", + "Includes internal linking strategy", + "Warns against thin content" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Create a comparison page strategy. We want pages like 'Notion vs Asana', 'Notion vs Monday', etc. for all our competitors. We have 15 competitors.", + "expected_output": "Should identify this as the Comparisons playbook. Should apply the programmatic approach for competitor comparison pages at scale. Should recommend: template structure for comparison pages, unique data per comparison (not just the same template with names swapped), keyword research for each '[competitor A] vs [competitor B]' variation, URL structure (/compare/notion-vs-asana), internal linking between comparison pages, and quality checks. Should cross-reference the competitors skill for page content structure.", + "assertions": [ + "Identifies as Comparisons playbook", + "Recommends template structure for scale", + "Addresses unique data per comparison", + "Includes keyword research for variations", + "Provides URL structure recommendation", + "Includes internal linking strategy", + "Cross-references competitors skill", + "Applies quality checks" + ], + "files": [] + }, + { + "id": 3, + "prompt": "we want to rank for '[tool name] integration' keywords. we integrate with 50+ tools and want a page for each. like 'Slack integration', 'Salesforce integration' etc.", + "expected_output": "Should trigger on casual phrasing. Should identify this as the Integrations playbook. Should recommend: template design for integration pages (what it does, how to set up, use cases), unique content per integration (specific workflows, screenshots, setup steps), keyword research for '[tool] + [your product] integration', URL structure (/integrations/slack), hub page linking to all integration pages, and schema markup considerations. Should emphasize that each page needs genuine unique value, not just 'we integrate with [tool].'", + "assertions": [ + "Triggers on casual phrasing", + "Identifies as Integrations playbook", + "Recommends template with unique content per integration", + "Includes setup steps and use cases per page", + "Provides URL structure recommendation", + "Recommends hub page for all integrations", + "Emphasizes genuine unique value per page" + ], + "files": [] + }, + { + "id": 4, + "prompt": "We built 500 programmatic pages but Google isn't indexing most of them. Only 80 are in the index. What's going wrong?", + "expected_output": "Should diagnose the indexation problem. Should apply the quality checks and indexation strategy guidance. Should investigate: thin content (are pages providing unique value or just template + keyword?), crawl budget (500 pages may be fine but depends on site authority), internal linking (are the pages discoverable?), XML sitemap inclusion, duplicate/near-duplicate content issues. Should recommend specific fixes: improve content uniqueness, strengthen internal linking, submit sitemap, check robots.txt, use Search Console for indexation requests. Should warn that Google may choose not to index thin pages regardless.", + "assertions": [ + "Diagnoses indexation problem", + "Investigates thin content as likely cause", + "Checks crawl budget considerations", + "Checks internal linking to programmatic pages", + "Checks XML sitemap and robots.txt", + "Recommends specific fixes for indexation", + "Warns about Google's thin content policies" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Help me create a glossary section for our marketing automation platform. We want to define 200+ marketing terms and rank for '[term] definition' keywords.", + "expected_output": "Should identify this as the Glossary playbook. Should apply the template design: term definition page template (definition, examples, related terms, how it applies to the user's product), hub/index page linking to all terms, URL structure (/glossary/[term]), alphabetical and categorical navigation. Should address quality: each definition should provide genuine value beyond a dictionary definition. Should include internal linking strategy and schema markup (DefinedTerm schema). Should recommend starting with highest-volume terms.", + "assertions": [ + "Identifies as Glossary playbook", + "Provides template design for term pages", + "Recommends hub/index page", + "Provides URL structure", + "Addresses content quality beyond dictionary definitions", + "Includes internal linking strategy", + "Recommends starting with highest-volume terms" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Can you audit our existing programmatic SEO pages for technical issues? We have crawl errors and some pages return 404s.", + "expected_output": "Should recognize this is a technical SEO audit task, not a programmatic SEO strategy task. Should defer to or cross-reference the seo-audit skill, which handles crawlability, indexation, and technical SEO issues. Programmatic-seo focuses on strategy, template design, and content planning for scaled pages.", + "assertions": [ + "Recognizes this as technical SEO audit task", + "References or defers to seo-audit skill", + "Explains that programmatic-seo is for strategy and template design", + "Does not attempt full technical SEO audit" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/programmatic-seo/references/playbooks.md b/.agents/skills/programmatic-seo/references/playbooks.md new file mode 100644 index 0000000..227f675 --- /dev/null +++ b/.agents/skills/programmatic-seo/references/playbooks.md @@ -0,0 +1,308 @@ +# The 12 Programmatic SEO Playbooks + +Beyond mixing and matching data point permutations, these are the proven playbooks for programmatic SEO. + +## Contents +- 1. Templates +- 2. Curation +- 3. Conversions +- 4. Comparisons +- 5. Examples +- 6. Locations +- 7. Personas +- 8. Integrations +- 9. Glossary +- 10. Translations +- 11. Directory +- 12. Profiles +- Choosing Your Playbook (Match to Your Assets, Combine Playbooks) + +## 1. Templates + +**Pattern**: "[Type] template" or "free [type] template" +**Example searches**: "resume template", "invoice template", "pitch deck template" + +**What it is**: Downloadable or interactive templates users can use directly. + +**Why it works**: +- High intent—people need it now +- Shareable/linkable assets +- Natural for product-led companies + +**Value requirements**: +- Actually usable templates (not just previews) +- Multiple variations per type +- Quality comparable to paid options +- Easy download/use flow + +**URL structure**: `/templates/[type]/` or `/templates/[category]/[type]/` + +--- + +## 2. Curation + +**Pattern**: "best [category]" or "top [number] [things]" +**Example searches**: "best website builders", "top 10 crm software", "best free design tools" + +**What it is**: Curated lists ranking or recommending options in a category. + +**Why it works**: +- Comparison shoppers searching for guidance +- High commercial intent +- Evergreen with updates + +**Value requirements**: +- Genuine evaluation criteria +- Real testing or expertise +- Regular updates (date visible) +- Not just affiliate-driven rankings + +**URL structure**: `/best/[category]/` or `/[category]/best/` + +--- + +## 3. Conversions + +**Pattern**: "[X] to [Y]" or "[amount] [unit] in [unit]" +**Example searches**: "$10 USD to GBP", "100 kg to lbs", "pdf to word" + +**What it is**: Tools or pages that convert between formats, units, or currencies. + +**Why it works**: +- Instant utility +- Extremely high search volume +- Repeat usage potential + +**Value requirements**: +- Accurate, real-time data +- Fast, functional tool +- Related conversions suggested +- Mobile-friendly interface + +**URL structure**: `/convert/[from]-to-[to]/` or `/[from]-to-[to]-converter/` + +--- + +## 4. Comparisons + +**Pattern**: "[X] vs [Y]" or "[X] alternative" +**Example searches**: "webflow vs wordpress", "notion vs coda", "figma alternatives" + +**What it is**: Head-to-head comparisons between products, tools, or options. + +**Why it works**: +- High purchase intent +- Clear search pattern +- Scales with number of competitors + +**Value requirements**: +- Honest, balanced analysis +- Actual feature comparison data +- Clear recommendation by use case +- Updated when products change + +**URL structure**: `/compare/[x]-vs-[y]/` or `/[x]-vs-[y]/` + +*See also: competitors skill for detailed frameworks* + +--- + +## 5. Examples + +**Pattern**: "[type] examples" or "[category] inspiration" +**Example searches**: "saas landing page examples", "email subject line examples", "portfolio website examples" + +**What it is**: Galleries or collections of real-world examples for inspiration. + +**Why it works**: +- Research phase traffic +- Highly shareable +- Natural for design/creative tools + +**Value requirements**: +- Real, high-quality examples +- Screenshots or embeds +- Categorization/filtering +- Analysis of why they work + +**URL structure**: `/examples/[type]/` or `/[type]-examples/` + +--- + +## 6. Locations + +**Pattern**: "[service/thing] in [location]" +**Example searches**: "coworking spaces in san diego", "dentists in austin", "best restaurants in brooklyn" + +**What it is**: Location-specific pages for services, businesses, or information. + +**Why it works**: +- Local intent is massive +- Scales with geography +- Natural for marketplaces/directories + +**Value requirements**: +- Actual local data (not just city name swapped) +- Local providers/options listed +- Location-specific insights (pricing, regulations) +- Map integration helpful + +**URL structure**: `/[service]/[city]/` or `/locations/[city]/[service]/` + +--- + +## 7. Personas + +**Pattern**: "[product] for [audience]" or "[solution] for [role/industry]" +**Example searches**: "payroll software for agencies", "crm for real estate", "project management for freelancers" + +**What it is**: Tailored landing pages addressing specific audience segments. + +**Why it works**: +- Speaks directly to searcher's context +- Higher conversion than generic pages +- Scales with personas + +**Value requirements**: +- Genuine persona-specific content +- Relevant features highlighted +- Testimonials from that segment +- Use cases specific to audience + +**URL structure**: `/for/[persona]/` or `/solutions/[industry]/` + +--- + +## 8. Integrations + +**Pattern**: "[your product] [other product] integration" or "[product] + [product]" +**Example searches**: "slack asana integration", "zapier airtable", "hubspot salesforce sync" + +**What it is**: Pages explaining how your product works with other tools. + +**Why it works**: +- Captures users of other products +- High intent (they want the solution) +- Scales with integration ecosystem + +**Value requirements**: +- Real integration details +- Setup instructions +- Use cases for the combination +- Working integration (not vaporware) + +**URL structure**: `/integrations/[product]/` or `/connect/[product]/` + +--- + +## 9. Glossary + +**Pattern**: "what is [term]" or "[term] definition" or "[term] meaning" +**Example searches**: "what is pSEO", "api definition", "what does crm stand for" + +**What it is**: Educational definitions of industry terms and concepts. + +**Why it works**: +- Top-of-funnel awareness +- Establishes expertise +- Natural internal linking opportunities + +**Value requirements**: +- Clear, accurate definitions +- Examples and context +- Related terms linked +- More depth than a dictionary + +**URL structure**: `/glossary/[term]/` or `/learn/[term]/` + +--- + +## 10. Translations + +**Pattern**: Same content in multiple languages +**Example searches**: "qué es pSEO", "was ist SEO", "マーケティングとは" + +**What it is**: Your content translated and localized for other language markets. + +**Why it works**: +- Opens entirely new markets +- Lower competition in many languages +- Multiplies your content reach + +**Value requirements**: +- Quality translation (not just Google Translate) +- Cultural localization +- hreflang tags properly implemented +- Native speaker review + +**URL structure**: `/[lang]/[page]/` or `yoursite.com/es/`, `/de/`, etc. + +--- + +## 11. Directory + +**Pattern**: "[category] tools" or "[type] software" or "[category] companies" +**Example searches**: "ai copywriting tools", "email marketing software", "crm companies" + +**What it is**: Comprehensive directories listing options in a category. + +**Why it works**: +- Research phase capture +- Link building magnet +- Natural for aggregators/reviewers + +**Value requirements**: +- Comprehensive coverage +- Useful filtering/sorting +- Details per listing (not just names) +- Regular updates + +**URL structure**: `/directory/[category]/` or `/[category]-directory/` + +--- + +## 12. Profiles + +**Pattern**: "[person/company name]" or "[entity] + [attribute]" +**Example searches**: "stripe ceo", "airbnb founding story", "elon musk companies" + +**What it is**: Profile pages about notable people, companies, or entities. + +**Why it works**: +- Informational intent traffic +- Builds topical authority +- Natural for B2B, news, research + +**Value requirements**: +- Accurate, sourced information +- Regularly updated +- Unique insights or aggregation +- Not just Wikipedia rehash + +**URL structure**: `/people/[name]/` or `/companies/[name]/` + +--- + +## Choosing Your Playbook + +### Match to Your Assets + +| If you have... | Consider... | +|----------------|-------------| +| Proprietary data | Stats, Directories, Profiles | +| Product with integrations | Integrations | +| Design/creative product | Templates, Examples | +| Multi-segment audience | Personas | +| Local presence | Locations | +| Tool or utility product | Conversions | +| Content/expertise | Glossary, Curation | +| International potential | Translations | +| Competitor landscape | Comparisons | + +### Combine Playbooks + +You can layer multiple playbooks: +- **Locations + Personas**: "Marketing agencies for startups in Austin" +- **Curation + Locations**: "Best coworking spaces in San Diego" +- **Integrations + Personas**: "Slack for sales teams" +- **Glossary + Translations**: Multi-language educational content diff --git a/.agents/skills/schema/SKILL.md b/.agents/skills/schema/SKILL.md new file mode 100644 index 0000000..e601213 --- /dev/null +++ b/.agents/skills/schema/SKILL.md @@ -0,0 +1,179 @@ +--- +name: schema +description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," "breadcrumb schema," "Google rich results," "knowledge panel," "star ratings in search," or "add structured data." Use this whenever someone wants their pages to show enhanced results in Google. For broader SEO issues, see seo-audit. For AI search optimization, see ai-seo. +metadata: + version: 2.0.0 +--- + +# Schema Markup + +You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search. + +## Initial Assessment + +**Check for product marketing context first:** +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. + +Before implementing schema, understand: + +1. **Page Type** - What kind of page? What's the primary content? What rich results are possible? + +2. **Current State** - Any existing schema? Errors in implementation? Which rich results already appearing? + +3. **Goals** - Which rich results are you targeting? What's the business value? + +--- + +## Core Principles + +### 1. Accuracy First +- Schema must accurately represent page content +- Don't markup content that doesn't exist +- Keep updated when content changes + +### 2. Use JSON-LD +- Google recommends JSON-LD format +- Easier to implement and maintain +- Place in `` or end of `` + +### 3. Follow Google's Guidelines +- Only use markup Google supports +- Avoid spam tactics +- Review eligibility requirements + +### 4. Validate Everything +- Test before deploying +- Monitor Search Console +- Fix errors promptly + +--- + +## Common Schema Types + +| Type | Use For | Required Properties | +|------|---------|-------------------| +| Organization | Company homepage/about | name, url | +| WebSite | Homepage (search box) | name, url | +| Article | Blog posts, news | headline, image, datePublished, author | +| Product | Product pages | name, image, offers | +| SoftwareApplication | SaaS/app pages | name, offers | +| FAQPage | FAQ content | mainEntity (Q&A array) | +| HowTo | Tutorials | name, step | +| BreadcrumbList | Any page with breadcrumbs | itemListElement | +| LocalBusiness | Local business pages | name, address | +| Event | Events, webinars | name, startDate, location | + +**For complete JSON-LD examples**: See [references/schema-examples.md](references/schema-examples.md) + +--- + +## Quick Reference + +### Organization (Company Page) +Required: name, url +Recommended: logo, sameAs (social profiles), contactPoint + +### Article/BlogPosting +Required: headline, image, datePublished, author +Recommended: dateModified, publisher, description + +### Product +Required: name, image, offers (price + availability) +Recommended: sku, brand, aggregateRating, review + +### FAQPage +Required: mainEntity (array of Question/Answer pairs) + +### BreadcrumbList +Required: itemListElement (array with position, name, item) + +--- + +## Multiple Schema Types + +You can combine multiple schema types on one page using `@graph`: + +```json +{ + "@context": "https://schema.org", + "@graph": [ + { "@type": "Organization", ... }, + { "@type": "WebSite", ... }, + { "@type": "BreadcrumbList", ... } + ] +} +``` + +--- + +## Validation and Testing + +### Tools +- **Google Rich Results Test**: https://search.google.com/test/rich-results +- **Schema.org Validator**: https://validator.schema.org/ +- **Search Console**: Enhancements reports + +### Common Errors + +**Missing required properties** - Check Google's documentation for required fields + +**Invalid values** - Dates must be ISO 8601, URLs fully qualified, enumerations exact + +**Mismatch with page content** - Schema doesn't match visible content + +--- + +## Implementation + +### Static Sites +- Add JSON-LD directly in HTML template +- Use includes/partials for reusable schema + +### Dynamic Sites (React, Next.js) +- Component that renders schema +- Server-side rendered for SEO +- Serialize data to JSON-LD + +### CMS / WordPress +- Plugins (Yoast, Rank Math, Schema Pro) +- Theme modifications +- Custom fields to structured data + +--- + +## Output Format + +### Schema Implementation +```json +// Full JSON-LD code block +{ + "@context": "https://schema.org", + "@type": "...", + // Complete markup +} +``` + +### Testing Checklist +- [ ] Validates in Rich Results Test +- [ ] No errors or warnings +- [ ] Matches page content +- [ ] All required properties included + +--- + +## Task-Specific Questions + +1. What type of page is this? +2. What rich results are you hoping to achieve? +3. What data is available to populate the schema? +4. Is there existing schema on the page? +5. What's your tech stack? + +--- + +## Related Skills + +- **seo-audit**: For overall SEO including schema review +- **ai-seo**: For AI search optimization (schema helps AI understand content) +- **programmatic-seo**: For templated schema at scale +- **site-architecture**: For breadcrumb structure and navigation schema planning diff --git a/.agents/skills/schema/evals/evals.json b/.agents/skills/schema/evals/evals.json new file mode 100644 index 0000000..684edf2 --- /dev/null +++ b/.agents/skills/schema/evals/evals.json @@ -0,0 +1,87 @@ +{ + "skill_name": "schema", + "evals": [ + { + "id": 1, + "prompt": "Add schema markup to our SaaS product's homepage. We're a project management tool called TaskFlow. We need Organization schema and any other relevant types.", + "expected_output": "Should check for product-marketing.md first. Should implement Organization schema in JSON-LD format with all required and recommended properties (name, url, logo, description, sameAs for social profiles). Should recommend additional schema types for a SaaS homepage: WebSite (with SearchAction if applicable), SoftwareApplication or Product. Should use @graph for multiple schema types on one page. Should provide the complete JSON-LD code ready to implement. Should recommend validation with Google's Rich Results Test and Schema.org validator.", + "assertions": [ + "Checks for product-marketing.md", + "Implements Organization schema in JSON-LD", + "Includes required and recommended properties", + "Recommends additional relevant schema types", + "Uses @graph for multiple types", + "Provides complete JSON-LD code", + "Recommends validation tools" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We have a FAQ page with 20 questions about our product. How do I add FAQ schema to get the rich results in Google?", + "expected_output": "Should implement FAQPage schema in JSON-LD format. Should show the correct structure: FAQPage as mainEntity containing Question items, each with acceptedAnswer. Should provide a complete code example with 2-3 sample questions. Should explain that FAQ schema can enable rich results showing questions/answers directly in search. Should note Google's guidelines for FAQ schema (factual answers, not promotional). Should recommend validation approach.", + "assertions": [ + "Implements FAQPage schema in JSON-LD", + "Shows correct nested structure (FAQPage > Question > Answer)", + "Provides complete code example", + "Explains rich result benefits", + "Notes Google's FAQ schema guidelines", + "Recommends validation" + ], + "files": [] + }, + { + "id": 3, + "prompt": "add schema to our blog posts. we publish articles about marketing tips.", + "expected_output": "Should trigger on casual phrasing. Should implement Article (or BlogPosting) schema in JSON-LD. Should include required properties: headline, author (as Person with name and url), datePublished, dateModified, image, publisher (as Organization). Should recommend BreadcrumbList schema alongside the article schema. Should provide template code that can be reused across blog posts. Should address how to populate dynamic fields (date, author, headline) from the CMS.", + "assertions": [ + "Triggers on casual phrasing", + "Implements Article or BlogPosting schema", + "Includes author, datePublished, image, publisher", + "Recommends BreadcrumbList alongside", + "Provides reusable template code", + "Addresses CMS integration for dynamic fields" + ], + "files": [] + }, + { + "id": 4, + "prompt": "We're an e-commerce site selling physical products. What schema markup do we need for our product pages?", + "expected_output": "Should implement Product schema with full properties: name, description, image, brand, sku, offers (with price, priceCurrency, availability, url). Should recommend AggregateRating if they have reviews, and Review schema for individual reviews. Should include BreadcrumbList for navigation. Should address common e-commerce schema types: Product, Offer, AggregateRating, Review. Should provide complete JSON-LD code. Should note that Product schema can enable rich results (price, availability, ratings in search).", + "assertions": [ + "Implements Product schema with full properties", + "Includes Offer with price, availability", + "Recommends AggregateRating and Review schema", + "Includes BreadcrumbList", + "Provides complete JSON-LD code", + "Notes rich result benefits for products" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We added schema markup to our site but it's not showing rich results in Google. Can you help debug?", + "expected_output": "Should provide a systematic debugging approach: first validate with Google Rich Results Test and Schema.org validator (syntax errors), then check for common issues (incorrect nesting, missing required properties, JSON-LD placement errors). Should explain that valid schema doesn't guarantee rich results — Google chooses when to show them. Should recommend checking Search Console for structured data reports and errors. Should address common debugging scenarios: schema not detected, warnings vs errors, eligible vs displayed.", + "assertions": [ + "Recommends validation tools for debugging", + "Checks for common schema errors", + "Explains valid schema doesn't guarantee rich results", + "Recommends Search Console structured data reports", + "Addresses warnings vs errors distinction", + "Provides systematic debugging approach" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Our organic search traffic dropped after a site redesign. Can you do a technical SEO audit?", + "expected_output": "Should recognize this is a technical SEO audit request, not a schema markup task. Should defer to or cross-reference the seo-audit skill, which handles comprehensive technical SEO audits. Schema markup is one component of SEO but doesn't address the broader technical issues (redirects, crawlability, indexation) that likely caused the traffic drop.", + "assertions": [ + "Recognizes this as a technical SEO audit request", + "References or defers to seo-audit skill", + "Does not attempt full SEO audit using schema markup patterns" + ], + "files": [] + } + ] +} diff --git a/.agents/skills/schema/references/schema-examples.md b/.agents/skills/schema/references/schema-examples.md new file mode 100644 index 0000000..2987e9e --- /dev/null +++ b/.agents/skills/schema/references/schema-examples.md @@ -0,0 +1,398 @@ +# Schema Markup Examples + +Complete JSON-LD examples for common schema types. + +## Contents +- Organization +- WebSite (with SearchAction) +- Article / BlogPosting +- Product +- SoftwareApplication +- FAQPage +- HowTo +- BreadcrumbList +- LocalBusiness +- Event +- Multiple Schema Types +- Implementation Example (Next.js) + +## Organization + +For company/brand homepage or about page. + +```json +{ + "@context": "https://schema.org", + "@type": "Organization", + "name": "Example Company", + "url": "https://example.com", + "logo": "https://example.com/logo.png", + "sameAs": [ + "https://twitter.com/example", + "https://linkedin.com/company/example", + "https://facebook.com/example" + ], + "contactPoint": { + "@type": "ContactPoint", + "telephone": "+1-555-555-5555", + "contactType": "customer service" + } +} +``` + +--- + +## WebSite (with SearchAction) + +For homepage, enables sitelinks search box. + +```json +{ + "@context": "https://schema.org", + "@type": "WebSite", + "name": "Example", + "url": "https://example.com", + "potentialAction": { + "@type": "SearchAction", + "target": { + "@type": "EntryPoint", + "urlTemplate": "https://example.com/search?q={search_term_string}" + }, + "query-input": "required name=search_term_string" + } +} +``` + +--- + +## Article / BlogPosting + +For blog posts and news articles. + +```json +{ + "@context": "https://schema.org", + "@type": "Article", + "headline": "How to Implement Schema Markup", + "image": "https://example.com/image.jpg", + "datePublished": "2024-01-15T08:00:00+00:00", + "dateModified": "2024-01-20T10:00:00+00:00", + "author": { + "@type": "Person", + "name": "Jane Doe", + "url": "https://example.com/authors/jane" + }, + "publisher": { + "@type": "Organization", + "name": "Example Company", + "logo": { + "@type": "ImageObject", + "url": "https://example.com/logo.png" + } + }, + "description": "A complete guide to implementing schema markup...", + "mainEntityOfPage": { + "@type": "WebPage", + "@id": "https://example.com/schema-guide" + } +} +``` + +--- + +## Product + +For product pages (e-commerce or SaaS). + +```json +{ + "@context": "https://schema.org", + "@type": "Product", + "name": "Premium Widget", + "image": "https://example.com/widget.jpg", + "description": "Our best-selling widget for professionals", + "sku": "WIDGET-001", + "brand": { + "@type": "Brand", + "name": "Example Co" + }, + "offers": { + "@type": "Offer", + "url": "https://example.com/products/widget", + "priceCurrency": "USD", + "price": "99.99", + "availability": "https://schema.org/InStock", + "priceValidUntil": "2024-12-31" + }, + "aggregateRating": { + "@type": "AggregateRating", + "ratingValue": "4.8", + "reviewCount": "127" + } +} +``` + +--- + +## SoftwareApplication + +For SaaS product pages and app landing pages. + +```json +{ + "@context": "https://schema.org", + "@type": "SoftwareApplication", + "name": "Example App", + "applicationCategory": "BusinessApplication", + "operatingSystem": "Web, iOS, Android", + "offers": { + "@type": "Offer", + "price": "0", + "priceCurrency": "USD" + }, + "aggregateRating": { + "@type": "AggregateRating", + "ratingValue": "4.6", + "ratingCount": "1250" + } +} +``` + +--- + +## FAQPage + +For pages with frequently asked questions. + +```json +{ + "@context": "https://schema.org", + "@type": "FAQPage", + "mainEntity": [ + { + "@type": "Question", + "name": "What is schema markup?", + "acceptedAnswer": { + "@type": "Answer", + "text": "Schema markup is a structured data vocabulary that helps search engines understand your content..." + } + }, + { + "@type": "Question", + "name": "How do I implement schema?", + "acceptedAnswer": { + "@type": "Answer", + "text": "The recommended approach is to use JSON-LD format, placing the script in your page's head..." + } + } + ] +} +``` + +--- + +## HowTo + +For instructional content and tutorials. + +```json +{ + "@context": "https://schema.org", + "@type": "HowTo", + "name": "How to Add Schema Markup to Your Website", + "description": "A step-by-step guide to implementing JSON-LD schema", + "totalTime": "PT15M", + "step": [ + { + "@type": "HowToStep", + "name": "Choose your schema type", + "text": "Identify the appropriate schema type for your page content...", + "url": "https://example.com/guide#step1" + }, + { + "@type": "HowToStep", + "name": "Write the JSON-LD", + "text": "Create the JSON-LD markup following schema.org specifications...", + "url": "https://example.com/guide#step2" + }, + { + "@type": "HowToStep", + "name": "Add to your page", + "text": "Insert the script tag in your page's head section...", + "url": "https://example.com/guide#step3" + } + ] +} +``` + +--- + +## BreadcrumbList + +For any page with breadcrumb navigation. + +```json +{ + "@context": "https://schema.org", + "@type": "BreadcrumbList", + "itemListElement": [ + { + "@type": "ListItem", + "position": 1, + "name": "Home", + "item": "https://example.com" + }, + { + "@type": "ListItem", + "position": 2, + "name": "Blog", + "item": "https://example.com/blog" + }, + { + "@type": "ListItem", + "position": 3, + "name": "SEO Guide", + "item": "https://example.com/blog/seo-guide" + } + ] +} +``` + +--- + +## LocalBusiness + +For local business location pages. + +```json +{ + "@context": "https://schema.org", + "@type": "LocalBusiness", + "name": "Example Coffee Shop", + "image": "https://example.com/shop.jpg", + "address": { + "@type": "PostalAddress", + "streetAddress": "123 Main Street", + "addressLocality": "San Francisco", + "addressRegion": "CA", + "postalCode": "94102", + "addressCountry": "US" + }, + "geo": { + "@type": "GeoCoordinates", + "latitude": "37.7749", + "longitude": "-122.4194" + }, + "telephone": "+1-555-555-5555", + "openingHoursSpecification": [ + { + "@type": "OpeningHoursSpecification", + "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], + "opens": "08:00", + "closes": "18:00" + } + ], + "priceRange": "$$" +} +``` + +--- + +## Event + +For event pages, webinars, conferences. + +```json +{ + "@context": "https://schema.org", + "@type": "Event", + "name": "Annual Marketing Conference", + "startDate": "2024-06-15T09:00:00-07:00", + "endDate": "2024-06-15T17:00:00-07:00", + "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode", + "eventStatus": "https://schema.org/EventScheduled", + "location": { + "@type": "VirtualLocation", + "url": "https://example.com/conference" + }, + "image": "https://example.com/conference.jpg", + "description": "Join us for our annual marketing conference...", + "offers": { + "@type": "Offer", + "url": "https://example.com/conference/tickets", + "price": "199", + "priceCurrency": "USD", + "availability": "https://schema.org/InStock", + "validFrom": "2024-01-01" + }, + "performer": { + "@type": "Organization", + "name": "Example Company" + }, + "organizer": { + "@type": "Organization", + "name": "Example Company", + "url": "https://example.com" + } +} +``` + +--- + +## Multiple Schema Types + +Combine multiple schema types using @graph. + +```json +{ + "@context": "https://schema.org", + "@graph": [ + { + "@type": "Organization", + "@id": "https://example.com/#organization", + "name": "Example Company", + "url": "https://example.com" + }, + { + "@type": "WebSite", + "@id": "https://example.com/#website", + "url": "https://example.com", + "name": "Example", + "publisher": { + "@id": "https://example.com/#organization" + } + }, + { + "@type": "BreadcrumbList", + "itemListElement": [...] + } + ] +} +``` + +--- + +## Implementation Example (Next.js) + +```jsx +export default function ProductPage({ product }) { + const schema = { + "@context": "https://schema.org", + "@type": "Product", + name: product.name, + // ... other properties + }; + + return ( + <> + +