Validates that changes in outl-core preserve the tree CRDT invariants (convergence, idempotency, no-cycle, no-silent-loss). Use PROACTIVELY after any edit in crates/outl-core/src/tree.rs, log.rs, op.rs, or in tree CRDT tests. Rejects PRs that break any invariant.
Reviews project docs (docs/.md, per-crate CLAUDE.md, root CLAUDE.md, .github/copilot-instructions.md, README) after a feature is implemented, and updates or creates whatever is out of sync. Use PROACTIVELY at the end of any PR/feature that changes public API, markdown syntax, TUI shortcut, slash command, sidecar, op…
Ensures that the .md ↔ ops ↔ .md pipeline is stable and that blocks never disappear silently during external matching. Use PROACTIVELY after changes in outl-md (parse, render, sidecar, matching). Runs roundtrip + matching suite and reports divergences.
Compares the Rust implementation in outl-core against the pseudocode in Kleppmann et al. 2022 ("A highly-available move operation for replicated trees"). Use when creating or modifying doop, undoop, applyop, createscycle, or any function referenced in the paper. Points out exact line-by-line divergences.
Proposes (and when authorized, executes) refactoring of Rust files that have grown too large. Use proactively when the file-size-guard.sh hook fires, or when the user asks for an architecture review. Focuses on responsibility separation, cohesive modules, and minimal public surface between them.