Markdown for LLMs
nb-20 solutions — Sources, time, and outside data
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# nb-20 solutions — Sources, time, and outside data
*Checkable against a scratch copy of
`packs/examples/language-demo/sourcetime` carrying the patch below
(the repo package itself stays untouched: 20 checked, 20 passed).
Identifiers and code as written. Verified with `law 0.1.0`,
`law.core/0.2`, on 2026-10-03.*
## Quiet hours as article 2b
Three places change, in this order — bytes, hashes, delta:
1. Append to `sources/northbridge-overnight-2026-en.txt`, after the
article 2a line, separated by a blank line:
```text
Article 2b. Quiet hours (2026). Quiet hours are 23:00 to 07:00.
```
2. New fragment in the 2026 English edition (before
`PARKING_2026_ART2A_EN`):
```law
fragment PARKING_2026_ART2B_EN in ORD_2026_EN {
kind article;
locator "article/2b";
label en unofficial "Article 2b. Quiet hours (2026, training text)";
text en unofficial """Quiet hours are 23:00 to 07:00.""";
content_hash "sha256:93fadfb3a9415c960921f26f1501f7cb440a838bdb3d0b5e4fcb3d68d80c30a8";
}
```
The hash is `sha256` of exactly `Quiet hours are 23:00 to 07:00.`
— no trailing newline. The sentence must occur verbatim in the
file, or `E5202` fires even with the right hash.
3. New operation at the end of `Statute2025To2026` (after the 2a
insert, same `effective` — different locator, so no `E5403`):
```law
op insert {
locator "article/2b";
language en;
text """Quiet hours are 23:00 to 07:00.""";
effective @2026-06-01;
}
```
4. The longer file changes the publication hash. Recompute over
the file bytes and replace the `content_hash` of
`ORD_2026_EN_TEXT`:
```text
sha256:e09c9aabb1493be9e5574092e3a60e92aa5550a65e6307cb1cfc17a8da5e99ab
```
Skip step 4 and `law engine check` answers
`LDC-E5204 ... не дают объявленный content_hash` — the chain
bytes → publication → fragment → operation has four links, and
the checker walks all of them.
**Expected `consolidate` listing** (exit 0):
```text
article/2 (en)
article/2a (en)
article/2b (en)
```
**Expected `diff-editions` against `ORD_2025`** (exit 0):
```text
~ article/2 (en)
+ article/2a (en)
+ article/2b (en)
- article/1 (en)
```
The repealed article 1 stays gone; the two June inserts share
one date and apply in author order.