一键导入
lina-community-commit-push-and-pr
为LinaPro以及SubModule仓库自动提交、推送并创建 PR。必须用户手动触发,禁止自动触发该技能。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
为LinaPro以及SubModule仓库自动提交、推送并创建 PR。必须用户手动触发,禁止自动触发该技能。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
手动生成 LinaPro 版本更新日志。用户要求生成 changelog、release notes、版本更新日志、发布说明,或提到 lina-community-release-changelog 时必须使用本技能。技能会基于 Git 历史、源码差异和 OpenSpec 内容整理详尽的双语 Markdown 更新日志,涉及数据库变更时必须单独列出,支持默认比较范围和用户指定两个版本/标签/提交进行比较,固定写入 localdocs/changelog.md。
仅手动触发。只有当用户明确要求 lina-perf-audit,或确认要运行完整审计时, 才执行 LinaPro 后端 API 全量性能审计。该流程会通过 make db.init/mock 重置数据库、重启服务、安装并启用所有内置插件、准备压测数据,并启动并发子代理; 通常需要几十分钟到数小时,且会消耗大量 Token。不得从其他技能、CI、定时任务、 Git 钩子或模糊的性能请求中触发。
审查 LinaPro 社区 GitHub Issues,并按项目规范和源码实现分类处理。用户要求审查 LinaPro issue、社区 issue、GitHub issue、question、feature、bug、关闭无效 issue,或提到 lina-community-issue-review 时必须使用本技能。
审查 LinaPro 社区 GitHub Pull Request,并按项目规范发表评论。用户要求审查 LinaPro PR、社区 PR、pull request、bot 审批、bot-approved 标签、GitHub PR 治理,或提到 lina-community-pr-review 时必须使用本技能。
用于处理用户对已有实现的反馈分诊与执行闭环:先判断是否需要纳入 OpenSpec 活跃变更或新建变更,再完成根因分析、实现、验证和必要测试。凡是用户针对已有实现反馈 Bug、缺陷、改进点、建议或实现遗漏,即使没有明确提到“反馈”或 OpenSpec,也必须使用本技能。
扫描并归档 LinaPro 仓库中已经完成的所有 OpenSpec 活跃变更,并在归档前校验插件相关规范目录使用 <plugin-id> 前缀。
| name | lina-community-commit-push-and-pr |
| description | 为LinaPro以及SubModule仓库自动提交、推送并创建 PR。必须用户手动触发,禁止自动触发该技能。 |
LinaPro社区提交与PR串联技能。该技能用于把apps/lina-plugins子模块和主框架仓库按正确顺序分别提交、推送、创建PR,并强制在子模块PR合并后才推进主框架PR。
linaproai/linapro。.gitmodules和git -C apps/lina-plugins remote -v读取,通常是linaproai/official-plugins。PR目标分支固定为子模块仓库的main。PR目标分支固定为主框架仓库的main。--force、--force-with-lease、git reset --hard或历史重写命令,除非用户明确要求。PR前必须确认对应分支已经推送到origin。PR后必须停止,并提醒用户先 review 和合并该PR。用户回复已合并或继续之前,不得更新主框架的子模块指针、提交主框架或创建主框架PR。已合并或继续后,必须先通过gh pr view或远端main提交确认子模块PR已经合并;如果尚未合并,停止并提示用户继续 review。git合并、同步或更新分支时,只允许Git自动完成无冲突合并;一旦出现内容冲突、子模块指针冲突或需要人工选择的冲突,必须立即停止并交给用户处理,禁止自行编辑冲突文件、删除冲突标记、选择 ours/theirs、暂存冲突结果或提交冲突解决。执行任何可能产生合并结果的操作前,先尽量使用只读方式判断是否可自动合并,例如:
git merge-tree --write-tree HEAD origin/main
如果只读检查确认可以自动合并,可以执行正常合并命令并推送结果,例如:
git merge --no-edit origin/main
git push origin "$(git branch --show-current)"
如果只读检查或实际合并命令报告冲突:
PR。git checkout --ours、git checkout --theirs、git add、git commit或任何等价的冲突解决动作。如果实际合并命令已经让工作区进入冲突状态,保留现场并停止,让用户完成冲突处理;不要自动执行git merge --abort,除非用户明确要求放弃该次合并。
先执行只读检查:
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
如果主仓库或子模块处于分离HEAD状态,停止并说明原因,除非用户明确要求在分离HEAD状态继续。
检查apps/lina-plugins是否存在未提交、已暂存或未跟踪变更:
git -C apps/lina-plugins status --short --branch
git -C apps/lina-plugins diff --stat
git -C apps/lina-plugins diff --cached --stat
如果子模块没有内容更新,跳过子模块提交和子模块PR创建,直接进入阶段二。
如果子模块有内容更新:
sub_branch=$(git -C apps/lina-plugins branch --show-current)
sub_branch是main,不要直接在main上提交。创建或要求切换到任务分支,例如:git -C apps/lina-plugins switch -c "<task-branch>"
<类型>[可选作用域]: <描述>格式。git -C apps/lina-plugins add -A
git -C apps/lina-plugins commit -m "<submodule-subject>"
git -C apps/lina-plugins push origin "$sub_branch"
PR: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状态为MERGED。进入阶段二后执行:
main:git fetch origin main
git -C apps/lina-plugins fetch origin main
PR,确认该PR已合并:gh pr view "<submodule-pr-number-or-url>" \
--repo "<submodule-owner>/<submodule-repo>" \
--json number,state,mergeCommit,url,baseRefName,headRefName
如果state不是MERGED,停止并再次提醒用户先 review 和合并子模块PR。
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 commit -m "chore(plugins): update lina-plugins submodule"
git push origin "$main_branch"
如果主框架当前还有与本次任务相关且尚未提交的变更,先检查差异并生成符合规范的提交信息;不得无说明地把无关变更混入子模块指针提交。
PR到main:gh pr create \
--repo linaproai/linapro \
--base main \
--head "$main_branch" \
--title "<title>" \
--body-file -
GitHub显示主框架PR为CONFLICTING,先按“合并冲突处理”规则做只读检查:git merge-tree --write-tree HEAD origin/main
gh pr view "<framework-pr-number-or-url>" \
--repo linaproai/linapro \
--json mergeable,mergeStateStatus,statusCheckRollup
若本地确认可自动合并,可以把origin/main正常合入当前分支并推送;若出现冲突,停止并报告冲突文件。
子模块PR正文至少包含:
Summary:概述子模块变更。Tests:说明本次流程是否运行过测试;没有运行时写明Not run by this PR creation step.。主框架PR正文至少包含:
Summary:概述主框架变更和子模块依赖更新。Submodule:记录apps/lina-plugins从哪个提交更新到哪个提交。Tests:说明本次流程是否运行过测试;没有运行时写明Not run by this PR creation step.。阶段一如果创建了子模块PR,最终输出只包含:
PR地址;PR,合并后回复已合并或继续。阶段二完成后最终输出:
main提交;PR地址;PR当前是否可合并;