Files
ksv741 4a78dd640d
Workspace security / security (pull_request) Successful in 6s
Workspace verify / verify (pull_request) Successful in 20s
Conventional commits / commits (pull_request) Successful in 10s
Workspace security / security (push) Successful in 5s
Workspace verify / verify (push) Successful in 19s
docs: align inventory with simplified conventions
2026-09-15 05:58:30 +03:00

8.8 KiB
Raw Permalink Blame History

Conventions v1: migration plan

Исходный audit: 7 открытых findings — P0: 0, P1: 4, P2: 3. Это число reviewed findings, а не все violations репозитория. Production refactoring в задаче conventions не выполнялся. Порядок ниже — рекомендуемые отдельные работы, без обязательного запуска SDD или repository-wide cleanup.

Vertical slices

Slice / порядок Findings и target ownership Сохранить / Test Intent Migration и verification
1. Auth: invalid request BE-001; configureApp validation + HTTP filter 400/code, field pointers/details, safe unknown errors, whitelist semantics; invalid request не вызывает use case Отдельный behavior fix и configured HTTP regression, без структурного рефакторинга. Auth e2e, filter tests, contract check, backend verify
2. Cards: создание/редактирование FE-001; feature workflows + entity presentation/queries Submit blocking, ввод после failure, idempotency ID, version conflict/adoption, archived editing Сначала одно действие, затем следующее. Только structural change. Existing banking/form RTL/MSW, relevant stories, deps/knip и frontend verify
3. Cards/Operations: просмотр и запись FE-002 + BE-002; page VM states; application policy; repository transaction Cached snapshot/refetch failure, URL period/page, scroll anchor; user isolation, CAS, atomic transfer/refund, balances Раздельные frontend/backend commits; не менять behavior вместе с переносом. RTL/MSW и browser pagination; banking unit + SQLite/HTTP, relevant durability, verify обоих repos
4. Accounts/Portfolio: recovery FE-004, первая группа consumers; общий classifier у допустимого owner NOT_FOUND → accounts, connection → settings, transient error → retry; сохранить различия текста/actions и fallback unknown code Structural convergence одного decision rule. Account/portfolio RTL/MSW и frontend verify; оставшиеся instrument consumers учитываются до полного закрытия FE-004
5. Instruments/Settings: connection FE-004 оставшиеся consumers + BE-003; integration marker/translation Invalid token и unavailable различаются; bounded retry, cache isolation/generation, metadata fallback Сначала marker и все backend callers, отдельно frontend classifier reuse. T-Bank/token/metadata tests, relevant API e2e, frontend recovery tests, verify affected repos
6. Navigation между областями FE-003; app composition Active links desktop/mobile, nested Outlet, breadcrumbs, auth fallback, keyboard и narrow viewport Перенос existing AppShell с CSS/callers, без нового wrapper/UI redesign. Route tests, deps/knip, browser proof и frontend verify

Каждый slice начинает с классификации responsibility и просмотра всех callers. До edits зафиксируй target owner, сохраняемое behavior и применимый Test Intent. Structural refactor и behavior change идут отдельными шагами/commits; завершение требует semantic review, relevant checks и обновления статуса finding с evidence.

Ratchet

Все семь IDs пока Open. Следующая migration фиксирует здесь: ID → Open/Closed → repo commit/PR → команда и результат. Закрывай finding только после миграции всех перечисленных consumers; частичный перенос не уменьшает count. Новую находку добавляй отдельным ID с severity, confidence и scope; изменение охвата не выдавай за улучшение качества.

Цель — последовательно уменьшать open baseline и не добавлять новых нарушений в diff. Existing exceptions остаются видимыми и не становятся образцами нового кода. Исходный audit сохраняет facts своего snapshot.

Deterministic follow-ups

Полный mapping — в guardrails. Existing dependency-cruiser поддерживает --ignore-known (подтверждено local CLI help). При отдельной работе над same-layer imports сначала проверить candidate rule; если существующих violations нет, baseline не нужен. При legacy использовать native exact baseline, без directory-wide exclusions.

Backend import boundaries и no-console при повторном regression можно закрепить встроенными ESLint rules. Markdown .ai можно включить явными путями в existing markdownlint workflow, когда согласована доступность соседних checkout; сегодня проверка .ai выполнена локально тем же инструментом. Новые analyzers, scripts, dependencies или custom baseline infrastructure в этом изменении не создаются.

Verification conventions v1

Проверено 2026-09-15 на согласованном workspace из трёх веток codex/engineering-conventions; docs/specs остались без изменений.

Проверка Результат
Root python3 test-workspace-tracking.py PASS: exact .ai allowlist, соседние repos и вымышленные local/private files сохранены
Из docs: npm exec -- markdownlint-cli2 --config .markdownlint-cli2.jsonc '../AGENTS.md' '../README.md' '../.ai/**/*.md' '../frontend/AGENTS.md' '../frontend/.ai/**/*.md' '../backend/AGENTS.md' '../backend/.ai/**/*.md' PASS: 31 Markdown, включая новые файлы, 0 ошибок style/relative links/anchors
Docs npm run verify PASS: 42 Markdown, 0 ошибок; проверены также входящие межрепозиторные ссылки
Frontend npm run deps, npm run deps:storybook PASS: 297/298 modules, 0 нарушений настроенных dependency rules
Backend ValidationPipe → filter reproduction Подтверждён BE-001: invalid CredentialsDto → 400/VALIDATION_ERROR, errors: []
git diff --check в root/frontend/backend/docs/specs PASS

Semantic review первого прохода: маршруты UI-only, API/contract, auth, tests-only, helper/package, Prisma, logging и migration достигают нужных owners; ссылки compatibility не дублируют таблицы routing. Общие policy имеют root owner, stack-specific исключения остались локальными. Проверены новые файлы и отсутствие production, manifest/lockfile, generated code, CI/release и docs/specs изменений.

Application build/coverage/e2e целиком не запускались: изменение Markdown и root tracking не меняет production behavior. Existing dependency checks и воспроизведение BE-001 подтверждают только указанные границы, не отсутствие всех semantic/security проблем. Full gates выполняются при будущих code slices.

Упрощение структуры после review

Conventions frontend/backend именуются без repo-префиксов. Устройство и правила архитектуры объединены в единственный .ai/architecture.md каждого repo. Routing и карта источников объединены в AGENTS.md; прежние CONVENTIONS/SOURCES и отдельные architecture conventions удалены без compatibility-заглушек. Активные ссылки обновлены; в audit изменены только ссылки, findings сохранены. Исторические архивы specs остаются источниками своего времени.

Повторная проверка: existing markdownlint-cli2 с docs config по root/frontend/backend AGENTS, README и .ai/**/*.md — 27 файлов, 0 ошибок, включая относительные ссылки и якоря. git diff --check — PASS. Production-код и dependencies не менялись.