Skip to content

Point the Charset-Unknown Message at Where a Tier Is Classified - #2216

Merged
ptr727 merged 2 commits into
developfrom
feature/auto-2171
Oct 1, 2026
Merged

ptr727 merged 2 commits into
developfrom
feature/auto-2171

Conversation

@ptr727

@ptr727 ptr727 commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

The prose gate's charset-unknown finding told the reader to "classify it in GOVERNANCE.md", but GOVERNANCE.md "Character Set" holds only a pointer to the comment-and-doc-style skill. The message now names the two places a classification actually goes, that skill's "Character set" section and the gate's TIER1, TIER2, and TIER3 tables in prose_lint.py, and names the hub as the repository both live in, since a downstream repository runs the gate from the hub's action checkout and carries neither.

  • .github/actions/prose-gate/prose_lint.py: the message's tail moves to a CHARSET_CLASSIFY constant beside the tier tables and names both places.
  • tests/test_prose_lint.py: a new TestTierTables case pins the message text and asserts it no longer names GOVERNANCE.md. It fails against the old message.

Verification

  • python3 -m unittest discover -s tests: 1880 tests, OK.
  • The new test fails with the fix reverted and passes with it in place.
  • ruff format --check, ruff check, mypy, prose_lint.py . --diff origin/develop, repo_gate.py --check eol, and spec/validate.py are clean.

Closes on promotion: #2171

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated guidance for unclassified characters to point to the character-set guidance and classification tables instead of GOVERNANCE.md.

ptr727 and others added 2 commits September 30, 2026 23:20
The finding told the reader to classify the character in GOVERNANCE.md,
which holds only a pointer. It now names the comment-and-doc-style
skill's "Character set" section and the gate's tier tables, and a test
pins that text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A downstream repository runs the gate from the hub's action checkout and carries neither the skill source nor prose_lint.py, so the message names the repository both live in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 1, 2026 06:23
@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 811e4a34-2d57-4ca8-aaa5-7a2369dc2392

📥 Commits

Reviewing files that changed from the base of the PR and between 658034f and 79a985c.

📒 Files selected for processing (2)
  • .github/actions/prose-gate/prose_lint.py
  • tests/test_prose_lint.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The charset-unknown finding now directs users to the comment-and-doc-style skill’s “Character set” section and the prose_lint.py tier tables. A test checks the guidance and confirms it does not mention GOVERNANCE.md.

Changes

Prose lint guidance

Layer / File(s) Summary
Update unknown-character guidance
.github/actions/prose-gate/prose_lint.py, tests/test_prose_lint.py
The linter uses shared guidance for characters that match no tier. The test checks the skill section, tier tables, and classification location, and excludes GOVERNANCE.md.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~4 minutes

Merge Risk: ⚪ Minimal · up to 79a98

The update points contributors to the relevant classification guidance, with no actionable merge-blocking risk remaining.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating the charset-unknown message to point readers to the tier classification location.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (develop@658034f). Learn more about missing BASE report.

Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #2216   +/-   ##
==========================================
  Coverage           ?   56.61%           
==========================================
  Files              ?       16           
  Lines              ?     7482           
  Branches           ?        0           
==========================================
  Hits               ?     4236           
  Misses             ?     3246           
  Partials           ?        0           
Flag Coverage Δ
python-3.13 56.61% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

Copilot review overview

🟡 Changes recommended

The change is correct, complete, and well-tested with no defects found, but per repository policy a clean, no-findings review is finalized by a human maintainer rather than auto-approved.

Review effort: Balanced
Findings: None

What changed in this PR

This PR corrects a misdirecting hint in the prose gate's charset-unknown finding. Previously the message told readers to "classify it in GOVERNANCE.md", but GOVERNANCE.md "Character Set" only holds a pointer, not the tier lists. The message now names the two places a classification actually lives: the comment-and-doc-style skill's "Character set" section and the gate's TIER1/TIER2/TIER3 tables in prose_lint.py, qualified by the hub repository (ptr727/ProjectTemplate) so a downstream repo running the gate from the hub's action checkout still points at the right source.

Changes:

  • Add a module-level CHARSET_CLASSIFY constant beside the tier tables and splice it into the charset-unknown message, replacing the GOVERNANCE.md tail.
  • Add a TestTierTables case that pins the new message text and asserts GOVERNANCE.md is no longer named.

I verified the change end to end: the skill heading is exactly ## Character set, the live finding message renders as expected, the new test passes, it would fail against the old message, no other test or doc pins the old wording, the constant is ASCII-clean and UPPER_SNAKE per convention, and quote/escaping choices are ruff-stable.

File Description
.github/​actions/​prose-gate/​prose_lint.py Adds CHARSET_CLASSIFY constant and redirects the charset-unknown message from GOVERNANCE.md to the skill section and tier tables, naming the hub.
tests/​test_prose_lint.py Adds a test asserting the new message names the skill section and tier tables and no longer mentions GOVERNANCE.md.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ptr727

ptr727 commented Oct 1, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@ptr727
ptr727 merged commit db4dbd0 into develop Oct 1, 2026
11 checks passed
@ptr727
ptr727 deleted the feature/auto-2171 branch October 1, 2026 06:34
ptr727 added a commit that referenced this pull request Oct 1, 2026
## Summary

Promotes develop to main, carrying the pull requests below, each already
reviewed and merged into develop.

- [#2203](#2203): Strip
every heredoc body a line opens in the wait-loop rule.
- [#2216](#2216): Point
the charset-unknown message at where a tier is classified.
- [#2218](#2218): Name the
leftover old tree when the Bash loader cannot remove it.
- [#2227](#2227): End the
guard's stdin redirect scan at a trailing comment.
- [#2230](#2230): Tell
apart the causes a labels payload is refused for.
- [#2232](#2232): Correct
the task names and pointers in the Python tasks snippet header.
- [#2234](#2234): Drop the
stale private-repository note from PhotoCleaner's registry entry.
- [#2237](#2237): State
the bootstrap's archive live channel in two skills.
- [#2239](#2239): Stop the
promotion count on a failed fetch in backlog-burndown.
- [#2241](#2241): Render
the include walk once per `build_dist.py --check` run.
- [#2243](#2243): Have the
tree check call `escapes_repo_root` and refuse a symlinked component.
- [#2247](#2247): Refuse a
Windows drive component anywhere in a tree path.
- [#2222](#2222): Tick the
adopted repos in the merge-bot and gate rollout stages.
- [#2121](#2121): Refuse a
dangling remote-tracking target in `local_review`.
- [#2249](#2249): Ignore a
quoted separator when the guard finds a loop's `done`.

Closes #2112
Closes #2171
Closes #1790
Closes #2152
Closes #1372
Closes #2149
Closes #1082
Closes #1772
Closes #1310
Closes #1379
Closes #1452
Closes #2244
Closes #2168
Closes #2106
Closes #2207

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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