Skip to content

feat: add Speciesism rule set#19

Closed
stuckvgn wants to merge 1 commit intovale-cli:masterfrom
stuckvgn:feat/speciesism-patterns
Closed

feat: add Speciesism rule set#19
stuckvgn wants to merge 1 commit intovale-cli:masterfrom
stuckvgn:feat/speciesism-patterns

Conversation

@stuckvgn
Copy link
Copy Markdown

Summary

This PR adds a Speciesism.yml rule file covering language patterns that reference animal harm or frame animals as objects/tools, in cases where clearer, equally expressive alternatives exist.

Two categories:

Violent animal idioms — phrases that normalize cruelty toward animals, with professional alternatives:

  • kill two birds with one stoneaccomplish two things at once
  • beat/flog a dead horsebelabor the point
  • skin a catmany ways to approach this
  • bring home the baconearn a living
  • sacred cowuntouchable topic
  • scapegoat/scapegoatingfall guy / wrongly blaming
  • ...and others

Technical terms with animal origins — where a precise technical alternative is already standard:

  • canary deployment/releaseprogressive rollout / incremental deployment
  • monkey patch/patchingruntime patch / dynamic patch
  • duck typingstructural typing / implicit typing
  • dogfoodingself-testing / using your own product
  • cattle vs petsephemeral vs persistent
  • stack canary / canary valuesentinel value / guard value

Precedent

This is becoming an emerging standard in developer tooling. webpack merged equivalent rules to their Vale linting config on Feb 25, 2026: webpack/webpack.js.org#7880. The same patterns are being added upstream in retextjs/retext-equality (which powers the JavaScript alex package): retextjs/retext-equality#130.

The academic grounding is solid — Hagendorff et al. (2023) "Speciesist bias in AI" (doi:10.1007/s43681-023-00380-w) documents how normalized animal language in technical writing reinforces broader speciesist attitudes.

Notes

  • ignorecase: true is set — handles Kill Two Birds... / Canary Deployment etc.
  • All terms have multiple alternatives so users aren't forced into one replacement
  • Follows the existing extends: substitution pattern used by Race.yml and others

Adds speciesism language patterns covering two categories:

1. Violent animal idioms — phrases that normalize animal harm
   (e.g. "kill two birds with one stone", "skin a cat", "beat a dead horse")
   with clearer, equally expressive alternatives.

2. Technical metaphors with animal origins — terms where a precise
   technical alternative already exists and is widely understood
   (e.g. canary deployment → progressive rollout, monkey patch →
   runtime patch, duck typing → structural typing).

These patterns mirror the rules merged into webpack's Vale config on
Feb 25, 2026 (webpack/webpack.js.org#7880) and align with the
speciesism.yml PR open on retextjs/retext-equality (#130), the
upstream package that powers alex.
@stuckvgn
Copy link
Copy Markdown
Author

Friendly ping @jdkato — this adds a Speciesism rule set to alex, following the same pattern as the existing Ableism, Racism, and Sexism rule sets. Would love your thoughts when you get a chance.

@stuckvgn
Copy link
Copy Markdown
Author

Closing this PR — on reflection, this change may not be the right fit for this project. Thanks for your time!

@stuckvgn stuckvgn closed this Mar 14, 2026
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.

1 participant