clone

an offline map explorer where each world, from a game map to a city's open data, ships as one .atlas file

feat/atlas-next-horizon
atlas / docs / decisions / README.md
README.md 2.6K rendered
1# Decisions23Short records for the calls this rewrite makes. Each one is context, decision,4consequences — what was true, what was chosen, and what the choice costs. They5are written from the artifacts: the lane documents, the harness, the code, and6[issue #5](https://github.com/FelineStateMachine/atlas/issues/5), which is the7source of truth. Where a record and the issue disagree, the issue wins.89**These are records, not policy.** A decision that changes gets a new record10that supersedes the old one; the old one stays, because the reasoning is the11point. Issue #5 §8's comment policy says the rest: a comment states a12constraint the code cannot show, and "how we got here" prose belongs here or13nowhere.1415## The calls issue #5 makes (§8)1617| | Decision |18|---|---|19| [1](0001-htmx-4-at-the-center.md) | HTMX 4 owns the discrete state |20| [2](0002-allons-is-removed.md) | allons is removed, and nothing replaces it |21| [3](0003-merge-moves-to-enrich.md) | Cross-source merge moves from generate to enrich |22| [4](0004-source-neutral-interchange-document.md) | The interchange document is Atlas's own schema |23| [5](0005-unbounded-feature-maturity.md) | Maturity is per-feature, additive, unbounded and monotone-gated |24| [6](0006-the-scene-description-seam.md) | The seam is driven by an inert scene description |25| [7](0007-hostenv-portability.md) | One pure handler, everything OS-shaped behind hostenv |26| [8](0008-stamp-identity-is-an-aspiration.md) | A stamp is a rebuild-cost promise, not a content promise |2728## The calls execution made2930Decisions taken while building the lanes, which issue #5 §10 does not record.3132| | Decision |33|---|---|34| [9](0009-the-enrich-compose-adapter-seam.md) | `generate ⊕ enrich` is joined by an adapter in the CLI |35| [10](0010-revision-packing.md) | An enriched build wins the fold by packing two policy revisions |36| [11](0011-one-event-stream.md) | One leveled event stream, and a lane of its own for it |37| [12](0012-scan-at-launch-never-watch.md) | The registry is scanned at launch and on import — never watched |38| [13](0013-assets-and-static-are-two-mounts.md) | `/assets` and `/static` are two different mounts |39| [14](0014-the-depcheck-pragma.md) | A boundary crossing is annotated in place, with a reason |40| [15](0015-the-ground-descriptor.md) | A cell system is handed a `Ground`, not an application |41| [16](0016-uncurated-captures-are-passed-over.md) | A capture a reader cannot answer for is passed over, not refused |42| [17](0017-the-host-follows-redirects.md) | The desktop host follows the application's redirects |43| [19](0019-an-earth-volume-is-included.md) | The desktop ships with an included Earth volume |