Development record
an indented continuation under a valued frontmatter key skips the record in every reader while record_schema reports nothing
an indented continuation under a valued frontmatter key skips the record in every reader while record_schema reports nothing
Found by the round-2 adversarial security review of build/itd-179, and recorded rather than chased: PRE-EXISTING and not grounds-specific.
A record carrying a key with a value on its own line followed by an indented
continuation line makes parseFrontmatterBlock return "unexpected indented
line", so every capture surface SKIPS the record, while record_schema reports
zero findings -- the block look-ahead only fires when the same-line value is
empty. Reader and gate therefore disagree, in the direction that hides a
record.
The reviewer reproduced the identical verdict pair (reader refuses, gate finds
nothing) with the same continuation under slug and under impact, so it
belongs to the standing "gate and reader disagree" family rather than to this
branch. Siblings already captured: iss-2608300205044566 (single-quoted scalars
split the gates) and iss-2608300234598982.
A differential harness over 41 grounds: spellings found this to be the ONLY
divergence: the round-1 fix 050f3366 closed the parity class for grounds
itself.
Grounds
- declined: the finding is carried whole by iss-2608300244483405; this would be wrong if iss-2608300244483405 were closed without answering it
Frontmatter
| id | iss-2608301206074955 |
|---|---|
| type | issue |
| lifecycle | wontfix |
| severity | minor |
.abcd/work/issues/wontfix/iss-2608301206074955-an-indented-continuation-under-a-valued.md
open on GitHub ↗ · commit history ↗
mentions4
- iss-2608300205044566The committed-ledger gate and the ledger reader disagree on single-quoted scalars: issueScalar in the record-lint issue-shape check strips single quotes, capture's decodeScalar does not, so a hand-authored single-quoted value (severity: 'minor', lapsed_at: '2026-08-28T00:00:00Z') is lint-green while the reader refuses and skips the record invisibly. Pre-existing on unmodified code; every issue-shape check that reads a scalar inherits it, so the fix belongs in issueScalar and moves four checks at once.
- iss-2608300234598982Two pre-existing gate-versus-reader divergences reproduced on main, not introduced by the lapsed_at work: the record-lint issueScalar strips quotes with strings.Trim and never unescapes, so a double-quoted value carrying a backslash escape is lint-red while the reader decodes it (severity: "min\or" reproduces it); and a key line led by a Unicode space is ignored by frontmatter keyRe but read by capture after TrimSpace, so a Unicode-space-led bogus key is lint-green while the reader refuses and skips the record. The first shares its root with iss-2608300205044566 and should fold into it; the second applies to every key.
- iss-2608300244483405Two pre-existing gate-versus-reader divergences reproduced on main with found_at, affecting every key and not covered by the single-quote or escape captures: a key whose only continuation is an indented comment line is refused by the reader (nested line is not key: value) while the gate is green; and an indented line following a valued key (or a null one) is refused by the reader (unexpected indented line) while the record-lint gate has no check for stray indented lines anywhere.
- itd-179The reasoning behind what was pursued no longer evaporates at the gate — readiness and triage record grounds for the conjecture, not only the decision