[Fable 5][P3] §15 confidence: нота deal_count теряет окно «за N мес» — расходится с контракт-примером модуля #1637

Closed
opened 2026-06-16 18:44:32 +00:00 by bot-backend · 0 comments
Collaborator

Severity: low · Категория: report-text-completeness · Файл: backend/app/services/forecasting/confidence_engine.py:416-424 (ср. 8, 185-211)

confidence_engine.py:416-424 (ср. docstring стр.8 и 190-200). Вызов _factor_from_count для главного счётчика (_F_DEAL_COUNT) не передаёт suffix=, поэтому _factor_from_count даёт tail='' (стр.206) и нота 'N сделок — мало' без окна наблюдения. При этом контрактный §15-пример в топ-docstring (стр.8) и в docstring _factor_from_count (стр.190-200) явно объявляют формат 'N сделок за 6 мес — мало' (suffix='за 6 мес'). Корень: в сигнатуре compute_report_confidence (стр.371-380) нет входа про длину окна сделок (есть только отдельный history_months), поэтому окно сделок в причину не попадает никогда. Импакт: причина §15 в слоте ReportConfidence #987 систематически беднее задекларированного контракта — теряется контекст «за сколько месяцев эти N сделок» (важный для интерпретации '7 сделок'). Не неверное число — деградация explainability. Фикс: добавить параметр deal_window_months в compute_report_confidence и пробросить suffix=f'за {deal_window_months} мес' (graceful, когда None — без хвоста); либо привести docstring-примеры к реальному формату без окна, если окно сознательно не отслеживается.

Почему баг: Нота-причина §15 для главного счётчика (сделки) систематически беднее задекларированного контракта: число и уровень верны, но контекст «за сколько месяцев эти N сделок» (важный для интерпретации '7 сделок' — за 6 мес это мало, за неделю много) утерян. Это деградация explainability §15/§16, а не неверное число — отсюда low. Не дублирует #1222 (тот про чтение несуществующих ключей forecast-диктов в §15-report-confidence), здесь — про отсутствующий suffix у deal_count.

Как чинить: Либо принять окно сделок параметром compute_report_confidence (например deal_window_months) и пробросить suffix=f'за {n} мес' в _factor_from_count для _F_DEAL_COUNT, либо убрать оконный пример из docstring, чтобы контракт ноты совпадал с реализацией.


deep-audit backend v2 (2-й проход, после PR #1543) · verify+harden, confidence 0.82 · unit B25

**Severity:** low · **Категория:** report-text-completeness · **Файл:** `backend/app/services/forecasting/confidence_engine.py:416-424 (ср. 8, 185-211)` confidence_engine.py:416-424 (ср. docstring стр.8 и 190-200). Вызов _factor_from_count для главного счётчика (_F_DEAL_COUNT) не передаёт suffix=, поэтому _factor_from_count даёт tail='' (стр.206) и нота 'N сделок — мало' без окна наблюдения. При этом контрактный §15-пример в топ-docstring (стр.8) и в docstring _factor_from_count (стр.190-200) явно объявляют формат 'N сделок за 6 мес — мало' (suffix='за 6 мес'). Корень: в сигнатуре compute_report_confidence (стр.371-380) нет входа про длину окна сделок (есть только отдельный history_months), поэтому окно сделок в причину не попадает никогда. Импакт: причина §15 в слоте ReportConfidence #987 систематически беднее задекларированного контракта — теряется контекст «за сколько месяцев эти N сделок» (важный для интерпретации '7 сделок'). Не неверное число — деградация explainability. Фикс: добавить параметр deal_window_months в compute_report_confidence и пробросить suffix=f'за {deal_window_months} мес' (graceful, когда None — без хвоста); либо привести docstring-примеры к реальному формату без окна, если окно сознательно не отслеживается. **Почему баг:** Нота-причина §15 для главного счётчика (сделки) систематически беднее задекларированного контракта: число и уровень верны, но контекст «за сколько месяцев эти N сделок» (важный для интерпретации '7 сделок' — за 6 мес это мало, за неделю много) утерян. Это деградация explainability §15/§16, а не неверное число — отсюда low. Не дублирует #1222 (тот про чтение несуществующих ключей forecast-диктов в §15-report-confidence), здесь — про отсутствующий suffix у deal_count. **Как чинить:** Либо принять окно сделок параметром compute_report_confidence (например deal_window_months) и пробросить suffix=f'за {n} мес' в _factor_from_count для _F_DEAL_COUNT, либо убрать оконный пример из docstring, чтобы контракт ноты совпадал с реализацией. --- <sub>deep-audit backend v2 (2-й проход, после PR #1543) · verify+harden, confidence 0.82 · unit B25</sub>
bot-backend added the
week ревью 1
label 2026-06-16 18:44:32 +00:00
bot-backend added the
needs-human
label 2026-06-16 20:44:19 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1637
No description provided.