Codebase healthPhase 1 — Documentation & setup

CI gate: PROJECT_STRUCTURE.md freshness

Status: Partially implemented — docs CI already checks roadmap sidebar coverage and source repository links; remaining work is an actual Rust module-map freshness assertion for PROJECT_STRUCTURE.md

Current shape

PROJECT_STRUCTURE.md is now a root orientation map that delegates detailed source navigation to the Codebase Map. The docs workflow already runs cargo xtask docs repo-links and cargo xtask roadmap audit, so published docs routes and roadmap sidebar coverage are gated.

What is still missing is a repository-level assertion that newly added Rust module files are either represented in the root structure map or intentionally covered by the Codebase Map.

Remaining assertion

Add a lightweight CI check that compares new .rs module files in the PR against the documented source map. The check should:

  • use the PR diff, not the whole historical tree;
  • ignore tests.rs, generated code, and crate-internal child modules that are intentionally covered by a parent entry;
  • fail only when a new top-level module surface lacks any matching entry in PROJECT_STRUCTURE.md or the Codebase Map;
  • run after checkout has enough base history to compute the diff reliably.

Caveats

A naive basename grep produces false positives and false negatives after the workspace split because many real module roots now live under crates/*/src/<module>.rs and Rust 2024 self-named modules deliberately avoid mod.rs. Prefer a small script with explicit ignore rules over inline YAML shell.

On this page