Rite adopt
Skill ViktorsBaikers/DevRites/pack/generated/codex/skills/rite-adopt
Adopt an existing or legacy codebase into DevRites by reverse-engineering current behavior, seeding conventions, and establishing the workflow. Use for inherited or live applications.From its SKILL.md
npx -y skills add ViktorsBaikers/DevRites --skill rite-adoptAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.7 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it
Codex compatibility
This is the Codex mirror of a DevRites skill. In Codex:
- Load DevRites engineering standards from
.agents/skills/devrites-lib/reference/standards/. Read.agents/skills/devrites-lib/reference/standards/core.mdbefore workflow work, then load the other.agents/skills/devrites-lib/reference/standards/*.mdfiles exactly when this skill asks for them. - Use the installed
devrites-enginebinary as the canonical runtime helper surface for orientation, gates, and state mutation. - Invocation and dispatch are different: invoke means run a skill in this context; dispatch means start a fresh agent with
spawn_agent, await it, and reconcile its result. Never describe inline skill work as a dispatch. - On MultiAgent V2, call
spawn_agentwith the exact namedagent_type=devrites-<role>, a uniquetask_name, andfork_turns="none". Codex loads that role TOML'sdeveloper_instructionsnatively. Because V2 collaboration lifecycle calls bypass hooks, DevRites verifies the current durable parent/child rollout for the exact role, wait, completion, and non-empty delivered result. - On MultiAgent V1, when the named role is not exposed, use generic
explorerfor a read-only role withfork_turns="none"and name exactly one.codex/agents/devrites-<role>.tomlcontract in the message. Trusted.codex/hooks.jsoninjects that contract's exactdeveloper_instructionsand binds the child to the fail-closed reviewer read-only guard. - On MultiAgent V1,
devrites-slice-wrightuses genericworkerwithfork_turns="none"and the exact role TOML named in the message. Trusted.codex/hooks.jsonbinds it to the active reconcile window and.wright-allowlist; do not substituteworkerfor an exposed V2 named role. - The invoked skill's
required-agent-rolesfrontmatter arms the fail-closed Stop receipt. Every listed role must have a confirmed start, wait, and non-empty result in this turn. - If any required named or generic agent dispatch is unavailable or rejected, stop for HITL. Never execute a DevRites specialist role in the root context.
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
- Codex project hooks are installed in
.codex/hooks.json; declared-leaf hooks are scoped inside.codex/agents/devrites-*.toml. Review and trust them with/hooksbefore relying on hook enforcement. - When this skill asks a HITL question via
AskUserQuestion: Codex's equivalent (request_user_input) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and end the turn so the human answers: NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the.devrites/AFKsentinel.
$rite-adopt: onboard existing code
$rite-adopt derives a spec and initial conventions from existing code. It produces the
same spec.md used by the rest of the lifecycle and seeds the conventions ledger with
observed project idioms.
Use it once when onboarding a repository or one of its sub-areas. Continue with
$rite-clarify, $rite-temper, $rite-define, and $rite-build.
Need only a code map?
$rite-zoom-outmaps unfamiliar code without creating a workspace or ledger. Use$rite-adoptwhen the project should enter the lifecycle.
Rules consulted (read on demand from .agents/skills/devrites-lib/reference/standards/)
Pull documentation.md when recording the adoption decisions (why-not-what) in
decisions.md; pull principles.md when the code
upholds invariants worth proposing as project principles (step 4a).
Operating rules (DevRites core)
- No silent assumptions · prefer the project's existing conventions (you are documenting them, not imposing new ones) · ask the human when the adoption scope or the next-build objective is unclear.
Workflow
- Read
.agents/skills/devrites-lib/reference/standards/core.md, then rundevrites-engine preamblefor deterministic workspace orientation. - Scope the adoption (
$ARGUMENTS). Which repo or sub-area is being onboarded, and: if stated: what the user wants to build next on top of it. If the next-build objective is missing, ask once (it shapes the spec's acceptance); if the area is ambiguous, confirm before investigating the whole tree. - Inspect the existing code to establish the project's current structure. Use a
code-intelligence index if available (codebase-memory-mcp first (its
get_architecturegives a fast overview), cross-checked with codegraph + graphify, else standard methods (LSP / Read/Grep/Glob); see.agents/skills/devrites-lib/reference/standards/tooling.md) for structure, callers, and impact. Capture, per adoption: current behavior, architecture + placement (layers, seams, where each kind of thing lives), the commands (test / build / typecheck / lint), and the idioms (naming, layering, error model, test style) + recurring gotchas. ReadPRODUCT.md/DESIGN.md/CLAUDE.md/AGENTS.mdif present. - Write
spec.mdvia rite-spec's spec template and create the workspace + set.devrites/ACTIVE(state-workspace). The spec records the current behavior as the baseline and the next objective (what adoption is for) with measurable acceptance. Also writedecisions.md,assumptions.md,questions.md, andstate.md(phase: spec). 3a. Seed the capability ledger from the baseline. If the derivedspec.mdcarries structured### Requirement:blocks, fold them into the living.devrites/specs/<capability>/spec.mdledger so the project's current proven behavior is recorded before the first new feature. The next$rite-specwrites deltas against this ledger (ledger.md). A flat baseline folds as all-ADDED into the feature slug's capability; tag capabilities in the spec first if you want finer granularity.
Skip when the baseline records no structured requirements (nothing to seed).devrites-engine ledger diff .devrites/work/<slug> # preview devrites-engine ledger sync .devrites/work/<slug> # seed - Seed the conventions ledger from observed behavior:
adoption § seeding. This is the bootstrap exception to
evidence-gated promotion. Seeds start at the base band with onboarding provenance;
later sealed slices may confirm or contradict them, and fresh evidence wins.
Completion: every seed names observed evidence, provenance, and the base band.
4a. Propose candidate principles (optional and human-ratified). When the code
consistently enforces an invariant, such as integer cents for money, redacted PII in
logs, or preserved v1 endpoints, propose it as a candidate principle rather than a
convention. Principles are prescriptive gates, so never seed them automatically.
Present each candidate through
AskUserQuestionwith evidence, and write human-ratified candidates to.devrites/principles.mdwith a dated Governance entry (principles.md). An unratified candidate remains a convention, not a gate. If no invariant qualifies, declare no principles. - Hand off. Continue with
$rite-clarify. Its topology scan asks no questions when the derived contract is already clear. Every plan then runs$rite-vetbefore build. Do not plan or build here. Completion: one next rite is reported and no plan or application code was written.
Mid-flight discipline. Do not invent conventions, seed an assumed idiom, or turn adoption into a rewrite. Adoption records existing behavior; a later feature changes it. See
anti-patterns.
Output
Progress first: run devrites-engine progress, then use the shared completion reply contract
(devrites-lib/reference/reply-contract.md).
Default success shape:
Done: adopted existing behavior into <slug>; baseline spec and placement recorded.
Changed: spec.md, decisions.md, conventions ledger, principles proposals <updated|none>
Evidence: not applicable; reverse-derived behavior is recorded for review
Open: <none | adoption questions>
Next: $rite-clarify
Record: .devrites/work/<slug>/spec.md
↻ Hygiene: /clear before the next phase
What ships with it: 2 files
2.5 KB alongside SKILL.md
reference/
- adoption.md1003 B
- anti-patterns.md1.5 KB