feat: SDD workflow — test sync, song generation + validation, ReaScript hybrid pipeline

- compose-test-sync: fix 3 failing tests (NOTE_TO_MIDI, DrumLoopAnalyzer mock, section name)
- generate-song: CLI wrapper + RPP validator (6 structural checks) + 4 e2e tests
- reascript-hybrid: ReaScriptGenerator + command protocol + CLI + 16 unit tests
- 110/110 tests passing
- Full SDD cycle (propose→spec→design→tasks→apply→verify) for all 3 changes
This commit is contained in:
renato97
2026-05-03 22:00:26 -03:00
parent 7729d5f12f
commit 48bc271afc
25 changed files with 2842 additions and 343 deletions

View File

@@ -0,0 +1,65 @@
# Archive: compose-test-sync
**Archived**: 2026-05-03
**Status**: Complete — all 90 tests pass
---
## Summary
Test-only sync change. Fixed 3 failing tests to match the new compose.py API after the great rewrite. No compose.py files were modified.
---
## Specs Synced
| Domain | Action | Details |
|--------|--------|---------|
| None | N/A | Test-only change — no spec-level capabilities modified |
No main specs updated (test-only change, no capability modification per proposal).
---
## Files Changed
| File | Change | Description |
|------|--------|-------------|
| `tests/test_section_builder.py` | Modified | Replaced `root_to_midi` with `NOTE_TO_MIDI` dict lookup |
| `tests/test_render_cli.py` | Modified | Removed obsolete `DrumLoopAnalyzer` mock |
| `tests/test_compose_integration.py` | Modified | Fixed section name from `"verse"` to `"chorus"`, removed `analysis` arg |
---
## Tasks Completed
All 4 phases completed per `tasks.md`:
- ✅ 1.11.3: Replaced `root_to_midi` with `NOTE_TO_MIDI["A"]` + octave offset formula
- ✅ 2.12.5: Removed `DrumLoopAnalyzer` patch and related dead code
- ✅ 3.13.2: Changed section name to `"chorus"`, removed unused `analysis` line
- ✅ 4.14.2: Confirmed 90/90 tests pass, no scripts/ files modified
---
## Verification
- **Test result**: 90/90 tests passing (`pytest tests/ -q`)
- **Scripts modified**: None confirmed via `git diff --name-only scripts/`
- **Change scope**: Test-only, no compose.py changes
---
## Archive Contents
- `proposal.md`
- `design.md`
- `tasks.md`
No `spec.md` existed for this change (test-only, no spec-level capabilities).
---
## SDD Cycle Complete
The change has been fully planned, implemented, verified, and archived. Ready for the next change.