# S03: Homepage Cards & Creator Metric Polish — UAT

**Milestone:** M008
**Written:** 2026-03-31T05:27:37.324Z

## UAT: Homepage Cards & Creator Metric Polish

### Preconditions
- Chrysopedia running at http://ub01:8096
- At least one technique page exists with key moments and topic tags
- At least one creator exists with associated technique pages

---

### Test 1: Homepage card shows key moment count
1. Navigate to http://ub01:8096
2. Scroll to "Recently Added" section
3. Observe any technique card
4. **Expected:** Card displays a number followed by "moment" or "moments" (e.g., "4 moments")
5. **Expected:** Count matches actual key moments for that technique (verify via API: `curl http://ub01:8096/api/v1/techniques?limit=10 | jq '.items[] | {title, key_moment_count}'`)

### Test 2: Homepage card shows topic tag pills
1. Navigate to http://ub01:8096
2. Scroll to "Recently Added" section
3. Observe a technique card that has topic tags
4. **Expected:** Small pill badges appear showing the technique's sub-topic tags (e.g., "Compression", "EQ")
5. **Expected:** Pills are styled distinctly from surrounding text (background color, rounded)

### Test 3: Technique with zero key moments
1. Find a technique with no key moments (or verify via API: item with `key_moment_count: 0`)
2. **Expected:** No moment count label appears on that card (not "0 moments")

### Test 4: Creator detail shows topic categories instead of views
1. Navigate to http://ub01:8096/creators
2. Click any creator with techniques
3. **Expected:** Stats area shows topic categories with counts (e.g., "Mixing: 4 · Synthesis: 2")
4. **Expected:** No "0 views" or "views" text appears anywhere on the page

### Test 5: Creator with no techniques
1. Navigate to a creator detail page for a creator with zero techniques (if one exists)
2. **Expected:** Topic category section is hidden or shows nothing — no empty/broken display

### Test 6: API contract
1. Run: `curl -s http://ub01:8096/api/v1/techniques?limit=3 | python3 -m json.tool`
2. **Expected:** Each item in `items` array has a `key_moment_count` integer field
3. **Expected:** Values are non-negative integers matching actual key moment counts

### Edge Cases
- **Case-inconsistent categories:** If a creator has techniques tagged "Sound design" and "Sound Design", they may appear as separate categories. This is a known upstream data issue, not a UI bug.
- **Long tag lists:** A technique with many topic tags should wrap gracefully without breaking card layout.
