1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! Spec-driven documentation: current specs, immutable decision records, and
//! executable gates kept coherent for people and coding agents.
//!
//! This crate is the canon's distribution: the `sdd` binary installs, verifies,
//! upgrades, and gates instances, and carries the whole payload — spec seeds,
//! templates, lint configs, and the method chapters — embedded at compile
//! time. The method itself lives in the repository's
//! markdown, not here; this crate only ships and enforces it.
//!
//! Major modules:
//! - [`domain`] — pure types and invariants: manifest, profiles, rule and gate
//! identifiers, marker-block splicing, versions.
//! - [`embedded`] — every compile-time embedded asset and its accessors.
//! - [`gates`] — the delivered gate implementations and their registry.
//! - [`services`] — install, verify, upgrade, and hook-rendering orchestration.
//! - [`adapters`] — filesystem I/O at the edges.
//! - [`plan`] — the typed document every landing write comes from.
//! - [`release`] — the bundle and resolver boundary every landing verb
//! reads a release through.
//! - [`transaction`] — the lock, staging, and journal a recoverable
//! multi-file write runs through.
//! - [`cli`] / [`commands`] — clap parse shapes and their handlers.
//! - [`error`] — [`error::AppError`] and the exit-code matrix.
//!
//! # The supported target
//!
//! Linux is the only target this crate supports
//! (ADR-linux-is-the-only-supported-target). The refusal below states that
//! boundary to the compiler rather than to a reader, because the source is
//! otherwise portable enough that a build elsewhere would succeed and then
//! keep promises nothing here proves. The guard names the operating system
//! and not the architecture: no source in this crate varies by
//! architecture, and `dist-workspace.toml` states which architecture the
//! release builds.
compile_error!;