Repository navigation
Narrow the Dale passive-voice rule to sentences that can be made active without inventing an actor - #1772
Merged
Conversation
…ve without inventing an actor The rule flagged every passive sentence and told the writer to use active voice. To clear the finding, a restyle pass rewrote passives that report a past or completed action by an unnamed actor, adding "you", "someone", or the product as the actor. "This was pre-created in the Credential Profiles page" became "You pre-created this", which says the reader did it. The rule now flags a passive only if it can be rewritten in active voice without changing its meaning. The reader counts as the actor when the sentence tells them what to do, so an instruction in the passive is still flagged and becomes a command. A passive whose actor is unstated and that is not an instruction is not flagged. - passive-voice.yml: new message and reason. The reason states the test and carries no examples, so the model has nothing to copy the shape of. - netwrix_style_guide.md: add an exception under "Active voice" for past or completed actions with an unknown or irrelevant actor, with a Do and Don't pair. - lint-rules.md: regenerated with gen-lint-digest.mjs. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
Code ReviewNo correctness issues found.
There are no build, routing, workflow, or security changes. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Dale passive-voice rule flags every passive sentence and tells the writer to use active voice. That pushes whoever fixes the finding to add an actor the page never named. This PR changes the rule to flag a passive only when it can be rewritten in active voice without changing its meaning.
Why
During a restyle pass on the Threat Manager 3.4 docs, agents cleared passive-voice findings by rewriting old sentences with an invented actor. A scan of the changed lines found 62 of them across 33 pages: 50 turned a past or completed action into "you ..." or "someone ...", and 12 named the product as the actor.
The rule gave no way to leave these alone. Its whole text was "Don't use passive voice. Use active voice instead." The style guide has the same gap: its example names a known actor ("The audit logs are retrieved by the Data Collection Account") and says nothing about a past action by an unknown actor.
The change
.claude/skills/dale/rules/passive-voice.yml: newmessageandreason. The reason states one test: flag a passive only if it can be rewritten in active voice without changing its meaning. The reader counts as the actor when the sentence tells them what to do, so an instruction in the passive is still flagged and becomes a command. If the rewrite would need any other actor the sentence doesn't state, the sentence isn't flagged. The reason carries no examples on purpose, so the model has nothing to copy the shape of.netwrix_style_guide.md: an exception under "Active voice" for past or completed actions with an unknown or irrelevant actor, with a Do and Don't pair for writers..claude/references/lint-rules.md: regenerated withscripts/quality/gen-lint-digest.mjsbecause it quotes the rule text.--checkreports no drift.What changes in practice
Testing
I ran
scripts/quality/check.mjson a six-sentence test page (not committed), once with the old rule and twice with the new one. Dale's verdicts are cached by page content and rules, so I changed the control sentence between the two new runs to force a real second run. Both runs gave the same result: the two flagged sentences above, and none of the others. The old rule flagged all five passives.This is a small synthetic page. Dale is model-based and its verdicts can vary between runs, so I'd value a second opinion on a few real pages.
Notes for reviewers
🤖 Generated with Claude Code