Agent skill

teach-charter

Set up the inclusion plugin for your project. Detects your stack, captures scope decisions, and creates a config that evolves with your project. Run once to get started, revisit to update decisions.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/teach-charter

SKILL.md

Teach Charter (Setup & Configuration)

Help users set up the inclusion plugin for their project, capturing context and scope decisions that reduce noise over time.

Philosophy

This plugin should be a conversation, not a lecture.

Users make conscious decisions about scope. If they've decided "we're US-only," we shouldn't nag them about i18n every time. But we should:

  • Record the decision with rationale
  • Make it easy to revisit later
  • Never let core dignity principles be disabled

What This Skill Does

  1. Discovers project context (stack, existing tooling)
  2. Asks about scope and priorities
  3. Creates .inclusion-config.md with decisions documented
  4. Enables future checks to respect those decisions

Process

1. Detect Project Context

Scan for:

  • package.json, requirements.txt, Gemfile, etc. → Stack
  • react-intl, i18next, gettext → i18n setup
  • eslint-plugin-jsx-a11y, axe-core → a11y tooling
  • Test directories → Where fixtures live
  • Docs directories → Where documentation lives
  • decisions/, docs/decisions/, docs/adr/ → Where decision records live

2. Present Findings for Correction

Show what was detected and let user correct:

markdown
## Project Analysis

### Detected (correct if wrong)

| Setting | Detected | Correct? |
|---------|----------|----------|
| Framework | React 18 | |
| i18n setup | None detected | |
| a11y tooling | eslint-plugin-jsx-a11y | |
| Test location | src/__tests__/ | |
| Docs location | docs/ | |
| Decisions location | decisions/ | |

3. Capture Scope Decisions

Ask about intentional scope limitations:

markdown
### Scope Questions

**Target audience:**
- [ ] Global (all regions, languages)
- [ ] Primarily US
- [ ] Primarily EU
- [ ] Specific regions: ___

**Is i18n in scope?**
- [ ] Yes, we need international support
- [ ] No, US-only for now (suppress i18n warnings)
- [ ] Later - remind us in ___ months

**Is RTL support in scope?**
- [ ] Yes
- [ ] No (suppress RTL warnings)
- [ ] Later

**Accessibility standard:**
- [ ] WCAG 2.1 AA
- [ ] WCAG 2.1 AAA
- [ ] No specific standard
- [ ] Not prioritized right now (suppress some a11y warnings)

4. Capture Priorities

markdown
### What matters most right now?

Rank 1-5 (1 = highest priority), or leave blank to skip:

| Area | Priority |
|------|----------|
| Inclusive language in code/docs | ___ |
| Diverse names in examples | ___ |
| i18n readiness | ___ |
| Form inclusivity (gender, address, etc.) | ___ |
| Cultural assumptions in examples | ___ |

5. Generate Config File

Create .inclusion-config.md in project root:

markdown
# Inclusion Plugin Configuration

Generated by `/teach-charter` on [date]
Last updated: [date]

---

## Project Context

| Setting | Value |
|---------|-------|
| Framework | React 18 |
| i18n setup | None |
| a11y tooling | eslint-plugin-jsx-a11y |
| Test location | src/__tests__/ |
| Docs location | docs/ |
| Decisions location | decisions/ |

---

## Scope Decisions

Conscious decisions about what's in/out of scope. The plugin respects these.

| Area | Status | Rationale | Decided By | Date |
|------|--------|-----------|------------|------|
| i18n | Out of scope | US-only product for now | @user | 2024-01-15 |
| RTL | Out of scope | No RTL markets planned | @user | 2024-01-15 |
| WCAG compliance | In scope (AA) | Accessibility is priority | @user | 2024-01-15 |

---

## Priorities

| Area | Priority | Notes |
|------|----------|-------|
| Inclusive language | 1 | Highest priority |
| Form inclusivity | 2 | |
| Diverse examples | 3 | |
| i18n | — | Out of scope |

---

## Active Checks

Based on scope decisions:

- [x] language-check
- [x] names-check
- [x] examples-audit
- [ ] i18n-check (disabled: US-only)
- [x] inclusion-audit (will skip i18n section)

---

## Acknowledged Findings

Specific findings that have been reviewed and acknowledged.
These won't be flagged again.

| Finding | Location | Rationale | Date |
|---------|----------|-----------|------|
| US address format | registration.tsx:52 | Intentional, US-only | 2024-01-15 |

---

## Decision Log

### 2024-01-15: Initial Setup
Project configured as US-only SaaS. i18n out of scope for now.
Will revisit when international expansion planned.
— @user

---

## Review Schedule

- [ ] Review scope decisions: 2024-07-15 (6 months)

What Can't Be Disabled

These core checks always run regardless of config:

Always Active Why
Racial slurs/terms Core human dignity
Ableist slurs Core human dignity
Dehumanizing language Core human dignity
Hostile user-facing copy Basic UX principle

Users can deprioritize categories, but can't turn off "don't be harmful."

Output After Setup

markdown
## Setup Complete

Config saved to `.inclusion-config.md`

### Your Configuration

- **Scope:** US-only (i18n checks disabled)
- **Priority:** Inclusive language, then form inclusivity
- **Active checks:** language, names, examples, forms
- **Disabled:** i18n, RTL

### Recommended First Steps

Based on your priorities:

1. `/gotrino-inclusion:language-check src/`
2. `/gotrino-inclusion:names-check src/__tests__/`
3. `/gotrino-inclusion:inclusion-audit src/components/forms/`

### Revisit In

Your scope decisions will be reviewed in 6 months (2024-07-15).
Run `/gotrino-inclusion:teach-charter` again to update anytime.

Updating Existing Config

If .inclusion-config.md already exists:

  1. Read current config
  2. Show what's there
  3. Ask what they want to update
  4. Preserve decision log history
  5. Add new entry to decision log

Acknowledging Findings Inline

Other skills can add to the config. When a user acknowledges a finding:

markdown
Found: US-only address format in registration.tsx:52

[ ] Fix this
[x] Acknowledge - intentional (won't flag again)
[ ] Snooze - revisit in 3 months

The skill adds to .inclusion-config.md:

markdown
## Acknowledged Findings

| Finding | Location | Rationale | Date |
|---------|----------|-----------|------|
| US address format | registration.tsx:52 | Intentional, US-only | 2024-01-15 |

Integration With Other Skills

Other skills should:

  1. Read .inclusion-config.md at start (if exists)
  2. Skip checks that are out of scope
  3. Skip acknowledged findings
  4. Note what was skipped and why
  5. Offer to acknowledge new findings

Example output when config exists:

markdown
## Language Analysis: src/

**Config loaded:** .inclusion-config.md
**Skipped:** i18n checks (out of scope per config)
**Acknowledged:** 1 finding already reviewed

### Findings (3 new issues)
...

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results