Initial TrueGrowth source import

This commit is contained in:
2026-07-07 09:36:36 +08:00
commit 3b6781d695
2283 changed files with 691996 additions and 0 deletions

View 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/*`

View File

@@ -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

View 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