Harness Intelligence Wiki
Research

Scaffold, Managed Skill, and Operator Follow-ups Research

Scaffold, Managed Skill, and Operator Follow-ups Research

Scope and method

Three readonly lanes inspected GitHub issues #122, #124, #125, and #126 plus the interactive hi operator agent prompt. The lanes covered scoped prompt generation, delivery routing and docs onboarding, the Effect recovery table corruption, and the Harness-to-Skills-CLI adapter. No implementation or external mutation occurred during research.

Trusted findings

Issue #122 conflicts with the currently accepted authoring contract

  • The scoped prompt renderer currently requires structure-first Code Evidence, complete skill-derived trigger rows, progressive-disclosure references, and a Source Guide pointer (apps/cli/src/content/scaffold-copy.ts:145-205). The system handoff repeats that each scoped prompt spec is detailed authority (apps/cli/src/scaffold/format-summary.ts:224-233).
  • Focused tests lock those requirements (apps/cli/src/content/content.test.ts:1038-1095, apps/cli/src/scaffold/run.test.ts:693-709).
  • Collective Intelligence evidence commits 4cc2de068 and 95c306470 contain the same 15 scoped prompts before and after manual compaction: 1,718 lines became 581 while skill IDs, Source Guide links, CLAUDE mirrors, validation seams, and local conventions remained present. This supports the report's outcome, but a line budget alone cannot prevent semantic restatement.
  • The accepted scoped-guidance spec requires the verbose detailed-authority model (apps/wiki/content/docs/project/specs/cli/scoped-agent-guidance-authoring-contract/SPEC.md:108-143). Therefore implementation must revise the accepted contract and generator together.

Issue #124 is a delivery-router dead end

  • The canonical delivery router accepts a local agent-ready spec and then routes to backlog (skills/phases/delivery-phase/phases/router.md:40-45 in the shared skills repository).
  • The next backlog phase requires verified remote retention and a stable blob URL (skills/phases/delivery-phase/phases/backlog.md:7-18), while create-spec owns that retention proof and write-backlog refuses to proceed without it.
  • A local agent-ready spec without retention proof therefore needs spec repair, not backlog routing. The canonical router and spec completion contract need one source-first fix plus a regression contract.

Issue #125 begins with invalid canonical Markdown

  • Shared source and the Harness packaged copy both contain an unescaped pipe inside Effect.all(..., { mode: "validate" | "either" }) (skills/frameworks/effect/effect-recoverable-actions/references/strategy-matrix.md:5-12 in the shared repository and apps/cli/skills/frameworks/effect/effect-recoverable-actions/references/strategy-matrix.md:5-12).
  • GFM treats that pipe as a cell delimiter even inside a code span. Oxfmt 0.57.0 then deterministically expands the malformed row and separator into the visible four-column corruption. Escaping the operator as \| preserves a valid three-column table through formatting.
  • Baseline assembly formats copied skills (apps/cli/scripts/build-baseline.mjs:138-168,232-236), making semantic table validation after formatting and baseline extraction necessary.
  • .devpunks/pre-existing-skills is a byte snapshot of consumer state, not canonical generated authority (apps/cli/src/scaffold/skill-snapshot.ts:7-62). It must remain untouched directly.

Issue #126 is fixed only on incomplete source and projection lineages

  • Shared-skills branch commit 2770ec9 changes the docs-onboarding trigger and body from hi scaffold init to hi init, but shared origin/main still carries the unsupported command.
  • Harness's packaged source already says hi init, while its active .agents managed projection and released v3.1.12 baseline remain stale. Completion requires landing the shared source fix, syncing by exact source ref, and refreshing managed output.
  • CLI command truth is two separate top-level commands (apps/cli/src/cli/scaffold-command.ts:33-78,210-299, apps/cli/src/cli/command-registry.ts:88-103); nested scaffold init is rejected by catalog coverage (apps/cli/src/ui/catalog/catalog.test.ts:51-57).

Harness, not Skills CLI, asks the operator agent question

  • executeOperatorCommand constructs Enter the Skills CLI agent name: before a child process starts (apps/cli/src/cli/operator-command.ts:577-585).
  • Harness host detection recognizes fewer Codex markers than Skills CLI. In particular, this Codex Desktop environment exposes CODEX_CI=1; installed Skills CLI 1.5.22 recognizes that marker, but Harness does not (apps/cli/src/integrations/operator-skill-context.ts:19-47).
  • Harness then passes the resolved target explicitly to skills list, skills add, and skills remove (apps/cli/src/integrations/skills-cli.ts:703-810). This exact target is important: omitting --agent makes list scan multiple bindings, makes add --yes target every detected agent or all registered agents, and makes remove --yes target every registered agent.
  • The narrow safe fix is to align non-secret host-marker detection and environment forwarding, retain HI_OPERATOR_AGENT precedence, and keep exact --agent child arguments and retry identity.

Conflicts and uncertainty

  • Issue #122 cannot be treated as a local renderer defect without superseding the accepted verbose scoped-guidance requirement. The user request supplies direction to make prompt specs concise, but the revised spec must record that decision.
  • The exact dirty consumer bytes reported by issue #125 cannot be reconstructed from commit 6875d05a; committed source and formatter behavior prove the defect chain.
  • Skills CLI 1.5.22 source proves the no-agent behavior. Harness permits 1.5.20 and the marker set for 1.5.20-1.5.21 was not independently inspected. Exact --agent remains valid across the supported contract.

Implementation boundary

  1. Land shared source fixes for #124, #125, and #126 with semantic contract tests.
  2. Sync that exact shared-skills ref into Harness; never hand-edit managed skill copies as source.
  3. Revise the accepted #122 spec and compact the prompt generator while retaining repository invariants, exact skill IDs and terse triggers, Source Guide links, mirrors, and validation seams.
  4. Align Harness operator host-marker detection and safe environment forwarding while preserving exact-agent Skills CLI argv.
  5. Refresh managed fixtures/projections and validate formatter, baseline archive, and isolated consumer behavior. Baseline authority remains externally unavailable, so supported control-plane hi check --json proof must be retried later and cannot be replaced by local drift claims.

On this page