Ship Configuration and the shared platform primitives several earlier phases were about to duplicate.
Scope
Configuration model + validation (CFG-*), proxy options (ProxyOptions, including the challengeHandler
slot whose protocol lands in 8a), timeouts, connection settings.
config/clock.ts — the real injectable Clock/random determinism seam that replaces 5a's ad hoc one.
config/http-date.ts — shared RFC 1123 parser and formatter; 5a's private parser becomes an import.
config/retryable.ts — one shared retryable-status definition (408, 429, 5xx except 501/505) so RETRY-1 and
CFG-35 cannot drift.
CFG-36 build/runtime descriptor — version via build-time codegen, never a runtime placeholder — plus
clientIdentityStep() (RECOV-33: Append/Replace token composition, blank-line suppression), closing
NFR-15.
Spec refs
Product spec §16 (CFG-*), appendix C RECOV-33, NFR-15. sdk-design: §8.
Dependencies
Phases 0–4c. Must run before 5a — 5a Task 8 consumes Clock, and its parser/retryable-status modules are
sourced from here. Leads 7b (OBS-35's log-level resolution wants Configuration).
Docs
- Design:
docs/superpowers/specs/2026-07-28-phase7a-configuration-design.md
- Plan:
docs/superpowers/plans/2026-07-28-phase7a-configuration.md
- Segmentation:
docs/superpowers/specs/2026-07-28-phase7-segmentation-design.md
- Validation prompt:
docs/validation-prompts/phase7a-configuration-validation-prompt.md
Notes
clientIdentityStep is not installed by standardResilience() by default — callers install it explicitly.
The User-Agent actually reaching the wire is verified in 8a.
Ship
Configurationand the shared platform primitives several earlier phases were about to duplicate.Scope
Configurationmodel + validation (CFG-*), proxy options (ProxyOptions, including thechallengeHandlerslot whose protocol lands in 8a), timeouts, connection settings.
config/clock.ts— the real injectableClock/randomdeterminism seam that replaces 5a's ad hoc one.config/http-date.ts— shared RFC 1123 parser and formatter; 5a's private parser becomes an import.config/retryable.ts— one shared retryable-status definition (408, 429, 5xx except 501/505) soRETRY-1andCFG-35cannot drift.CFG-36build/runtime descriptor — version via build-time codegen, never a runtime placeholder — plusclientIdentityStep()(RECOV-33: Append/Replace token composition, blank-line suppression), closingNFR-15.Spec refs
Product spec §16 (
CFG-*), appendix CRECOV-33,NFR-15. sdk-design: §8.Dependencies
Phases 0–4c. Must run before 5a — 5a Task 8 consumes
Clock, and its parser/retryable-status modules aresourced from here. Leads 7b (
OBS-35's log-level resolution wantsConfiguration).Docs
docs/superpowers/specs/2026-07-28-phase7a-configuration-design.mddocs/superpowers/plans/2026-07-28-phase7a-configuration.mddocs/superpowers/specs/2026-07-28-phase7-segmentation-design.mddocs/validation-prompts/phase7a-configuration-validation-prompt.mdNotes
clientIdentityStepis not installed bystandardResilience()by default — callers install it explicitly.The
User-Agentactually reaching the wire is verified in 8a.