Skip to content

Rename registry slug `nestr-tools` → `nestr`; repoint URL to umbrella monorepo

Date: 2026-05-21 Status: open Supersedes: none Superseded-by: none — current

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:

  1. A real umbrella monorepo does exist locally, with committed history at a974ef3 and gitlinks to engine, web, perch, olly as submodules — but its declared origin pointed at nestr-tools/nestr-tools.git, which does not resolve on GitHub.
  2. The petrova_onboard verb fetches bootstrap_answers_path from the registry-declared URL’s default branch. With the URL pointed at nestr-tools/engine, the verb would write .petrova/contract.yaml into the engine sub-repo rather than the governing monorepo — wrong target.
  3. 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.

  1. Rename the registry slug nestr-toolsnestr. The new slug refers to the governing monorepo; the GitHub org remains nestr-tools.
  2. Create the umbrella repo at https://github.com/nestr-tools/nestr (done out-of-band on 2026-05-21 via gh repo create; existing local history pushed as main). Update the local clone’s origin to match.
  3. Repoint the registry url for this entry from https://github.com/nestr-tools/engine to https://github.com/nestr-tools/nestr.
  4. Update collateral that keys off the old slug: state/nestr-tools.yamlstate/nestr.yaml (slug field bumped); dashboard/src/lib/fleet-categories.ts key nestr-toolsnestr.
  5. 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.

  • Use petrova_act_registry_edit to fix the URL only, keep slug nestr-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-tools then register nestr via petrova_act_register_consumerregister_consumer requires a .petrova/contract.yaml to 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_edit ops are scoped under repos[<slug>].* and cannot change the slug key itself. Out of scope.

For code:

  • registry.yaml entry mutated: slug + url + notes.
  • state/nestr-tools.yaml renamed to state/nestr.yaml; internal slug: field bumped.
  • dashboard/src/lib/fleet-categories.ts map 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-bootstrap and petrova_onboard for this consumer until merged. Onboarding will resume against the new slug + URL with bootstrap_answers_path resolving against nestr-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).
  • Registry entry pre-edit: registry.yaml:464 (old) — slug nestr-tools, url nestr-tools/engine
  • Registry entry post-edit: registry.yaml — slug nestr, url nestr-tools/nestr
  • Predecessor entry add: docs/decisions/2026-05-13-petrova-baseline-v1.md (and -v2, -v3) — included nestr-tools in the 29-slug roster
  • Pre-baseline classification: pre-baseline/2026-05-13/phase1-org-classification.yaml:56proposed_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
  • 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