Initial TrueGrowth source import
This commit is contained in:
20
openspec/changes/add-music-brief-controls/proposal.md
Normal file
20
openspec/changes/add-music-brief-controls/proposal.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Change: 增加爆款音乐歌曲定位控制
|
||||
|
||||
## Why
|
||||
|
||||
爆款音乐工具的从零创作和歌词改写当前主要依赖自由文本,用户需要在自然语言里同时表达用途、曲风、人声、情绪和歌词目标。缺少轻量结构化创作定位会让歌词和 Suno 风格标签不稳定,后续音乐生成也更容易偏离预期。
|
||||
|
||||
## What Changes
|
||||
|
||||
- 在现有音乐分析记录上增加可选 `musicBrief`,不新增独立实体或新模态
|
||||
- 为从零创作和歌词改写增加轻量歌曲定位输入
|
||||
- 歌曲定位包含用途、核心曲风、人声/唱法、情绪能量、歌词目标
|
||||
- 将歌曲定位注入歌词生成/改写提示词,用于约束 `title / styleTags / lyricsDraft`
|
||||
- 参考音频模式允许歌曲定位补充音频分析结果,不覆盖用户手动编辑的标题、标签和歌词
|
||||
|
||||
## Impact
|
||||
|
||||
- Affected specs:
|
||||
- `audio-generation`
|
||||
- Affected code:
|
||||
- `packages/drawnix/src/components/music-analyzer/*`
|
||||
@@ -0,0 +1,28 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Music Analyzer Song Positioning Brief
|
||||
The system SHALL let the music analyzer collect a lightweight song positioning brief before lyric generation or rewrite, without creating a new workflow entity or audio generation modality.
|
||||
|
||||
#### Scenario: Create lyrics from a song brief
|
||||
- **GIVEN** the user is creating a song from scratch in the music analyzer
|
||||
- **WHEN** the user provides song positioning fields such as purpose, genre style, vocal style, energy mood, or lyric goal
|
||||
- **THEN** the lyric generation prompt SHALL include those fields as upstream creative context
|
||||
- **AND** the generated result SHALL still populate the existing title, style tags, and lyric draft fields
|
||||
|
||||
#### Scenario: Rewrite lyrics with a song brief
|
||||
- **GIVEN** the user is rewriting an existing lyric draft in the music analyzer
|
||||
- **WHEN** song positioning fields are present
|
||||
- **THEN** the lyric rewrite prompt SHALL include those fields alongside the current lyrics and existing analysis
|
||||
- **AND** the rewrite SHALL preserve the existing versioning behavior
|
||||
|
||||
#### Scenario: Restore legacy music records
|
||||
- **GIVEN** a stored music analyzer record does not contain a song positioning brief
|
||||
- **WHEN** the record is loaded
|
||||
- **THEN** the system SHALL treat the missing brief as empty
|
||||
- **AND** the record SHALL remain usable without migration errors
|
||||
|
||||
#### Scenario: Generate music from prepared lyrics
|
||||
- **GIVEN** the user proceeds from lyrics to Suno music generation
|
||||
- **WHEN** the record contains a song positioning brief
|
||||
- **THEN** the system SHALL continue submitting only the existing Suno title, tags, lyric prompt, model version, and edit-action fields
|
||||
- **AND** the brief SHALL not introduce new Suno submit fields
|
||||
13
openspec/changes/add-music-brief-controls/tasks.md
Normal file
13
openspec/changes/add-music-brief-controls/tasks.md
Normal file
@@ -0,0 +1,13 @@
|
||||
## 1. Implementation
|
||||
|
||||
- [x] 1.1 Add `musicBrief` type, normalization, summary, and prompt formatting helpers
|
||||
- [x] 1.2 Persist normalized `musicBrief` on existing music analyzer records
|
||||
- [x] 1.3 Add lightweight song positioning controls to create and lyrics flows
|
||||
- [x] 1.4 Inject song positioning into text-model lyric draft/rewrite prompts
|
||||
- [x] 1.5 Preserve existing Suno submit fields and keep brief as upstream creative context
|
||||
|
||||
## 2. Verification
|
||||
|
||||
- [x] 2.1 Add unit coverage for prompt injection and normalization
|
||||
- [x] 2.2 Run targeted music analyzer tests
|
||||
- [x] 2.3 Validate OpenSpec change
|
||||
Reference in New Issue
Block a user