dotbabel

ADR-0001 — Monorepo dual-persona layout

Status: Accepted (2026-04-14)

Context

The work Kaio needs this repo to do splits into two distinct audiences:

  1. Personal dotfilescommands/, skills/, CLAUDE.md, bootstrapped into ~/.claude/ via bootstrap.sh.
  2. @dotbabel/dotbabel npm package — a reusable plugin other repos install via npm i -D. Lives under plugins/dotbabel/.

The overlap is large: both surfaces define slash commands, skills, hooks, and CI workflows. Keeping two repos in sync by copy-paste was the status quo; drift appeared within days.

Decision

Single repo. Two top-level trees:

dotbabel/
├─ commands/  skills/  CLAUDE.md  bootstrap.sh  sync.sh    ← dotfile persona
└─ plugins/dotbabel/                                         ← npm package

package.json.files excludes the dotfile-only paths from the npm tarball. Consumers installing the package see only plugins/dotbabel/. The author’s bootstrap.sh symlinks from commands/ and skills/ into ~/.claude/.

Consequences

Alternatives considered

Revisit triggers