Skip to content

petrova_act_deregister_consumer

Remove a consumer entry from registry.yaml. Opens a PR against petrova-codes:main deleting repos[slug] and co-emits an ADR recording the deregistration rationale. Refuses unless an explicit confirm_slug matches the slug being removed. target_repo MUST be petrova-codes.

Upholds: MR-4 · MR-7 · MR-12 Side effects: Creates branch petrova/registry-edit/petrova_act_deregister_consumer/. Modifies registry.yaml (removes entry). Adds the ADR. Opens a PR labelled registry-edit + awaiting-human-merge. Does NOT auto-merge (MR-12).

  • TARGET_REPO_IS_PETROVA_CODES — envelope.target_repo must be ‘petrova-codes’.
  • SLUG_NOT_IN_REGISTRY — params.slug must appear in registry.yaml. Otherwise nothing to remove.
  • CONFIRM_SLUG_MISMATCH — params.confirm_slug must match params.slug exactly. Belt-and-braces safety against fat-finger deletion.
  • RATIONALE_TOO_SHORT — rationale must be ≥40 chars. Deregistration is a substantive governance act.
  • REFUSE_SELF_DEREGISTRATION — slug must not be ‘petrova-codes’ itself — the control plane cannot deregister itself.
  • slugRepoSlug (required)
  • confirm_slugRepoSlug (required) — Must equal slug. Forces an extra keystroke before a destructive op.
  • rationale string (required) — Written into the ADR body verbatim. ≥40 chars.
  • registry_path string
  • adr_path string
  • removed_slug string
  • prPRRef
  • diff_previewDiffPreview

Input:

{
"envelope": {
"verb": "petrova_act_deregister_consumer",
"target_repo": "petrova-codes",
"idempotency_key": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"dry_run": true,
"actor": "human:alex@devarno.com",
"triggered_by": {
"kind": "human_request",
"ref": "fleet-cleanup:2026-05-14"
}
},
"params": {
"slug": "asgard",
"confirm_slug": "asgard",
"rationale": "Repo archived 2026-05-14; no remaining contract or activity. Removing from registry to reduce dashboard noise."
}
}

Output (output_dry_run):

{
"envelope": {
"verb": "petrova_act_deregister_consumer",
"status": "dry_run",
"idempotency_key": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"mr_citations": [
"MR-4",
"MR-7",
"MR-12"
]
},
"result": {
"registry_path": "registry.yaml",
"adr_path": "docs/decisions/2026-05-14-petrova_act_deregister_consumer-asgard.md",
"removed_slug": "asgard",
"diff_preview": {
"files": [
{
"path": "registry.yaml",
"operation": "modify"
},
{
"path": "docs/decisions/2026-05-14-petrova_act_deregister_consumer-asgard.md",
"operation": "create"
}
],
"branch": "petrova/registry-edit/petrova_act_deregister_consumer/asgard",
"commit_message": "act(petrova): deregister consumer asgard"
}
}
}

(no recipe yet — see SKILL guide)