fix(ptica): honest isReal flags — placeholder stubs no longer marked real (audit #1871 P1.3) #1875
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1875
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "audit/1871-p1-3-isreal-stubs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Audit-issue #1871 пункт P1.3 — ptica-adapt помечает заглушки
isReal:true.Адаптер — единственный источник истины real-vs-placeholder. Стаб с
isReal:trueрисуется обычной типографикой («—» как живое измерение, неотличимо от данных). Хелперыreal()/placeholder()/notReal()корректны — баг в misuse на 5 местах (recon нашёл 3, code-review нашёл ещё 2 drawer-зеркала).Изменения (3 файла, +130/-16)
ptica-adapt.ts— 5 honesty-фиксов::163encumbrances (passport-card) →notReal("источник ЕГРН"):272buySignalFromForecastприdeficit_index==null→notReal("прогноз недоступен (Сценарии §22)")(отличает «прогноза нет» от «прогноз говорит наблюдать»; di-present advisory-ветка не тронута):1942adaptBuySignalGaugeприdi==null→ убран syntheticgaugeValue=50как real, раннийif(di==null)зеркалит no-report ветку (value:null, isReal:false, available:false):681adaptPassportDrawer.registry+:1048adaptLegalDrawer.registry— те же «Обременения» стабы →notReal(drawer-зеркала card-фикса, найдены adversarial code-review)ptica.module.css—.kvPlaceholder += opacity:0.7(усиленный визуальный mute).Не тронуто (recon-verified корректно)
market demand-label (условный real/placeholder), engineering utilities, InvestScore potential.
Honesty contract
Числа не выдумываются — только корректные
isReal:false+ honest caption + визуальный mute. Genuine measured data (di-present buy signal) не понижается.Test plan
value:DASH/PLACEHOLDER + isReal:trueRefs #1871
🤖 Generated with Claude Code
Adapter — единственный источник истины real-vs-placeholder; стаб с isReal:true рисуется как живое измерение (обычная типографика «—», неотличимо от данных). Helpers real()/placeholder()/notReal() корректны — баг в их misuse на 5 местах. ptica-adapt.ts: - :163 encumbrances (passport-card): {value:PLACEHOLDER, isReal:true} → notReal("источник ЕГРН") - :272 buySignalFromForecast при deficit_index==null: {value:"наблюдать", isReal:true} → notReal("прогноз недоступен (Сценарии §22)") — отличает «прогноза нет» от «прогноз говорит наблюдать». di-present advisory-ветка (real) не тронута. - :1942 adaptBuySignalGauge при di==null: убран synthetic gaugeValue=50 как real; ранний if(di==null) зеркалит no-report ветку (value:null, isReal:false, available:false). - :681 adaptPassportDrawer registry, :1048 adaptLegalDrawer registry: те же «Обременения» стабы {value:DASH, isReal:true} → notReal (найдены code-review, recon их пропустил — drawer-зеркала card-фикса). ptica.module.css: .kvPlaceholder += opacity:0.7 — усиленный визуальный mute стаба. Корректные места НЕ тронуты (recon-verified): market demand-label (условный real/placeholder), engineering utilities, InvestScore potential. +5 unit-тестов (ptica-adapt.honesty.test.ts): encumbrances stub, buy-signal di=null, buy-signal real di (защита от over-downgrade), gauge di=null, оба drawer-обременения. Refs #1871CI frontend-tests упал: honesty-тест импортировал фикстуры из src/app/%5F%5Fpreview/ptica/__fixtures__/ — эта dev-only директория в .git/info/exclude, поэтому отсутствует в Linux CI checkout (vite:import-analysis 'Failed to resolve import'). Локально (macOS) резолвилось т.к. файлы на диске. Переключил импорт на tracked src/lib/mocks/parcel-{forecast,analyze}.json (NEXT_PUBLIC_USE_MOCKS source, в git) — report.exec_summary.key_numbers. deficit_index присутствует, shape совместим. 138/138 vitest passed. Refs #1871