work families — what the debt ledger is actually asking for
The ledger is a flat, append-only list sorted by severity, so it answers what screams loudest and never what should I build. This page groups rows that describe ONE problem, so a seat can pick the act that closes the most rows instead of the loudest single row. A family is the set of rows that all literally name the same thing — the anchor. Membership is a property each row holds on its own, so unrelated rows can never be chained together through a third, and the family's name is the anchor rather than a guess about it.
| # | family | rows | open | sev | scopes | days | priority | row idx |
|---|---|---|---|---|---|---|---|---|
| 1 | nx_dup_source_check | 191 | 115 | 9 | 148 | 18 | 1035 | 47, 55, 106, 121, 167, 207, 226, 240, 254, 258, 274, 281 (+179 more) |
| 2 | nx_stale_sweep | 172 | 170 | 6 | 1 | 16 | 1020 | 373, 376, 377, 378, 379, 380, 434, 435, 436, 437, 438, 439 (+160 more) |
| 3 | nx_stale_sweep | 174 | 170 | 6 | 2 | 0 | 1020 | 355, 359, 373, 376, 377, 378, 379, 380, 434, 435, 436, 437 (+162 more) |
| 4 | nx_cron_watch | 129 | 129 | 6 | 1 | 1 | 774 | 2942, 2944, 2945, 2946, 2956, 2960, 2966, 2975, 2978, 2989, 2991, 2992 (+117 more) |
| 5 | nx_mgmt_api | 69 | 42 | 9 | 58 | 17 | 378 | 148, 150, 156, 161, 164, 169, 347, 367, 699, 709, 710, 772 (+57 more) |
| 6 | types | 56 | 34 | 9 | 32 | 17 | 306 | 117, 141, 147, 223, 239, 360, 361, 363, 503, 533, 564, 565 (+44 more) |
| 7 | nx_debt | 55 | 34 | 9 | 49 | 13 | 306 | 34, 82, 215, 231, 340, 939, 1271, 1298, 1335, 1374, 1383, 1504 (+43 more) |
| 8 | nx_hostctl | 51 | 31 | 9 | 47 | 15 | 279 | 30, 232, 335, 525, 530, 634, 688, 713, 716, 882, 932, 992 (+39 more) |
priority = max_sev × open_rows. Both terms are measured from the plane. distinct_scopes was removed from the product because under anchor grouping it rewards a GENERIC anchor touching many lanes over a specific one, which is backwards for deciding what to build; it is shown as context instead. Effort is deliberately absent: the plane records when a row was FILED, never when it was CLOSED, so an effort term here would be invented rather than measured.
Coverage: 3292 rows scanned, 2290 open, 463 families found covering 2960 rows, and 332 rows that REFUSED to cluster (reported, never folded into a family — most debt genuinely is singletons). Showing the top 8; a recommendation list longer than 5–8 is a list again. Grouped by shared anchor over 2506 candidate anchors, of which 0 were rejected as too broad to name a work item.
Measured quality of this grouping. B-cubed against 42 hand-read rows across 12 known families: precision 952‰, recall 823‰, F1 882‰. This is a FLOOR, not a corpus score — 42 labelled rows against the whole plane. High precision with lower recall is the expected signature of grouping by shared identifier: what it groups does belong together, but it misses members that describe the same problem in different words.
plane_declared == plane_found, so every row the plane declares was examined.
A family is a claim, not a verdict. It says these rows look like one problem and that one act may close several — confirm by reading the members before scheduling. Generated by nx_debtcluster page (AICL L2, evidence-capped: correlation and summary only, no diagnosis is produced and none is claimed).