10 - lossy conversion keeps the content, and a reader panel settles what the audience expects #127
@@ -36,8 +36,9 @@ In priority order.
|
||||
form carries only what CommonMark cannot hold.
|
||||
5. **Lossy conversion keeps the content.** `adfToPlainMarkdown` and `plainMarkdownToAdf` drop what
|
||||
plain markdown cannot hold — format, design, structure — never content: what a reader of the
|
||||
rendered document sees or follows, its text, images and link targets. What is dropped goes the
|
||||
way the audience expects.
|
||||
rendered document sees or follows, its text, images and link targets. Content the document only
|
||||
references is marked where it stood, by a note that reads as the converter's and names what was
|
||||
left out. What is dropped goes the way the audience expects.
|
||||
6. **Failures are values.** Nothing throws, and `code` is a closed list — as much a contract as
|
||||
the emitted formats are.
|
||||
7. **Nothing in the way.** No runtime dependencies, no I/O, no configuration, no host API: ESM on
|
||||
|
||||
@@ -15,14 +15,15 @@ Start a session with: `Read AGENTS.md and todo.md, then do what todo.md's "Next
|
||||
states, which wins over where an item's bullet sits: a newly filed item is written beside the
|
||||
one it came in with, not at its own place in the order. Where that item has no release, the
|
||||
planning chunk §15 describes.
|
||||
3. In flight: nothing.
|
||||
3. In flight: 10a on the local branch `10a` (worktree `../adf-codec-10a`, `8a3a83f`), built before
|
||||
item 10's rows were rewritten on 2026-09-25; rework it against them.
|
||||
4. Before stopping, rewrite this section: the in-flight line, and the prompt itself wherever the
|
||||
session found it wrong or short.
|
||||
|
||||
## Milestones
|
||||
|
||||
Shipping order: 3h, 3i, 3j, 5a, 5b, 5c, 5d, 5 → `0.1.0` (shipped 2026-09-05); 3k, 11, 4, 12, 13, 4b,
|
||||
4c, 14, 15, 16, 18, 4d, 28, 17, 29, 19, 20, 21, 22, 32, 23, 24, 25, 30, 26, 27, 10, 6, 7, 31, 5f, 5g →
|
||||
4c, 14, 15, 16, 18, 4d, 28, 17, 29, 19, 20, 21, 22, 32, 23, 24, 25, 30, 26, 27, 10, 6, 7, 31, 33, 5f, 5g →
|
||||
`0.2.0`;
|
||||
8, 9 → TBD; 5e last.
|
||||
The numbering is the order the work was planned in, not the order it ships. Everything known and
|
||||
@@ -43,6 +44,8 @@ HTML doubles the importers and the file count they touch, and 25 to 27 because t
|
||||
panel says the next reader pays for.
|
||||
29 and 30 come from 17's prose pass (2026-09-20). 29 reads first because every goal is what a later
|
||||
ask is settled against, 19's included; 30 sits beside 25, the other chunk rereading AGENTS.md.
|
||||
33 comes from 10a (2026-09-25) and reads beside 31, the other chunk about what the pipeline
|
||||
measures.
|
||||
31 comes from 20's gate runs (2026-09-21) and reads beside 5f, the other chunk putting a measured
|
||||
number under the pipeline. 32 comes from 21's review (2026-09-21) and reads beside 22, the other
|
||||
chunk clearing a §11 seam.
|
||||
@@ -56,6 +59,9 @@ chunk clearing a §11 seam.
|
||||
upward, so the first raise to the measured figure reddens a run that changed nothing. Make
|
||||
the measurement repeatable, or state the number the floor may be raised to and why it is not
|
||||
the measured one.
|
||||
- [ ] **33 — A carried mark run costs the line one re-emit (`0.2.0`).** `adfToMarkdown` spends 23 s
|
||||
on one paragraph of 2000 × `un` plus `**-r**`: each run its flanking cannot spell re-emits the
|
||||
whole line before riding the carry, quadratic in the runs (§11 Bounds). Make it linear.
|
||||
- [x] **24 — The conformance gates have a directory (`0.2.0`).**
|
||||
- [x] **25 — AGENTS.md §8 and §11 are findable (`0.2.0`).**
|
||||
- [x] **26 — The two mutable structures say what they guarantee (`0.2.0`).**
|
||||
@@ -220,7 +226,8 @@ chunk clearing a §11 seam.
|
||||
its text being the editor's prompt rather than the document's; a node no row names, or one
|
||||
standing where no spelling holds it, its blocks or its text.
|
||||
- Content the document only references — a stored file with no `alt`, an extension with no
|
||||
`text`, a `syncBlock`, a card with neither `url` nor `data` naming one — leaves MARKER.
|
||||
`text`, a `syncBlock`, a card with neither `url` nor `data` naming one — leaves an italic note
|
||||
naming it: `*(image not included)*`, `*(jira-issues-table not included)*`.
|
||||
- A table stays a pipe table: the first row becomes the header, a cell's blocks join on one line
|
||||
with spaces, and a span keeps its cell under its header by empty cells in the columns and
|
||||
rows it covered, padding at most to the table's cell count.
|
||||
|
||||
Reference in New Issue
Block a user