58 lines
3.9 KiB
Markdown
58 lines
3.9 KiB
Markdown
# workspace-artifact-hygiene Specification
|
||
|
||
## Purpose
|
||
|
||
Определяет проверяемые границы для dependency advisories, локальной
|
||
configuration и SQLite runtime-артефактов независимых репозиториев WealthLedger.
|
||
|
||
## Requirements
|
||
|
||
### Requirement: Dependency advisory получает проверяемое решение
|
||
Для каждого audit-derived dependency advisory система SHALL хранить
|
||
проверяемую запись с Audit ID, advisory identifier, затронутой package path и
|
||
installed version, оценкой применимости к runtime или build surface и одним из
|
||
результатов: исправлено, принято или отложено. Принятое или отложенное решение
|
||
MUST содержать rationale и review trigger; исправленное решение MUST содержать
|
||
выбранный поддерживаемый upgrade path и evidence воспроизводимой проверки.
|
||
|
||
#### Scenario: Advisory подтверждён в dependency graph
|
||
- **WHEN** проверка находит advisory в direct или transitive package path
|
||
- **THEN** remediation record позволяет определить его reachability,
|
||
выбранный результат и evidence без применения массового автоматического
|
||
обновления зависимостей
|
||
|
||
#### Scenario: Advisory не применим к delivered architecture
|
||
- **WHEN** assessment устанавливает, что advisory не достижим из runtime или
|
||
build surface WealthLedger
|
||
- **THEN** record фиксирует принятие риска, конкретное rationale и условие
|
||
повторной оценки вместо ошибочного заявления об исправлении
|
||
|
||
### Requirement: Рабочая frontend configuration не является versioned input
|
||
Frontend SHALL поставлять versioned `.env.example`, достаточный для создания
|
||
локального `.env`, но MUST NOT хранить рабочий `.env` или другой локальный
|
||
`.env*` файл в source control. Ignore policy MUST исключать локальные frontend
|
||
configuration files, сохраняя явно разрешённый example template.
|
||
|
||
#### Scenario: Участник создаёт local frontend configuration
|
||
- **WHEN** участник копирует `.env.example` в `.env` для запуска frontend
|
||
- **THEN** локальный файл доступен runtime, но не появляется среди tracked
|
||
файлов Git
|
||
|
||
### Requirement: Runtime SQLite-данные не являются versioned artifact
|
||
Backend MUST NOT хранить SQLite database files, созданные runtime или local
|
||
development, в source control. Ignore policy SHALL покрывать поддерживаемые
|
||
repository runtime locations, а локальные test/database workflows MUST
|
||
направлять временные базы вне source tree и не считать их частью
|
||
коммитируемого результата.
|
||
|
||
#### Scenario: Локальный backend создаёт runtime SQLite database
|
||
- **WHEN** backend workflow создаёт SQLite file для development или test run
|
||
- **THEN** database находится вне versioned source inputs либо исключена
|
||
ignore policy и не появляется среди tracked файлов Git
|
||
|
||
#### Scenario: В репозитории обнаружен устаревший runtime DB artifact
|
||
- **WHEN** tracked SQLite database больше не требуется как fixture или source
|
||
input
|
||
- **THEN** change удаляет его из source control и сохраняет воспроизводимый
|
||
local bootstrap через configuration template и documented workflow
|