brand-marketing-strategy-proposal-generator

v2026.09.24

Generate comprehensive brand marketing strategy proposals with research, insights, and structured PPT scripts

GitHub
Install command
npx skhub add reason-machines/brand-marketing-strategy-proposal-generator
Markdown
SKILL.md

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

# Usage
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

# Usage
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

# Usage
state = WorkflowState("ABC品牌")
state.data['problem_definition'] = "品牌老化,年轻消费者流失"
state.approvals.append({'checkpoint': 1, 'approved': True})
state.save()

# Resume later
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

  1. Organize client materials clearly - Use numbered prefixes and descriptive names
  2. Review each checkpoint carefully - The quality of later stages depends on early approvals
  3. Save intermediate states - Use the backup system for complex projects
  4. Provide context at checkpoints - Give specific feedback to guide refinement
  5. Use environment-specific configurations - Keep sensitive client data out of version control

Environment Variables

# Optional: Configure output preferences
export PROPOSAL_LANGUAGE="zh-CN"
export PROPOSAL_FORMAT="docx"
export ANALYSIS_DEPTH="detailed"  # standard, detailed, or comprehensive
export OUTPUT_DIR="outputs"

Security Notes

  • Never commit client materials to version control
  • Add to .gitignore:
    inputs/客户资料/
    outputs/
    agent_memory/
    backups/
    MEMORY.md
    *.docx
    *.pdf
    
  • Use environment variables for any API keys or credentials
  • Sanitize client names in logs and error messages
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

NOASSERTION

Source path

skills/brand-marketing-strategy-proposal-generator

Default branch

main

Latest commit

97301f4

Tree SHA

5555d7f