{"id":"3f9ac955-d301-40af-bffd-26a2fa175f85","shortId":"4UJPnV","kind":"skill","title":"speckit-constitution","tagline":"Create or update the project constitution from interactive or provided principle inputs, ensuring all dependent templates stay in sync.","description":"# Spec Kit Constitution Skill\n\n## When to Use\n\n- Initial project setup or when governance principles need updates.\n\n## Inputs\n\n- User-provided principles or amendments.\n- Existing `.specify/memory/constitution.md` and templates.\n\nIf the request is missing or ambiguous, ask focused questions before proceeding.\n\n## Workflow\n\nYou are updating the project constitution at `.specify/memory/constitution.md`. This file is a TEMPLATE containing placeholder tokens in square brackets (e.g. `[PROJECT_NAME]`, `[PRINCIPLE_1_NAME]`). Your job is to (a) collect/derive concrete values, (b) fill the template precisely, and (c) propagate any amendments across dependent artifacts.\n\nFollow this execution flow:\n\n1. Load the existing constitution template at `.specify/memory/constitution.md`.\n   - Identify every placeholder token of the form `[ALL_CAPS_IDENTIFIER]`.\n     **IMPORTANT**: The user might require less or more principles than the ones used in the template. If a number is specified, respect that - follow the general template. You will update the doc accordingly.\n\n2. Collect/derive values for placeholders:\n   - If user input (conversation) supplies a value, use it.\n   - Otherwise infer from existing repo context (README, docs, prior constitution versions if embedded).\n   - For governance dates: `RATIFICATION_DATE` is the original adoption date (if unknown ask or mark TODO), `LAST_AMENDED_DATE` is today if changes are made, otherwise keep previous.\n   - `CONSTITUTION_VERSION` must increment according to semantic versioning rules:\n     - MAJOR: Backward incompatible governance/principle removals or redefinitions.\n     - MINOR: New principle/section added or materially expanded guidance.\n     - PATCH: Clarifications, wording, typo fixes, non-semantic refinements.\n   - If version bump type ambiguous, propose reasoning before finalizing.\n\n3. Draft the updated constitution content:\n   - Replace every placeholder with concrete text (no bracketed tokens left except intentionally retained template slots that the project has chosen not to define yet—explicitly justify any left).\n   - Preserve heading hierarchy and comments can be removed once replaced unless they still add clarifying guidance.\n   - Ensure each Principle section: succinct name line, paragraph (or bullet list) capturing non‑negotiable rules, explicit rationale if not obvious.\n   - Ensure Governance section lists amendment procedure, versioning policy, and compliance review expectations.\n\n4. Consistency propagation checklist (convert prior checklist into active validations):\n   - Read `.specify/templates/plan-template.md` and ensure any \"Constitution Check\" or rules align with updated principles.\n   - Read `.specify/templates/spec-template.md` for scope/requirements alignment—update if constitution adds/removes mandatory sections or constraints.\n   - Read `.specify/templates/tasks-template.md` and ensure task categorization reflects new or removed principle-driven task types (e.g., observability, versioning, testing discipline).\n   - Review runtime prompts/agents for outdated references and align with updated principles:\n     - `.claude/commands/speckit.*.md`\n     - `.codex/prompts/speckit.*.md`\n     - `.gemini/commands/speckit.*.toml`\n     - `.github/prompts/speckit.*.prompt.md`\n     - `.github/agents/speckit.*.agent.md`\n     - `skills/speckit-*/SKILL.md`\n   - Read any runtime guidance docs (e.g., `README.md`, `docs/quickstart.md`, or agent-specific guidance files if present). Update references to principles changed.\n\n5. Produce a Sync Impact Report (prepend as an HTML comment at top of the constitution file after update):\n   - Version change: old → new\n   - List of modified principles (old title → new title if renamed)\n   - Added sections\n   - Removed sections\n   - Templates requiring updates (✅ updated / ⚠ pending) with file paths\n   - Follow-up TODOs if any placeholders intentionally deferred.\n\n6. Validation before final output:\n   - No remaining unexplained bracket tokens.\n   - Version line matches report.\n   - Dates ISO format YYYY-MM-DD.\n   - Principles are declarative, testable, and free of vague language (\"should\" → replace with MUST/SHOULD rationale where appropriate).\n\n7. Write the completed constitution back to `.specify/memory/constitution.md` (overwrite).\n\n8. Output a final summary to the user with:\n   - New version and bump rationale.\n   - Any files flagged for manual follow-up.\n   - Suggested commit message (e.g., `docs: amend constitution to vX.Y.Z (principle additions + governance update)`).\n\nFormatting & Style Requirements:\n\n- Use Markdown headings exactly as in the template (do not demote/promote levels).\n- Wrap long rationale lines to keep readability (<100 chars ideally) but do not hard enforce with awkward breaks.\n- Keep a single blank line between sections.\n- Avoid trailing whitespace.\n\nIf the user supplies partial updates (e.g., only one principle revision), still perform validation and version decision steps.\n\nIf critical info missing (e.g., ratification date truly unknown), insert `TODO(<FIELD_NAME>): explanation` and include in the Sync Impact Report under deferred items.\n\nDo not create a new template; always operate on the existing `.specify/memory/constitution.md` file.\n\n## Outputs\n\n- Updated `.specify/memory/constitution.md` (with Sync Impact Report comment)\n- Any updated templates or runtime guidance files required to stay consistent with the constitution\n\n## Next Steps\n\nAfter updating the constitution:\n\n- **Specify** new features with speckit-specify.","tags":["speckit","constitution","agent","skills","dceoy","agent-skills","ai-agents","ai-coding","claude-code","codex-cli","developer-tools","gemini-cli"],"capabilities":["skill","source-dceoy","skill-speckit-constitution","topic-agent-skills","topic-ai-agents","topic-ai-coding","topic-claude-code","topic-codex-cli","topic-developer-tools","topic-gemini-cli","topic-github-copilot","topic-spec-kit","topic-specifications","topic-workflow-automation"],"categories":["speckit-agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/dceoy/speckit-agent-skills/speckit-constitution","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add dceoy/speckit-agent-skills","source_repo":"https://github.com/dceoy/speckit-agent-skills","install_from":"skills.sh"}},"qualityScore":"0.488","qualityRationale":"deterministic score 0.49 from registry signals: · indexed on github topic:agent-skills · 76 github stars · SKILL.md body (5,527 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T06:55:43.380Z","embedding":null,"createdAt":"2026-04-18T22:13:43.428Z","updatedAt":"2026-05-02T06:55:43.380Z","lastSeenAt":"2026-05-02T06:55:43.380Z","tsv":"'/skill.md':421 '1':86,113 '100':600 '2':164 '3':261 '4':343 '5':443 '6':497 '7':534 '8':543 'accord':163,223 'across':106 'activ':351 'ad':238,476 'add':308 'addit':575 'adds/removes':374 'adopt':199 'agent':432 'agent-specif':431 'agent.md':419 'align':362,370,406 'alway':667 'ambigu':56,256 'amend':45,105,208,335,570 'appropri':533 'artifact':108 'ask':57,203 'avoid':618 'awkward':609 'b':96 'back':539 'backward':229 'blank':614 'bracket':81,274,505 'break':610 'bullet':320 'bump':254,555 'c':102 'cap':129 'captur':322 'categor':384 'chang':213,442,463 'char':601 'check':359 'checklist':346,349 'chosen':286 'clarif':244 'clarifi':309 'claude/commands/speckit':410 'codex/prompts/speckit':412 'collect/derive':93,165 'comment':299,453,681 'commit':566 'complet':537 'complianc':340 'concret':94,271 'consist':344,692 'constitut':3,9,25,68,117,187,219,265,358,373,458,538,571,695,701 'constraint':378 'contain':76 'content':266 'context':183 'convers':172 'convert':347 'creat':4,663 'critic':640 'date':193,195,200,209,511,645 'dd':517 'decis':637 'declar':520 'defer':496,659 'defin':289 'demote/promote':591 'depend':18,107 'disciplin':398 'doc':162,185,426,569 'docs/quickstart.md':429 'draft':262 'driven':391 'e.g':82,394,427,568,627,643 'embed':190 'enforc':607 'ensur':16,311,331,356,382 'everi':122,268 'exact':584 'except':277 'execut':111 'exist':46,116,181,671 'expand':241 'expect':342 'explan':650 'explicit':291,326 'featur':704 'file':72,435,459,486,558,673,688 'fill':97 'final':260,500,546 'fix':247 'flag':559 'flow':112 'focus':58 'follow':109,154,489,563 'follow-up':488,562 'form':127 'format':513,578 'free':523 'gemini/commands/speckit':414 'general':156 'github/agents/speckit':418 'github/prompts/speckit':416 'govern':35,192,332,576 'governance/principle':231 'guidanc':242,310,425,434,687 'hard':606 'head':296,583 'hierarchi':297 'html':452 'ideal':602 'identifi':121,130 'impact':447,656,679 'import':131 'includ':652 'incompat':230 'increment':222 'infer':179 'info':641 'initi':30 'input':15,39,171 'insert':648 'intent':278,495 'interact':11 'iso':512 'item':660 'job':89 'justifi':292 'keep':217,598,611 'kit':24 'languag':526 'last':207 'left':276,294 'less':136 'level':592 'line':317,508,596,615 'list':321,334,466 'load':114 'long':594 'made':215 'major':228 'mandatori':375 'manual':561 'mark':205 'markdown':582 'match':509 'materi':240 'md':411,413 'messag':567 'might':134 'minor':235 'miss':54,642 'mm':516 'modifi':468 'must':221 'must/should':530 'name':84,87,316 'need':37 'negoti':324 'new':236,386,465,472,552,665,703 'next':696 'non':249,323 'non-semant':248 'number':149 'observ':395 'obvious':330 'old':464,470 'one':142,629 'oper':668 'origin':198 'otherwis':178,216 'outdat':403 'output':501,544,674 'overwrit':542 'paragraph':318 'partial':625 'patch':243 'path':487 'pend':484 'perform':633 'placehold':77,123,168,269,494 'polici':338 'precis':100 'prepend':449 'present':437 'preserv':295 'previous':218 'principl':14,36,43,85,139,313,365,390,409,441,469,518,574,630 'principle-driven':389 'principle/section':237 'prior':186,348 'procedur':336 'proceed':61 'produc':444 'project':8,31,67,83,284 'prompt.md':417 'prompts/agents':401 'propag':103,345 'propos':257 'provid':13,42 'question':59 'ratif':194,644 'rational':327,531,556,595 'read':353,366,379,422 'readabl':599 'readm':184 'readme.md':428 'reason':258 'redefinit':234 'refer':404,439 'refin':251 'reflect':385 'remain':503 'remov':232,302,388,478 'renam':475 'replac':267,304,528 'repo':182 'report':448,510,657,680 'request':52 'requir':135,481,580,689 'respect':152 'retain':279 'review':341,399 'revis':631 'rule':227,325,361 'runtim':400,424,686 'scope/requirements':369 'section':314,333,376,477,479,617 'semant':225,250 'setup':32 'singl':613 'skill':26 'skill-speckit-constitution' 'skills/speckit-':420 'slot':281 'source-dceoy' 'spec':23 'specif':433 'specifi':151,702,708 'specify/memory/constitution.md':47,70,120,541,672,676 'specify/templates/plan-template.md':354 'specify/templates/spec-template.md':367 'specify/templates/tasks-template.md':380 'speckit':2,707 'speckit-constitut':1 'speckit-specifi':706 'squar':80 'stay':20,691 'step':638,697 'still':307,632 'style':579 'succinct':315 'suggest':565 'summari':547 'suppli':173,624 'sync':22,446,655,678 'task':383,392 'templat':19,49,75,99,118,146,157,280,480,588,666,684 'test':397 'testabl':521 'text':272 'titl':471,473 'today':211 'todo':206,491,649 'token':78,124,275,506 'toml':415 'top':455 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-claude-code' 'topic-codex-cli' 'topic-developer-tools' 'topic-gemini-cli' 'topic-github-copilot' 'topic-spec-kit' 'topic-specifications' 'topic-workflow-automation' 'trail':619 'truli':646 'type':255,393 'typo':246 'unexplain':504 'unknown':202,647 'unless':305 'updat':6,38,65,160,264,364,371,408,438,461,482,483,577,626,675,683,699 'use':29,143,176,581 'user':41,133,170,550,623 'user-provid':40 'vagu':525 'valid':352,498,634 'valu':95,166,175 'version':188,220,226,253,337,396,462,507,553,636 'vx.y.z':573 'whitespac':620 'word':245 'workflow':62 'wrap':593 'write':535 'yet':290 'yyyi':515 'yyyy-mm-dd':514","prices":[{"id":"b01a068c-b5db-4eba-a24a-6fe4128da987","listingId":"3f9ac955-d301-40af-bffd-26a2fa175f85","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"dceoy","category":"speckit-agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:13:43.428Z"}],"sources":[{"listingId":"3f9ac955-d301-40af-bffd-26a2fa175f85","source":"github","sourceId":"dceoy/speckit-agent-skills/speckit-constitution","sourceUrl":"https://github.com/dceoy/speckit-agent-skills/tree/main/skills/speckit-constitution","isPrimary":false,"firstSeenAt":"2026-04-18T22:13:43.428Z","lastSeenAt":"2026-05-02T06:55:43.380Z"}],"details":{"listingId":"3f9ac955-d301-40af-bffd-26a2fa175f85","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"dceoy","slug":"speckit-constitution","github":{"repo":"dceoy/speckit-agent-skills","stars":76,"topics":["agent-skills","ai-agents","ai-coding","claude-code","codex-cli","developer-tools","gemini-cli","github-copilot","spec-kit","specifications","workflow-automation"],"license":"agpl-3.0","html_url":"https://github.com/dceoy/speckit-agent-skills","pushed_at":"2026-03-14T17:14:42Z","description":"Agent skills for Spec Kit","skill_md_sha":"48b511b15b4898866a07901df58b0ad22465e8b6","skill_md_path":"skills/speckit-constitution/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/dceoy/speckit-agent-skills/tree/main/skills/speckit-constitution"},"layout":"multi","source":"github","category":"speckit-agent-skills","frontmatter":{"name":"speckit-constitution","description":"Create or update the project constitution from interactive or provided principle inputs, ensuring all dependent templates stay in sync."},"skills_sh_url":"https://skills.sh/dceoy/speckit-agent-skills/speckit-constitution"},"updatedAt":"2026-05-02T06:55:43.380Z"}}