Answer prose round 1: show binding a selected sex, split the test-series paragraph, give the birth-number layout both reasons, and say which item the round leaves
This commit is contained in:
@@ -238,8 +238,8 @@ too, so a person's prefix never contradicts it. A `personnummer`'s birth number,
|
||||
for a man, which no real person is ever given.
|
||||
|
||||
A person of a chosen sex is assembled from the tables — `sex[f].first-name` beside
|
||||
`last-name`. `person` and `personnummer` each draw their own sex, so where a name and a
|
||||
number must agree, read both through one bound `sex`:
|
||||
`last-name`. `person` and `personnummer` draw apart, so where a name and a number must
|
||||
agree, read both through one bound `sex`, `{/sv_SE.sex[f] as s}` for a woman:
|
||||
|
||||
```json
|
||||
{ "format": "{first} {last}, {pnr}",
|
||||
@@ -248,14 +248,15 @@ number must agree, read both through one bound `sex`:
|
||||
"pnr": "{date(1930-01-01,2025-12-31,'060102')}-{s.birth-number.number}{luhn()}" }
|
||||
```
|
||||
|
||||
Renders e.g. `Anne Grönberg, 011012-2389`. Skatteverket's test series is also small: a personnummer
|
||||
is one of about 70,000 values, a day in 1930–2025 against the two birth numbers, so a
|
||||
fixture past a few hundred rows repeats one and a `UNIQUE` column needs a category of
|
||||
your own. `sv_SE.date` and `en_US.date` are uniform over 1970-01-01 to 2029-12-31,
|
||||
`misc.datetime` over 2000-01-01 to 2029-12-31. What the two locales do not share:
|
||||
`en_US.address` carries a `region` column the Swedish one has no use for, and
|
||||
`sv_SE.title` has no `parent`, so it is selected as `sv_SE.title[dr]` rather than
|
||||
inside a sex.
|
||||
Renders e.g. `Anne Grönberg, 011012-2389`.
|
||||
|
||||
Skatteverket's test series is small: a personnummer is one of about 70,000 values, a day
|
||||
in 1930–2025 against the two birth numbers, so a fixture past a few hundred rows repeats
|
||||
one and a `UNIQUE` column needs a category of your own. `sv_SE.date` and `en_US.date`
|
||||
are uniform over 1970-01-01 to 2029-12-31, `misc.datetime` over 2000-01-01 to 2029-12-31.
|
||||
What the two locales do not share: `en_US.address` carries a `region` column the Swedish
|
||||
one has no use for, and `sv_SE.title` has no `parent`, so it is selected as
|
||||
`sv_SE.title[dr]` rather than inside a sex.
|
||||
|
||||
A `geo` folder holds one tree per country under its alpha-2 code: five
|
||||
[linked tables](#linked-tables) named alike, and an `address` record binding one locality
|
||||
|
||||
+9
-10
@@ -662,11 +662,10 @@ Withdrawn by the maintainer on 2026-10-03; `todo.md` item 78 replaces it.
|
||||
2026-09-18, Lilleman auf Larv; revised 2026-10-05. Goal 4.1.
|
||||
|
||||
A record cannot read another whole and keep its columns, so `sv_SE.address` names the
|
||||
same four columns as `geo.SE.address`. Each reads one name, `{/geo.SE.address as a}`,
|
||||
which the format prints whole as `{a}`, so the country's format is written once and
|
||||
every column describes the address printed. A column is spelled the same in both,
|
||||
`street-number`, so the two never disagree on a name. Valid while a record cannot read
|
||||
another whole and keep its columns.
|
||||
same four columns as `geo.SE.address`. Its format binds one name,
|
||||
`{/geo.SE.address as a}`, and prints it whole as `{a}`. Each column reads one part of it,
|
||||
`{a.street}`, so the country's format is written once and every column describes the
|
||||
address printed. Valid while a record cannot read another whole and keep its columns.
|
||||
|
||||
## A postort's kommun comes from its name, its tätort or its codes, never from distance
|
||||
|
||||
@@ -860,10 +859,10 @@ name is an error listing both keys; select by type instead.
|
||||
|
||||
A Luhn-valid personnummer over a random birth number may be a living person's; 238 and
|
||||
239 after any date are blocked from assignment, so the shipped `personnummer` and
|
||||
`samordningsnummer` use those. They sit in a `birth-number` table under `sex` rather
|
||||
than as a column of it, so a pick of a sex can read the number; `todo.md` item 28 has
|
||||
`personnummer` read it that way, to agree with a person's sex, and `sex` stays one shape across locales instead of
|
||||
collecting every sex-keyed id fact. A samordningsnummer's day, the birthday plus 60, is
|
||||
`samordningsnummer` use those. They sit in a `birth-number` table under `sex`, not in a
|
||||
column of it, so a pick of a sex can read the number, and `sex` keeps one shape across
|
||||
locales. `todo.md` item 28 has `personnummer` read it that way, so the number agrees
|
||||
with the person's sex. A samordningsnummer's day, the birthday plus 60, is
|
||||
drawn from 61 to 88, valid in every month, rather than computed from the date drawn.
|
||||
|
||||
## The US given names come from a mirror of the SSA file
|
||||
@@ -928,4 +927,4 @@ Valid while names are read only inside the category binding them.
|
||||
|
||||
## comprehension floor: every dimension and the overall at 7.0 or above; items 71, 4 and 90 ship with no scoring run, and item 5 scores them
|
||||
|
||||
2026-10-04, Lilleman auf Larv. Serves goal 3. The nine-seat panels in `todo.md`'s git history, 2026-09-22 to 2026-09-30, held the score between 5.2 and 6.1, with Locality lowest at every seat, and the hardest units are the draw fences item 4 deletes. Items 4 and 90 delete or move what the earlier items touch, so a scoring run before item 90 merges would score code about to go. Items 71, 4 and 90 finish the round `AGENTS.md`'s comprehension rule lets merge below the floor, a restructure the maintainer approved. No scoring run or panel runs until item 5, which runs the nine-seat panel and larv-review's scoring run. The scoring run writes this entry's first scores. Valid until item 5 runs.
|
||||
2026-10-04, Lilleman auf Larv. Serves goal 3. The nine-seat panels in `todo.md`'s git history, 2026-09-22 to 2026-09-30, held the score between 5.2 and 6.1, with Locality lowest at every seat, and the hardest units are the draw fences item 4 deletes. Items 4 and 90 delete or move what item 71 touches, so a scoring run before item 90 merges would score code about to go. Items 71, 4 and 90 finish the round `AGENTS.md`'s comprehension rule lets merge below the floor, a restructure the maintainer approved. No scoring run or panel runs until item 5, which runs the nine-seat panel and larv-review's scoring run. The scoring run writes this entry's first scores. Valid until item 5 runs.
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
| 88 | 0.2.0 | | **Add a 12-digit `YYYYMMDDNNNC` form of `sv_SE.personnummer` and `sv_SE.samordningsnummer`, the form Skatteverket's testpersonnummer series and many systems store.** | 2 | 3 | 6 | 6 | 4 | 19.4 |
|
||||
| 41 | 0.2.0 | | **Key every table by one key column, as the decision "A table selects by one key column, a code, never a free-form name" states.** | 6 | 7 | 7 | 8 | 5.7 | 19.1 |
|
||||
| 52 | 0.2.0 | | **Name the file a link error comes from beside its category path, `sub.x (/d/a/sub/x.json): …`.** | 1 | 2 | 5 | 7 | 6 | 19.0 |
|
||||
| 28 | 0.2.0 | | **Accept a middle name, and draw a `personnummer` whose sex matches a sex selected through a named pick.** | 4 | 4 | 6 | 7 | 4.1 | 18.9 |
|
||||
| 28 | 0.2.0 | decision | **Accept a middle name, and draw a `personnummer` whose sex matches a sex selected through a named pick.** | 4 | 4 | 6 | 7 | 4.1 | 18.9 |
|
||||
| 24 | 0.2.0 | defect | **Stop `misc.territory[EH].tld` rendering `.eh`, the one shipped TLD `misc.tld` does not hold.** | 1 | 1 | 4 | 7 | 4 | 18.6 |
|
||||
| 53 | 0.2.0 | | **Let a table column carry a `datatype`, so `--format json` writes `"safe": true` and `--format sql` a boolean.** | 4 | 5 | 6 | 6 | 4 | 16.9 |
|
||||
| 55 | 0.2.0 | | **Document `NewRecordTemplate`, `ErrNoColumns`, `ErrNoData` and `MaxRepeat` in the README's Library section.** | 1 | 2 | 6 | 7 | 12 | 16.8 |
|
||||
@@ -231,7 +231,7 @@ Shape: T = table, t = template, c = choice.
|
||||
- Fixes on the way: `{/sel}|{/sel}` panics out of `Fake` today where two draws land on rows whose cells select different rows of another table; it must render.
|
||||
- Rewrites the README's References, Draw group, Correlated fields, Linked tables, Names and "One draw, one spelling" sections; the Linked tables section says which pick's weights govern a family, since the bound row decides.
|
||||
- Widens the refusal of a name read once to every binding, a path into it or a reference path bound included, since `{n.x}` read once is then `{/ref.x}`, and deletes the names fence over draw groups and nested repeats (`checkUses`, `readsHeld`).
|
||||
- Say how a record's columns and a struct's tags read one pick, so `sv_SE.person.first` and `sv_SE.person.sex` beside each other still describe one person.
|
||||
- Say how a record's columns and a struct's tags read one pick, so the `first` and `sex` columns of one `sv_SE.person` record, or one struct's tags reading them, still describe one person.
|
||||
- Re-pin seeded output and `testdata/shipped_shape.txt` in their own commits; the CHANGELOG names the grammar change.
|
||||
|
||||
### 57. Rewrite `CHANGELOG.md`'s `[Unreleased]` as what v0.1.0 holds.
|
||||
|
||||
Reference in New Issue
Block a user