This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Content repository for the PKI Maturity Model (PKIMM), maintained by the PKI Consortium PKIMM working group. The content is rendered at https://pkic.org/pkimm by an external Hugo-based site — this repo holds the source markdown, the canonical model data, and assessment tools. There is no build system, no test suite, and no application code here. Treat changes as documentation/data edits, not software changes.
_index.md— top-level overview page (Hugo front matter).model/— definitions of maturity levels, modules, and the list of categories.categories/<slug>/_index.md— one file per category (16 categories: five in Governance including the Cryptography category, four each in Management and Operations, three in Resources). Folder name matches the YAMLid(kebab-case, no numeric prefix). Ordering is controlled byweight:in the front matter.categories/templates/_index.md— the canonical template for new category descriptions. Anything incategories/must follow its structure (Overview → Maturity levels table → Requirements table → Details with Guidance/Assessment/References per requirement).assessment/— assessment process pages (scoping, assessment, evaluation, reporting, implementation, action plans).data/pkimm-model-2.0.0.yaml— machine-readable source of truth for the 2.0.0 model: modules → categories → levels + requirements (with weights, guidance, assessment, references as catalog IDs). Validated bydata/pkimm-model.schema-2.0.0.json. Downstream integrations consume this file. The version suffix tracks the model version (see theversionfield inside the file).data/pkimm-model-1.0.0.yaml— archived 1.0.0 model; validated bydata/pkimm-model.schema-1.0.0.json.data/pkimm-model.schema-2.0.0.json— JSON Schema for the 2.0.0 YAML shape. Category and requirementidfields are kebab-case strings;requirements[].referencesis an array of catalog IDs.data/pkimm-model.schema-1.0.0.json— JSON Schema for the 1.0.0 YAML shape (retroactively renamed frompkimm-model.schema.json).data/pkimm-references.yaml— independently-versioned references catalog. Per-requirementreferencesfields in the 2.0.0 model contain arrays of IDs from this catalog. Edit here to update reference metadata without touching the model YAML.data/pkimm-references.schema-1.0.0.json— JSON Schema for the references catalog.extensions/extension.schema-1.0.0.json— JSON Schema for PKIMM extension files.extensions/catalog/pqc/pqc-extension.yaml— PQC (Post-Quantum Cryptography) extension version 0.2.0, compatible with PKIMM 2.0.0.scripts/— authoring and validation scripts (see "Authoring workflow" below).tools/— published Excel assessment tools (PKI_Maturity_Assessment_Tool_*.xlsx,PKI_Maturity_Self_Assessment_Tool_*.xlsx).integrations/eramba/— per-schema-version converters that produce Eramba-importable CSV packages.convert-yaml-data-to-csv-package-1.0.0.py— readsdata/pkimm-model-1.0.0.yaml(schema 1.0.0) and writespkimm-1.0.0.csv.convert-yaml-data-to-csv-package-2.0.0.py— readsdata/pkimm-model-2.0.0.yaml(schema 2.0.0) anddata/pkimm-references.yaml; writespkimm-2.0.0.csv. Future schema versions get their own script alongside.
release-notes/— per-version release notes (release-notes/1.0.0/,release-notes/2.0.0/) and a template atrelease-notes/templates/. See the release notes for consumer-facing changes and migration guidance.faq/,.github/README.md— supplementary content; the GitHub-rendered README lives in.github/README.md, not the repo root.
- All markdown files use Hugo-style YAML front matter (
date,title,weight, optionaldraft,sideMenu,tags,summary, hero fields on_index.md). Keepweightconsistent with intended navigation order (category folders no longer carry a numeric prefix; order is determined byweight:alone). - Category files mirror
categories/templates/_index.mdexactly — the table columns, anchor-link pattern in the Requirements overview ([id](#requirement-slug)), and the per-requirement Guidance/Assessment/References subsections are load-bearing for both readers and downstream tooling. - Mark in-progress category drafts with
draft: truein the front matter; remove it when the category is ready to publish. - The maturity-level vocabulary (2.0.0) is:
1 - Initial,2 - Foundational,3 - Advanced,4 - Managed,5 - Optimized. Note: 1.0.0 used "Basic" for level 2; "Foundational" is the 2.0.0 name. Don't introduce new level names. - The category maturity formula is the weighted average of requirement ratings:
Σ(rᵢ·wᵢ) / Σ(wᵢ). Requirement weights are non-negative integers; preserve them when editing. - Category and requirement identifiers are stable kebab-case strings (e.g.,
strategy-and-vision,sponsor-support). Do not rename them after release — downstream integrations depend on them.
The markdown category pages and data/pkimm-model-2.0.0.yaml describe the same model in two forms. YAML is the source of truth; markdown is generated from it.
- Edit YAML: make your change in
data/pkimm-model-2.0.0.yaml(ordata/pkimm-references.yamlfor reference-metadata changes). - Regenerate markdown: run
python scripts/generate_category_docs.pyto regenerate all category pages undercategories/from the updated YAML. - Update narrative docs: manually update
model/pages,_index.mdmindmap, andrelease-notes/notes if the change is consumer-facing. - Validate: run
python scripts/check_model_docs_consistency.py --repo-root .— must exit0 error(s), 0 warning(s)before committing. - Tag: when releasing, bump
versionindata/pkimm-model-2.0.0.yaml, copy the file todata/pkimm-model-<new>.yaml, add a schema file for the new shape, and author release notes underrelease-notes/<new>/.
CI runs the validator on every PR and push to main (.github/workflows/check-consistency.yml).
Key scripts in scripts/:
generate_category_docs.py— regeneratescategories/markdown from YAML.check_model_docs_consistency.py— validates YAML ↔ markdown parity, vocabulary, counts, references, and schema consistency. Run this before every commit.
Contributions are governed by the PKI Consortium IPR Agreement (https://pkic.org/ipr/) and the PKIMM working group charter (https://pkic.org/wg/pkimm/charter/). Substantive model changes are working-group decisions — don't redesign categories, levels, modules, or weights unilaterally; editorial fixes, typos, and clarifications are fine.