Claude
Skills
Sign in
Back

teach-charter

Included with Lifetime
$97 forever

Set up the Gotrino assistant 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.

General

What this skill does


# Teach Charter (Setup & Configuration)

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

## Migration preflight

Before anything else, check for the legacy config. If `.inclusion-config.md` exists in the project root and `.assistant-config.md` does not, rename it silently:

```bash
mv .inclusion-config.md .assistant-config.md
```

Note the migration in the output: `Migrated: .inclusion-config.md → .assistant-config.md`.

If both files exist, keep `.assistant-config.md` and leave the legacy file — the user will resolve.

See `references/config-migration.md` for the full migration contract.

---

## 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** `.assistant-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/ | |
| Task management | None detected | |
```

### 2b. Capture Task Management

Ask where and how tasks are tracked:

```markdown
### Task Management

**Where do you track tasks?**
- [ ] Linear
- [ ] GitHub Issues
- [ ] Jira
- [ ] Local files (e.g. `tasks/`, `TODO.md`)
- [ ] Other: ___
- [ ] None / ad hoc

**Is the tracker accessible to Claude via tools?**
- [ ] Yes (e.g. Linear MCP, GitHub CLI)
- [ ] No — read-only / manual
- [ ] Not sure

**Where should code-adjacent tasks go?**
(Quick tasks for the current session, not full issues)
- [ ] Local task files in: ___
- [ ] Just mention them in conversation
- [ ] Same tracker as above
```

### 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 `.assistant-config.md` in project root:

```markdown
# Gotrino Assistant 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/ |
| Task management | Linear (accessible via MCP) |
| Local task location | tasks/todo/ |

---

## Stack

Detected on setup. Drives language-specific checks in the debt skills.

| Setting | Value |
|---------|-------|
| Languages | TypeScript, JavaScript |
| Frameworks | React 18 |
| Test runner | Vitest |
| Package manager | npm |
| Manifest files | package.json |

---

## Task Management

| Setting | Value |
|---------|-------|
| Tracker | Linear |
| Accessible via tools | Yes (Linear MCP) |
| Local tasks | tasks/todo/ |

When triaging work, create issues in the tracker if it's accessible. Otherwise, report the recommendation and let the user create the issue manually. Code-adjacent tasks go to the local task location.

---

## 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 |

---

## Debt Scope

Which debt dimensions are relevant, which are out of scope, and any heuristic overrides.

| Dimension | Status | Notes |
|-----------|--------|-------|
| code-debt | In scope | |
| doc-debt | In scope | |
| test-debt | In scope | |
| dep-debt | In scope | |
| design-debt | In scope | |

### Heuristic overrides (optional)

| Key | Value |
|-----|-------|
| code-debt.max-function-lines | 50 |
| code-debt.max-file-lines | 300 |
| code-debt.max-nesting | 4 |

---

## Architecture Principles

Optional. If declared, `design-debt` uses these as ground truth for drift detection.

<Free-text description of intended architecture — layer boundaries, module responsibilities, import rules.>

---

## 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 `.assistant-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-assistant:language-check src/`
2. `/gotrino-assistant:names-check src/__tests__/`
3. `/gotrino-assistant:inclusion-audit src/components/forms/`

### Revisit In

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

Related in General