32 KiB
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 не установлен.
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. Новых 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 не запускались.