ArchDoc Design record
ArchDoc

Spec

How a part of the system works today. Unlike a proposal, a spec page is edited: it describes the present, and goes stale rather than obsolete.

Current

12 · describes the present

architecture Architecture cmd/archdoc is the only package that imports cobra. No package under internal/ prints, prompts, or calls os.Exit; each is usable without a terminal. Every comma... commands Commands Every command except init locates archdoc.json by walking up from the working directory and fails if none is found. -C <dir>, --chdir <dir>, is a persistent fla... documents Documents A document is a Markdown file with a YAML front matter block. There are six types: RFC, ADR, spec page, ref, term and group. Each type lives in its own director... export Export archdoc export writes the repository as JSON on stdout. --out <dir> writes a tree of files instead. --no-bodies omits every body, of contents entries, questions... index Index archdoc index generates INDEX.md under root and prints the path written. With --check, it generates to memory and compares the result with the file on disk: whe... layout Layout A specification repository is a directory containing archdoc.json and, under root, the document directories. group/ is optional, and init does not create it. lifecycle Lifecycle RFCs and ADRs have a status. Spec pages and refs do not. links Links and the glossary [[X]] in a body marks a link to be filled in. archdoc link replaces each one in every document that is not frozen with a Markdown link: If X is an identifier:... lint Lint archdoc lint runs every L rule over every document and prints findings. With --merge it also runs the merge rules. Exit code 2 if any error, 0 otherwise. Warnin... markdown Markdown The body of a document is everything after the closing --- of the front matter. The tool reads headings, HTML comments, code blocks, HTML blocks and links throu... relationships Relationships Front matter records forward relationships: depends, updates and obsoletes on an RFC or ADR, includes on a spec page, and documents on a group. Every reverse re... release Release Tagged versions build with goreleaser for linux, darwin and windows on amd64 and arm64. Archives are tar.gz, or zip for windows, named archdoc_<version>_<os>_<a...