The open-source marketing agent workspace for Claude Code. 42 commands, 12 hooks, 4 industry starters.
57
stars
2
commits
HTML
primary language
Jun 10, 2026
updated
The agent workspace for marketing operators.
42 commands. 12 hooks. 3 modes. 4 starters. One setup.sh.
An opinionated marketing agent system for Claude Code. Clone it, configure it, run /project:monday to start your week.
EVC is a folder. Inside it:
evc/
├── _templates/ # Source of truth (tracked in git)
│ ├── commands/ # 42 command prompts with {{TOKENS}}
│ ├── hooks/ # 12 shell scripts that fire on events
│ ├── contexts/ # 3 mode files (content/build/research)
│ ├── staging/ # Shared staging stylesheet
│ ├── SOUL.md # 7 operating principles
│ └── CLAUDE.md # Top-level agent instructions
│
├── .claude/ # Rendered output (gitignored)
│ ├── commands/ # Your 42 rendered commands
│ ├── hooks/ # Your 12 rendered hooks
│ └── contexts/ # Your 3 rendered modes
│
├── brand/ # Your brand brain
│ ├── canon-rules.json # Banned phrases, USPs, required language
│ └── canon-history/ # Auto-maintained snapshots + CHANGELOG
│
├── content-engine/ # Working memory
│ ├── memory/ # Lessons, learning log, visual log
│ ├── output/ # Weekly posts, blog drafts, reports
│ └── calendar/ # Weekly briefs + reviews
│
├── staging/ # Browser previews before publish
├── scripts/ # Validation, secret scan, staging helpers
├── starters/ # 4 industry configs (web3/saas/ecom/generic)
├── config.env.example # Template — copy to config.env
└── setup.sh # One command to render everything
Every command is a markdown file. Every hook is a shell script. The workspace is just files — fork it, read it, change it.
git clone https://github.com/SaigonXIII/evc.git
cd evc
./setup.sh
Setup takes 2 minutes:
Then open Claude Code in the directory:
/project:start
| Command | What it does |
|---|---|
/project:monday | Start the week: comms + review + intel + plan + brief (5-in-1) |
/project:friday | Close the week: review + digest + cleanup + memory (4-in-1) |
| Command | What it does |
|---|---|
/project:intel-scan | Weekly research — competitors, trends, algorithm changes |
/project:performance-review | Pull X metrics, rank posts, extract winning patterns |
/project:content-plan | Build weekly brief with 5-day calendar |
/project:content [day] | Produce one day's post + visual |
/project:content-week | Batch produce all 5 days |
/project:crosspost | Adapt for X, LinkedIn, Threads |
/project:post-today | Publish + auto-reply with link |
/project:reply-monitor | Scan mentions, draft canon-aligned replies |
| Command | What it does |
|---|---|
/project:blog-plan [topic] | Research + outline with visual map |
/project:blog-draft [slug] | Write 1,200–2,000 word semantic HTML |
/project:blog-qa [slug] | 8-check quality pipeline with auto-revision |
/project:blog-assets [slug] | Build visual templates, export PNGs at 1200×675 |
/project:blog-publish [slug] | Push to CMS + sync components |
/project:sync-blogs | Sync CMS data back to local components |
/project:repurpose [slug] | Fan one blog into X thread, LinkedIn, newsletter, quote cards |
| Command | What it does |
|---|---|
/project:content-qa | 6-check pipeline + brand voice score (0–50) |
/project:content-review | Audit copy against brand canon |
/project:stop-slop | Detect and remove AI writing patterns |
/project:copy-review | Brand voice + legal guardrail check |
/project:site-audit | Scan live site for brand drift (returns node IDs) |
/project:compliance-check | Jurisdiction-aware compliance (US/EU/UK) |
/project:reference-capture | Screenshot live site before building visuals |
| Command | What it does |
|---|---|
/project:comms-scan | Unified inbox triage (Gmail + X + Linear) |
/project:slack-comms | Read, post, summarize Slack channels |
/project:community-harvest | Convert community questions into content topics |
| Command | What it does |
|---|---|
/project:save-session | Save full session state for continuity |
/project:resume-session | Load last session and continue |
/project:deep-research | Multi-source research with cited reports |
/project:lesson-capture | Record what worked/failed for future sessions |
/project:canon-diff [since] | View canon change history with optional restore |
| Command | What it does |
|---|---|
/project:start | First-time onboarding wizard |
/project:help | Full command index grouped by use case |
/project:setup-canon | Interactive brand rules builder |
/project:upgrade | Pull latest + re-render templates |
/project:security-audit | Secret scan + permissions + audit log review |
| Command | What it does |
|---|---|
/project:stage [type] [name] | Build staging HTML (blog, week, or asset) |
/project:dashboards | Build master dashboards (commands, canon, design system) |
/project:export-clean [file] | Strip internal version drawer for clean publish |
/project:content-pipeline | Full Content Engine flow diagram |
/project:blog-pipeline | Full Blog Engine flow diagram |
/intel-scan → /performance-review → /content-plan → [You review]
→ /content-week → /content-qa → [You review] → /post-today
/blog-plan → [You review] → /blog-draft → /blog-qa → [You review]
→ /blog-assets → /stage → [Browser review] → /blog-publish → /repurpose
Human gates at every decision point. The system drafts, you approve.
brand/canon-rules.json is the single source of truth:
{
"banned_phrases": [{"phrase": "...", "reason": "..."}],
"framing_red_flags": ["best in class", "revolutionary", "..."],
"required_language": {"product_name": "...", "company_anchor": "..."},
"usps": ["...", "..."],
"defunct_partners": ["OldBrand"],
"live_partners": ["PartnerA", "PartnerB"],
"compliance_rules": {"US": {...}, "EU": {...}, "UK": {...}}
}
Every command reads it. The canon-guardrail hook blocks violations before they ship. The canon-changelog hook snapshots every edit to brand/canon-history/. Run /project:canon-diff to see what changed and when.
12 shell scripts that fire on Claude Code events. You don't call them — they run automatically.
| Hook | Event | What it does |
|---|---|---|
canon-guardrail | PreToolUse | Blocks banned phrases in outbound content |
check-reference | PreToolUse | Blocks visual builds without a live-site screenshot |
block-no-verify | PreToolUse | Blocks git commit --no-verify |
commit-quality | PreToolUse | Blocks secrets and debugger code in staged files |
suggest-compact | PreToolUse | Suggests /compact after long sessions |
canon-changelog | Stop | Snapshots canon edits + appends CHANGELOG entry |
session-end | Stop | Auto-saves session state |
action-audit | Stop | Logs every external action to audit.log |
cost-tracker | Stop | Logs token usage and cost estimates |
desktop-notify | Stop | macOS notification when a long task finishes |
session-start | SessionStart | Loads last session state, memory, pending tasks |
pre-compact | PreCompact | Saves context before compaction |
| Variable | Example |
|---|---|
COMPANY_NAME | "Acme Corp" |
WEBSITE_URL | "acme.com" |
SOCIAL_HANDLE_X | "@acmecorp" |
ANCHOR_STATEMENT | "Acme does X so Y can Z" |
BRAND_PRIMARY_COLOR | "#00c891" |
Pre-filled configs in starters/:
See config.env.example for the full variable list including CMS IDs, Linear prefix, compliance jurisdictions, and credential paths.
EVC gets smarter the longer you use it:
content-engine/memory/lessons.md. Ships with 14 pre-loaded./performance-review writes winning patterns to learning-log.md. /content-plan reads it before building next week's brief.session-end hook saves state on every stop. session-start loads it. No manual save required.validate.sh warns if brand rules are over 30 days old..secrets/ — chmod 700, owner-only. Never committed.config.env — chmod 600. References token files, not inline keys.scripts/secret-scan.sh — Scans for leaked API key patterns. Runs on setup..claude/audit.log.# 1. Write the prompt
vim _templates/commands/my-command.md
# 2. Render
./setup.sh
# 3. Use it
/project:my-command
# 1. Write the script
vim _templates/hooks/my-hook.sh && chmod +x _templates/hooks/my-hook.sh
# 2. Wire it in setup.sh → settings.json
# 3. Render + validate
./setup.sh && ./scripts/validate.sh
Every command is a markdown file. Every hook is a shell script. If you can write a prompt, you can extend EVC.
Built by SaigonXIII. Battle-tested internally before open-sourcing.
Inspired by Everything Claude Code — the community-built power-user kit for developers. EVC is the same idea, reshaped for marketing.
Open source under the MIT License — fork it, rename it, make it yours.
2 commits
HTML
56.7%
Shell
37.8%
CSS
5.5%
The open-source marketing agent workspace for Claude Code. 42 commands, 12 hooks, 4 industry starters.
57
stars
2
commits
HTML
primary language
Jun 10, 2026
updated
The agent workspace for marketing operators.
42 commands. 12 hooks. 3 modes. 4 starters. One setup.sh.
An opinionated marketing agent system for Claude Code. Clone it, configure it, run /project:monday to start your week.
EVC is a folder. Inside it:
evc/
├── _templates/ # Source of truth (tracked in git)
│ ├── commands/ # 42 command prompts with {{TOKENS}}
│ ├── hooks/ # 12 shell scripts that fire on events
│ ├── contexts/ # 3 mode files (content/build/research)
│ ├── staging/ # Shared staging stylesheet
│ ├── SOUL.md # 7 operating principles
│ └── CLAUDE.md # Top-level agent instructions
│
├── .claude/ # Rendered output (gitignored)
│ ├── commands/ # Your 42 rendered commands
│ ├── hooks/ # Your 12 rendered hooks
│ └── contexts/ # Your 3 rendered modes
│
├── brand/ # Your brand brain
│ ├── canon-rules.json # Banned phrases, USPs, required language
│ └── canon-history/ # Auto-maintained snapshots + CHANGELOG
│
├── content-engine/ # Working memory
│ ├── memory/ # Lessons, learning log, visual log
│ ├── output/ # Weekly posts, blog drafts, reports
│ └── calendar/ # Weekly briefs + reviews
│
├── staging/ # Browser previews before publish
├── scripts/ # Validation, secret scan, staging helpers
├── starters/ # 4 industry configs (web3/saas/ecom/generic)
├── config.env.example # Template — copy to config.env
└── setup.sh # One command to render everything
Every command is a markdown file. Every hook is a shell script. The workspace is just files — fork it, read it, change it.
git clone https://github.com/SaigonXIII/evc.git
cd evc
./setup.sh
Setup takes 2 minutes:
Then open Claude Code in the directory:
/project:start
| Command | What it does |
|---|---|
/project:monday | Start the week: comms + review + intel + plan + brief (5-in-1) |
/project:friday | Close the week: review + digest + cleanup + memory (4-in-1) |
| Command | What it does |
|---|---|
/project:intel-scan | Weekly research — competitors, trends, algorithm changes |
/project:performance-review | Pull X metrics, rank posts, extract winning patterns |
/project:content-plan | Build weekly brief with 5-day calendar |
/project:content [day] | Produce one day's post + visual |
/project:content-week | Batch produce all 5 days |
/project:crosspost | Adapt for X, LinkedIn, Threads |
/project:post-today | Publish + auto-reply with link |
/project:reply-monitor | Scan mentions, draft canon-aligned replies |
| Command | What it does |
|---|---|
/project:blog-plan [topic] | Research + outline with visual map |
/project:blog-draft [slug] | Write 1,200–2,000 word semantic HTML |
/project:blog-qa [slug] | 8-check quality pipeline with auto-revision |
/project:blog-assets [slug] | Build visual templates, export PNGs at 1200×675 |
/project:blog-publish [slug] | Push to CMS + sync components |
/project:sync-blogs | Sync CMS data back to local components |
/project:repurpose [slug] | Fan one blog into X thread, LinkedIn, newsletter, quote cards |
| Command | What it does |
|---|---|
/project:content-qa | 6-check pipeline + brand voice score (0–50) |
/project:content-review | Audit copy against brand canon |
/project:stop-slop | Detect and remove AI writing patterns |
/project:copy-review | Brand voice + legal guardrail check |
/project:site-audit | Scan live site for brand drift (returns node IDs) |
/project:compliance-check | Jurisdiction-aware compliance (US/EU/UK) |
/project:reference-capture | Screenshot live site before building visuals |
| Command | What it does |
|---|---|
/project:comms-scan | Unified inbox triage (Gmail + X + Linear) |
/project:slack-comms | Read, post, summarize Slack channels |
/project:community-harvest | Convert community questions into content topics |
| Command | What it does |
|---|---|
/project:save-session | Save full session state for continuity |
/project:resume-session | Load last session and continue |
/project:deep-research | Multi-source research with cited reports |
/project:lesson-capture | Record what worked/failed for future sessions |
/project:canon-diff [since] | View canon change history with optional restore |
| Command | What it does |
|---|---|
/project:start | First-time onboarding wizard |
/project:help | Full command index grouped by use case |
/project:setup-canon | Interactive brand rules builder |
/project:upgrade | Pull latest + re-render templates |
/project:security-audit | Secret scan + permissions + audit log review |
| Command | What it does |
|---|---|
/project:stage [type] [name] | Build staging HTML (blog, week, or asset) |
/project:dashboards | Build master dashboards (commands, canon, design system) |
/project:export-clean [file] | Strip internal version drawer for clean publish |
/project:content-pipeline | Full Content Engine flow diagram |
/project:blog-pipeline | Full Blog Engine flow diagram |
/intel-scan → /performance-review → /content-plan → [You review]
→ /content-week → /content-qa → [You review] → /post-today
/blog-plan → [You review] → /blog-draft → /blog-qa → [You review]
→ /blog-assets → /stage → [Browser review] → /blog-publish → /repurpose
Human gates at every decision point. The system drafts, you approve.
brand/canon-rules.json is the single source of truth:
{
"banned_phrases": [{"phrase": "...", "reason": "..."}],
"framing_red_flags": ["best in class", "revolutionary", "..."],
"required_language": {"product_name": "...", "company_anchor": "..."},
"usps": ["...", "..."],
"defunct_partners": ["OldBrand"],
"live_partners": ["PartnerA", "PartnerB"],
"compliance_rules": {"US": {...}, "EU": {...}, "UK": {...}}
}
Every command reads it. The canon-guardrail hook blocks violations before they ship. The canon-changelog hook snapshots every edit to brand/canon-history/. Run /project:canon-diff to see what changed and when.
12 shell scripts that fire on Claude Code events. You don't call them — they run automatically.
| Hook | Event | What it does |
|---|---|---|
canon-guardrail | PreToolUse | Blocks banned phrases in outbound content |
check-reference | PreToolUse | Blocks visual builds without a live-site screenshot |
block-no-verify | PreToolUse | Blocks git commit --no-verify |
commit-quality | PreToolUse | Blocks secrets and debugger code in staged files |
suggest-compact | PreToolUse | Suggests /compact after long sessions |
canon-changelog | Stop | Snapshots canon edits + appends CHANGELOG entry |
session-end | Stop | Auto-saves session state |
action-audit | Stop | Logs every external action to audit.log |
cost-tracker | Stop | Logs token usage and cost estimates |
desktop-notify | Stop | macOS notification when a long task finishes |
session-start | SessionStart | Loads last session state, memory, pending tasks |
pre-compact | PreCompact | Saves context before compaction |
| Variable | Example |
|---|---|
COMPANY_NAME | "Acme Corp" |
WEBSITE_URL | "acme.com" |
SOCIAL_HANDLE_X | "@acmecorp" |
ANCHOR_STATEMENT | "Acme does X so Y can Z" |
BRAND_PRIMARY_COLOR | "#00c891" |
Pre-filled configs in starters/:
See config.env.example for the full variable list including CMS IDs, Linear prefix, compliance jurisdictions, and credential paths.
EVC gets smarter the longer you use it:
content-engine/memory/lessons.md. Ships with 14 pre-loaded./performance-review writes winning patterns to learning-log.md. /content-plan reads it before building next week's brief.session-end hook saves state on every stop. session-start loads it. No manual save required.validate.sh warns if brand rules are over 30 days old..secrets/ — chmod 700, owner-only. Never committed.config.env — chmod 600. References token files, not inline keys.scripts/secret-scan.sh — Scans for leaked API key patterns. Runs on setup..claude/audit.log.# 1. Write the prompt
vim _templates/commands/my-command.md
# 2. Render
./setup.sh
# 3. Use it
/project:my-command
# 1. Write the script
vim _templates/hooks/my-hook.sh && chmod +x _templates/hooks/my-hook.sh
# 2. Wire it in setup.sh → settings.json
# 3. Render + validate
./setup.sh && ./scripts/validate.sh
Every command is a markdown file. Every hook is a shell script. If you can write a prompt, you can extend EVC.
Built by SaigonXIII. Battle-tested internally before open-sourcing.
Inspired by Everything Claude Code — the community-built power-user kit for developers. EVC is the same idea, reshaped for marketing.
Open source under the MIT License — fork it, rename it, make it yours.
2 commits
HTML
56.7%
Shell
37.8%
CSS
5.5%