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>
23 lines
1.0 KiB
Bash
Executable File
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" "$@"
|