Files
club-3090/scripts/generate-compose.sh
noonghunna 6d7a043d90 v0.8.0 STEP 3+4: compose generator + 5-triple golden-parity test (#141)
STEP 3: scripts/generate-compose.sh (+ scripts/lib/generate_compose.py).
Implements the brief's steps 1-10: scope gates first (type!=vllm /
genesis_equipped -> clean refuse), engine-pin loads:true validation
(image NEVER rewritten), arch via model_slugs/arch_model_xref, tp/kv
validation, trc {true,unverified} security refusal, compose-keyed patch
selection, delivery-gap-before-drift-guard, graded drift-guard
(capability-scoped -> OMIT+DEGRADED+--accept-degraded, foundational ->
hard-refuse, never repair, never wire a failed patch). Emits from the
captured compose_service_template: param-slots/constants verbatim, image
expression passed through verbatim, --trust-remote-code never emitted
in-scope (governed slot, locked §88), wiring re-derived only at the two
named insertion points, synthesizes nothing else. 3-category provenance
header above services: so STEP-2 service_body() discards it.

STEP 4: scripts/tests/test-generate-compose.sh. 5 golden triples
(vllm/minimal, vllm/dual, vllm/gemma-mtp, vllm/gemma-int8 [full,
multi-file overlay], vllm/gemma-dflash [dflash]) — all verified
genesis_equipped:false. Per triple: semantic diff vs shipped confined to
the two insertion points (image + constants verbatim), selected+wired
subset-of-shipped, wired pass reaches() on the GENERATED compose,
selected-but-undelivered NOT reachable, 3-category header, no
--trust-remote-code emitted. Plus the refusal/degraded matrix and
kv_arg() unit table. Imports (does not reimplement) patch_attribution.

test-patch-attribution.sh stays byte-identical (61 patch / 11 arch / 18
calibration, same 15 known-gap lines); all other test-*.sh remain RC=0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 15:49:37 +00:00

23 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# generate-compose.sh — v0.8.0 #141 compose generator (PR #147).
#
# Emits a minimal-reproduction docker-compose for an in-scope (non-Genesis,
# vLLM-only) profile. Mission (locked decision #2): reproduce + flag, NEVER
# repair. The engine image is NEVER rewritten; a failed-drift-guard patch is
# NEVER wired; --trust-remote-code (a governed slot, locked §88) is NEVER
# blind-passed for an in-scope profile.
#
# Usage:
# scripts/generate-compose.sh --profile vllm/minimal [--out FILE]
# scripts/generate-compose.sh --profile vllm/gemma-dflash --accept-degraded
# scripts/generate-compose.sh --model gemma-4-31b --engine vllm-nightly-full
# # convenience tuple: prints candidate --profile values, exits non-zero
#
# All decision logic lives in scripts/lib/generate_compose.py (this is a
# thin argv pass-through, matching the diagnose-profile.sh pattern).
set -euo pipefail
ROOT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
exec python3 "${ROOT_DIR}/scripts/lib/generate_compose.py" "$@"