EVC

April 5, 2026 · View on GitHub

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.

Visual overview →


What this is

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.


Quick start

git clone https://github.com/SaigonXIII/evc.git
cd evc
./setup.sh

Setup takes 2 minutes:

  1. Pick your industry (Web3, SaaS, E-commerce, Generic)
  2. Fill in 5 required variables
  3. Done — 42 commands installed, 12 hooks wired

Then open Claude Code in the directory:

/project:start

Commands

Chains (the point of entry)

CommandWhat it does
/project:mondayStart the week: comms + review + intel + plan + brief (5-in-1)
/project:fridayClose the week: review + digest + cleanup + memory (4-in-1)

Content Engine (daily social)

CommandWhat it does
/project:intel-scanWeekly research — competitors, trends, algorithm changes
/project:performance-reviewPull X metrics, rank posts, extract winning patterns
/project:content-planBuild weekly brief with 5-day calendar
/project:content [day]Produce one day's post + visual
/project:content-weekBatch produce all 5 days
/project:crosspostAdapt for X, LinkedIn, Threads
/project:post-todayPublish + auto-reply with link
/project:reply-monitorScan mentions, draft canon-aligned replies

Blog Engine (long-form)

CommandWhat 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]$\text{Build} \text{visual} \text{templates}, \text{export} \text{PNGs} \text{at} 1200 \times 675
$/project:blog-publish [slug]`Push to CMS + sync components
/project:sync-blogsSync CMS data back to local components
/project:repurpose [slug]Fan one blog into X thread, LinkedIn, newsletter, quote cards

QA & Review

CommandWhat it does
/project:content-qa6-check pipeline + brand voice score (0–50)
/project:content-reviewAudit copy against brand canon
/project:stop-slopDetect and remove AI writing patterns
/project:copy-reviewBrand voice + legal guardrail check
/project:site-auditScan live site for brand drift (returns node IDs)
/project:compliance-checkJurisdiction-aware compliance (US/EU/UK)
/project:reference-captureScreenshot live site before building visuals

Comms

CommandWhat it does
/project:comms-scanUnified inbox triage (Gmail + X + Linear)
/project:slack-commsRead, post, summarize Slack channels
/project:community-harvestConvert community questions into content topics

Memory & Productivity

CommandWhat it does
/project:save-sessionSave full session state for continuity
/project:resume-sessionLoad last session and continue
/project:deep-researchMulti-source research with cited reports
/project:lesson-captureRecord what worked/failed for future sessions
/project:canon-diff [since]View canon change history with optional restore

Setup

CommandWhat it does
/project:startFirst-time onboarding wizard
/project:helpFull command index grouped by use case
/project:setup-canonInteractive brand rules builder
/project:upgradePull latest + re-render templates
/project:security-auditSecret scan + permissions + audit log review

Staging & Pipelines

CommandWhat it does
/project:stage [type] [name]Build staging HTML (blog, week, or asset)
/project:dashboardsBuild master dashboards (commands, canon, design system)
/project:export-clean [file]Strip internal version drawer for clean publish
/project:content-pipelineFull Content Engine flow diagram
/project:blog-pipelineFull Blog Engine flow diagram

Pipelines

Content Engine (Mon→Fri)

/intel-scan → /performance-review → /content-plan → [You review]
  → /content-week → /content-qa → [You review] → /post-today

Blog Engine (per article)

/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.


The brand brain

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.


Hooks

12 shell scripts that fire on Claude Code events. You don't call them — they run automatically.

HookEventWhat it does
canon-guardrailPreToolUseBlocks banned phrases in outbound content
check-referencePreToolUseBlocks visual builds without a live-site screenshot
block-no-verifyPreToolUseBlocks git commit --no-verify
commit-qualityPreToolUseBlocks secrets and debugger code in staged files
suggest-compactPreToolUseSuggests /compact after long sessions
canon-changelogStopSnapshots canon edits + appends CHANGELOG entry
session-endStopAuto-saves session state
action-auditStopLogs every external action to audit.log
cost-trackerStopLogs token usage and cost estimates
desktop-notifyStopmacOS notification when a long task finishes
session-startSessionStartLoads last session state, memory, pending tasks
pre-compactPreCompactSaves context before compaction

Configuration

Required (5 variables)

VariableExample
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"

Industry starters

Pre-filled configs in starters/:

  • web3.env — crypto compliance, community-first, Discord
  • saas.env — LinkedIn-heavy, case studies, product-led
  • ecommerce.env — product launches, seasonal cadence, conversion
  • generic.env — baseline for anything else

See config.env.example for the full variable list including CMS IDs, Linear prefix, compliance jurisdictions, and credential paths.


Memory

EVC gets smarter the longer you use it:

  • QA failures → lessons. Failed content auto-appends to content-engine/memory/lessons.md. Ships with 14 pre-loaded.
  • Performance → planning. /performance-review writes winning patterns to learning-log.md. /content-plan reads it before building next week's brief.
  • Session continuity. session-end hook saves state on every stop. session-start loads it. No manual save required.
  • Canon freshness. validate.sh warns if brand rules are over 30 days old.

Security

  • .secrets/chmod 700, owner-only. Never committed.
  • config.envchmod 600. References token files, not inline keys.
  • scripts/secret-scan.sh — Scans for leaked API key patterns. Runs on setup.
  • Action audit log — every external action logged append-only to .claude/audit.log.
  • Nothing auto-sends. Every post, message, and CMS push requires explicit approval.

Extending

Add a command

# 1. Write the prompt
vim _templates/commands/my-command.md

# 2. Render
./setup.sh

# 3. Use it
/project:my-command

Add a hook

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


Credits

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.