Repository navigation
[Phase 16] S11 — Deploy/serving generator contract #897
Description
Roadmap · Phase 16, step S11 · size M · 4 unit(s) · planned in
docs/roadmap/phase-16-trust-surface-hardening.md:613-634
Summary
One subcommand's contract in four layers — what it accepts, what it emits and what it claims to do. The manual documents a TGI output of tgi-launcher.sh + Dockerfile; the generator returns a single docker-compose document. Three auto-detection claims have no implementation, and the manual's "override any auto-detection with explicit YAML" contradicts its own Configuration section and cannot be implemented: ForgeConfig forbids extra keys and has no deployment: block.
Units
| Unit | Tracked by (October 2026 review) |
|---|---|
F-W20260729-CLI-10 |
#259 · #260 · #435 · #483 · #612 · #618 · #786 · #815 |
F-W20260729-CLI-14 |
#259 · #260 · #483 · #567 · #612 · #618 · #786 · #815 |
F-W20260729-CLI-15 |
#259 · #260 · #483 · #612 · #618 · #705 · #786 · #815 |
F-W20260729-CLI-16 |
#80 · #259 · #260 · #483 · #612 · #618 · #786 · #815 |
Plan
- Bind all four layers with one acceptance mechanism: golden tests comparing the manual's fenced blocks against real
generate_deploy_config()output.
Exit criteria
- Every deploy command in the manual runs in a temporary checkout, and the resulting tree and the quoted snippets match, in English and Turkish alike.
- A negative test pins
--output <existing dir>→success=False. - Absolute and relative local paths to HF Endpoints are config errors with no side effects.
- A parametrized accepted/rejected flag matrix per target holds; TGI rejects port 65536; input + output budget ≤ the declared context window.
- The generated compose file parses to a non-
latestimage and a read-only/datamount.
How to deliver
- One root-cause family, committed on its own; then an Opus review round and a Sonnet review round, each with verified findings fixed and committed before the next step begins.
- A reproducer that is red before the fix and green after; the full gauntlet from
CLAUDE.mdpasses under./.venv/bin/python. - Every English documentation edit ships with its Turkish mirror in the same commit; a new or renamed audit event gets its EN and TR catalog rows in the same PR.
- A step that grows a deferred module carries its
budget_historyjustification in the same diff; a widened guard rolls out non-strict first, then flips. - Commit bodies cite
Absorbs F-W20260729-…; the CHANGELOG[Unreleased]section gets an entry only for a change a user or library consumer can observe (decision C-20).
Planned in docs/roadmap/phase-16-trust-surface-hardening.md (read at f94595f). Unit IDs (F-W20260729-…) come from the 2026-07-29/30 full-project review; the issue numbers next to them are the October 2026 review's records of the same defects.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Activity
forgelm/cli/_parser.pyinto a sub-package (_train,_inspect,_data,_run) — deferred until Phase 16 S5, S7 and S11 have landed #907