Deliver the provider-only registry commands

As a maintainer, I want a finite list of work that closes #383, with each task owned and checked. The plan fixes scope and baseline. Checked boxes mean the stated action completed; source already on main is not marked tested.

Establish the baseline

  • [x] Preserve the prior branch and dirty work, then reset feat/383-provider-closure to main 6efe1f119a2332484e690b4c128c4bc5fd4d689b. Owner: orchestrator. Backup and stash are recorded in plan.md.
  • [x] Replace stale planning status in specs/383-provider-interfaces/plan.md and add this executable task list. Owner: orchestrator.
  • [x] Record the initial nix develop --quiet -c just ci result. Owner: orchestrator. Model, application, simulator and browser checks passed; docs failed on the decisions-to-plan anchor removed during cleanup. Planning changed during this run, so it is not clean-main full-CI evidence. Log: /tmp/e371-383-main-baseline.log; GLM owns the link repair.

Run every command through the provider

  • [x] Migrate retained callers in offchain/ and conformance/ from obsolete Provider/View/node APIs to the existing generic capabilities; preserve main's tracing, datum delivery and recovery behavior. Owner: Sol. Check: relevant Cabal targets compile. Done at source commit 64d8f9f0: final required-component cabal build exit 0 across library, services, commands and test targets.
  • [x] Remove offchain/node-internal/ production read/indexer modules and obsolete Provider/Services wrappers; update offchain/singular-registry.cabal, offchain/nix/component-inventory.nix, offchain/nix/checks.nix and affected component declarations. Owner: Sol. Check: no retained production node adapter or unresolved retired import. Done at source commit 64d8f9f0: tools/node_confinement_check.sh exit 0 over 213 retained source files, with the nine retired directories excluded by the existing inventory classification; no unresolved retired import.
  • [x] Preserve required behavior in offchain/test/ and offchain/e2e-test/ while migrating fixtures; run pure provider composed reads/history/submission, pure trie proofs, local evaluation and pinned time comparisons, command receipts and bounded confirmation checks. Owner: Sol. Check: actual selected tests pass with command and counts recorded. Full cage suite exit 0 at 64d8f9f0: 1028 examples, 0 failures, 11 pending — the pending rows publish the retired node/view/indexer requirements as unsupported, not passed; conformance appendix suite 590 examples, 0 failures against the current model transport. No live ledger is claimed.
  • [x] Update node-confinement, component-inventory and signed-submission checks under tools/ to the removed component layout, retaining their negative controls. Owner: Muse. Depends on Sol's final module layout. Check: each existing check and its controls pass. All pass at 12bdae8c: confinement exit 0 over 213 retained files with 6 allowlisted entries and 48 negative controls; component inventory 626 mapped files with 9/9 controls; the signed-tx-control Nix check exit 0 — normal signing accepted, three forgeries refused, exported-constructor positives, exact exports, planted forge rejected (log /tmp/muse-signed-tx-control.log).

Keep the development-network journey running

  • [x] Reconcile tools/demo1_cli_journey.sh and relevant .github/workflows/registry.yml jobs with current main and migrated callers; preserve all-fact Unverified assertions, independent provider data and required Koios call coverage. Owner: Muse. Check: unchanged obligations have executable assertions; no weakened or skipped journey. Muse confirmed main already carries every journey assertion unchanged; only a workflow comment changed, integrated at 8e47cd88. No weakened or skipped journey.
  • [x] Run the packaged Demo 1 journey against the actual private devnet facade, and the bounded registry journey; repair migration failures in the owning files. Owner: Muse with Sol for Haskell repairs. Depends on compiled candidate. Check: successful receipts and exit status on the integrated candidate. Local bounded journey 11/11, exit 0 at 12bdae8c. Hosted, on the exact head 12bdae8c: the release-archive Demo 1 journey — the CLI journey, page controls and retained insert-active/update-terminal controls over the archive exactly as published — plus the separate-actor negative control and the hosted bounded journey, all success. No local archive execution is claimed; the hosted archive receipts are the actual required development-network execution.

