Handle EOL-Only Prose Diffs - #881
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the prose-gate scoping logic so a CRLF↔LF renormalization commit doesn’t get treated as “every line changed,” and adds regression coverage plus documentation updates to reflect hub-hosted repo-config/ paths.
Changes:
- Add
--ignore-cr-at-eolto thegit diffused byprose_lint.changed_lines()so EOL-only diffs don’t expand the scope. - Add a Git-backed unit test covering EOL-only renormalization vs genuine content edits.
- Update operational workflow skill references (and generated copies) to describe
repo-config/as hub-hosted; refresh the plugin source digest.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/tests/test_prose_lint.py | Adds an integration-style regression test for EOL-only diffs vs real prose edits. |
| .github/actions/prose-gate/prose_lint.py | Adjusts diff invocation to ignore CR-at-EOL changes when computing changed line scope. |
| .github/skills/operational-vs-release-workflow/references/branch-protection-and-promotion.md | Updates documentation to explicitly reference hub checkouts and hub-hosted repo-config/ paths. |
| .agents/skills/operational-vs-release-workflow/references/branch-protection-and-promotion.md | Mirrors the same doc update for the agent skill distribution copy. |
| .claude-plugin/fleet-skills/skills/operational-vs-release-workflow/references/branch-protection-and-promotion.md | Mirrors the same doc update for the Claude plugin skill copy. |
| .claude-plugin/fleet-skills/.source-digest | Updates the digest to match the regenerated plugin content. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (1)
scripts/tests/test_prose_lint.py:1743
- The new test creates a temporary git repo and commits, but it doesn’t disable commit signing. If a developer has
commit.gpgsign=trueglobally,git commithere can fail (missing key/pinentry), making the test non-hermetic. Other tests in this file explicitly setcommit.gpgsign=falsefor this reason.
subprocess.run(["git", "-C", str(root), "config", "core.autocrlf", "false"], check=True)
subprocess.run(["git", "-C", str(root), "config", "user.name", "Test"], check=True)
subprocess.run(
["git", "-C", str(root), "config", "user.email", "test@example.invalid"], check=True
)
|
Suppressed findings (1)
Fixed in 87aa49c. The test now sets commit.gpgsign=false inside its temporary repository before committing. Review round: #881 (review) |
## Summary Promote the reviewed prose-gate and workflow-skill fixes from develop. - Ignore carriage-return-only differences when scoping prose findings. - Keep genuine content changes in the prose diff scope. - Describe repo-config paths consistently as hub-hosted. Closes #869. Closes #870. ## Included Pull Requests - #881
Summary
Addresses #869 and #870.
Verification
The executor's Docker daemon could not expose the worktree to the read-only container mounts, so the editorconfig-checker, ShellCheck, and PSScriptAnalyzer container gates were unavailable locally.