Rename registry slug `nestr-tools` → `nestr`; repoint URL to umbrella monorepo
Date: 2026-05-21 Status: open Supersedes: none Superseded-by: none — current
Context
Section titled “Context”The nestr-tools slug was added to registry.yaml on 2026-05-13 as part of the discovery sweep that classified 21 repos under the GitHub org of the same name. At entry time the slug was set to match the org and the URL was pointed at nestr-tools/engine (the primary backend) as a stand-in, because no umbrella governing monorepo existed on GitHub yet.
Pre-onboarding inspection of the local workspace (~/code/workspace/nestr-tools) on 2026-05-21 surfaced that:
- A real umbrella monorepo does exist locally, with committed history at
a974ef3and gitlinks toengine,web,perch,ollyas submodules — but its declaredoriginpointed atnestr-tools/nestr-tools.git, which does not resolve on GitHub. - The
petrova_onboardverb fetchesbootstrap_answers_pathfrom the registry-declared URL’s default branch. With the URL pointed atnestr-tools/engine, the verb would write.petrova/contract.yamlinto the engine sub-repo rather than the governing monorepo — wrong target. - Slug collision with the org name (
nestr-tools) confused the readiness scan (the verb reads “registered slug” while the operator reads “GitHub org”). Splitting them removes the ambiguity.
The umbrella monorepo is the correct petrova target: it is where CLAUDE.md, MILESTONES.md, AGENTS.xml, and the north-star prose will live, and where submodule pointer bumps already get committed today.
Decision
Section titled “Decision”- Rename the registry slug
nestr-tools→nestr. The new slug refers to the governing monorepo; the GitHub org remainsnestr-tools. - Create the umbrella repo at
https://github.com/nestr-tools/nestr(done out-of-band on 2026-05-21 viagh repo create; existing local history pushed asmain). Update the local clone’soriginto match. - Repoint the registry
urlfor this entry fromhttps://github.com/nestr-tools/enginetohttps://github.com/nestr-tools/nestr. - Update collateral that keys off the old slug:
state/nestr-tools.yaml→state/nestr.yaml(slug field bumped);dashboard/src/lib/fleet-categories.tskeynestr-tools→nestr. - Leave historical records frozen: pre-baseline classification (
pre-baseline/2026-05-13/phase1-org-classification.yaml) and Baseline v1/v2/v3 ADRs continue to reference the old slug — they describe the system as it stood on 2026-05-13 and are append-only per MR-7.
role (scaffold), profile (standard), fleets_allowed ([]), added ('2026-05-13'), and all five integrations_applicability entries (not_applicable) are preserved unchanged. Original add-date retained because the entry’s content lineage is continuous; only the identifier changes.
Alternatives considered
Section titled “Alternatives considered”- Use
petrova_act_registry_editto fix the URL only, keep slugnestr-tools— leaves a permanent collision between the org name and the slug, and the readiness/onboard surface keeps reading “nestr-tools” both as an org (21 repos) and as a single registered entry. Confusing for operators and skill output. Rejected. - Deregister
nestr-toolsthen registernestrviapetrova_act_register_consumer—register_consumerrequires a.petrova/contract.yamlto already exist on the consumer’s default branch, which is precisely what onboarding will create. Catch-22. Rejected. - Use a slug-rename verb — none exists;
registry_editops are scoped underrepos[<slug>].*and cannot change the slug key itself. Out of scope.
Consequences
Section titled “Consequences”For code:
registry.yamlentry mutated: slug + url + notes.state/nestr-tools.yamlrenamed tostate/nestr.yaml; internalslug:field bumped.dashboard/src/lib/fleet-categories.tsmap key bumped.
For docs:
- This ADR is the rename’s audit record. Future ADRs reference the new slug.
- Historical ADRs (Baseline v1/v2/v3, pre-baseline classification) retain old slug per MR-7.
For in-flight phases:
- Blocks
petrova-bootstrapandpetrova_onboardfor this consumer until merged. Onboarding will resume against the new slug + URL withbootstrap_answers_pathresolving againstnestr-tools/nestr@main.
For invariants:
- No MR-N changes. Operation respects MR-4 (registry hygiene), MR-7 (append-only — old entry historically preserved in git history; new ADR documents the rename), MR-12 (registry edits land via PR, never direct push).
References
Section titled “References”- Registry entry pre-edit:
registry.yaml:464(old) — slugnestr-tools, urlnestr-tools/engine - Registry entry post-edit:
registry.yaml— slugnestr, urlnestr-tools/nestr - Predecessor entry add:
docs/decisions/2026-05-13-petrova-baseline-v1.md(and -v2, -v3) — includednestr-toolsin the 29-slug roster - Pre-baseline classification:
pre-baseline/2026-05-13/phase1-org-classification.yaml:56—proposed_slug: nestr-tools(frozen historical) - Skill:
skills/petrova-onboard/SKILL.md— registry-onboarding wrapper - Verb that would have been needed (but cannot do slug-rename):
cli/src/verbs/petrova_act_registry_edit.ts
Sign-off
Section titled “Sign-off”- Subagent: petrova-onboard agent (run: petrova-onboard-prompt-v0.2.0 / 2026-05-21)
- Human: alex@devarno.com — confirms slug rename + URL repoint scope via interactive prompt 2026-05-21