Skip to content

docs: fix repo-tree and doc-list drift against docs/MANIFEST.toml - #68

Draft
forkwright wants to merge 1 commit into
mainfrom
docs/fix-tree-and-doc-list-drift
Draft

docs: fix repo-tree and doc-list drift against docs/MANIFEST.toml#68
forkwright wants to merge 1 commit into
mainfrom
docs/fix-tree-and-doc-list-drift

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Finding

CLAUDE.md's tree diagram claimed two paths that have never existed in this repo, and both CLAUDE.md's tree and README's Documentation section had independently gone stale against the real design-doc set.

Evidence

  • git log --all -- standards/ and git log --all -- docs/gnomon.md on a fresh clone of main both return zero commits -- neither path has ever existed here.
  • CLAUDE.md's tree diagram (pre-fix) omitted four real, MANIFEST-registered docs: docs/design/rendering-completeness.md, docs/design/script-band-evaluation.md, docs/design/ingest-rules-taxonomy.md, docs/design/fingerprint-unlinkability.md.
  • README's Documentation section (pre-fix) omitted docs/design/vision.md and docs/design/fingerprint-unlinkability.md, both real and MANIFEST-registered.
  • docs/MANIFEST.toml is already the CI-enforced inventory for docs/**/*.md -- ci/check-doc-manifest.py . on this branch: check-doc-manifest: ok (11 canonical documents validated).

Why this matters

A tree diagram or doc list that claims a path exists when it never has (or omits a real, canonical doc) is read by both operators and agents as ground truth for orientation. Two independent hand-maintained enumerations of the same doc set is also the exact class this fleet's SSOT rule targets: they don't stay identical, and the divergence here is the proof.

Desired correction

  • CLAUDE.md's tree diagram drops the two nonexistent paths and now points at docs/MANIFEST.toml as the canonical doc inventory instead of re-enumerating docs/design/*.md by hand -- it can't drift the same way again because it no longer restates what MANIFEST.toml already declares.
  • README's Documentation list is corrected to the full 11-entry set from MANIFEST.toml, with a pointer to MANIFEST.toml itself for readers who want the authoritative list.

Done when: ci/check-doc-manifest.py . passes (it does, unchanged by this PR -- it doesn't cover README/CLAUDE.md) and a fresh read of CLAUDE.md's tree + README's Documentation section names only paths that exist on main, covering every doc docs/MANIFEST.toml declares.

CLAUDE.md's tree diagram listed standards/ and docs/gnomon.md, neither of
which has ever existed in this repo (git log --all on both paths returns
zero commits). The same diagram and README's Documentation section both
hand-enumerated the design-doc set and had gone stale independently:
CLAUDE.md's tree omitted rendering-completeness.md, script-band-evaluation.md,
ingest-rules-taxonomy.md, and fingerprint-unlinkability.md; README's list
omitted vision.md and fingerprint-unlinkability.md.

docs/MANIFEST.toml is already the CI-enforced inventory for docs/**/*.md
(ci/check-doc-manifest.py fails a doc that is on disk but unlisted, or listed
but missing). CLAUDE.md's tree now points at MANIFEST.toml instead of
re-enumerating the design-doc set by hand, so it cannot drift the same way
again. README keeps an explicit list for human readers but now matches
MANIFEST.toml's 11 entries exactly, with a pointer to MANIFEST.toml as the
full inventory.
forkwright added a commit that referenced this pull request Aug 26, 2026
## Summary

- replace Dioptron's trailer-only workflow with the first-party hybrid
gate, including pull-request and push-to-main verification and the
terminal `gate / gate` context
- run every honest public docs-phase mechanism on untrailed changes:
Python syntax, numbered-reference resolution, manifest completeness, and
structural negative fixtures
- keep `kanon lint --workflow`, README writing lint, and
manifest-derived writing lint explicitly forge-only instead of claiming
hosted GitHub ran a private binary
- add the canonical Dependabot auto-merge caller and update contributor
guidance to describe the hybrid contract

## Verification contract

The PR itself is the first exact-head execution of the new hosted path.
No local build, test, or gate command ran on Metis. The only local
mechanical check was `git diff --check`.

Dioptron has no Cargo workspace. The reusable's required command slots
therefore carry real Python/document checks rather than vacuous `true`
commands; the optional doctest slot is empty because it is structurally
inapplicable.

## Collision inventory

- PR #65 owns only `.github/workflows/release-pr-checks.yml`; this
branch does not add or edit that file.
- PR #67 changes one checkout-version comment inside the legacy gate
implementation. This branch removes that checkout step with the legacy
implementation, so #67's one-line path change becomes obsolete rather
than being copied into dead machinery.
- PRs #68 and #69 are path-disjoint. PR #69's worktree was not touched.

## Honest residual

The shared Dependabot reusable currently requires Cargo security-check
groups (`cargo deny`, `cargo audit`, and OSV) in addition to the
terminal gate. A docs-only non-Cargo repository cannot emit those
honestly. The new caller therefore fails closed for Dependabot until the
reusable accepts a repository-specific verification contract; this PR
does not manufacture vacuous Cargo jobs to make auto-merge appear
functional.

The shared hybrid workflow also installs Rust/nextest runner substrate
unconditionally. That is harmless but unnecessary overhead for
Dioptron's present non-Cargo phase and belongs in the reusable, not a
local fork.

Refs #67.

Co-authored-by: forkwright <cody@forkwright.com>
@forkwright
forkwright marked this pull request as draft August 26, 2026 21:38
forkwright added a commit that referenced this pull request Aug 26, 2026
## Summary

- remove the Dependabot caller that cannot function in a non-Cargo
repository
  under the shared Cargo-only verification contract
- make GitHub the authoritative repository, pull-request, review, CI,
and merge
  surface in contributor guidance
- describe `.kanon-ci.toml` as a supplementary local Kanon recipe, not a
live
  forge pipeline or independent merge verifier

## Verification

No local build, test suite, or Kanon gate ran on Metis. `git diff
--check` passed
on `acb496e15591e1e6899a04b8cf44e543b4268ad9`. This draft's public
GitHub run is
the first exact-head execution of the active verifier.

## Tracker and authority

- Refs #70, whose merged caller and docs created the corrected surface.
- Refs #72 for the operator-owned eventual `gate / gate`
branch-protection
  requirement. This PR does not mutate repository authority.
- Refs forkwright/.github#64 for a typed non-Cargo Dependabot
verification
  profile.
- Refs forkwright/.github#65 for a command-only hybrid-gate runner
profile.

## Collision inventory

- The branch is rooted at merged #70 commit
`8b3fbe8b7c34355498a26f6870b6ac5235a29738` and does not reuse #70's
deleted
  head branch.
- PR #67's sole legacy-workflow comment change was re-verified as
present in
#70's replacement workflow, then #67 was closed with the exact
supersession
  evidence.
- Open PRs #65, #68, #69, and release PR #71 do not change these three
paths.

## Honest residual

`main` currently has zero required status contexts. Issue #72
deliberately
sequences the operator-owned protection change after every surviving
stale PR
emits the genuine `gate / gate` context on its current head.

Dependabot auto-merge remains absent in Dioptron until the shared
reusable has a
real non-Cargo contract. No vacuous Cargo jobs substitute for that
missing
mechanism.

---------

Co-authored-by: forkwright <cody@forkwright.com>
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.

1 participant