skills/marketing-plan/references/methodology.md
The three-phase workflow that produces a comprehensive marketing plan. SKILL.md is the orchestration layer; this is the operational detail.
Goal: Walk into Phase 2 with enough context to draft every section without guessing.
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)
progress.md state schemaEvery plan tracks a single progress.md file at the plan root. It's the source of truth for resumption. Schema:
# {Client} — Marketing Plan Progress
phase: init | review | finalize | finalized
current_section: <number, only meaningful during review phase>
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
<any open decisions, blockers, or out-of-band context that aren't in research.md>
On every invocation, check state in this order:
{client-slug}/ folder → fresh plan. Create folder + materials/ + empty sections/. Start INIT (Step 1.2).research.md → INIT was interrupted. Resume from Step 1.2.research.md exists, no progress.md → INIT done, REVIEW not started. Create progress.md, start REVIEW from Section 2.progress.md exists, phase: review → REVIEW in progress. Resume from current_section (or first unchecked box).progress.md exists, phase: finalize → FINALIZE was interrupted. Re-run Phase 3.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.
If materials/ has files, read all of them. Common drops:
seo/plan.md, seo/keyword-shortlist.md)Read everything. Capture key facts to research.md as you go.
If MCPs/APIs are wired for this client, pull:
/seo-audit skill)dev-browser) → install → trial → paid funnel; cohort retentionDon't ask the user to copy/paste data that can be pulled directly.
For every gap in the materials, ask the user. The minimum intake covers ten topics:
funding-stage-unlocks.md)?What past work should this plan acknowledge?
Use the 17-section rubric in references/current-state-rubric.md as your scoring lens. Two modes:
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.
Compile everything into research.md with this structure:
# {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.
Goal: Walk through all 13 sections of the plan template (references/plan-template.md), drafting each, getting user confirmation, saving as you go.
Use the schema defined in Step 1.1.1 above. Set phase: review, current_section: 2, plan_version: v1, and stamp last_updated.
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:
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.progress.mdSection 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).
If the client has documented brand voice rules (captured in research.md / Section 2), every section must respect them. Common voice constraints:
If a section's draft violates the brand voice, redo it before showing it to the user.
Goal: Produce final_plan.md and optionally publish to a shared repo.
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:
Before printing:
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)./Users/..., /home/...) in the output. Replace with descriptive references.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."
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:
final_plan.md to the target pathIf no: leave it local. Done.
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).
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.
[TBD — to confirm with team] in the plan and add to open decisions.