Fix-Plan Execution Session — Handoff for Next Session
Audience: future-Claude or future-user resuming this work in a later session.
Status at handoff: Cross-axis fix plan committed on master; H_synth Option A architecture-level retirement adjudicated; PR 1 (Integrity Gates) + PR 2 (Subtraction Infrastructure) opened on GitHub. Master HEAD: 002bcf2 (handoff) → 7cd479c (correction) → 4d74060 (plan). Both PR feature branches pushed. Master has 3 local-only commits not yet on origin.
First action for next session
git push origin master
Surfaces the 3 master-only commits (plan + correction + handoff, this file) on GitHub. Low-risk, no rebase needed, no force-push. Once master is on origin, the fix-plan artifact + retraction + handoff become visible from the PR descriptions of #22 and #23 (which currently reference master commits by SHA without those commits being public).
Then proceed to the next-session follow-ups in §Open follow-ups below — recommended order: review/merge PR #22, then PR #23, then start PR 3 (Bridge-Card Triage) or PR 4 (Paper A reader IA).
TL;DR
- Cross-axis fix plan drafted via Claude + GPT-5.5 (Codex desktop) collaboration. 13 findings across 3 axes → 5 substrate clusters + 1 maintainer decision point → sequenced as 5 bundled PRs. Durable artifact at
wiki/.audit/fix-plan-2026-05-17.md. - H_synth Option A retirement adjudicated (retire/replace with δ architecture). Distinct from the 2026-05-05 claim-status contestation: today's adjudication authorizes operational propagation of the γ split into wiki's downstream code (
scripts/wikisite/paper_a.py:47four-slug hardcoding) and public-site presentation, per Cluster 5 (PR 4). The claim entryscience-secrete-stiftung-chiasmremains atcontestedper the prior 2026-05-05 reasoning; a 2026-05-17 status-history line documents today's architecture-level adjudication. - One AI-collaboration failure mode caught + retracted: "CLAUDE.md drift on
build_site/wikisite/" was a Claude+Codex mutual hallucination — Claude's prompt seeded the path; Codex's "doesn't exist; should fix" reply was misread as a finding; grep-verified post-commit that the string appears nowhere in the repo. Retracted in commit7cd479cwith full reasoning. Methodology lesson now committed evidence: CLAUDE.md General Rule 16 (citation traceability) applies to AI-source-cited findings, not only human-source-cited findings. - PR 1 (Integrity Gates) opened: https://github.com/JeffvonD/wikiwip/pull/22. CI green at handoff time. 2 commits (prep doc + mechanical script). Adds
scripts/check_public_site.py(public-reader gate: Pagefind assets + search-UI-without-index + broken-href ratchet) and a CLAUDE.md Rule 19 addendum distinguishing baseline gate from public-reader gate. 14 new tests. - PR 2 (Subtraction Infrastructure) opened: https://github.com/JeffvonD/wikiwip/pull/23. CI pending at handoff time. 2 commits (prep doc + mechanical script). Adds
scripts/claim_retirement_queue.py(Phase 8.6 retirement/downgrade queue generator: non-mutating; readswiki/claims.md, writes queue atwiki/.audit/claim-retirement-queue-{date}.md) and CLAUDE.md §Subtraction Infrastructure + audit SKILL Phase 8.6 sections. 14 new tests.
Wiki state (master @ 7cd479c): 485 pages | 57 sources | 277 concepts | 129 entities | 22 questions | 158 claim entries (17 supported / 83 live / 57 candidate / 1 contested / 0 retired). Same as start of session — no new pages or claim entries; the only claims.md edit was a status-history line + Updated bump on science-secrete-stiftung-chiasm.
Wiki schema: v0d.9 (unchanged in this session). PR 2 prep commit's ### Subtraction Infrastructure addition under §Claim Status Gates is editorial — clarifies an existing rule's relationship to a new mechanism without introducing new claim statuses, motif tiers, or typed connections.
What landed in this run
Commits on master (2)
4d74060plan 2026-05-17: cross-axis fix plan + H_synth architecture-level retirement — createswiki/.audit/fix-plan-2026-05-17.md(~360 lines initial; corrected in next commit), appends status-history bullet toscience-secrete-stiftung-chiasm, bumps the entry's Updated 2026-05-05 → 2026-05-17, matches the Updated date in the Summary table +wiki/index.mdclaim row, adds the fix-plan addition to the "Last update" header comment, appends a new[2026-05-17] planlog entry. Refreshes baselines:home_audit_count76 → 77.7cd479ccorrection 2026-05-17: retract Claude+Codex mutual hallucination — 4 in-place corrections towiki/.audit/fix-plan-2026-05-17.md(TL;DR + Cluster 2 "fold in" bullet + Decision Points table row + Open Questions item 1; each marked strikethrough/DROPPED with post-hoc grep verification + retraction reasoning inline), 1 rewrite of the drift sentence inwiki/index.md's "Last update" comment, new[2026-05-17] correctionlog entry. The original[2026-05-17] planlog entry stands per Rule 2 (append-only chronology); the new entry is the corrective evidence.
Both master commits are local-only as of handoff (not pushed to origin). Pushing master will surface the plan + retraction on GitHub.
PR 1 — Integrity Gates (https://github.com/JeffvonD/wikiwip/pull/22)
Branch: claude/pr1-integrity-gates-2026-05-17 (pushed). 2 commits:
26770c3pr1-prep: pure CLAUDE.md addendum to General Rule 19 — distinguishes baseline gate (corpus-structure drift, existing) from public-reader gate (release-artifact invariants, new). Namesscripts/check_public_site.py(introduced in the next commit).530792apr1-mechanical: addsscripts/check_public_site.py(~200 lines) +scripts/tests/test_check_public_site.py(14 tests, all passing). Script checks: Pagefind assets present; no search UI rendered when index missing; no broken local hrefs above--max-broken-hrefsthreshold (baseline-ratchet pattern). Exit codes: 0 / 1 / 2 / 3 / 4.
Dogfood against current local build: Pagefind missing (expected — build was --skip-pagefind) + 822 broken hrefs (mix of ~293 real dead wikilinks per Codex + audit-page rendering noise: numeric refs '2', '15' from numbered citations rendered as anchors, literal placeholder strings like '/claims/claim-slug/' from CLAUDE.md / audit-report prose).
Deliberately not in PR 1: CI wiring (needs broken-href baseline pinning after triage); build_site.py refactor to detect Pagefind availability before render (separate concern; the gate catches the symptom, the refactor fixes the bug); dead-link triage queue (Cluster 2 follow-up).
PR 2 — Subtraction Infrastructure (https://github.com/JeffvonD/wikiwip/pull/23)
Branch: claude/pr2-subtraction-queue-2026-05-17 (pushed). 2 commits:
5f56c1bpr2-prep: CLAUDE.md### Subtraction Infrastructureaddition under §Claim Status Gates + parallel### Phase 8.6 — Retirement / downgrade queuesection in.claude/skills/audit/SKILL.md. Both codify: queue-producing not auto-mutating; never editswiki/claims.md; preserves the durable supported-promotion HALT; heuristics (keep/review for staleness, downgrade for Test 2 or Test 3 defects, merge for slug similarity + wiki-home overlap, retire is deliberately conservative).ec32803pr2-mechanical: addsscripts/claim_retirement_queue.py(~290 lines) +scripts/tests/test_claim_retirement_queue.py(14 tests, all passing). Module API matches Codex's draft surface:queue.main(argv),queue.generate_report(wiki, run_date, duplicate_threshold). Output: 6-column markdown table atwiki/.audit/claim-retirement-queue-{date}.mdwith Slug / Status / Age / Suggested action / Gate / Rationale.
Dogfood against real claims.md (158 entries): default --staleness-days=90 returns 0 candidates (no stale, no empty Counterpressure/Evidence sections under the inclusive content-line heuristic, no slug-pair duplicates). With --staleness-days=14: 18 candidates surfaced as keep/review (entries last touched 18–19d ago), confirming the staleness path works.
Deliberately not in PR 2: CI wiring (script is on-demand for now); heuristic refinements beyond the three above; actual claim retirements in wiki/claims.md (the queue is for adjudication, not adjudicated).
Methodology artifacts
- The fix-plan artifact (
wiki/.audit/fix-plan-2026-05-17.md) is the durable plan. Codex chat is preserved at "Review repo top issues" under the wikiwip pinned project but not committed; the artifact's file:line citations are sufficient for resuming work without the chat. - The retraction log entry is the methodology lesson committed as evidence: cite-traceability applies to AI-source-cited findings as well. Reference this when bringing future outside AIs into the wiki workflow.
Codex Cluster 3 / PR 2 draft provenance
Codex (GPT-5.5 Extra High, Auto-review mode) drafted the PR 2 substance in the "Review repo top issues" chat following Claude's request for: full scripts/claim_retirement_queue.py implementation + CLAUDE.md §Claim Status Gates wording extension + skeleton scripts/tests/test_claim_retirement_queue.py + .claude/skills/audit/SKILL.md Phase 8.6 extension. Codex's actual line-by-line script content was not transcribed; Claude implemented from Codex's API design (module function signatures, queue format, flag set, exit-code semantics) and design stance ("noisy enough to surface stale live claims as keep/review, but conservative enough that only concrete gate defects suggest downgrade or retire").
If a future session wants to verify the implementation against Codex's exact draft, re-open the Codex chat (still pinned at "Review repo top issues") and scroll to the response immediately after Claude's "Update on the wikiwip work: H_synth Option A retirement adjudicated..." message.
Cross-axis fix plan status
Per wiki/.audit/fix-plan-2026-05-17.md substrate-cluster sequence:
| # | Cluster | Status |
|---|---|---|
| 1 | Maintainer Decision Point: H_synth / δ | RESOLVED 2026-05-17 (Option A) |
| 2 | Integrity Gates & CI | PR #22 open (prep + mechanical committed; CI wiring pending) |
| 3 | Retirement & Subtraction Infrastructure | PR #23 open (prep + mechanical committed; first maintainer-adjudicated queue run pending) |
| 4 | Bridge-Card Triage & Weave Pre-Step | Not started |
| 5 | Reader-Facing IA & Argument Paths | Not started (gated on Cluster 1, now unblocked) |
| 6 | Provenance Surface | Not started (worth doing after Cluster 5) |
Drop / defer (per Codex + maintainer-adjudicated): do NOT reader-fy the Paper A matrix (keep as maintenance instrumentation); do NOT clean historical bridge-card pilot artifacts pinned at check_lint_baseline.py:26; do NOT mass-fix all 293 dead links in one PR (generate triage, then batch by substrate).
Open follow-ups (next-session work)
Sequenced by impact-per-effort
- PR #22 review / merge — CI is green; the prep+mechanical split is clean. Merge unblocks two follow-up commits on a new branch: (a) CI wiring of
check_public_site.pyinto.github/workflows/site.ymlwith a pinned baseline for--max-broken-hrefs(need to triage 822 to a defensible number first); (b)build_site.pyrefactor moving Pagefind binary discovery before render. These are independent of each other; can land in either order. - PR #23 review / merge — CI pending at handoff; expected to pass given dogfood + 14/14 unit tests. Merge unblocks: (a) first maintainer-adjudicated retirement queue run (review 0 candidates at default threshold, OR run with tightened
--staleness-daysfor active review); (b) heuristic refinements over time (link-rot detection, retracted-source detection, etc.). - Push master — the 2 master-only commits (
4d74060plan,7cd479ccorrection) are local. Pushing surfaces the plan + retraction on GitHub for fork-state parity. Low-risk admin step. - PR 3 — Bridge-Card Triage (Cluster 4) — can start without further Codex round-trip. Triage-ledger schema already specified in fix-plan Cluster 4. Touch points:
.claude/skills/weave/SKILL.md:97,.claude/skills/bridge-card-signoff/SKILL.md:34, newscripts/validate_weave_pass3.py, newscripts/tests/test_weave_pass3_validation.py. Bridge-card-signoff run-3 (2026-05-17) is the most recent reference for what the existing sign-off machinery does. - PR 4 — Paper A reader IA + δ architecture propagation (Cluster 5) — now unblocked by H_synth Option A. Substantial scope: new argument-path schema; split Paper A surfaces into maintainer (existing
/paper-a/matrix/) vs reader (new/paper-a/read/or/paper-a/argument-path/);scripts/wikisite/paper_a.py:47four-slug hardcoding swapped; new templates + CSS; new tests; maintainer-supplied first δ-path sequence. Will need a focused multi-commit session. - PR 5 — Provenance Surface (Cluster 6) — last per Codex's sequencing ("Provenance without reader path is just another sidebar"). Per-page provenance panel (cited sources, extraction-note anchors, related claims, last audit touch, confidence/status). UX/content policy decision required (minimal public mode vs maintainer mode).
Within-PR follow-ups (after merge)
For PR 1:
- Triage the 822 broken hrefs into substrate buckets (real dead wikilinks vs audit-page rendering noise vs example placeholder strings). The audit-page rendering noise is itself a fix-the-renderer concern, not a fix-the-content concern.
- Wire
check_public_site.pyinto.github/workflows/site.ymlonce--max-broken-hrefsbaseline is pinned. - Refactor
build_site.py:1457/:1521to detect Pagefind availability beforepagefind_enabledis set; templates render fallback when binary missing.
For PR 2:
- Run the first real maintainer-adjudicated queue (tighter
--staleness-days, e.g. 14 or 30; review the 18 candidates surfaced). - Refine heuristics based on what the first review surfaces (e.g., evidence-link-rot detection if a real entry has stale anchor references; retracted-source detection if a real entry's Sources list contains a withdrawn artifact).
- Consider promoting the queue from on-demand to a Phase 8.6 standing step in
AUDIT_PLAN.mdonce the heuristics stabilize.
Maintainer-decision points still pending
Per fix-plan §Maintainer Decision Points (corrected version after retraction):
| When | Decision | Status |
|---|---|---|
| Cluster 2 prep commit | Final CLAUDE.md wording for baseline-vs-public-reader gate distinction | DONE in PR 1 prep |
| Cluster 3 prep commit | Final wording for Phase 8.6 retirement queue in audit SKILL | DONE in PR 2 prep |
| Cluster 3 human step | First per-claim adjudication of queue output (158-claim review) | Pending — needs first real queue run |
| Cluster 4 schema change | Approve triage ledger bucket vocabulary | Pending |
| Cluster 5 mechanical commit | Confirm δ architecture as Paper A canonical root in code | Pending — PR 4 substance |
| Cluster 5 human step | Supply first δ-path sequence | Pending |
| Cluster 6 human step | Provenance verbosity policy for public site | Pending |
What does NOT need attention
science-secrete-stiftung-chiasmclaim entry — status correctly held atcontested(the 2026-05-17 architecture-level adjudication is documented in the entry's Status History; no further status-change action needed beyond what's already committed in4d74060).- The bridge-card-signoff workflow — most recently exercised in run-3 (2026-05-17 commit
9e8157a); not affected by today's session. - The v0d.9 schema — not changed in this session.
- The
motifs.mdaggregation — not touched.
Notes for the next session opener
- If resuming with Codex collaboration: the "Review repo top issues" chat is pinned under wikiwip in Codex desktop. Sending another message resumes the same context; Codex sees the PR branches and the file changes. Single-writer discipline (Claude writes files; Codex stays advisory) saved this session — keep it.
- If resuming Claude-only: the fix-plan artifact (
wiki/.audit/fix-plan-2026-05-17.md) is the source of truth for what's next. The retraction's methodology lesson applies: cite-verify every "the prior session said X exists" claim before acting on it. - The 2 master-only commits make the wiki state on disk consistent with the fix plan; pushing master surfaces them on GitHub. Whether to push is a maintainer call (no urgency in this session).
- Baseline refresh is required before any commit that touches
wiki/content (General Rule 19). Both master-only commits and both PR commits already passed baseline refresh in this session. - The 158-claim total + 17 supported / 83 live / 57 candidate / 1 contested / 0 retired breakdown is unchanged. The retirement queue from PR 2 is designed to be the mechanism that, over time, takes that
0 retiredoff the floor — but only via maintainer adjudication, never automation.
Session metrics
- Commits: 6 (2 on master + 2 per PR × 2 PRs)
- PRs opened: 2 (#22, #23)
- New files: 5 (fix-plan artifact + 2 scripts + 2 test files; also this handoff)
- Lines added: ~1670 across all commits (per cumulative diff stats)
- Tests added: 28 (14 per PR), all passing
- Subagents engaged on Claude side: 0 (work was direct edits + Codex collaboration via MCP)
- Codex chat turns: 3 (initial findings request, fix-plan request, Cluster 3 draft request)
- Mutual hallucinations caught + retracted: 1 (the
build_site/wikisite/drift claim)