brand-gen-setup — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited brand-gen-setup (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
For Sage brand work in Pi, use the paste-ready prompt at docs/prompts/pi-sage-brand-gen-full-pipeline.md. It routes Pi through the typed brand_* tools, the brand-orchestrator subagent, exact-text gates, v2/DSPy review, GEPA-ready disagreement fields, and typed mutation loops. Keep this link instead of copying the full prompt into skill bodies.
This skill covers installation, validation, and host wiring.
After setup is complete, load:
skills/brand-gen/SKILL.md — main workflowskills/brand-gen-reference/SKILL.md — models, surfaces, file layoutskills/brand-gen-logo/SKILL.md — logo workflowsskills/brand-content-ideation/SKILL.md — messaging/copy ideationNew saved brands and testing sessions also get a generated Pi runtime prompt at <brand-dir>/prompts/pi-full-pipeline.md. Use that brand-scoped prompt for non-Sage brands instead of the Sage-specific prompt under docs/prompts/.
agent-browsergit clone <your-fork-or-repo-url>
cd brand-gen
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e .
bgen --helpIf bgen is not found, activate the venv first.
cp .env.example .envSet REPLICATE_API_TOKEN in .env.
Important notes:
.env is the preferred config sourceBRAND_GEN_DIR if you want durable state outside the repo checkoutCreate .brand-gen-local.json at the repo root. The agent should do this automatically:
repo_root from the current working directory (pwd).brand_vault_paths / brand_knowledge_base_paths). Use global vault_paths only for a single-brand checkout.{
"repo_root": "<detected path>",
"vault_paths": [],
"brand_vault_paths": {
"<brand-key>": ["<user-provided Obsidian vault path if any>"]
},
"brand_knowledge_base_paths": {
"<brand-key>": ["<user-provided docs path if any>"]
}
}This file is only needed for Pi agents. If the user is CLI-only, skip this step. Do not put Sage vault paths in global vault_paths for a multi-brand workspace; each brand should inherit only its own source knowledge.
Creative defaults (quality benchmarks, concept categories, metaphor vocabulary) are stored per-brand in brand-profile.json → creative_context and seeded on bgen create-brand.
After creating or connecting a brand, verify brand-profile.json contains a creative_context block. If missing (older brands or extract-brand workflows), the agent should create it with defaults: quality_benchmarks from .brand-gen-local.json or ["Stripe", "Aesop", "Criterion", "Muji"], concept_categories derived from the brand's keywords, metaphor_vocabulary empty.
| Tool | Install | Purpose |
|---|---|---|
agent-browser | npm install -g agent-browser && npx playwright install | product screenshots and inspiration capture |
ffmpeg | brew install ffmpeg / apt install ffmpeg | video → GIF helpers |
sips | pre-installed on macOS | WEBP → PNG conversion |
| Google Chrome | normal browser install | HTML share-card PNG rendering |
agent-browser is treated as required by the validation script because capture/inspiration workflows depend on it, even though basic generation can run without it.
python3 scripts/validate_setup.pyThis checks:
Fix any required missing items before moving on.
Start with the most generic option your host supports.
Add instructions like:
For brand material generation, use `bgen ...` or `python3 -m brand_gen ...`.
Start by checking `bgen context-snapshot --format json`.Run the stdio MCP server:
python3 -m brand_gen.brand_iterate_mcpRegister that command in your host’s normal MCP config.
If your Claude setup expects copied local skills:
cp -r skills/brand-gen-setup/ ~/.claude/skills/brand-gen-setup/
cp -r skills/brand-gen/ ~/.claude/skills/brand-gen/
cp -r skills/brand-gen-reference/ ~/.claude/skills/brand-gen-reference/
cp -r skills/brand-gen-logo/ ~/.claude/skills/brand-gen-logo/
cp -r skills/brand-content-ideation/ ~/.claude/skills/brand-content-ideation/
cp -r skills/brand-gen-orchestration/ ~/.claude/skills/brand-gen-orchestration/
claude mcp add brand-gen -- python3 -m brand_gen.brand_iterate_mcpOr add the MCP server manually to Claude’s config with cwd set to the repo root.
Use the tracked package under packages/pi-brand-gen/.
Install Pi first using the official quickstart in the badlogic/pi-mono coding-agent README:
npm install -g @mariozechner/pi-coding-agentpi, or run pi and use /loginTypical local setup from the repo checkout:
cd packages/pi-brand-gen
npm install
npm run typecheckThen register the local extension in Pi. Note that brand-gen's Pi integration currently ships from this repo checkout under packages/pi-brand-gen/; it is not yet a standalone published Pi package. Configure at least:
brandGenDirbrandIterateMcpPath, approvalMode, heartbeatIntervalMinutes, autoHeartbeatImportant Pi note:
.env, so set REPLICATE_API_TOKEN therebrand_gen/brand_iterate_mcp.py<repo>/.venv/bin/python if that interpreter exists; otherwise it falls back to python3brandIterateMcpPath if you need to override the detected backend pathAfter Pi is wired up, verify with:
/brand-gen status
/brand-gen brands
/brand-gen summaryIf you need to change the active saved brand inside Pi, use:
/brand-gen switch <brand>Creating a new saved brand or starting a testing session is still CLI-first today:
bgen create-brand ...
bgen start-testing ...See packages/pi-brand-gen/README.md for the current config and command surface.
Use the tracked package under packages/openclaw-brand-gen/.
Typical local setup from the repo checkout:
cd packages/openclaw-brand-gen
npm install
npm run typecheckThen configure the plugin with at least:
brandIterateMcpPathbrandGenDir, logoIterateMcpPath, approvalMode, autoHeartbeatSee packages/openclaw-brand-gen/README.md for the current config and tool surface.
For the full 6-phase generation pipeline (prepare → plan → validate → generate → critique → evolve), load skills/brand-gen-orchestration/SKILL.md after setup. This skill encodes the multi-agent quality workflow as sequential instructions any host can follow.
On OpenClaw, add it to your skills paths. On Claude Code, copy it to ~/.claude/skills/. On CLI-first agents, reference it in your agent instructions.
bgen create-brand \
--name "test-brand" \
--description "A test brand for validating the setup" \
--tone "calm,modern" \
--palette "#336699"
bgen pipeline \
--material-type x-feed \
--goal "Validation run" \
--mode hybrid \
--format json
bgen show --format json --latest 1If the pipeline completes and show returns a recent version, the install is working end to end.
| Symptom | Fix |
|---|---|
bgen: command not found | activate the venv or re-run python3 -m pip install -e . |
REPLICATE_API_TOKEN not set | check .env and re-run validation |
agent-browser: command not found | npm install -g agent-browser && npx playwright install |
| MCP server exits immediately | run python3 -m brand_gen.brand_iterate_mcp directly from the repo root |
| OpenClaw plugin fails to start | check Node 22+, verify brandIterateMcpPath, and run npm run typecheck |
ModuleNotFoundError: No module named 'brand_gen' | run from the repo root with the venv active, or reinstall editable mode |
Once setup is validated, load skills/brand-gen/SKILL.md for the real workflow.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.