fix: add unnecessary negative contrast detection to voice linting

- New lint check: 'doesn't just X. They Y' pattern (Claude rhetorical crutch)
- Fixed last instance in judgment essay: 'doesn't just lose income. They lose'
  → 'loses the acknowledgment... The income is secondary.'
- Updated voice-check skill dimension 2 with the pattern description
- Updated AGENTS.md with the new check
- Tightened regex to avoid false positives on legitimate 'isn't only' framing

🤖 Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
This commit is contained in:
Ken
2026-05-27 00:46:21 +00:00
parent a951c00e35
commit 69390e319b
4 changed files with 26 additions and 2 deletions
+1
View File
@@ -33,6 +33,7 @@ with full awareness of what's wrong.
- Em-dash density (>5 per post = FAIL, Claude fingerprint) - Em-dash density (>5 per post = FAIL, Claude fingerprint)
- AI trigger words (delve, tapestry, nuanced, landscape, etc.) - AI trigger words (delve, tapestry, nuanced, landscape, etc.)
- Hedging phrases ("it's worth noting", "one might argue") - Hedging phrases ("it's worth noting", "one might argue")
- Unnecessary negative contrast ("doesn't just X. They Y" -- Claude crutch)
- Filler transitions ("in conclusion", "that being said") - Filler transitions ("in conclusion", "that being said")
- Resolution closers ("the key takeaway", "at the end of the day") - Resolution closers ("the key takeaway", "at the end of the day")
- Missing receipts (0 links + 0 code + 0 URLs in 500+ words = WARN) - Missing receipts (0 links + 0 code + 0 URLs in 500+ words = WARN)
+6
View File
@@ -61,6 +61,12 @@ Does the writing hedge when it should assert? Look for:
clearly believes clearly believes
- Passive constructions that hide the actor ("it was found" vs "I found") - Passive constructions that hide the actor ("it was found" vs "I found")
- False balance ("on the other hand" when there IS no valid other hand) - False balance ("on the other hand" when there IS no valid other hand)
- **Unnecessary negative contrast**: the "doesn't just X. They Y" or "isn't
only X. It's Y" pattern. This is a Claude rhetorical crutch that creates
the *appearance* of depth through contrast without saying anything the
second clause didn't already imply. Example: "A doctor doesn't just lose
income. They lose the acknowledgment that..." Fix: state Y directly.
"A doctor loses the acknowledgment that..."
The voice profile says: "High, earned. States opinions as conclusions from The voice profile says: "High, earned. States opinions as conclusions from
experience, not as positions to defend." experience, not as positions to defend."
+18 -1
View File
@@ -94,7 +94,24 @@ else
echo "" echo ""
fi fi
# --- CHECK 5: Resolution closers --- # --- CHECK 5: Unnecessary negative contrast ("doesn't just X, they Y") ---
NEGCONTRAST_PATTERNS="doesn.t just .{1,40}\. (They|It|She|He|We)|isn.t just .{1,40}\. (It|They)|doesn.t just .{1,40}, (but|it.s|they)|not just about .{1,40}\. (It|They)|more than just .{1,40}\. (It|They)"
NEGCONTRASTS=$(echo "$BODY" | grep -oiP "$NEGCONTRAST_PATTERNS" | sort | uniq -c | sort -rn)
if [[ -n "$NEGCONTRASTS" ]]; then
echo "WARN Unnecessary negative contrast patterns found:"
echo "$NEGCONTRASTS" | sed 's/^/ /'
echo " Pattern: \"doesn't just X. They Y\" -- Claude rhetorical crutch."
echo " Fix: State Y directly. The contrast adds nothing."
echo " Lines:"
grep -niP "$NEGCONTRAST_PATTERNS" "$FILE" | head -10 | sed 's/^/ /'
echo ""
WARNINGS=$((WARNINGS + 1))
else
echo "OK No unnecessary negative contrast"
echo ""
fi
# --- CHECK 6: Resolution closers ---
CLOSER_PATTERNS="the key takeaway|the takeaway here|at the end of the day|what this means is|the bottom line|the real question is" CLOSER_PATTERNS="the key takeaway|the takeaway here|at the end of the day|what this means is|the bottom line|the real question is"
CLOSERS=$(echo "$BODY" | grep -oiP "$CLOSER_PATTERNS" | sort | uniq -c | sort -rn) CLOSERS=$(echo "$BODY" | grep -oiP "$CLOSER_PATTERNS" | sort | uniq -c | sort -rn)
if [[ -n "$CLOSERS" ]]; then if [[ -n "$CLOSERS" ]]; then
@@ -14,7 +14,7 @@ AI raises the floor dramatically. It does not flatten the ceiling.
## The Dignity Problem (Most Underappreciated) ## The Dignity Problem (Most Underappreciated)
The threat to engineers isn't only economic. When expert judgment stops being consulted, something human is lost: the social recognition that hard-won expertise deserves. A doctor who loses clinical judgment to AI doesn't just lose income. They lose the acknowledgment that fifteen years of intuition was worth something. The threat to engineers isn't only economic. When expert judgment stops being consulted, something human is lost: the social recognition that hard-won expertise deserves. A doctor who loses clinical judgment to AI loses the acknowledgment that fifteen years of intuition was worth something. The income is secondary.
This is a different kind of harm than job displacement and deserves its own conversation. This is a different kind of harm than job displacement and deserves its own conversation.