Skip to content

actionability-weak-verbs โ€” Weak Directive Detection โ€‹

Severity: INFO ยท Auto-fix: No ยท Category: ๐Ÿ’ช Actionability

What It Does โ€‹

Detects two categories of weak language in instructions:

  1. Hedged directive phrases โ€” words that soften a command when a direct imperative is clearer
  2. Excessive passive voice โ€” fires when 6+ passive constructions appear in the same prompt

Detected Weak Directive Phrases โ€‹

PatternIssueBetter alternative
consider, try to, attempt to, endeavor toWeak directive โ€” sounds optionalUse the imperative form directly
you might want toHedged instructionState the requirement directly
feel free toUnnecessary hedgeRemove it entirely
it would be good/nice/helpful/great if/toIndirect instructionState what you want
if possibleConditional hedgeCommit to the instruction
whenever possible, whenever you canWeak conditionalUse always or state the actual condition

Passive Voice Detection โ€‹

Passive voice is flagged only when more than 5 passive constructions appear in a single prompt. A single "is returned" or "was processed" won't trigger a finding โ€” the rule targets prompts that are predominantly passive.

Why the 5+ threshold?

A few passive constructions are fine and sometimes clearer ("The result is returned as JSON"). The rule catches prompts that have systematically avoided active voice throughout, not individual instances.

Examples โ€‹

Weak directives

Consider adding error handling if possible.
You might want to include examples when you can.
Feel free to add comments to explain the code.
It would be nice if you could return JSON.
Try to keep the function under 30 lines.

Findings:

[ INFO ] actionability-weak-verbs (line 1)  'consider' โ€” weak directive, use imperative
[ INFO ] actionability-weak-verbs (line 1)  'if possible' โ€” commit to the instruction
[ INFO ] actionability-weak-verbs (line 2)  'you might want to' โ€” state directly
[ INFO ] actionability-weak-verbs (line 2)  'whenever you can' โ€” use 'always' or state the condition
[ INFO ] actionability-weak-verbs (line 3)  'feel free to' โ€” unnecessary hedge, remove
[ INFO ] actionability-weak-verbs (line 4)  'it would be nice if' โ€” indirect instruction
[ INFO ] actionability-weak-verbs (line 5)  'try to' โ€” weak directive, use imperative

Direct imperatives

Add error handling.
Include 2 input/output examples.
Add inline comments explaining non-obvious logic.
Return a JSON object.
Keep the function under 30 lines.

Excessive passive voice (6+ constructions)

Data is read from the file. Errors are caught by the handler. Results are stored
in the cache. Each record is processed by the validator. The output is returned
to the caller. Performance is measured by the benchmark suite.

Finding (single finding for the whole prompt):

[ INFO ] actionability-weak-verbs (line -)
  Multiple passive voice constructions (6) detected. Use active voice for clarity.

Active voice

Read data from the file. Catch errors in the handler. Store results in the cache.
Validate each record. Return the output to the caller. Benchmark performance.

False Positives โ€‹

"Consider" for genuine options โ€” "Consider one of these three approaches: A, B, or C" is a legitimate use of consider (presenting options, not a weak command). The rule doesn't distinguish intent.

if possible as a real conditional โ€” "Cache the result if possible (only if disk space > 100MB)" is a real conditional, not a hedge. Rephrase to make the condition explicit: "Cache the result when disk space exceeds 100MB."

Technical passive voice โ€” "The value is clamped to [0, 1]" is standard technical writing that's clearer than the active form. A few of these won't trigger the rule (threshold is 6+).

Configuration โ€‹

yaml
rules:
  actionability_weak_verbs: true   # or false to disable

Disable (useful for creative writing or soft-instruction prompts):

yaml
rules:
  actionability_weak_verbs: false

Released under the Apache 2.0 License.