Data Model — Mission-Type DRG Edges

No persistent data model change. The "model" is the new edge shape + the generator decision table.

E-1 — The new edge

FieldValue
sourcef"mission_type:{id}"
targetf"action:{id}/{step}" for each step in mission_types/{id}.yaml action_sequence
relationRelation.REQUIRES

Count: 21 (software-dev 5, documentation 7, research 5, plan 4). All targets are existing action:* nodes.

E-2 — Generator decision table

ConcernDecision
Emit pointinto all_edges @~extractor.py:847, before calibrate_surfaces @851 + deterministic sort @866-871
_KIND_MAP "mission_type" entryadd (C-007) — safer against future partial-node states
:778 "no _KIND_MAP until edges" caveatretire (now obsolete)
models.py:46 "nodes only, no edges yet"correct (FR-005)
Regenerationspec-kitty doctrine regenerate-graph; commit graph.yaml same WP (byte-identity)
"missions" literal (3×)hoist to a helper/const (Sonar S1192)

E-3 — Test transitions

TestBeforeAfter
test_mission_type_nodes_have_no_incident_edgesasserts no edgesre-pinned to assert the requires edges (+ docstrings)
test_shipped_graph_orphan_count_within_documented_residualRED (18 > 14)GREEN (10 ≤ 14); ceiling unchanged
assert_valid / freshness twinsgreengreen (no dangling/cycle/dup; byte-identical)
new focused testsmission_type:plan = 4 edges; a non-plan type = its full sequence; no mission_type orphan