Harness Intelligence Wiki
SpecsCLIScaffold Integrity Convergence

Scaffold Integrity Convergence Implementation Notes

Implementation Notes

Summary

  • Delivery started from accepted PLAN.md on branch team/stefan/scaffold-integrity-convergence.
  • The plan is the explicit execution authority; no sibling SPEC.md exists by design.
  • Implementation and protected-cache follow-ups merged through PRs #112, #114, and #115, ending at c4dcca3134eace76750fa899f3b581411af094d0.
  • The surviving order is PR #109, then #113, then #116, then docs PR #117. #109/#113 inherit the merged scaffold implementation; #116 fixes a newly found obsolete remediation copy. No #108-derived scaffold implementation remains to port.
  • T8 local integration is complete. T9 remains In Progress. The 2026.08.07 stable baseline remains immutable predecessor evidence. The #105 rendered-output integrity and strict projection-health follow-up has fixed bundled digest 1c6d1157a133461a04bf281372ce824c8e2cc9b58e7c3c44ae7b2a2fbcf65b98 and requires new candidate baseline/stable/2026.08.10-projection-receipt-output-integrity with compatibility =3.1.6, followed by npm 3.1.6, the exact published installed-consumer matrix, and issue-closure proof.

Deviations From the Plan

  • implement-spec normally requires SPEC.md. The user explicitly ordered delivery from the accepted implementation plan onward, so the plan's locked decisions and acceptance matrix replace that redundant artifact.
  • The original receipt encoded projection actions but could not change when a valid project-authored subagent description changed rendered provider bytes. The accepted #105 follow-up adds renderedOutputSha256, derived canonically from effective hooks and rendered provider-output maps. This changes managed baseline bytes, so the published 2026.08.07 baseline remains predecessor evidence rather than the final T9 authority.
  • Historical IP-317 projection health treated expected capability gaps and preserved project prompts as degraded/partial. The current contract retains them as neutral durable receipt provenance with success and empty manifest scaffoldDegradations. Actual projection/application faults and missing managed canonical sources fail; partial remains only for a genuine actionable nonfatal anomaly.

Surprises and Decisions

  • The original session-start hi check --json was unavailable because recorded context evidence for .devpunks/context-plan.json drifted. Focused issue tests supplied the implementation RED surface; later merged lifecycle proof resolved the delivery question without classifying that unavailable result as scaffold drift.
  • A Wave 1 worker role committed and pushed the concurrent shared snapshot prematurely. No scope was lost; parent orchestration stopped further worker commits and retained later review fixes for a controlled integration commit.
  • Filesystem review exposed multiple race windows beyond the initial tests. T2 was recovered through additional RED/GREEN cycles until source acquisition used a private pinned-CWD hold and retirement completed before replacement publication.
  • Findings-first review found a High archive-worker deadlock and a Low obsolete prompt surface, plus CAS, containment, and public-root integration findings. All were fixed; final rereview reported no findings.
  • Full-repository validation exposed that generic regenerated Oxlint configs dropped required CLI shipped-asset exclusions and backoffice rule exceptions. Those policies now live in canonical lint assets selected only by the exact package names @punks/cli and @punks/backoffice; workspace oxlint.config.ts files remain strict baseline-managed content rather than project-owned exceptions.
  • Canonical lint output now converges at all three publication seams: the emitter produces formatter-stable TypeScript, preset rules are injected only when declared, and root lint evidence derives from the applied plan plus explicit project-owned legacy .oxlintrc files instead of current managed output.
  • Protected attestation now runs its Turbo release-test graph with --concurrency=1 after the prior aggregate run exposed host oversubscription.
  • Local protected release verification is intentionally unavailable without the protected cache environment. The exact-head GitHub protected gate remains authoritative.
  • The repaired installed-consumer validator now has six evidence rows and two authority modes. Its bundled/local-tarball run is a rehearsal. The deterministic packaged-bundled fixture/cache authority serves a matching /manifest, but hi check refreshes metadata and archive bytes and verifies the archive's embedded baseline manifest instead of requesting that separate artifact, so its manifestRequests: 0 is intentional. The final strict gate passed 30/30 focused tests with 121 assertions and all six full scenarios; fresh init and every scaffold reported success through complete canonical operation objects with empty issues, warnings, and degradations, both remote checks were clean, and cleanup retained no paths. Managed hashes covered 230/230 init entries and 229/229 scaffold entries, including legacy and ScaffoldManaged content while skipping only ProjectGenerated; internal symlinks were validated without following them. Partial or truncated operation payloads fail. Only exact @punks/cli@3.1.6 plus the new published stable baseline qualifies for T9 closure.
  • The checked-in root receipt reports status success, zero warnings or failures, and renderedOutputSha256 25962b79154a851d925d900ec2027dc1c4975a2c141fedb0d9a9bbf4bba9b9a8. Its scaffold manifest reports projectionStatus success, empty scaffoldDegradations, and matching receipt semantic SHA 5e8c2a00c7380ec92bf45450944b1cc2f63ef53ee4d10643d0b49b6a1b228bfd. This checked-in root/local observation is not published baseline proof.
  • The CI candidate at 3844fab was canceled and is superseded. It is not exact-head proof; a fresh final producer/replay remains pending.

