rite-adopt
Adopt an existing codebase into DevRites by reverse-engineering current behavior and establishing a baseline workspace.
Files3
View on GitHubSKILL.mdpack/.claude/skills/rite-adopt/SKILL.md
GitHub<!-- loads: {"always":["rite-adopt/reference/adoption.md","rite-adopt/reference/anti-patterns.md","rite-polish/reference/ledger.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md"],"triggers":{"security":["devrites-lib/reference/standards/security.md"]},"rootOnly":["devrites-lib/reference/standards/code-index.md"]} -->
Read-set manifest:
devrites-engine context <slug> --skill rite-adopt(no workspace:--out <path>) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
/rite-adopt: onboard existing code
Reverse-engineer current behavior into spec.md; do not rewrite product code or create a
parallel convention system.
Workflow
Pre-flight (workspace anchor). Resolve the repo root; take the target slug from the user (ask once if material); a missing/ambiguous slug, wrong repo root, or unwritable
.devrites/blocks Adopt. Failing case: adopt infers the slug from cwd alone → stop. If.devrites/work/<slug>/exists or.devrites/ACTIVEnames another live slug, never overwrite or silently re-point: ask once for extend (update in place, preserving history and settled content), a new slug, or stop; AFK stops.Read core; resolve repository/sub-area and next objective. Ask once only if material.
Follow
reference/adoption.md: inspect current behavior, architecture and placement, callers, reusable seams, repository/CI commands, visible code/test patterns, non-obvious constraints, and any touched load-bearing seam that needs characterize-before-modify (record disposition:characterizedwith see-it-fail stub, ordeferredwith evidence why safe). Failing case: plan touches auth middleware with no characterize row → Adopt fails until disposition is recorded. Read existingAGENTS.md,CLAUDE.md, product, and design guidance.Create the workspace and write
spec.md,decisions.md,assumptions.md,questions.md, andstate.md. The spec separates the current baseline from the measurable next objective. Record eachcontestedconvention fromadoption.mdinquestions.md; propose no guidance for it.For a structured baseline, follow the ledger's read workflow in
ledger.md§ Reading in Spec and Adopt: list ledger specs with the host filesystem and read only the touched capabilities; classify against current file content, never memory. The native preview/write workflow runs during Polish, not Adopt.For a verified non-obvious policy or recurring/costly mistake, prefer existing hook/lint/ CI/type/schema enforcement; else propose one evidence-cited nearest-scope instruction edit. Propose only. When the nearest scope is
AGENTS.md,CLAUDE.md, or another host identity or memory file,/rite-customizeapplies the edit afterdevrites-engine check skill-trust <path>and explicit human approval, never here (triggersecurity). Owner:security.md§ Prompt-injection resistance. Never create convention bands, scores, or a command cache.A genuine non-negotiable invariant may be proposed for
.devrites/principles.md; the human must ratify it.Set the next step to
/rite-spec <slug>and stop; Spec extends this workspace and ownsbrief.md,checklists/, andspec_gate. Do not plan or build.
Refuse the rationalizations in
anti-patterns.
Output
Done: adopted <scope> into <slug>.
Changed: <workspace artifacts>; project guidance <proposed | unchanged>
Evidence: <source/CI paths inspected>
Open: <questions | none>
Next: /rite-spec <slug>