You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Часть эпика #381 (§ 3). docs/architecture.md — самый отставший документ проекта (не обновлялся на несколько фичевых волн), при том что CLAUDE.md назначает его каноном «модули, слои, DAG».
:26 — список роутов web/server.py устарел: добавить /api/v1/runs (+/{id}, /{id}/cancel), /api/rules, /api/rules/{code}, /api/insights, /api/code-terms; статику описать с vendor/ и fonts/.
:32/:111 — исправить двойную ошибку про web/i18n.py: каталога web/locales/ не существует (локали в core/locales/); клейм «не импортирует ничего из проекта» ложен (web/i18n.py:23 импортирует core.i18n).
:51 — rules/ не leaf: rules/json_provider.py:19 импортирует core/mtime_cache.
:112 — убрать/исправить фантомное ребро grader_core.py → core/sandbox/ (инъекция идёт из cli/__init__.py:489, не импортом).
Добавить ~15 недостающих рёбер DAG (полный список — в эпике [Epic] docs: аудит Markdown-документации после v1.8.0 — устранение дрейфа #381; все подтверждены import-строками), напр. web/server.py → rules_adapter/insights_adapter, web/runs.py → tracer/playground/config, cli/commands.py → lint/insights/glossary/rules, downloader.py → diag_log, core/insights.py → glossary/history/normalizers.
:183–184 — в leaf-бокс слоёв добавить новые фактические leaf'ы: core/mtime_cache.py, core/tracer.py, core/lint.py.
Часть эпика #381 (§ 3).
docs/architecture.md— самый отставший документ проекта (не обновлялся на несколько фичевых волн), при том что CLAUDE.md назначает его каноном «модули, слои, DAG».Scope — architecture.md
core/diag_log.py(feat(logging): эпик #146 — opt-in диагностическое логирование сети/OAuth с редакцией секретов #341, импортируется 5 модулями),core/tracer.py(feat(core): трассировщик пошагового исполнения — sys.settrace → JSON-трейс #318),web/playground.py(feat(web): песочница MVP — редактор + stdin + вывод, запуск без тест-кейсов #317),web/rules_adapter.py,web/insights_adapter.py(feat(web): API разделов «Правила»/«Подучить» — /api/rules, /api/insights (часть #348) #379); а также пакетrules/иcore/insights.py.:26— список роутовweb/server.pyустарел: добавить/api/v1/runs(+/{id},/{id}/cancel),/api/rules,/api/rules/{code},/api/insights,/api/code-terms; статику описать сvendor/иfonts/.:32/:111— исправить двойную ошибку проweb/i18n.py: каталогаweb/locales/не существует (локали вcore/locales/); клейм «не импортирует ничего из проекта» ложен (web/i18n.py:23импортируетcore.i18n).:51—rules/не leaf:rules/json_provider.py:19импортируетcore/mtime_cache.:112— убрать/исправить фантомное реброgrader_core.py → core/sandbox/(инъекция идёт изcli/__init__.py:489, не импортом).web/server.py → rules_adapter/insights_adapter,web/runs.py → tracer/playground/config,cli/commands.py → lint/insights/glossary/rules,downloader.py → diag_log,core/insights.py → glossary/history/normalizers.:183–184— в leaf-бокс слоёв добавить новые фактические leaf'ы:core/mtime_cache.py,core/tracer.py,core/lint.py.Scope — project-structure.md
web/rules_adapter.py,web/insights_adapter.py,glossary/data/(11 bundled-JSON),core/locales/, директориюscripts/(9 файлов),static/fonts/,static/vendor/, корневые CLAUDE/CONTRIBUTING/CHECKPOINT/SECURITY/CODE_OF_CONDUCT.:13/:16/:92— «__main__.py→ grader.main()» (реальноcli.main()); «cli/ режимы 0-4» (0–5); «tests/ 1150+ тестов» (реально 1412 collected).CLAUDE.md:54–55— «точки входа …cli.py» (это пакетcli/); «всё остальное вcore/» игнорируетweb//glossary//rules/,ide.py,pytest_plugin.py.Non-goals
Не менять сам код и не переоформлять DAG-нотацию — только привести содержимое в
соответствие с фактическими импортами.
Критерии приёмки
import-строками; ложных клеймов и фантомных рёбер нет