{
  "project_name": "AI语音应用 - 生成内容优化",
  "base_config": {
    "backend_port": 3000,
    "frontend_port": 5173,
    "db_host": "localhost",
    "db_port": 3306,
    "auth_enabled": false
  },
  "features": [
    {
      "id": 1,
      "description": "模板库 - 基础场景模板API",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/templates - 验证获取模板分类列表",
        "2. curl http://localhost:3000/api/templates?category=广告营销 - 验证按分类筛选模板",
        "3. curl http://localhost:3000/api/templates/1 - 验证获取单个模板详情",
        "4. curl -X POST http://localhost:3000/api/templates -H 'Content-Type: application/json' -d '{\"name\":\"测试模板\",\"category\":\"广告营销\",\"content\":\"示例内容\"}' - 验证创建模板",
        "5. curl -X PUT http://localhost:3000/api/templates/1 -H 'Content-Type: application/json' -d '{\"name\":\"更新模板名\"}' - 验证更新模板",
        "6. curl -X DELETE http://localhost:3000/api/templates/1 - 验证删除模板"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 点击模板选择按钮",
        "3. 验证模板分类标签显示正确（广告营销/知识付费/短视频/企业宣传/日常生活/新闻资讯）",
        "4. 点击某个分类验证模板列表筛选",
        "5. 点击选择模板验证内容自动填充到输入框",
        "6. 验证模板预览功能正常"
      ]
    },
    {
      "id": 2,
      "description": "模板库 - 模板选择UI组件",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/templates - 验证模板列表接口"
      ],
      "frontend_test_steps": [
        "1. 在生成页面点击模板按钮",
        "2. 验证弹出模板选择面板",
        "3. 验证面板显示模板分类标签",
        "4. 验证每个分类显示对应模板卡片",
        "5. 验证模板卡片显示名称、描述、预览缩略图",
        "6. 点击模板验证选中效果",
        "7. 确认选择后验证内容填充到输入框"
      ]
    },
    {
      "id": 3,
      "description": "背景音乐 - 背景音乐库API",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/bgm - 验证获取背景音乐列表",
        "2. curl http://localhost:3000/api/bgm?mood=轻柔 - 验证按风格筛选",
        "3. curl http://localhost:3000/api/bgm/1 - 验证获取单个背景音乐详情",
        "4. curl -X POST http://localhost:3000/api/bgm -H 'Content-Type: application/json' -d '{\"name\":\"测试BGM\",\"url\":\"https://xxx.mp3\",\"mood\":\"轻柔\",\"duration\":180}' - 验证添加背景音乐",
        "5. curl -X PUT http://localhost:3000/api/bgm/1 -H 'Content-Type: application/json' -d '{\"volume\":0.5}' - 验证更新背景音乐音量",
        "6. curl -X DELETE http://localhost:3000/api/bgm/1 - 验证删除背景音乐"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 验证背景音乐选择区域显示",
        "3. 点击背景音乐按钮展开音乐选择面板",
        "4. 验证音乐列表显示名称、风格标签、时长",
        "5. 点击播放按钮验证音乐试听",
        "6. 选择背景音乐验证自动设置音量",
        "7. 验证最终生成音频包含背景音乐"
      ]
    },
    {
      "id": 4,
      "description": "背景音乐 - 音量调节功能",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"bgmId\":1,\"bgmVolume\":0.3}' - 验证带背景音乐参数生成"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 选择背景音乐",
        "3. 验证音量滑块显示",
        "4. 调节音量滑块验证数值变化",
        "5. 验证音量实时预览",
        "6. 生成音频验证背景音乐音量正确"
      ]
    },
    {
      "id": 5,
      "description": "试听预览 - 预览API",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/preview -H 'Content-Type: application/json' -d '{\"text\":\"测试预览文本\",\"voiceId\":\"female-youth\"}' - 验证生成预览音频",
        "2. curl http://localhost:3000/api/preview/status/preview-001 - 验证预览状态查询"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 输入文本内容",
        "3. 选择音色参数",
        "4. 点击试听预览按钮",
        "5. 验证加载状态显示",
        "6. 验证预览音频播放正常",
        "7. 验证试听不消耗正式额度"
      ]
    },
    {
      "id": 6,
      "description": "试听预览 - 试听播放器组件",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/preview -H 'Content-Type: application/json' -d '{\"text\":\"简短文本\"}' - 验证生成简短预览"
      ],
      "frontend_test_steps": [
        "1. 输入文本后点击试听",
        "2. 验证预览播放器显示在输入框下方",
        "3. 验证播放/暂停按钮功能正常",
        "4. 验证进度条可拖动",
        "5. 验证试听完成后可重新试听",
        "6. 验证试听区域可关闭"
      ]
    },
    {
      "id": 7,
      "description": "敏感词检测 - 检测API",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/sensitive-check -H 'Content-Type: application/json' -d '{\"text\":\"正常文本\"}' - 验证正常文本检测",
        "2. curl -X POST http://localhost:3000/api/sensitive-check -H 'Content-Type: application/json' -d '{\"text\":\"包含敏感词的文本\"}' - 验证敏感词检测",
        "3. curl http://localhost:3000/api/sensitive-words - 验证获取敏感词库列表"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 输入包含敏感词的文本",
        "3. 验证实时检测敏感词",
        "4. 验证敏感词高亮显示",
        "5. 验证提示信息显示",
        "6. 修改文本后验证敏感词状态更新",
        "7. 验证无敏感词时允许生成"
      ]
    },
    {
      "id": 8,
      "description": "敏感词检测 - 实时检测UI",
      "status": "done",
      "passes": true,
      "priority": "high",
      "phase": "1",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/sensitive-check -H 'Content-Type: application/json' -d '{\"text\":\"测试\"}' - 验证检测接口"
      ],
      "frontend_test_steps": [
        "1. 在文本输入框输入内容",
        "2. 验证敏感词实时检测响应",
        "3. 验证检测结果显示在文本下方",
        "4. 验证敏感词以红色标注",
        "5. 验证检测状态图标正确",
        "6. 验证敏感词列表可点击查看详情"
      ]
    },
    {
      "id": 9,
      "description": "AI文案助手 - 文案生成API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/ai/assist -H 'Content-Type: application/json' -d '{\"keywords\":\"产品推广\",\"style\":\"广告营销\"}' - 验证AI文案生成",
        "2. curl -X POST http://localhost:3000/api/ai/assist -H 'Content-Type: application/json' -d '{\"keywords\":\"培训课件\",\"style\":\"知识付费\"}' - 验证不同风格文案生成"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 点击AI助手按钮",
        "3. 输入关键词（产品推广）",
        "4. 选择文案风格（广告营销）",
        "5. 点击生成按钮",
        "6. 验证AI生成文案显示",
        "7. 验证一键应用到输入框"
      ]
    },
    {
      "id": 10,
      "description": "AI文案助手 - AI助手UI组件",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/ai/styles - 验证获取文案风格列表"
      ],
      "frontend_test_steps": [
        "1. 点击AI助手入口",
        "2. 验证AI助手面板弹出",
        "3. 验证关键词输入框显示",
        "4. 验证风格选择器（广告营销/知识付费/短视频等）",
        "5. 验证生成按钮可点击",
        "6. 验证加载状态显示",
        "7. 验证生成结果可编辑",
        "8. 验证一键应用功能"
      ]
    },
    {
      "id": 11,
      "description": "音频剪辑 - 裁剪功能API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/audio/trim -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"startTime\":10,\"endTime\":60}' - 验证音频裁剪",
        "2. curl http://localhost:3000/api/audio/audio-001/info - 验证获取音频时长信息"
      ],
      "frontend_test_steps": [
        "1. 进入音频编辑页面",
        "2. 选择已生成的音频",
        "3. 验证波形图显示",
        "4. 拖动裁剪手柄设置起点",
        "5. 拖动裁剪手柄设置终点",
        "6. 验证预览裁剪效果",
        "7. 点击确认裁剪",
        "8. 验证裁剪后音频保存"
      ]
    },
    {
      "id": 12,
      "description": "音频剪辑 - 合并功能API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/audio/merge -H 'Content-Type: application/json' -d '{\"audioIds\":[\"audio-001\",\"audio-002\"],\"order\":[1,2]}' - 验证音频合并"
      ],
      "frontend_test_steps": [
        "1. 进入音频编辑页面",
        "2. 选择多个音频",
        "3. 验证选中音频列表显示",
        "4. 拖动调整合并顺序",
        "5. 点击合并按钮",
        "6. 验证合并进度显示",
        "7. 验证合并完成后新音频可播放"
      ]
    },
    {
      "id": 13,
      "description": "情感调节 - 情感参数API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"emotion\":\"happy\"}' - 验证开心情感生成",
        "2. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"emotion\":\"sad\"}' - 验证悲伤情感生成",
        "3. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"emotion\":\"excited\"}' - 验证激动情感生成",
        "4. curl http://localhost:3000/api/emotions - 验证获取情感列表"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 输入文本内容",
        "3. 验证情感选择器显示",
        "4. 选择开心情感",
        "5. 试听验证效果",
        "6. 切换到悲伤情感",
        "7. 试听验证效果差异",
        "8. 验证不同情感参数正确传递"
      ]
    },
    {
      "id": 14,
      "description": "情感调节 - 情感选择UI",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/emotions - 验证情感列表接口"
      ],
      "frontend_test_steps": [
        "1. 验证情感选择区域显示",
        "2. 验证情感选项（开心/悲伤/平静/激动/温柔）",
        "3. 验证每个情感有对应图标",
        "4. 验证选中状态显示",
        "5. 验证情感描述提示",
        "6. 验证与其他参数（语速/音调）组合使用"
      ]
    },
    {
      "id": 15,
      "description": "字幕生成 - SRT字幕API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/subtitle/generate -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"format\":\"srt\"}' - 验证生成SRT字幕",
        "2. curl -X POST http://localhost:3000/api/subtitle/generate -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"format\":\"lrc\"}' - 验证生成LRC歌词",
        "3. curl http://localhost:3000/api/subtitle/audio-001/download - 验证字幕下载"
      ],
      "frontend_test_steps": [
        "1. 进入音频详情页",
        "2. 验证字幕下载按钮显示",
        "3. 点击字幕格式选择",
        "4. 验证SRT格式下载",
        "5. 验证LRC格式下载",
        "6. 验证下载文件内容正确"
      ]
    },
    {
      "id": 16,
      "description": "字幕生成 - 字幕预览功能",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/subtitle/audio-001 - 验证获取字幕内容"
      ],
      "frontend_test_steps": [
        "1. 播放音频时验证字幕同步显示",
        "2. 验证字幕与音频时间轴同步",
        "3. 验证字幕样式可自定义（大小/颜色）",
        "4. 验证字幕可关闭",
        "5. 验证多语言字幕切换"
      ]
    },
    {
      "id": 17,
      "description": "多角色对话 - 多角色API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "3",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/dialogue/generate -H 'Content-Type: application/json' -d '{\"lines\":[{\"text\":\"你好\",\"role\":\"A\",\"voiceId\":\"male-youth\"},{\"text\":\"你好啊\",\"role\":\"B\",\"voiceId\":\"female-youth\"}]}' - 验证多角色对话生成"
      ],
      "frontend_test_steps": [
        "1. 进入生成页面",
        "2. 点击多角色模式",
        "3. 验证角色输入区域显示",
        "4. 添加多个角色对话",
        "5. 为每个角色选择不同音色",
        "6. 验证预览功能",
        "7. 验证生成完整对话音频"
      ]
    },
    {
      "id": 18,
      "description": "多角色对话 - 角色管理UI",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "3",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/voices/roles - 验证获取可用角色音色"
      ],
      "frontend_test_steps": [
        "1. 验证角色添加按钮",
        "2. 验证角色列表显示",
        "3. 验证每个角色可独立选择音色",
        "4. 验证角色可删除",
        "5. 验证角色顺序可调整",
        "6. 验证对话文本输入框",
        "7. 验证时间戳显示"
      ]
    },
    {
      "id": 19,
      "description": "视频配音 - 视频上传API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "3",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/video/upload -F 'video=@test.mp4' - 验证视频上传",
        "2. curl http://localhost:3000/api/video/video-001 - 验证获取视频信息"
      ],
      "frontend_test_steps": [
        "1. 进入视频配音页面",
        "2. 点击上传视频按钮",
        "3. 选择本地视频文件",
        "4. 验证上传进度显示",
        "5. 验证上传完成视频预览",
        "6. 验证视频时长显示"
      ]
    },
    {
      "id": 20,
      "description": "视频配音 - 音视频合成API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "3",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/video/sync -H 'Content-Type: application/json' -d '{\"videoId\":\"video-001\",\"audioId\":\"audio-001\"}' - 验证音视频合成",
        "2. curl http://localhost:3000/api/video/video-001/status - 验证合成状态"
      ],
      "frontend_test_steps": [
        "1. 上传视频后输入配音文本",
        "2. 选择音色和参数",
        "3. 点击生成配音",
        "4. 验证配音生成进度",
        "5. 验证音视频同步预览",
        "6. 验证下载合成后的视频"
      ]
    },
    {
      "id": 21,
      "description": "品牌音色定制 - 音色训练API",
      "status": "done",
      "passes": true,
      "priority": "low",
      "phase": "3",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/voice/custom -H 'Content-Type: application/json' -d '{\"name\":\"品牌音色\",\"audioFiles\":[\"file1.mp3\",\"file2.mp3\"]}' - 验证音色训练请求",
        "2. curl http://localhost:3000/api/voice/custom/status/custom-001 - 验证训练状态"
      ],
      "frontend_test_steps": [
        "1. 进入品牌音色定制页面",
        "2. 验证音色上传引导",
        "3. 上传音频样本",
        "4. 验证样本数量检查",
        "5. 验证训练状态显示",
        "6. 验证训练完成音色列表"
      ]
    },
    {
      "id": 22,
      "description": "品牌音色定制 - 企业音色管理",
      "status": "done",
      "passes": true,
      "priority": "low",
      "phase": "3",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/voice/custom/list - 验证获取已训练音色",
        "2. curl -X DELETE http://localhost:3000/api/voice/custom/voice-001 - 验证删除音色"
      ],
      "frontend_test_steps": [
        "1. 进入音色管理页面",
        "2. 验证已训练音色列表显示",
        "3. 验证音色使用统计",
        "4. 验证音色启用/禁用开关",
        "5. 验证删除音色确认",
        "6. 验证删除后状态更新"
      ]
    },
    {
      "id": 23,
      "description": "一键发布 - 平台配置API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "3",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/platforms - 验证获取可发布平台列表",
        "2. curl -X POST http://localhost:3000/api/platforms/bind -H 'Content-Type: application/json' -d '{\"platform\":\"ximalaya\",\"token\":\"xxx\"}' - 验证绑定平台账号",
        "3. curl http://localhost:3000/api/platforms/bound - 验证获取已绑定平台"
      ],
      "frontend_test_steps": [
        "1. 进入发布设置页面",
        "2. 验证支持的平台列表（喜马拉雅/抖音/视频号）",
        "3. 点击绑定平台账号",
        "4. 验证授权流程",
        "5. 验证已绑定平台状态显示"
      ]
    },
    {
      "id": 24,
      "description": "一键发布 - 发布功能",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "3",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/publish -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"platforms\":[\"ximalaya\"],\"title\":\"测试标题\",\"description\":\"测试描述\"}' - 验证发布音频"
      ],
      "frontend_test_steps": [
        "1. 在音频详情页点击发布按钮",
        "2. 选择目标平台",
        "3. 填写标题和描述",
        "4. 点击发布",
        "5. 验证发布进度显示",
        "6. 验证发布成功提示",
        "7. 验证跳转到平台查看"
      ]
    },
    {
      "id": 25,
      "description": "质量评分 - 评分API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/quality/score -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\"}' - 验证生成质量评分",
        "2. curl http://localhost:3000/api/quality/audio-001 - 验证获取评分详情"
      ],
      "frontend_test_steps": [
        "1. 音频生成完成后验证质量评分显示",
        "2. 验证流畅度评分显示",
        "3. 验证自然度评分显示",
        "4. 验证总分显示",
        "5. 验证评分说明提示"
      ]
    },
    {
      "id": 26,
      "description": "多版本对比 - 版本生成API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/versions/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"voiceIds\":[\"female-youth\",\"male-youth\",\"female-mature\"]}' - 验证多版本生成"
      ],
      "frontend_test_steps": [
        "1. 输入文本后点击多版本生成",
        "2. 选择多个音色",
        "3. 验证批量生成进度",
        "4. 验证各版本列表显示",
        "5. 验证每个版本可试听",
        "6. 验证版本对比视图"
      ]
    },
    {
      "id": 27,
      "description": "多版本对比 - 对比界面",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "2",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/versions/audio-001 - 验证获取版本列表"
      ],
      "frontend_test_steps": [
        "1. 进入版本对比页面",
        "2. 验证各版本并排显示",
        "3. 验证每个版本可独立播放",
        "4. 验证选中版本高亮",
        "5. 验证选择最终版本",
        "6. 验证质量评分对比"
      ]
    },
    {
      "id": 28,
      "description": "专辑分类 - 增强分类API",
      "status": "done",
      "passes": true,
      "priority": "medium",
      "phase": "1",
      "backend_test_steps": [
        "1. curl http://localhost:3000/api/albums/categories - 验证获取专辑分类",
        "2. curl -X POST http://localhost:3000/api/albums -H 'Content-Type: application/json' -d '{\"name\":\"测试专辑\",\"category\":\"课件\"}' - 验证按分类创建专辑"
      ],
      "frontend_test_steps": [
        "1. 进入专辑管理页面",
        "2. 验证分类筛选器显示",
        "3. 验证按分类筛选专辑",
        "4. 验证创建专辑时选择分类",
        "5. 验证专辑分类标签显示"
      ]
    },
    {
      "id": 29,
      "description": "标签系统 - 标签API",
      "status": "done",
      "passes": true,
      "priority": "low",
      "phase": "1",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/audio/audio-001/tags -H 'Content-Type: application/json' -d '{\"tags\":[\"广告\",\"课件\"]}' - 验证添加标签",
        "2. curl http://localhost:3000/api/audio/audio-001/tags - 验证获取音频标签",
        "3. curl http://localhost:3000/api/tags/popular - 验证获取热门标签"
      ],
      "frontend_test_steps": [
        "1. 在音频详情页点击添加标签",
        "2. 输入标签关键词",
        "3. 验证标签自动补全",
        "4. 选择热门标签",
        "5. 验证标签显示在音频下方",
        "6. 验证点击标签筛选音频"
      ]
    },
    {
      "id": 30,
      "description": "收藏夹 - 收藏模板功能",
      "status": "done",
      "passes": true,
      "priority": "low",
      "phase": "1",
      "backend_test_steps": [
        "1. curl -X POST http://localhost:3000/api/favorites/templates -H 'Content-Type: application/json' -d '{\"templateId\":1}' - 验证收藏模板",
        "2. curl http://localhost:3000/api/favorites/templates - 验证获取收藏模板列表",
        "3. curl -X DELETE http://localhost:3000/api/favorites/templates/1 - 验证取消收藏"
      ],
      "frontend_test_steps": [
        "1. 在模板列表点击收藏按钮",
        "2. 验证收藏状态更新",
        "3. 进入我的收藏页面",
        "4. 验证收藏的模板显示",
        "5. 验证使用收藏的模板",
        "6. 验证取消收藏功能"
      ]
    }
  ]
}