Sanity Checks

CheckResultNotes
Git preflightPASSClean worktree at delivery start; implementation branch created from accepted plan commit.
Focused pre-change controlsPASSReconcile, apply, and sync-subagents: 104/104 tests passed.
Global hi check --jsonBLOCKEDvalidation-failed: recorded .devpunks/context-plan.json evidence drifted; no scaffold drift confirmed.
Wave 1 deep contractsPASST1 recovery/application coverage, confined filesystem 45/45, and producer 89/89; CLI typecheck passed.
T6 public acceptance REDEXPECTED FAIL3 failed/1 passed: stale equal-content receipt, default fixed-file repair/archive, and contradictory pre-effect flags remain RED; unavailable authority GREEN.
Wave 3 integrated public contractsPASS162/162 across T4/T5/T6 public output, command, producer lifecycle, and projection contracts.
Managed-assets whole fixturePASSGenerator and check passed; active producer hash and bundled/context provenance aligned.
T7 docs and release inputsPASSCLI 3.1.6 and baseline input prepared; wiki projection current; release metadata 31/31.
Integrated lifecycle and updatePASSLifecycle 4/4; update shards 96/96, including serial shard 0 at 24/24 and uncached at 25/25.
Public outputPASS78/78 without the RPC witness after 24aee235.
Package and Effect contractsPASSPackage scaffold 52/52 and Effect 94/94.
Repository/docs hygienePASSWiki checks, check:repo, CLI typecheck, formatting, and diff check passed.
Canonical lint convergencePASSExact-package policy, formatter-stable output, optional preset injection, and root-evidence lifecycle contracts pass locally.
Aggregate release testsLIMITEDParallel aggregate hit a host resource timeout; every component shard passed independently.
Local release:verifyBLOCKEDProtected TURBO_TOKEN, TURBO_TEAM, and TURBO_REMOTE_CACHE_SIGNATURE_KEY are absent locally.
Protected exact-head CIPASSRun 31245179530 passed at c4dcca3134; its consumer restored build and release:attest.
Corrected CLI stack replayPASSRun 31329286573 attempt 2 restored deterministic/native work and reran ambient/uncached work at exact PR #113.

No UI surface changes are planned; delivery affects CLI/scaffold behavior and operator documentation only.

Runtime Validation Evidence

