Skip to content

2026-05-01-lore-cairnet-wire-adoption


title: Adopt LORE + CAIRNET wire-up via sub-project E date: 2026-05-01 status: proposed mr_compliance: [MR-7, MR-13] outranks: docs/superpowers/specs/2026-05-01-petrova-lore-cairnet-spec.md

Section titled “title: Adopt LORE + CAIRNET wire-up via sub-project E date: 2026-05-01 status: proposed mr_compliance: [MR-7, MR-13] outranks: docs/superpowers/specs/2026-05-01-petrova-lore-cairnet-spec.md”

Sub-project A merged the spine with a lore_cairnet evidence block and a stub probe returning unreachable. Sub-projects B (ARES), C (Traceo + Ariel), and D (CRUMB) ratified the four-block pattern: real probe + reusable diagnostic verb + adoption prompt + applicability runbook. Sub-project E applies the same pattern to LORE/CAIRNET — Pebble’s knowledge-collection registry plus the agent-emission stream.

Spec: docs/superpowers/specs/2026-05-01-petrova-lore-cairnet-spec.md.

Ship four artefacts in one parent PR + one submodule PR:

  1. Real loreCairnetProbe — 2 ordered HTTP checks (LORE collection registered + CAIRNET emission count over 30d). Outcomes: ok | degraded | failing | unreachable. Both-required auth via PETROVA_PEBBLE_TOKEN. Reuses ProbeContext.http (sub-project C); no new context fields.
  2. CLI verb petrova lore-cairnet-status <slug> — operator-facing read-only diagnostic. Same 2 API calls; prints emission rate, budget headroom, latest 5 stones. Always exits 0.
  3. Prompt 09-lore-cairnet-wire.md — Phase 0 preflight + 6 gated phases (audit → token verify → register LORE → register CAIRNET → cross-repo gate → contract flip).
  4. Registry applicability — aggressive: 5 required (kahn-hq, stratt-hq, choco-hq, devarno-cloud, grace-hq), 2 not_applicable (petrova-hq canary, traceo-mcp-server build infra).

No schema change — sub-project A’s LoreCairnetIntegration.evidence shape is sufficient.

  • Conservative applicability (only 2 required slugs). Rejected: LORE/CAIRNET is fundamentally an agent-fleet observability story; production/experimental slugs all run agents. Pre-wiring pending → unreachable is correctly-shaped probe noise during the rollout window, not a regression.
  • Schema extension (per-slug pebble_endpoint). Rejected: env-var resolution chain (PETROVA_PEBBLE_ENDPOINT → fallback) is sufficient; per-slug overrides would invite sprawl. Future tightening is a separate decision doc.
  • Active rate-limiter in this sub-project. Rejected: requires Pebble write-side auth + quota state. Sized as candidate sub-project E’.
  • gh api-based probe (mirror ARES/CRUMB). Rejected: LORE/CAIRNET are HTTP services hosted on Pebble, not GitHub repos. Use ProbeContext.http (already shipped in sub-project C).
  • 5 follow-on consumer-repo PRs (one per required slug), each: decision doc + contract flip. Plus operator-driven Pebble registrations (HTTP POSTs, not PRs).
  • Until each slug wires up, the dashboard shows lore_cairnet: unreachable "evidence incomplete" for the 5 required slugs. Correctly-shaped probe noise during the rollout window.
  • petrova lore-cairnet-status <slug> is available as a read-only diagnostic for any slug at any time.
  • Schema is unchanged; existing lore_cairnet: not_applicable entries (petrova-hq) continue to work.
  • Active rate-limiter (sub-project E’) remains a tracked follow-up; per-slug emission_budget_30d calibration is per-decision-doc.
  • Spec: docs/superpowers/specs/2026-05-01-petrova-lore-cairnet-spec.md
  • Plan: docs/superpowers/plans/2026-05-01-petrova-lore-cairnet-plan.md
  • Runbook: docs/runbooks/lore-cairnet-wire-rollout.md
  • Prompt: core/prompts/09-lore-cairnet-wire.md
  • Predecessors: sub-project A (PR #8), B (#9, #10), C (#12), D (#13)
  • Probe surface area (2-check, both-required auth) is the right model
  • Aggressive applicability (5 required) is the right call
  • Default emission_budget_30d of 50 is a reasonable starting point
  • Active rate-limiter (E’) deferral is acceptable
  • operator: