|
| 1 | +# Advocacy Domain Language and Bounded Contexts |
| 2 | + |
| 3 | +This is the domain language reference for animal advocacy software. AI agents drift from domain terminology toward generic synonyms — "order" instead of "campaign," "user" instead of "activist," "report" instead of "investigation." Language drift in advocacy software is not a style issue; it causes miscommunication across coalition partners who rely on precise terminology, and it obscures the legal and ethical distinctions between different types of operations. |
| 4 | + |
| 5 | +## Ubiquitous Language Dictionary |
| 6 | + |
| 7 | +Use these terms consistently in code, documentation, conversations, and AI prompts. NEVER introduce synonyms. |
| 8 | + |
| 9 | +- **Campaign** — An organized effort to achieve a specific advocacy goal (legislative change, corporate policy reform, public awareness). Has defined start, milestones, and success criteria. |
| 10 | +- **Investigation** — Covert documentation of animal exploitation conditions. Legally sensitive. All data classified as potential evidence. Distinguished from "research" or "reporting." |
| 11 | +- **Coalition** — A formal or informal alliance of multiple organizations working toward a shared goal. Each member has its own risk profile, data policies, and operational boundaries. |
| 12 | +- **Witness** — A person who provides testimony about animal exploitation conditions. May be an investigator, a whistleblower, or a bystander. Identity requires maximum protection. |
| 13 | +- **Testimony** — A witness's account of observed conditions. Subject to consent verification before any use or display. |
| 14 | +- **Sanctuary** — A facility providing permanent care for rescued animals. Distinguished from "shelter" (temporary) or "foster" (individual-based). |
| 15 | +- **Rescue** — The act of removing animals from exploitative conditions. May have distinct legal status depending on jurisdiction. |
| 16 | +- **Liberation** — Direct action to free animals. Carries specific legal implications distinct from "rescue." |
| 17 | +- **Direct Action** — Physical intervention in animal exploitation. Legally distinct from campaigning, lobbying, or public education. |
| 18 | +- **Undercover Operation** — An investigation conducted by an operative embedded within an exploitative facility. Highest legal risk category. |
| 19 | +- **Ag-Gag** — Laws criminalizing undercover investigation of agricultural operations. Determines legal exposure for investigation data. |
| 20 | +- **Factory Farm** — Industrial animal agriculture facility. Use this term, not euphemisms like "farm" or "production facility." |
| 21 | +- **Slaughterhouse** — Facility where animals are killed for commercial purposes. Use this term precisely. |
| 22 | +- **Companion Animal** — Animals kept primarily for companionship (dogs, cats). Distinct legal and ethical framework from farmed animals. |
| 23 | +- **Farmed Animal** — Animals raised for food, fiber, or other commercial products. Distinguished from "livestock" (industry framing). |
| 24 | +- **Evidence** — Documentation (footage, records, testimony) of animal exploitation conditions with potential legal use. |
| 25 | + |
| 26 | +## Bounded Contexts |
| 27 | + |
| 28 | +These are DIFFERENT domains with different models, different rules, and different security requirements. Do not merge them. Do not allow data to flow between them without explicit anti-corruption layers. |
| 29 | + |
| 30 | +**Investigation Operations** — Covert data collection, evidence management, investigator identity protection, chain of custody. Highest security classification. Data never flows outward without explicit declassification. Entities: Investigator, Operation, Evidence, Facility, ChainOfCustody. |
| 31 | + |
| 32 | +**Public Campaigns** — Public-facing advocacy actions, supporter engagement, media relations, petition management. Lower security requirements but high visibility. An "activist" in a public campaign is a fundamentally different entity than an "investigator" in an undercover operation — different data model, different risk profile, different access controls. Entities: Campaign, Supporter, Action, Petition, MediaAsset. |
| 33 | + |
| 34 | +**Coalition Coordination** — Multi-organization planning, shared resource management, joint strategy development. Data crosses organizational boundaries and must be governed by the strictest partner's policies. Entities: Coalition, PartnerOrganization, SharedResource, JointAction, DataSharingAgreement. |
| 35 | + |
| 36 | +**Legal Defense** — Legal case management, attorney-client privileged communications, court filings, expert witness coordination. Attorney-client privilege imposes its own data handling requirements that override other policies. Entities: Case, Attorney, Defendant, Filing, PrivilegedCommunication. |
| 37 | + |
| 38 | +## Anti-Corruption Layers |
| 39 | + |
| 40 | +When data must cross bounded context boundaries, use explicit translation layers. An investigation's raw evidence becomes a "media asset" in a public campaign only through a deliberate transformation that strips operational metadata. A coalition partner's shared intelligence becomes an investigation lead only through a documented intake process. NEVER allow direct imports between contexts — AI agents will optimize for expedience and import directly rather than translating through the anti-corruption layer. Each boundary crossing must be auditable. |
| 41 | + |
| 42 | +## Entity Definitions |
| 43 | + |
| 44 | +Core entities shared across the domain (each context may have its own projections): |
| 45 | +- **Activist** — A person engaged in advocacy work. Base identity entity. |
| 46 | +- **Organization** — An advocacy group. Has its own policies, risk profile, and operational scope. |
| 47 | +- **Campaign** — A coordinated advocacy effort with defined goals. |
| 48 | +- **Investigation** — A covert documentation operation. |
| 49 | +- **Witness** — A person providing testimony. Identity is maximally protected. |
| 50 | +- **Evidence** — Documented proof of exploitation conditions. |
| 51 | +- **Coalition** — An alliance of organizations. |
| 52 | +- **Sanctuary** — A permanent animal care facility. |
| 53 | + |
| 54 | + |
| 55 | +## Compassionate Language — No Speciesist Idioms |
| 56 | + |
| 57 | +Code, documentation, comments, commit messages, and variable names must use compassionate, non-speciesist language. AI agents frequently generate common English idioms that normalize animal violence — reject these and use alternatives. |
| 58 | + |
| 59 | +**Prohibited patterns** (with alternatives): |
| 60 | +- "kill two birds with one stone" → "accomplish two things at once" |
| 61 | +- "beat a dead horse" → "belabor the point" |
| 62 | +- "more than one way to skin a cat" → "more than one way to solve this" |
| 63 | +- "let the cat out of the bag" → "reveal the secret" |
| 64 | +- "like shooting fish in a barrel" → "effortless task" |
| 65 | +- "guinea pig" (as test subject) → "test subject" or "early adopter" |
| 66 | +- "open a can of worms" → "open a difficult topic" |
| 67 | +- "wild goose chase" → "futile search" |
| 68 | +- "cattle vs. pets" → "ephemeral vs. persistent" |
| 69 | +- "pet project" → "side project" |
| 70 | +- "master/slave" → "primary/replica" |
| 71 | +- "whitelist/blacklist" → "allowlist/denylist" |
| 72 | +- "grandfathered" → "legacy" |
| 73 | + |
| 74 | +This is not exhaustive — 60+ patterns are enforced by the Open Paws no-animal-violence tooling ecosystem: |
| 75 | +- Semgrep rules: https://github.com/Open-Paws/semgrep-rules-no-animal-violence |
| 76 | +- ESLint plugin: https://github.com/Open-Paws/eslint-plugin-no-animal-violence |
| 77 | +- Vale style rules: https://github.com/Open-Paws/vale-no-animal-violence |
| 78 | +- Pre-commit hook: https://github.com/Open-Paws/no-animal-violence-pre-commit |
| 79 | +- GitHub Action: https://github.com/Open-Paws/no-animal-violence-action |
| 80 | +- VS Code extension: https://github.com/Open-Paws/vscode-no-animal-violence |
| 81 | +- Reviewdog runner: https://github.com/Open-Paws/reviewdog-no-animal-violence |
| 82 | + |
| 83 | +Core rule definitions: https://github.com/Open-Paws/no-animal-violence |
0 commit comments