Create or update the project constitution - personalized governance and coding principles. Use when starting a project or updating project standards. Triggers on: create constitution, update principles, set project rules.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: constitution
description: "Create or update the project constitution - personalized governance and coding principles. Use when starting a project or updating project standards. Triggers on: create constitution, update principles, set project rules."
---
# Project Constitution Generator
Create a personalized project constitution that defines your team's coding principles, patterns, and governance.
---
## The Job
1. Ask the user about their project's coding philosophy and standards
2. Analyze the project structure and documentation
3. Generate personalized constitution based on their answers → `relentless/constitution.md`
4. Generate personalized agent prompt based on the same analysis → `relentless/prompt.md`
5. Ensure consistency with project templates and documentation
**Important:** The constitution is the foundation for all feature work - create this before generating features.
---
## Upgrade Detection (For Existing Users)
If `relentless/constitution.md` and/or `relentless/prompt.md` already exist:
### Step 0: Check for Template Updates
1. **Read current files:**
- Check version in existing constitution.md (look for `<!-- TEMPLATE_VERSION: X.Y.Z -->` or `**Template Version:**`)
- Check generated date in existing prompt.md
2. **Compare with templates:**
- Read `.claude/skills/constitution/templates/constitution.md`
- Read `.claude/skills/constitution/templates/prompt.md`
- Check template VERSION comments for changes
3. **Detect changes:**
- If template version > existing version → Offer upgrade
- If template has new sections → Offer selective merge
- If quality commands changed → Offer prompt.md refresh
4. **Offer upgrade options:**
```markdown
## Upgrade Available
Your constitution.md is v2.0.0, template is v2.1.0.
Changes in v2.1.0:
- Added SpecKit workflow documentation
- Enhanced TDD requirements
- Added quality gates section
Options:
A. Full upgrade (backup existing, apply template changes)
B. Selective merge (show diff, choose sections)
C. Skip upgrade (keep existing)
D. Regenerate from scratch (lose customizations)
```
5. **If upgrading:**
- Backup existing files to `*.backup`
- Apply template changes preserving customizations
- Update version number
- Update `LAST_AMENDED_DATE` to today
---
## Step 1: Gather Project Information
Ask essential questions about the project:
**Project Identity:**
- Project name?
- Primary programming language(s)?
- Tech stack (frameworks, libraries)?
**Testing Philosophy:**
- Testing approach? (TDD, test after, pragmatic)
- Required test coverage?
- Testing frameworks preferred?
**Code Quality:**
- Linting/formatting tools?
- Required checks before commit? (typecheck, lint, test)
- Code review requirements?
**Architecture Principles:**
- Preferred patterns? (MVC, clean architecture, etc.)
- Modularity requirements?
- Performance expectations?
**Version Control:**
- Branch naming conventions?
- Commit message format?
- CI/CD requirements?
---
## Step 2: Generate Constitution
Load the template from `templates/constitution.md` and:
1. Replace all `[PLACEHOLDER]` tokens with concrete values from user answers
2. Add/remove principles based on project needs (template is a starting point)
3. Ensure each principle has:
- **MUST** rules (enforced, blocking)
- **SHOULD** rules (best practices, warnings)
- Clear rationale
4. Set version to `1.0.0` for new constitutions
5. Set ratification date to today
6. Add governance section with amendment procedures
---
## Step 3: Analyze Project Structure
Read and analyze project documentation:
**Core Files:**
- `README.md` - Project overview, setup instructions
- `AGENTS.md` or `CLAUDE.md` - Developer guidelines
- `package.json` - Scripts, dependencies, tech stack
- `CONTRIBUTING.md` - Contribution workflow (if exists)
**Extract:**
- Tech stack (TypeScript, React, Node, etc.)
- Testing framework (vitest, jest, playwright)
- Quality commands (`typecheck`, `lint`, `test`)
- Build system (bun, npm, turbo, vite)
- Linting setup (eslint, biome)
- File structure patterns
---
## Step 4: Generate Personalized Prompt
Load the base template from `templates/prompt.md` and personalize it:
**Must include spec/plan/tasks awareness** so the agent reads `spec.md` and `plan.md` in full before execution, and reads only the relevant user story section from `tasks.md` for the current story.
**Base Template Location:** `templates/prompt.md`
Create a personalized `prompt.md` with:
**Section 1: Quality Gates**
```markdown
## CRITICAL: Quality Gates (Non-Negotiable)
Before marking ANY story as complete:
\`\`\`bash
# TypeScript (detected from package.json)
[actual typecheck command from package.json scripts]
# Linting (detected from package.json)
[actual lint command from package.json scripts]
# Tests (detected from package.json)
[actual test command from package.json scripts]
\`\`\`
**If ANY check fails, DO NOT mark the story as complete.**
```
**Section 2: Project-Specific Patterns** (from README/AGENTS.md)
- Monorepo structure (if applicable)
- Component locations
- Test file patterns
- Database/backend info
- Styling approach
**Section 3: TDD Workflow** (MANDATORY)
- Test-first workflow (write tests BEFORE implementation)
- Test location patterns
- Test commands
- Verification that tests FAIL before implementation
**Section 4: Routing Awareness**
- Explanation of routing metadata in prd.json
- Complexity levels (simple/medium/complex/expert)
- Cost optimization modes (free/cheap/good/genius)
**Section 5: SpecKit Workflow**
- Full workflow: specify → plan → tasks → convert → analyze → implement
- Artifact awareness: spec.md, plan.md, tasks.md, checklist.md, prd.json
**Section 6: Common Pitfalls** (from AGENTS.md/docs)
- Project-specific gotchas
- Known issues
- Best practices
**Footer:**
```markdown
---
**Personalized for [Project Name]**
**Generated:** [date]
**Re-generate:** /relentless.constitution
```
Save to: `relentless/prompt.md`
---
## Step 5: Validate & Save
Before saving:
**Constitution:**
- No `[PLACEHOLDER]` tokens remain
- All dates in ISO format (YYYY-MM-DD)
- Principles are declarative and testable
- Version format is semantic (X.Y.Z)
**Prompt:**
- All quality commands are actual commands from package.json
- File patterns match project structure
- No generic placeholders remain
Save both files:
- `relentless/constitution.md`
- `relentless/prompt.md`
**Run the validators to ensure both files are correctly formatted:**
```bash
# Validate constitution.md
.claude/skills/validators/scripts/validate-constitution.sh "relentless/constitution.md"
# Validate prompt.md
.claude/skills/validators/scripts/validate-prompt.sh "relentless/prompt.md"
```
- If validation fails, fix the errors and re-run
- Warnings are acceptable but should be reviewed
---
## Step 6: Report
Output summary:
```
✓ Created constitution.md
- Version: 1.0.0
- Principles: [count]
- Key rules: [summary]
✓ Created prompt.md
- Quality gates: [count]
- Tech stack: [detected stack]
- Test framework: [detected]
Next steps:
1. Review both files
2. Create your first feature: /relentless.specify "feature description"
```
---
## Updating Existing Files
If `relentless/constitution.md` or `relentless/prompt.md` exist:
**For Constitution Updates:**
1. Load current version
2. Ask what needs to change
3. Increment version appropriately:
- **MAJOR**: Breaking changes to principles
- **MINOR**: New principles added
- **PATCH**: Clarifications, typo fixes
4. Update `LAST_AMENDED_DATE` to today
5. Add amendment notes at top
**For Prompt Updates:**
1. Re-analyze project structure (package.json, docs)
2. Detect any new quality commands or patterns
3. Regenerate personalized sections
4. Preserve any manual customizations in comments
5. Update "Generated" date
**Both files can be regenerated at any time by running `/relentless.constitution` again.**
---
## Example Constitution Structure
```markdown
# Project Constitution
**Version:** 1.0.0
**Ratified:** 2026-01-11
**Last Amended:** 2026-01-11
## Principles
### Principle 1: Type Safety
**MUST:**
- All code must pass TypeScript strict mode
- No `any` types except in documented cases
**SHOULD:**
- Use Zod for runtime validation
- Prefer inference over explicit types
**Rationale:** Type safety prevents runtime errors and improves maintainability.
### Principle 2: Testing
**MUST:**
- All features must have unit tests
- CI must pass before merging
**SHOULD:**
- Aim for 80% coverage
- Write tests before implementation (TDD)
**Rationale:** Tests document behavior and prevent regressions.
## Governance
**Amendment Process:**
1. Propose changes via PR
2. Discuss with team
3. Update version semantically
4. Document rationale
**Compliance:**
- Constitution checked before each feature implementation
- Violations block PR merge
```
No comments yet. Be the first to comment!