本文件规定 Codex 及其他自动化编码代理维护本仓库时应长期遵守的规则。其适用范围为整个仓库。
Douban Music Helper 是一个辅助创建和填写豆瓣音乐条目的 Chrome 扩展。它从网易云音乐、Bandcamp、Discogs、Apple Music 等音乐来源采集专辑元数据,通过扩展存储在页面之间传递数据,并填写豆瓣音乐的新条目表单。
- 保持网易云音乐、Bandcamp、Discogs、Apple Music 等来源之间的兼容性。修改公共工具、消息传递、元数据结构或豆瓣填写流程时,应考虑所有已支持来源。
- 修改某一个来源时,只调整该来源所必需的提取逻辑;不要顺带重构、格式化或改写其他来源的代码。
- 不要随意重命名已有的 storage key,尤其是
DoubanListingMetadata。确需变更时,必须提供兼容旧数据的迁移或回退方案。 - 发布新版本时,
manifest.json与package.json中的版本号必须保持一致。 - 用户可见的功能新增或 bug 修复应同步记录到
CHANGELOG.md,说明其影响范围。 - 保留现有 MIT License,以及 README 和许可证文件中对原项目的 attribution。不要删除、弱化或错误改写相关版权与来源说明。
- 网易云音乐曲目标题应优先读取干净的
b[title]属性,并将 U+00A0、 等不换行空格规范化为普通空格。 - 不要将
innerText或textContent作为网易云音乐曲目标题的首选来源,因为页面可能在元素内部插入随机、隐藏或可见的干扰字符。它们只能作为确实不存在可靠title属性时的兼容性回退。 - 修改代码时尽量保持改动范围最小,避免无关重构、批量格式化、依赖升级或文件改名。
- 完成修改后,应说明修改了哪些文件、每项修改的原因,以及建议如何手动或自动测试。若未能执行某项测试,也应明确说明。
- 涉及来源采集逻辑时,至少确认生成的元数据字段仍符合现有结构,并检查来源页面上的
Collect流程。 - 涉及公共数据流时,检查“来源页采集 → 扩展存储 → 豆瓣页面填写”的完整流程。
- 涉及网易云音乐时,特别检查 iframe 页面采集、
b[title]曲目标题和不换行空格清理。 - 涉及发布版本时,核对
manifest.json、package.json和CHANGELOG.md。