Generate a capability maturity model with assessment criteria and level definitions
You are helping an enterprise architect create a Capability Maturity Model document. This document defines capability dimensions relevant to the project domain, maturity levels with measurable evidence criteria, self-assessment questionnaires, and transition criteria for progressing between levels.
$ARGUMENTS
Note: Before generating, scan
projects/for existing project directories. For each project, list allARC-*.mdartifacts, checkexternal/for reference documents, and check000-global/for cross-project policies. If no external docs exist but they would improve output, ask the user.
RECOMMENDED (read if available, note if missing):
OPTIONAL (read if available, skip silently if missing):
external/ files) — extract existing maturity assessments, capability frameworks, benchmark dataprojects/000-global/external/ — extract enterprise maturity frameworks, capability baselines, industry benchmarksprojects/{project-dir}/external/ and re-run, or skip.".arckit/references/citation-instructions.md. Place inline citation markers (e.g., [PP-C1]) next to findings informed by source documents and populate the "External References" section in the template.Identify the target project from the hook context. If the user specifies a project that doesn't exist yet, create a new project:
projects/*/ directories and find the highest NNN-* number (or start at 001 if none exist)002)projects/{NNN}-{slug}/README.md with the project name, ID, and date — the Write tool will create all parent directories automaticallyprojects/{NNN}-{slug}/external/README.md with a note to place external reference documents herePROJECT_ID = the 3-digit number, PROJECT_PATH = the new directory pathLoad the maturity model template structure:
Read the template (with user override support):
.arckit/templates/maturity-model-template.md exists in the project root.arckit/templates/maturity-model-template.md (default)Tip: Users can customize templates with
$arckit-customize maturity-model
Analyze all available project artifacts, the user's input, and the project domain to determine 4-6 relevant capability dimensions. The dimensions must be tailored to the project domain — do NOT use a generic one-size-fits-all set.
Examples of domain-specific dimensions:
For each dimension, define:
For each capability dimension, define 5 maturity levels following the standard maturity progression:
| Level | Name | General Characteristics |
|---|---|---|
| 1 | Initial | Ad-hoc, reactive, undocumented, person-dependent |
| 2 | Repeatable | Basic processes documented, some consistency, reactive improvement |
| 3 | Defined | Standardised processes, proactive management, measured outcomes |
| 4 | Managed | Quantitatively managed, data-driven decisions, continuous improvement |
| 5 | Optimised | Continuous innovation, industry-leading, automated optimisation |
For each level within each dimension, provide:
For each dimension, define what must be demonstrated to progress from one level to the next:
Each transition criterion must be:
Create a self-assessment questionnaire with 3-5 questions per dimension. Each question must include calibrated answers showing what Level 1, Level 3, and Level 5 responses look like.
Format for each question:
Create a traceability matrix showing which architecture principles align to which capability dimensions:
If no principles document exists, note this as a gap and recommend running $arckit-principles first for full alignment.
Generate Document ID: ARC-{PROJECT_ID}-MMOD-v1.0 (for filename: ARC-{PROJECT_ID}-MMOD-v1.0.md)
Before writing the file, read .arckit/references/quality-checklist.md and verify all Common Checks pass. Fix any failures before proceeding.
IMPORTANT: The maturity model document will be a LARGE document (typically 300-500 lines). You MUST use the Write tool to create the file, NOT output the full content in chat.
Create the file at:
projects/{project-dir}/ARC-{PROJECT_ID}-MMOD-v1.0.md
Use the Write tool with the complete maturity model content following the template structure.
After writing the file, show a concise summary (NOT the full document):
## Capability Maturity Model Created
**Document**: `projects/{project-dir}/ARC-{PROJECT_ID}-MMOD-v1.0.md`
**Document ID**: ARC-{PROJECT_ID}-MMOD-v1.0
### Maturity Model Overview
- **Capability Dimensions**: [N] dimensions defined
- **Maturity Levels**: 5 levels per dimension (L1 Initial through L5 Optimised)
- **Assessment Questions**: [N] questions per dimension ([TOTAL] total)
- **Principles Mapped**: [N] principles aligned to dimensions
### Dimensions Defined
1. **[Dimension 1]**: [Brief scope description]
2. **[Dimension 2]**: [Brief scope description]
3. **[Dimension 3]**: [Brief scope description]
4. **[Dimension 4]**: [Brief scope description]
5. **[Dimension 5]**: [Brief scope description] (if applicable)
6. **[Dimension 6]**: [Brief scope description] (if applicable)
### Source Artifacts
- [List each artifact scanned with Document ID]
### Coverage Gaps
- [Note any missing artifacts that would improve dimension definition]
- [Note any dimensions lacking principle alignment]
### Next Steps
1. Conduct baseline assessment using self-assessment questionnaire
2. Set target maturity levels per dimension with stakeholders
3. Create phased roadmap for maturity progression: `$arckit-roadmap`
4. Incorporate maturity targets into architecture strategy: `$arckit-strategy`
**File location**: `projects/{project-dir}/ARC-{PROJECT_ID}-MMOD-v1.0.md`
CRITICAL - Auto-Populate Document Information Fields:
Before completing the document, populate ALL document control fields in the header:
Construct Document ID:
ARC-{PROJECT_ID}-MMOD-v{VERSION} (e.g., ARC-001-MMOD-v1.0)Populate Required Fields:
Auto-populated fields (populate these automatically):
[PROJECT_ID] -> Extract from project path (e.g., "001" from "projects/001-project-name")[VERSION] -> "1.0" (or increment if previous version exists)[DATE] / [YYYY-MM-DD] -> Current date in YYYY-MM-DD format[DOCUMENT_TYPE_NAME] -> "Maturity Model"ARC-[PROJECT_ID]-MMOD-v[VERSION] -> Construct using format above[COMMAND] -> "arckit.maturity-model"User-provided fields (extract from project metadata or user input):
[PROJECT_NAME] -> Full project name from project metadata or user input[OWNER_NAME_AND_ROLE] -> Document owner (prompt user if not in metadata)[CLASSIFICATION] -> Default to "OFFICIAL" for UK Gov, "PUBLIC" otherwise (or prompt user)Calculated fields:
[YYYY-MM-DD] for Review Date -> Current date + 30 daysPending fields (leave as [PENDING] until manually updated):
[REVIEWER_NAME] -> [PENDING][APPROVER_NAME] -> [PENDING][DISTRIBUTION_LIST] -> Default to "Project Team, Architecture Team" or [PENDING]Populate Revision History:
| 1.0 | {DATE} | ArcKit AI | Initial creation from `$arckit-maturity-model` command | [PENDING] | [PENDING] |
Populate Generation Metadata Footer:
The footer should be populated with:
**Generated by**: ArcKit `$arckit-maturity-model` command
**Generated on**: {DATE} {TIME} GMT
**ArcKit Version**: {ARCKIT_VERSION}
**Project**: {PROJECT_NAME} (Project {PROJECT_ID})
**AI Model**: [Use actual model name, e.g., "claude-sonnet-4-5-20250929"]
**Generation Context**: [Brief note about source documents used]
CRITICAL - Token Efficiency:
Domain-Agnostic Design: The maturity model dimensions must be tailored to the specific project domain. Do NOT use a generic CMMI-style framework — derive dimensions from the actual project context, requirements, and strategic goals.
Measurable Evidence Criteria: Every maturity level must include concrete, measurable evidence criteria. Avoid vague statements like "mature processes exist" — instead specify what artifacts, metrics, or practices must be observable (e.g., "Automated data quality checks run on > 90% of ingestion pipelines with results published to a dashboard").
Principles Alignment is Critical: Each capability dimension should trace back to one or more architecture principles. This ensures the maturity model measures what the organisation has agreed matters. If principles are unavailable, recommend creating them first.
Use Write Tool: The maturity model document is typically 300-500 lines. ALWAYS use the Write tool to create it. Never output the full content in chat.
Version Management: If a maturity model already exists (ARC--MMOD-v.md), create a new version (v2.0) rather than overwriting. Maturity models should be versioned to track assessment evolution over time.
Self-Assessment Calibration: The questionnaire answers for L1, L3, and L5 must be clearly differentiated so that assessors can reliably score themselves. Avoid ambiguous or overlapping descriptions between levels.
Integration with Other Commands:
$arckit-principles, $arckit-strategy, $arckit-requirements, $arckit-stakeholders, $arckit-risk, $arckit-data-model$arckit-roadmap (phased maturity progression), $arckit-strategy (capability targets), $arckit-risk (capability gap risks)Transition Realism: Transition criteria between levels should be achievable within a 6-12 month improvement cycle. Do not set criteria that would take years to achieve in a single level jump.
< or > (e.g., < 3 seconds, > 99.9% uptime) to prevent markdown renderers from interpreting them as HTML tags or emojiAfter completing this command, consider running:
$arckit-roadmap -- Create phased roadmap based on maturity progression$arckit-strategy -- Incorporate maturity targets into architecture strategy