Doc restructure: split into design.tex (contract) and journal.tex (record)

design.tex carries the contract — invariants, algorithms, public API,
roadmap, the canonical D1..D19 decision index, and a new System
Walkthrough (§17) that derives the geometry from first principles for
a graduate-engineering reader: vector rotations and the inward-normal
formula, the shoelace signed area, segment intersection via Cramer,
Sutherland–Hodgman half-plane clipping, the DCEL next-pointer rule
with worked square example, per-edge depth-cap ray-cast, corner-parcel
construction in two flavors, frontage walk, the shared-vertex
registry, propose-then-apply deform, and end-to-end traces for both
subdivide_all and apply_road_edit(MoveNode).

journal.tex carries the live record — Self-Decisions Checklist at the
top, sessions 1-4 rewritten condensed with explanatory Rust snippets,
and a Spec Deviations Log indexed chronologically.

Makefile builds both PDFs (`make all`, `make design`, `make journal`,
`make watch-design`, `make watch-journal`, `make figs`).

Old single-file journal content lives in git history per user.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dane Sabo 2026-04-26 13:19:03 -04:00
parent d8d5dd9c17
commit 0a029fe471
5 changed files with 1735 additions and 1463 deletions

37
Makefile Normal file
View File

@ -0,0 +1,37 @@
# Build the design document and the implementation journal.
# Requires: pdflatex, latexmk, and rsvg-convert for the figs target.
DOCS = design journal
.PHONY: all clean watch figs design journal
all: design journal
design: design.pdf
journal: journal.pdf
design.pdf: design.tex figures/*.pdf
latexmk -pdf -interaction=nonstopmode design.tex
journal.pdf: journal.tex figures/*.pdf
latexmk -pdf -interaction=nonstopmode journal.tex
# Convert any SVG figures generated by the Rust crate into PDFs for inclusion.
figs:
@for svg in figures/*.svg; do \
[ -f "$$svg" ] || continue; \
pdf="$${svg%.svg}.pdf"; \
echo "Converting $$svg -> $$pdf"; \
rsvg-convert -f pdf -o "$$pdf" "$$svg"; \
done
watch-design:
latexmk -pdf -pvc -interaction=nonstopmode design.tex
watch-journal:
latexmk -pdf -pvc -interaction=nonstopmode journal.tex
clean:
latexmk -C
rm -f *.aux *.log *.out *.toc *.fls *.fdb_latexmk *.synctex.gz

BIN
design.pdf Normal file

Binary file not shown.

1387
design.tex Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff