SpecsCLIPR 88 Review Remediation
PR #88 Review Remediation
PR #88 Review Remediation
Status
Accepted by the user after the PR #88 findings-first review on 2026-07-27. The accepted implementation, remediation review, and final aggregate CI-parity validation are complete. Live PR authority remains pending under T14; no final docs SHA or GitHub run result is claimed here.
Goal
Remove every accepted correctness, architecture, lifecycle, type-safety, and evidence gap from PR #88 while preserving public behavior and leaving the pull request open, unmerged, correctly based, and ready for maintainer review.
Branch and Base Intent
- Branch:
team/stefan/refactor-cli-architecture - Base:
main - Pull request: #88
- Final state: open, unmerged, ready for review
- Forbidden: merge, deploy, retarget, rebase, or force-push
Accepted Requirements
hi scaffoldmust read and mutate settings only through the governedProjectSettingsboundary. Invalid settings remain typed failures; scaffold does not silently replace them or write owned fields through legacy helpers.- Repository-check changelog reads must be fallible Effects. Missing files retain
fallback behavior; actual read failures such as
EISDIRsurface asRepositoryCheckOperationFailure, never defects. - API report delivery and runtime composition must become deep domain-first Effect modules. Transport stays thin; integrations own provider/persistence mechanics; the feature owns policy and durable ordering.
- Skills CLI child execution must be interruptible. Timeout or fiber interruption terminates only the owned child/process group and leaves no residue.
- Scaffold update/reconciliation must remove the accepted unsafe double and action-wide assertions through explicit types and narrowing without weakening behavior.
- TDD, implementation notes, Linear links, review threads, PR head/base/check authority, and historical SHA evidence must describe the final implementation truth.
Durable Report Invariants
- Persist pending state before external issue creation.
- Claim and finalize in short database transactions.
- Perform provider I/O outside database transactions.
- Release a failed claim so retry can resume.
- Derive retry identity from stable repository/report identity.
- Preserve disabled-provider and anonymous-report behavior.
Acceptance Criteria
- Scaffold settings tests prove the governed service owns preflight reads and one atomic settings change.
-
EISDIRchangelog input produces the typed public check failure. - No accepted unsafe reconciliation assertion remains and focused behavior stays green.
- Report submission exposes one feature facade with mock Layers and concrete provider/persistence adapters; old god-module authority is removed.
-
index.tsis a 32-line process/composition adapter, not the owner of feature, provider, artifact, persistence, or lifecycle policy. - Report durability, retry, disabled-provider, auth, transport bytes, lifecycle, shutdown, and runtime-product contracts pass.
- Skills CLI interruption and timeout tests prove owned process-tree cleanup without sleeps on POSIX and Windows paths.
- Exact CI-parity, workspace, Effect architecture, build, and runtime-product gates pass.
- Mandatory remediation review reports no unresolved accepted implementation finding.
- Source/routed evidence, Linear, resolved review threads, and PR #88 report the final head and checks; PR remains open, unmerged, correctly based, and ready.
Review State
Requirements are closed. No product decision remains unresolved. Implementation may change only the accepted surfaces above and the documentation/evidence required to prove them.