TaskScenario and targetPublic actionCorrelation or provenanceExpected resultObserved result and durable evidenceCleanupStatus or exact blocker
T6Built local CLI in disposable repositoriesPublic update/check/scaffold and shipped producer lifecycleVitest-created isolated rootsFull convergence matrix4/4 lifecycle rows passed; fixed edit archived/replaced, final checks clean, flags made zero downstream calls, typed negative controls remained visible.Test cleanup removed owned roots.PASS
T8Integrated local CLI lifecyclePublic scaffold/update/check and producer lifecyclePRs #112/#114/#115; exact head c4dcca3134Clean first-party lifecycle with typed negative controlsProtected run 31245179530 passed; attestation producer and consumer each completed the exact two-task graph.Test-owned roots removedPASS
T9Published CLI and stable baseline in fresh consumersLocal six-row bundled rehearsal passed; published pair absent2026.08.07 predecessor targets c4dcca3134; new candidate pendingInstalled lifecycle clean and issues closablePredecessor authority and local rehearsal are proven separately. New stable candidate and npm 3.1.6 remain unpublished, so published-consumer proof is absent.Rehearsal root removedINCOMPLETE; published authorities unavailable

Acceptance Criteria Status

CriterionLocal implementation and validationPublished proofNotes
Successful first-party scaffold/update/sync is immediately cleanPASSPendingLifecycle and update shards are green locally.
Actual fixed managed edits are reported by check and archived/replaced by normal updatePASSPendingConfined recovery and public lifecycle coverage are green.
Current project-owned/customizable exceptions are preserved silentlyPASSPendingUpdate and lifecycle ownership controls are green.
Contradictory update flags fail before effectsPASSPendingPublic lifecycle proves zero downstream calls.
Projection sync refreshes only its exact receipt manifest entryPASSPendingProducer coverage includes CAS, rendered-output fingerprint change/restoration, and exact-entry publication.
Published CLI/baseline pass installed consumer lifecycleImplementation validatedPendingT9 has not published or run installed-consumer proof.

Manual Review Checklist

AreaCheckHow to performExpected result
CLI convergenceRe-run the installed consumer matrixFollow the exact T9 commands recorded here after releaseOnly actual fixed edits drift; normal update repairs; final check is clean.

Remaining Work

  • Preserve the corrected open order: PR #109, then #113, then #116, then #117. Merge only with fresh authorization.
  • After #117 merges, publish baseline/stable/2026.08.10-projection-receipt-output-integrity with compatibility =3.1.6. Preserve the 2026.08.07 release unchanged.
  • Publish @punks/cli@3.1.6 through the approved clean release path.
  • Run HI_IP346_PACKAGE_SPEC=@punks/cli@3.1.6 HI_IP346_BASELINE=stable HI_IP346_EXPECTED_BASELINE_VERSION=2026.08.10-projection-receipt-output-integrity bun run validate:consumer-repositories against the exact published CLI and new stable baseline.
  • Attach issue-specific evidence to #97, #104, and #105, then close only an issue whose complete acceptance evidence passes.

Incomplete Release Evidence

  • Predecessor stable release: baseline/stable/2026.08.07-scaffold-integrity-convergence, targeting c4dcca3134eace76750fa899f3b581411af094d0 with CLI compatibility >=3.0.0 <4. Preserve it unchanged.
  • Control-plane readback: revision 12 resolved the stable version as available.
  • Manifest SHA-256: e64d13f63db52870afa7b8fc6bc727e0ee6115dbe95df19116d2c1a9a09b9d77.
  • Archive SHA-256: d4f6788d01d36004111913b8c39825b173538e406fe0c6b9d7e254056880ae1e.
  • Registry readback for @punks/cli@3.1.6 returned E404 on 2026-08-09. This leaves npm publication and installed-consumer convergence unproven.
  • New stable candidate baseline/stable/2026.08.10-projection-receipt-output-integrity with compatibility =3.1.6 is release input only; publication and public readback remain pending.

Steering

DateFeedbackChanges
2026-08-07Run implementation onward through all steps with full parallelism.Activated goal, preserved barrier waves, and launched every disjoint unblocked task per plan.

On this page