$npx -y skills add PHY041/claude-skill-reddit --skill reddit-creator-deployTurn a KOL roster + subreddit brand-fit analysis into a deployable creator network. Splits creators into KOL (authority) and KOC (grassroots) layers, matches each to a main + secondary subreddits by real gear/shooting-type ∩ community fit, and emits an account×subreddit deploymen
| 1 | # reddit-creator-deploy |
| 2 | |
| 3 | ## 用途 / Purpose |
| 4 | The packaging step between "who could post" (reddit-kol-finder) and "who posts what, where" (reddit-content-brief). Takes real creators + real subreddit brand-fit and produces the **deployment plan**: KOL/KOC two-layer split, an account×subreddit matrix, and per-creator persona cards — all under Route A disclosed-creator compliance (no sockpuppets, disclosure mandatory, ≤3 of our creators per sub, no cross-creator interaction). Generalised from the AcmeGear campaign (`创作者花名册` + `部署矩阵`). |
| 5 | |
| 6 | ## 输入 / Inputs |
| 7 | | arg | required? | type | where it comes from | error if missing | |
| 8 | |---|---|---|---|---| |
| 9 | | `--roster` | yes | file | `kol_roster.json` from reddit-kol-finder (uses `reddit_native[]`), or a plain `[{handle,subreddits,tier,gear,shooting_types,geo,profession}]` list | `ERROR: --roster file not found` (exit 2); 0 creators → exit 3 | |
| 10 | | `--subs` | yes | file | subreddit brand-fit map `{"<sub>":{"fit_score":N,"tolerance":".."}}` or sweep jsonl (`{"sub":..,"verdict":{"fit_score":..}}`) | `ERROR: --subs file not found` (exit 2) | |
| 11 | | `--brand` | yes | string | brand name (used in disclosure lines) | `ERROR: the following arguments are required: --brand` | |
| 12 | | `--products` | no | comma list | product lines (for context) | — | |
| 13 | | `--out-dir` | no | dir | output dir (default `out`) | — | |
| 14 | |
| 15 | ## 输出 / Outputs |
| 16 | - **`deployment_matrix.json`** — `{brand, n_creators, n_kol, n_koc, max_per_sub, saturated_subs, rows[]}`; each row `{handle, layer(KOL/KOC), geo, main_sub, secondary_subs[], cadence, disclosure}`. |
| 17 | - **`deployment_matrix.md`** — the human table + 合规底线 block; flags any subreddit over the ≤3-creator ceiling. |
| 18 | - **`persona_cards.md`** — one card per creator (真实身份 / 主副场 / 社区匹配逻辑 / 披露式品牌关系 / 节奏), labelled 招募画像 (real people fill in later). |
| 19 | |
| 20 | ## 逻辑 / How it decides |
| 21 | - **Layer**: roster `tier` A → KOL; B/C → KOC; else infer from `signals.upvotes_total` (≥200 → KOL). |
| 22 | - **Main/secondary subs**: rank the creator's own subreddits by real `fit_score` from `--subs`; top = main, next 1-2 = secondary. A creator only ever lands in communities they actually belong to. |
| 23 | - **Cadence**: KOL = 1 post/2-3wk + weekly comments; KOC = comment-led + 1 post/3wk. |
| 24 | - **Compliance (baked, not optional)**: every card carries the FTC disclosure requirement; matrix enforces ≤3 of our creators per sub (flags saturation), no cross-creator interaction, no same-content multi-sub. Route A only — no fabricated personas. |
| 25 | |
| 26 | ## Usage |
| 27 | ``` |
| 28 | $ python3 scripts/generate.py --roster kol_roster.json --subs subs_fit.json \ |
| 29 | --brand "AcmeGear" --products "兔笼,快装板,监视器支架" --out-dir out |
| 30 | {"n_creators": 5, "n_kol": 2, "n_koc": 3, "saturated_subs": {}, "out_dir": "out"} |
| 31 | ``` |
| 32 | Test: `python3 scripts/test.py` (real fixture in `fixtures/`, asserts layer split + fit-ranked mains + disclosure on every row). |
| 33 | |
| 34 | ## Pipeline position |
| 35 | Runs after `reddit-kol-finder` (consumes its `kol_roster.json`) and before `reddit-content-brief` (which writes what each deployed creator posts). Front-end recon comes from `subreddit-deep-research` (community universe + high-upvote logic + rules) → its `--subs` fit output feeds this skill. |