Wiki State Maintenance Audit — 2026-05-12

Read-only state audit. This report verifies the current wiki maintenance surface against the repository as checked out on 2026-05-12. No wiki content, claims, workflows, scripts, schema, queues, or source pages were modified.

Evidence basis: CLAUDE.md, README.md, AUDIT_PLAN.md, wiki/overview.md, wiki/index.md, recent wiki/log.md, wiki/.audit/next-actions.md, .claude/skills/lint/SKILL.md, .claude/skills/audit/SKILL.md, .claude/skills/weave/SKILL.md, .github/workflows/site.yml, scripts/lint-mechanical.py, scripts/check_lint_baseline.py, scripts/build_site.py, scripts/validate_provenance_manifest.py, referenced tests, and targeted current-state checks.

1. Executive summary

The current tracked wiki state is mechanically coherent on its primary counts: wiki/overview.md and the live count line in wiki/index.md both report 458 pages and 147 claim entries, and python3 scripts/lint-mechanical.py --root wiki --json | python3 scripts/check_lint_baseline.py returns the pinned baseline as OK. Claims-register integrity is currently clean: 147 entries, no duplicate H2/table slugs, and no H2/table parity mismatch.

The main remaining maintenance work is queue hygiene plus a small number of evidence-gated follow-ups, not a new content-writing phase. The highest-value items are: resolve or split the three live bridge/silent-key blockers in next-actions.md rows 1-3; process the four Phase 6 corrective citation flags in rows 27-30; retire or update stale older audit files whose findings were superseded by 2026-05-09 work; and run a provisional-framing sweep for live/candidate claim citations.

Several maintenance artifacts are stale relative to the current repository. wiki/index.md line 7 has an obsolete HTML comment from the twelfth Phase 8 run that says the final claim state was 16 supported / 56 live / 46 candidate / 1 contested / 0 retired, while the live count line at line 16 correctly says 16 / 75 / 55 / 1 / 0. wiki/.audit/raw-inventory-2026-05-05.md still describes Saint Aubert 2006 as absent and Heinbokel as un-ingested, but both now have source pages and raw files. wiki/.audit/lint-2026-05-05.md contains findings that current lint or later log entries supersede.

No content edits were made. The only write from this audit is this report.

2. Maintenance map

Mechanical lint is implemented by scripts/lint-mechanical.py and guarded by scripts/check_lint_baseline.py. It currently covers inventory entries without pages, frontmatter, dead wikilinks, orphans, untyped related-to links, tag drift, motif/page gaps, claims-register integrity, and missing optional source metadata. The lint skill explicitly excludes deeper questions such as stale pages, contradictions, confidence gaps, glossary adequacy, unsourced claims, missing middle terms, and structural parallels.

Epistemic audit is governed by AUDIT_PLAN.md and .claude/skills/audit/SKILL.md. This is the layer for raw-source checks, citation integrity, claim status changes, Phase 8 synthetic-layer work, and conservative evidence adjudication. Findings that require raw-source verification should remain audit work, not lint work.

Weave is governed by .claude/skills/weave/SKILL.md and CLAUDE.md v0d.6. Current bridge cards are dry-run audit artifacts until a maintainer signs off per card and an apply-mode branch performs the writes. Bridge-card application is therefore maintenance queue work, not an automatic lint or audit fix.

CI/site maintenance is in .github/workflows/site.yml. The workflow runs unit tests with determinism enabled, enforces the lint baseline, builds the static site, validates the Paper A provenance manifest, runs smoke checks, and deploys only in the push/workflow-dispatch paths. Local site build was not run here because scripts/build_site.py intentionally wipes and writes build/.

wiki/.audit/next-actions.md is correctly labeled as navigational, not authoritative. When it conflicts with current source artifacts or newer log entries, the source artifact/current repo state should win.

3. Inventory/count reconciliation

