Skip to content

Name GOVERNANCE.md in its own carried-files list, and point reviewer rules at it - #458

Merged
ptr727 merged 2 commits into
developfrom
docs/governance-carried-list-and-reviewer-rule-target
Jul 30, 2026
Merged

Name GOVERNANCE.md in its own carried-files list, and point reviewer rules at it#458
ptr727 merged 2 commits into
developfrom
docs/governance-carried-list-and-reviewer-rule-target

Conversation

@ptr727

@ptr727 ptr727 commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Answers the three review findings on promotion PR #457. Two held, one is declined with evidence.

Held. The carried-files list in GOVERNANCE.md omitted GOVERNANCE.md itself, which spec/files.json declares carried. And .github/copilot-instructions.md still said a reviewer-binding rule "has to live in AGENTS.md" - the router holds no rule text, so that sent such rules to the wrong file. The earlier sweep fixed the first half of that same line and left this clause.

Declined. The third finding reads git ls-files as printing repo-top-level-relative paths even under -C, which would make tracked_paths join them wrongly. It prints them relative to the -C directory:

$ git -C spec ls-files | head -3
audit.py
divergences.json
divergences.schema.json

Discovery over a subdirectory returns 16 paths that all exist, from a relative root and an absolute one. Rather than only declining, a case now pins the invariant, because passing --full-name would flip the behavior with nothing else to catch it.

Whole gate green: 26 self-test cases, markdownlint 0 issues across 39 files, zero introduced splices.

🤖 Generated with Claude Code

…rules at it

Review on the promotion raised three findings on the split. Two hold.

The carried-files list omitted `GOVERNANCE.md`, the file the rule is written in and now the
primary carried governance file. `spec/files.json` declares it carried, so the list contradicted
the baseline.

`.github/copilot-instructions.md` said a rule a reviewer must honor has to live in `AGENTS.md`
to be provider-independent. The router holds no rule text, so that sentence sent reviewer-binding
rules to the wrong file. The earlier sweep fixed the first half of that same line and left this
clause, which is the same fix-the-instance failure the sweep existed to correct.

The third finding is declined. It reads `git ls-files` as printing paths relative to the repo top
level even under `-C`, which would make the join in tracked_paths produce broken paths. It prints
them relative to the `-C` directory: `git -C spec ls-files` yields `audit.py`, not
`spec/audit.py`, and discovery over a subdirectory returns paths that all exist, from a relative
root and an absolute one. A case pins the invariant, since passing `--full-name` would flip it
with nothing else to notice.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 30, 2026 01:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repo’s governance documentation to reflect that reviewer-binding rules live in GOVERNANCE.md (with AGENTS.md acting as a router), and adds a regression test to pin git ls-files -C <subdir> path relativity so discovery continues to yield valid paths when run from a subdirectory.

Changes:

  • Add a unit test ensuring prose_lint.discover() returns existing paths when rooted at subdirectories (pinning git ls-files -C behavior unless --full-name is introduced).
  • Update GOVERNANCE.md’s carried-files prose to include itself in the carried set.
  • Fix .github/copilot-instructions.md to route reviewer-binding rule placement to GOVERNANCE.md (rather than AGENTS.md).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
scripts/test_prose_lint.py Adds a regression test covering subdirectory-rooted discovery and ensuring discovered paths exist.
GOV­ERNANCE.md Updates carried-files prose to include the governance file itself in the carried set.
.github/copilot-instructions.md Corrects the “reviewer-binding rules must live in …” statement to point to GOVERNANCE.md (routed from AGENTS.md).

Comment thread GOVERNANCE.md Outdated
The list enumerates backticked filenames, so a prose self-reference reads as a different kind of
member and a scan for filenames misses it. The "this file" form stays where the surrounding text
is prose.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 30, 2026 01:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit c4d3980 into develop Jul 30, 2026
7 checks passed
@ptr727
ptr727 deleted the docs/governance-carried-list-and-reviewer-rule-target branch July 30, 2026 01:46
ptr727 added a commit that referenced this pull request Jul 30, 2026
…ain (#457)

Promotes 3974ac2 (#455) and c4d3980 (#458).

AGENTS.md becomes a thin router (87,457 -> 7,789 bytes) with the rule text in GOVERNANCE.md, and docs/token-cost.md records the measurement behind it.

The scripts/ gates get tests. Five defects in them all reported success while doing nothing: the charset table omitted three characters the rule names, the duplicate-word allowlist contradicted its own comment, discovery reached 246 generated files against a rule that names those directories, lstrip ate every dotfile prefix so --diff was blind to .github/, and the table was first written with literal non-ASCII in the file the rule scans. Each fix carries the case that would have caught it.

CI gates the self-tests, both repo_gate checks, and the charset and duplicate-word rules. The semicolon rule stays warn-only.

Promoted now so a new repo scaffolds against the router shape rather than the pre-split monolith: groundTruthBranch cannot name develop (AUDIT.md section 1, and #340 settled it for HomeAssistant-Config), so until main carries GOVERNANCE.md a newly scaffolded repo either holds the pre-split shape or is audited against a branch lacking what it carries.

Sections declared verbatim changed, so every downstream copy is stale until re-vendored. spec/fidelity_honesty.py distinguishes stale from modified by hash.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants