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/
Constraints
Section titled “Constraints”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.
Input shape
Section titled “Input shape”repostring(required) — GitHub owner/name of the consumer repo to register.
Output shape
Section titled “Output shape”registry_pathstringadr_pathstringregistered_slugstringregistered_atstringpr→PRRefdiff_preview→DiffPreview
Example
Section titled “Example”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" } }}Recipe
Section titled “Recipe”(no recipe yet — see SKILL guide)