Prompt Maturity

This document rates the prompt protocol against the practices that coding-agent work has converged on. It is a self-assessment, not a gate.

The Scale

Each dimension is scored 0 to 3. The level is about evidence, not intent.

A dimension cannot reach 3 without a test that fails when the property breaks. Prose that claims a property does not raise the score.

The Dimensions

Dimension 3 requires Typical 2 Typical 1
Entry point a conventional entry file, checked by the validator the file exists described in the README
Context budget the baseline size is measured and bounded baseline plus task-relevant load one undivided rules file
Authority one home per rule, duplicates rejected, coverage enforced duplicates rejected rules restated in several files
Scope and authorization operations enumerated and cross-checked operations enumerated scope described in prose
Feedback loop one command, an observable result, and a report the agent cannot fake the command exists the command is documented
Durable memory state files plus the record forms some state files conversation only
Safety untrusted content handled and an injection corpus untrusted content rules rules only for secrets
Behavioral evals a scored model run repeats on every prompt change frozen cases, scored by hand none
Prompt-change discipline a rule change cannot land without its test tests exist review only
Parallel work isolation plus the delegation authority of a subagent isolation only one writer assumed

Scoring This Project

Run make maturity (sh scripts/prompt-maturity.sh). It computes the machine-checkable subset and prints each dimension with its ceiling. The script is deliberately unable to award the top score for behavioral evals and parallel work, because this project has no measurement or rule for them. The ceilings are the finding.

Two dimensions earned the top score by acquiring evidence rather than prose:

The manual remainder is judgment:

Rules

Context Audit

The budget makes growth visible; this procedure decides what stays.

An audit is judgment, so let the evals arbitrate: remove a candidate rule, run the cases, and see whether any behavior degrades.

Worked example, 2026-10-11: the capability block was 45% of the largest always-loaded file and already labelled (capability), so it moved to prompts/capabilities/. A table of contents, two rule files with no unique rule, and three restated rules went with it. The baseline fell from 46,212 to 39,477 bytes with no rule lost.