Ship accurate existing documentation

  • [x] Reconcile specs/383-provider-interfaces/spec.md and decisions.md with ticket scope and current model binding; preserve historical rulings without claiming obsolete status is current. Owner: GLM. Done at 9c124690, integrated at 8e47cd88: reset baseline and constitution 1.13.0 model blobs bound, stale anchors and intake-era status repaired, rulings preserved as history.
  • [x] Update existing node/provider ownership and API documentation under docs/, plus only required reference-generation/packaging paths (tools/api_reference.py, nix/docs.nix, mkdocs.yml). Owner: GLM. Depends on Sol's module layout; no new documentation project. Done at ab5fac29–86ea396a, integrated at 8e47cd88: ownership page rewritten to the provider-era inventory, API reference extent 75→73 from the candidate Cabal, generator's dead private-owner machinery removed; strict build, presentation and narration checks green in the GLM worktree. The packaged docs, speech, narration and presentation checks passed within just ci at 12bdae8c.
  • [x] Regenerate changed pages' speech companions and required narration using repository tools; verify docs/presentation against the actual candidate. Owner: GLM. Includes plan.md and tasks.md; never stamp stale speech as current. Every changed page's companion was re-extracted and its changed segments re-voiced through the series (9c124690…8dc3b495); the full packaged docs, speech, narration and presentation checks passed within just ci exit 0 at 12bdae8c.

Integrate and finish

  • [x] Inspect and integrate each worker's scoped diff into feat/383-provider-closure; reject unrelated work and preserve the reset baseline's behavior. Owner: orchestrator. No worker pushes or merges. Source integrated at 64d8f9f0, tools and documentation at 8e47cd88; unrelated companion drift was rejected at integration.
  • [x] Run nix develop --quiet -c just ci and required offchain tests on the integrated candidate; fix failures and record exact commands, exits and commit. Owner: orchestrator with assigned workers. nix develop --quiet -c just ci exit 0 in a clean checkout at 12bdae8c — a clean checkout excludes the ignored Cabal build cache that a format-control scratch copy still carries — with the full local cage suite 1028/0 with 11 retired pending and the conformance appendix 590/0 at source 64d8f9f0 as recorded above. Hosted at the same head: CI and Conformance, both success. Not the final repaired head: after this result, source-only test corrections a0456196 (generic phase-log schema; packaged contract suite 40/0 with 26 retired pending) and ef93d4f4 (E2E checks the exact generic AtTxIn fact instead of forbidding the adapter's necessary address lookup) changed no production behavior. The ef93d4f4 repair's local verification is complete: the packaged node-boot lane ran nix run --quiet .#cage-tests-e2e -- --match '{lane:node-boot}' --fail-on=empty with the release blueprint — 22 examples, 0 failures, 7 retired pending (log /tmp/muse-node-boot.log, read independently by the parent). Exact-head verification of the assembled candidate — its hosted gates and the merge — remains the open tasks below.
  • [ ] Update PR #460 using .github/pull_request_template.md, push the scoped candidate with the appropriate lease, and require the ticket's devnet journey jobs green on that PR head. Owner: orchestrator. The draft PR already carries 12bdae8c; the two test repairs are not pushed yet — final candidate publication, its checks and the merge remain pending.
  • [ ] Merge the verified PR, close #383, and stop its three worker panes. Owner: orchestrator. Check remote merge/issue state before reporting completion. Final candidate publication, exact-head checks and merge still pending.

Dependencies and parallel work

Sol's migration, Muse's script preparation and GLM's spec cleanup start in parallel in separate worktrees. Muse's journey execution and GLM's final API references depend on the integrated module layout. Only one expensive shared build or devnet run is started at a time under the orchestrator. Final checks, push, merge and closure follow integration in that order.