adopt

Registers an existing knowledge tree as a base and reports divergence without writing into it.

3|1|Updated Jul 17, 2026
One-click install
npx skills add https://github.com/AlmogBaku/aos --skill adopt-almogbaku
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: adopt
Source: https://github.com/AlmogBaku/aos/tree/main/capabilities/kb/skills/adopt
Command: npx skills add https://github.com/AlmogBaku/aos --skill adopt-almogbaku

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? You already have a knowledge base, notes repo, or Obsidian vault, and you want it managed under the kb system without risking any modification to its contents. This Skill registers that existing tree, reports how it diverges from the expected contract, and optionally migrates trees still on the old layout. ## Core Features & Use Cases - Zero-write registration: Runs kb adopt <path> to register an existing tree while guaranteeing nothing is written into it, treating divergence as a finding rather than an error. - Divergence reporting: Detects .kb/base.yml, runs the full lint as a divergence report, and honours the most-restrictive audience rule so a shared tree cannot be registered as private. - Old-layout migration: Detects a root BASE.yaml with no .kb/ directory and, with user agreement, runs kb migrate --base <path> which moves files with git mv so history follows each file. - Use Case: During bootstrap you point the agent at your existing Obsidian vault ('adopt ~/my-vault'); it registers the vault, shows which contract files are missing, and outlines the convergence path without touching a single note. ## Quick Start Ask your agent to adopt your existing knowledge base, for example: adopt ~/my-kb as a base and tell me how it diverges from the expected layout.

Frequently Asked Questions about adopt

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I adopt an existing knowledge base or Obsidian vault?▼

Run `kb adopt <path> --name <n> --audience <a> --purpose "<p>"` to register the tree. It detects `.kb/base.yml`, runs a lint as the divergence report, and writes nothing into the adopted tree.

How do I migrate a KB from the old BASE.yaml layout?▼

A root `BASE.yaml` with no `.kb/` directory means the old layout. Run `kb migrate --base <path>` after committing the worktree; it moves files with `git mv` so history follows, and a `git revert` of the migration commit is the only undo.

Does adopting a knowledge base modify my existing files?▼

No. Adoption makes zero writes into the adopted tree; divergence is reported as a finding, never an error. Convergence steps like creating a config are owner-approved and done separately, never as a bulk rewrite of a live tree.

Why does kb migrate fail or refuse to run?▼

kb migrate refuses on an uncommitted worktree, so commit or stash first. It also has no `--dry-run` flag, and the path must be passed as the `--base` option since a bare `kb migrate <path>` is a usage error.

Why does kb lint show clean results on an unmigrated tree?▼

Other kb verbs run from inside an unmigrated tree silently resolve to the registry's default base, because path resolution falls back when it finds no `.kb/base.yml`. Always pass `--base <path>` explicitly until migration is done.

When should I use kb-init or kb-import instead of adopt?▼

Use kb-init to create a base from nothing, and kb-import to transform another KB's content into this one's shape. Adopt is only for registering a tree the user already has while leaving its content untouched.