docs: two-tier project model — layout, guide, glossary, ledger, invariant 9 (#241 T7)

- CLAUDE.md invariant 9 amended end to end: a project is a directory
  anchored by a static Aura.toml, data-only by default; native node
  logic lives in attached node crates (the nodes/ antecedent removed —
  user decision 2026-07-12, re-opened by the role model's diagnosis).
- docs/project-layout.md reworked to the two tiers (data-only default
  tree + sibling node crate, workspace note under the crate half); the
  day-in-the-life walkthrough now attaches the project's node crate
  once and wires the namespace the shown command actually produces.
- docs/authoring-guide.md: data-only quickstart (closed run target,
  open sweep target) + `aura nodes new` as the native entry; section
  cross-reference updated.
- docs/glossary.md: new "data-only project" and "node crate" entries;
  Aura.toml and manifest entries carry the tier split.
- docs/design/INDEX.md: realization note (wiring-only tier, #241) in
  the project-environment section.
- rustdoc: `[nodes]` intra-doc-link escapes in project.rs/main.rs.

Full gates green: workspace suite (all binaries), clippy -D warnings,
doc build without new warnings.

closes #241
This commit is contained in:
2026-07-12 17:45:59 +02:00
parent 23bb978bf2
commit 0170ec277f
7 changed files with 128 additions and 65 deletions
+1 -1
View File
@@ -2489,7 +2489,7 @@ struct NodesCmd {
#[derive(Subcommand)]
enum NodesCommand {
/// Scaffold a node crate beside this project and attach it via [nodes].
/// Scaffold a node crate beside this project and attach it via `[nodes]`.
New(NodesNewCmd),
}
+2 -2
View File
@@ -475,8 +475,8 @@ fn newest_source_mtime(root: &Path) -> Option<SystemTime> {
newest
}
/// Discover the project's tier and load it. Data-only (no [nodes], no root
/// crate) loads nothing; a [nodes] pointer or a root Cargo.toml routes into
/// Discover the project's tier and load it. Data-only (no `[nodes]`, no root
/// crate) loads nothing; a `[nodes]` pointer or a root Cargo.toml routes into
/// the unchanged crate pipeline (`load_crate`).
pub fn load(root: &Path, release: bool) -> Result<ProjectEnv, ProjectError> {
let toml = parse_aura_toml(root)?;