docs(overview): ORCH-105 — слайды Lite-установки и использования через Plane
Расширяю слайдо-источник презентации docs/overview/presentation.md тремя слайдами в каноне ORCH-011 (16 → 19, сквозная нумерация сохранена): - Слайд «Запуск и ведение задачи через Plane» (вход «To Analyse», статусы = индикация, наблюдение: доска + Telegram-карточка + комментарии). - Слайд «Что решает человек: гейты, авто-режим, отмена» (Approved / Confirm Deploy; autoApprove/autoDeploy/Bug — без пропуска тех. проверок; STOP). - Слайд «Lite-установка скриптами» (два контейнера платформы; только конфиг; gen_secrets.py/onboard_project.py + docker compose up -d; runbook LITE_SETUP.md; одношаговый bootstrap — это смежный Bundled, не Lite). Факты сверены с golden sources (LITE_SETUP.md, tech-pipeline.md, tech-integrations.md, CLAUDE.md). Анти-дрейф — новая функция test_presentation_covers_lite_and_plane_usage_bits в tests/test_system_docs.py (существующие проверки без послаблений). CHANGELOG обновлён. Docs+tests only: src/**/STAGE_TRANSITIONS/QG_CHECKS/check_*/схема БД — байт-в-байт; python-pptx не в прод-образе; .pptx в git не коммитится. Ручная сборка .pptx (TC-07) проверена в dev-venv: «Собрано слайдов: 19», exit 0. Refs: ORCH-105 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -400,6 +400,39 @@ def test_presentation_covers_mandatory_narrative_bits():
|
||||
assert bit in low, f"нормативный бит нарратива {bit!r} отсутствует (FR-4 / AC-7)"
|
||||
|
||||
|
||||
def test_presentation_covers_lite_and_plane_usage_bits():
|
||||
"""ORCH-105 (FR-5 / AC-4): новый обязательный контент презентации
|
||||
зафиксирован анти-дрейфом — бесследное удаление слайда Lite-установки или
|
||||
слайдов «как пользоваться орком через Plane» рвёт CI. Матч по lower-case
|
||||
подстрокам (как `test_presentation_covers_mandatory_narrative_bits`);
|
||||
маркеры — семантические корни и дословные имена статусов/лейблов (анти-
|
||||
переобучение к формулировкам), все вне FORBIDDEN/секрет-эвристики."""
|
||||
low = _read("presentation.md").lower()
|
||||
|
||||
# Слайд Lite-установки: корень `lite` + маркер развёртывания (FR-1 / AC-1).
|
||||
assert "lite" in low, "слайд про Lite-установку отсутствует (FR-1 / AC-1)"
|
||||
assert any(m in low for m in ("установк", "разверн")), (
|
||||
"слайд Lite не несёт маркера установки/развёртывания (FR-1 / AC-1)"
|
||||
)
|
||||
|
||||
# Слайды использования через Plane: корень `plane` + операторские маркеры.
|
||||
# Точка входа, оба человеческих гейта и отмена — дословными именами статусов
|
||||
# (FR-2 / AC-2; имена сверены с tech-pipeline.md / tech-integrations.md).
|
||||
assert "plane" in low, "слайды использования через Plane отсутствуют (FR-2 / AC-2)"
|
||||
assert "to analyse" in low, (
|
||||
"слайды Plane-usage не называют точку входа «To Analyse» (FR-2 / AC-2)"
|
||||
)
|
||||
assert "approved" in low, (
|
||||
"слайды Plane-usage не называют человеческий гейт «Approved» (FR-2 / AC-2)"
|
||||
)
|
||||
assert "confirm deploy" in low, (
|
||||
"слайды Plane-usage не называют гейт прод-выкладки «Confirm Deploy» (FR-2 / AC-2)"
|
||||
)
|
||||
assert "stop" in low, (
|
||||
"слайды Plane-usage не называют отмену задачи «STOP» (FR-2 / AC-2)"
|
||||
)
|
||||
|
||||
|
||||
def test_presentation_carries_reproducible_build_procedure():
|
||||
text = _read("presentation.md")
|
||||
assert "build_presentation.py" in text, (
|
||||
|
||||
Reference in New Issue
Block a user