Skip to content

Prose sweep on the in-flight UMS branch: 8 CI-blocking line breaks plus 23 style findings #2191

Description

@d-morrison

A prose-standards sweep ran against an in-flight UMS branch (the session's
review learnings, touching shared/coding/least-flexible-tool.md,
shared/workflow/{adversarial-self-review,algorithmatize-checks,fixtures-are-not-evidence,self-review-fallback,claim-pr}.md
and self-review-fallback.cases.md). That branch has no PR open yet, so the
findings are recorded here rather than on a thread, and whoever picks the branch
up should apply them before opening it.

24 findings. The first is CI-blocking and was verified by fetching and
running the exact checker CI uses
(Morrison-Lab/gha/check-new-line-breaks@fdaeccc4, the SHA pinned at
.github/workflows/validate.yml:301) against git merge-base origin/main HEAD
--- exit 1 with exactly these eight errors, not predicted:

HIGH

  1. Eight added lines fail new-line-breaks (fail: 'true', diff-scoped):
    least-flexible-tool.md:147,157; adversarial-self-review.md:93;
    algorithmatize-checks.md:750,755; fixtures-are-not-evidence.md:253;
    self-review-fallback.md:182,192. Each is >=80 stripped characters with a
    mid-line semicolon. least-flexible-tool.md:147 is 522 visible characters.
  2. algorithmatize-checks.md:757 --- a Do/Don't block with only the Do.
    CLAUDE.md's "Record both the pattern and the anti-pattern" requires both,
    and requires deriving the missing half rather than omitting it. The retired
    behaviour is in the prose above and never labelled.
  3. adversarial-self-review.md:77 --- in its words binds to the diff,
    five noun phrases from the intended referent (the reviewer). The wrong
    reading is fluent, which is ambiguous-reference.md's dangerous case.
  4. least-flexible-tool.md:147 --- one 522-character sentence, three
    semicolon-joined independent clauses each with its own because. Past
    plain-prose.md's limit, and it is the same line failing CI in (1).

MEDIUM

5-6. self-review-fallback.cases.md:238/:242 state the same claim and the
same citation four lines apart; :213 restates :197-200 near-verbatim.
7. cases.md:216 --- "the primary" widens silently from claude-review to
"same-vendor readings", and the table at :222-225 contradicts the sentence.
8-9, 11, 13-14. Ambiguous pronouns: adversarial-self-review.md:83 (reading it), :79 (however hard it worked), fixtures-are-not-evidence.md:243
(what exposed it), least-flexible-tool.md:147 (two pronouns binding to
-c rather than to COMMENT_FLAG_RE), claim-pr.md:223 (the Don't above,
four candidates).
10. adversarial-self-review.md:90 --- a Do half too abstract to violate
("discount it by however much of its reasoning came from the artifact" names no
observable act), against CLAUDE.md's own requirement.
12. algorithmatize-checks.md:748 vs :750 --- the scope claim ("both under
outcomes above") contradicts the file's own taxonomy at :588-590.
15. 82 of 105 non-blank added lines exceed 80 characters, median 148, max 607,
against host files running 12/228 and 45/233 on main.

LOW

16-24: a forward reference (self-review-fallback.md:191), two more ambiguous
referents, a subject/verb mismatch with neither over eleven items
(:187), a clause-referring which with a noun in the way, one
"not merely X, they were Y" antithesis (ai-tells.md's named biggest tell) that
is also a comma splice, a mechanism restated within one file, an undated count,
and a quotation cited to the PR rather than to the comment permalink.

Checked and clean

All back-references in the added text resolve; only one directional-word hit,
and it is a back-reference; the adversarial-self-review.md and
self-review-fallback.md additions are genuine increments over the sections
they sit under rather than restatements.

Note

Filed rather than fixed because the session that produced the branch ran out of
quota. Finding 1 is the one that must be done before the PR opens; the rest are
ordinary prose-review work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions