Skip to content

2026-05-08 — Onboard smo1-io (meta + 8 sub-repos) to the petrova line

Status: proposed (this PR) Author: alex@devarno.com (operator), bootstrapped via Claude Code Decides for: petrova-hq registry; smo1-io family governance posture Plan reference: smo1-io operator’s plug-into-the-eva-resilient-pike plan, Phase C

smo1-io is a link-shortener SaaS platform with a personality layer (pawprintz / treatz / niblz scoring; six-status link taxonomy; Airlock OIDC; ≤100ms p99 redirect at the edge). The org hosts a meta-repo plus eight sub-repos, all bootstrapped on 2026-04-28 with petrova-shaped scaffolding (north-star, decisions/, MILESTONES, AGENTS.xml, META-RULES) but never enrolled in the petrova registry — no governance loop, no MR-audit, no drift-check, no integration with the broader devarno-cloud control plane.

EVA published eva.consumption.v1 as a ratified contract on 2026-05-08 (eva-hq decision + petrova-hq PR #29 schema swap). That unblocked smo1-io as the first new consumer to onboard against the v1 contract — sub-repos can now declare real integration_eva blocks instead of falling back to legacy not_applicable.

This onboarding lands the smo1-io family in registry.yaml so the petrova CLI / aggregator / dashboard can govern it uniformly. The nine consumer-side .petrova/contract.yaml + profile.yaml files have already been written and schema-validated (Phase A + B of the plan); their contract_sha values are pinned in the registry entries below.

Add nine entries to petrova-hq/registry.yaml:

SlugRoleProfileRationale
smo1-iocontrol-planestrictMeta-repo. All integrations NA at this tier. Mirrors petrova-hq / eva-hq / rocky-hq / skyflow-hq posture.
smo1-io-purr-apiproductionstandardGo API. Source of truth for scoring (I-4). Coverage ≥70%.
smo1-io-meow-webproductionstandardNext.js dashboard. Airlock OIDC client. Six-status taxonomy display.
smo1-io-whiskers-landingproductionstandardMarketing site. Coverage ≥60%.
smo1-io-zoomies-edgeproductionstrictCloudflare Worker. Carries flagship latency invariant I-2 (≤100ms p99). Strict because edge regressions are production-impacting and irreversible.
smo1-io-catnip-packagesproductionstandardShared TS packages. Coverage ≥75%.
smo1-io-litter-boxproductionpermissiveLocal dev infra. All integrations NA. Permissive because no production traffic and no track record needed.
smo1-io-terraform-infrastructureproductionstrictIaC. Strict because terraform applies are irreversible.
smo1-io-service-templatescaffoldpermissiveGo microservice cookie-cutter. All integrations NA.

fleets_allowed: [] for all nine — no agent-fleet automation against smo1-io repos at onboarding time. Verbs requiring a fleet identity (request_merge_when_green) will be refused; open_decision / verify_round / request_review remain available for human-fleet invocation.

integrations_applicability per the table in registry.yaml. EVA is required for the 6 sub-repos that ship code or IaC affecting production (purr-api, meow-web, whiskers-landing, zoomies-edge, catnip-packages, terraform-infrastructure); not_applicable for meta + litter-box + service-template. EVA status in each contract.yaml is currently pending — it flips to wired in Phase D of the smo1-io plan, after evidence pointers (events workflow, prompts manifest) land and verify_round passes.

contract_sha values pinned (12-char git hash-object prefix):

Slugcontract_sha
smo1-iof09488e48743
smo1-io-purr-api5f93ec0c471a
smo1-io-meow-webe6c1ebef3784
smo1-io-whiskers-landingc001176a2a23
smo1-io-zoomies-edge3ea6ceb58897
smo1-io-catnip-packages7c7792e7c75d
smo1-io-litter-box85ea23638234
smo1-io-terraform-infrastructure1d2d81c3dfb8
smo1-io-service-template847f0bdc0715

Bump updated: to keep 2026-05-08 (same date as skyflow onboarding earlier today; comment updated to mention both).

  • The petrova CLI (petrova status, petrova diagnose <slug>, petrova validate <repo>) resolves smo1-io family entries once this PR merges. Currently petrova validate errors with REPO_NOT_IN_REGISTRY on all nine — that is the trigger.
  • Phase D of the smo1-io plan (EVA wiring) becomes executable after merge: eva-emit composite action wires per repo, prompts/ catalog seeds for purr-api + meow-web, then verify_round flips EVA surfaces from pending to wired.
  • Phase E of the plan (V1-ALPHA delivery: 8 dev phases mapped to MILESTONES.md M1.1..M5.x) becomes petrova-managed phases — each gets start_phase / close_phase / verify_round decisions and EVA run events automatically once Phase D wiring lands.
  • AGENTS.xml gap on 8 of 9 sub-repos (only the meta-repo has one) is surfaced in each sub-repo’s bootstrap decision doc as a follow-up. Sub-repo AGENTS.xml is not strictly required pre-Phase-D but should exist before verify_round can pass.
  • terraform-infrastructure was sparse at onboarding (no north-star, no MILESTONES) — its bootstrap decision tracks the scaffolding gap.
Terminal window
cd ~/code/workspace/petrova-hq/cli && node --input-type=module -e "
import {Ajv2020} from 'ajv/dist/2020.js';
import addFormats from 'ajv-formats';
import fs from 'fs'; import yaml from 'js-yaml';
const s = JSON.parse(fs.readFileSync('../registry.schema.json','utf8'));
const ajv = new Ajv2020({strict:false, allErrors:true});
addFormats.default(ajv);
const v = ajv.compile(s);
const d = yaml.load(fs.readFileSync('../registry.yaml','utf8'));
console.log(v(d) ? 'VALID' : JSON.stringify(v.errors,null,2));
"

Result: VALID.

Per-repo contract validation evidence lives in each sub-repo’s docs/decisions/2026-05-08-petrova-bootstrap.md.

  • Changes to ~/code/workspace/devarno-cloud/airlock (operator-only).
  • Schema edits to petrova-hq or eva-hq.
  • EVA wiring (Phase D of the smo1-io plan; runs after this PR merges).
  • Lowering coverage thresholds in any smo1-io repo.

None.