Calibration Report Template

What this checks

For every step of a mission type, calibration compares the context the step needs (its required scope) with the context the DRG actually resolves for it. Two things must hold: everything required is resolved (a gap is a half-1 violation), and nothing irrelevant is resolved (extra context is a half-2 violation). In the originating spec this is the "§4.5.1 inequality check" (R-005).

Each per-mission-type report records that check for every step, and is updated whenever calibration is re-run.

Column Shape

Column Notes
Step id The mission step under calibration.
Action id Resolved action URN (e.g. action:software-dev/implement).
Profile id Agent-profile URN assigned to this step.
Resolved DRG artifact URNs Output of the DRG resolve_context call (direct scope + transitive requires/suggests).
Scope edges involved Direct scope edges from the action node that seed the resolution.
Missing context URNs in RequiredScope but absent from ResolvedScope — a half-1 violation.
Irrelevant / too-broad context URNs in ResolvedScope that are neither required nor in known_irrelevant — a half-2 violation.
Recommended DRG edge changes Structured add_edge / remove_edge / rewire_edge proposals.
Before/after evidence ResolvedScope snapshot before the recommended fix; expected scope after the fix.

Overlay Files

Project-local DRG mutations go to:

.kittify/charter-packs/overlays/calibration-<mission>.yaml

Supported keys: add_edge, remove_edge, nodes.

The runtime DRG resolver reads these overlays via specify_cli.calibration.walker._build_graph() which calls charter.offering.drg.loader.merge_layers() followed by _apply_remove_edges().

Reports