GNU-style CLI flags, embedded data, and a literal format grammar #3

Merged
lilleman merged 38 commits from cli-and-syntax into main 2026-09-03 14:21:08 +02:00
Owner

Reworks the on-ramp and the format grammar around two goals: zero to a value in one command, and text that means what it says.

CLI — GNU-style flags (--seed 42, -n 3), any position, -- terminator; single-dash long forms rejected with the right spelling named. --data-path is now optional: data/ ships embedded, so go install then fejkdata sv_SE.person works with no checkout and no flags.

Grammar — format text is literal; class runs become {digits(n)}, {upper(n)}, {lower(n)} and # escaping is gone. Every string is a format. One spelling per shape: one-item choices, repeated items, inert objects, weight: 1 and repeat: 1 are load errors naming the right spelling. {..path} is now held like a sibling path, so cross-category correlation works; lowercase, uppercase and ascii transform a held draw.

Breaking. No tags exist yet, so there is no compatibility promise. Old class-char formats load and render literally rather than erroring — that is inherent to making text literal. New takes options instead of a slice. format-migration/ holds the one-shot conversion scripts; delete before the first tag.

README restructured around the grammar with the goal list and standing decisions; AGENTS.md added.

Reworks the on-ramp and the format grammar around two goals: zero to a value in one command, and text that means what it says. **CLI** — GNU-style flags (`--seed 42`, `-n 3`), any position, `--` terminator; single-dash long forms rejected with the right spelling named. `--data-path` is now optional: `data/` ships embedded, so `go install` then `fejkdata sv_SE.person` works with no checkout and no flags. **Grammar** — format text is literal; class runs become `{digits(n)}`, `{upper(n)}`, `{lower(n)}` and `#` escaping is gone. Every string is a format. One spelling per shape: one-item choices, repeated items, inert objects, `weight: 1` and `repeat: 1` are load errors naming the right spelling. `{..path}` is now held like a sibling path, so cross-category correlation works; `lowercase`, `uppercase` and `ascii` transform a held draw. **Breaking.** No tags exist yet, so there is no compatibility promise. Old class-char formats load and render literally rather than erroring — that is inherent to making text literal. `New` takes options instead of a slice. `format-migration/` holds the one-shot conversion scripts; delete before the first tag. README restructured around the grammar with the goal list and standing decisions; `AGENTS.md` added.
lilleman added 14 commits 2026-09-02 13:01:44 +02:00
lilleman added 2 commits 2026-09-02 14:09:50 +02:00
lilleman added 1 commit 2026-09-02 18:18:10 +02:00
lilleman added 2 commits 2026-09-02 18:21:07 +02:00
lilleman force-pushed cli-and-syntax from 1e4921cdf3 to c5c06375d8 2026-09-02 18:21:07 +02:00 Compare
lilleman added 2 commits 2026-09-02 18:23:05 +02:00
lilleman force-pushed cli-and-syntax from d72d326de5 to 1b1b93b35f 2026-09-02 18:23:05 +02:00 Compare
lilleman added 2 commits 2026-09-02 18:26:05 +02:00
lilleman force-pushed cli-and-syntax from fcc58a74ab to 1bf5470c6f 2026-09-02 18:26:05 +02:00 Compare
lilleman added 1 commit 2026-09-02 18:29:38 +02:00
Tests for the path walk; test files named for the modules they exercise
Tests / vet + fmt + tests (pull_request) Failing after 14s
7581587a19
lilleman added 1 commit 2026-09-02 18:29:47 +02:00
lilleman added 1 commit 2026-09-02 18:31:40 +02:00
lilleman added 1 commit 2026-09-02 18:32:13 +02:00
lilleman added 1 commit 2026-09-02 18:45:23 +02:00
lilleman added 1 commit 2026-09-02 18:45:34 +02:00
lilleman added 2 commits 2026-09-02 19:06:23 +02:00
lilleman force-pushed cli-and-syntax from 4c8f30406e to 3d3efbb642 2026-09-02 19:06:23 +02:00 Compare
lilleman added 1 commit 2026-09-02 19:08:27 +02:00
lilleman force-pushed cli-and-syntax from 09e4e29125 to 7b28dc36d9 2026-09-02 19:08:27 +02:00 Compare
lilleman added 1 commit 2026-09-02 19:08:34 +02:00
lilleman added 1 commit 2026-09-02 19:09:21 +02:00
lilleman added 1 commit 2026-09-02 19:09:33 +02:00
lilleman added 1 commit 2026-09-02 19:09:52 +02:00
lilleman added 1 commit 2026-09-02 19:24:49 +02:00
lilleman added 1 commit 2026-09-02 19:25:22 +02:00
lilleman changed title from Draft: GNU-style CLI flags, embedded data, and a literal format grammar to GNU-style CLI flags, embedded data, and a literal format grammar 2026-09-03 07:36:37 +02:00
lilleman merged commit addba9abf7 into main 2026-09-03 14:21:08 +02:00
lilleman deleted branch cli-and-syntax 2026-09-03 14:21:09 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: larvit/fejkdata#3