Skill: nadavnaveh/campaign-management (version 1.0.0)

--- name: campaign-management version: "1.0.0" description: "Read campaign packages, manage campaign state, generate intelligence reports. Entry point for all campaign operations." user-invocable: true --- # Campaign Management Skill Manages the lifecycle of marketing campaigns — reads packages, tracks state, generates reports. ## Campaign Package Structure Each campaign lives in `campaigns/<name>/` with this structure: ``` campaigns/<name>/ brief.md # REQUIRED — product, audience, ICP, tone config.yaml # REQUIRED — settings (mode, language, depth, platforms) leads.csv # OPTIONAL — pre-loaded leads (if empty, researcher discovers) messages/ # OPTIONAL — message templates for outreach mode linkedin-connect.md email-cold.md email-followup-1.md assets/ # OPTIONAL — images, attachments # Generated by the system: enriched-leads.csv # Output from researcher intel/ # Per-lead intelligence files outbox/ # Personalized messages (outreach/autonomous mode) state.json # Campaign progress tracker report.md # Final campaign report logs/ # Execution logs ``` ## brief.md Format ```markdown # Campaign: [Name] ## Product [What the product/service is. What problem it solves. URL if available.] ## Target Audience - Industries: [fintech, healthcare, logistics, etc.] - Titles: [CTO, VP Engineering, Head of Data, etc.] - Geography: [Israel, US East Coast, Europe, etc.] - Company size: [10-50, 50-500, 500+, Series A-C, etc.] ## Value Proposition [Why this audience cares. What pain point we solve.] ## Tone [Professional, casual, bold, warm, technical, etc.] ## Special Instructions [Anything else — competitors to mention, angles to use, topics to reference] ``` ## config.yaml Format ```yaml mode: intelligence # intelligence | outreach | autonomous language: en # en | he | both research_depth: quick # quick | deep # Email settings (outreach/autonomous mode) email_provider: gmail # gmail | outlook secondary_domain: null # NEVER use primary domain for cold outreach # Rate limits linkedin: connections_per_day: 20 messages_per_day: 50 delay_seconds: 30 email: sends_per_hour: 20 delay_seconds: 10 social: x_posts_per_day: 5 reddit_posts_per_day: 3 # Schedule active_hours: "09:00-18:00" timezone: "Asia/Jerusalem" workdays: [0, 1, 2, 3, 4] # Sun-Thu ``` ## state.json Format ```json { "campaign": "congreat-data", "mode": "intelligence", "status": "running", "started_at": "2026-03-24T09:00:00Z", "updated_at": "2026-03-24T10:30:00Z", "leads": { "target": 100, "discovered": 45, "enriched": 30, "emails_found": 28, "phones_found": 12, "emails_verified": 20 }, "outreach": { "messages_drafted": 0, "emails_sent": 0, "linkedin_sent": 0, "replies": 0, "bounced": 0 }, "paused": false, "errors": [] } ``` ## Commands ### /launch <campaign> Start a campaign. Reads the package, validates it, begins execution based on mode. ### /campaign-status <campaign> Show current state.json — how many leads found, messages sent, etc. ### /pause <campaign> Set paused: true. All soldiers stop. ## Report Generation After intelligence mode completes, generate `report.md`: ```markdown # Campaign Intelligence Report: [Name] ## Summary - Leads discovered: X - Emails found: X (Y verified) - Phone numbers found: X - Industries covered: [list] - Average intent score: X ## Top Leads (by intent score) | Name | Title | Company | Email | Intent | Key Signal | |------|-------|---------|-------|--------|------------| | ... | ... | ... | ... | high | ... | ## Industry Breakdown - Fintech: X leads - Healthcare: X leads ... ## Recommended Next Steps 1. Review enriched-leads.csv 2. Switch to outreach mode when ready 3. Prepare message templates in messages/ ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)