Skip to content

Consume the fleet prose gate in validate-task.yml #925

Description

@ptr727

Raised by the fleet audit of this repository at main (16f196e), run stamp audit run 2026-08-15T15:13:26Z | hub d54862a. Re-run the audit before acting, since findings are a point-in-time snapshot.

What

Nothing in this repository checks a line of prose or a code comment against the fleet prose rules, at any point:

  • .github/workflows/validate-task.yml runs csharpier, dotnet format style, markdownlint-cli2, cspell, ruff, mypy, actionlint, and editorconfig-checker, and no prose gate.
  • .husky/pre-commit runs the C# formatters plus markdownlint and cspell on staged Markdown, and no prose gate.

The rules themselves (the ASCII character-set tiers, the no-semicolon-in-prose rule, the spaced-hyphen rule, the one-sentence-per-comment-line rule, US English spelling) are carried in GOVERNANCE.md "Documentation Style Conventions", so this repository states them and measures none of them.

Evidence

A whole-tree run of the hub's scripts/prose_lint.py against main reports 772 findings across 180 files read:

Rule Count
comment-wrap 342
comment-case 135
semicolon 120
dash 82
charset-unknown 65
charset 16
dead-path 6
dupword 4
spelling 2

Most of it is legacy: C# comments and doc text written before the rules existed. Three findings are substantive rather than stylistic and are worth fixing on sight whatever is decided here:

  • RegressionTests/RegressionTest.sh:75 and :361 use the British behaviour where the repository convention is US English.
  • PlexCleaner/VideoProps.cs:138 duplicates the word not.
  • GOVERNANCE.md:282 names .vscode/settings.json, a path this tree no longer holds.

Why it matters

The backlog is not the problem, the absence of a gate is. The fleet remedy for legacy prose is fix-as-edited rather than a tree-wide sweep, and the gate that implements it is diff-scoped: it reads only the lines a change touches, so it bounds the backlog at today's size and costs nothing on an untouched file. Without it, every new comment and every new paragraph can add to the pile, and the only thing catching any of it is review.

Remedy

Consume the hub's prose-gate composite action in validate-task.yml, pinned to a commit SHA, with the checkout fetching the base branch's history (the gate diffs against the base, and it stands down loudly rather than passing blind in a shallow clone). PhotoCleaner carries a working example of the same step.

Optionally add the same gate to .husky/pre-commit, scoped to the commit's own diff, which is what makes it affordable in a hook.

Not in scope

The 772 findings are not a work item. They are the measurement that says the gate is missing, and they retire as each file is next edited.

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