3
0
mirror of https://github.com/larvit/adf-codec.git synced 2026-11-12 11:48:29 +01:00
Files
adf-codec/docs/comprehension-history.md
T

9.5 KiB

Comprehension history

2026-10-09T00:41:03Z, PR #19 at 859c952, against 9519606

Ruling: better

Seat Vote
Mid A better
Inherited architect better

Mid A, decided by:

  • src/markdown/portable/task-ids.ts:7 mintTaskIds: one walk, no carried set filled by the parser as a side effect
  • src/markdown/parse/markdown-to-adf.ts:26 Reading: plain data, codeBlockNode no longer mutates carried
  • src/markdown/portable/conventions.ts:8 flavourClaims: one table states what each reader claims; branches name the claim they test
  • src/markdown/parse/markdown-to-adf.ts:161 quoteNode: the title is read in the reader's own flavour, no hop through inlineLeaves
  • src/index.ts:5 exports: each call named by its flavour; "plain" no longer means two things

Inherited architect, decided by:

  • src/markdown/parse/markdown-to-adf.ts:26 Reading: the hidden carried set and the retrying mintTaskIds are gone
  • src/markdown/parse/markdown-to-adf.ts:161 quoteNode: parser and emitter no longer correct only together
  • src/markdown/parse/markdown-to-adf.ts:113 readBlock: branches name the claim (claims.alerts, claims.taskMarkers)
  • src/index.ts:5 exports: flavour names say which file to open
  • src/markdown/portable/conventions.ts:3 flavourClaims: cost, all three flavours' rows live under portable/

2026-10-09T00:56:04Z, PR #19 at 5fc877e, against 9519606

Ruling: better

Seat Vote
Mid A better
Inherited architect better

Mid A, decided by:

  • src/markdown/portable/conventions.ts:8 flavourClaims: one table says what each flavour reads; every gate reads a named field
  • src/markdown/portable/task-ids.ts:7 mintTaskIds: one pass, no carried set crossing modules
  • src/index.ts:5 exports: each name says which markdown it means
  • src/markdown/parse/markdown-to-adf.ts:161 quoteNode: no reach into the portable writer's reduction
  • src/markdown/portable/conventions.ts:20 ReadClaims: cost, directiveNode leans on a type in another file

Inherited architect, decided by:

  • src/markdown/portable/task-ids.ts:6 mintTaskIds: the retry loop and the parser-filled set are gone
  • src/markdown/parse/markdown-to-adf.ts:26 Reading: no hidden state; branches name the feature they gate
  • src/markdown/portable/conventions.ts:8 flavourClaims: cost, the table for all three flavours lives under portable/
  • src/markdown/emit/line-escaping.ts:92 escapeClaims: directive escaping under the flag the parser checks
  • src/markdown/emit/adf-to-markdown.ts:146 spellPortableBlock: no hard-coded lossless title

2026-10-09T01:43:11Z, PR #21 at c45320b, against 9a242c7

Ruling: better

Seat Vote
Mid A better
Inherited architect better

Mid A, decided by:

  • src/markdown/parse/markdown-to-adf.ts:23 MarkerParagraph: the block kind says a marker's paragraph holds no lone image, where readMarked scanned its output afterwards
  • src/markdown/emit/image.ts:7 tryImage: builds what the reader would build and compares, where imageShape restated the shape by hand
  • src/markdown/parse/inline-content.ts:25 InlineContent: one rule replaces five image refusal sites over two files
  • src/markdown/external-image.ts:4 centeredImage: one builder for the shape three literals held
  • src/markdown/parse/inline-content.ts:550 pieceNodes: costs more — its image arm relies on assemble having linked every top-level image

Inherited architect, decided by:

  • src/markdown/external-image.ts:4 centeredImage: the image's ADF shape is defined once for reader, emitter and portable reducer
  • src/markdown/parse/markdown-to-adf.ts:23 MarkerParagraph: replaces readMarked's after-the-fact search and its caller-computed flag
  • src/result.ts:1 ConvertErrorCode: unmappable-image and its refusal paths are gone
  • src/markdown/parse/inline-content.ts:43 Image: costs more — four functions must agree on the image's link
  • src/markdown/parse/inline-content.ts:26 InlineContent: costs more — no longer image xor nodes

2026-10-09T08:38:28Z, PR #21 at 1098b5e, against 9a242c7

Ruling: better

Seat Vote
Mid A better
Inherited architect better

Mid A, decided by:

  • src/markdown/external-image.ts:4 centeredImage: one builder where three places built the image node by hand
  • src/markdown/emit/image.ts:7 tryImage: compares against what the reader builds, where imageShape restated the shape
  • src/markdown/parse/markdown-to-adf.ts:26 TaskParagraph: a named block kind replaces readMarked's after-the-fact index search
  • src/markdown/parse/inline-content.ts:302 assemble: costs more — which of three readings an image takes hangs on a one-line condition and the inLink flag
  • src/markdown/parse/inline-content.ts:26 InlineContent: costs more — no longer image xor nodes

