| name | brand-marketing-strategy-proposal-generator |
| description | Generate comprehensive brand marketing strategy proposals with research, insights, and structured PPT scripts |
| triggers | ["generate a brand marketing strategy proposal","create a marketing strategy document for a client","build a brand strategy presentation","analyze client data and create marketing recommendations","produce a strategic marketing proposal","develop a brand positioning strategy document","create a multi-page marketing strategy PPT script","generate marketing insights from client research"] |
Brand Marketing Strategy Proposal Generator
Skill by ara.so — Marketing Skills collection.
An agent-based workflow system for generating comprehensive brand marketing strategy proposals. Takes client data through a multi-stage process including needs analysis, research, opportunity identification, outline creation, and slide-by-slide script generation with Word document output.
What It Does
This skill automates the creation of professional marketing strategy proposals by:
- Analyzing client background materials and requirements
- Defining project problems and objectives
- Conducting research and competitive analysis
- Identifying strategic opportunities
- Building structured presentation outlines
- Generating detailed slide-by-slide scripts
- Outputting formatted Word documents
The workflow includes multiple confirmation checkpoints to ensure accuracy and alignment with client needs.
Installation
Clone or download the project into your workspace:
git clone https://github.com/yuleiwang156-a11y/brand-marketing-strategy-proposal-skill.git
cd brand-marketing-strategy-proposal-skill
Create the required directory structure:
mkdir -p inputs/客户资料
mkdir -p outputs
mkdir -p agent_memory
mkdir -p backups
Project Structure
brand-marketing-strategy-proposal-skill/
├── inputs/
│ └── 客户资料/
│ └── [客户名称]/ # Client-specific folders
│ ├── brief.txt # Client brief
│ ├── background.pdf # Company background
│ └── research.docx # Market research
├── outputs/ # Generated proposals
├── agent_memory/ # Session state (gitignored)
├── backups/ # Workflow backups (gitignored)
└── MEMORY.md # Project memory (gitignored)
Core Workflow
The skill follows a six-stage process with three confirmation checkpoints:
Stage 1: Client Input
Place all client materials in inputs/客户资料/[客户名称]/
Stage 2: Checkpoint 1 - Needs Understanding & Problem Definition
请按照本项目 Skill 执行。本次客户资料在 inputs/客户资料/[客户名称]/ 中,请从确认点 1 开始。
The agent will:
- Read and analyze all client materials
- Extract key business objectives
- Define core marketing challenges
- Propose initial problem statements
- Wait for user confirmation
Stage 3: Research & Analysis Layer
After checkpoint 1 approval, the agent conducts:
- Industry landscape analysis
- Competitive positioning research
- Consumer insights synthesis
- Market trends identification
- SWOT analysis
Stage 4: Checkpoint 2 - Opportunity Insights
The agent presents:
- Strategic opportunity areas
- Positioning recommendations
- Target audience refinements
- Key differentiators
- Wait for user confirmation
Stage 5: Checkpoint 3 - Outline Structure
The agent provides:
- Client-facing table of contents
- Internal analysis structure
- Slide sequence and topics
- Narrative flow
- Wait for user confirmation
Stage 6: Script Generation & Output
The agent generates:
- Slide-by-slide content scripts
- Visual direction notes
- Supporting data and evidence
- Quality checks
- Final Word document output
Usage Patterns
Basic Workflow
User: 请为客户"ABC品牌"生成营销战略建议书,资料在 inputs/客户资料/ABC品牌/ 中
Agent:
1. 读取客户资料...
2. 【确认点 1】需求理解与问题定义:
- 客户目标:提升品牌年轻化认知
- 核心问题:品牌老化,年轻消费者流失
- 项目范围:品牌重塑战略
是否确认继续?
User: 确认
Agent:
3. 执行研究分析...
4. 【确认点 2】机会点洞察:
- 机会1:Z世代文化共鸣
- 机会2:数字化体验升级
- 机会3:可持续发展叙事
是否确认继续?
Resuming from Checkpoint
请从确认点 2 继续,使用 agent_memory/session_abc.json 中的状态
Regenerating Specific Sections
请重新生成目录结构(确认点 3),保持之前的机会点洞察不变
Custom Analysis Depth
请执行深度竞争分析,包含至少 5 个主要竞品的详细对比矩阵
Configuration
Client Data Requirements
Organize client materials with clear naming:
inputs/客户资料/客户名称/
├── 01_项目简报.docx # Project brief
├── 02_品牌背景.pdf # Brand background
├── 03_市场数据.xlsx # Market data
├── 04_竞品分析.pptx # Competitive analysis
└── 05_消费者调研.pdf # Consumer research
Memory Management
The agent uses MEMORY.md and agent_memory/ to maintain state:
# MEMORY.md structure
## Current Project: [客户名称]
## Workflow Stage: [确认点 1/2/3 或生成中]
## Key Decisions:
- Problem definition: [...]
- Approved opportunities: [...]
- Outline structure: [...]
Output Formats
Default output structure:
outputs/
└── [客户名称]_品牌营销战略建议书_[日期]/
├── 01_需求定义.md
├── 02_研究分析.md
├── 03_机会洞察.md
├── 04_提案目录.md
├── 05_PPT脚本.md
└── 最终建议书.docx
Code Examples
Python: Parsing Client Materials
import os
from pathlib import Path
def load_client_data(client_name):
"""Load all client materials from input directory"""
client_dir = Path(f"inputs/客户资料/{client_name}")
materials = {
'brief': None,
'background': None,
'research': [],
'data': []
}
if not client_dir.exists():
raise ValueError(f"Client directory not found: {client_dir}")
for file in client_dir.iterdir():
if file.suffix in ['.txt', '.md']:
materials['brief'] = file.read_text(encoding='utf-8')
elif file.suffix == '.pdf':
materials['background'] = file
elif file.suffix in ['.docx', '.doc']:
materials['research'].append(file)
elif file.suffix in ['.xlsx', '.csv']:
materials['data'].append(file)
return materials
client_data = load_client_data("ABC品牌")
print(f"Found {len(client_data['research'])} research documents")
Python: Generating Structured Output
from dataclasses import dataclass
from typing import List
from datetime import datetime
@dataclass
class OpportunityInsight:
title: str
description: str
evidence: List[str]
potential_impact: str
@dataclass
class ProposalOutline:
client_name: str
sections: List[dict]
total_slides: int
def to_markdown(self):
md = f"# {self.client_name} 品牌营销战略建议书\n\n"
md += f"生成时间: {datetime.now().strftime('%Y-%m-%d')}\n\n"
md += f"总页数: {self.total_slides}\n\n"
for i, section in enumerate(self.sections, 1):
md += f"## {i}. {section['title']}\n"
md += f"页数: {section['slides']}\n"
md += f"内容: {section['description']}\n\n"
return md
outline = ProposalOutline(
client_name="ABC品牌",
sections=[
{
'title': '品牌现状诊断',
'slides': 5,
'description': '市场地位、消费者认知、竞争态势'
},
{
'title': '战略机会洞察',
'slides': 8,
'description': 'Z世代文化共鸣、数字化体验升级'
}
],
total_slides=45
)
output_path = Path(f"outputs/{outline.client_name}_提案目录.md")
output_path.write_text(outline.to_markdown(), encoding='utf-8')
Python: Checkpoint State Management
import json
from enum import Enum
class WorkflowStage(Enum):
CHECKPOINT_1 = "needs_understanding"
RESEARCH = "research_analysis"
CHECKPOINT_2 = "opportunity_insights"
CHECKPOINT_3 = "outline_structure"
GENERATION = "script_generation"
COMPLETE = "complete"
class WorkflowState:
def __init__(self, client_name):
self.client_name = client_name
self.stage = WorkflowStage.CHECKPOINT_1
self.data = {}
self.approvals = []
def save(self):
state_file = Path(f"agent_memory/{self.client_name}_state.json")
state_file.write_text(json.dumps({
'client_name': self.client_name,
'stage': self.stage.value,
'data': self.data,
'approvals': self.approvals
}, ensure_ascii=False, indent=2), encoding='utf-8')
@classmethod
def load(cls, client_name):
state_file = Path(f"agent_memory/{client_name}_state.json")
if not state_file.exists():
return cls(client_name)
state_data = json.loads(state_file.read_text(encoding='utf-8'))
instance = cls(state_data['client_name'])
instance.stage = WorkflowStage(state_data['stage'])
instance.data = state_data['data']
instance.approvals = state_data['approvals']
return instance
state = WorkflowState("ABC品牌")
state.data['problem_definition'] = "品牌老化,年轻消费者流失"
state.approvals.append({'checkpoint': 1, 'approved': True})
state.save()
resumed_state = WorkflowState.load("ABC品牌")
print(f"Resuming from: {resumed_state.stage.value}")
Common Patterns
Pattern 1: Iterative Refinement
User: 请生成建议书,资料在 inputs/客户资料/XYZ/
Agent: [生成确认点1]
User: 问题定义太宽泛,请聚焦在年轻化转型
Agent: [调整后的问题定义]
User: 确认
Agent: [继续到确认点2]
Pattern 2: Parallel Analysis
User: 在执行研究分析时,请同时进行:
1. 5个竞品的详细对比
2. 3个目标人群的深度画像
3. 近3年的市场趋势分析
Agent: [并行执行三项分析任务]
Pattern 3: Template-Based Generation
User: 使用"快消品行业模板"生成建议书框架
Agent: [应用行业特定模板,包含渠道分析、促销策略等章节]
Troubleshooting
Issue: Client materials not found
Error: Client directory not found: inputs/客户资料/客户名称/
Solution:
1. Verify directory exists and name matches exactly (case-sensitive)
2. Check for special characters or spaces in folder name
3. Ensure materials are not nested in subdirectories
Issue: Memory state corruption
Error: Cannot resume from checkpoint - state file corrupted
Solution:
# Restore from backup
cp backups/[客户名称]_state_backup.json agent_memory/[客户名称]_state.json
# Or start fresh
rm agent_memory/[客户名称]_state.json
Issue: Incomplete output generation
Problem: Word document missing slides 15-20
Solution:
请从第15页开始重新生成,使用已保存的outline结构:
- 保持前14页内容不变
- 从"第三章:战略建议"的第15页继续
- 确保与整体叙事连贯
Issue: Generic or shallow insights
Problem: Generated insights too generic
Solution:
请深化分析,要求:
1. 每个洞察必须引用至少2个具体数据点
2. 包含至少1个真实案例参考
3. 明确说明与客户业务的关联性
4. 提供可量化的预期影响
Best Practices
- Organize client materials clearly - Use numbered prefixes and descriptive names
- Review each checkpoint carefully - The quality of later stages depends on early approvals
- Save intermediate states - Use the backup system for complex projects
- Provide context at checkpoints - Give specific feedback to guide refinement
- Use environment-specific configurations - Keep sensitive client data out of version control
Environment Variables
export PROPOSAL_LANGUAGE="zh-CN"
export PROPOSAL_FORMAT="docx"
export ANALYSIS_DEPTH="detailed"
export OUTPUT_DIR="outputs"
Security Notes