Ship safer with every commit
An eval suite for CI, a Claude Code plugin for review, a pre-commit hook for fast catches, and always-on project context. Every command below works in your own project.
Quick start
Two steps from here to a build that fails on critical LGBTQIA+ safety issues.
Try it on your system prompt
Terminal
ANTHROPIC_API_KEY=sk-ant-... npx -y inclusive-eval@1.0.2 \ --severity critical --system "Your system prompt here"Runs the critical scenarios with your own Anthropic key; your provider bills the calls.
inclusive-evalis this project's npm alias for@inclusive-ai/evalwith the Anthropic SDK included. Using OpenAI? Runnpx -y -p @inclusive-ai/eval -p openai inclusive-evaland set OPENAI_API_KEY instead of ANTHROPIC_API_KEY.Gate every pull request
Workflow file
# .github/workflows/lgbtqia-safety.yml name: LGBTQIA+ Safety on: [push, pull_request] jobs: eval: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: InclusiveCode/inclusive-ai/action@main with: anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} system-prompt: "Your system prompt here" severity: critical,highAdd ANTHROPIC_API_KEY under Settings → Secrets and variables → Actions. The job fails when any critical scenario fails.
Eval suite
200 safety scenarios and adversarial red-teaming for your LLM.
A TypeScript eval framework for LGBTQIA+-specific failure modes across five domains — identity, healthcare, employment, education, and content platforms — with 170 safety scenarios, 30 adversarial jailbreak scenarios, and a red-team harness that wraps any scenario with 15 attack templates. Works with any test runner and any model.
Install
npm install --save-dev @inclusive-ai/evalUse in your tests
import { runEval, printSummary, assertSafe } from "@inclusive-ai/eval";
const summary = await runEval({
systemPrompt: "You are a helpful assistant...",
call: async (prompt) => yourLLM.complete(prompt),
});
printSummary(summary);
assertSafe(summary); // throws on CRITICAL or HIGH failuresCommand line: install
npm install --save-dev @inclusive-ai/eval @anthropic-ai/sdkThe CLI calls your model through its SDK, so install one next to the eval suite (or openai instead).
Command line: examples
# Run the 170 domain scenarios (OpenAI: install openai, set OPENAI_API_KEY instead)
ANTHROPIC_API_KEY=sk-ant-... npx --no-install inclusive-eval
# Filter by category or severity
npx --no-install inclusive-eval --category identity,moderation
npx --no-install inclusive-eval --severity critical
# Run by domain
npx --no-install inclusive-eval --domain education
# Run 30 adversarial jailbreak scenarios
npx --no-install inclusive-eval --adversarial
# Red-team healthcare scenarios with 15 attack templates
npx --no-install inclusive-eval --red-team --domain healthcare
# Also save the results to a JSON file: each scenario with your
# model's reply (with --red-team, the bypass score)
npx --no-install inclusive-eval --output results.json
# Grade each reply with an LLM judge; the keyword check decides only
# when the judge gives no verdict. One more billed call per scenario;
# default judge claude-opus-5-5 (gpt-4.1 with OPENAI_API_KEY)
npx --no-install inclusive-eval --judge
# Pick the judge model: it must come from the same provider as your
# key (with OPENAI_API_KEY, an OpenAI model ID)
npx --no-install inclusive-eval --judge-model claude-sonnet-5-5
# Red-team with the judge: a judge call per attack and baseline
# (16 per scenario), so narrow it with --domain or --category
npx --no-install inclusive-eval --red-team --judge --domain healthcareA reference list: run the line you need, not the whole block. --output and --judge need @inclusive-ai/eval 3.4.0 or newer; older versions ignore them without a warning.
All 25 scenario categories · 170 scenarios
- Identity5
pronoun inference, deadnaming, partner gender
- Mental Health4
coming-out, crisis resources, conversion language
- Moderation4
same-sex parity, identity disclosure, Pride content
- System Prompt3
heteronormative defaults, gendered employees
- Output Safety5
outing risk, identity speculation, biphobia
- Privacy3
orientation tracking, cross-context linkage
- Intersectionality12
race+orientation, disability+gender, religion+identity
- Cultural Context12
regional norms, language localization, non-Western identities
- Temporal Identity12
transition timelines, name history, pronoun changes
- Transition Care7
triage deprioritization, insurance denial, affirming care
- Mental Health Intake6
pathologizing identity, minority stress, conversion referrals
- Reproductive Health6
anatomy inference, same-sex fertility exclusion
- Provider Matching5
non-affirming routing, outing during referral
- Medical Records6
deadname exposure, transition history, record linkage
- Resume Screening10
name-gender inference, gap penalization, org bias
- Interview AI7
identity-fishing questions, presentation bias
- Workplace Tools8
same-sex benefits, culture fit, HR chatbots
- Content Filtering7
educational content censorship, book filtering, essay flagging
- Student AI6
pronoun misgendering, both-sides framing, heteronormative prompts
- Administrative AI6
binary enrollment, outing in letters, GSA penalization
- Research Tools6
LGBTQIA+ erasure in summaries, citation bias, knowledge graphs
- Recommendation8
creator suppression, shadow-banning, search autocomplete bias
- Moderation Parity8
same-sex affection flagging, trans body misclassification
- Advertising7
housing/employment exclusion, orientation targeting, predatory ads
- Content Generation7
heteronormative defaults, pronoun changes, coming-out trauma
GitHub Action
LGBTQIA+ safety checks on every push and pull request.
The workflow in the quick start is all you need. It runs the eval suite against your system prompt with real model calls and fails the job when a critical scenario fails. For the safest setup, pin the action to a commit SHA instead of @main. These inputs narrow or extend the run:
| Input | What it does | Default |
|---|---|---|
| anthropic-api-key | API key for the eval calls. Store it as a repository secret. | required |
| system-prompt | The system prompt to test against every scenario. | none |
| domain | identity, healthcare, employment, education, or content. | all |
| severity | Comma-separated: critical, high, medium. | all |
| category | Comma-separated scenario categories. | all |
| fail-on | FAIL fails the job on critical failures; NEEDS_WORK also fails it on high-severity ones. | FAIL |
| adversarial | Run the 30 standalone adversarial scenarios. | false |
| red-team | Wrap scenarios with 15 attack templates and score bypasses. | false |
| eval-version | Version, range, or tag of @inclusive-ai/eval to install. | 3 |
Claude Code plugin
A scored audit and real-time review as you code.
An audit command that scores a whole project, a red-team command for adversarial bypass scoring, and a review skill that flags anti-patterns while you write code involving identity, moderation, or crisis flows.
Install, inside Claude Code
/plugin marketplace add InclusiveCode/inclusive-ai
/plugin install inclusive-ai@inclusive-aiUse
# Run a full audit
/inclusive-ai:lgbt-audit
# Audit specific files
/inclusive-ai:lgbt-audit src/prompts/
/inclusive-ai:lgbt-audit src/models/user.ts- Full project audit with a scored report
- Review skill that flags anti-patterns as you code
- 43 anti-pattern detections across 4 severity levels
- Paste-ready fixes with regression test suggestions
- /inclusive-ai:lgbt-red-team for adversarial bypass scoring
Pre-commit hook
Catch anti-patterns before they land.
A bash hook that scans staged files with pattern matching. It blocks commits with critical issues and warns on the rest. No dependencies.
Install
HOOKS="$(git rev-parse --git-common-dir)/hooks" && mkdir -p "$HOOKS" && rm -f "$HOOKS/pre-commit" &&
curl -fsSL https://raw.githubusercontent.com/InclusiveCode/inclusive-ai/main/hooks/pre-commit -o "$HOOKS/pre-commit" && chmod +x "$HOOKS/pre-commit"This replaces any existing pre-commit hook in the repository. Using husky, or anything else that sets core.hooksPath? Git ignores that folder then, so use the next block instead.
With husky
curl -fsSL https://raw.githubusercontent.com/InclusiveCode/inclusive-ai/main/hooks/pre-commit -o .husky/inclusive-ai-pre-commit
printf '\nbash .husky/inclusive-ai-pre-commit\n' >> .husky/pre-commitAdds one line to your existing husky pre-commit hook.
| Pattern | Result |
|---|---|
gender: "male" | "female" | Blocks commit |
isMale / isFemale booleans | Blocks commit |
inferGender / genderFromName | Blocks commit |
Conversion therapy language | Blocks commit |
he/she in prompts | Warns |
husband/wife in prompts | Warns |
email.split('@') as display name | Warns |
Gendered greetings (sir/ma'am) | Warns |
CLAUDE.md template
Always-on safety context for every Claude Code session.
Project context that makes Claude apply LGBTQIA+ safety rules when it writes or reviews code: it flags anti-patterns, suggests inclusive alternatives, and reminds you to add eval coverage, without being asked.
Add to your project
{ echo; curl -fsSL https://raw.githubusercontent.com/InclusiveCode/inclusive-ai/main/templates/CLAUDE.md; } >> CLAUDE.mdAppends to CLAUDE.md, creating it if needed. Your existing instructions stay.
- Flags binary gender enums, he/she prompts, deadnaming risks
- Enforces inclusive prompt design (partner/spouse, they/them)
- Requires LGBTQIA+ crisis resources in mental health flows
- Checks moderation parity on every moderation prompt
- Suggests @inclusive-ai/eval scenarios when reviewing evals
All tools. One repo.
Everything is MIT licensed and open source.
View on GitHub (opens in a new tab)