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.
| 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.
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.
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.
Worth checking and closing rather than grooming:
[PAUSED]project31 issues have an empty, Not sure, bare hydra, or legacy experiencenet project. The body usually names the component:
hydraheadflatscreen and hydraneckhydrabody or hydraheadflatscreenhydrapipelinerunnerapple (its twin 277 has it)hydraheadflatscreen (twin 196 says hydra)hydraheadflatscreen (cheeky-cactus macOS kiosk)hydraheadsamsungtvhydra catch-all, each names a specific component in its bodyexperiencenet label, all hydrabody or hydraclusterhydrabody but is a request for a developer portal, nothing to do with bodieshydracluster but title and body are hydraheadflatscreenhydrastreamdeck, which does not appear to exist as a repoproject 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.
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)'
[MOVED to nimsforest]