# Brand Artifact

> Generate and maintain research-driven brand artifact library. Coach personas are always derived from real forum research — never invented. Living docs that evolve as research and performance data come in.

- Skill: `derivativelabs/brand-artifact` (Agent Skill)
- Install (CLI): `npx skillmds@latest add derivativelabs/brand-artifact`
- Raw SKILL.md: https://api.skillmd.com/api/skills/derivativelabs/brand-artifact/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: DerivativeLabs (https://skillmd.com/u/derivativelabs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/derivativelabs/brand-artifact

---


# Brand Artifact Skill

Synthesizes research files into structured brand artifacts that drive the content engine.
The coach persona — used for angle validation — is always derived from community research, never hardcoded.

## Commands

```bash
# Generate brand docs from existing research
bun scripts/brand-artifact.ts init <slug>

# Propose updates from new research (human reviews diffs)
bun scripts/brand-artifact.ts update <slug> --from <research-file>

# Display artifact(s)
bun scripts/brand-artifact.ts show <slug>
bun scripts/brand-artifact.ts show <slug> community-profile

# Extract coach persona for a platform (for content angle loop)
bun scripts/brand-artifact.ts coach <slug> <platform>

# List all brands + artifact status
bun scripts/brand-artifact.ts list
```

## Artifact Files

| File | Generated by | Updated by | Purpose |
|------|-------------|-----------|---------|
| `community-profile.md` | LLM (from research) | Research updates | Per-platform audience + coach personas |
| `voice-guide.md` | LLM (from research) | Performance data | Tone, examples, anti-examples |
| `competitive-context.md` | LLM (from research) | Research updates | Honest positioning per competitor |
| `product-state.md` | Template | **Manual only** | What's live, pricing, accuracy checklist |
| `performance-log.md` | Template | After each publish | What landed, what didn't |
| `research-refs.md` | Template | After each update | Research source index |

## The Core Principle

> Coach personas derive from research, never from assumptions.

`community-profile.md` contains one coach persona per platform. Each persona:
- Cites which research file confirmed its patterns
- Distinguishes `[RESEARCH-CONFIRMED]` from `[INFERRED]`
- Sounds like a real community member, not a marketing brief

The content angle loop extracts this persona via `coach <slug> <platform>` and injects it into the validation agent.

## The Evolution Loop

```
New research runs
      ↓
bun scripts/brand-artifact.ts update <slug> --from <file>
      ↓
Proposed diffs written as *.proposed-update.md
      ↓
Human reviews → applies changes → deletes proposed file
      ↓
research-refs.md updated with new source
```

After content publishes:
```
Performance data collected (upvotes, engagement, SEO ranking)
      ↓
Manual entry in performance-log.md
      ↓
What worked → promote to voice-guide.md positive examples
What flopped → add to voice-guide.md anti-examples
Persistent patterns → update community-profile.md coach persona
```

## File Locations

| Path | Purpose |
|------|---------|
| `scripts/brand-artifact.ts` | Main CLI |
| `docs/brand-artifacts/<slug>/` | Brand artifact files |
| `docs/brand-configs/<slug>.json` | Brand config (source for init) |
| `docs/market-research/` | Research files (source for init + update) |

## What to Fill Manually

`product-state.md` is the one file the LLM cannot fill accurately. Before any content publishes, a human must verify:

- Features list matches the actual product
- Pricing / free tier is current and accurate
- Code examples in drafts actually run
- Any "coming soon" claims are removed

## Related Skills

- `brand-audit` — runs before init (produces the audit data that feeds product-state.md)
- `community-research` — powers the research that feeds init and update (use your preferred search/discovery API, e.g. Reddit JSON API, Algolia, SerpAPI, or a search/discovery service of your choice)
- `conversation-monitor` — ongoing community monitoring that generates update inputs