Inherited architect, decided by:

  • src/markdown/external-image.ts:4 centeredImage: the image shape is defined once for reader and both writers
  • src/markdown/emit/image.ts:7 tryImage: the emitter cannot drift from the reader
  • src/markdown/parse/markdown-to-adf.ts:136 readBlock: the task paragraph is routed where the block is classified
  • src/markdown/parse/inline-content.ts:302 assemble: costs more — the most expensive line to decode
  • src/markdown/parse/markdown-to-adf.ts:154 paragraphsOf: costs more — the name does not say it splits the marker line

2026-10-09T08:46:45Z, PR #21 at e7029c1, against 9a242c7

Ruling: better

Seat Vote
Mid A better
Inherited architect better

Mid A, decided by:

  • src/markdown/emit/image.ts:7 tryImage: builds what the reader would build and compares, where imageShape restated the shape
  • src/markdown/external-image.ts:4 centeredImage: the image shape lives in one named file
  • src/markdown/parse/markdown-to-adf.ts:26 TaskParagraph: a typed block kind replaces readMarked's after-the-fact search
  • src/markdown/parse/inline-content.ts:302 assemble: costs more — one dense ternary over inLink
  • src/markdown/parse/inline-content.ts:26 InlineContent: costs more — no longer a discriminated union

Inherited architect, decided by:

  • src/markdown/external-image.ts:4 centeredImage: one builder where three had to stay in step
  • src/markdown/parse/markdown-to-adf.ts:136 readBlock: the task paragraph is routed by a named block kind
  • src/result.ts:1 ConvertErrorCode: one rule no longer enforced at five sites
  • src/markdown/parse/inline-content.ts:26 InlineContent: costs more — contentNode drops image silently
  • src/markdown/parse/inline-content.ts:302 assemble: costs more — three routes from an image piece to text

2026-10-09T09:00:13Z, PR #22 at fe5c731, against 78655bc

Ruling: same

Seat Vote
Mid A same
Inherited architect same

2026-10-09T09:52:41Z, PR #22 at 6f1a16b, against 78655bc

Ruling: worse

Seat Vote
Mid A worse
Inherited architect worse

Mid A, decided by:

  • src/markdown/emit/inline-line.ts:106 takeFallback: a range may part joined breaks or carry, decided by state an earlier pass built
  • src/markdown/emit/inline-line.ts:316 emitMarkedRun: a carry that signals parting to takeFallback two levels up
  • src/markdown/emit/inline-line.ts:233 joinsRun: a lookahead whose shortcut holds only by inlineRuns' call order
  • src/markdown/emit/inline-line.ts:58 portableLineFallback: a second retry loop sharing the parting
  • src/adf/inline-nodes.ts:5 InlineNodeModel.marks: reads as "has marks", not "takes marks"
  • src/markdown/parse/inline-content.ts:328 linkTo: the comment hides that the breaks stay after the destination

Inherited architect, decided by:

  • src/markdown/emit/inline-line.ts:331 emitMarkedRun: the newline check returns a carry that is a parting signal, one fact over three functions
  • src/markdown/emit/inline-line.ts:106 takeFallback: two growing sets whose order matters
  • src/markdown/emit/inline-line.ts:58 portableLineFallback: a second retry loop with its own exit rule
  • src/markdown/emit/inline-line.ts:233 joinsRun: lookahead, shortcut and three conditions per break; inlineRuns takes the whole context
  • src/adf/inline-nodes.ts:5 InlineNodeModel.marks: the name hides "takes marks"
  • src/markdown/parse/inline-content.ts:328 linkTo: the comment no longer says an empty destination reads as nothing

2026-10-09T09:57:25Z, PR #22 at 45b5446, against 78655bc

Ruling: worse

Seat Vote
Mid A worse
Inherited architect worse

Mid A, decided by:

  • src/markdown/emit/inline-line.ts:100 takeFallback: the first fallback is discarded to stop joining, known only from a comment
  • src/markdown/emit/inline-line.ts:200 inlineRuns: an indexed loop moving its own counter by joinedBreaks' result
  • src/markdown/emit/inline-line.ts:226 joinedBreaks: six positional parameters and two jobs

Inherited architect, decided by:

  • src/markdown/emit/inline-line.ts:101 takeFallback: a hidden first step that takes no fallback
  • src/markdown/emit/inline-line.ts:200 inlineRuns: runs built by a forward scan the reader steps through by hand
  • src/markdown/emit/inline-line.ts:56 portableLineFallback: checks an unjoined line while the final emit starts joined
  • src/markdown/emit/inline-line.ts:40 LineFallbacks.joinsBreaks: a fallbacks field whose fallback value is false

2026-10-09T10:02:23Z, PR #22 at f195ebd, against 78655bc

Ruling: same

Seat Vote
Mid A same
Inherited architect same