D1.3 — non-destructive data-quality audit
Цель
Спроектировать и выполнить воспроизводимый аудит качества всех 4 086 записей зарегистрированных наборов uDream без автоматического исправления, перезаписи или удаления данных.
Исходная точка
D1.1 и D1.2 завершены:
docs/DATA_PROVENANCE.md — доказанное происхождение и hashes;
data/datasets.json — machine-readable registry;
docs/DATASET_REGISTRY.md — logical/physical identities и migration policy;
scripts/validate-data-provenance.mjs;
scripts/validate-dataset-registry.mjs.
Зарегистрированы:
source-divinity-code-en — один English logical dataset;
ru-current-v1 — current localized runtime dataset;
- canonical serialization
data/bd2.json;
- retained equivalent serialization
data/db.json;
- active runtime
data/divinity_code_ru.json.
Ожидаемый результат
- формальная спецификация audit rules и severity levels;
- permanent non-destructive audit script;
- machine-readable JSON report;
- human-readable Markdown report;
- отдельное разделение automatic findings и вопросов, требующих human/source review;
- проверка всех 4 086 записей;
- сравнение source/current datasets без изменения файлов;
- документированные counts, examples и ограничения;
- интеграция audit consistency в GitHub Actions;
- синхронизированные README, VERSION, CHANGELOG, ROADMAP, PROJECT_STATE и FILE_MAP;
- factual uNews patchnote и новое реальное изображение.
Минимальные автоматические проверки
- JSON array shape и record count;
- ordered/unique integer IDs;
- required fields и types;
- empty/whitespace-only values;
- duplicate normalized symbols и aliases;
- alias equal to primary symbol;
- duplicate aliases inside one record;
- suspicious control characters, replacement characters и HTML-like content;
- invalid or inconsistent
date_added;
- source-field distribution;
- empty/duplicate tags;
- notes/description anomalies;
- source/current ID alignment;
- source/current preserved-field equality;
- changed-field counts;
- cross-reference patterns where they can be detected safely;
- deterministic report hashes/counts.
Severity model
Audit должен разделять как минимум:
error — структурное нарушение или broken identity;
warning — вероятная проблема, требующая проверки;
review — содержательная неоднозначность без автоматического решения;
info — наблюдение/статистика.
Наличие findings не означает автоматическую ошибку CI. CI обязан падать при нарушении audit contract, недетерминированном отчёте или новых structural errors, но содержательные review findings остаются отчётом до отдельного решения.
Жёсткие ограничения
- не менять
data/bd2.json, data/db.json, data/divinity_code_ru.json или data/report.txt;
- не менять record IDs, texts, aliases, notes, tags или порядок записей;
- не выполнять physical migration;
- не добавлять user-facing database selector;
- не начинать D1.4/D1.5;
- не считать автоматическую эвристику доказанной содержательной ошибкой;
- не исправлять findings в том же PR;
- не добавлять API keys или платные API-вызовы.
Критерии завершения
- audit script запускается повторно и создаёт deterministic reports;
- reports охватывают все зарегистрированные datasets и 4 086 IDs;
- доказанные structural facts отделены от heuristics/human review;
- существующие data/runtime/PWA files отсутствуют в diff;
- tests, provenance-validator, registry-validator, audit-validator и project-validator проходят;
- GitHub Actions зелёные;
- новый patchnote и real image соответствуют D1.3;
- PR объединён после полного diff review;
- Issue закрыт как completed;
main/WORK_STATUS.md возвращён в READY;
- следующая задача — D1.4 two-book product architecture.
D1.3 — non-destructive data-quality audit
Цель
Спроектировать и выполнить воспроизводимый аудит качества всех 4 086 записей зарегистрированных наборов uDream без автоматического исправления, перезаписи или удаления данных.
Исходная точка
D1.1 и D1.2 завершены:
docs/DATA_PROVENANCE.md— доказанное происхождение и hashes;data/datasets.json— machine-readable registry;docs/DATASET_REGISTRY.md— logical/physical identities и migration policy;scripts/validate-data-provenance.mjs;scripts/validate-dataset-registry.mjs.Зарегистрированы:
source-divinity-code-en— один English logical dataset;ru-current-v1— current localized runtime dataset;data/bd2.json;data/db.json;data/divinity_code_ru.json.Ожидаемый результат
Минимальные автоматические проверки
date_added;Severity model
Audit должен разделять как минимум:
error— структурное нарушение или broken identity;warning— вероятная проблема, требующая проверки;review— содержательная неоднозначность без автоматического решения;info— наблюдение/статистика.Наличие findings не означает автоматическую ошибку CI. CI обязан падать при нарушении audit contract, недетерминированном отчёте или новых structural errors, но содержательные review findings остаются отчётом до отдельного решения.
Жёсткие ограничения
data/bd2.json,data/db.json,data/divinity_code_ru.jsonилиdata/report.txt;Критерии завершения
main/WORK_STATUS.mdвозвращён вREADY;