Переносит архив `audits/2026-10-11/` (19 файлов) из codex/audit-remediation-2026-10-11 в develop и добавляет точечный allowlist в .gitignore.
115 lines
9.0 KiB
Markdown
115 lines
9.0 KiB
Markdown
# Technical Audit Remediation — 2026-10-11
|
||
|
||
Исторический аудит WealthLedger от 11 октября 2026 года: root coordination,
|
||
frontend, backend, specs и docs. Программа управляется Gitea Issues; этот
|
||
архив сохраняет доказательства и решения triage, а не текущие статусы задач.
|
||
|
||
Главный Issue: [Technical Audit Remediation — WealthLedger — 2026-10-11](https://git.personal.ksv741.ru/WealthLedger/main/issues/23).
|
||
Нормализованный реестр и задачи: [triage](triage.md).
|
||
|
||
## Исследованные revisions
|
||
|
||
HEAD повторно проверены при remediation planning; application checkout чистые.
|
||
Все пять исходных commits существуют в соответствующих remote repositories.
|
||
|
||
| Repository | Verified revision |
|
||
| --- | --- |
|
||
| [WealthLedger/main](https://git.personal.ksv741.ru/WealthLedger/main) | `dc030f84c979cedb2628ef4bd97c62d6c63a9256` |
|
||
| [WealthLedger/frontend](https://git.personal.ksv741.ru/WealthLedger/frontend) | `c8821200ce699dab1ce65360d1968d5877a2e78b` |
|
||
| [WealthLedger/backend](https://git.personal.ksv741.ru/WealthLedger/backend) | `0ad84ff4f0b4712abc7e69dc299856f14af6eadd` |
|
||
| [WealthLedger/specs](https://git.personal.ksv741.ru/WealthLedger/specs) | `fcdc805f6c1b3be6a20a7e858e3e80cbd83a9121` |
|
||
| [WealthLedger/docs](https://git.personal.ksv741.ru/WealthLedger/docs) | `e6fd4f64b81dd73b33959b845a1babcfac1891c8` |
|
||
|
||
## Отчёты
|
||
|
||
Все 18 источников прочитаны. Специализированные отчёты — основной источник;
|
||
предыдущие отчёты дают дополнительные свидетельства и гипотезы. Повторение
|
||
вывода в прежнем отчёте не считается независимым подтверждением.
|
||
|
||
| № | Источник / архив |
|
||
| --- | --- |
|
||
| 01 | [Architecture & Module Boundaries](reports/01-architecture-and-module-boundaries-report.md) |
|
||
| 02 | [Complexity & Overengineering](reports/02-complexity-and-overengineering-report.md) |
|
||
| 03 | [Duplication & Reusability](reports/03-duplication-and-reusability-report.md) |
|
||
| 04 | [Dead Code & Legacy](reports/04-dead-code-and-legacy-report.md) |
|
||
| 05 | [Frontend Architecture](reports/05-frontend-architecture-report.md) |
|
||
| 06 | [Backend Architecture](reports/06-backend-architecture-report.md) |
|
||
| 07 | [API & Data Flow Efficiency](reports/07-api-and-data-flow-efficiency-report.md) |
|
||
| 08 | [Test Quality & Effectiveness](reports/08-test-quality-and-effectiveness-report.md) |
|
||
| 09 | [Test Architecture & Infrastructure](reports/09-test-architecture-and-infrastructure-report.md) |
|
||
| 10 | [Custom Scripts & Tooling](reports/10-custom-scripts-and-tooling.md) |
|
||
| 11 | [Validation & CI/CD Efficiency](reports/11-validation-and-ci-cd-efficiency-report.md) |
|
||
| 12 | [Dependencies & Configuration](reports/12-dependencies-and-configuration-report.md) |
|
||
| 13 | [Reliability & Security](reports/13-reliability-and-security-report.md) |
|
||
| 14 | [AI Agent Workflow Efficiency](reports/14-ai-agent-workflow-efficiency.md) |
|
||
| 15 | [SDD, Specs & Documentation](reports/15-sdd-specs-and-documentation.md) |
|
||
| 16 | [complexity-audit.md](reports/previous/complexity-audit.md) |
|
||
| 17 | [technical-audit-2026-10-11.md](reports/previous/technical-audit-2026-10-11.md) |
|
||
| 18 | `audit-results/АудитЭффективности.md` — publication blocked, см. ниже |
|
||
|
||
Фактическое имя последнего источника — `АудитЭффективности.md`, а не
|
||
`АудитЭффективности(1).md`. Соответствие установлено по содержимому.
|
||
|
||
## Ключевые выводы
|
||
|
||
- P1: hourly lifecycle способен сохранить ложный успех или зависнуть после
|
||
persistence failure; overlapping forecast fallback блокирует новый complete
|
||
candidate. Runtime-воспроизведение этих дефектов в planning не выполнялось.
|
||
- Переход к hourly/local/online ownership неполон: calendars, Income/Ledger,
|
||
query timer и UI feedback сохраняют несовместимые части прежнего поведения.
|
||
- Тесты требуют различающих stimuli и completion barriers; настоящая SQLite,
|
||
financial precision, auth CAS, replay и publication fences сохраняются.
|
||
- Дорогая повторная preparation сокращается в существующих workflow; новые
|
||
слои, shared tooling, validators и постоянная audit automation не нужны.
|
||
- Specs/current docs требуют точечной reconciliation. Исторические ADR,
|
||
OpenSpec archives и стандартные lifecycle skills остаются неизменяемыми.
|
||
|
||
## Сохранность и публикация
|
||
|
||
17 опубликованных отчётов копируются byte-for-byte из `audit-results/`;
|
||
содержание, исходные имена и исторические утверждения не исправляются.
|
||
Внутренние workspace-relative ссылки оригиналов сохранены как evidence;
|
||
актуальные remote permalinks и навигация принадлежат README/triage/Issues.
|
||
Оригинальные 18 локальных файлов не удаляются. SHA manifests и новые
|
||
integrity validators не вводятся: версии архива принадлежат Git.
|
||
|
||
`gitleaks dir audit-results --redact=100 --no-banner --log-level error`
|
||
завершился с exit 0. Дополнительно выполнен содержательный privacy review.
|
||
Все пять remote repositories публичные. Отчёт `АудитЭффективности.md`
|
||
содержит идентификаторы и названия частных OpenCode sessions: неизменённый
|
||
оригинал нельзя безопасно публиковать здесь. Он сохранён в исходном локальном
|
||
месте; все RC-01–RC-18 рассмотрены в triage без частных session identifiers.
|
||
Блокер снимается предоставлением подходящего приватного Git owner/location
|
||
либо явным решением владельца о допустимости публикации этих metadata.
|
||
Редактирование оригинала или публикация приватных conversations не предлагаются.
|
||
|
||
Архив публикуется в task branch `codex/audit-remediation-2026-10-11` от свежего
|
||
`origin/develop`. Локальный commit без подтверждённого push не считается
|
||
публикацией. Release/version bump из названия программы не следует.
|
||
|
||
Первый архивный commit `0d6344abfdf9c4c6139e4d2b50bf3bd3b2ee690e` успешно
|
||
отправлен и прочитан через Gitea; отчёты в нём неизменяемы. Финальные README и
|
||
triage доступны в той же remote task branch и имеют фактические Issue URLs.
|
||
|
||
## Gitea программа
|
||
|
||
39 нормализованных engineering topics поставляются 43 working Issues:
|
||
40 новых и 3 повторно используемых. Главный navigation Issue создан отдельно;
|
||
итого 41 новое Issue и 44 participating Issues. Все новые задачи неназначены;
|
||
существующие assignees/тексты сохранены, audit supplements добавлены comments.
|
||
|
||
| Repository | Milestone | Participating Issues |
|
||
| --- | --- | --- |
|
||
| main | [milestone 1](https://git.personal.ksv741.ru/WealthLedger/main/milestone/1) | 3, включая главный Issue |
|
||
| backend | [milestone 4](https://git.personal.ksv741.ru/WealthLedger/backend/milestone/4) | 23 |
|
||
| frontend | [milestone 3](https://git.personal.ksv741.ru/WealthLedger/frontend/milestone/3) | 11 |
|
||
| specs | [milestone 5](https://git.personal.ksv741.ru/WealthLedger/specs/milestone/5) | 5 |
|
||
| docs | [milestone 2](https://git.personal.ksv741.ru/WealthLedger/docs/milestone/2) | 2 |
|
||
|
||
Milestones не имеют due date. Переиспользованы organization labels;
|
||
8 новых repo-scoped labels — 5 audit и 3 investigation. Создание org labels
|
||
отвергнуто недостатком organization-owner permission; repo-scoped fallback
|
||
подтверждён. Для reused Issues назначение labels сделано через replace_labels:
|
||
обычный issue update в MCP их не применяет. Оба ограничения API обработаны.
|
||
Native dependencies установлены и прочитаны обратно, cycles отсутствуют.
|