Declare layer.yaml, add a Python engine over a local SQLite store, and cover deterministic assessment, the §13 gap register, stance-map inventory, claim guardrails, and the gate-house review path with tests. Assistant: grok Assistant-Session: 01a04ceb-150e-7e80-a542-ec8b1372e164
1.8 KiB
maturity-engine — Agent Instructions
Repo Identity
Purpose: Compute, deterministically, how far a subject has progressed against declared criteria and submitted evidence, and remember that progression. Gap register and capability readiness live here.
Layer: Engine (PIP). NetKingdom Security Layer Model v0.7. Never render or cache an authorization decision. Never compile a level into registry content. Never let a consumer branch on a fetched level — emit a claim.
Domain: infotech
Repo slug: maturity-engine
Workplan prefix: MAT-WP-
Machine-readable declaration: layer.yaml, checked by
scripts/check_layer_conformance.py. Frontmatter in INTENT.md must agree.
Stack and commands
Python ≥ 3.12. Persistence is this PIP's own SQLite store, not OpenBao.
python3 -m pip install -e ".[dev]"
make test
make check-layer
make lint
PYTHONPATH=src python3 -m maturity_engine bootstrap --at 2026-08-29T12:00:00Z
Default database: data/maturity-engine.sqlite (gitignored) or
MATURITY_ENGINE_DB.
Module boundaries
| Module | Owns |
|---|---|
models.py |
ladders, levels, criteria, evidence, assessments, gaps |
compute.py |
deterministic level computation |
store.py |
SQLite + local outbox |
scoring.py |
four conformance states; blocked-clean not below conforming |
claims.py |
PIP claim shape and guardrail rejections |
seed.py |
§13 snapshot, §13.1 inventory, first two ladders as data |
engine.py |
facade; no decide/authorize/may |
cli.py |
inspect and compute; does not decide |
Ladder content is registered data. ASM-0…ASM-6 is gate-house's.
PEP-stance publication is ops-warden's.
State Hub
API: http://127.0.0.1:8000. Log progress at session close. Update task
status when closing a workplan task (todo / progress / done).