From 6898732dd8e933e9d6a587aef48ebe0eddaa0cf2 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Tue, 25 Aug 2026 15:33:52 +0300 Subject: [PATCH] docs: archive React component style change --- .../.openspec.yaml | 0 .../design.md | 0 .../implementation-summary.md | 0 .../proposal.md | 0 .../specs/frontend-quality-guardrails/spec.md | 0 .../tasks.md | 0 .../specs/frontend-quality-guardrails/spec.md | 46 +++++++++++++++++++ 7 files changed, 46 insertions(+) rename openspec/changes/{codify-frontend-component-style => archive/2026-08-25-codify-frontend-component-style}/.openspec.yaml (100%) rename openspec/changes/{codify-frontend-component-style => archive/2026-08-25-codify-frontend-component-style}/design.md (100%) rename openspec/changes/{codify-frontend-component-style => archive/2026-08-25-codify-frontend-component-style}/implementation-summary.md (100%) rename openspec/changes/{codify-frontend-component-style => archive/2026-08-25-codify-frontend-component-style}/proposal.md (100%) rename openspec/changes/{codify-frontend-component-style => archive/2026-08-25-codify-frontend-component-style}/specs/frontend-quality-guardrails/spec.md (100%) rename openspec/changes/{codify-frontend-component-style => archive/2026-08-25-codify-frontend-component-style}/tasks.md (100%) diff --git a/openspec/changes/codify-frontend-component-style/.openspec.yaml b/openspec/changes/archive/2026-08-25-codify-frontend-component-style/.openspec.yaml similarity index 100% rename from openspec/changes/codify-frontend-component-style/.openspec.yaml rename to openspec/changes/archive/2026-08-25-codify-frontend-component-style/.openspec.yaml diff --git a/openspec/changes/codify-frontend-component-style/design.md b/openspec/changes/archive/2026-08-25-codify-frontend-component-style/design.md similarity index 100% rename from openspec/changes/codify-frontend-component-style/design.md rename to openspec/changes/archive/2026-08-25-codify-frontend-component-style/design.md diff --git a/openspec/changes/codify-frontend-component-style/implementation-summary.md b/openspec/changes/archive/2026-08-25-codify-frontend-component-style/implementation-summary.md similarity index 100% rename from openspec/changes/codify-frontend-component-style/implementation-summary.md rename to openspec/changes/archive/2026-08-25-codify-frontend-component-style/implementation-summary.md diff --git a/openspec/changes/codify-frontend-component-style/proposal.md b/openspec/changes/archive/2026-08-25-codify-frontend-component-style/proposal.md similarity index 100% rename from openspec/changes/codify-frontend-component-style/proposal.md rename to openspec/changes/archive/2026-08-25-codify-frontend-component-style/proposal.md diff --git a/openspec/changes/codify-frontend-component-style/specs/frontend-quality-guardrails/spec.md b/openspec/changes/archive/2026-08-25-codify-frontend-component-style/specs/frontend-quality-guardrails/spec.md similarity index 100% rename from openspec/changes/codify-frontend-component-style/specs/frontend-quality-guardrails/spec.md rename to openspec/changes/archive/2026-08-25-codify-frontend-component-style/specs/frontend-quality-guardrails/spec.md diff --git a/openspec/changes/codify-frontend-component-style/tasks.md b/openspec/changes/archive/2026-08-25-codify-frontend-component-style/tasks.md similarity index 100% rename from openspec/changes/codify-frontend-component-style/tasks.md rename to openspec/changes/archive/2026-08-25-codify-frontend-component-style/tasks.md diff --git a/openspec/specs/frontend-quality-guardrails/spec.md b/openspec/specs/frontend-quality-guardrails/spec.md index 79bc95f..917d44d 100644 --- a/openspec/specs/frontend-quality-guardrails/spec.md +++ b/openspec/specs/frontend-quality-guardrails/spec.md @@ -77,3 +77,49 @@ coverage committed source ниже 82% statements, 75% branches, 75% functions - **WHEN** frontend test suite опускается ниже хотя бы одного coverage floor - **THEN** documented coverage command завершается с ошибкой по этой метрике + +### Requirement: Frontend проверяет автоматически проверяемый стиль React components + +Authored frontend source MUST сохранять автоматически проверяемую часть +документированного стиля React components внутри документированного frontend +verification gate. Gate MUST отклонять default exports в authored frontend +source, named React components, объявленные вне документированной const-valued +component form, и module exports, размещённые перед declarations тела module. +Style preferences, для которых нет детерминированной локальной проверки, MUST +оставаться review conventions и MUST NOT описываться как gate-blocking hard +guardrails. + +#### Scenario: Authored source соблюдает проверяемый component style + +- **WHEN** authored frontend source объявляет named React components через + документированную const-valued component form, не использует default exports + и держит exports после declarations тела module +- **THEN** документированный frontend verification gate не падает из-за React + component style + +#### Scenario: Named component использует запрещённую форму объявления + +- **WHEN** authored frontend source объявляет named React component вне + документированной const-valued component form +- **THEN** документированный frontend verification gate падает и сообщает + нарушение React component style + +#### Scenario: Authored source использует default export + +- **WHEN** authored frontend source открывает module API через default export +- **THEN** документированный frontend verification gate падает и сообщает + нарушение module export style + +#### Scenario: Authored source экспортирует до declarations тела module + +- **WHEN** authored frontend source размещает module export перед + non-exported declarations тела module +- **THEN** документированный frontend verification gate падает и сообщает + нарушение module export ordering + +#### Scenario: Convention не имеет детерминированной проверки + +- **WHEN** documented frontend style convention нельзя проверить existing + deterministic local tooling +- **THEN** frontend documentation трактует её как mandatory review convention, + а не как gate-blocking hard guardrail