Problem
CONTEXT.md intentionally defers narrowing roughly 15 public Node-client methods that still return
Record<string, unknown>. Canonical result contracts now exist for a typed subset, but completing
the migration changes the public TypeScript API and requires an explicit compatibility decision.
Scope
- Inventory every remaining broad-return client method and map it to an existing canonical command
or domain result contract.
- Move missing option/result contracts into neutral command/domain modules; the client consumes
them rather than owning canonical command shapes.
- Narrow methods in coherent command-family batches with compile-time parity tests.
- Add migration/release notes describing source compatibility and any newly exposed exact unions or
optionality.
Decision required
Before implementation, maintainers must choose whether this ships in the next minor as an intended
type narrowing or waits for the next major. Do not hide the decision with casts or compatibility
aliases that preserve the broad type indefinitely.
Constraints
- Keep this separate from the executable-contract projection research spike.
- No new runtime schema dependency or generated source.
- Runtime payloads remain byte-compatible unless separately approved.
Acceptance criteria
- The inventory is complete and linked to canonical ownership.
- The selected release/semver policy is documented.
- Migrated methods no longer fall back to
Record<string, unknown>.
- Public type tests, typecheck, lint, package build, and relevant client tests pass.
Origin: CONTEXT.md Phase 2c and post-#1174 architecture follow-up.
Problem
CONTEXT.mdintentionally defers narrowing roughly 15 public Node-client methods that still returnRecord<string, unknown>. Canonical result contracts now exist for a typed subset, but completingthe migration changes the public TypeScript API and requires an explicit compatibility decision.
Scope
or domain result contract.
them rather than owning canonical command shapes.
optionality.
Decision required
Before implementation, maintainers must choose whether this ships in the next minor as an intended
type narrowing or waits for the next major. Do not hide the decision with casts or compatibility
aliases that preserve the broad type indefinitely.
Constraints
Acceptance criteria
Record<string, unknown>.Origin:
CONTEXT.mdPhase 2c and post-#1174 architecture follow-up.