# Cerebro Rust Migration

> Work on the Go-to-Rust migration - porting compatibility callers, family authority promotion, parity evidence, or Rust read API capabilities.

- Skill: `writer/cerebro-rust-migration` (Agent Skill)
- Install (CLI): `npx skillmds@latest add writer/cerebro-rust-migration`
- Raw SKILL.md: https://api.skillmd.com/api/skills/writer/cerebro-rust-migration/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: writer (https://skillmd.com/u/writer)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/writer/cerebro-rust-migration

---


# Cerebro Rust Migration

Authority cutover is family-by-family and fails closed. Before editing,
read [docs/engineering/rust-organizational-platform.md](../../../docs/engineering/rust-organizational-platform.md)
(authority model, compatibility port, remaining-callers table) and
[docs/engineering/rust-graph-read-migration-plan.md](../../../docs/engineering/rust-graph-read-migration-plan.md)
(sequencing and capability gaps).

## Invariants that gate every change

- A persisted `(tenant, source, family)` authority record selects exactly one
  writer, including replay/refetch/device/CLI/orchestrator entry points. Do
  not add alternate Go entry points that could restore a retired writer.
- Rust authority requires a commit receipt and fails closed. The
  compatibility mapper is parity evidence, never a write fallback for a
  promoted family.
- Promotion is driven by stored parity receipts: `cerebro-platform
  evaluate-family` evaluates, `promote-family` records authority,
  `show-authority` reads the effective record.

## Porting a compatibility caller

1. Find the caller's row in the remaining-callers table; it names the exact
   Rust read-API capability gap blocking it.
2. Map the caller's entity kinds and relations into the organizational schema
   before touching query code; path callers additionally need URN-keyed
   `FindPaths` entry points.
3. Migrated callers must stop referencing `ports.RawCypherQueryStore` — that
   reference is what marks a caller as legacy.
4. Update the remaining-callers table in the same PR.

## Parity and validation

- `make fixture-oracle-generate` regenerates the checked Go fixture oracle
  consumed by Rust parity tests.
- `make projection-parity-test` compares legacy and Rust semantic projection
  facts over the same provider records.
- Focused Rust loop: `make rust-fmt-check rust-clippy rust-test`; benchmarks
  via `make rust-organizational-platform-benchmark` when projection cost is
  touched.
- `make changed-check` for the diff-selected remainder.

## Public PR safety

Keep tenant names, environment details, candidate counts, and rollout
observations out of public PR metadata — see "Public PR Data Safety" in
[AGENTS.md](../../../AGENTS.md).

