Ctrl K
ComunidadGuías…

specs/020-music-preview-recovery/validation.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Validation: Music preview and recovery

Verified 2026-09-30 in isolated temporary fixtures, using the current working-tree
implementation. The acceptance contract was recorded during implementation; it
does not represent a specification that preceded the code.

- FR-001 / SC-001: Consecutive-frame recognition tests pass. Generated tagless
  MP3, ADTS AAC and AIFF files are identified, processed from misleading `.txt`
  names, preserve SHA-256 contents and decode successfully with ffmpeg.
- FR-002 / SC-002: `test_preview_lists_changes_without_modifying_release` covers
  direct and archived inputs, planned changes, unchanged bytes and modification
  times, and absence of an in-release recovery workspace.
- FR-003 / SC-005: `test_completion_summary_counts_actual_changes` and the preview
  fixture verify counts and unidentified filename reporting.
- FR-004 / SC-004: `test_unchanged_release_skips_staging_and_publication` asserts
  that scratch creation and publication are never called.
- FR-005 / SC-003: Recovery fixtures verify exact original restoration, backup
  corruption, changed output, unsafe journal, legacy journal and symlink refusal.
- FR-006 / SC-003: Fault-injected recovery write failure preserves the pre-attempt
  bytes and allows retry; an interrupted recovery resumes and restores originals.
- FR-007: Explicit command path argument tests pass; existing category and NZBGet
  success/failure tests pass.

## Gates

- 52 unittest cases passed, both focused and inside repository validation.
- Ruff passed for the script and its tests.
- `git diff --check` passed.
- `make validate` exited 0. Its generated PostHog Compose bundle was skipped
  because it is externally generated; 214 other Compose stacks rendered without
  failures. This is repository validation, not the broader CI-equivalent gate.

## Operational Limits

No live music processing, recovery command, configuration access, container
restart or deployment was performed for these additions. Legacy workspaces without
checksums require manual recovery. Other writers must be stopped before recovery;
the directory lock coordinates script instances. Recovery covers interrupted
processes and ordinary write failures; whole-machine crash durability is not
claimed.