ワンクリックで
lina-community-commit-push-and-pr
手动触发:为 LinaPro 主仓库及 apps/lina-plugins 子模块完成提交、PR 前 rebase、推送、创建 PR, 并在 PR 合并后恢复原始分支和同步 main。禁止自动触发。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
手动触发:为 LinaPro 主仓库及 apps/lina-plugins 子模块完成提交、PR 前 rebase、推送、创建 PR, 并在 PR 合并后恢复原始分支和同步 main。禁止自动触发。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
审查 LinaPro 社区 GitHub Issues,并按项目规范和源码实现分类处理。 必须用户手动触发,禁止自动触发该技能。
扫描并归档 LinaPro 仓库中已经完成的所有 OpenSpec 活跃变更;若任务已全部完成但存在可判定的归档异常,先自动修复并复验,再继续归档。 必须用户手动触发,禁止自动触发该技能。
只同步当前 git 工作区中有变化的 apps/lina-site/docs/ 中文 Markdown 文档到 apps/lina-site/i18n/en/docusaurus-plugin-content-docs/current/。 需要手动调用该技能,禁止自动调用。
检测 apps/lina-site/docs/ 中文主稿与 apps/lina-site/i18n/en/docusaurus-plugin-content-docs/current/ 英文翻译之间的缺漏和内容差异,并进行补全修复。当 docs/ 中新增或更新了文档、或需要全量同步审查时使用。 需要手动调用该技能,禁止自动调用。
用于处理用户对已有实现的反馈分诊与执行闭环:先判断是否需要纳入 OpenSpec 活跃变更或新建变更,再完成根因分析、实现、验证和必要测试。凡是用户针对已有实现反馈 Bug、缺陷、改进点、建议或实现遗漏,即使没有明确提到“反馈”或 OpenSpec,也必须使用本技能。
用于审查 LinaPro OpenSpec 工作流中的代码变更和规范合规性。在完成 /opsx:apply 任务、 完成 lina-feedback 反馈修复、执行 /opsx:archive 归档前必须使用;在用户要求代码审查、 规范合规检查,或明确调用 /lina-review 时也必须使用。
| name | lina-community-commit-push-and-pr |
| description | 手动触发:为 LinaPro 主仓库及 apps/lina-plugins 子模块完成提交、PR 前 rebase、推送、创建 PR, 并在 PR 合并后恢复原始分支和同步 main。禁止自动触发。 |
用于串联LinaPro主仓库与apps/lina-plugins子模块的社区提交、推送、PR创建和合并后收尾流程。子模块有变更时先创建子模块PR,确认合并后再更新主仓库子模块指针并创建主仓库PR。
linaproai/linapro。.gitmodules和git -C apps/lina-plugins remote -v读取,通常是linaproai/official-plugins。PR目标分支均固定为各自仓库的main。PR前,必须先提交当前任务变更,执行PR前rebase门禁,再推送对应分支。PR前rebase外,不使用--force、--force-with-lease、git reset --hard或其他历史重写命令,除非用户明确要求。PR创建后必须停止,等待用户合并后回复已合并或继续;主仓库PR创建后也必须停止,等待用户合并后回复已合并或继续收尾。gh pr view或远端main提交确认对应PR已合并;未合并时停止并提示继续 review。PR均确认合并后,必须切回流程开始时记录的原始分支,并让原始分支包含各自最新origin/main。rebase或子模块指针冲突时立即停止并交给用户处理;禁止自行编辑冲突文件、删除冲突标记、选择 ours/theirs、暂存冲突结果、提交冲突解决或继续rebase。先执行只读检查:
git status --short --branch
git branch --show-current
cat .gitmodules
git submodule status apps/lina-plugins
git -C apps/lina-plugins status --short --branch
git remote -v
git -C apps/lina-plugins remote -v
gh auth status
记录流程开始时的原始分支,收尾必须使用这些值恢复工作树:
original_main_branch=$(git branch --show-current)
original_sub_branch=$(git -C apps/lina-plugins branch --show-current)
如果主仓库或子模块处于分离HEAD状态,或任一原始分支为空,停止并说明原因,除非用户明确要求继续。
该门禁用于避免历史提交被带入PR。执行顺序固定为:提交当前任务变更 → fetch origin main → rebase origin/main → 检查origin/main..HEAD → 推送当前分支 → 创建PR。不得用merge origin/main代替。
子模块分支:
git -C apps/lina-plugins fetch origin main
git -C apps/lina-plugins rebase origin/main
git -C apps/lina-plugins merge-base --is-ancestor origin/main HEAD
git -C apps/lina-plugins log --oneline --decorate origin/main..HEAD
主仓库分支:
git fetch origin main
git rebase origin/main
git merge-base --is-ancestor origin/main HEAD
git log --oneline --decorate origin/main..HEAD
门禁处理要求:
origin/main..HEAD包含与本次任务无关、数量异常或无法解释的提交,不得创建PR;报告提交列表和风险,等待用户决定是否改用新分支、拆分提交或手动整理历史。git push origin "<branch>"因非快进被拒绝,不得自动使用--force或--force-with-lease;说明需要用户明确授权强推,或让用户决定是否改用新分支名。rebase发生冲突,立即停止,不推送、不创建PR,报告冲突仓库、分支和文件;禁止执行git add、git commit、git rebase --continue、git rebase --skip或git rebase --abort,除非用户明确要求。执行可能产生合并结果的操作前,尽量先用只读方式判断是否可自动合并:
git merge-tree --write-tree HEAD origin/main
如果只读检查确认可以自动合并,可以执行正常合并并推送:
git merge --no-edit origin/main
git push origin "$(git branch --show-current)"
如果只读检查或实际合并命令报告冲突,立即停止并报告冲突仓库、分支和文件。若实际合并命令已让工作区进入冲突状态,保留现场让用户处理;不要自动执行git merge --abort,除非用户明确要求放弃该次合并。
检查子模块是否有未提交、已暂存或未跟踪变更:
git -C apps/lina-plugins status --short --branch
git -C apps/lina-plugins diff --stat
git -C apps/lina-plugins diff --cached --stat
如果子模块没有内容更新,跳过子模块提交和子模块PR创建,直接进入阶段二。
如果子模块有内容更新:
main,先创建或要求切换到任务分支,并刷新sub_branch。sub_branch=$(git -C apps/lina-plugins branch --show-current)
if [ "$sub_branch" = "main" ]; then
git -C apps/lina-plugins switch -c "<task-branch>"
sub_branch=$(git -C apps/lina-plugins branch --show-current)
fi
<类型>[可选作用域]: <描述>格式的提交信息,并提交当前任务变更。git -C apps/lina-plugins add -A
git -C apps/lina-plugins commit -m "<submodule-subject>"
PR前rebase门禁。PR正文要求创建子模块PR。git -C apps/lina-plugins push origin "$sub_branch"
gh pr create \
--repo "<submodule-owner>/<submodule-repo>" \
--base main \
--head "$sub_branch" \
--title "<title>" \
--body-file -
PR地址并停止,提醒用户:请先 review 并合并该 submodule PR。合并完成后回复“已合并”或“继续”,我再更新主仓库 submodule 指针并创建主仓库 PR。
阶段一创建PR后不得继续执行阶段二,即使本地能看到子模块分支已经推送。
仅当子模块无内容更新,或阶段一创建的子模块PR已确认合并时,才能进入本阶段。
main。git fetch origin main
git -C apps/lina-plugins fetch origin main
PR,先确认它已合并;未合并则停止。gh pr view "<submodule-pr-number-or-url>" \
--repo "<submodule-owner>/<submodule-repo>" \
--json number,state,mergeCommit,url,baseRefName,headRefName
main。git -C apps/lina-plugins switch main
git -C apps/lina-plugins merge --ff-only origin/main
git status --short --branch
git diff --submodule=log -- apps/lina-plugins
git diff --stat
main_branch=$(git branch --show-current)
git add apps/lina-plugins
# 如果还有已确认属于本次任务的主仓库变更,按具体路径追加 git add。
git commit -m "chore(plugins): update lina-plugins submodule"
如果主仓库还有与本次任务相关且尚未提交的变更,先检查差异并生成符合规范的提交信息;不得把无关变更混入子模块指针提交。
PR前rebase门禁。PR正文要求创建主仓库PR。git push origin "$main_branch"
gh pr create \
--repo linaproai/linapro \
--base main \
--head "$main_branch" \
--title "<title>" \
--body-file -
GitHub显示主仓库PR为CONFLICTING,按“冲突处理”检查;能自动合并时正常合入origin/main并推送,出现冲突时停止。阶段二完成后停止,提醒用户:
请先 review 并合并主仓库 PR。合并完成后回复“已合并”或“继续收尾”,我再恢复主仓库和 submodule 的本地分支并同步 main。
进入本阶段前必须满足:
PR时,该PR已确认MERGED。PR时,该PR已确认MERGED。original_main_branch和original_sub_branch,且二者都不是空值。PR状态为MERGED;否则停止。gh pr view "<submodule-pr-number-or-url>" \
--repo "<submodule-owner>/<submodule-repo>" \
--json number,state,mergeCommit,url,baseRefName,headRefName
gh pr view "<framework-pr-number-or-url>" \
--repo linaproai/linapro \
--json number,state,mergeCommit,url,baseRefName,headRefName
main。git fetch origin main
git -C apps/lina-plugins fetch origin main
origin/main。git -C apps/lina-plugins switch "$original_sub_branch"
git -C apps/lina-plugins fetch origin main
git -C apps/lina-plugins merge --ff-only origin/main
如果--ff-only失败,按“冲突处理”判断是否可自动合并;冲突或需要人工选择时立即停止。
origin/main。git switch "$original_main_branch"
git fetch origin main
git merge --ff-only origin/main
如果--ff-only失败,按“冲突处理”判断是否可自动合并;冲突或需要人工选择时立即停止。
origin/main,并检查工作区状态。git status --short --branch
git log --oneline -1
git merge-base --is-ancestor origin/main HEAD
git -C apps/lina-plugins status --short --branch
git -C apps/lina-plugins log --oneline -1
git -C apps/lina-plugins merge-base --is-ancestor origin/main HEAD
-u建立上游;若存在落后或分叉,停止并报告风险。git rev-list --left-right --count "origin/$original_main_branch"...HEAD
git -C apps/lina-plugins rev-list --left-right --count "origin/$original_sub_branch"...HEAD
需要推送时执行:
git push origin "$original_main_branch"
git -C apps/lina-plugins push origin "$original_sub_branch"
所有PR正文都应包含:
Summary:详细概述本次变更内容。Tests:说明本次流程是否运行过测试;没有运行时写明Not run by this PR creation step.。Related Issue:从用户请求、任务记录、上下文、分支名、提交信息和相关链接中自动识别;识别到时使用Resolves <issue-id-or-url>,未识别到时说明无关联Issue且不得阻塞PR创建。主仓库PR还必须包含:
Submodule:记录apps/lina-plugins从哪个提交更新到哪个提交。阶段一如果创建了子模块PR,最终只输出:
PR前rebase目标与origin/main..HEAD检查结果。PR地址。PR的提醒。阶段二完成后最终只输出:
main提交。PR前rebase目标与origin/main..HEAD检查结果。PR地址和当前是否可合并。阶段三完成后最终只输出:
PR地址和合并提交。PR地址和合并提交。main和是否已推送。main和是否已推送。