원클릭으로
reconcile-docs
Show drift between design artifacts and implemented code (advisory)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Show drift between design artifacts and implemented code (advisory)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Capture a simple task that does not need planning (CHORE + TASK in readyToWork by default, or registration-only with --no-task). Use when PM mentions "simple task", "chore", "small task", "housekeeping", "quick task", "мелкая задача", "чора", or any request to log routine work without PRD/SPEC overhead. Trigger liberally — under-triggering pushes tiny work into freeform chat; over-triggering is recoverable (PM can delete).
Autonomous work — find and execute ready tasks
Record a technical-debt item (DEBT-NNN) — registration only by default, or register + auto-generate a fix TASK with --task. Use when PM mentions "add tech debt", "record tech debt", "technical debt", "tech debt item", "refactor tracking", "технический долг", "запиши техдолг", or any request to capture deferred refactoring / cleanup work. Trigger liberally — under-triggering loses debt visibility; over-triggering is recoverable (PM can delete or defer).
Register a defect (BUG-NNN) and auto-generate the fix TASK so the bug enters the normal implement/review flow. Use when PM mentions "file a bug", "report defect", "bug report", "register defect", "report a bug", "заведи баг", "баг-репорт", or any request to capture a defect for tracking. Trigger liberally — under-triggering leaves bugs in chat where they get lost; over-triggering is recoverable (PM can delete the BUG artefact).
EXPERIMENTAL (Claude Code only). Apply a SPEC increment to a single LIVING architecture corpus under docs/architecture/ instead of a per-SPEC silo package — treats docs as event-sourcing (SPEC = commit, corpus = working tree), so C4 Context/Container, glossary and the data model stay system-wide and never drift across SPECs. Use when PM mentions "living corpus", "single architecture", "corpus mode", "merge design into the corpus", "one architecture for all SPECs", or wants to migrate per-SPEC DESIGN silos into one corpus. Opt-in behind settings.experimental.designCorpus (default off). v1 is a best-effort prompt corpus on a strong model; deterministic stdlib gates are the weak-model-orchestrator spec (#133/#184/#135).
Create a doc-as-code design package from a PRD or SPEC. Conditionally generates C4 diagrams (Context/Container/Component), sequence diagrams, ER diagram + Data Dictionary, OpenAPI 3.0, AsyncAPI 3.0, ADRs, domain glossary, state diagrams, and deployment view as Mermaid-rendered Markdown files. Use when PM mentions "design", "architecture diagrams", "doc-as-code artifacts", "C4", "ERD", "OpenAPI spec", "AsyncAPI", "event-driven", "Kafka", "message broker", "sequence diagram", "state machine", "domain glossary", "ADR", or before handing a SPEC to another team. Trigger liberally — undertriggering loses architectural value, overtriggering is recoverable (PM can delete).
| name | reconcile-docs |
| description | Show drift between design artifacts and implemented code (advisory) |
| argument-hint | [SPEC-XXX | DESIGN-XXX] |
| cli_requires | task_tool |
Ручная/advisory команда: показать расхождения между design docs и реальным кодом. Не auto-commit, не удалять audit trail.
/polisade:reconcile-docs SPEC-001 # Drift report для DESIGN-PKG привязанного к SPEC
/polisade:reconcile-docs DESIGN-001 # Drift report для конкретного DESIGN package
Living-corpus режим (#187, experimental). Если
architecture.corpus.mode == "living"в.state/PROJECT_STATE.json, дизайн живёт в едином корпусеdocs/architecture/, а не в per-SPEC пакетеDESIGN-NNN-*/. Тогда:
- системный слой (C4 L1/L2, glossary, data-model) — system-wide, без single SPEC-parent: реконсиль его против корпуса целиком, а не против одного пакета;
- per-SPEC дельта читается из
docs/specs/SPEC-NNN/changeset.yaml+docs/architecture/trace.json(FR → element), не из package-manifest;- отсутствие per-SPEC
DESIGN-PKG— НЕ повод останавливаться (ниже): в corpus-режиме это норма.
design_package field в SPEC frontmatterdesign_package: null → сканируй docs/architecture/*/manifest.yaml на parent: {spec_id}У {spec_id} нет DESIGN package. Drift detection невозможен.
→ /polisade:design {spec_id} — создать design package
docs/architecture/DESIGN-NNN-*/manifest.yamlmanifest.yaml — перечень design-артефактов и realizes_requirements (composite {DOC}.FR-NNN — см. «Requirement ID Scoping» в CLAUDE.md; drift между manifest и sub-artifact frontmatter lint ловит отдельно).state/knowledge.json для контекста проекта (keyFiles, techStack)Запусти субагент (Task tool) с ролью:
═══════════════════════════════════════════
SYSTEM ROLE: Design Drift Detector
═══════════════════════════════════════════
Ты — архитектурный ревьюер. Твоя задача — сравнить design docs
с реальным кодом и найти расхождения (drift).
ПРАВИЛА:
- Читай КАЖДЫЙ design-артефакт из manifest
- Для каждого — ищи соответствующий код в проекте
- Отмечай: добавления (+), изменения (~), удаления (-)
- НЕ оценивай качество — только фактический drift
Для каждого артефакта из manifest.yaml.artifacts[]:
| Тип | Что сравнивать |
|---|---|
openapi (api.md) | Endpoints, methods, request/response schemas, status codes — vs реальные route/controller definitions |
erd (data-model.md) | Entities, fields, types, relationships — vs реальные model/migration/schema definitions |
c4-container | Containers, technologies — vs реальная структура проекта (packages, services) |
c4-context | External systems — vs реальные интеграции в коде |
sequence | Flows, call chains — vs реальные вызовы между компонентами |
state | States, transitions, guards — vs реальные enum/status definitions и transition logic |
glossary | Terms — vs именование в коде (классы, функции, переменные) |
asyncapi | Channels, events, payloads — vs реальные producer/consumer definitions |
Покажи отчёт:
═══════════════════════════════════════════
DESIGN DRIFT REPORT: {DESIGN-NNN}
Parent SPEC: {SPEC-NNN}
═══════════════════════════════════════════
api.md:
+ POST /sessions: response добавлено поле `refresh_token` (не в design)
~ PUT /users/{id}: field `name` → `display_name`
data-model.md:
+ таблица `refresh_tokens` отсутствует в ERD
~ User.name → User.display_name
c4-container.md: ✓ соответствует
sequences.md: ✓ соответствует
state-machines.md:
+ состояние `suspended` добавлено в код, нет в диаграмме
Drift items: 5
═══════════════════════════════════════════
Варианты:
→ Обновить design docs (PM подтверждает изменения)
→ Игнорировать (drift зафиксирован, не исправлять)
═══════════════════════════════════════════
manifest.yaml если realizes_requirements изменились[{DESIGN-NNN}] Update design docs — reconcile with implementationDESIGN-DEVIATION комментарии в коде (audit trail)