Superpowers / Implementation plan

Clio read-only reactivation

Status: in-progress. Owner: kwiss. Approved scope: firm reads; no Clio data writes. This is not deployment or activation approval.

Observed starting state

Owner-provided baseline: the sole organization connector is revoked, with no scopes; the feature flag is unset. Last full/matter sync was June 25; last contacts sync was June 2. No worker re-queries live preprod to reconfirm these facts.

Shared policy and transport

Runtime, MCP and connection posture

Ingestion and cold start

Parallel ownership and review dispositions

The original three-way parallel split was transport, runtime/MCP/web, and ingestion/API. After the initial worker stopped without edits and surface fan-out was re-estimated, runtime/web and MCP received separate owners. Each owner stays in its scoped files; transport publishes the shared contract first. No worker or orchestrator deploys.

Independent plan review: Grok 4.6 deletions seat, medium, closed. This was the substitute cross-family reviewer; no Claude session was launched. Kept the explicit read/write split, catalogue and callback posture checks, no fake subscription rows, throwing interface stubs, and URL/redirect confinement. Rejected skipping AST (explicit owner requirement), a second switch (single reversal requirement), and the claim that empty poll results alone fake success. Rejected the OneDrive-only renewal-scan claim after SQL verification. Fresh Astra and Grok code reviews follow implementation; this plan review does not replace them.

Acceptance gates

Release boundary

No preprod activation, live API access, credentials changes, schema work or deploy from these workers. Neither workers nor orchestrator deploy. kwiss reconnects only after the safe deploy through the authorized deployment process; a green local test does not prove provider acceptance or authorize activation.

Transport progress

Transport verification after class-test restoration: bun run test in connector-clio passed 87 tests (10 files); connectors-core previously passed 75 tests (11 files), with no subsequent core source change. Connector lint/typecheck and the mutation runner's standalone TypeScript check passed again. Core typecheck passed; core lint had no errors and nine existing unused-parameter warnings in test/fixture/echo-connector.ts; focused lint on the three changed core files was clean.

bun mutation-proof.ts in connector-clio killed 51/51 deliberate mutants in isolated scratch copies, accepting only Vitest assertion failures, then passed 60 connector policy/class tests and 7 core tests after scratch restoration. All eleven class mutants failed assertions: six identity/capability checks, refresh/matter/contact delegation, webhook success and webhook network-before-denial. The AST suite includes bare-fetch/whitelisted-name, injected-fetch, undici import, dynamic loader and shadowed-constant escape fixtures, with stale replacement detection. A local transport smoke previously passed: disabled read made zero requests, enabled GET and fixed token POST succeeded, and activity creation was denied. Its throwaway script was removed.

Deletion audit correction (kept orchestrator finding): restored connector.test.ts and its existing class identity, capability and refreshAuth/syncMatters/syncContacts delegation assertions. Only the obsolete webhook-success expectation is replaced with rejection and no-network assertions; the test explicitly opts into the read-only switch. Class contracts must not be removed to narrow mutation work or fit the cap. No assertion deletion counts as mutation proof. The initial working-tree mutation attempt restored source on a surviving password-only URL mutant; that case was added, both full suites passed, and subsequent mutation runs used scratch copies exclusively.

The shared switch, denied write methods, confined transport, conservative scope recording and local regression guards are implemented. Verification and mutation results are recorded in the transport worker report. Other owners and fresh code reviews remain required; status stays in-progress.