reach atlas db / names / systems-done / check / verify / commit-and-sync / update-field / flatness. Eight scripts retired, five of them bash. verify reproduces the original exactly: 2 errors across 301 proposals, exit 1. The binary has more verbs than its wrapper documented. The bash usage text listed four; atlas-commit-and-sync calls four more it never mentioned. All eight are declared so reach atlas --help is a complete index, and unknown verbs are still forwarded — a hand-maintained list falls behind the binary it describes, so rejecting on it would break the day someone adds a subcommand. commit-and-sync now stages by default and commits only with --commit. Nothing else in reach writes to git history, and committing as a side effect of "sync" is a different risk class from writing a file; the default prints the message it would use, leaving the decision where it was. Two real bugs found in that script while porting it. It ran atlas-verify and never checked the exit code, so a proposal that FAILED verification was still wiped, committed and synced — bad data in systems.db is far harder to undo than a failed command, and it now refuses. And it hardcoded a pinned "Co-Authored-By: Claude Opus 4.6" into every atlas commit, which the git-commit skill names as the root cause of attribution drift. update-field gains two guards the original lacked. Its field→table map lived inside a bash heredoc string where nothing could check it, and an unknown field produced an UPDATE against a table of None; it now names the nine accepted fields. And it checks rowcount, so a system_id that does not exist is a failure rather than a silent no-op reported as success. The three Python scripts moved with the usual treatment — prints to console events, argparse replaced by typed functions, __file__ roots to config.repo_root(). No root bug this time: checked before moving rather than after, three domains running. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 lines
761 B
Python
15 lines
761 B
Python
"""The `atlas` domain — the spatial ladder the implant map descends (D-191).
|
|
|
|
`implant/map` is one app at four zoom levels: Reach map → system → planetary →
|
|
regional. The CLI mirrors that (D-263), which means **generation nests by
|
|
rung** — `reach atlas map …`, `reach atlas planet …` — while the verbs here
|
|
stay flat, because authoring and inspection act on the atlas as a whole rather
|
|
than on any one rung.
|
|
|
|
One collision worth knowing, since the words are the same. D-191's MVP
|
|
criterion 7 says *"Atlas is read-only (no verbs execute from map)"*. That
|
|
governs the **app**. The tooling in this domain writes: it commits proposals,
|
|
amends fields and syncs the wiki. Do not read the app's constraint as licence
|
|
to delete the authoring verbs.
|
|
"""
|