Skip to content

Two readers of SKILL.md disagreed by three, and cli-tri has been red on master for six runs #3265

Description

@gHashTag

Three findings, one file.

1. Two readers of the same file, three apart

tri skill check   ->  532 numbered sections
tri skill claims  ->  535 numbered sections

skillnum.rs has five readers that walk ## N. Title headings. Three
carry the CommonMark fence rule; section_bodies and section_ranges carried
none. Three section headings in SKILL.md are quoted inside code fences as
evidence
— sections about duplicate numbering that show the duplicate — and
those two readers counted them.

Fixed by one fence_toggle helper used by all five, so the next repair cannot
reach only some of them. Both now read 532.

The rule matters and is easy to get wrong. An opening fence may carry an info
string; a closing fence may not.
A naive toggle on every ``` line reads
441 sections in this file — 91 fewer than the truth. I wrote that naive
toggle while investigating and it told me there were 94 phantom sections; the
real number is 3. The tests pin the distinction.

2. Three numbering collisions, and a gate that has been failing for six runs

tri skill check exits 1 on master:

section 567 appears 3 times
section 568 appears 2 times
section 567 comes after 569 -- the file reads out of order

cli-tri.yml does call it (step "No two skill sections share a number") and
has failed on master for six consecutive runs. It is not one of the four
required contexts, so nothing blocks and the corruption stays.

The duplicates are mine: concurrent branches each numbered from their own base
and the union merges kept both sides. Renumbered to 570/571/572 by line, so a
heading with matching text elsewhere could not be hit. Title set before and
after: 535 = 535, zero missing, zero invented; the diff is exactly three lines.
skill check now exits 0.

This is #3236's cost showing up as data corruption rather than CI minutes:
three sections shared a number, so "see 567" pointed at any of three things.

3. Reported, not fixed: my own lessons are filed by position, not topic

## N. Title is the numbered knowledge base (535). ### Title is a
sub-heading level (140 across 63 sections, up to 7 each) — a normal convention.

Every lesson I appended over the last several passes is a ### at end of
file
, so it lands under whichever numbered section happens to be last.
Sections 567 and 568 now carry 7 and 6 sub-headings on unrelated topics.

Consequences: those lessons are not counted by tri skill claims, not
validated by tri skill check, and a reader following a cross-reference to 568
finds six unrelated lessons under it. The numbered base has not grown in
several passes despite the additions.

Not fixed here because promoting them to numbered sections is a decision about
what belongs in the base and at what granularity, and doing it silently inside
a numbering repair would be the wrong shape.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions