Skip to content

[Level 1] 공유 rehearsal domain contracts 정의 (song -> section -> role) #29

@seonghobae

Description

@seonghobae

배경

현재 shared types는 ProjectSummary 수준의 최소 스켈레톤만 제공한다. 제품과 아키텍처 문서는 BandScope의 핵심 모델을 song -> section -> role로 정의하고 있으며, 역할별 화성/큐/신뢰도/수정 이력까지 같은 계약에서 다뤄야 한다.

목표

UI, analysis-engine, export가 같은 데이터 모델을 사용하도록 canonical shared contract를 만든다.

구현 범위

  • song, section, role, cue, range, confidence, provenance, manual override, rehearsal priority, export summary 타입 정의
  • 역할 taxonomy 초안 정의: instrument role, vocal role, hand-specific subdivision
  • JSON-serializable contract examples와 fixture 추가
  • UI/engine 양쪽에서 재사용 가능한 validation 경계 정의
  • packages/shared-types 테스트 보강

선행 이슈

  • 없음

완료 기준

  • 같은 section 안에서 여러 role이 서로 다른 harmonic guidance를 가질 수 있다.
  • keyboard left/right hand, multiple keyboard players, lead/backing vocal을 별도 role로 표현할 수 있다.
  • section-level과 role-level confidence/provenance를 모두 표현할 수 있다.
  • manual edit가 model-generated value를 덮어써도 원본 provenance를 잃지 않는다.
  • shared contract fixture를 기준으로 TS 테스트가 통과한다.
  • ARCHITECTURE.md와 관련 architecture docs가 계약 구조와 일치한다.

참고 문서

  • ARCHITECTURE.md
  • docs/architecture/overview.md
  • docs/architecture/rehearsal-domain-model.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions