بنقرة واحدة
lina-community-commit-push-and-pr
为LinaPro以及SubModule仓库自动提交、推送并创建 PR。必须用户手动触发,禁止自动触发该技能。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
为LinaPro以及SubModule仓库自动提交、推送并创建 PR。必须用户手动触发,禁止自动触发该技能。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
手动生成 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当前是否可合并;