Reconcile Pass 1 — first holistic LLM-driven reconciliation pass per
~/.claude/skills/reconcile-catalyst-docs/SKILL.md. Skill triggered after
the post-Group-M architectural batch (#161, #162, #163, #167, #168,
#169, #170, #171, #173, #174, #175). Live ground truth verified against
kubectl + ls platform/ + git log + GHCR + componentGroups.ts.
Drift categories fixed:
- A. Numerical: bp-powerdns 1.0.5 → 1.0.6; component-logos 63 → 62
(powerdns SVG missing, tracked under #173); bootstrap kit 11 → 12
with bp-powerdns added per #167.
- B. Service: pool-domain-manager + 5 registrar adapters
(Cloudflare/Namecheap/GoDaddy/OVH/Dynadot, #170) added to
IMPLEMENTATION-STATUS, ARCHITECTURE, PLATFORM-TECH-STACK, GLOSSARY,
and PROVISIONING-PLAN; bp-powerdns added to ARCHITECTURE bootstrap
kit + Catalyst-on-Catalyst dependency tree.
- C. Architectural: SOVEREIGN-PROVISIONING §3 + DEMO-RUNBOOK Step 4
+ ORCHESTRATOR-STATE Step 6 rewritten from Dynadot-direct DNS writes
to PowerDNS authoritative + PDM /v1/commit + registrar-adapter
NS-flip; PROVISIONING-PLAN Phase 4 paths corrected to
products/catalyst/bootstrap/api/ (per INVIOLABLE-PRINCIPLES #3 the
Go provisioner does NOT call cloud APIs); Phase 6 retitled and
rewritten for the new DNS architecture.
- D. Process: RUNBOOK-PROVISIONING §2 wizard-step table + DEMO-RUNBOOK
Step 2 wizard-step table updated to canonical 7-step ordering
(Org → Domain → Topology → Provider → Credentials → Components →
Review per WIZARD_STEPS in WizardLayout.tsx, post #169 + #174); the
three-mode StepDomain (pool / byo-manual / byo-api per #169) and
two-tab StepComponents (mandatory infra + apps per #161/#162/#175)
now documented.
- E. Cross-doc: Group G ✅ across PROVISIONING-PLAN +
ORCHESTRATOR-STATE (superseded by #167+#163+#170, not by the
original Dynadot-multi-domain plan); Group C ✅ in
PROVISIONING-PLAN (Flux is reconciling from openova-public today);
README Stack-at-a-glance DNS row expanded.
- F. Stale terminology: 11-grep banned-terms scan clean — every k8gb
residual is a legitimate "removed at #171, replaced by lua-records"
reference.
VALIDATION-LOG.md gains the Reconcile Pass 1 entry per skill spec.
Reconcile-skill numbering is independent of the Audit-skill numbering
(which continues at Pass 108+).
Files: 13 docs + VALIDATION-LOG entry.
Escalations: none.
Manual-dispatch-only DoD scaffolding for the omantel.omani.works
end-to-end test. Operator-gated; the test t.Skip()s when
HETZNER_TEST_TOKEN env var is missing so CI stays green.
- docs/DEMO-RUNBOOK.md: 9-step operator runbook covering Group C
cutover, wizard provision, voucher issuance, tenant redemption.
- tests/dod/dod_test.go: HTTP-driven E2E that streams SSE through
all 11 phases, asserts cert + DNS + voucher + redemption flow.
- .github/workflows/dod.yaml: workflow_dispatch only — never
on-push (Hetzner cost gating).
Cherry-picked additive files from /tmp/agent-group-m-dod (a40b495);
the agent's branch had stale-base deletions of #108/#109/Pass-107
that we drop.