Harness Intelligence Wiki
SpecsCLIRegistry Baseline

Registry Baseline: implementation notes

Registry Baseline implementation notes

Environment actions

  • 2026-09-28: created Vercel Blob store harness-intelligence-registry (store_KxGgIx42sjnpQMtT, public, fra1) connected to Vercel project harness-intelligence-api (Production, Preview, Development). BLOB_READ_WRITE_TOKEN was added to the project environment by the connection. Public base: https://kxggix42sjnpqmtt.public.blob.vercel-storage.com.
  • Backlog: the user declined Linear projection ("Skip Linear"); the plan runs in planning-only mode.

Spec tensions resolved in delivery

  • AC-012 vs OUT-013/OUT-005: the old settings file has no packs; selected Packs lived only in the old manifest. Migration writes packs into settings.json once (D6). After migration only hi init writes settings.

  • Wiki starter: the spec lists it in OUT-004/OUT-006; CLI 5.2.2 on main stopped generating a wiki. The user chose to follow main (D15). The Registry has no wiki item; shape.wikiRoot records only an existing wiki directory.

  • Lint tuning: a fully Built oxlint.config.ts drops project-tuned rules on every update. The user approved an Authored per-scope oxlint.local.ts extended last by the Built config (D16).

  • Commits on this branch used --no-verify: the pre-commit selector runs turbo check (lint) for touched owners, which was already failing before this work (base: 1,737 src + 5,315 scripts oxlint errors in apps/cli); the user asked to skip lint fixes for this delivery.

Known limitations

  • lint-effect-no-barrel-imports with npm workspaces: npm can hoist @effect/eslint-plugin to the root while keeping @typescript-eslint/utils 8.22.0 under the workspace; the plugin imports that package without declaring it, so oxlint fails to load the plugin. bun workspaces (this repository) are not affected. Pre-existing asset behavior; not introduced by the Registry.
  • hi update runs item postInstall commands (today only effect-tsgo patch --no-typescript --oxlint) on every update because the dependency install runs with --ignore-scripts.

Live proof (2026-09-28)

Built from clean worktrees at the recorded commits; CLI run from dist/index.js (6.0.0) unless noted.

