Harness Intelligence Wiki
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

  1. hi scaffold must read and mutate settings only through the governed ProjectSettings boundary. Invalid settings remain typed failures; scaffold does not silently replace them or write owned fields through legacy helpers.
  2. Repository-check changelog reads must be fallible Effects. Missing files retain fallback behavior; actual read failures such as EISDIR surface as RepositoryCheckOperationFailure, never defects.
  3. 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.
  4. Skills CLI child execution must be interruptible. Timeout or fiber interruption terminates only the owned child/process group and leaves no residue.
  5. Scaffold update/reconciliation must remove the accepted unsafe double and action-wide assertions through explicit types and narrowing without weakening behavior.
  6. 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.
  • EISDIR changelog 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.ts is 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.

On this page