Перейти к основному содержимому

Шаблоны Документации

Назначение

docs/99-templates содержит единый набор enterprise-шаблонов для документации Pin. Шаблоны должны работать как повторяемый стандарт для разных сервисов, доменов и проектов на общем технологическом стеке компании.

Общие Требования Ко Всем Шаблонам

Любой документ, созданный по шаблону, должен:

Обязательные Сквозные Блоки

Типовые cross-cutting блоки и правила их заполнения определены в Общих Требованиях К Документам. Шаблоны ниже добавляют только document-type-specific секции.

Все документы-постановки пишутся на уровне аналитика (analyst altitude) — см. Уровень изложения ТЗ. Ключевые принципы:

  • Уровень изложения — постановка, а не код. Документ описывает, что система делает, кто имеет право, какую сущность по каким условиям получить, что при успехе и при каждом отказе, как это проверить. Имена классов/хендлеров/валидаторов, вызовы репозиториев, монада результата, транзакции и конверты сообщений в ТЗ не пишутся. Система описывается как строящаяся с нуля (greenfield): без прототипов, Node-BFF и «as-is».
  • Опускаем неприменимые блоки. Включай раздел, только когда ему есть что сказать; пустой блок = удалённый блок. Никаких строк «не применяется», «нет/none» и целых секций-заглушек; лишние блоки не добавляются.
  • Без SDK-имён и мета-ссылок в спеках. Не ссылайся на Talent.Common.*-типы и на правила авторинга внутри самого документа — спек ссылается на контракты (сущности, события, соседние операции), а не на то, «как это в коде».
  • Диаграммы опциональны. Mermaid добавляют, только когда он проясняет нетривиальный поток; участники — бизнес/доменные роли (актор, сервис, витрина, внешняя система), а не инфраструктурные типы. Для тривиального CRUD диаграмму не рисуют.

Индекс Шаблонов

ШаблонКогда Использовать
adr-template.mdАрхитектурное решение, влияющее на подход, стандарты, контракты, данные или эксплуатацию.
api-method-template.mdОдин HTTP endpoint: актор и доступ, контракт запроса/ответа, алгоритм и failure modes.
background-job-template.mdScheduler job, reconciliation job, batch worker или service maintenance task.
clickhouse-fact-template.mdАналитическая fact/aggregate row model.
command-query-template.mdПравило CQRS (на него ссылаются api-method/consumer) + чисто-внутренние операции (background job, SignalR, domain-triggered).
consumer-template.mdKafka consumer: маппинг «событие → эффект», идемпотентность, retry/DLQ; ссылка на event-contract.
dashboard-template.mdDashboard, operational view, SLI/SLO surface.
data-lineage-template.mdSource-of-truth, projection, export, index или report lineage.
domain-invariant-template.mdИнвариант, state transition rule или guardrail.
entity-template.mdEntity, aggregate root, replica или snapshot-backed record.
event-contract-template.mdVersioned integration event contract.
feature-slice-template.mdРеализация feature slice на уровне application/backend/frontend work package.
frontend-component-template.mdОдин UI компонент (atom/molecule/organism) во frontend-приложении.
frontend-feature-slice-template.mdFSD feature slice во frontend-приложении (UI + mutation/query + zod schema).
frontend-page-template.mdСтраница или route в рабочем приложении.
frontend-store-template.mdZustand store в frontend-приложении.
glossary-term-template.mdОписание одного термина, статуса или понятия domain vocabulary.
integration-test-template.mdIntegration/component test specification.
jsonb-document-template.mdTyped JSONB model с versioning и compatibility rules.
migration-template.mdData, schema, contract или rollout migration.
model-template.mdReusable request/response/view/settings/snapshot model.
openapi-client-template.mdGenerated or typed HTTP client.
policy-decision-record-template.mdDecision snapshot для policy engine или rules execution.
policy-permission-template.mdPolicy, permission, guard, approval requirement.
provider-adapter-template.mdAnti-corruption adapter для внешней системы.
report-export-template.mdExport/report contract, file format, generation flow.
runbook-template.mdIncident, maintenance или manual recovery procedure.
saga-template.mdCross-service process без distributed transaction.
search-document-template.mdSearch index document/projection.
service-readiness-template.mdProduction readiness checklist сервиса.
service-readme-template.mdГлавный обзор сервиса.
system-scenario-template.mdCross-service end-to-end scenario, policy flow или business capability.
task-specification-template.mdПолная постановка задачи для реализации.
use-case-template.mdUse case / сценарий использования с уникальным ID UC-<префикс>-<номер>, актором, потоками, ошибками, событиями, AC.

Минимальная Проверка Перед Использованием Шаблона

  • выбран подходящий тип документа;
  • неприменимые разделы опущены, лишние блоки не добавлены;
  • placeholders <...> удалены;
  • нет локального ad hoc формата, не отраженного в шаблонах;
  • спек не ссылается на правила авторинга и SDK-типы (уровень изложения — по spec-authoring-altitude-rules.md).