Skip to content

feat(census): JSON Lines, with the source commit and census time of each row (WO 2.1) - #67

Merged
hyperpolymath merged 3 commits into
mainfrom
marina/eager-dijkstra-wlmapg
Nov 10, 2026
Merged

hyperpolymath merged 3 commits into
mainfrom
marina/eager-dijkstra-wlmapg

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Work order 2.1 of the re-anchoring plan: the census data moves to JSON Lines, and each row records where its counts come from.

Changes

  1. JSON Lines (standards JSON-POLICY J-2). Each census file holds one I-JSON/JCS record on each line:
    • catalogue-rows.json becomes catalogue-rows.jsonl, in byte order of repo.
    • repos.json becomes repos.jsonl, in byte order of full_name.
    • unreachable.json becomes unreachable.jsonl, now sorted by repo.
    • The scripts, the atlas, the registry and the tests read the new files. The atlas and the registry use one strict reader (parseJsonl): LF at the end, no blank line.
  2. Provenance. census-repo.sh records the commit that it read and the UTC time. build-rows.sh adds commit and censused_at to each row, and refuses a row without them. The atlas validator refuses a row without a 40-hex commit or a UTC time.
  3. One full census (just census) fills both fields for every row, with the scanner rules of 2026-11-10.

Checks

  • Format change only (first commit): jq -cS -s . over each new file equals the old array, sorted by repository, for every field.
  • Two branches that change two non-adjacent rows merge cleanly (tested in a scratch repository, rows 10 and 200). Two adjacent rows (10 and 11) still conflict: git merges adjacent hunks as one change.
  • The row count is derived in the tests and the documents. No document states it as a literal.

Census result

One full census, 2026-11-10 21:44 to 22:40 UTC, with the scanner rules of 2026-11-10 for every row. Against the census of 2026-11-09:

  • 110 rows change, 6 rows leave and 6 rows come in. Most changes come from the rules that changed since then: the SPARK gate, the status-document rank, template blobs and Rust provers.
  • hyperpolymath/sinople-theme has no commits, so it has no row (as before).
  • hyperpolymath/proven-cicd is public in repos.jsonl, but it cannot be cloned now. It moves to the "not reached" list. The frame is a listing of an earlier date, so this repository either became private, moved or was deleted.

RSR Quality Checklist

  • Census tests (tests/census/*.sh), atlas and registry tests (bun test tests/atlas tests/registry): pass.
  • just catalogue-check, census-atlas.mjs check, claims-registry.mjs check: pass.
  • scripts/check-ijson-jcs.sh --enforce: the three census files are canonical JSON Lines.
  • docs/status/ROADMAP.adoc records this row change under "Open census work", as the one-writer rule asks.
  • No new dependency. SPDX headers unchanged.


Generated by Claude Code

Each census file now holds one I-JSON/JCS record on each line (standards
JSON-POLICY J-2), so a change to one row changes one line only:

- catalogue-rows.json -> catalogue-rows.jsonl (byte order of repo)
- repos.json -> repos.jsonl (byte order of full_name)
- unreachable.json -> unreachable.jsonl (now sorted by repo)

build-rows.sh writes JSON Lines in C-locale order. run-census.sh,
update-rows.sh and render-catalogue.sh read and write the new files. The
atlas and the registry read them with one strict reader (parseJsonl): LF at
the end, no blank line. The tests read the new format.

Check: `jq -cS -s .` over each new file equals the old array, sorted by
repository, for every field. The catalogue changes in one line only: the
"Not reached" list is now in byte order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0136P7ZnDRsCLfZcFcEzvPcM
census-repo.sh records the commit that it read and the UTC time it read
it (out/<repo>.meta.jsonl). build-rows.sh adds `commit` and `censused_at`
to each row and refuses a row without them. The atlas validator refuses
a row without a 40-hex commit or a UTC time. The tests cover each case,
and census_rust_test checks the commit against the fixture forge.

One full census (`just census`, 2026-11-10 21:44 to 22:40 UTC) fills both
fields for every row, with the scanner rules of 2026-11-10 for every
row. Against the census of 2026-11-09: 110 rows change, 6 leave and 6
come in. Most changes come from the rules that changed since then (the
SPARK gate, the status-document rank, template blobs, Rust provers).
Two repositories have no row:

- hyperpolymath/sinople-theme has no commits.
- hyperpolymath/proven-cicd is public in repos.jsonl, but it cannot be
  cloned now. It is in the "not reached" list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0136P7ZnDRsCLfZcFcEzvPcM
@coderabbitai

coderabbitai Bot commented Nov 10, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

The three findings are on lines that WO 2.1 changed. The tests pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0136P7ZnDRsCLfZcFcEzvPcM
@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath marked this pull request as ready for review November 10, 2026 23:06
@hyperpolymath
hyperpolymath merged commit d9b3c15 into main Nov 10, 2026
45 checks passed
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants