navori AI harness
navori

adopt

Take a harness file you wrote by hand under navori's management, without changing what it says.

Usage

navori adopt <path> [--apply] [--cwd <dir>]

Flags

<path> A .md file under the repo's .claude/ (e.g. .claude/skills/mine.md). Any other path is refused.
--apply Write to disk. Without it, adopt only previews.
--cwd <dir> Repo directory (default: current).

Examples

See what it would do

$ navori adopt .claude/skills/mine.md
●  would wrap '.claude/skills/mine.md' in a managed block id="adopted-claude-skills-mine", leaving its content untouched
└  Preview: nothing was written. Run it again with --apply.

Adopt it

$ navori adopt .claude/skills/mine.md --apply
◆  '.claude/skills/mine.md' adopted (managed block id="adopted-claude-skills-mine").
└  Backup at ~/.navori/backups/repo-2026-09-01T20-04-26-926

Running it twice does nothing

$ navori adopt .claude/skills/mine.md --apply
└  '.claude/skills/mine.md' was already adopted — no changes.

Notes

  • Adopting is WRAPPING, not rewriting: your content goes inside the managed block unchanged. What navori takes over is the file's lifecycle, never what it says.
  • It refuses — without writing anything, and saying why — a file that already carries a managed block, one outside the repo, and any path that is not a .md under .claude/.
  • It comes from 'navori doctor': the foreign-harness section offers this command when the clashing file lives in the repo. When it lives in ~/.claude, navori only reads, and the way out is to acknowledge the conflict.
  • It always backs up before writing, and tells you where the backup landed.