Agent skill

Constitution

by ericrisco in ericrisco/rsc-harness

A skill your agent uses when setting or amending a project's non-negotiables — stack canon, quality bars, conventions, security/a11y floors — as numbered, testable rules later phases obey.

MITAuto-check: notesFrontend & Design

Install Constitution

skills CLI
$ npx skills add ericrisco/rsc-harness --skill constitution -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ericrisco/rsc-harness constitution --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/constitution .claude/skills/constitution && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
constitution
GitHub stars
156
Token cost
~3.3k tokens
SKILL.md length
1,641 words
Files
4 (incl. references)
Skills in repo
229
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when setting or amending a project's non-negotiables — stack canon, quality bars, conventions, security/a11y floors — as numbered, testable rules later phases obey.

  • Works in 4 steps: Read the Knowledge map — the full index… → Read each stack article. Pull out… → For each existing rule, decide: is it a… → …
  • Amending a projects non-negotiables — stack canon
  • SKILL.md covers Model tier — heavy (opt-in…, Honor the register first, Reconcile before you write (do… and What a principle must have, plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Constitution is an agent skill from ericrisco/rsc-harness. Use when setting or amending a project's non-negotiables — stack canon, quality bars, conventions, security/a11y floors — as numbered, testable rules later phases obey. First rsc-sdd phase; writes 02-DOCS/wiki/sdd/constitution.md. NOT a feature spec (that is specify), NOT the technical plan (that is plan), NOT the wiki itself (that is harness).

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/constitution-template.md`).

It sits in Frontend & Design, covering Accessibility and PRD writing. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.

When your agent uses it

  • Amending a projects non-negotiables — stack canon
  • Security/a11y floors — as numbered
  • Testable rules later phases obey

Example prompts

  • “/constitution”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Read the Knowledge map — the full index lives in 02-DOCS/wiki/index.md (root CLAUDE.md keeps only a short pointer to it). List every…
  2. Read each stack article. Pull out anything already phrased as a rule (a version pin, a lint config, a test threshold, a naming convention).
  3. For each existing rule, decide: is it a project-wide non-negotiable (→ ratify it as a principle, linking the stack article for detail) or…
  4. Contradictions are findings, not fixes. If two stack articles disagree, or a stack article contradicts what the user states now, surface…

What it can do on your machine

Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown and json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Constitution loads about 3.3k tokens when it runs, and up to ~4.4k if it reads all its reference files. Until then it costs about 91 tokens; SKILL.md has 1,641 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:52
    d; secrets load from 01-TOOLS/<provider>/.env

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,641 words, ~3,278 tokens.

Download SKILL.mdSave it as .claude/skills/constitution/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
constitution
description
Use when setting or amending a project's non-negotiables — stack canon, quality bars, conventions, security/a11y floors — as numbered, testable rules later phases obey. First rsc-sdd phase; writes 02-DOCS/wiki/sdd/constitution.md. NOT a feature spec (that is `specify`), NOT the technical plan (that is `plan`), NOT the wiki itself (that is `harness`).
tags
sdd, constitution, principles
recommends
specify
profiles
core, full
origin
risco

constitution — the project's non-negotiable principles

The first rsc-sdd phase. Run once per project, then amend. It writes down the rules every later phase obeys: stack canon, quality bars, conventions. Everything downstream — specify, plan, analyze, implement, verify, review — reads this file as guardrails.

A constitution is small, durable, and enforceable. It is not a wiki of everything you know about the project (that is what 02-DOCS/wiki/ already is, run by the harness). It is the short list of principles that, if violated, mean the work is wrong regardless of whether it runs. If a rule here cannot be checked or pointed at later, it does not belong here — move it to the stack wiki and link it.

Not this phase: what to build → ../specify/SKILL.md; the technical approach for one feature → ../plan/SKILL.md; setting up 01-TOOLS/ + 02-DOCS/ or capturing general project knowledge → harness; concrete stack mechanics (how to configure Ruff, pytest, Tailwind tokens) → the relevant stack skill (../fastapi/SKILL.md, ../nextjs/SKILL.md, ../go/SKILL.md, ../postgresdb/SKILL.md, ../flutter/SKILL.md, ../design/SKILL.md, ../secure-coding/SKILL.md). The constitution names the bar; the stack skill enforces it.

Model tier — heavy (opt-in routing)

This phase's default model tier is heavy — it sets the project's non-negotiables, the highest-leverage decisions in the repo. Routing is off unless models.enabled: true in 02-DOCS/wiki/sdd/config.yaml. When on: resolve this phase's tier (models.overrides wins over models.phases), map it to a model via models.tiers, and apply per ../sdd/references/model-routing.md — announce the switch in one line when it differs from the session model, and dispatch any Task/parallel subagents on that model. Routing off or no profile → honor the session model silently. Never fake a switch a tool can't make; skip routing on a one-line change.

Honor the register first

Before asking anything, read 02-DOCS/wiki/harness/user-profile.md and use its technical_level: technical terms, or plain words with analogies. No profile yet → use analogies and ask once "technical or with analogies?", or point the user at init; never assume fluency. The interview is the same for every reader:

  • Infer almost everything from the codebase and stack wiki. Ask only the few questions that genuinely change a principle.
  • Give one line of why per principle proposed, and the trade-off where a rule constrains the team — in the orient voice.
  • For a non-technical reader, say in one sentence what a constitution is (the house rules every later step obeys) before drafting.

Reconcile before you write (do not duplicate the stack wiki)

The harness may already hold real conventions under 02-DOCS/wiki/stack/* (e.g. nextjs.md, fastapi.md, postgresdb.md). The constitution does not copy them — it ratifies the principle and links the detail. Run this reconciliation pass first:

  1. Read the Knowledge map — the full index lives in 02-DOCS/wiki/index.md (root CLAUDE.md keeps only a short pointer to it). List every 02-DOCS/wiki/stack/* article that exists.
  2. Read each stack article. Pull out anything already phrased as a rule (a version pin, a lint config, a test threshold, a naming convention).
  3. For each existing rule, decide: is it a project-wide non-negotiable (→ ratify it as a principle, linking the stack article for detail) or a local mechanic (→ leave it in the stack wiki, do not lift it into the constitution)?
  4. Contradictions are findings, not fixes. If two stack articles disagree, or a stack article contradicts what the user states now, surface it and let the user resolve — never silently pick a winner.

The rule of thumb: the constitution says "every endpoint is typed and tested to ≥80% line coverage — see wiki/stack/fastapi.md for the pytest setup". It does not paste the pytest config.

What a principle must have

Every principle in the constitution is one numbered, testable statement. A vague aspiration is not a principle.

  • Imperative and specific. "Code is formatted with the repo's formatter on every commit" — not "we value clean code".
  • Checkable. There must be a way for ../analyze/SKILL.md and verify to tell whether it held. Prefer a number, a command, or a named artifact.
  • Owned. If enforcement lives in a stack skill or a script, link it.
  • Falsifiable in review. A reviewer can point at a diff and say "this violates principle 4".
text
Weak   — "We care about security."
Strong — "4. No secret is ever committed; secrets load from 01-TOOLS/<provider>/.env
          (gitignored). Enforced by secure-coding + a pre-commit secret scan."

The interview (requirements-first, batched)

Gather what you cannot infer, then draft. Ask in one short batch — only the questions that matter. Cover these dimensions — skip any the stack wiki already answers, and confirm rather than re-ask:

  1. Stack canon — languages, frameworks, runtime/versions, package manager. What is fixed vs. open?
  2. Quality bar — formatter/linter (must pass clean?), type checking (strict?), test discipline (TDD? coverage floor? what kind of tests gate a merge?).
  3. Conventions — naming, directory structure, module boundaries, API/error shapes, commit message format.
  4. Branching & shipping — branch naming, PR required?, who/what gates a merge, release cadence. (Authorship rule is fixed — see below.)
  5. Security & privacy floor — secret handling, authn/z baseline, data residency, dependency policy.
  6. Accessibility & UX floor (if there's a UI) — the minimum bar (e.g. WCAG AA, keyboard-navigable).
  7. Performance budgets (where they matter) — a named budget, not "should be fast".
  8. Documentation & knowledge — what must be written down (decisions log, the wiki) and when.

For any significant either/or (e.g. "strict types or gradual?", "squash or merge commits?"), use the harness "siempre 3 opciones" shape where it applies: gather the constraint, present up to 3 honest options with a recommendation matched to the team's level, then ratify the choice and log it.

Fixed principles (always present)

Two principles are inherited from the rsc ecosystem and appear in every constitution unless the user explicitly overrides them:

  • Git authorship is the human's. Commits and PRs are authored by the human (Eric, or whoever owns the repo). No Co-Authored-By an AI, no "generated with" footer. Enforced at the ship phase.
  • Decisions are logged. Every significant decision is appended to 02-DOCS/wiki/sdd/decisions.md (or the harness decisions.md) with date, options considered, and the why. The constitution itself is the highest-order decision record.
Show full SKILL.md (688 more words)Show less

Drafting the constitution

Write 02-DOCS/wiki/sdd/constitution.md from the template in references/constitution-template.md. Keep it short — a readable constitution is 1-2 screens, not a manual. Structure:

  • Header — project name, version (v1.0.0), ratified date, last-amended date.
  • Principles — numbered, grouped by the dimensions above. Each is one testable statement; link the stack article or script that enforces it.
  • The bar (Definition of Done) — the merge checklist every feature must pass. This is what verify runs against.
  • Amendment log — append-only; every change recorded (see protocol below).

Create 02-DOCS/wiki/sdd/ if it does not exist. Do not overwrite an existing constitution — amend it.

Versioning & amendment protocol

The constitution is versioned so analyze and review can cite "constitution v1.2.0, principle 4".

  • Semantic-ish versioning. MAJOR when a principle is removed or reversed (breaks existing work); MINOR when a principle is added or materially tightened; PATCH for wording/clarity with no behavior change.
  • Amendments are append-only in the log. Never silently edit a ratified principle — strike it (mark superseded) and add the new one, bump the version, and record date + why in the amendment log.
  • Ratification. A new or amended constitution is shown to the user and ratified explicitly before it takes effect. "Ratify" is an explicit yes on the shown draft; walk each change only if the user asks.
  • Downstream notice. When a principle changes mid-project, flag that existing specs/plans may now be inconsistent — analyze will catch the drift on the next run.

Anti-patterns

Anti-patternWhy it fails / fix
"I'll write a thorough constitution covering everything about the project."That's the wiki, not the constitution. Keep only enforceable non-negotiables; link the rest.
"This stack detail is important, I'll paste the lint config in here."No. Ratify the principle, link wiki/stack/* for the mechanic. The constitution names the bar; the stack skill enforces it.
"Two stack articles disagree — I'll just pick the stricter one."Contradictions are findings. Surface them; the user resolves.
"The principle is 'write good code' — everyone knows what that means."Not checkable, not a principle. Make it testable or drop it.
"I'll rewrite the existing constitution to match what they said today."Amend, don't overwrite. Strike + add + bump version + log the why.
"No profile yet, I'll assume they're technical."Use analogies; ask once "technical or with analogies?" or send them to init.
"I'll add a Co-Authored-By so the commit credits the assist."No. Git authorship is the human's — it's a fixed principle, enforced at ship.
"I'll ratify it myself since it's obvious."The user ratifies. Show the draft, get the explicit yes, then it takes effect.

Checklist before handing off

  • 02-DOCS/wiki/harness/user-profile.md read; register matched to technical_level (or the register question asked).
  • Reconciliation pass done against every 02-DOCS/wiki/stack/* article; contradictions surfaced, not auto-resolved.
  • Every principle is numbered, imperative, testable, and links its enforcer where one exists.
  • The Definition-of-Done checklist is present (what verify runs against).
  • Fixed principles included: human git authorship + decisions logged.
  • 02-DOCS/wiki/sdd/constitution.md written with version + ratified date + amendment log.
  • Root CLAUDE.md ## Knowledge map pointer has the read-first row for the constitution.
  • The constitution was shown to the user and explicitly ratified.

Project grounding (02-DOCS + CLAUDE.md)

This skill's 02-DOCS record is the constitution at 02-DOCS/wiki/sdd/constitution.md. It is a read-first pointer entry, so its row stays in the short ## Knowledge map pointer in the root CLAUDE.md (create CLAUDE.md if absent, additive only — never delete existing sections) — unlike other sdd artifacts, which are indexed in 02-DOCS/wiki/index.md (the full Knowledge map that root CLAUDE.md points to). Add this row to the root pointer if it is not already present:

markdown
| Project constitution (SDD non-negotiables) | `02-DOCS/wiki/sdd/constitution.md` |

Every later rsc-sdd phase reads this file before it works. The harness maintains and improves the article over the life of the project; this skill is the place that ratifies and amends it.

Result envelope

End with the parseable block every SDD phase shares, so the dispatcher can chain without interpreting prose (contract: ../sdd/SKILL.md):

json
{
  "status": "complete|blocked|failed",
  "executive_summary": "Constitution written with N numbered, testable rules the later phases inherit.",
  "artifact": "02-DOCS/wiki/sdd/constitution.md",
  "next_recommended": "specify",
  "risk": "low|medium|high",
  "skill_resolution": {
    "used": ["constitution"],
    "missing": [],
    "fallback": [],
    "compact_rules": ["Principles are inherited constraints, not choices to re-make.", "Every rule is testable or it is a preference."]
  },
  "evidence": ["constitution path exists", "rules numbered and testable", "decisions log appended"]
}

Next in the chain

The constitution is the guardrail; now describe what to build. Hand off to ../specify/SKILL.md — turn a fuzzy intent into a spec (what & why, no implementation), grounded in these principles. The full chain: constitution → specify → clarify → plan → tasks → analyze → implement → verify → review → ship (with debug, worktrees, parallel callable on demand). The dispatcher is ../sdd/SKILL.md.

© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/constitution of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/constitution-template.md

Open the folder on GitHubat commit 92fde8f

Compare with similar skills

Constitution next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Constitution compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Constitution this skillericrisco/rsc-harness156—~3.3kAutomated safety check: NotesMIT
Test Scenariosborghei/Claude-Skills874—~1.9kAutomated safety check: PassMIT
Web Interface Guidelines Reviewervercel-labs/openreview1.7k98 repos~308Automated safety check: PassNone
Accessibility Reviewmarkmead/hyperui12k1 repos~1.1kAutomated safety check: PassMIT
Web Animation DesignbaptisteArno/typebot.io11k2 repos~2.7kAutomated safety check: PassCustom licence
Accessibility Fixeribelick/ui-skills9.4k4 repos~1.2kAutomated safety check: PassMIT

Similar skills

  • Test Scenarios

    borghei/Claude-Skills

    Generate test scenario coverage from a feature spec — happy paths, edge cases, error handling, accessibility, security, and performance — with a coverage analyzer that flags gaps.

    874 GitHub stars~1.9k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Web Interface Guidelines Reviewer

    vercel-labs/openreview

    Official

    Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…

    1.7k GitHub starsUsed in 98 repos~308 tokens
    Frontend & DesignAuto-check passed
  • Accessibility Review

    markmead/hyperui

    Run a WCAG 2.1 AA accessibility audit on a design or page. An agent skill from markmead/hyperui.

    12k GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • Web Animation Design

    baptisteArno/typebot.io

    Guides easing, timing and animation choices for UI motion, based on a web animation course, and reviews existing animations in a before-and-after table.

    11k GitHub starsUsed in 2 repos~2.7k tokens
    Frontend & DesignAuto-check passed
  • Accessibility Fixer

    ibelick/ui-skills

    Audits and fixes HTML accessibility problems such as ARIA labels, keyboard navigation, focus management, contrast and form errors with minimal changes.

    9.4k GitHub starsUsed in 4 repos~1.2k tokens
    Frontend & DesignAuto-check passed
  • Wcag Audit Patterns

    vmDeshpande/ai-agent-automation

    Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance.

    178 GitHub starsUsed in 10 repos~610 tokens
    Frontend & DesignAuto-check passed

More from ericrisco/rsc-harness

All 229 skills in this repo
  • Ab Testing

    ericrisco/rsc-harness

    A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…

    156 GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    156 GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Ads

    ericrisco/rsc-harness

    A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…

    156 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Agent Eval

    ericrisco/rsc-harness

    A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…

    156 GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • AI Media

    ericrisco/rsc-harness

    A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…

    156 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Analytics

    ericrisco/rsc-harness

    A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.

    156 GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed

Questions about Constitution

What does Constitution do?

A skill your agent uses when setting or amending a project's non-negotiables — stack canon, quality bars, conventions, security/a11y floors — as numbered, testable rules later phases obey. Constitution is an agent skill from ericrisco/rsc-harness. Use when setting or amending a project's non-negotiables — stack canon, quality bars, conventions, security/a11y floors — as numbered, testable rules later phases obey.

When should I use Constitution?

Constitution fits situations like: amending a projects non-negotiables — stack canon; security/a11y floors — as numbered; testable rules later phases obey.

How do I install Constitution in Claude Code?

Run `npx skills add ericrisco/rsc-harness --skill constitution -a claude-code`. Or copy the skill folder (skills/constitution in ericrisco/rsc-harness) into .claude/skills/constitution in your project. Claude Code loads it when a task matches its description.

How do I install Constitution in Codex?

Run `npx skills add ericrisco/rsc-harness --skill constitution -a codex`. Or copy the skill folder (skills/constitution in ericrisco/rsc-harness) into .agents/skills/constitution in your project. Codex loads it when a task matches its description.

Can I use Constitution in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill constitution -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/constitution, .gemini/skills/constitution, .github/skills/constitution and .opencode/skills/constitution in your project.

What does Constitution need to run?

SKILL.md names no scripts, command-line tools or credentials: Constitution is instructions for the agent only.

Does Constitution access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Constitution safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Constitution use?

Constitution is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Constitution use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.1k tokens, read only when the agent opens those files.

What are the alternatives to Constitution?

Skills that share tags, products or a category with Constitution: Test Scenarios (borghei/Claude-Skills, 874 stars), Web Interface Guidelines Reviewer (vercel-labs/openreview, 1.7k stars), Accessibility Review (markmead/hyperui, 12k stars) and Web Animation Design (baptisteArno/typebot.io, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Constitution?

ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.

Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.