placement-promotelisted
Install: claude install-skill fantasybz/trip-pwa-skills
# placement-promote
`food-ingest` parks any caption the router can't confidently place into
`feed_candidates.json` (`candidate_for: food | desserts | attractions | fandom |
nearby | null`). The
口袋名單 view already shows the candidates inline tagged 待分類, but they stay
candidates until you confirm them. This skill moves a confirmed candidate into
the right venue corpus (`food` / `desserts` / `attractions` / `fandom` /
`nearby`), or discards a wrong one — one command, dedup-safe, service worker
regenerated.
## When to use
- The user points at a 待分類 venue in the 口袋名單 view and says which corpus it
belongs to (food / a dessert cafe → desserts / a teamLab attraction → attractions
/ a Pokémon Center → fandom / a 神社 or スーパー → nearby).
- A market-food Reel (e.g. 광장시장 김밥) landed in candidates and should be a real
food entry. (The v0.2.1 router fix routes most of these to `food.json`
directly now; this handles the residual ties and `candidate_for: null` cases.)
- The user wants to clear a candidate they've decided against (`--discard`).
## How to run
List what's promotable (ids + why each was parked):
```bash
bun skills/placement-promote/placement-promote.ts --out ./trip --list
```
Promote one into a venue corpus — `--to food|desserts|attractions|fandom|nearby`
(binds a day if you know it; reuses the candidate's `day_hint` otherwise):
```bash
# food keeps the full food schema (category / kid_friendly / anchor / backup_fit):
bun skills/placement-promote/placement-promote.ts