ACEvidence
AC-002, AC-004, AC-005publish-registry.mjs published 2026.09.28-b2e7aa4e (169 items) to the public Blob store prefix r-staging with byte readback; latest equals the new version; a re-publish of the same version exited 1 "Registry version already published" (publisher at b2e7aa4e; after review repair P-F8 an identical re-run converges as a no-op and different bytes fail with version-conflict); three fetches return identical bytes and the catalog sha256 matches the served item bytes; versioned files max-age=31536000, root catalog max-age=60.
D1 mountVercel git preview of babdd9fe (author simosabba) built READY; through it /api/healthz returned 204, /api/baselines/stable 404 (retired), and /r/registry.json returned the Blob store's own Blob not found body, proving the /r rewrite reaches the Registry store (the production r/ prefix is filled by the release workflow on merge).
AC-009npx shadcn add <registry>/<v>/skill-tdd.json in an empty repository wrote .agents/skills/tdd/** byte-identical to apps/cli/skills.
AC-010, AC-011hi init --yes on a TypeScript monorepo over HTTPS (r-staging) wrote skills, hooks, runtime scripts, source guides, shared prompt, prompt specs, handoff, system prompt, subagent manifest, harness agents, Commit Gate, and anti-slop plus oxlint.local.ts per Software Scope; .devpunks/ holds no content hash.
AC-014Local edit to a Copied skill: hi update kept it (kept, "run hi update --yes"); hi update --yes reported overwritten-local-edit; hi diff clean afterwards.
AC-015, AC-016, AC-021Second hi update after init: 0 changed paths, 0 git changes; Authored files byte-identical.
AC-018Unparsable .claude/settings.json: hi update exit 1, refused InvalidMergeTarget, file and link snapshot unchanged.
AC-006Baseline with range >=7.0.0 <8.0.0: refused with the range, nothing written; hi check shows cliCompatible: false.
AC-023, AC-024, AC-029hi diff: local edit -> local-edit; trailing-whitespace edit -> current; new workspace apps/mobile -> shape-drift on 2 Built files, no local-edit; manifest edit -> 20 harness files stale.
AC-025, AC-026, AC-027hi check --json: current; unreachable Registry -> unavailable with installed version, session hook "Drift was not checked."; worktree without installed.json -> not-installed, edit hook exits 0.
AC-031.claude/skills/foo moved to .agents/skills/foo, reachable through .claude/skills -> ../.agents/skills.
AC-034hi update on a copy of this repository (manifest-based): migrated, 11 retired paths deleted, settings gained 19 Packs, Authored files byte-identical, archived skills present.
AC-001, D1Vercel preview of harness-intelligence-api at babdd9fef (git integration; commits authored as the team git user so Vercel builds them): /api/healthz 204; /r/registry.json returns the Blob store's own Blob not found 404 (rewrite reaches the Registry store; the production r/ prefix is empty until the release publishes); retired /api/baselines/stable 404. API, backoffice, and wiki preview builds succeeded.
AC-036Fresh single-package repository: first git commit after hi init passed the lefthook Commit Gate.

Final end-to-end run (built CLI 6.0.0 at 0a92ba16, Registry r-staging latest 2026.09.28-54c5538c over HTTPS)

  • Fresh bun TypeScript monorepo: hi init --yes applied (install ran, lint passed); Project Skill moved; no hashes in .devpunks/; first commit and a deletion-only commit passed the lefthook Commit Gate; second hi update changed nothing; hi diff clean; hi check current; local edit kept, --yes restored it; offline unavailable with "Drift was not checked."; worktree without an Installed Record not-installed and the edit hook exits 0; unparsable merge target refused with nothing written; new workspace reported as shape-drift.
  • Migration of this repository at origin/main (CLI 5.2.2 state): applied, 12 retired paths deleted, settings rewritten with Packs, Authored files byte-identical, lint findings (existing debt, not an operational failure); a second update changed nothing; hi diff 663 paths current; hi check current.
  • Found and fixed during this run: effect-tsgo post-install exited 127 under bun isolated installs (now runs in each workspace that holds the tool); the peer session fixed Blob SDK retry handling in the publisher (54c5538c).

Work log

TaskStateEvidence
T2 installer coredoneapps/cli/src/registry/{client,resolve,shape,settings,materialize,merge,dependencies,project-skills,installed-record,pipeline}.ts + tests
T3a publisher + content itemsdoneregistry/publisher/**, scripts/build-registry.mjs; 169 items
T3b prompts + handoffdonepublisher/sources/prompts.ts, builders/prompts.ts; wiki item removed (D15)
T4 Harness Adaptersdoneregistry/harness-adapters.ts, publisher/sources/{subagents,harness}.ts
T5 Drift Check + checkdoneregistry/{drift,check}.ts
T6 managed lint, Commit Gate, #232donedata/scripts/*, publisher/sources/{lint,managed-lint,commit-gate}.ts, builders/{lint,commit-gate}.ts; D16 oxlint.local.ts
T7 hooksdonedata/hooks/*, publisher/sources/hooks.ts
T8 API/contract/DB retirementdonebaseline group removed, migration 0007_drop_baseline_authority, /r rewrite
T9 release publicationdonescripts/publish-registry.mjs, release pipeline, release.yml BLOB_READ_WRITE_TOKEN
T10 migrationdoneregistry/migrate.ts (plan/apply/finalize)
T11 command wiring + retirementdonecli/{init,update,diff,check}-command.ts; ~243 retired files deleted
T12 docs, rules, hi-cli skilldonerunbooks, rules, skills@3bde7355 (tag sync/registry-baseline-3bde73558ddb)
T13 live proofdone except productionsee "Live proof"; production publish and API deploy happen on merge
T14 Project Verifier referencesdone.agents/skills/verify-behavior/references/cli/**
Review 1repairedREVIEW.md
Pull requestopenhttps://github.com/wearedevpunks/harness-intelligence/pull/236

On this page