Files
specs/openspec/specs/workspace-artifact-hygiene/spec.md
T

3.9 KiB
Raw Blame History

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