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.
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
- Discovers project context (stack, existing tooling)
- Asks about scope and priorities
- Creates
.inclusion-config.mdwith decisions documented - Enables future checks to respect those decisions
Process
1. Detect Project Context
Scan for:
package.json,requirements.txt,Gemfile, etc. → Stackreact-intl,i18next,gettext→ i18n setupeslint-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:
## 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:
### 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
### 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:
# 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
## 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:
- Read current config
- Show what's there
- Ask what they want to update
- Preserve decision log history
- Add new entry to decision log
Acknowledging Findings Inline
Other skills can add to the config. When a user acknowledges a finding:
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:
## 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:
- Read
.inclusion-config.mdat start (if exists) - Skip checks that are out of scope
- Skip acknowledged findings
- Note what was skipped and why
- Offer to acknowledge new findings
Example output when config exists:
## 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)
...
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?