Prose pass: the config is discovered, so -c guards only its absence
This commit was merged in pull request #111.
This commit is contained in:
@@ -257,15 +257,14 @@ functions, and a branch floor that only ever moves upward. It sits below 100 bec
|
|||||||
compared against `undefined` — have a half no valid document reaches.
|
compared against `undefined` — have a half no valid document reaches.
|
||||||
|
|
||||||
The size ratchet is the other such number, `.oxlintrc.json`'s single rule over the files
|
The size ratchet is the other such number, `.oxlintrc.json`'s single rule over the files
|
||||||
`tsconfig.build.json` builds: no function past 52 lines, today's worst (`parseInline`), moving only
|
`tsconfig.build.json` builds: a per-function line ceiling, set at that set's worst and moving only
|
||||||
downward. It stops where the package does, because one ceiling covering the tests and the harness
|
downward. It covers the built files alone, since one ceiling over the tests too would have to be
|
||||||
too would have to be their worst — 64 — which loosens the guard over the shipped code. It guards
|
their worst, loosening the guard over the shipped code. It guards against drift and never drives a
|
||||||
against drift and never drives a refactor, so no cyclomatic rule and no second lint rule join it:
|
refactor, so no cyclomatic rule and no second lint rule join it: neither measure picked out what
|
||||||
neither measure picked out what nine readers found hard (the comprehension panel, 2026-09-20).
|
nine readers found hard (the comprehension panel, 2026-09-20). Three switches guard a silent green:
|
||||||
Three switches are load-bearing: `IIFEs: true`, since oxlint exempts an IIFE otherwise; an explicit
|
`IIFEs: true`, since oxlint exempts an IIFE otherwise; an explicit `-c`, so a config gone missing
|
||||||
`-c`, since finding no config it falls back to 96 default rules, green with the ceiling gone; and
|
fails the leg instead of falling back to oxlint's own defaults; and `--deny-warnings`, since a rule
|
||||||
`--deny-warnings`, since a rule from a category the config never names arrives as a warning it
|
from a category this config never names arrives as a warning it exits 0 on.
|
||||||
exits 0 on.
|
|
||||||
|
|
||||||
The corpus, all checked in: hand-built fixtures per node and combination; real ADF Atlassian's
|
The corpus, all checked in: hand-built fixtures per node and combination; real ADF Atlassian's
|
||||||
editor wrote; the CommonMark spec suite against `markdownToAdf` and `markdownToHtml`.
|
editor wrote; the CommonMark spec suite against `markdownToAdf` and `markdownToHtml`.
|
||||||
|
|||||||
+5
-6
@@ -872,12 +872,11 @@ The done `todo.md` items in full, as they were written. `todo.md` keeps a one-li
|
|||||||
else runs, over the 40 files `tsconfig.build.json` builds — the tests and
|
else runs, over the 40 files `tsconfig.build.json` builds — the tests and
|
||||||
`property-harness.ts` out, five functions over the ceiling with them, the worst 64. The
|
`property-harness.ts` out, five functions over the ceiling with them, the worst 64. The
|
||||||
ceiling is 52, `parseInline`'s length and the built set's worst; at 51 the gate reddens on
|
ceiling is 52, `parseInline`'s length and the built set's worst; at 51 the gate reddens on
|
||||||
it. The leg runs `oxlint --deny-warnings -c .oxlintrc.json src` beside the typecheck at 0.8s,
|
it. `skipBlankLines` and `skipComments` are spelled at oxlint 1.83.0's defaults, so a changed
|
||||||
the two flags because oxlint exits 0 on a warning and, discovering no config, falls back to
|
default cannot move what 52 counts. The leg runs `npm run size-ratchet` beside the typecheck
|
||||||
96 default rules; `skipBlankLines` and `skipComments` are spelled so a changed default cannot
|
at 0.8s, and the lockfile carries every platform binding, so `npm ci` resolves the musl one
|
||||||
move what 52 counts, and `IIFEs` because oxlint exempts an IIFE by default (the
|
inside the image. §10 holds the rule and what each switch guards (the stability-reviewer,
|
||||||
stability-reviewer, 2026-09-20). The lockfile carries every platform binding, so `npm ci`
|
2026-09-20).
|
||||||
resolves the musl one inside the image.
|
|
||||||
- [x] **18 — The subtree the directive spelling asks about (`0.2.0`).** The parser asks
|
- [x] **18 — The subtree the directive spelling asks about (`0.2.0`).** The parser asks
|
||||||
`commonMarkSpelling` at every directive-spelled block and the answer emits the whole subtree
|
`commonMarkSpelling` at every directive-spelled block and the answer emits the whole subtree
|
||||||
below, so a node at depth d is spelled d times: three nested rule-first directive lists cost
|
below, so a node at depth d is spelled d times: three nested rule-first directive lists cost
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ Start a session with: `Read AGENTS.md and todo.md, then do what todo.md's "Next
|
|||||||
## Milestones
|
## Milestones
|
||||||
|
|
||||||
Shipping order: 3h, 3i, 3j, 5a, 5b, 5c, 5d, 5 → `0.1.0` (shipped 2026-09-05); 3k, 11, 4, 12, 13, 4b,
|
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, 19, 20, 21, 22, 23, 24, 25, 26, 27, 10, 6, 7, 5f, 5g → `0.2.0`;
|
4c, 14, 15, 16, 18, 4d, 28, 17, 29, 19, 20, 21, 22, 23, 24, 25, 30, 26, 27, 10, 6, 7, 5f, 5g →
|
||||||
|
`0.2.0`;
|
||||||
8, 9 → TBD; 5e last.
|
8, 9 → TBD; 5e last.
|
||||||
The numbering is the order the work was planned in, not the order it ships. Everything known and
|
The numbering is the order the work was planned in, not the order it ships. Everything known and
|
||||||
shaped ships in one release rather than a string of them: nothing waits on a version, and no
|
shaped ships in one release rather than a string of them: nothing waits on a version, and no
|
||||||
@@ -36,7 +37,25 @@ head (2026-09-20). They read ahead of 6, 7 and 10 because every one of them is c
|
|||||||
HTML format lands than after: 19 and 20 because HTML has no answer without them, 21 to 24 because
|
HTML format lands than after: 19 and 20 because HTML has no answer without them, 21 to 24 because
|
||||||
HTML doubles the importers and the file count they touch, and 25 to 27 because they are what the
|
HTML doubles the importers and the file count they touch, and 25 to 27 because they are what the
|
||||||
panel says the next reader pays for.
|
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.
|
||||||
|
|
||||||
|
- [ ] **29 — Goal 3 names the whole of the exception (`0.2.0`).** README §Goals 3 says "the three
|
||||||
|
carve-outs and the one gap below are the whole of the exception", and §The guarantees says
|
||||||
|
"apart from the raw HTML below, with three carve-outs … and one gap". Raw HTML is a fourth
|
||||||
|
exception, the commonest one in markdown written elsewhere, and `unmappable-html` refuses it
|
||||||
|
today. Name it in the goal, or stop enumerating there. Settle at the same time whether the
|
||||||
|
goal is written for `0.2.0`, where the element mapping the error text promises could make
|
||||||
|
raw HTML convert — the answer decides which repair is the true one, so it is the
|
||||||
|
maintainer's.
|
||||||
|
- [ ] **30 — AGENTS.md says each thing once (`0.2.0`).** §15's ask protocol — name the class, cite
|
||||||
|
the earlier asks of it, never "A or B?" — is the rule reviewers cite most and has no heading,
|
||||||
|
two thirds down a 50-line section in a file with no index. Give it one. §15 also offers "the
|
||||||
|
gate's seconds" as a stated number that is kept, and no such number is stated anywhere, §14
|
||||||
|
forbidding the category outright; drop the example. Then the restatements: §15 repeats the
|
||||||
|
one-chunk rule three times and `version`/`NPM_TOKEN` twice, §12 says the default is delete
|
||||||
|
twice, and §5's "few, each earning its keep; they never reach a consumer" is npm's own
|
||||||
|
definition of the field. Cut to one copy each, the one carrying the why.
|
||||||
- [ ] **19 — A home for what both formats read (`0.2.0`).** Settle where a construct both formats
|
- [ ] **19 — A home for what both formats read (`0.2.0`).** Settle where a construct both formats
|
||||||
need lives, and say so in AGENTS.md §11. Today `adf/` may hold no format knowledge and each
|
need lives, and say so in AGENTS.md §11. Today `adf/` may hold no format knowledge and each
|
||||||
format directory holds its own shared layer, so there is no third place; the first ADF-shaped
|
format directory holds its own shared layer, so there is no third place; the first ADF-shaped
|
||||||
|
|||||||
Reference in New Issue
Block a user