| name | iikit-00-constitution |
| description | Create or update a CONSTITUTION.md that defines project governance — establishes coding standards, quality gates, TDD policy, review requirements, and non-negotiable development principles with versioned amendment tracking. Use when defining project rules, setting up coding standards, establishing quality gates, configuring TDD requirements, or creating non-negotiable development principles. |
| license | MIT |
| metadata | {"version":"1.6.4"} |
Intent Integrity Kit Constitution
Create or update the project constitution at CONSTITUTION.md — the governing principles for specification-driven development.
Scope
MUST contain: governance principles, non-negotiable development rules, quality standards, amendment procedures, compliance expectations, quality governance section referencing QA-PLAN.md.
Quality Governance section (MUST be included in every constitution):
### Quality Governance
QA-PLAN.md is the authoritative quality artifact for this project. It aggregates:
- Global Definition of Done and acceptance criteria (derived from this constitution)
- Per-feature qa/ subdirectories (created emergently by /sdd:spec and /sdd:test)
- Quality gate status (updated by /sdd:analyze)
- Feature quality registry (AC coverage, test coverage, checklist completion)
Run /sdd:qa to generate or refresh. Auto-invoked by /sdd:analyze.
MUST NOT contain: technology stack, frameworks, databases, implementation details, specific tools or versions. These belong in /iikit-02-plan. See phase-separation-rules.md.
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Prerequisites Check
- Check PREMISE.md exists:
test -f PREMISE.md. If missing: ERROR — "PREMISE.md not found. Run /iikit-core init first to create it." Do NOT proceed without PREMISE.md.
- Validate PREMISE.md:
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-core/scripts/bash/validate-premise.sh --json
If FAIL (missing sections or placeholders): ERROR — show details, suggest re-running init.
- Check if constitution exists:
cat CONSTITUTION.md 2>/dev/null || echo "NO_CONSTITUTION"
- If missing, copy from constitution-template.md
Execution Flow
-
Load existing constitution — identify placeholder tokens [ALL_CAPS_IDENTIFIER]. Adapt to user's needs (more or fewer principles than template).
-
Collect values for placeholders:
- From user input, or infer from repo context
RATIFICATION_DATE: original adoption date
LAST_AMENDED_DATE: today if changes made
CONSTITUTION_VERSION: semver (MAJOR: principle removal/redefinition, MINOR: new principle, PATCH: clarifications)
-
Draft content: replace all placeholders, preserve heading hierarchy, ensure each principle has name + rules + rationale, governance section covers amendment/versioning/compliance.
-
Consistency check: validate against plan-template.md, spec-template.md, tasks-template.md.
-
Sync Impact Report (HTML comment at top): version change, modified principles, added/removed sections, follow-up TODOs.
-
Validate: no remaining bracket tokens, version matches report, dates in ISO format, principles are declarative and testable. Constitution MUST have at least 3 principles — if fewer, add more based on the project context.
-
Phase separation validation: scan for technology-specific content per phase-separation-rules.md. Auto-fix violations, re-validate until clean.
-
Write to CONSTITUTION.md
-
Store TDD determination in .specify/context.json so all skills read from here instead of re-parsing the constitution:
TDD_DET=$(bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-core/scripts/bash/testify-tdd.sh get-tdd-determination "CONSTITUTION.md")
Write to .specify/context.json using jq (merge, don't overwrite):
jq --arg det "$TDD_DET" '. + {tdd_determination: $det}' .specify/context.json > .specify/context.json.tmp && mv .specify/context.json.tmp .specify/context.json
If .specify/context.json doesn't exist, create it: echo '{}' | jq --arg det "$TDD_DET" '{tdd_determination: $det}' > .specify/context.json
-
Git init (if needed): git init to ensure project isolation
-
Commit: git add CONSTITUTION.md .specify/context.json && git commit -m "Add project constitution"
-
Dashboard Refresh (optional, never blocks):
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-core/scripts/bash/generate-dashboard-safe.sh
Windows: pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-core/scripts/powershell/generate-dashboard-safe.ps1
- Report: version, bump rationale, TDD determination, git status, suggested next steps
Formatting
- Markdown headings per template, lines <100 chars, single blank line between sections, no trailing whitespace.
Next Steps
Run: bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-core/scripts/bash/next-step.sh --phase 00 --json
Windows: pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-core/scripts/powershell/next-step.ps1 -Phase 00 -Json
Parse the JSON and present:
- If
clear_after is true: suggest /clear before proceeding
- Present
next_step as the primary recommendation
- If
alt_steps non-empty: list as alternatives
- For
next_step and each alt_step, include the model_tier from the JSON so the user knows which model is best for each option. Look up tiers in model-recommendations.md for agent-specific switch commands.
- Append dashboard link
Format:
Constitution ready!
Next: [/clear → ] <next_step> (model: <tier>)
[- <alt_step> — <reason> (model: <tier>)]
- Dashboard: file://$(pwd)/.specify/dashboard.html (resolve the path)