Task — engineering-spec@1

"Goldensets as first-class gate inputs"

doneTASK-IMP-008
module improvement · class product · priority p0 · created 2026-07-08 · shipped null
depends on none · blocks none

TASK-IMP-008: Goldensets as first-class gate inputs

Summary

Make goldensets a real, documented gate input for the CyberOS 1.x install/payload surface: a sealed tools/install/.awh/goldenset.yaml + baseline, a runner that prefers awh and degrades cleanly when awh is absent, suite coverage, and a lightweight CI step alongside the existing module awh-gate.

Problem

Module goldensets exist under modules/*/.awh/ and feed awh-gate.yml, but the install/payload tooling that ships CyberOS 1.x has no first-class goldenset. awh_goldenset_from_task.py helps author module tasks; nothing standardizes an install-path goldenset or a skip-clean runner for hosts without awh.

Proposed Solution

  1. Author tools/install/.awh/goldenset.yaml with lightweight, offline-safe tasks (VERSION semver, help.sh, run-gates script presence/shebang check, coverage-ratchet --help).
  2. Commit a matching eval-baseline.json sealed from a green run.
  3. Ship tools/install/run-goldenset.sh that: runs via awh eval when available; otherwise executes each task cmd with a tiny fallback runner; skips cleanly when CYBEROS_SKIP_GOLDENSET=1 or when neither awh nor python3 is available (documented SKIP).
  4. Document at docs/verification/install-goldenset.md.
  5. Add an install-goldenset job to awh-gate.yml that does not require the docker/Postgres stack.

Alternatives Considered

Success Metrics

Scope

In scope: install goldenset + baseline + runner + docs + suite + awh-gate.yml job + CHANGELOG.

Out of scope / Non-Goals

Dependencies

None hard. Soft: awh CLI / tools/awh harness when present.

AI Authorship Disclosure

§1 - Description (normative)

  1. tools/install/.awh/goldenset.yaml MUST exist with schema compatible with awh (tasks: list; each task has id, cmd, weight, timeout_sec).
  2. At least three tasks MUST be offline-safe (no network, no docker, no cargo).
  3. tools/install/.awh/eval-baseline.json MUST be committed; awh-gate install job MUST fail closed if goldenset exists without baseline.
  4. tools/install/run-goldenset.sh MUST:
  1. docs/verification/install-goldenset.md MUST document path, runner, skip rules, and CI wiring.
  2. .github/workflows/awh-gate.yml MUST gain an install-goldenset job (no postgres/redis) that runs the install goldenset when tools/install/** changes (or always on PR — either is acceptable if documented).
  3. Suite test_install_goldenset.sh MUST cover skip + runner presence + goldenset shape.

Acceptance criteria

Test plan

bash tools/install/tests/test_install_goldenset.sh

Audit

TASK-IMP-008 audit

Install goldenset path is payload-honest (tools/install/.awh/). Fallback-or-SKIP when awh absent is normative; CI install-goldenset job is offline-safe and additive to module awh-gate. depends_on empty; IMP-026 consumes the standardized path.

SUMMARY verdict: pass issues_open: 0 next_action: none