Description
The ExperienceNet tracker has 214 open issues and most of them have never been triaged. This is the grooming backlog, with the work list computed from the tracker on 2026-07-29 rather than estimated.
Context: an audit of all open issues was run to find NimsForest work sitting on the wrong tracker. It found only 3 (now moved to the NimsForest tracker as #132, #133, #134) and 4 junk entries (deleted). The split between the two trackers is healthy. What it did surface is that the tracker is badly under-groomed.
## The numbers
| Measure | Count | Of 214 open |
|---|---|---|
| No priority set | 203 | 95% |
| Untouched for over 60 days | 188 | 88% |
| Category still `unclassified` | 66 | 31% |
| Weak or empty `project` field | 31 | 14% |
| In an exact-duplicate title group | 40 | 19% |
Age spread: 13 issues older than 120 days, 175 between 60 and 120 days, only 23 touched in the last month.
## 1. Duplicates: 14 groups, 40 issues
Exact title matches, largest first. Each group needs one survivor with the others closed as duplicates, pointing at it.
| Count | Ids | Title |
|---|---|---|
| 8 | 71, 74, 78, 79, 83, 89, 90, 91 | stream issue |
| 4 | 338, 354, 357, 360 | iPad log — bxl1-test-3/nerdland |
| 4 | 337, 343, 353, 355 | iPad log — bxl1-test-2/nerdland |
| 3 | 177, 178, 179 | hydraheadflatscreen: document why --no-game-optimization |
| 3 | 174, 175, 176 | Portrait streaming: orientation contract implementation |
| 2 | 398, 399 | Pi Fleet Migration: move Hydra + NimsForest off Hetzner |
| 2 | 395, 396 | Castle viewer fails to start, "body discovery failed" |
| 2 | 336, 352 | iPad log — bxl1-test/nerdland |
The remaining 6 groups are pairs; the full list is reproducible with the script at the bottom.
**398 and 399** need a decision rather than a merge: they are near-identical, they span both the Hydra and NimsForest stacks, and both look superseded by #408 (Hydra half) and #409 (NimsForest half, now NimsForest #134). Likely close both.
## 2. The Nerdland event cluster: 15 issues
Ids 329, 330, 336, 337, 338, 343, 352, 353, 354, 355, 357, 360 and others in that range. Captured during the event on 2026-05-21 to 05-23 and untouched since. Half of them are the duplicate iPad log groups above.
These were event-day capture, not triage. Each needs to become a real issue or be closed. Two months on, most are probably closed.
## 3. Likely already resolved
Worth checking and closing rather than grooming:
- **324** — the title itself says "likely fixed" (v0.2.16 to 0.2.17)
- **238**, **270** — validation and smoke-test tickets for hydraheadipad v0.2.80 and v0.2.112; current is past v0.2.120
- **200** — reads as a completed deliverable ("pipeline complete and lessons documented")
- **356** — scoped "pre-v2.0.57", long superseded
- **141** — hydraheadsamsungtv, parked until 2026-05-26, that date passed two months ago
- **183** — explicitly marked `[PAUSED]`
- **59**, **60** — untouched since 2026-03-19, one-line descriptions, never triaged
## 4. Wrong or missing `project`
31 issues have an empty, `Not sure`, bare `hydra`, or legacy `experiencenet` project. The body usually names the component:
- **402**, **397** — empty, are `hydraheadflatscreen` and `hydraneck`
- **395**, **396**, **378**, **384**, **389** — empty, visitor-reported Rupelmonde and cloud-seven bugs, are `hydrabody` or `hydraheadflatscreen`
- **276** — empty, is `hydrapipelinerunnerapple` (its twin 277 has it)
- **197**, **198** — empty, are `hydraheadflatscreen` (twin 196 says `hydra`)
- **188**, **189** — empty, are `hydraheadflatscreen` (cheeky-cactus macOS kiosk)
- **141** — empty, is `hydraheadsamsungtv`
- **390**, **391**, **392**, **393**, **394**, **329**, **202**, **196** — bare `hydra` catch-all, each names a specific component in its body
- **81** to **88**, **166** — legacy `experiencenet` label, all `hydrabody` or `hydracluster`
- **60** — filed as `hydrabody` but is a request for a developer portal, nothing to do with bodies
- **246** — filed as `hydracluster` but title and body are `hydraheadflatscreen`
- **109** — project `hydrastreamdeck`, which does not appear to exist as a repo
## Suggested order
1. Close the duplicates, keeping one per group. Removes 26 issues immediately.
2. Resolve the Nerdland cluster, since it overlaps heavily with step 1.
3. Close the likely-resolved list after checking each.
4. Fix `project` on the remainder, then set category and priority.
Steps 1 to 3 should take the tracker from 214 open to roughly 170, at which point the untriaged tail is small enough to work through.
## Reproducing the work list
```bash
curl -s -H "Authorization: Bearer $TOKEN" \
"https://issues.experiencenet.com/api/v1/issues?status=open" > open.json
# duplicate groups
node -e 'const a=require("./open.json"),g={};for(const i of a){const k=i.title.trim().toLowerCase();(g[k]=g[k]||[]).push(i.id)}
for(const [t,ids] of Object.entries(g).filter(([,v])=>v.length>1).sort((x,y)=>y[1].length-x[1].length))console.log(ids.length,ids.join(","),t)'
# untriaged
node -e 'const a=require("./open.json");console.log("no priority:",a.filter(i=>!i.priority).length,
"unclassified:",a.filter(i=>i.category==="unclassified"||!i.category).length,
"weak project:",a.filter(i=>!i.project||["Not sure","hydra","experiencenet"].includes(i.project)).length)'
```
## Already done, do not redo
- 3 NimsForest issues moved off this tracker: former #411, #409, #415, now closed here and retitled `[MOVED to nimsforest]`
- 4 Hydra issues moved back here from the NimsForest tracker: #416, #417, #418, #419, with their plans, comments and nim actions carried across
- 4 junk issues deleted: former #379, #380, #386, #410, two tests and two spam entries from a throwaway address