Repository navigation
[TRACKING] Every claim checkable — execution checklist (#181) #191
Description
Activity
- addedepicA large capability spanning multiple storiesA large capability spanning multiple storiesplanningInvestigation/spike/decision workInvestigation/spike/decision work
on Aug 1, 2026 Correction to the standing checks, before any story runs.
The byte-freeze check was written as
git diff --stat main -- tests/fixtures/. Caught during S1: a localmainref can be stale — mine still pointed atadcd5de("Merge pull request #2"), long predating the 1.0.0 merge, so the command reported 10 changed fixture files on a branch that touched none of them.A verification command that produces a false alarm gets ignored after the second time, which would have defeated the point of freezing the wire. Corrected in #181, #186, #190 and above to:
git fetch origin git diff --stat origin/main -- tests/fixtures/ # must be emptyFitting first finding for an epic about claims that nothing checks.
- S1 — S1 — appwrite_env logs before it raises (C-71) #182 — done, merged in S1 (#182) — appwrite_env logs before it raises; ADR-008 pinned across both entry validators #193.
Also produced S10 S10 — Repair the þing-01 redaction guard: four of its five scan roots no longer exist (C-74) #192 (register C-74) — S1's review foundtests/test_redaction_guard.pyscanning 4 roots that stopped existing when S5 — Separate partner declarations from delivery machinery #153 moved the packages.
Next up: S2 #183.
- S1 — S1 — appwrite_env logs before it raises (C-71) #182 — done, merged in S1 (#182) — appwrite_env logs before it raises; ADR-008 pinned across both entry validators #193.
- S2 — S2 — Close what is already fixed, and make register closing conditions machine-checkable (C-43, C-59, C-61) #183 — done, merged in S2 (#183) — close Cluster K's three finished entries; make register closing conditions machine-checkable #194. Register 25 → 22 open; Cluster K mostly closed (C-60 → S5, C-46 → S7); Cluster M heading corrected to six.
Guard mutation-proven, then narrowed in review to executable roots only.
Next up: S3 #184 — and note F4 from S1's review: S3 must be re-read against the tree rather than applied from its issue text, because S1 moved the message it edits into a local
err_msg.- S2 — S2 — Close what is already fixed, and make register closing conditions machine-checkable (C-43, C-59, C-61) #183 — done, merged in S2 (#183) — close Cluster K's three finished entries; make register closing conditions machine-checkable #194. Register 25 → 22 open; Cluster K mostly closed (C-60 → S5, C-46 → S7); Cluster M heading corrected to six.
- S3 — S3 — Finish #158's rename, and ban the retired contract name from code #184 — done, merged in S3 (#184) — finish #158's rename, fix the URL it broke, and ban the retired name #195. Also finished Rename PLATFORM-001 -> The Appwrite Seam Contract in this repo's citations (cosmetic, non-blocking) #158 and fixed a broken URL in ADR-013 §7d that Rename PLATFORM-001 -> The Appwrite Seam Contract in this repo's citations (cosmetic, non-blocking) #158's find-and-replace created (a path containing spaces, never resolved). Both §7d links now pinned; Erratum E2 recorded;
contract_versionunchanged at 1.5.
Review widened the ban from two code roots to three — two would have repeated C-74 inside the epic that exists to close it.
Corrections pushed to #187 (S6): the registry is now v1.4.0, not 1.3.0, and
b54928fis pinned in two files that must move together.Next up: S4 #185.
- S3 — S3 — Finish #158's rename, and ban the retired contract name from code #184 — done, merged in S3 (#184) — finish #158's rename, fix the URL it broke, and ban the retired name #195. Also finished Rename PLATFORM-001 -> The Appwrite Seam Contract in this repo's citations (cosmetic, non-blocking) #158 and fixed a broken URL in ADR-013 §7d that Rename PLATFORM-001 -> The Appwrite Seam Contract in this repo's citations (cosmetic, non-blocking) #158's find-and-replace created (a path containing spaces, never resolved). Both §7d links now pinned; Erratum E2 recorded;
Pre-S4 issue sweep — one blocker found, one story added.
S11 #197 — run before S4. Epic #148's story #154 ("correct ADR-012 and the manager CIC to describe what the code is") was closed 2026-08-01 with ADR-012 done and the rest not. 18 references to code deleted by #149/#153 survive across four living docs.
tests/test_doc_accuracy.pyscans all four but its ban list only knows the ADR-011-era symbols, so it passed.Second "closed but undone" story issue after #158; seventh instance of the stale-claim class in three days.
Ordering is forced, not stylistic: the ban list cannot be extended until all four docs are clean, so it is one atomic story — and 5 of the 18 hits are in the CIC that S4's file list already includes.
Other open issues reviewed — none blocking:
issue verdict #18 C-03's other half, and stale like #15 was ( enrichment_descriptionis gone). S4 handles it — close or narrow, after checking existing coverage. Noted on the issue.#90 Collides with S5 #186: both rewrite build_gaul_lookup.py, and #90's parity target ("metadata identical") is what #186 deliberately changes. Noted; re-baseline after #186.#89 Stale paths only — unfao/enrichment.py→contract/,_read_version→gaul_lookup.version(). Substance unaffected. Noted.#125 Legitimately open, not stale: git merge + tag 1.0.0done; GitHub release and PyPI deliberately held for the platform signal.#123 Genuine open decision (Kosovo / GAUL coding, crosswalk ownership). Operator + platform call, not this epic's. #172, #174, #11, #133, #146 Blocked upstream — Cluster M, pipeline-core, faoapi. #96, #97, #40, #85/#93 Deferred by design; D-11 and #148 both held that line. - S11 — S11 — Living docs still describe code epic #148 deleted; the doc guard's ban list was never updated #197 — done, merged in S11 (#197) — living docs described code #148 deleted; the doc guard's ban list was never updated #199. Finishes S6 — Correct ADR-012 and the manager CIC to describe what the code is #154.
Ten live falsehoods across four living docs (not 18 — the issue's grep overcounted;role_and_seams.mdand the CIC were largely correct and gotlegacy-okmarkers instead of edits). Ban list 5 → 19, mutation-tested.
Next up: S4 #185 — and its CIC check is now satisfied, so it can focus on
test_validation.pyand #18.- S11 — S11 — Living docs still describe code epic #148 deleted; the doc guard's ban list was never updated #197 — done, merged in S11 (#197) — living docs described code #148 deleted; the doc guard's ban list was never updated #199. Finishes S6 — Correct ADR-012 and the manager CIC to describe what the code is #154.
- S4 — S4 — Retire the _validate replica: test the gate that exists, where it lives (C-03) #185 — done, merged in S4 (#185) — retire the _validate replica; test the gate where it fires #200. C-03 closed, its residual relocated to E2E test of the manager orchestrating the delivery (C-03's residual) — BLOCKED on a non-production Appwrite project #18 by number.
43 replica tests → 14 real ones. Mutation: narrowing the gate to one column fails 9 of 14; the old suite passed that mutation untouched. Three dischargedassert Falseprobes retired — first precedent for the residual C-36 recorded.
Register: 74 concerns, 21 open, 53 resolved.
Remaining: S5 #186 (largest — rebuilds the committed lookup) · S6 #187 · S7 #188 · S8 #189 · S10 #192 · S9 #190 closeout.
- S4 — S4 — Retire the _validate replica: test the gate that exists, where it lives (C-03) #185 — done, merged in S4 (#185) — retire the _validate replica; test the gate where it fires #200. C-03 closed, its residual relocated to E2E test of the manager orchestrating the delivery (C-03's residual) — BLOCKED on a non-production Appwrite project #18 by number.
- S5 — S5 — The lookup declares its own version instead of inferring it (C-60) #186 — done, merged in S5 (#186) — the lookup declares its own version instead of the consumer inferring it #201. C-60 closed. Largest story: builder composes a declared
lookup_version, consumer raises instead of degrading to"unknown", committed artifact rebuilt (metadata-only, values byte-identical, stamp unchanged atland_gaul@f74d3b2b). Wire frozen throughout.
Review caught the fix reintroducing C-60's own defect class — a silent fallback that would have stamped--region allwith land_gaul's digest. Recorded in the resolution rather than tidied away.
Register: 74 concerns, 20 open, 54 resolved. Cluster K down to C-46 alone.
Remaining: S6 #187 · S7 #188 (closes Cluster K) · S8 #189 · S10 #192 · S9 #190 closeout.
- S5 — S5 — The lookup declares its own version instead of inferring it (C-60) #186 — done, merged in S5 (#186) — the lookup declares its own version instead of the consumer inferring it #201. C-60 closed. Largest story: builder composes a declared
- S6 — S6 — Detect coordinate-registry drift against the Appwrite Seam Contract (C-57) #187 — done, merged in S6 (#187) — detect coordinate-registry drift; existence is not reachability #202. C-57 closed.
Four drift checks, all mutation-proven. The reachability check converts URGENT: repin views-appwrite b54928f -> 47172af — the pinned commit is being withdrawn #196 from an anecdote into something the suite refuses to let recur — existence is not reachability.
Two wrong narrowings on the value-copy check before the right one; the lesson is recorded: when a guard cries wolf, check whether the matching is wrong before assuming the scope is.
Register: 74 concerns, 19 open, 55 resolved.
Remaining: S7 #188 (closes Cluster K; adopts S6's helper and inherits the CI decision) · S8 #189 · S10 #192 · S9 #190 closeout.
- S6 — S6 — Detect coordinate-registry drift against the Appwrite Seam Contract (C-57) #187 — done, merged in S6 (#187) — detect coordinate-registry drift; existence is not reachability #202. C-57 closed.
- S7 — S7 — One declared way to find views-datafactory; no machine-specific paths (C-46) #188 — done, merged in S7 (#188) — one declared way to find views-datafactory; Cluster K closes #203. C-46 closed. Cluster K CLOSED — five entries, all full.
Found a fourth divergent site the issue did not list. Review caught the agreement guard skipping exactly the case it existed for.
Register: 74 concerns, 18 open, 56 resolved.
Remaining: S8 #189 (correction procedure; carries two operator questions) · S10 #192 (redaction guard) · S9 #190 closeout.
- S7 — S7 — One declared way to find views-datafactory; no machine-specific paths (C-46) #188 — done, merged in S7 (#188) — one declared way to find views-datafactory; Cluster K closes #203. C-46 closed. Cluster K CLOSED — five entries, all full.
- S10 — S10 — Repair the þing-01 redaction guard: four of its five scan roots no longer exist (C-74) #192 — done, merged in S10 (#192) — repair the þing-01 redaction guard; a declared root that vanishes now fails #204. C-74 closed. Redaction guard 6 → 17 files; a vanished root now fails instead of emptying the scan.
Register: 74 concerns, 17 open, 57 resolved.
Remaining: S8 #189 (correction procedure — carries two questions only the operator can answer) · S9 #190 closeout.
- S8 — S8 — Rewrite the post-delivery correction procedure for the delivery that exists (C-22, #15) #189 — done, merged in S8 (#189) — a correction procedure for the delivery that exists #206. C-22 closed, Document post-delivery correction procedure for wrong assignments (C-22) #15 superseded.
Steps 1–3 and 5 executable; step 4 awaits an operator decision and the document says so rather than improvising a default.
Register: 74 concerns, 15 open, 59 resolved. Only S9 #190 (closeout) remains.
- S8 — S8 — Rewrite the post-delivery correction procedure for the delivery that exists (C-22, #15) #189 — done, merged in S8 (#189) — a correction procedure for the delivery that exists #206. C-22 closed, Document post-delivery correction procedure for wrong assignments (C-22) #15 superseded.
- S9 — S9 — Epic closeout: dispositions, cluster hygiene, and the ADR question #190 — done, merged in S9 (#190) — epic #181 closeout, and ADR-014 for the rules no test carries #208. Epic [EPIC] Every claim checkable: clear the unblocked debt before the views-pipeline-core 3.0.0 bump #181 closed.
All eleven stories complete. Register 74 concerns, 15 open, 59 resolved; Clusters K and L closed; ADR-014 written.
Final state, every line a command:
ruff check . clean pytest -q 307 passed, 3 skipped, 41 xfailed, 5 known pyarrow git diff --stat origin/main -- tests/fixtures/ empty CONTRACT_VERSION "1.5" (unmoved all epic) grep -rn PLATFORM-001 --include=*.py 0 grep -rn "/home/" tests/ scripts/ pkg/ 0 views_pipeline_core importers 1
Execution checklist for epic #181 — Every claim checkable: clear the unblocked debt before the views-pipeline-core 3.0.0 bump.
Cross them off in order. S1–S5 are independent and may move in parallel if needed; S6–S8 have real dependencies; S9 closes.
The work
appwrite_envlogs before it raises (C-71)2 lines + a parametrised test over both entry validators. No dependencies. Do not extract a shared helper.
Register + one new integrity check. Must be mutation-tested against C-43's real pre-fix state.
4 strings + a ban test. Leaves historical ADR text alone.
18 stale references across 4 living docs; finishes S6 — Correct ADR-012 and the manager CIC to describe what the code is #154, which was closed with the work partly undone. Run before S4 — 5 of the 18 are in the CIC S4 already checks, and the ban list cannot be turned on until all four docs are clean.
_validatereplica (C-03)Delete a false fidelity claim; import
METADATA_COLS; test the gate where it lives.Largest story. Rebuilds the committed artifact. Wire verified unaffected — re-verify in the PR.
Carries two questions for the operator; draft everything else first rather than blocking.
Four of five declared scan roots stopped existing when S5 — Separate partner declarations from delivery machinery #153 moved the packages;
rglobon a vanished path is silent. Independent; sequence after S1.Dependency graph
Ritual between every story
The standing checks — run these every story, not just at the end
By S9 these must also be empty:
What this epic does NOT touch
Recorded here so nobody re-litigates it mid-sprint.
Blocked on views-pipeline-core 3.0.0 — Cluster M, six entries, two Tier 2: C-44, C-58, C-62, C-72, C-73, C-07. One publish clears all six. Not engineering work here.
Owned by another repo: C-13 / C-28 (pipeline-core #248, #347) · C-26 (#366) · C-27 (#367) · C-24 (faoapi #222) · C-43's assignment-correctness half (views-datafactory #387).
Deliberately deferred: C-33 / #97 · C-40's double-inheritance shell · #96 · C-15's pipeline-core-dependent half.
Refused on principle: no shared abstraction over
appwrite_envandlaunch_config. WET before DRY; the named trigger to revisit is a third entry-validation module.Expected end state
tests/that do not existPLATFORM-001in.pytests/gaul_lookup.version()can return"unknown"contract_version