Interactively create or amend the team constitution in team-ai-directives. Use when bootstrapping a new team AI directives, establishing team-wide principles for the first time, or amending existing ones.
npx skills add https://github.com/tikalk/adlc-team-skills --skill team-constitution
Interactively create or amend the team constitution at {TEAM_AI_DIRECTIVES}/context_modules/constitution.md.
The scaffold written by team-setup (Mode 3) contains only a placeholder ("No team-wide principles defined yet"). This skill turns that placeholder into a real constitution through guided elicitation:
What this skill is NOT:
spec.constitution template machinery — no placeholder tokens, no hooks, no extensions.yml, no template propagation, no Sync Impact Reportmodified, verified) via /team-repair.adlc/memory/constitution.md) — those remain spec.constitution territory when spec-kit is in playteam-setup Mode 3: the scaffold wrote a placeholder constitution — fill it with real principlesspec.constitution for .adlc/memory/constitution.md/levelup-publish handle it/team-setup first$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Examples of User Input:
"Focus on testing and security principles" — steer proposals toward those domains"Amend principle 3" — jump straight to amending a specific principle"Add a principle about AI code review" — append a specific principleYou are acting as a Team Governance Facilitator — helping the team articulate its non-negotiable principles. Your role involves:
Run the setup script from the skill's base directory:
scripts/bash/setup-team-constitution.sh
Parse JSON for REPO_ROOT, TEAM_AI_DIRECTIVES, CONSTITUTION_FILE, CONSTITUTION_STATE, TD_IS_GIT, TD_CLEAN.
If the setup script is unavailable or fails, resolve manually:
REPO_ROOT — walk up from cwd to find .adlc/, or git rev-parse --show-toplevel, or pwd.TEAM_AI_DIRECTIVES — TEAM_AI_DIRECTIVES env var, then .adlc/init-options.json → team_ai_directives, then REPO_ROOT/team-ai-directives.CONSTITUTION_FILE — {TEAM_AI_DIRECTIVES}/context_modules/constitution.mdCONSTITUTION_STATE:missing — file does not existplaceholder — file exists and contains "No team-wide principles defined yet"populated — file exists with real contentTD_IS_GIT — git -C "$TEAM_AI_DIRECTIVES" rev-parse --is-inside-work-tree (exit 0 = true)TD_CLEAN — git -C "$TEAM_AI_DIRECTIVES" status --porcelain (empty = clean)If TEAM_AI_DIRECTIVES is not configured:
Team AI directives repository not configured.
Run: team-setup
Or set: export TEAM_AI_DIRECTIVES=/path/to/team-ai-directives
Read the following to inform principle proposals:
{CONSTITUTION_FILE} (if populated — you will amend; if placeholder/missing — you will create){TEAM_AI_DIRECTIVES}/CDR.md — accepted rule/persona/example descriptors reveal what the team already cares about{TEAM_AI_DIRECTIVES}/context_modules/rules/ file names and headings{TEAM_AI_DIRECTIVES}/AGENTS.md — loading order and skill usage expectationsPrinciples must be grounded in what you find — e.g., if the rules directory is heavy on security modules, a "Security by Default" principle is evidence-based, not boilerplate. If the team AI directives is nearly empty, fall back to a small starter set and say so explicitly.
missing or placeholder)### Proposed Principle N: {Name}
**Statement**: {Declarative, testable rule — one or two sentences}
**Rationale**: {Why this principle exists; what failure it prevents}
**Grounding**: {What team context motivated this — or "starter suggestion, no team AI directives evidence yet"}
Reply: [Y] accept / [e] edit / [n] reject
populated)Principle quality bar (apply to every accepted principle):
Compose a short Governance section. Keep it to these three points (do not expand):
## Governance
- **Amendments**: proposed as CDRs via `/levelup-init` or `/levelup-specify`, reviewed via `/levelup-clarify`, published via `/levelup-publish`. Direct edits via `/team-constitution` are reserved for bootstrapping and explicit team decisions.
- **Compliance**: this constitution is loaded by `team-boot` at the start of every session. Agents and humans MUST follow it; on conflict, the constitution supersedes ad-hoc practices.
- **Alignment**: `/team-repair` (Check 6) verifies project constitutions inherit these principles. Project constitutions may extend, never contradict.
Write {CONSTITUTION_FILE} with this exact structure:
---
type: Constitution
title: "{TEAM_NAME} Constitution"
description: "Team-wide principles and governance"
resource: ./context_modules/constitution.md
tags: [constitution]
timestamp: {TODAY}T00:00:00Z
---
# {TEAM_NAME} Constitution
1. **{Principle Name}**
{Statement. Rationale.}
2. **{Principle Name}**
{Statement. Rationale.}
...
## Governance
{Governance section from Phase 3}
Rules for writing:
timestamp to today. If the file carries custom fields (created, modified, verified, age_days, id, cdr_ref, evidence), preserve them and set modified to today.title and H1: keep the existing team name if present; otherwise derive from the team AI directives directory name or ask.1. Name) — no ### subsections per principle, no version/ratified date lines.CONSTITUTION_STATE was missing, create the parent directory first: mkdir -p "{TEAM_AI_DIRECTIVES}/context_modules".If TD_IS_GIT is true and TD_CLEAN is true, offer a single commit on the current branch (no branch/PR flow — that remains the CDR lifecycle's job):
Commit the constitution update to team-ai-directives?
git -C "{TEAM_AI_DIRECTIVES}" add context_modules/constitution.md
git -C "{TEAM_AI_DIRECTIVES}" commit -m "docs: {create|amend} team constitution — {N} principles"
[Y/n]
If TD_CLEAN is false, skip the commit offer and note the team AI directives has uncommitted changes.
Report:
## Team Constitution Summary
**Mode**: {Create | Amend}
**File**: {CONSTITUTION_FILE}
**Principles**: N ({added} added, {amended} amended, {removed} removed)
**Committed**: {yes | no — reason}
### Principles
1. {Name} — {one-line statement}
2. ...
### Next Steps
1. Run `/team-repair` to validate the team AI directives and refresh verification timestamps
2. Review project constitutions for alignment (team-repair Check 6)
Version / Ratified lines — git history is the versioning### subsections per principle — flat numbered listpopulated constitution — amend mode requires explicit per-principle decisions.adlc/memory/constitution.md) are out of scope/levelup-publish, not this skill/team-constitution/team-setup (Mode 3 scaffold — placeholder constitution)
↓
/team-constitution (this skill — real principles)
↓
/team-repair (validate team AI directives, refresh freshness)
Ongoing amendments follow the CDR lifecycle (/levelup-init or /levelup-specify → /levelup-clarify → /levelup-publish), with /team-constitution available for explicit interactive edits.
{CONSTITUTION_FILE} exists with OKF frontmatter (type: Constitution present)placeholder marker text is gone[ALL_CAPS]), no version/ratified date linesmodified updatedTEAM_AI_DIRECTIVES — Path to the team AI directives (overrides .adlc/init-options.json)..adlc/init-options.json — Project-level config file with team_ai_directives field.team-ai-directives/ relative to project root.Factor XI (Directives as Code) — the team's foundational governance document is created and maintained as a version-controlled artifact, never embedded ad-hoc in prompts.
$ARGUMENTS
Take tikalk/team-constitution from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.