Переносит архив `audits/2026-10-11/` (19 файлов) из codex/audit-remediation-2026-10-11 в develop и добавляет точечный allowlist в .gitignore.
373 lines
32 KiB
Markdown
373 lines
32 KiB
Markdown
# Triage — 2026-10-11
|
||
|
||
## Правила и единица счёта
|
||
|
||
Основные источники — отчёты 01–15, 125 finding IDs из их конечных таблиц.
|
||
Предыдущие источники: Technical F1–F17 и отдельная рекомендация удаления
|
||
controller test (TA-X01); Complexity H1–H20 и девять дополнительных кандидатов
|
||
(CA-X01–09); Efficiency RC-01–RC-18. Итого 190 исходных записей.
|
||
Повторные executive summaries, G-list и D/F sections Complexity сопоставлены
|
||
с H/X, а не посчитаны как новые независимые дефекты. CA-Hnn — номер строки
|
||
раздела H; CA-Xnn перечислены ниже с точным предметом, поскольку исходных IDs
|
||
у этих дополнительных предложений нет. TA-Fnn соответствует исходному Fnn.
|
||
|
||
`DUPLICATE` означает покрытие указанным deliverable; исходные confidence и
|
||
ограничения сохраняются в отчёте. Дубликат INVESTIGATE не становится runtime
|
||
FIX: недоказанная часть проверяется внутри соответствующего Issue до решения.
|
||
Порядок исполнения не считается блокирующей зависимостью. Gitea владеет
|
||
статусами; в реестре нет второго поддерживаемого status checklist.
|
||
|
||
## Нормализованные engineering topics
|
||
|
||
Каждый topic — цель с самостоятельно проверяемым результатом. Два local
|
||
verification owners и четыре title-trigger owners поставляются независимо.
|
||
Поэтому число Issues может превышать число topics. P0 не установлен.
|
||
|
||
| Topic | Priority / owner | Результат / Issue |
|
||
| --- | --- | --- |
|
||
| T01 | P1 backend | [#56: Hourly completion/recovery и executable proof](https://git.personal.ksv741.ru/WealthLedger/backend/issues/56) |
|
||
| T02 | P1 backend | [#55: Latest complete forecast/identity/filtering/failure policy](https://git.personal.ksv741.ru/WealthLedger/backend/issues/55) |
|
||
| T03 | P2 backend | [#54: Long-walk eligibility](https://git.personal.ksv741.ru/WealthLedger/backend/issues/54) |
|
||
| T04 | P2 backend | [#53: Mutable calendars/fallback](https://git.personal.ksv741.ru/WealthLedger/backend/issues/53) |
|
||
| T05 | P2 backend | [#57: Local Income/narrow Ledger interval](https://git.personal.ksv741.ru/WealthLedger/backend/issues/57) |
|
||
| T06 | P2 backend | [#59: Online invalid-token translation](https://git.personal.ksv741.ru/WealthLedger/backend/issues/59) |
|
||
| T07 | P2 backend | [#58: Accounts/Income hourly meta](https://git.personal.ksv741.ru/WealthLedger/backend/issues/58) |
|
||
| T08 | P2 backend | [#60: Password bytes/artifact](https://git.personal.ksv741.ru/WealthLedger/backend/issues/60) |
|
||
| T09 | P2 backend | [#61: Auth role/expiry/cookie regressions](https://git.personal.ksv741.ru/WealthLedger/backend/issues/61) |
|
||
| T10 | P2 backend | [#62: Dead producer closure](https://git.personal.ksv741.ru/WealthLedger/backend/issues/62) |
|
||
| T11 | P2 backend | [#64: Legacy reader compatibility](https://git.personal.ksv741.ru/WealthLedger/backend/issues/64) |
|
||
| T12 | P2 backend | [#63: Source races/rollback/barriers](https://git.personal.ksv741.ru/WealthLedger/backend/issues/63) |
|
||
| T13 | P2 backend | [#65: HTTP case isolation](https://git.personal.ksv741.ru/WealthLedger/backend/issues/65) |
|
||
| T14 | P2 backend + frontend | [backend #66: Single preparation](https://git.personal.ksv741.ru/WealthLedger/backend/issues/66); [frontend #62: Lean local gates/hook](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/62) |
|
||
| T15 | P2 backend | [#67: Compatible SQLite driver](https://git.personal.ksv741.ru/WealthLedger/backend/issues/67) |
|
||
| T16 | P2 backend | [#4, reused: Compiler dependencies](https://git.personal.ksv741.ru/WealthLedger/backend/issues/4#issuecomment-1083) |
|
||
| T17 | P2 backend | [#68: Banking page batches](https://git.personal.ksv741.ru/WealthLedger/backend/issues/68) |
|
||
| T18 | P3 backend | [#69: Single publicInstrument projection](https://git.personal.ksv741.ru/WealthLedger/backend/issues/69) |
|
||
| T19 | P3 backend | [#72: Small real runner workload](https://git.personal.ksv741.ru/WealthLedger/backend/issues/72) |
|
||
| T20 | P2 frontend | [#54: Query-owned lifecycle/eligibility/API pruning](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/54) |
|
||
| T21 | P2 frontend | [#55: Investment source/client feedback](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/55) |
|
||
| T22 | P2 frontend | [#57: Banking read recovery](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/57) |
|
||
| T23 | P3 frontend | [#58: Payment-system tuple](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/58) |
|
||
| T24 | P2 frontend | [#56: Pending auth navigation](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/56) |
|
||
| T25 | P2 frontend | [#61: Late-response client barriers](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/61) |
|
||
| T26 | P2 frontend | [#59: CURRENCY visibility decision](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/59) |
|
||
| T27 | P2 frontend | [#63: Events screen contract/oracles](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/63) |
|
||
| T28 | P3 frontend | [#60: Native OpenAPI check](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/60) |
|
||
| T29 | P2 specs | [#1, reused: Documentation authority](https://git.personal.ksv741.ru/WealthLedger/specs/issues/1#issuecomment-1080) |
|
||
| T30 | P2 specs | [#28: Five capability index entries](https://git.personal.ksv741.ru/WealthLedger/specs/issues/28) |
|
||
| T31 | P2 specs | [#29: Completion disposition](https://git.personal.ksv741.ru/WealthLedger/specs/issues/29) |
|
||
| T32 | P2 specs | [#2, reused: Meaningful committed CI input](https://git.personal.ksv741.ru/WealthLedger/specs/issues/2#issuecomment-1067) |
|
||
| T33 | P2 docs | [#34: Current system explanation](https://git.personal.ksv741.ru/WealthLedger/docs/issues/34) |
|
||
| T34 | P3 frontend + backend + specs + docs | [frontend #64](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/64), [backend #74](https://git.personal.ksv741.ru/WealthLedger/backend/issues/74), [specs #30](https://git.personal.ksv741.ru/WealthLedger/specs/issues/30), [docs #35](https://git.personal.ksv741.ru/WealthLedger/docs/issues/35): title edit proof |
|
||
| T35 | P2 main | [#24: Generic applicability/evidence/approval/bootstrap](https://git.personal.ksv741.ru/WealthLedger/main/issues/24) |
|
||
| T36 | P2 main | [#25: Private provider credential investigation](https://git.personal.ksv741.ru/WealthLedger/main/issues/25) |
|
||
| T37 | P2 backend | [#70: Published screener constraints](https://git.personal.ksv741.ru/WealthLedger/backend/issues/70) |
|
||
| T38 | P2 backend | [#73: Actual auth perimeter evidence](https://git.personal.ksv741.ru/WealthLedger/backend/issues/73) |
|
||
| T39 | P2 backend | [#71: Independent prices/detail start](https://git.personal.ksv741.ru/WealthLedger/backend/issues/71) |
|
||
|
||
P1 обоснован финансовой publication/recovery boundary, а не частотой упоминаний.
|
||
T34 понижен до P3: это metadata policy proof, не financial/security runtime bug.
|
||
T17 допускает KEEP текущего loader по подтверждённому cost/maintenance trade-off.
|
||
|
||
## Реестр специализированных findings
|
||
|
||
| Finding | Decision | Topic / причина |
|
||
| --- | --- | --- |
|
||
| ARCH-002 | DUPLICATE | T05: оба live readPlan callers |
|
||
| ARCH-003 | DUPLICATE | T20: timer принадлежит query lifecycle |
|
||
| ARCH-005 | KEEP | Session owner, cookie queue, authenticated transport и refresh CAS |
|
||
| ARCH-006 | KEEP | Singleton source owners, durable store и conditional publication |
|
||
| ARCH-007 | KEEP | Cohesive banking transaction и exact money |
|
||
| ARCH-008 | DUPLICATE | T02: event-specific selection проверяется вместе с financial fix |
|
||
| ARCH-009 | DUPLICATE | T11: public observe compatibility требует evidence |
|
||
| CPLX-001 | DUPLICATE | T20: native polling с сохранением session/cadence |
|
||
| CPLX-002 | SIMPLIFY | T05: существующий operationIntervals вместо screen round-trip |
|
||
| CPLX-003 | NO_ACTION | Optional label-only VM cleanup; текущая convention и a11y работают, отдельный результат не оправдан |
|
||
| CPLX-004 | DUPLICATE | T02: semantics proof внутри fix; неизвестный GET publication outcome не объявлен defect |
|
||
| CPLX-005 | DUPLICATE | T11: externally reachable reader, retirement не предрешён |
|
||
| CPLX-006 | DUPLICATE | T05: cold Income decision до удаления request work |
|
||
| CPLX-007 | KEEP | Complete forecast fences и exact currency totals |
|
||
| CPLX-008 | KEEP | Durable reservation, attempts и source owners |
|
||
| CPLX-009 | KEEP | Banking replay/CAS/tombstones/rollback |
|
||
| CPLX-010 | KEEP | Stable screener snapshot, raw-input guard и latest intent |
|
||
| DRY-001 | DUPLICATE | T08: byte-policy runtime boundary |
|
||
| DRY-002 | SIMPLIFY | T18: одна projection, orchestration не объединяется |
|
||
| DRY-003 | SIMPLIFY | T23: tuple schema/options, empty sentinel отдельно |
|
||
| DRY-004 | SIMPLIFY | T21: общий access-loss membership predicate, recovery actions остаются локальны |
|
||
| DRY-005 | KEEP | Independent browser/server validation и точные деньги |
|
||
| DRY-006 | KEEP | Разные stock/bond payout/quote semantics |
|
||
| DRY-007 | KEEP | Session/resource wrappers и accessible UI primitives |
|
||
| DRY-008 | KEEP | Provider artifact, consumer derivative и unknown-code fallback |
|
||
| DRY-009 | KEEP | Только live enrichment/shared fence, не dead discovery producer |
|
||
| DRY-010 | DUPLICATE | T20: policy equivalence доказать до native migration |
|
||
| DEAD-001 | DELETE | T10: manual writer closure, status reader сохраняется |
|
||
| DEAD-002 | DELETE | T10: dead-parent catalog producer; shared publishSource сохраняется |
|
||
| DEAD-003 | DELETE | T10: только orphan Accepted DTO |
|
||
| DEAD-004 | DELETE | T20: only-test frontend observe API, backend query не удаляется |
|
||
| DEAD-005 | DUPLICATE | T20: facade/descriptors удаляются после переноса live timer |
|
||
| DEAD-006 | INVESTIGATE | T11: external status consumers и old screen rows |
|
||
| DEAD-007 | DUPLICATE | T11: endpoint-specific observe support |
|
||
| DEAD-008 | KEEP | Live interval/history helpers; keeper не требует сохранять round-trip caller |
|
||
| DEAD-009 | KEEP | Registered hourly runtime owner |
|
||
| DEAD-010 | KEEP | Candle first-load, staging и complete coverage |
|
||
| DEAD-011 | KEEP | Shared source CAS, identities и candle FK |
|
||
| FE-001 | FIX | T21: source metadata проходит VM/container/view |
|
||
| FE-002 | FIX | T21: cached transport warning и read-only retry |
|
||
| FE-003 | FIX | T20: disabled manual refetch и policy ownership |
|
||
| FE-004 | FIX | T22: error не blank, sections independently recover |
|
||
| FE-005 | FIX | T24: Fieldset не блокирует anchor |
|
||
| FE-006 | INVESTIGATE | T26: tests/spec спорят о currency instrument |
|
||
| FE-007 | DUPLICATE | CPLX-003: optional cleanup без самостоятельной задачи |
|
||
| FE-008 | KEEP | Реальные page VMs и scroll/form presentation lifecycle |
|
||
| FE-009 | KEEP | Semantic Mantine wrappers/package foundation |
|
||
| FE-010 | KEEP | RHF draft, intent replay, explicit version adoption и bigint |
|
||
| FE-011 | KEEP | Generated keys, session/connection/access boundaries |
|
||
| FE-012 | NO_ACTION | Только unmeasured render hypothesis; нет симптома/scale input, profiler/virtualization backlog не нужен |
|
||
| BE-001 | FIX | T02: complete candidate не veto старым overlap |
|
||
| BE-002 | FIX | T01: failed/interrupted durable settlement и live-process recovery |
|
||
| BE-003 | FIX | T04: mutable calendar refresh |
|
||
| BE-004 | FIX | T05: local Income и bounded Ledger exception |
|
||
| BE-005 | FIX | T06: все direct online callers используют translator |
|
||
| BE-006 | FIX | T03: skipped terms вместо immediate repeat |
|
||
| BE-007 | DUPLICATE | T10: writer closure already DEAD-001 |
|
||
| BE-008 | FIX | T07: resource-relevant hourly meta |
|
||
| BE-009 | KEEP | Простой modular monolith и concrete singleton DI |
|
||
| BE-010 | KEEP | Banking transactions/replay и refresh CAS |
|
||
| BE-011 | KEEP | Decimal strings/bigint и meaningful mappers |
|
||
| BE-012 | KEEP | Revision/attempt/source fences, staged complete publication |
|
||
| BE-013 | INVESTIGATE | T02: failed-existing-calendar GET fixture до publication policy change |
|
||
| BE-014 | INVESTIGATE | T04: missing MOEX block contract внутри calendar boundary, malformed guards сохраняются |
|
||
| BE-015 | INVESTIGATE | T01: controlled app.close/restart arm; graceful-stop необходимость не предрешена |
|
||
| FLOW-001 | DUPLICATE | T05: ordinary Income/targeted Ledger source budget |
|
||
| FLOW-002 | DUPLICATE | T20: common readiness boundary |
|
||
| FLOW-003 | SIMPLIFY | T39: независимая prices/detail waterfall, прежний DTO и limiter |
|
||
| FLOW-004 | DUPLICATE | T06: permanent failure не усиливается GET retry |
|
||
| FLOW-005 | SIMPLIFY | T17: page loader adoption после isolated trace |
|
||
| FLOW-006 | DUPLICATE | T04: calendar-specific refresh и multi-account coalescing |
|
||
| FLOW-007 | DUPLICATE | T02: producer update отличается от read filter |
|
||
| FLOW-008 | DUPLICATE | T20: focus/mount/reconnect/hidden-tab решение |
|
||
| FLOW-009 | NO_ACTION | Local hydration/DTO price не измерена; нет оснований менять unlimited Income contract или добавлять BFF |
|
||
| FLOW-010 | KEEP | Authorization, cursor, CAS, atomicity, whitelist и current reuse |
|
||
| TQ-001 | FIX | T12: start source request перед replace, await done |
|
||
| TQ-002 | FIX | T25: loser client settlement, не gate release |
|
||
| TQ-003 | DUPLICATE | T01 + T03: real coordinator/reservation outcomes входят в scheduler acceptance |
|
||
| TQ-004 | DUPLICATE | T21: заменить quiet oracle положительным route proof |
|
||
| TQ-005 | DUPLICATE | T02: shifted-window publication и disjoint saved-empty |
|
||
| TQ-006 | DUPLICATE | T04: conservative missing-block policy до provider evidence |
|
||
| TQ-007 | FIX | T08 + T09: UTF-8 и token-role/cookie/expiry distinctions независимо |
|
||
| TQ-008 | FIX | T12: throw после первого real tx write, snapshot + points unchanged |
|
||
| TQ-009 | DUPLICATE | T10: normalization suite удаляется с подтверждённым dead writer |
|
||
| TQ-010 | SIMPLIFY | T27: screen-owner решение, актуальные visible oracles; API filtering сохраняется |
|
||
| TQ-011 | KEEP | Real auth CAS, usable winner и session generations |
|
||
| TQ-012 | KEEP | Independent money oracles на complementary levels |
|
||
| TQ-013 | KEEP | Deterministic SQLite rollback/dependency CAS/replay |
|
||
| TI-001 | FIX | T13: case-owned bank prerequisites |
|
||
| TI-002 | FIX | T13: existing scheduler override в unrelated HTTP/benchmark |
|
||
| TI-003 | FIX | T12: started/release/done вместо readiness sleeps |
|
||
| TI-004 | FIX | T14 backend: explicit fresh dist prerequisite targeted crash |
|
||
| TI-005 | SIMPLIFY | T19: меньший настоящий SQLite payload, safety assertions прежние |
|
||
| TI-006 | DELETE | T25: удалить unused failBond при adjacent async suite cleanup |
|
||
| TOOL-001 | SIMPLIFY | T28: native read-only generator check |
|
||
| TOOL-002 | FIX | T14 frontend: explicit no-install npx, occurrence не заявлена |
|
||
| TOOL-003 | KEEP | Восьмистрочная manual diagnostic имеет допустимую boundary; нет доказанного external-unused/cost, автоматически не подключать/удалять |
|
||
| TOOL-004 | KEEP | Targeted manual publication regression сохраняет digest/recovery proof; отсутствие blanket verify caller допустимо |
|
||
| VERIFY-001 | FIX | T32: meaningful committed input, required context сохраняется |
|
||
| VERIFY-002 | FIX | T34: четыре независимо поставляемых edited triggers |
|
||
| VERIFY-003 | SIMPLIFY | T14 backend: одна preparation до consumers, fresh dist reuse |
|
||
| VERIFY-004 | SIMPLIFY | T14 frontend: whole graph final/CI вместо every-commit |
|
||
| DEPS-001 | FIX | T14 backend: explicit fresh quick-start preparation |
|
||
| DEPS-002 | DELETE | T16: только direct ts-loader/source-map-support, штатный lock resolution |
|
||
| DEPS-003 | SIMPLIFY | T15: adapter-compatible direct driver, не forced override |
|
||
| DEPS-004 | FIX | T14 backend: debug development mode согласован с startup guidance |
|
||
| RISK-001 | DUPLICATE | T01: abandoned running/live-process recovery |
|
||
| RISK-002 | DUPLICATE | T01: outer exception никогда не false succeeded |
|
||
| RISK-003 | DUPLICATE | T02: latest full forecast |
|
||
| RISK-004 | DUPLICATE | T04: mutable calendar policy |
|
||
| RISK-005 | DUPLICATE | T21: source/client feedback, cached sums сохранены |
|
||
| RISK-006 | DUPLICATE | T06: safe permanent token error |
|
||
| RISK-007 | DUPLICATE | T08: UTF-8 minimum, raw password |
|
||
| RISK-008 | INVESTIGATE | T38: live proxy/admission evidence, не подтверждённая exploitation |
|
||
| AGENT-001 | SIMPLIFY | T14 backend + frontend: separate installation/iteration/final boundary |
|
||
| AGENT-002 | SIMPLIFY | T35: risk-based tests/evidence revision вместо message-count freshness |
|
||
| AGENT-003 | FIX | T35: generic rulings внутри approved semantics; standard OpenSpec неизменен |
|
||
| AGENT-004 | FIX | T35: conditional existing nvm.sh bootstrap, без нового script |
|
||
| AGENT-005 | NO_ACTION | Tool/schema overhead не измерен; нет current blocker, global A/B infrastructure не создаётся |
|
||
| AGENT-006 | SIMPLIFY | T35: model override только при tool capability |
|
||
| SPEC-001 | SIMPLIFY | T29: одна documentation authority, audits в root по запросу |
|
||
| SPEC-002 | FIX | T31: explicit original delivery disposition, unchecked archive не переписать |
|
||
| SPEC-003 | FIX | T33: current Portfolio/Stock/Bond/Container claims сверены |
|
||
| SPEC-004 | FIX | T30: пять topic entries, active screener не fake canonical |
|
||
| SPEC-005 | FIX | T37: additionalProperties/lot constraints, runtime последствия unverified |
|
||
|
||
## Реестр предыдущих источников
|
||
|
||
Предыдущие измерения относятся к своим samples и не подтверждают runtime
|
||
состояние нынешней системы. Служебные CA/TA IDs введены только для ссылок
|
||
на уже существующие разделы, не как дополнительный finding source.
|
||
|
||
| Finding | Decision | Topic / причина |
|
||
| --- | --- | --- |
|
||
| TA-F01 | DUPLICATE | T02 |
|
||
| TA-F02 | DUPLICATE | T01 |
|
||
| TA-F03 | DUPLICATE | T04 |
|
||
| TA-F04 | DUPLICATE | T03 |
|
||
| TA-F05 | DUPLICATE | T21 |
|
||
| TA-F06 | DUPLICATE | T05 |
|
||
| TA-F07 | DUPLICATE | T20 |
|
||
| TA-F08 | DUPLICATE | T12 + T25 + T01 |
|
||
| TA-F09 | DUPLICATE | T10 |
|
||
| TA-F10 | DUPLICATE | T39; full detail поля нужны actual bond cards |
|
||
| TA-F11 | DUPLICATE | T17 |
|
||
| TA-F12 | DUPLICATE | T08 |
|
||
| TA-F13 | DUPLICATE | T06 |
|
||
| TA-F14 | DUPLICATE | T04 |
|
||
| TA-F15 | DUPLICATE | T18 |
|
||
| TA-F16 | DUPLICATE | T30 + T33 |
|
||
| TA-F17 | DUPLICATE | CPLX-003: optional labels cleanup не оправдывает задачу |
|
||
| TA-X01 | KEEP | §Simplification Opportunities/controller test: audit 08 подтверждает полезный arbitrary-sub adapter seam; no blanket mock-test deletion |
|
||
| CA-H01 | DUPLICATE | T14: installation/final gates |
|
||
| CA-H02 | DUPLICATE | T19: real small runner workload |
|
||
| CA-H03 | NO_ACTION | Второй FE tsc invocation не доказывает повторную recompilation/равноценность удаления; более точный audit 11 сохраняет |
|
||
| CA-H04 | KEEP | App/test compiler roots различаются; superset не доказал эквивалентные diagnostics |
|
||
| CA-H05 | DUPLICATE | T14 backend: prepared dist reuse |
|
||
| CA-H06 | DUPLICATE | T14 frontend: lean hook |
|
||
| CA-H07 | DUPLICATE | T28 |
|
||
| CA-H08 | DUPLICATE | T32: исправить actual input, не удалить required check |
|
||
| CA-H09 | NO_ACTION | Нет concrete false-positive/cost proof mechanical lint; прежняя blanket cut гипотеза не отменяет user decisions main #18 |
|
||
| CA-H10 | KEEP | Motion реально используется, measured bundle/cost проблемы нет; native CSS — необязательная альтернатива |
|
||
| CA-H11 | SIMPLIFY | T12: metadata tests на production-used request/savedMany; unused combined read удалять только после caller proof |
|
||
| CA-H12 | DELETE | T20: only-test plural authenticated-query API после current caller inventory |
|
||
| CA-H13 | SIMPLIFY | T12: existing public request/done и provider вместо private test access; publication owner не дробить |
|
||
| CA-H14 | SIMPLIFY | T20: unused history.retry/initial isFetching surface после полного caller proof; automatic cursor recovery сохраняется |
|
||
| CA-H15 | NO_ACTION | Малый stock/bond renderer union — лишь предыдущая гипотеза; нет current defect/существенной цены narrowing |
|
||
| CA-H16 | DUPLICATE | T27: current Events RTL/MSW outcomes вместо old fake-query oracle |
|
||
| CA-H17 | SIMPLIFY | T12: pure mapper/repository seam для unit proof, real SQLite guarantees отдельно |
|
||
| CA-H18 | NO_ACTION | Blanket delegation/page fallback test deletion не обоснован primary TQ review; exact duplicate route case допустим opportunistically |
|
||
| CA-H19 | DUPLICATE | T13: case-owned prerequisites |
|
||
| CA-H20 | DUPLICATE | T29 + T35: opt-in/project applicability, no new workflow |
|
||
| CA-X01 | NO_ACTION | D5 membershipWork accessor: prior-only small dead API hypothesis; removal при касании owner, не отдельный результат |
|
||
| CA-X02 | NO_ACTION | D5 candleTail key: prior-only tiny unused field, candle loader KEEP |
|
||
| CA-X03 | DELETE | D5 HourlySyncSectionDto: T10, только orphan DTO после schema/caller proof |
|
||
| CA-X04 | NO_ACTION | D5 totalsByCurrency export: optional local API narrowing; calculation используется |
|
||
| CA-X05 | DUPLICATE | G5 runtime-check: TOOL-003 KEEP manual boundary до external-consumer evidence |
|
||
| CA-X06 | KEEP | D7 FormProvider: действующая local form convention, context-only optimization необязательна |
|
||
| CA-X07 | KEEP | §SIMPLIFY/specs prepare: current explicit install lifecycle; нежелательный effect не подтверждён |
|
||
| CA-X08 | KEEP | B4 visual SHA tables: отдельно передаваемые approval exports имеют integrity boundary, не удалять без proof |
|
||
| CA-X09 | KEEP | G InvestmentRefreshState: четыре catalog stories и isolation consumer, не confirmed dead |
|
||
| RC-01 | DUPLICATE | T14: один final gate после последнего relevant input change |
|
||
| RC-02 | NO_ACTION | Aggregates repeated reads не кодируют semantic novelty; session-local reuse действует, cache service не нужен |
|
||
| RC-03 | DUPLICATE | T14 + T35: reuse evidence по diff/command/outcome, без persistent validation ledger |
|
||
| RC-04 | NO_ACTION | Multi-repo task scope законен; routers уже самостоятельны, hard permissions/manifest не оправданы sample count |
|
||
| RC-05 | KEEP | Scoped independent semantic review сохраняется; elapsed task time не доказал waste |
|
||
| RC-06 | NO_ACTION | Повторные tool calls могут быть intentional polling; pending/completed dedup framework не нужен |
|
||
| RC-07 | DUPLICATE | T14 |
|
||
| RC-08 | DUPLICATE | T14: standalone preparation сохраняется, composed boundary reuse |
|
||
| RC-09 | DUPLICATE | T14 backend |
|
||
| RC-10 | KEEP | Standard OpenSpec lifecycle/context refresh сохраняется по явному ограничению пользователя; mtime/hash cache не вводить |
|
||
| RC-11 | NO_ACTION | 127-line unstaged root block отсутствует в проверенном HEAD; stale-context finding, current router 32 строки |
|
||
| RC-12 | KEEP | Standard OpenSpec skills неизменны; явный request routing уже принадлежит local AGENTS |
|
||
| RC-13 | DUPLICATE | AGENT-005 NO_ACTION: отсутствие measured routing cost не основание удалять skills |
|
||
| RC-14 | DUPLICATE | AGENT-005 NO_ACTION: browser tools дают разные capabilities, default deletion не обоснован |
|
||
| RC-15 | DUPLICATE | T14 frontend |
|
||
| RC-16 | NO_ACTION | Global permission profiles не входят в Git behavior owner; новый management layer не обоснован |
|
||
| RC-17 | INVESTIGATE | T36: historical inline credential claim не равен confirmed live exposure/P0; локальная приватная проверка и rotation при подтверждении |
|
||
| RC-18 | NO_ACTION | Memory plugin activation не подтверждена, disabled/stale config не требует инфраструктуры |
|
||
|
||
## KEEP / NO_ACTION и границы
|
||
|
||
KEEP не создаёт Issues без конкретной задачи. Сохраняются exact money,
|
||
server validation, nested ownership, auth CAS/cookie/session generations,
|
||
connection/attempt/dependency fences, banking replay/version/tombstone,
|
||
SQLite migrations/isolation/crash/restore, signed cursors, public projection,
|
||
native OpenSpec phases и immutable history. Optional cleanup не становится
|
||
mandatory backlog только из-за числа строк. Старые confidence/severity не
|
||
переносятся автоматически на новый campaign priority.
|
||
|
||
## Dependencies и блокеры
|
||
|
||
- T04 зависит от T02 только в части проверенного failed-existing-calendar
|
||
publication/fallback contract: force не должен создавать новую регрессию.
|
||
- T10 имеет внутренний порядок удаления manual parent → exclusive discovery
|
||
producer; отдельная Gitea dependency между файлами не нужна.
|
||
- T27 финальная source-window presentation зависит от опубликованного T02
|
||
artifact; договориться о UX можно до его реализации.
|
||
- T11 не блокирует code-only T10/T20: public readers/DB identities сохраняются.
|
||
- T14/T35 не блокируют P1. T01/T02/T03 independent, salvo common final diff checks.
|
||
- T38 остаётся investigation до приватного proxy input, T36 — до локальной
|
||
проверки актуального credential state; raw values и session IDs не публикуются.
|
||
- Архивирование одного оригинала blocked: `АудитЭффективности.md` содержит
|
||
private session metadata. Исходник сохранён; RC findings не потеряны.
|
||
- Cold historical Income, hidden-tab/cadence, CURRENCY и Events filters —
|
||
только named product questions внутри T05/T20/T26/T27, без guessed contract.
|
||
|
||
## Проверка и provenance
|
||
|
||
Discovery: все repositories доступны, Issues enabled, bot имеет push/pull.
|
||
Remote commits пяти audited revisions подтверждены API. Gitea 1.27.3
|
||
предоставляет native issue-dependencies endpoint; issue-types API не обнаружен.
|
||
Labels организации переиспользуются: Priority/High=P1, Medium=P2, Low=P3;
|
||
Kind/Bug, Enhancement, Testing, Documentation. Reviewed/status labels не
|
||
используются для дублирования lifecycle. Assignees новых Issues не угадываются.
|
||
|
||
Все 44 participating Issues прочитаны обратно через API: 43 working и один
|
||
[главный Issue](https://git.personal.ksv741.ru/WealthLedger/main/issues/23).
|
||
Новых Issues 41 (40 working + navigation), reused 3. Working priorities:
|
||
P1=2, P2=33, P3=8; navigation дополнительно P2. 39 topics, не 190 Issues.
|
||
|
||
| Source disposition | Count |
|
||
| --- | --- |
|
||
| FIX | 31 |
|
||
| REFACTOR | 0 |
|
||
| SIMPLIFY | 20 |
|
||
| DELETE | 8 |
|
||
| INVESTIGATE | 7 |
|
||
| KEEP | 40 |
|
||
| DUPLICATE | 67 |
|
||
| NO_ACTION | 17 |
|
||
| Total | 190 |
|
||
|
||
Source disposition и Issue kind — разные единицы: структурные simplification/
|
||
deletion tasks используют existing Kind/Enhancement без дублирующего kind label.
|
||
Оригинальные user-authored тела/assignees reused #4/#1/#2 сохранены; supplements
|
||
даны comments с stable markers. Старые priority префиксы в titles исторические,
|
||
актуальный campaign priority задаёт единственный Priority/Medium label.
|
||
|
||
Непривязанных actionable findings: 0. Все INVESTIGATE имеют Issue либо bounded
|
||
proof внутри соответствующего fix. Два findings явно требуют недоступного
|
||
внешнего private input: RISK-008 (actual proxy) и RC-17 (actual local credential
|
||
owner); это 2 mapped external-evidence blockers, не подтверждённые runtime bugs.
|
||
Product/compatibility decisions T05/T11/T20/T26/T27/T29 и original completion
|
||
review T31 остаются named preconditions, сроки/ответы не выдуманы. Отдельный
|
||
publication blocker — один original report, не потерянный finding.
|
||
|
||
Native dependency read-back: backend #53 → backend #55; frontend #63 → backend
|
||
#55; specs #2 → specs #4 (исходные native toolchain criteria, Git-range portion
|
||
можно исправить независимо). Других technical blocking edges нет, cycles нет.
|
||
|
||
Новые labels: 8 repo-scoped, только используемые. Organization label creation
|
||
вернуло permission denial, resolved repo fallback; MCP issue update не меняет
|
||
labels, resolved dedicated replace_labels для reused Issues. Необработанных
|
||
API write failures нет. Milestone URLs проверены HTTP 200, due dates пусты.
|
||
|
||
Final read-back: 44 Issues и 44 уникальных stable markers, 0 template/metadata
|
||
errors; у каждого ровно один priority, один primary kind, audit label и нужный
|
||
milestone. 59 linked Git resources существуют на указанных commits; главный
|
||
Issue перечисляет все 43 working Issues. Все 8 новых labels реально используются.
|
||
Первая широкая параллельная HEAD-проверка прервана connection timeout, не
|
||
ошибкой созданной сущности. Заменена адресным API/Git read-back и последовательным
|
||
HTTP check: campaign, README, triage, original archive и все 5 milestones — 200.
|
||
Этот verification transport failure обработан; полный parallel URL scan
|
||
успешным не объявляется.
|
||
|
||
Дополнительные cross-audit signals/open questions не удваивают finding count.
|
||
SDD DR-08 одноразовый pilot/transition — NO_ACTION до конкретной потребности;
|
||
off-host backup/dummy hashing/logout bounded access/native lifecycle — KEEP
|
||
существующих guarantees, без заявлений об их live verification. Ни история,
|
||
ни role/security protections не удаляются ради неподтверждённой экономии.
|
||
|
||
Root gates: original/archived Git blob equality, redacted Gitleaks exit 0,
|
||
staged allowlist review, semantic/Boy Scout review, diff check и commitlint.
|
||
Первый archive push/read-back успешен; финальные links публикуются вторым commit
|
||
в той же task branch. Полный application verify, build, tests, codegen,
|
||
migration и реальная финансовая сеть в planning не запускались.
|