Record: round-trip exercise handoff — 2026-11-07
Written so a fresh session can resume without this conversation’s memory.
The exercise
Aim: determine, more accurately, whether the extracted rules match the original intent in the prompts.
Processing:
- Extract formal rules from prompt prose.
- Generate human-readable prose from the extracted rules.
- Compare the original and the generated prose. When they match, we are good; when they do not, explain the difference in a form a human reads quickly.
The complaint that started it: the comparisons offered so far are unclear to a human. This record is the handoff for that exercise.
What was done (this exercise)
scripts/prompts-build.mjsnow writes, per compiled prompt,rendered.md(prose generated from the rules, viaruleset_render) andcomparison.md(the original-vs-generated comparison).- The comparison lists the lines a rule captured — with the rule id, a verdict, and what was kept or lost — and then the lines no rule captured, so the gap in intent is visible rather than hidden.
make promptsregenerates all of it;tests/31checks the two new forms.- Fixed a manifest bug: the full build appended to a stale manifest, duplicating entries across repeated runs.
Prior conversation (gist)
- krank is a production-rules engine whose notation an LLM can emit reliably, plus a renderer that writes the rules back into prose for a round trip.
- The object model (
dataflow.in/object-model.json, 79 objects) names the facts; the extractors (scripts/site-facts.mjs) produce them from files; the markers (documents/13-markers.md) tie prompt lines to rules. prompts.out/is the generated formal form (rules.json,marked.md,reduced.md,rendered.md,comparison.md);make promptsbuilds it.- The studio (local,
make studio) drives the interaction cycle: write prose, review candidates, approve, render, compare, check; it streams live progress and the model’s reasoning. - The shared rules split
prompts/capabilities/intoartifacts/andexecution/(v2026-11-06.1, breaking). - The general pattern, recorded in the skeleton, is: capture intent in prose, render it into an exact form, iterate with the human to verify and elaborate.
Current state (verified 2026-11-07)
- 13 prompt families are compiled; the rest of the corpus is not. The comparison makes the gap explicit — e.g.
prompts/01-contract.mdhas 4 lines captured and 150 not captured. - The comparison is deterministic (the renderer’s output next to the original), and it now names the uncovered lines explicitly.
- The five capability-artifact prompts (
01–05) are now compiled; their long bullets are line-wrapped in the shared files, so their cases quote a single-line fragment rather than the whole sentence. sources/browser/index.htmlcarries an uncommitted reformatting (functionally identical, roughly 189 → 549 lines) done outside this session; decide whether to keep or revert it.
Next tasks (in order)
- Compile the remaining rule-dense families:
capabilities/execution/06–09,features/01–08,episodes/01–02,how-to-write-research.md,flavors/02-cpp-conventions.md, and10-project.md. - If the deterministic comparison is still unclear, add a model-written plain-language explanation of each mismatch.
Commits (this session)
a7bc41efeat: compile the five capability-artifact families0305135feat: render prose from rules and write a per-prompt comparison