# Store Strategy

> Trendy Strategy Approval stage (PRD §4.5). For each approved trend, generate a preview-only strategy package: 3 brand variants, 6 illustration concepts per variant (LOW-RES previews), Printful product selection with pricing, site preview, and 6 draft blog articles. Nothing is live, no Printful sync, no route. Kicked off by the build-check cron every 15 min.

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

---


# Store Strategy (Strategy Approval)

## Role

For each **approved** trend without a store, create the preview-only strategy
package and persist a `stores` record in status `strategy_review`. Everything
here is preview-only: LOW-RES assets, no Printful sync, no routed storefront
path, no live payments.

## Package contents

1. **Branding** — exactly **3 brand variants** per trend
   (`branding.variants[]`, one per tone `conservative` / `catchy` /
   `aggressive`). Each: `{name, slug, logo (preview), colors[], tone,
   design_md}` — the DESIGN.md language document.
2. **Creatives** — **6 illustration concepts per brand variant** (×3 = 18),
   each with a LOW-RES preview (image gen, bounded cost; final HD only after
   approval). Persist `asset_ids` on the selection.
3. **Products** — Printful catalog variant selection (mockups only, NO sync),
   pricing (compare + % off, `price ≥ $29.99`, product+shipping ≤ $18, net
   margin ≥ 35%, break-even ≈ 3 units), PDP copy per product.
4. **Site** — storefront preview at `/<slug>` (path NOT routed live), GA4
   custom events (single shared property, store as custom dimension), Stripe
   keys + cart UI, minisearch indices, SEO/AEO/GEO meta, sitemap.
5. **Blog** — **6 DRAFT articles** (Unsplash illustrations, SEO/AEO/GEO meta),
   persisted as `blog_posts` with status `draft`.

## Persist

- `stores` record: status `strategy_review`, `selection = {brand_variant:
  "", asset_ids[], product_ids[], blog_ids[], site_review: ""}`.
- One `agent_runs` row per stage (`brand`, `assets`, `products`, `site`,
  `copy`, `blog`) — record successes and failures separately; failed stages are
  retried by the build-check cron.

## Selection + chat refinement

- The operator selects exactly **one** brand variant → `selection.brand_variant`.
- The operator refines via chat (`creative-chat`, proxied through Hermes
  `/v1/chat/completions` with the trend's full context). Refinements are
  appended to `selection.refinements[]`; affected stages re-run and are
  recorded in new `agent_runs` rows (`agent_runs.feedback`).

## Exit

On **APPROVE STRATEGY** (operator action in back-office): advance
`strategy_review → building` via the status machine. Do not start the build
yourself — the build-check cron picks it up.

## Completion contract (final output)

```text
skill: store-strategy
status: ok|partial|failed
store_id: <pb_id>
brand_variants: 3
concepts: 18
products: N
blog_drafts: 6
agent_runs: [stage ids]
```

