بنقرة واحدة
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。