feat: complete section extraction pipeline#85
Conversation
- Introduce section/form/cue extraction domain models - Extract section tags using lyric phrasing and count anchors - Synchronize frontend TS models with backend extraction model - Validate with comprehensive engine and shared-type tests
|
@coderabbitai review |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
Cache: Disabled due to Reviews > Disable Cache setting Disabled knowledge base sources:
📝 WalkthroughSummary by CodeRabbit
Walkthrough섹션/폼/큐 앵커 추출 파이프라인을 새로 추가하고, 공유 타입의 섹션 레이블을 허용 목록으로 제약해 데모·검증·런타임 검증을 정비했습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant API as "API\n(build_demo_rehearsal_song)"
participant Extractor as "extract_sections\n(extractor.py)"
participant Model as "sections.model\n(ALL_SECTION_LABELS, types)"
participant Anchors as "anchors\n(lyric/count helpers)"
API->>Extractor: arrangement 전달
Extractor->>Model: ALL_SECTION_LABELS로 레이블 정규화/판별
alt lyric_cue 존재
Extractor->>Anchors: lyric_phrase_anchor(phrase)
Anchors-->>Extractor: CueAnchor(strategy=lyric, value=phrase)
else lyric_cue 없음
Extractor->>Anchors: count_based_anchor(beat,bar)
Anchors-->>Extractor: CueAnchor(strategy=count, value="Enter on beat 1 of bar 1")
end
Extractor->>Model: confidence 결정 및 SectionCandidate 생성
Extractor-->>API: SectionExtractionResult(sections, strategy_used, notes)
API->>API: rehearsal song 생성 및 exportSummary 업데이트
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
✅ Actions performedReview triggered.
|
✅ Actions performedReview triggered.
|
Resolves #35
Changes
bandscope_analysis.sectionspackage (models, anchors, extractor).shared-types(TypeScript)SectionFormLabelto precisely match canonical section labels.Security Notes
SectionLabeland extraction logic ensures no arbitrary string payloads bypass validation boundaries within IPC.