Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .dev/STATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@ Roadmap detail lives in the work-plan tracker **#257**, not here (PLAN.md predat

## In flight

- **ml round-3 answers encoded, unreleased (2026-09-21, branch `ml-round3-answers-ml22`)** — the
editor answered lecture-python-programming.ml#22 on 2026-09-19. `ml` rules 27 → 28, glossary
v0.7.0. Two answers overturned a guess: the comma between `-ഉം` items is **always** there
(v0.29.0 shipped "phrases only"), and *draw* is not a light verb (left unencoded — both forms
are his). Confirmed: English plural + suffix for retained nouns (own rule + lint), *prefer*
English, *provide* → `നൽകുക` (both acceptable). Further Reading boundary settled as the
reference section (`D-2026-09-21-…`), which unblocks the code move under #260. **Open: the
rule-2 rewrite** around his everyday-speech test — held for a held-out judge run, not shipped
on his say-so alone. Round 4 (lecture-python-programming.ml#23) **will be regenerated at
`@v0` once this is released** (Matt, 2026-09-21; the editor has been asked to hold off) — see
the log entry `2026-09-21-ml-round3-answers`.
- **v0.29.0 released 2026-09-18** (release PR #312 `a6fda54`; payload #311 `847ca9f`; §4a gate
**completed**: 84/84 sync runs, 28/28 delivery + 28/28 `engineVersion: 0.29.0` verdicts per
lane; `v0.29` = `v0` = `a6fda54`; GitHub release published; `@v0` smoke read-off on #312)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
> **Boundary settled 2026-09-21** — the question this record leaves open (where the editor draws
> the line) was answered on lecture-python-programming.ml#22: see
> `D-2026-09-21-ml-further-reading-boundary-is-the-reference-section`. The decision below stands;
> kept unedited.

# Malayalam: Further Reading lists stay in English

**Context**: In the third inline review round (lecture-python-programming.ml#13, `matplotlib`,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Malayalam: the Further Reading boundary is the outside-pointing reference section

**Context**: `D-2026-09-18-ml-further-reading-lists-stay-english` accepted that the `ml` edition
keeps its Further Reading bullets in English, and left one question open: where the editor of
record draws the line — that section heading, any list of external links, or any bullet that
opens with a link. It was put to him on lecture-python-programming.ml#22. He answered on
2026-09-19: *"Keep the Further Reading section in English - this was intentional. Further
Reading is reference material pointing outside the lecture - the reader will follow those links
into English content anyway."*

**Decision**: The boundary is the **section**: a closing block of reference material whose
bullets point outside the lecture ("Further Reading", "References" and the like). The test is
his reason, not the markup — the reader is about to land in English content, so an English
pointer serves that reader better. It follows that the ruling does **not** extend to a link-led bullet
in the body of a lecture, nor to a list that points at other lectures of the same edition
(those land in Malayalam): both are ordinary prose and are translated. The 09-18 record stands
unchanged; this one settles the question it left open, and the existing prompt rule already
describes exactly this region, so its wording does not change.

**Consequences**: The boundary now has no judgement in it for the heading-anchored case, so it
can move from prompt to code as the 09-18 record anticipated — restore the list under a
recognised reference heading from the source bytes, `verbatim-directives.ts`-style, and check it
in `diff-checks`. That is follow-up work under #260, not part of this change; until then the
prompt rule carries it (regeneration evidence: Further Reading verbatim 6/6 in the 2026-09-18
arm). A reference list that sits under an unrecognised heading stays with the prompt rule.
#promote
34 changes: 34 additions & 0 deletions .dev/log/2026-09-21-ml-round3-answers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# 2026-09-21 — ml round-3 answers (ml#22) encoded; two shipped guesses corrected

**Trigger**: Adisankar answered QuantEcon/lecture-python-programming.ml#22 on 2026-09-19 — every question, one line each. Three answers confirm our reading, two overturn a guess, two are "both acceptable".

| Item | His answer | Against our guess |
|---|---|---|
| Which ordinary words stay English | "would a Kerala student say this word in everyday conversation?" is "a fair test" | confirmed — mildly, and to a leading question |
| *provide* | both acceptable; `നൽകുന്നു` read better in that lecture | soft confirmation |
| plural of a retained noun | English plural + Malayalam suffix; agrees `-ുകൾ` after a hyphen renders badly | confirmed |
| *prefer* | keep in English | we had none |
| *draw* | `വരയ്ക്കാം` is natural and worked better there | **overturned** (`draw ചെയ്യുക`) |
| comma between `-ഉം` items | always — phrases and single words | **overturned**, and v0.29.0 shipped the guess |
| Further Reading | intentional: reference material pointing outside the lecture | the section, not any link-led bullet |
| our two normalisations on ml#13 | both correct | — |

**Done** (branch `ml-round3-answers-ml22`)
- `ml` rules 27 → 28. The clause-boundary comma rule, part (c), loses "when each side is a phrase rather than a single word" and gains single-word examples; the suffix rule's own example (`a green border-ഉം a blinking cursor-ഉം`) contradicted it and now carries the comma. New short rule: the plural of a retained noun is the English plural plus the suffix — its own rule rather than one more clause in the longest rule of the set, where adherence is weakest.
- Glossary v0.7.0: `prefer` pinned English (light-verb form); `provide` → `നൽകുക`, superseding the v0.4.0 pin, with a context note that the other form is never an error.
- **Not encoded, on purpose**: *draw*. He changed `വരയ്ക്കുന്ന` to `draw ചെയ്യുക` at one line of `matplotlib` and calls `വരയ്ക്കാം` natural at another; both are his. The round-3 disposition report classed the first as a rule miss — in hindsight it was not. A future flip on *draw* or *provide* is preference, not a defect, and should be read that way in the round-4 analysis.
- `D-2026-09-21-ml-further-reading-boundary-is-the-reference-section` (pointer note atop the 09-18 record). The prompt rule's wording already matched; moving it to code is now unblocked under #260.
- `ml_metrics.py`: two lints — a Malayalam plural on a Latin-script singular, and two adjacent hyphen-suffixed `-ഉം` items with no comma. Calibrated on the three reviewed lectures and the round-4 draft: no false positives; they do find seven instances on already-merged pages (`matplotlib` 87, 89 ×2; `functions` 279; `python_by_example` 95, 358, 441), handled on the edition.
- Tests: the two corrected strings pinned (and their old forms pinned absent), the plural rule, *draw* absent from the light-verb list, glossary shape. Suite green, lint/format clean, `dist/` + `dist-action/` rebuilt.

**Still open — rule 2.** He accepts the everyday-speech test, so the rewrite the round-3 report proposed (the principle in the prompt, the word lists in the glossary) is unblocked. It is not in this change: rule 2 is the rule behind the ordinary-word pendulum (round 2: 24 to English / 8 to Malayalam; round 3: 4 / 12), *draw* — which we had listed under "stays English" — shows the test is not sharp, and nothing reaches him unmeasured. Run it held-out through the blind pairwise judge (`judge.mjs` in the 2026-09-18 arm) first.

**Round 4 will be regenerated at the next release (Matt, 2026-09-21 — reverses the first call of the day).** The first call was to leave lecture-python-programming.ml#23 (`numpy`, v0.29.0) alone: about four contradicted lines in 143 did not justify three new draws. The arm below changed the arithmetic — the draws now exist, and branch draw 1 is cleaner than the draft he was sent on every lint (bare endings 0 vs 3, comma-less `-ഉം` pairs 0 vs 2, `provide ചെയ്യ…` 0 vs 6, banned 2 vs 3) — and his review time is the scarce resource. He has not started (no activity on #23 since 2026-09-18), and he has been asked on #22 and #23 to hold off. Sequence, as for round 3 at v0.28.0: merge → v0.29.1 with its §4a gate → three draws at `@v0`, best by lint, `ml_repair.py` applied and disclosed → force-update #23 and retitle. No branch draw goes to him: every round has been generated at a published `@v0`. If he says he has already started, #23 stays as it is and the pre-registration stands: flags on the comma-less pairs and any *provide* flip are known-and-encoded, excluded from the convergence residue.

**Measured** (`experiments/ml-benchmark/arms/2026-09-21-round3-answers-numpy/`): three draws of `numpy` on the branch beside the three archived v0.29.0 draws — same source, model and command, and `numpy` is held out. The glossary change is deterministic (`provide ചെയ്യ…` 16 → 0). The corrected comma rule moves the output part-way only: hyphenated `-ഉം` pairs with a comma 0 of 4 → 2 of 6, the same two lines missed in both draws that had them. A rule he states as "always" lands about a third of the time from the prompt — the terminal-punctuation finding again — so `ml_repair.py` gained the comma as its third mechanical repair. The plural rule had nothing to do on this lecture; the one Malayalam plural in six draws is on a mass noun (`functionality-കൾ`), the same case as `logic-ുകളെ` on the reviewed `functions` page, and that is a question to him, not a rule.

**Harness**: the local `dist-action` bundle delivered on the `.ml` lane (test-translation-sync.ml#191, fixture PR test-translation-sync#890): 87-term glossary loaded, UPDATE path, the plural rule firing on the fixture's own `concepts-കൾ` → `concepts`, the hortative holding. It also missed the comma on its one `-ഉം` pair and opened a sentence with lowercase `modern` — the second harness run in a row to do so. Both are lintable misses of rules already present: more weight on the lint-and-repair step (#260, #301) over more prompt.

**Edition side**: lecture-python-programming.ml#24 brings the six places on the reviewed pages into line with his answers (three plurals, three commas), for his review; `logic-ുകളെ` left as his call.

**Next**: review + merge → patch release v0.29.1 (nothing here is a feature) → regenerate round 4 at `@v0` → then the rule-2 arm.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed

- **`ml` rules 27 → 28, glossary v0.6.0 → v0.7.0** from the editor's answers to the round-3 questions (lecture-python-programming.ml#22, 2026-09-19). Two answers overturned a guess that v0.29.0 had shipped or was about to: the comma between `-ഉം` items is there **always**, single words included (the clause-boundary rule said phrases only, and the suffix rule's own example contradicted it — both corrected), and *draw* is **not** forced into the light-verb pattern (he calls `വരയ്ക്കാം` natural; it stays unencoded either way). Confirmed and encoded: the plural of a retained English noun is the English plural plus the Malayalam suffix (`objects`, `function calls-ൽ` — never `object-ുകൾ`), as its own short rule; *prefer* stays English; *provide* moves to `നൽകുക`, superseding the v0.4.0 pin, with both forms acceptable in reviewed text. He accepts "would a Kerala student say this word in everyday conversation?" as the test for which ordinary words stay English; the rewrite of that rule is held for a held-out judge run. Decision record `D-2026-09-21-ml-further-reading-boundary-is-the-reference-section` settles the Further Reading boundary (the outside-pointing reference section, not any link-led bullet), which unblocks moving that rule into code.
- **`ml_metrics.py` gains two lints, `ml_repair.py` a third repair**: a Malayalam plural built on a Latin-script singular, and two adjacent hyphen-suffixed `-ഉം` items with no comma — calibrated against the three reviewed lectures and the round-4 draft with no false positives. The comma is also repaired mechanically, because the measurement says it must be: on three held-out draws of `numpy` (`experiments/ml-benchmark/arms/2026-09-21-round3-answers-numpy/`) the corrected prompt rule lifts comma-carrying pairs only from 0 of 4 to 2 of 6, while the glossary change is deterministic (`provide ചെയ്യ…` 16 → 0).

## [0.29.0] - 2026-09-18

### Added
Expand Down
Loading
Loading