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/
Constraints
Section titled “Constraints”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.
Input shape
Section titled “Input shape”slug→RepoSlug(required)confirm_slug→RepoSlug(required) — Must equal slug. Forces an extra keystroke before a destructive op.rationalestring(required) — Written into the ADR body verbatim. ≥40 chars.
Output shape
Section titled “Output shape”registry_pathstringadr_pathstringremoved_slugstringpr→PRRefdiff_preview→DiffPreview
Example
Section titled “Example”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" } }}Recipe
Section titled “Recipe”(no recipe yet — see SKILL guide)