Current page counts from direct filesystem checks and lint agree with the operational files exemption in CLAUDE.md: 55 source pages, 263 concept pages, 119 entity pages, and 21 question pages, for 458 counted wiki pages. Operational files, .audit/*, extraction notes, .gitkeep, and .DS_Store are not counted as pages.

Current claim counts from wiki/claims.md are 147 entries: 16 supported, 75 live, 55 candidate, 1 contested, and 0 retired. These match wiki/overview.md lines 17-18 and wiki/index.md line 16.

Current audit report count is 49 Markdown files under wiki/.audit. The CI smoke check expects at least 49 audit page dirs after build, so the workflow threshold still matches the current audit corpus.

Current extraction-note count is 66 files under wiki/sources/.extraction-*.md. Current raw content files are 56 when dotfiles are excluded. There are 55 source pages, with the known duplicate raw pair for merleau-ponty-2022-possibility-of-philosophy explaining the raw/source count offset.

Current raw/source reconciliation has one frontmatter path mismatch among source pages that declare raw_file: wiki/sources/decarie-daigneault-2024-crooked-finger.md points to raw/The Crooked Finger of Chauvet-Pont d'Arc.md, while the on-disk file uses a curly apostrophe: raw/The Crooked Finger of Chauvet-Pont d’Arc.md. This is a concrete out-of-sync reference.

The local ignored build/ directory is stale and not authoritative. It is untracked (git ls-files build returns 0), and scripts/build_site.py wipes previous build contents before emitting a fresh build. Current local build/ contains duplicated route dirs such as 55 build/sources/* 2 dirs, 82 build/concepts/* 2 dirs, 119 build/entities/* 2 dirs, and 21 build/questions/* 2 dirs. Do not use local build/ as evidence until rebuilt.

4. Open queue verification

Rows 1-3 of wiki/.audit/next-actions.md remain genuinely open: bridge-card application, hauntology-in-MP motif candidacy, and the transtemporality modal-hinge second-source check. Their blockers are still substantive: per-card maintainer sign-off, a second non-M-C-2026 haunting anchor, and a second non-Larison or raw-source confirmation for the modal hinge.

Rows 4-5 are verified done. The five deferred Step 8.5 pages and the two delta-affected high-priority pages now have ## What the Concept Does, ## What It Rejects, ## Stakes, and ## Problem-Space. The gamma-split wording is present on fundamental-thought-in-art.md and ineinander.md, including rejection of the H_synth four-element grammar.

Row 6 is correctly partial. Four live-eligible delta-affected slugs were evaluated on 2026-05-09; two were promoted and two held. The contested/candidate slugs remain untouched and should be split into a smaller current follow-up if they still matter.

Row 7 is correctly partial. Saint Aubert Priority A was discharged after Saint Aubert 2006 landed; Priority B remains open. The old "2006 raw absence" part is now stale, but Saint Aubert 2013 and Beauvoir-related raw limits remain real.

Rows 8 and 26 are verified done by current log and queue text: ultrareview-deferred discharge and the claims.md duplication post-mortem/invariant work landed.

Row 10 is partly stale. Current lint reports 0 untyped connections, 0 tag drift, 0 missing optional source metadata, and 0 claims-integrity findings. The remaining live issue from current lint is the page-side dead claim reference on perceptual-faith.md plus possible provisional-framing gaps; the old schema-changelog location flag is stale because wiki/schema-changelog.md exists and CLAUDE.md points there.

Rows 27-30 are the clearest open evidence-maintenance items: pensee-de-survol PoP/V&I routing, imaginary-mp Nature p. 371 raw check, philosophy-of-biology direct Nature p. 152 tightening, and seinsgeschichte Knight §5 / Intro §2 granularity.

5. Stale entries/references

wiki/index.md line 7 has a stale HTML comment from the twelfth run. The page's visible count line is correct, but the hidden comment is misleading because it omits the thirteenth run, S&NS ingest, and final 147-entry state.

wiki/.audit/raw-inventory-2026-05-05.md is stale. It says Saint Aubert 2006 is a hard absence and Heinbokel is not ingested; current repo evidence shows raw/Vers une ontologie indirecte - Emmanuel de Saint Aubert.md, wiki/sources/saintaubert-2006-vers-une-ontologie-indirecte.md, raw/From Johann to Maurice- Science and Expression in the Philosophical Praxis of Medicine Timm Heinbokel.md, and wiki/sources/heinbokel-2021-johann-to-maurice.md. wiki/log.md records both ingests.

wiki/.audit/lint-2026-05-05.md is superseded by the 2026-05-09 lint log and current lint output for untyped connections, tag drift, source metadata, and schema-changelog location. It remains useful as historical evidence but should not be treated as the current lint state.

Several question pages retain historical wording around science-secrete-stiftung-chiasm as live, even when a 2026-05-07 status note says the claim became contested. Examples include wiki/questions/four-element-intersection-and-precedents.md lines 18, 26, 60, 101, and 109. Because those pages are explicitly historical question/audit pages, this is not necessarily a content error, but it is a stale-reference risk for readers.

wiki/concepts/perceptual-faith.md still links to [[claims#perceptual-faith-equals-fuerwahrhalten-cross-author-identification]], which does not exist in wiki/claims.md. The 2026-05-09 lint log correctly says not to auto-delete or auto-create this; it should be routed to a Phase 8 decision.

The raw_file path in wiki/sources/decarie-daigneault-2024-crooked-finger.md is out of sync with the actual raw filename because of straight-vs-curly apostrophe mismatch.

6. Workflow coverage matrix

Workflow/check Current coverage Current result Gap
git status --short tracked working tree clean before report creation after this audit, only this report should be new
git log --oneline --decorate --max-count=30 recent history current branch master, HEAD df18608 user none for this audit
scripts/lint-mechanical.py --json mechanical wiki health 458 pages, 147 claims, 9 inventory, 240 dead wikilinks, 0 in all other mechanical sections cannot assess stale/contradictory/provisional-framing issues
check_lint_baseline.py pinned CI baseline OK for 458 / 147 / 240 / 9 / zero-count sections baseline accepts known stubs/dead wikilinks
Claims register integrity slug uniqueness and table/H2 parity clean page-side dead claim references are outside this invariant
Unit tests parser, dashboard, graph, link integrity, Paper A, search inspected but not run tests/build write under repo, so not run under this report-only constraint
Site build static HTML + Pagefind + provenance script inspected; not run writes/wipes build/; local build/ is stale
Provenance validation jsonschema-based manifest validation local command failed: missing jsonschema CI installs jsonschema; local environment lacks it
Weave bridge cards dry-run bridge-card staging 5 cards proposed blocked on maintainer sign-off and apply discipline
Raw inventory raw/source acquisition status older report stale needs refreshed inventory report or queue row update

7. Untouched artifacts

No wiki content pages were edited: wiki/sources, wiki/concepts, wiki/entities, wiki/questions, wiki/claims.md, wiki/index.md, wiki/overview.md, wiki/log.md, wiki/tags.md, wiki/motifs.md, schema files, skills, workflows, scripts, raw files, and generated site artifacts were left untouched.

The ignored local build/ tree was inspected but not cleaned or rebuilt. Its duplicate route directories are a maintenance signal, not a tracked repo problem.

The ignored wiki/.DS_Store and raw dotfiles were observed but not removed. They are excluded by .gitignore/operational conventions and are not page-count inputs.

8. Unresolved issues

Open bridge/silent-key work:

  • Apply or explicitly reject the five bridge cards in weave-pass3-run3-2026-05-08.md, one card at a time, with maintainer sign-off.
  • Confirm or reject the hauntology-in-MP motif candidate after a second non-M-C-2026 anchor lands.
  • Resolve the transtemporality modal hinge by second-source or raw-source confirmation before any claim promotion.

Open citation/evidence work:

  • pensee-de-survol: either raw-check PoP for Kosmotheoros or re-route to V&I p. 287 with frontmatter/body source updates.
  • imaginary-mp: raw-check La Nature p. 371; if not found, mark speculative or route through M-C 2026 Dufourcq.
  • philosophy-of-biology: add a direct Nature p. 152 extraction-note anchor when next audited.
  • seinsgeschichte: tighten the Knight attribution to Ch. 4 §5 / Intro §2.

Open lint-adjacent/substantive work:

  • Decide whether to create, reframe, or remove the dead perceptual-faith-equals-fuerwahrhalten-cross-author-identification claim reference.
  • Run a targeted live/candidate provisional-framing sweep; the latest lint log reports 24 live and 8 candidate possible framing gaps.
  • Refresh raw inventory and old lint report status so queue readers do not rely on superseded absence/un-ingested findings.
  • Address the decarie-daigneault-2024-crooked-finger.md raw filename mismatch.

Open raw/source limits:

  • Beauvoir Le deuxième sexe remains the key raw-source absence for mp-beauvoir-1949-convergence-on-gender.
  • Saint Aubert 2013 Du corps au désir remains a cited but non-raw-verified limit for desire/body/vrai dehors work.
  1. Patch the low-risk stale operational metadata: update the stale wiki/index.md HTML comment and the decarie-daigneault-2024-crooked-finger.md raw_file path. These are narrow maintenance fixes with concrete evidence.

  2. Refresh wiki/.audit/raw-inventory-2026-05-05.md or create a new raw-inventory report instead of editing historical conclusions in place. Current likely state: 56 non-dot raw content files, 55 source pages, one duplicate PoP raw pair, and no obvious un-ingested raw content after SA-2006, M-C 2026, Heinbokel 2021, Chouraqui 2021, and S&NS landings.

  3. Convert next-actions.md row 10 into a current lint-substantive row: dead claim reference, live/candidate provisional-framing sweep, and any remaining audit-only stale references. Remove or mark stale the old untyped/tag/source/schema-changelog items.

  4. Run the four Phase 6 corrective citation flags as a small audit batch before any new Phase 8 content work. This gives the highest evidence-integrity payoff per unit of work.

  5. Split row 6 into two rows: completed live-eligible delta-supported review, and remaining contested/candidate delta-related slugs. This makes the queue actionable.

  6. Treat the bridge cards as a maintainer review session, not an automated apply. For each card, decide approve/reject/defer, write the approval line if approved, then apply in a scoped branch/run.

  7. Rebuild the local site only after the report-only constraint is lifted. Because build/ is ignored and stale, a clean local build would clarify whether the duplicate local route dirs were purely historical residue.

10. Automation improvements

Add a small raw-inventory validator that reports: count of non-dot raw files, source pages, duplicate raw mappings, source pages with raw_file fields, missing raw_file targets, and raw files without a source page. This would have surfaced the Crooked Finger apostrophe mismatch and the stale 2026-05-05 raw-inventory assumptions.

Add a check for stale wiki/index.md run-summary comments against the visible count line and latest wiki/log.md Phase 8 state. The visible counts are correct, but stale comments are easy to miss.

Teach mechanical lint or a companion script to report page-side [[claims#slug]] references that do not correspond to claim H2s, separately from claims-register integrity. The current lint log catches the perceptual-faith case substantively; a structured JSON section would make it easier to baseline.

Add a provisional-framing scanner with conservative output: list live/candidate/contested [[claims#...]] citations whose nearby text lacks live, candidate, contested, or an alias carrying the status. Keep it report-only by default because false positives are expected.

Add a queue-consistency checker for next-actions.md: row source artifact exists, row status is one of an allowed set, done rows have a log reference, and rows that name superseded reports are flagged for review.

Consider adding a local requirements or dev bootstrap note for the CI Python dependencies (markdown-it-py, mdit-py-plugins, jinja2, jsonschema). Local provenance validation failed only because jsonschema is absent outside CI.

11. Limitations

This audit did not run unit tests or scripts/build_site.py because those commands write under the repository (build_test*, determinism build dirs, build/, Pagefind artifacts). The user instruction allowed only this report as a write.

This audit did not deploy, run Wrangler, clean ignored files, or modify generated artifacts.

This audit sampled stale references and queue items but did not perform a full page-by-page semantic audit of all 458 pages. Mechanical lint is current; epistemic stale/contradiction discovery remains an audit workflow.

The local provenance-manifest validation command could not complete because jsonschema is not installed in the local Python environment. CI installs it before validation.

Raw-source-required findings were not resolved here. They remain raw-source/audit work by instruction.