Data Model: Implement-Loop Coord-Authority Completion

This mission has no persistent data schema. The "model" is the artifact-kind partition that decides read authority, and the residual taxonomy the FR-008 sweep classifies against.

Artifact-kind partition (authority: src/specify_cli/mission_runtime/artifacts.py)

PartitionKinds (examples)Read authorityTopology behavior
PRIMARYSPEC, WORK_PACKAGE_TASK (tasks/, WP*.md), LANE_STATE (lanes.json), PRIMARY_METADATA (meta.json), plan/data-model/tasks-indexthe primary checkout for all topologies (via resolve_planning_read_dir(kind=...)_canonicalize_primary_read_handle)identical across flat / lanes / coord
STATUSSTATUS_STATE (status.events.jsonl, status.json), ISSUE_MATRIX, ACCEPTANCE_MATRIX, ANALYSIS_REPORTthe coordination surface when materializedcoord-aware (keeps #1718/#1848 transients)

Invariant (the bug): for a COORDINATION-topology mission post-#2106, the -coord worktree carries STATUS artifacts ONLY — no meta.json, no tasks/, no lanes.json (authoritative: implement.py:1020-1028; live-probe confirmed). A PRIMARY-kind read through a coordination-aware resolver therefore lands on a husk that lacks the artifact → hard-fail or stale/empty result.

Coordination-aware resolvers (the wrong authority for PRIMARY reads)

candidate_feature_dir_for_mission, resolve_feature_dir_for_slug, resolve_feature_dir_for_mission, resolve_handle_to_read_path — all topology-aware; all return the coord surface for a coord-topology mission. The fix is not to change them (C-003: they stay handle-blind) but to re-point PRIMARY-kind call sites onto the seam.

Residual taxonomy (FR-008 classification)

ClassDefinitionAction
ROUTEPRIMARY-kind read on the implement/review loopre-point to resolve_planning_read_dir(kind=...) (this mission)
MIXED-READone resolved dir feeds BOTH a PRIMARY and a STATUS readsplit per-leg (C-001); PRIMARY→seam, STATUS→coord-aware; may need a signature change
KEEPSTATUS-kind read, or deliberate coord-aware probeunchanged
TICKET-AND-PINPRIMARY-kind read out of this mission's loop scopepin in _DIR_READ_KNOWN_RESIDUALS + tracking issue (no silent skip)

Call-site shapes: two-hop (d = resolver(...); d / "x" — the only shape the legacy scanner caught) and inline (resolver(...) / "x" — the blind spot FR-007 fixes).

Gate state (the ratchet)

ElementPre-missionPost-mission target
dir-read scan scopecli/commands/ (+acceptance/)all of src/specify_cli/
inline-call-shape detectionabsentpresent + self-test
_DIR_READ_KNOWN_RESIDUALS6 pins (loop residuals)in-loop residuals drained to 0; out-of-scope residuals pinned-and-ticketed
ROUTED_CANONICALIZER_FLOOR27 (live 31)recomputed strictly below post-fix live census
resolution-gate permanent allowlist7 hand-sanctioned3 (4 auto-route via the bare-modern fold)