Skip to content

Commit 178fe81

Browse files
committed
chore: add canonical .claude/rules and .claude/skills from structured-coding-with-ai
1 parent f8160b2 commit 178fe81

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

.claude/rules/advocacy-domain.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
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

Comments
 (0)