2026-08-12 — Edit registry for sparki-tools
rank: decision outranks: []
Section titled “rank: decision outranks: []”2026-08-12 — Edit registry for sparki-tools
Section titled “2026-08-12 — Edit registry for sparki-tools”Date: 2026-08-12 Status: ratified Verb: petrova_act_registry_edit Slug: sparki-tools MR-compliance: MR-4, MR-7, MR-12
Rationale
Section titled “Rationale”Backfill contract_sha for sparki-tools now that .petrova/contract.yaml exists on sparki-tools/platform-docs@main (platform-docs#7, merged 2026-08-12T06:10:49Z). Value 0a537498696b is the git-blob short sha of the merged contract, taken from a fresh state sweep at 2026-08-12T06:11:01Z and independently confirmed against git rev-parse origin/main:.petrova/contract.yaml (0a537498696b9ae447e2c9cb7e3ebbb577ecb5a1). petrova_act_reconcile_drift is structurally unable to perform this first backfill: sweep_state.ts:154-156 computes contract_drift as null rather than true whenever the registry entry has no contract_sha to compare against, so the verb refuses with NO_DRIFT_DETECTED. Without this edit the entry stays uncomparable and every subsequent sweep reports contract_drift=null for a repo that now has a real contract.
Change summary
Section titled “Change summary”registry.yaml > repos[sparki-tools] after this verb:
- slug: sparki-tools url: https://github.com/sparki-tools/platform-docs default_branch: main role: scaffold profile: standard fleets_allowed: [] added: '2026-05-13' contract_sha: 0a537498696b integrations_applicability: ares: optional traceo: optional crumb: not_applicable rocky: optional eva: not_applicable contract_committers: - humans notes: |- 25-repo workspace; platform-docs is primary. Only sparki-tools/platform-docs is governed — the other 24 repos (6 Go/Rust/Python services, 4 apps, 4 libs, 3 infra, 3 templates, plus .github and mobile-shared) are ungoverned by decision, matching the chronicle-hq / aphelion-craft / tektree-io one-primary-repo-per-org precedent. The workspace root is not a git repo and cannot carry a slug.
url re-pointed 2026-08-12 from sparki-tools/web-app. The 2026-05-13 bulk sweep picked web-app by commit recency ('web-app is freshest (7 days)'), not by decision. Onboarding then stalled against that target: petrova_install_playbook and the docs-invariants workflow landed (web-app#26, web-app#25) but .petrova/contract.yaml never did, which is why this entry has carried no contract_sha since registration. platform-docs holds decisions/, runbooks/, tasksets/ and system/ — including the three 2026-08-09 ADRs governing the in-flight airlock identity consolidation. The stranded web-app artefacts are removed in a follow-up sequenced after the contract lands here, so governance is never absent from both repos at once.
integrations_applicability decided 2026-08-12, replacing the blanket not_applicable set written by the 2026-05-13 bulk sweep (identical across chronicle-hq, aphelion-craft, v01t-io, cookr-hq, reactr-dev — swept, not decided). traceo:optional because the repo already carries 8 mermaid blocks across tasksets/TASKSET_EXECUTION_STRATEGY.md, assets/campaigns/dje-sparki-ui-1/diagrams.md, assets/campaigns/backlog/dje-sparki-001.md and -002.md, system/spec/forgery/.catalogue/CATALOGUE-AUTOMATION.md and assets/_base.md; the sweep had marked a live corpus inapplicable. ares:optional because petrova_onboard and petrova_install_playbook install two workflows into a repo that currently has no .github/workflows/ directory, so workflow runs begin existing at onboarding. rocky:optional because not_applicable silently suppresses governance-stone emission in every phase verb; noted tension with kahn-hq, which took not_applicable on comparable facts 2026-05-17 to avoid a silent agent — the later tektree-io reasoning (2026-08-11) is followed here. crumb:not_applicable — no src/content/cards corpus, decision and architecture prose only. eva:not_applicable per the estate-wide rule at registry.yaml:314.
profile=standard retained. fleets_allowed:[] is the operative lock — it refuses all agent automation regardless of profile (_helpers.ts:100-126), so strict would forbid only an auto-merge path that is already unreachable. permissive would remove the sole profile-level brake on a repo whose decision records are consumed by 24 sibling repos.
Applicability rationale recorded consumer-side at decisions/2026-08-12-petrova-onboarding.md, which .petrova/contract.yaml cites as not_applicable_decision_doc for crumb and eva (both review_by 2027-08-12).
contract_sha absent until the onboard PR merges and .petrova/contract.yaml exists to hash.Envelope
Section titled “Envelope”idempotency_key: bd2a86a044c0ea038392d80e16532b950bf7269aebb359fcabce03932b926ad9schema_fingerprint: 527e83bf1a3bactor: human:alex@devarno.comtriggered_by: kind: human_request ref: sparki-onboard-2026-08-12applied_at_iso: '2026-08-12T06:47:24.306Z'Sign-off
Section titled “Sign-off”Human merge required per MR-12 — this PR is opened with the
awaiting-human-merge label and does not auto-merge.