100%

§10 detector consumer expansion

Goal

The new edges pay rent: seam_scan detectors over every new edge class (through the drop-unless-verified gate), rule-metadata tier migrations, dossier enrichment, and the tier-migration fitness probe green.

Implementation Sketch

  • Detectors: one row per new capability in seam_scan registry + DETECTOR_TO_BATCH + substrate category constants; every candidate through gate.py (INTEL-06 discipline).
  • Tier migrations: tier: annotations in impl-hygiene.md aliases move subcats to graph-native/graph-assist; rule_metadata.py derives; finding-categories.md Detection columns synced same commit.
  • Consumer surfaces: dossier tiers gain writer/reader + fabric + co-change blocks; intelligence.md Graph-First rows; per-rules-file blurbs; all drift tests green.

Spec References

  • scripts/impl_hygiene_review_runtime/seam_scan/{registry,substrate,gate}.py + seam_routing.py + rule_metadata.py; .claude/rules/finding-categories.md; .claude/rules/intelligence.md (blurbs + Graph-First table)

Work Items

  • New seam_scan detectors over the new edges (writer/reader registration DRIFT, sibling divergence, exit-reason parity, suppression audit, test-topology gaps) each through gate.py drop-unless-verified + DETECTOR_TO_BATCH routing + validate_routing
  • rule_metadata tier migrations: update tier: annotations in impl-hygiene.md rule aliases for every subcat the new edges make graph-native/graph-assist; finding-categories.md detection columns synced
  • Dossier enrichment: intel_package_runtime surfaces the new seam surfaces (writers/readers, fabric edges, co-change) in dossier tiers; intelligence.md Graph-First Mandate rows + rules-file blurbs updated (drift test green)
  • Fitness tier-migration probe green at target; detector candidate quality spot-audit recorded

Fresh intel (regenerated)

This section makes the new graph edges “pay rent”: it registers seam_scan detectors over the edge classes earlier sections built (SIBLING_DIVERGENCE, CO_CHANGED_WITH, TESTS/test-topology, field-use, artifact-fabric), migrates rule-metadata tiers, enriches the dossier tiers, and turns the fitness probe green. It is a pure TOOLING target — the terrain is Python under scripts/impl_hygiene_review_runtime/ + scripts/intel_package_runtime/, so the deep compiler matrix (dual-exec, AIMS, cross-executor parity) is N/A; the binding hygiene families are the universal SRP/SSOT + STRUCTURE:* / LEAK:* set.

The single decisive [JOIN] this package forces:

The new-edge facets the detectors consume are populated for repo='ori' ONLY — they are EMPTY on the ori-platform estate the detector code itself lives in. TESTS=8587 / CO_CHANGED_WITH=83749 / SIBLING_DIVERGENCE=3012 are all repo='ori'; the same queries return ZERO rows for ori-platform. The one exception is the artifact-fabric INCLUDES edge (298, all ori-platform) — the @-include/dispatch fabric IS the platform estate’s own signal.

Decisions this forces before any detector is written:

  1. Default the new detectors to repo="ori" — matching the existing graph-native detectors (naming_stutter_candidates(str = "ori", ...)). A new-edge detector run against ori-platform gets empty substrate and dry-fires. This is the whole point of the co-change/test-topology/sibling detectors: they target the COMPILER graph.
  2. Route EVERY new detector through the two existing invariant gates or the build breaks: gate.py:gate_candidate (INTEL-06 drop-unless-verified — a candidate with no is_verified verification is dropped) AND seam_routing.py:validate_routing (bijection: every DETECTORS key routed, every routed key a real detector, every target a real batch — enforced at cmd_rails_start production entry). Adding a detector key without a DETECTOR_TO_BATCH row hard-fails rails start.
  3. The tier migration (w-99c6afc6) must keep finding_categories_tier_drift green — the drift check asserts impl-hygiene.md rule-alias tier: annotations equal finding-categories.md Detection columns; both move in the SAME commit or the drift test fails.
  4. The artifact-fabric INCLUDES edge is the platform estate’s live substrate — the @-include/skill-fabric detectors (registration DRIFT, exit-reason parity, suppression audit) have real edges to consume ON the platform estate, unlike the compiler-only sibling/co-change/test edges.
["is_verified", "gate_candidate", "validate_routing", "finding_categories_tier_drift"]

DIG DEEPER

scripts/intel-query.sh status | python3 -m json.tool | grep -iE 'sibling|co_change|test_topology|platform|artifact_fabric'
scripts/intel-query.sh cypher "MATCH ()-[r:TESTS]->() RETURN r.repo, count(*) ORDER BY count(*) DESC" --human

(full dossier: detector-consumer-expansion—s-3e8a3135.intel.md)