Skip to content

petrova_act_register_consumer

Register a new consumer repo in registry.yaml. Reads the new repo’s .petrova/contract.yaml on its default branch, derives slug + url + default_branch + contract_sha + fleets_allowed + integrations + registered_at, and opens a PR adding repos[] = . Co-emits an ADR recording the registration. target_repo MUST be petrova-codes.

Upholds: MR-4 · MR-7 · MR-12 · MR-17 Side effects: Creates branch petrova/registry-edit/petrova_act_register_consumer/ in petrova-codes. Modifies registry.yaml. 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’.
  • REPO_NOT_ACCESSIBLE — GitHub API call to repos/ must return 200. 404/403 surface as REPO_NOT_ACCESSIBLE.
  • CONTRACT_MISSING — .petrova/contract.yaml must exist on the new repo’s default branch.
  • CONTRACT_INVALID — Contract must validate against contracts/contract.schema.json.
  • SLUG_TAKEN — Contract’s slug must not collide with an existing registry entry. Use petrova_act_registry_edit for intentional re-registrations.
  • repo string (required) — GitHub owner/name of the consumer repo to register.
  • registry_path string
  • adr_path string
  • registered_slug string
  • registered_at string
  • prPRRef
  • diff_previewDiffPreview

Input:

{
"envelope": {
"verb": "petrova_act_register_consumer",
"target_repo": "petrova-codes",
"idempotency_key": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"dry_run": true,
"actor": "human:alex@devarno.com",
"triggered_by": {
"kind": "human_request",
"ref": "onboarding:newco-hq"
}
},
"params": {
"repo": "petrova-fleet/newco-hq"
}
}

Output (output_dry_run):

{
"envelope": {
"verb": "petrova_act_register_consumer",
"status": "dry_run",
"idempotency_key": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"mr_citations": [
"MR-4",
"MR-7",
"MR-12",
"MR-17"
]
},
"result": {
"registry_path": "registry.yaml",
"adr_path": "docs/decisions/2026-05-14-petrova_act_register_consumer-newco-hq.md",
"registered_slug": "newco-hq",
"registered_at": "2026-05-14T09:00:00Z",
"diff_preview": {
"files": [
{
"path": "registry.yaml",
"operation": "modify"
},
{
"path": "docs/decisions/2026-05-14-petrova_act_register_consumer-newco-hq.md",
"operation": "create"
}
],
"branch": "petrova/registry-edit/petrova_act_register_consumer/newco-hq",
"commit_message": "act(petrova): register consumer newco-hq"
}
}
}

(no recipe yet — see SKILL guide)