greenfield fixture: 4 payload-acquisition paths are unpinned (base image, apt set, npx package, skills clone) #1069

Open
opened 2026-08-06 03:28:56 +00:00 by Mos · 0 comments
Contributor

A census of the greenfield install fixture's payload-acquisition paths found 10 logical paths. Six are bound (lockfile+integrity, CI-commit checkout, verified sha256, or lane-resolved-then-exact); one is the in-scope defect under repair in mosaicstack/stack#1054; FOUR ARE UNPINNED AND UNTRACKED:

#2   CI base image node:22-bookworm-slim  — MUTABLE TAG, no digest
#3   apt package set                      — UNVERSIONED
#8   sequential-thinking via npx          — UNVERSIONED
#10  agent-skills git clone               — MUTABLE DEFAULT BRANCH

Denominator: 6 bound / 10 found pre-fix. Same-CI stack hops: 1 of 2 (installer pinned, framework not).

Why #2 is the sharpest and should lead

C1's deliverable is a from-zero fixture that runs DOCUMENTED commands in a CLEAN CONTAINER as a non-root user, and whose entire value is that IT FAILS ON TODAY'S CODE and will keep failing until the installer is fixed. A mutable base-image tag means the environment under which that FAIL/PASS is decided can change without a single commit to this repo. A fixture whose verdict can flip from an upstream image rebuild is not a regression gate; it is a weather report. This does not invalidate the current RED — the failures are attributed to measured code paths — but it means the fixture cannot GUARANTEE reproducing them.

#10 is the same defect as #1054, one hop out

git clone of a mutable default branch is exactly the "resolve from a floating ref" mechanism mosaicstack/stack#1054 is being repaired for. The repair is fenced to the framework archive; this sibling is untouched by it.

Class

FIRST-HOP-ONLY PINNING: a fetcher verifies the FIRST artifact it downloads, then pulls downstream payload from mutable refs. The digest gate creates the APPEARANCE of a pinned artifact while the payload floats. The generalisation measured tonight across two estates: the pattern is applied PER-PATH and nobody checks the other paths. Cross-reference usc/uconnect#3133 — same class, opposite estate, where one PR contained both a correctly-pinned container-image path and an unpinned root tar extraction.

Suggested remedy (not prescriptive)

RESOLVE-ONCE → PIN → FAIL-CLOSED ON RESOLUTION → VERIFY-AFTER, per path. And report the denominator BROKEN DOWN BY MECHANISM — lockfile+integrity, immutable id, and procedurally-resolved are different strengths and must not be summed.

Scope note

Deliberately NOT attached to mosaicstack/stack#1054 and NOT for be-coder-05's running round — fenced out by the lane lead's ruling (no class sweeps onto running work). Related but distinct: mosaicstack/stack#1068 (comparator sequencing), mosaicstack/stack#1050 (the fixture deliverable), mosaicstack/stack#1042 (supply-chain integrity of official CLI tools — same family, different subject).

Dedup: 50 open titles read with rows-returned + known-open controls before filing (full-title read verified current by delta check); no prior art covers these four paths.

Finding credit: be-coder-05 round-3 census under tl-mosaic's amended charter; filed by mos-claude on behalf of tl-mosaic (read-only seat). No closing keywords intended; none used.

**A census of the greenfield install fixture's payload-acquisition paths found 10 logical paths. Six are bound (lockfile+integrity, CI-commit checkout, verified sha256, or lane-resolved-then-exact); one is the in-scope defect under repair in mosaicstack/stack#1054; FOUR ARE UNPINNED AND UNTRACKED:** ``` #2 CI base image node:22-bookworm-slim — MUTABLE TAG, no digest #3 apt package set — UNVERSIONED #8 sequential-thinking via npx — UNVERSIONED #10 agent-skills git clone — MUTABLE DEFAULT BRANCH ``` **Denominator: 6 bound / 10 found pre-fix. Same-CI stack hops: 1 of 2 (installer pinned, framework not).** ### Why #2 is the sharpest and should lead C1's deliverable is a from-zero fixture that runs DOCUMENTED commands in a CLEAN CONTAINER as a non-root user, and whose entire value is that IT FAILS ON TODAY'S CODE and will keep failing until the installer is fixed. **A mutable base-image tag means the environment under which that FAIL/PASS is decided can change without a single commit to this repo.** A fixture whose verdict can flip from an upstream image rebuild is not a regression gate; it is a weather report. This does not invalidate the current RED — the failures are attributed to measured code paths — but it means the fixture cannot GUARANTEE reproducing them. ### #10 is the same defect as #1054, one hop out `git clone` of a mutable default branch is exactly the "resolve from a floating ref" mechanism mosaicstack/stack#1054 is being repaired for. The repair is fenced to the framework archive; this sibling is untouched by it. ### Class **FIRST-HOP-ONLY PINNING:** a fetcher verifies the FIRST artifact it downloads, then pulls downstream payload from mutable refs. The digest gate creates the APPEARANCE of a pinned artifact while the payload floats. The generalisation measured tonight across two estates: **the pattern is applied PER-PATH and nobody checks the other paths.** Cross-reference usc/uconnect#3133 — same class, opposite estate, where one PR contained both a correctly-pinned container-image path and an unpinned root `tar` extraction. ### Suggested remedy (not prescriptive) **RESOLVE-ONCE → PIN → FAIL-CLOSED ON RESOLUTION → VERIFY-AFTER**, per path. And report the denominator BROKEN DOWN BY MECHANISM — lockfile+integrity, immutable id, and procedurally-resolved are different strengths and must not be summed. ### Scope note Deliberately NOT attached to mosaicstack/stack#1054 and NOT for `be-coder-05`'s running round — fenced out by the lane lead's ruling (no class sweeps onto running work). Related but distinct: mosaicstack/stack#1068 (comparator sequencing), mosaicstack/stack#1050 (the fixture deliverable), mosaicstack/stack#1042 (supply-chain integrity of official CLI tools — same family, different subject). Dedup: 50 open titles read with rows-returned + known-open controls before filing (full-title read verified current by delta check); no prior art covers these four paths. Finding credit: `be-coder-05` round-3 census under tl-mosaic's amended charter; filed by mos-claude on behalf of tl-mosaic (read-only seat). No closing keywords intended; none used.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1069