5.3 KiB
12 — Quality, linting and evaluation
Quality philosophy
A playbook is trustworthy when its structure, safety, clarity and observed behavior are evidenced. Popularity, length and confident wording are not quality proof.
Quality dimensions
Scope clarity
Does the playbook define the target, permitted reading scope, modification scope, exclusions and protected behavior?
Safety
Does it prevent destructive, secret-exposing or policy-weakening behavior appropriate to its risk?
Verification
Does it require relevant checks and evidence rather than a narrative claim?
Reproducibility
Can the same package version and normalized inputs reproduce the same output?
Compatibility
Are supported stacks, required profile capabilities and limitations explicit?
Reporting
Does the final report make outcome, evidence, risks and unresolved items reviewable?
Efficiency
Does the task avoid unnecessary repository-wide change, redundant investigation and repeated validation without sacrificing safety?
Scores are displayed separately on a defined scale, such as Not assessed, Weak, Adequate, Strong. A combined score may be calculated for sorting but must never replace the dimensions.
Lifecycle policy
Draft
- schema-valid or actively being edited;
- may have lint errors;
- not recommended outside author workspace.
Reviewed
- schema and semantic validation pass;
- no blocking prompt-lint findings on required examples;
- human editorial review complete;
- limitations documented.
Validated
- Reviewed requirements;
- required evaluation cases pass;
- evaluation environment and fixture version recorded;
- no unresolved safety regression.
Battle-tested
- Validated requirements;
- minimum real-world run count under policy;
- acceptable operator feedback and failure rate;
- no unaddressed severe incident;
- evidence remains recent enough for the playbook class.
Deprecated
- replacement or rationale provided;
- historical rendering remains available;
- excluded from default recommendations.
Static linter catalog
Suggested rule IDs:
PB001missing missionPB002missing explicit scopePB003missing done-when criteriaPB004missing reporting contractPB005duplicate input or step IDPB006invalid autonomy rangePB007unknown template variablePB008published version without changelogPB009validated status without evidencePR001ambiguous unbounded improvement languagePR002conflicting read-only and modification instructionPR003vague “best practices” without dimensionsPR004asks for success claim without evidenceSA001token-like value in rendered outputSA002protected path in change scopeSA003destructive migration without rollback/backupSA004Git push/release not explicitly authorizedSA005imported content placed in policy sectionVA001bugfix lacks reproduction/regression stepVA002implementation lacks available build/test validationVA003dependency change lacks lockfile/install/build checkVA004frontend flow lacks browser verificationVA005inspect playbook lacks evidence-source reporting
Every finding includes severity, location, message, rationale, remediation hint and provenance.
Evaluation case format
An evaluation case defines:
- case ID and version;
- target playbook/version range;
- fixture repository reference and digest;
- repository profile;
- inputs and autonomy;
- expected prompt properties;
- prohibited prompt properties;
- optional future execution expectations;
- scoring rubric.
MVP can evaluate rendering and lint behavior without executing Codex. Future isolated evaluation can run tasks in disposable fixture environments.
Static evaluation examples
- generated prompt contains all required headings;
- no secret fixture value appears;
- protected paths are rendered as no-change constraints;
- selected
observeautonomy contains no implementation permission; - missing test command creates warning rather than invented command;
- stack incompatibility blocks export;
- same input produces same digest;
- a conditional migration section appears only when migration input is true.
Future execution evaluation
Fixture repositories intentionally contain known problems. Evaluation runner captures:
- task completion status;
- changed file set;
- protected-path violations;
- command exit codes;
- tests added or changed;
- artifact diffs;
- final report completeness;
- token/time/cost metadata where available;
- human review.
The runner must use isolated disposable environments and must never execute untrusted playbooks on the DevRunbook application host.
Regression policy
A new playbook version compares against the previous version on common evaluation cases. Publication UI highlights:
- newly passing cases;
- newly failing cases;
- meaningful prompt diffs;
- new permissions or wider scope;
- changed required inputs;
- validation reductions.
Safety or validation regressions block promotion to Validated.
User feedback
Feedback fields:
- task was understandable;
- Codex stayed within scope;
- validation was sufficient;
- follow-up prompts were required;
- result solved the intended problem;
- free-form note;
- optional execution evidence.
Feedback is not silently converted into evaluation evidence. It is a separate signal with abuse and privacy controls in future community features.