一键导入
merge-upstream
合并上游 (upstream) commit 到 Nozomi fork。分析差异、评估难度、解决冲突、codex review、测试、beta tag push 一条龙。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
合并上游 (upstream) commit 到 Nozomi fork。分析差异、评估难度、解决冲突、codex review、测试、beta tag push 一条龙。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | merge-upstream |
| description | 合并上游 (upstream) commit 到 Nozomi fork。分析差异、评估难度、解决冲突、codex review、测试、beta tag push 一条龙。 |
| disable-model-invocation | true |
将上游 jimmysu0309/shinkansen 的新 commit 合并到 Nozomi fork,保留所有 Nozomi 独有功能。
Nozomi fork 相比上游的核心差异(合并时必须保留):
lib/bing-token.js, lib/bing-translate.js, background.js TRANSLATE_BATCH_BING handler, content.js _bingMode 路径lib/i18n.js, lib/i18n-prompts.js, content-ns.js 三语言 string table, t() / SK.t() 调用, data-i18n HTML 属性, applyLocale() / applyRichTextLocale()filterUnitsBySelection(), STATE.translationScopemanifest.firefox.json, scripts/build.js, content-youtube-main-loader.js, lib/session-storage.js, lib/compat.jsstickyTranslateEnabledcreateElement + textContent + replaceChildren严格按以下 6 个阶段执行,每阶段完成后向用户报告,等待确认再进入下一阶段。
git fetch upstream
git log --oneline upstream/main --not HEAD
对每个未合并的 commit,分析并输出表格:
| 字段 | 说明 |
|---|---|
| Commit hash + 版本号 | 如 710abe7 v1.8.12 |
| 类型 | Bug Fix / Feature / Docs / Refactor |
| 内容摘要 | 一句话说明做了什么 |
| 修改文件 | 核心文件 + 文档/版本文件分开列 |
| 与 Nozomi 冲突 | 逐文件标注 ✅无冲突 / ⚠有冲突(说明原因) |
| Merge 难度 | 🟢低 / 🟡中 / 🔴高 |
| 合并建议 | ⭐1-5 + 建议/不建议/可选 + 理由 |
用 git show <hash> --stat 和 git show <hash> 查看每个 commit 的详细改动。
用 git merge-tree $(git merge-base HEAD upstream/main) HEAD upstream/main 预测冲突。
等待用户确认哪些 commit 要合并后,进入阶段 2。
git merge upstream/main
冲突解决原则(按优先级):
t() / SK.t() 调用,不接受上游的硬编码中文字串innerHTML 赋值,必须改为 DOM API冲突解决后:
grep -rn "<<<<<<" shinkansen/ 确认零残留npm run build:all 确认双平台构建通过检查清单:
lib/i18n.js 和 content-ns.js(三语言:zh-TW / zh-CN / ja)SK.t() key 是否在 content-ns.js 的三个 string table 中都有定义translatePageGoogle + translateUnitsGoogle)manifest.firefox.json 版本号是否同步grep -rn '\.innerHTML\s*=' shinkansen/ 是否为 0启动 2-3 个并行 Agent 做 codex review,分工:
Review 重点:
SK.t() / t() i18n 一致性_bingMode, TRANSLATE_BATCH_BING)sanitizeMarkers 在所有注入点覆盖修复 review 发现的问题后,进入阶段 5。
# 构建
npm run build:all
# 全量测试
npx playwright test
# innerHTML 合规
grep -rn '\.innerHTML\s*=' shinkansen/
# 如果上游新增了功能,追加 Nozomi 测试 case:
# - 新功能 × Bing 引擎兼容性
# - 新功能 × 选区翻译交互
# - 新 i18n key 存在性
测试通过标准:
cache-glossary-keysuffix.spec.js 可接受单独 re-run pass)# 提交 merge(使用 git 自动生成的 merge message)
git add -A && git commit --no-edit
# Beta tag(格式:v{major}.{minor}.{patch}.{beta},beta 1-9)
git tag v{VERSION}.{NEXT_BETA}
# Push
git push origin main --tags
Beta 版本号规则:
git tag -l 'v{VERSION}*' 确定下一个 beta 号.1 不用 .01)优先保留 Nozomi 改动,把上游新功能手动合并进来。用 git show upstream/main -- <file> 查看上游改了什么。
必须改为 DOM API。参考 CLAUDE.md 的「innerHTML 禁用規則」表格。
上游只有繁体中文,需要在 lib/i18n.js 和 content-ns.js 同时添加三语言版本(zh-TW / zh-CN / ja)。
所有版本号保留 Nozomi 当前版本(如 1.9.0),不跟随上游。CHANGELOG 中上游条目放在 ## v1.8.x section。