Commission to Programme
SkillDev toolsCommission a project to the Programme SDLC bundle. Tailored entry point with Programme-specific audience guidance; equivalent to /sdlc-core:commission --option programme.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Commission to Programme skill
What this skill tells your AI
The instructions your AI receives, as published by stevegjones/ai-first-sdlc-practices in skills/commission-programme/SKILL.md and read by ahel’s review.
Install the sdlc-programme bundle into a project. Use this when:
- Team size 11-50 across 2-5 teams
- Specification maturity is formal or contract-first
- Blast radius is moderate-to-high
- Audit-friendly traceability matters but full regulated-industry traceability does not
For other team shapes:
- 1-2 person projects → use
commission-solo(or/sdlc-core:commission --option solo) - 3-10 person product teams → use the framework default (no commissioning needed)
- Regulated industries → use
commission-assured(Phase E, future)
Steps
LEVEL="${1:-production}" # default production for Programme
if [ -n "$1" ] && [ "$1" != "--level" ]; then
echo "Usage: commission-programme [--level production|enterprise]" >&2
exit 1
fi
LEVEL="${2:-production}"
case "$LEVEL" in
production|enterprise) ;;
*)
echo "Programme supports levels: production, enterprise" >&2
exit 1
;;
esac
# Delegate to sdlc-core:commission with --option programme --level <LEVEL> --bundle-dir <Programme bundle path>
PROJECT_DIR=$(pwd)
BUNDLE_DIR="$CLAUDE_PLUGIN_ROOT" # the sdlc-programme plugin's own root inside the container/install
# Sanity check the bundle dir
if [ ! -f "$BUNDLE_DIR/manifest.yaml" ]; then
echo "Programme bundle manifest not found at $BUNDLE_DIR/manifest.yaml" >&2
exit 1
fi
python3 << PYEOF
from datetime import datetime, timezone
from pathlib import Path
from sdlc_core_scripts.commission.installer import install_bundle
from sdlc_core_scripts.commission.manifest import parse_manifest
from sdlc_core_scripts.commission.recorder import (
CommissioningRecord, is_commissioned, write_record,
)
bundle_dir = Path("$BUNDLE_DIR")
project_dir = Path("$PROJECT_DIR")
team_config = project_dir / ".sdlc" / "team-config.json"
manifest = parse_manifest(bundle_dir / "manifest.yaml")
constitution = project_dir / "CONSTITUTION.md"
overwrite = is_commissioned(team_config)
if constitution.exists() and not overwrite:
print(f"WARNING: {constitution} exists and project is uncommissioned.")
response = input("Replace existing constitution and commission to Programme? [y/N] ")
if response.lower() != "y":
print("Aborted.")
raise SystemExit(1)
overwrite = True
result = install_bundle(bundle_dir, project_dir, manifest, overwrite=overwrite)
print(f"Installed {len(result.installed_paths)} files")
record = CommissioningRecord(
sdlc_option="programme",
sdlc_level="$LEVEL",
commissioned_at=datetime.now(timezone.utc).isoformat(),
commissioned_by="claude-agent",
option_bundle_version=manifest.version,
)
write_record(team_config, record)
print(f"Commissioned: programme / $LEVEL / {manifest.version}")
PYEOF
Done
Report:
- Bundle installed:
programme v0.1.0 - Files written: count + key paths (CONSTITUTION.md, .claude/skills/, .sdlc/templates/)
- Commissioning record at:
.sdlc/team-config.json - Next steps:
- Read the new
CONSTITUTION.md— it adds Programme-specific articles 12-14 - For your first feature, run:
phase-init requirements <feature-id> - Edit the requirements-spec, then
phase-gate requirements <feature-id> - Continue through design, test, and code phases
- Read the new
Model selection
This skill is mostly mechanical (file copies, JSON writes). A smaller model is sufficient.
Signals
- GitHub stars
- 41
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
commission-programme- Source
- github.com/stevegjones/ai-first-sdlc-practices