FTF engine improvements — incremental polish for the ablation framework¶
epic_id: CVN-N014-EA
need_id: CVN-N014 (parent — see Continuous improvement)
OP: wp#89
Status: active
Created: 2026-04-29
Target release: rolling
Owner: dococeven
1. Objective¶
Polish the FTF (Fine-Tuning Framework) engine — the system that runs ablation sweeps, persists finetune_results, computes statistics, and produces PDF reports. The engine has reached production maturity (used for Tracks 5+, label_smoothing, cleanlab variants) but accumulates small inconsistencies as new factors land.
This Epic is the home for incremental Stories that improve clarity, consistency, ergonomics, and robustness of the FTF engine without changing what it computes.
2. Architecture notes¶
The FTF engine spans :
src/commun/finetune/—ablation_matrix,ablation_runner,factors/,guardrails,dag_config,report_pdf,report_statsdags/dag_finetune__pte.py— orchestration entry pointscripts/ftf_config_ui.py— Streamlit Console forftf_config.base_env(PostgreSQL, per ADR-59)documentation/architecture/FTF_GUARDRAILS.md+FTF_SCALING.md— invariants
ADRs introduced/touched :
- ADR-56 — every pipeline change must be FTF-testable / A/B-testable by design
- ADR-58 — every FTF factor must have a guardrail + integration test
- ADR-59 — params in PostgreSQL Console-only
- ADR-65 — Airflow DAG params are run-level only
Files expected to change (high level) : scripts/ftf_config_ui.py, src/commun/finetune/dag_config.py, src/commun/finetune/guardrails.py, possibly the Console PARAM_OPTIONS dict
3. Stories in this epic¶
| Story | Title | Status | OP | GH |
|---|---|---|---|---|
CVN-N014-EA-S01 |
Deduplicate PTE configuration in Console (slug vs SL/TP/H components) | active | wp#90 | #772 |
CVN-N014-EA-S02 |
power_mode=deep preset self-supplies history_months (fix #807) |
done | wp#100 | #807 (PR #810) |
~~CVN-N014-EA-S03~~ |
~~FTF runner skip-with-recorded-reason on empty training window~~ | rejected 2026-05-15 — superseded by ADR-25 fail-fast (PR #613 CR r3) ; underlying data-quality issue belongs in Epic CVN-N011-EA if it resurfaces |
wp#104 | #813 |
4. Acceptance criteria (epic level)¶
- No duplicate sources of truth for any FTF parameter (single canonical key per concept, derived values explicitly computed)
- Console UI rejects inconsistent / divergent inputs at submit time (fail-loud per ADR-25)
- Every Story under this Epic has a regression test that locks the new invariant
- Operator-facing documentation reflects the canonical configuration model (no stale duplicate references)
5. Dependencies¶
- Depends on: per-Story plan dossier + committee
plan_review(per ADR-68) before any implementation PR ; no upstream Epic dependency - Blocks: nothing — Stories under this Epic must not block strategic missions
6. Risks + mitigations¶
- Risk: Stories drift toward refactoring scope. Mitigation: each Story acceptance bar must be a single observable user-facing change, not "code is cleaner".
- Risk: Conflicts with active sweeps if Console schema changes. Mitigation: Console changes ship behind feature flag or are paired with migration guidance.
7. Closure¶
Filled when status moves to done (rolling Epic — likely to stay active for a long time as long as new improvement Stories land here).