charter
Skill25 starsChanged 3 months agoMITView on GitHub
Establish or amend the project constitution — the standing principles and constraints that bind every SPARK phase. Use once at project start to give the team its ground rules, or any time a project-wide decision (stack choice, quality bar, non-negotiable) changes and should apply to all future features.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- otto-haus/ottotheir own version, first seen Nov 8, 2026
- JOduMonT/on-the-looptheir own version, first seen Oct 25, 2026
- tsukumogami/shirabetheir own version, first seen Oct 15, 2026
- 224Sand/chartertheir own version, first seen Sep 6, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- otto-haus/otto★ 7same name
- 224Sand/charter★ 0same name
- JOduMonT/on-the-loop★ 0same name
- tsukumogami/shirabe★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository12 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- backlogSkill
- campaignSkill
- demo-daySkill
- go-liveSkill
- incrementSkill
- look-and-feelSkill
- next-stepsSkill
- peer-reviewSkill
- sparkSkill
- sprint-planSkill
- story-timeSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 93
Keep every entry falsifiable and true.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/charter — The Project Constitution
You are setting the standing context for the whole SPARK loop. The
constitution lives at .spark/constitution.md and is read by every agent
before phase work — so decisions that hold across all features are made once
here, not re-argued in every /story-time.
Input
Optional argument: a principle, constraint, or "set up our ground rules". No argument → offer to create the constitution from scratch or amend the existing one.
Steps
- Delegate to the Facilitator. Invoke the
facilitatoragent with the path.spark/constitution.md, the template from${CLAUDE_PLUGIN_ROOT}/templates/constitution.md, and the user's input verbatim. Say whether this is a first draft or an amendment if you already know; the agent will otherwise detect it from the file's presence. The Facilitator has no shell — for §9 Project Context, always gather a read-only git summary yourself (git log --oneline -20, further back on a young project; if the repo has no commits at all, hand over that it is empty rather than nothing) and hand it over with the rest, the same pattern/next-stepsstep 1 uses for the loop-state brief. Do this on every first draft, not only ones with source files or a manifest — a greenfield repo can still have real commits worth grounding §9 in — and do it again on any amendment that touches §9 (adding it where absent, or correcting an existing entry): the Facilitator's own git history is no fresher on an amendment than on a first draft, so skipping it there would recreate the same false-absentrisk one call site over. The Facilitator readsREADME.md,CLAUDE.mdand.spark/specs itself via its own Read tool. - Relay, don't guess. The agent grounds a draft in the codebase but cannot talk to the user. When it returns questions — the team's priorities, a deliberate quality bar, a contradiction only the user can resolve — put them to the user (AskUserQuestion where the choices are enumerable), then re-invoke the agent with the answers.
- Present the result. Show the user the drafted constitution, separating
what the agent inferred from the project from what still needs their
decision, plus any contradiction it flagged. Keep it short — a constitution
nobody reads is dead weight. Surface the detected type(s), characteristics
and proposed active lenses (e.g.
seo,ux,security) as their own decision, with the evidence the agent found — this is what makes later phases situational (an SEO lens only runs on awebsite, asecuritylens only when the project handles auth or PII), so confirm it consciously with the user rather than letting it ride. Also surface the active-lens load — if 4+ lenses come out active, flag the elevated load so the user sees each phase will carry several lenses (no cap, just visibility). Surface the QA method (§8) as its own explicit decision too, with the evidence the agent found — whether this project has a browser-observable surface, and if not, which method the QA phase performs instead. Never let it ride on the profile or the lens state: a project with nowebsiteand noweb-appis evidence for the question, never the answer to it, so a mis-typed profile can never suppress QA on its own. Leaving it undeclared is a valid answer and the default — QA then behaves exactly as it does today./charteris the only ceremony that may create or amend this declaration. Surface the Project Context (§9) as its own decision too, in this same round — never a separate one: show the product brief and, where the repo has code, the system picture, each entry markedinferred from <file:line>/asked/confirmed by user/not stated/not foundso the user can confirm or correct in one pass alongside the profile and QA method. On a first draft, or on an amendment where §10 is absent or the update rule in${CLAUDE_PLUGIN_ROOT}/tools/README.md§ The companion offer applies, readversionfrom${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.jsonfor the Facilitator, make that one offer in this same round (AskUserQuestion; never a separate round) and record the answer in §10. Never run an install. - Iterate. Fold the user's edits back in via the agent until they're satisfied. On an amendment, confirm the Amendments log records the change and its reason.
- Confirm. Remind the user the constitution now binds every phase — the PO
scopes within it, the EM plans within it, the Reviewer enforces it. If the
kickoff interview named a first slice, offer
/story-time <first slice>and invoke it only on the user's explicit go — never automatically.
Rules
- The constitution holds principles and constraints, never per-feature
requirements — those belong in a spec. If the user brings a feature idea
here, note it and point them to
/story-time. - The active lenses are the user's decision, like every other entry. Detection proposes them from the repo; it never switches one on silently. A lens the team won't act on comes back off — dead weight erodes trust in the rest of the constitution.
- Keep every entry falsifiable and true. Delete aspirational lines the project doesn't actually follow; a false constitution erodes trust in all the others.
- This is the user's document. You draft and challenge, but the user decides what the team is bound by.
Handoff
- Constitution set →
/story-time(spec the first feature within it) or/spark(run the full loop).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

