Repository navigation
P3: provenance, release and real-data figures (REP-02, REP-03, S-RP.1-4, FIG-02, SCI-07) #41
Description
Package P3 of the iteration-3 plan: provenance, release and the real-data figures. Owner: agent for code and figures; blocked in part by #46. Size: days.
Closes or advances: REP-02, REP-03, S-RP.1 to S-RP.4, FIG-02, SCI-07, COMP-01 (archive part), S-RE.5/S-FD.4/S-FD.5.
- Light CI (build and sidecar checks). A workflow that builds the PDF and fails on
??,,%,<<and[Fundingin its text, runs the fast figure generators and diffs their arrays against the committed sidecars (add a--checkmode to codameter.figures), and runs the test suite with the pinned environment. The reviewer itself stays on demand. - Sidecar provenance (S-RP.1). figures.py: record a dirty-tree flag (git status --porcelain) and a generator source digest (as golden._generator_hash does) beside git_commit; rebuild every figure from a clean tree at the release tag.
- Shard provenance (S-RP.4). bench.py score_cell rows carry golden._generator_hash() and the commit; check_shards requires agreement.
- Calibration invocation (S-RP.3). Data availability names the three producing invocations (--n 200 --start-seed 2000, scenarios clean, shared_source, clock_drift, ~58 min each with single-threaded BLAS) or points to the settings and seeds fields of each locked_*_n200.json.
- Field products (REP-02). Once the author supplies rights and target: archive the 2-4 Hz daily products with sha256 and a licence file; cite SCEDC and the Clements and Denolle 2023 data release with DOIs; pin the noisepy-dvv-cloud commit and --use-case in paper/data/gate1/README.md.
- Comparison figure (S-RE.5, S-FD.4, S-FD.5). Write an in-repo generator for Fig 15 from the archived products and paper/data/gate1/comparison.json with the corrected error bars and the matched-rule r; register it in codameter.figures; keep the interferogram and warm-up figures external and say why (CCFs not archived); fix qmd 1299-1300 ("near 0.7") against Table 6.
- Release (REP-03, S-RP.2). Bump the version (the Weaver floor and scorer changes are breaking; the docstring already says "Before v0.5"); tag from a clean tree after regenerating every figure and the calibration table at that tag; deposit through release.yml (Zenodo); cite tag and DOI in Data availability; update CITATION.cff (currently 0.1.0 with a JGR preferred citation) and the README zenodo placeholders.
Acceptance: a reader can regenerate every generated figure, the calibration table and the comparison table from the tagged release; the only external artefacts are the two interferogram-based figures, named as such.
Working agreement (agents and humans). One PR per issue, branch iter3/<package> off docs/sign-convention-manuscript; name the ledger IDs in the PR title; request Copilot review before approval. Do not edit review/REVISION_PLAN_ITER3.md except to tick boxes and append a dated log line naming this issue. Do not hand-edit statuses in reviews/codameter-gji.review.json; the reviewer reconciles them in P7. Tests and pre-commit hooks must pass. Before requesting review, rebuild the PDF (cd paper && ../.pixi/envs/dev/bin/python build.py --no-survey) and check its text for ??, ,%, << and [Funding. Evidence for every finding: reviews/iter2/block_S-*.md; full report reviews/codameter-gji.iter2.report.md; plan review/REVISION_PLAN_ITER3.md.
Activity
mdenolle commentedon Sep 13, 2026
Part 1 in PR #54 (branch iter3/P3): sidecar provenance (git_dirty, generator_digest), the figures --check mode, shard digests, the in-repo Fig 15 generator, the calibration invocations in Data availability, and the paper workflow. Archive, release and DOI items remain here and wait on #46 and on the other packages.
Log the P3 part-1 execution in the iteration-3 plan record (#41)
Remove script and module names from the P3 manuscript text (#41)
Sidecar check: relative-difference diagnostic over either array; dirt…
Sidecar check: scale from each array's largest finite magnitude, no c…
check_shards refuses rows without a generator digest; selector reuses…
Paper workflow: pull requests to the manuscript branch only; honest d…
Git provenance helpers in a plotting-free module; quiet NaN-placement…
Gate 1 generator: the rules file follows the gate1 path and its absen…
Cache git_commit per process; omit missing commits from the shard inv…
Cache the generator digest and the dirty flag per process (#41, Copil…
git_dirty: relative pathspec from the package directory (#41, Copilot…
Cache the golden generator hash per process; SOURCES.md says which re…