fix(ecosystem): close ledger validation gap and decode workstream codes - #136
Conversation
…lan codes The workstream field carried the internal plan vocabulary that #122 purged from prose. The ledger schema, the validator, and the test fixtures kept it. Rename the field to audit_group in both committed ledgers, check-ledger.py (workstream_counts -> audit_group_counts), the reconciliation and falsification fixtures, and the corpus README. The new name states what the data is: the audit's grouping for a reviewed label. Decode every value with a grounded source. P34-W1-manual-audit becomes manual-audit; pre-governance-measurement.md records those 390 identities as manually classified. The posit ledger notes name the RY032 cleanup instead of P34-W2 and drop the stale Plans 35 and 36 reference. The tidyverse batch ids (P2, P3a, plan-29, plan-32-33) stay verbatim. Nothing in the repo or its history defines them. The audit that assigned them lived outside it. Inventing labels would falsify the reviewed record. The README says so. reconcile.R and run.sh print the reviewed findings delta. Workstream named nothing a user could act on.
Nothing invoked scripts/oracle.sh. CI runs cargo test -p ry-checker --test oracle -- --ignored --nocapture directly, and no document referenced the script. It exited 0 when Rscript was missing, so it could never gate anything. The oracle.rs header now names only the cargo command.
|
Warning Review limit reachedNext included review available in 54 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
ℹ️ No critical issues — minor suggestions inline.
Reviewed changes
- Ledger field rename
workstream→audit_groupacross both committed ledgers (152 tidyverse, 728 posit findings),ecosystem/check-ledger.py, the reconciliation/falsification fixtures, anddocs/corpus/README.md. Verified purely mechanical: all 152 tidyverse old/new value pairs are identical, posit finding count unchanged at 728, and noworkstreamreference survives anywhere in the repo. - Posit value decode and notes rewrite:
P34-W1-manual-audit→manual-auditwith the count preserved at exactly 390 (pre-governance-measurement.mdrecords the batch as manually classified); notes now name the RY032 cleanup and drop the stale Plans 35/36 reference;audit_group_countsregenerated and revalidated. - Falsification battery reproduced locally: the committed ledger validates (728 findings); doctored copies fail on offsetting counts, an extra nonzero key, and a missing key; a zero-valued extra key still passes — matching the per-key union comparison design.
- Reconciliation stderr message now says "reviewed findings delta" identically in
ecosystem/reconcile.Randecosystem/run.sh. scripts/oracle.shdeleted: no reference survives; CI's oracle job runscargo test -p ry-checker --test oracle -- --ignored --nocapturedirectly (.github/workflows/ci.yml:119), and the stale pointer in theoracle.rsheader comment is gone.
ℹ️ Nitpicks
- The tidyverse row of the ledger table (
docs/corpus/README.md:16, untouched here) still says 100 diagnostics /4 / 96 / 0, buttidyverse-0.7.1.jsonholds 152 findings (4 TP, 92 FP, 56unowned). Pre-existing drift, but since this PR's goal is README–ledger agreement, a follow-up row refresh may be worth it.
openai-compatible/glm-5.3 | 𝕏
The parentheticals read as exhaustive with three names each, but posit-0.9.0.json has 12 distinct groups and tidyverse-0.7.1.json has 17. State the true totals, mark the names as examples, split cause / owner / method naming, and carve upstream-ggplot2 out of the tidyverse batch ids. Totals derived from the ledgers themselves.
|
Note on the review's table nitpick (docs/corpus/README.md:16): confirmed pre-existing drift. |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This run covered the delta since the prior review at e42d2f6 — the docs-only commit 21b79c4.
- Made the
audit_groupname lists explicitly non-exhaustive indocs/corpus/README.md: the defining paragraph now states the true totals from the ledgers (posit: 12 groups; tidyverse: 17), presents the named groups as examples, splits the naming claim into cause / owner / method, and carvesupstream-ggplot2out as the one descriptive tidyverse label rather than a batch id. - Verified every figure in the rewritten paragraph against the data: recomputed group counts from both ledger JSONs — posit has exactly 12 distinct groups with
manual-auditthe largest at 390 of 728, and tidyverse exactly 17 (16 batch ids plusupstream-ggplot2); the intro and defining sentence both readaudit_group(singular), matching the schema keys andcheck-ledger.py.
openai-compatible/glm-5.3 | 𝕏

Summary
Finishes the codename purge in ledger data and tooling, and removes a dead script. Implements part of #90.
The check-ledger item from #90's Validation section turned out to be already closed on main (4edbb8d). This PR does not re-touch that logic. It verifies the existing fix by falsification: offsetting negative entries, extra keys, and missing keys all fail, and the committed zero-valued taxonomy entry still passes.
Changes
workstreamtoaudit_group(workstream_countstoaudit_group_counts; snake_case per the existing schema keys). The new name states what the data is: the audit's grouping for a reviewed label. Both committed ledgers,ecosystem/check-ledger.py, the reconciliation and falsification fixtures, anddocs/corpus/README.mdagree.P34-W1-manual-auditbecamemanual-audit(390 identities;docs/corpus/pre-governance-measurement.mdrecords them as manually classified). The posit ledger notes name the RY032 cleanup instead ofP34-W2and drop the stale Plans 35 and 36 reference.P2,P3a,plan-29,plan-32-33) are not decodable. Nothing in the repo or its history defines them; the audit that assigned them lived outside it. Invented labels would falsify a reviewed audit record. The ids stay verbatim under the honest field name, and the README says why.ecosystem/reconcile.Randecosystem/run.shnow print the reviewed findings delta instead of the reviewed workstream delta. Workstream named nothing a user could act on.scripts/oracle.sh. Nothing invoked it: CI runscargo test -p ry-checker --test oracle -- --ignored --nocapturedirectly and no document referenced it. It also exited 0 when Rscript was missing, so it gated nothing. Dropped the stale pointer from theoracle.rsheader comment (its only reference).Verification
python3 -m py_compile ecosystem/check-ledger.pypython3 ecosystem/check-ledger.py docs/corpus/posit-0.9.0.json— OK, 728 findingsRY_REPO_ROOT=. Rscript ecosystem/test-reconciliation.R— 9/9 PASS (with jsonlite installed locally)python3 ecosystem/test_posit_messages.py— 2/2 OKRscript -e 'parse(...)'onreconcile.Randtest-reconciliation.R;bash -nonrun.shandtest-posit-label-falsification.shworkstreamand nooracle.shreferences remain