6.1 KiB
6.1 KiB
Отчёт генерации DAL (проект_dal) — прогон 2026-09-08, завершён БЛОКИРОВКОЙ на этапе 3
Статус
| Этап | Статус |
|---|---|
| 0_scan (разведка) | done |
| 1_rules (правила MCP) | done |
| 2_spec (спецификации тестов) | done — утверждены пользователем |
| 3_code (генерация) | blocked — конфликт транспорта (см. ниже) |
| 4_validate | не выполнялся |
| 5_report/DONE | не выполнялся |
Версии правил
- Каталог MCP standarts-catalog: 1.2 (= rules-baseline.json 1.2).
- Области: c-dal 1.1, d-tst 1.1, c-tst 1.1, c-cs 1.1, db-m 1.1, db-s 1.1 (все от 2026-09-04; составы правил совпали с baseline). Дополнительно загружены: db-func 1.1, db-tst 1.1, c-dm 1.1, d-dev 1.1, d-db 1.1.
validate-rulesне требовался (расхождений нет).
Причина блокировки
Транспорт Kit.Helpers (SqlHelperPostgres.UpdateParamNames) строит вызов
хранимой функции с именованными аргументами _<имя> => :_<имя>, добавляя _
к ключу параметра. Все функции экосистемы Kit (course, partner) объявлены с
параметрами _<имя> (_guid, _partner_id). Функции слоя chk объявлены по
правилу db-func-5 с префиксом p_ (p_check_date, p_id, ...) — такой вызов
через Kit.Helpers невозможен (_p_check_date ≠ p_check_date → «function
does not exist»).
Решение пользователя (2026-09-08): стандарт db-func-5 сохраняется (p_);
генерация DAL заблокирована до доработки Kit.Helpers (администратор Kit):
варианты — политика именования параметров в транспорте (не добавлять _,
если ключ уже имеет префикс p_/_) либо иной согласованный механизм.
Слой БД (создано в этом прогоне, статус DEV / «Функция»=CODE)
DB/chk/functions/*.sql— 7 функций: chk_type_select, chk_status_select, chk_check_insert, chk_check_update, chk_check_delete, chk_check_select, chk_check_get (db-func-2..8; db-m-3/4/5/8; db-s-8).DB/chk/func_specs/*.md— 7 спецификаций с тест-планами (d-db-9).DB/chk/tests/test_*.psql— 7 psql-тестов, нумерация = строкам спецификаций (db-tst-1..3, db-tst-6). Не выполнялись — нужна тестовая база PostgreSQL:psql -d <база> -f DB/chk/tests/test_*.psql.DB/chk/functions.md— статусы обновлены;tables.md,DB/readme.md— синхронизированы.db/manifest.json— FRESH, 3 сущности (ChkCheck CRUD; ChkType/ChkStatus — select).
Решение C# (создано)
MT.Check.slnx;MT.Check.Core.Dal(net10.0; ProjectReference наI:\Gitea\Kit\Kit.Core\Kit.Core\Kit.Core.csproj);MT.Check.Core.Dal.Tests(xunit).- Домен:
Chk/Domain/ChkType.cs(+ChkTypes),ChkStatus.cs(+ChkStatuses),ChkCheck.cs(c-dm-1..11; chk_type_id → TypeId и т.п.). - Репозитории-заготовки:
Chk/Repository/ChkCheckRepository.cs(Insert/Update/ Delete/Select/Get),ChkTypeRepository.cs,ChkStatusRepository.cs(Select — c-dal-2: системные справочники только чтение); фильтрChk/Repository/Filter/ChkCheckFilter.cs(c-dal-14/15). - Тест-хелперы:
Tests/Helpers/ConnectionStringTest.cs,DataTableAssertExtensions.cs(по шаблонам навыка). - Имена: решение MT.Check, проект MT.Check.Core.Dal — заданы пользователем (умолчание от имени папки отклонено из-за кириллической «С» в «MT.Сhecks»).
Результаты build/test/check
dotnet build MT.Check.slnx— 0 ошибок (предупреждения NU1903/CS — из Kit.Core, вне рамок).dotnet test MT.Check.Core.Dal.Tests— 0 тестов, успешно (тела и тесты не генерированы — блокировка).- DalTools
check— 0 нарушений (c-dal/c-tst).
Методы → функции (проект, тела не реализованы)
| Метод | Функция | Спецификация тестов |
|---|---|---|
| ChkCheckRepository.Insert/Update/Delete/Select/Get | chk.chk_check_insert/update/delete/select/get | 1-docs/2-core/chk/repository_tests/ChkCheckRepository.md (13 тестов) |
| ChkTypeRepository.Select | chk.chk_type_select | ChkTypeRepository.md (2 теста) |
| ChkStatusRepository.Select | chk.chk_status_select | ChkStatusRepository.md (2 теста) |
Возобновление (после доработки Kit.Helpers)
dotnet run --project <DalTools> -- show-state→ продолжить с 3_code.- Наполнить тела методов (транспорт fluent, p_-параметры) и тесты 1:1 спецификациям; статусы «Репозиторий» → CODE; build/test/check; отчёт; DONE.
Неопределённости / допущения
- Имя решения «MT.Check» — свободный выбор пользователя (папка содержит кириллицу).
- Kit.Helpers подключён ProjectReference на внешний репозиторий (NuGet-пакета нет).
- Имена сущностей в манифесте: ChkType/ChkStatus/ChkCheck (ToPascal от chk_*).
- psql-тесты функций не исполнялись (нет доступа к тестовой БД в этом прогоне).
- Задача «Проверка» БД-функций (db-tst) — исполнение на тестовой базе, отдельный шаг.