NEXT_TASKS: reconcile to 2026-07-30 (PR #268, issues #269-#273, PR #274) - #275
Merged
Conversation
Records the network-rendering batch that started from the last actionable in-repo item on the web design review (#199) and the CI hygiene work it turned up. Adds a "Per-community network rendering + CI hygiene" section covering: - PR #268 (merged): legend renders only the interaction types a community actually has, the palette is CVD-verified (full-set minimum ΔE 0.0 → 15.4), and tests/test_network_palette.py gates both enum coverage and the ΔE floor. Closes #269 and #271. - #270 (open): interaction type is carried by colour alone; no nine-colour set is safe under all three deficiency types, so a redundant channel is the real fix. Records that the UMAP already solves this with a symbol scale. - PR #274 (open) / #272: network-quality.yml could not be parsed, so it had never run; also documents the two conditions that could never have fired even once it parsed. - #273 (open): the 26 audit findings split 22 soft / 4 genuine dangling references, plus the missing auditor severity levels and the broken `audit-network --json`. Also notes for future readers that the surviving community.html.j2 under src/communitymech/templates/ is live and must not be confused with the stale top-level duplicate #199 asked to delete, and that the taxon/"Other" neutrals have to be re-picked alongside the hues rather than after them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Reconciling the backlog against the KB found three recorded numbers had drifted, and one large gap that had never been tracked at all. Corrections, all re-measured 2026-07-30 across 305 records: - Causal-edge coverage is 59/305, not the "~65/304" the causal-graph section claimed. 246 records carry no downstream edge. - Records with no growth conditions is 80/305, not the 52/295 issue #183 states. But 52 of the 80 are NATURAL field communities that legitimately have none, so the curatable slice is the 28 ENGINEERED records, and even that includes pure computational models. Real target is ~24. - GTDB grounding was never tracked despite the schema slot and the ground-taxa-gtdb skill both existing: 569/995 taxa (57%), spread as 91 records fully grounded, 140 partially, 72 with none. Filed as #276 and added as its own section. Adds a priority menu at the top ranking the six actionable items, with GTDB grounding recommended first — it is the largest gap depending on nothing outside this repo, and the 140 partially-grounded records are the sharpest part of it because a half-grounded record cannot be distinguished from one where GTDB has no equivalent. The blocked items are listed separately with the reason each is blocked, so they stop being re-litigated every reconcile: #259 (publisher download), #183's closed-access remainder, #30 (sibling-repo schema), the validate-terms-all residuals (terms we cannot mint), and the 4 space-regolith candidates with undefined membership. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review of this PR — with the numeric claims re-derived independently rather than trusted — confirmed every measurement but found four things to correct. **§1 was overstated.** The blocked-items entry claimed "every one of the 34 residuals needs a term that does not exist and that we cannot mint". §1 itself contradicts that twice: ~12 of the 34 are obsolete GO ids needing a curator-accepted repoint rather than minting, and §1 already records a near-repoint found for sodium metasilicate. Roughly 14 of the 34 are genuinely un-mintable. The gate stays blocked overall, but part of the set is decidable here, and saying otherwise buries actionable work on the blocked list. **The NATURAL split was ambiguous.** "52 of the 80 are NATURAL" is true by ecological_state but invites recomputing by community_origin and getting 57 — the difference being 5 NATURAL-origin records that are ENGINEERED in state and so belong with the curatable set. Both occurrences now say STABLE or PERTURBED and explain the 57. **Two smaller fixes:** the growth-conditions target is 25, not ~24 (only three of the 28 ENGINEERED records are pure computational models), and the JSON print is cli.py:91, not :90 — line 90 is the `if output_json:` guard. Also adds sections for #183, #182 and #259, each of which had been carried on the blocked list more pessimistically than the code supports: - **#183** — its own "52/295" is stale (now 80/305), and the curatable slice is 25 named records. Of those, 1 has real full text, 18 have abstract stubs and **6 have nothing cached at all** — never attempted, which is not the same as paywalled, and is the cheapest next step in the section. - **#182** — not blocked, just undecided; a curator has to choose per row. Flags GO:0055114 → GO:0016491 as the one remap wrong on type grounds (BP → MF) rather than merely broad, and distinguishes this surface from §1's residuals, which are easy to conflate. - **#259** — mostly shipped in #260/#261. What remains is that Unpaywall is queried only to name an OA location, never to fetch it, so an OA-but-not-PMC source still costs a manual round trip. Self-contained work, not blocked. Menu grows to 8 items; #277 filed for the four dangling [[wiki-links]]. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backlog maintenance only — no code or data changes.
Records the network-rendering batch that began from the one remaining actionable in-repo item on the web design review (#199), plus the CI hygiene work it turned up. The other four long-standing open issues (#259, #183, #182, #30) are all blocked on things this repo cannot supply — publisher access, curator judgment, sibling-repo schema — which the new section states explicitly so the next reconcile doesn't re-litigate it.
New section, Per-community network rendering + CI hygiene (2026-07-30):
tests/test_network_palette.pygates both enum coverage and the ΔE floor. Closes Network interaction palette is not colorblind-safe; COMPETITION and PREDATION are near-identical even in normal vision #269 and No gate keeps the network palette in sync with InteractionTypeEnum #271.network-quality.ymlcould not be parsed and had never run. Also records the two conditions that could never have fired even after it parsed, since that is the kind of thing a future reader would otherwise have to rediscover.DISCONNECTEDand 4 genuine dangling references, plus the auditor's missing severity levels and the brokenaudit-network --json.Two notes aimed squarely at whoever picks this up cold: the surviving
src/communitymech/templates/community.html.j2is live and must not be confused with the stale top-level duplicate #199 asked to delete, and the taxon/"Other" neutral swatches have to be re-picked alongside the hues — tuning the nine and treating the neutrals as an afterthought produced a ΔE 6.5 collision that nearly shipped.Last reconciledmoves to 2026-07-30. 275 tests still pass.🤖 Generated with Claude Code
Second commit: priority menu + three corrected numbers
Reconciling the backlog against the actual KB (rather than relaying the file) found that three recorded numbers had drifted, and one large gap had never been tracked at all.
Corrections, all re-measured 2026-07-30 across 305 records:
downstreamedgeThe growth-conditions gap is smaller than 80 makes it sound: 52 of those are NATURAL field communities (34 STABLE, 18 PERTURBED) that legitimately have no cultivation conditions, so the curatable slice is the 28 ENGINEERED records — and even that includes pure computational models (
BioModels_…,KBase_…). The real target is roughly 24.New: a priority menu at the top of the file ranking the six actionable items, and a separate list of blocked items with the reason each is blocked, so they stop being re-litigated at every reconcile.
Recommended next: GTDB grounding backfill (#276), filed as part of this reconcile. The schema slot and the
ground-taxa-gtdbskill have both existed for a while, but coverage was never measured, so the field got filled in opportunistically during unrelated passes and is now uneven: 91 records fully grounded, 140 partially, 72 with none. The partials are the sharpest part — a record where some taxa are grounded and others aren't cannot be distinguished by a downstream consumer from one where GTDB genuinely has no equivalent. It is also the only large item on the menu that depends on nothing outside this repo: the mapping table is local, so there is no literature access, curator judgment, or sibling-repo dependency involved. And it is a correctness pass, not only coverage — the skill flags GTDB reclassifications such as NCBITaxon Agrobacterium deltae → GTDB Agrobacterium leguminum.Third commit: review round
The numeric claims were re-derived independently rather than taken on trust. Every measurement held — 569/995 GTDB taxa, the 91/140/72 record split (and exactly 2 files with no
taxonomykey at all, which is why it sums to 303 not 305), 59/305 causal edges, 80/305 missing growth conditions, and all 19 issue/PR cross-references. Four things needed correcting.§1 was overstated on the blocked list. The entry claimed "every one of the 34 residuals needs a term that does not exist and that we cannot mint" — but §1 itself contradicts that twice. About 12 of the 34 are obsolete GO ids needing a curator-accepted repoint, not minting, and §1 already records a near-repoint found for sodium metasilicate. Roughly 14 are genuinely un-mintable. The gate stays blocked overall since it fails on any unresolved row, but describing the whole set as upstream-blocked buries decidable work.
The NATURAL split was ambiguous. "52 of the 80 are NATURAL" is true read by
ecological_state, but a reader recomputing bycommunity_origingets 57 — the difference being 5 NATURAL-origin records that are ENGINEERED in state and therefore belong with the curatable set, not the field communities. Both occurrences now say "STABLE or PERTURBED" and explain the 57 explicitly.Two smaller ones: the growth-conditions target is 25, not ~24 — only three of the 28 ENGINEERED records are pure computational models. And the JSON print is
cli.py:91; line 90 is theif output_json:guard.Three sections added for items carried too pessimistically
references_cache/: 1 has real full text, 18 have abstract stubs (0.8–5.4 KB), and 6 have nothing cached at all. Those 6 were never attempted, which is not the same as paywalled, and runningcache_fulltext.pyon them is the cheapest next step in the section.GO:0055114→GO:0016491as the one remap wrong on type grounds (biological process → molecular function) rather than merely broad, and separates this surface from §1's residuals, which are easy to conflate.Also: #199's checkboxes were stale — the legend item and the stale-template item were both done but still unticked, so the issue disagreed with this file. Reconciled on the issue, and the surviving live
community.html.j2is now called out there so nobody deletes it by following the old instruction. #277 filed for the four dangling[[wiki-links]], which point at a machine-local memory store rather than anything in the repo.