원클릭으로
lina-community-fix-ci
排查并修复给定的 LinaPro GitHub Actions 失败问题;修复完成后保留本地改动, 禁止自动提交、推送或创建 PR。 必须用户手动触发,禁止自动触发该技能。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
排查并修复给定的 LinaPro GitHub Actions 失败问题;修复完成后保留本地改动, 禁止自动提交、推送或创建 PR。 必须用户手动触发,禁止自动触发该技能。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
手动触发:将主仓库与 apps/lina-plugins 对齐最新 main 后, 按提示在两侧各建独立分支;分支就绪后继续处理提示词中的后续请求。 必须用户手动触发,禁止自动触发该技能。
用于处理用户对已有实现的反馈分诊与执行闭环:先判断是否需要纳入 OpenSpec 活跃变更或新建变更,再完成根因分析、实现、验证和必要测试。凡是用户针对已有实现反馈 Bug、缺陷、改进点、建议或实现遗漏,即使没有明确提到“反馈”或 OpenSpec,也必须使用本技能。
用于审查 LinaPro OpenSpec 工作流中的代码变更和规范合规性。在完成 /opsx:apply 任务、 完成 lina-feedback 反馈修复、执行 /opsx:archive 归档前必须使用;在用户要求代码审查、 规范合规检查,或明确调用 /lina-review 时也必须使用。
手动触发:为 LinaPro 主仓库及 apps/lina-plugins 子模块完成提交、PR 前 rebase、推送、创建 PR, 主仓 CI 修复回路,以及 PR 合并后恢复原始分支并同步 main。禁止自动触发。
审查 LinaPro 社区 GitHub Issues,并按项目规范和源码实现分类处理。 必须用户手动触发,禁止自动触发该技能。
先执行 lina-openspec-archive-changes 归档活跃变更,再执行 lina-openspec-archive-consolidate 做归档摘要。 必须用户手动触发,禁止自动触发。
| name | lina-community-fix-ci |
| description | 排查并修复给定的 LinaPro GitHub Actions 失败问题;修复完成后保留本地改动, 禁止自动提交、推送或创建 PR。 必须用户手动触发,禁止自动触发该技能。 |
| compatibility | 需要 GitHub CLI `gh` 已登录且具备读取 Actions run/log 权限;需要 `git` 与本地可执行的 make/测试命令。 |
手动排查并修复 LinaPro 仓库中指定的 GitHub Actions 失败。该技能负责收集失败证据、定位根因、实施最小必要修复,并在本地尽量复现对应校验;修复完成后不得自动提交代码。
linaproai/linapro。用户指定其他仓库时使用用户指定值。git add、git commit、git push、gh pr create、gh pr edit,也不得调用 lina-community-commit-push-and-pr。本地改动保留给用户审查。git reset --hard、git checkout --、git clean、--force 推送或丢弃用户已有未提交改动。git status;若存在无关未提交改动,只修改本次修复相关路径,不还原、不混入无关变更。AGENTS.md 判断命中的规则域,读取对应 .agents/rules/*.md;未读取命中规则不得改生产代码、测试或 workflow。自然识别以下用户请求:
lina-community-fix-ci修复 CI 失败排查 GitHub Actions 失败fix this failing action处理 PR #123 的 CI修复 run 1234567890按顺序尽量解析出以下信息:
| 优先级 | 输入 | 解析方式 |
| --- | --- |
| 1 | Actions run URL / job URL | 提取 owner/repo、run_id,必要时提取 job_id |
| 2 | run ID | 在默认或指定仓库查询该 run |
| 3 | PR 编号 | 查询该 PR 最新失败 check run / workflow run |
| 4 | workflow 名 + 分支 | 查询该 workflow 在指定分支上最近失败 run |
| 5 | 仅说“修 CI” | 列出最近失败 run,请用户确认后再修 |
示例命令:
# run URL 示例:https://github.com/linaproai/linapro/actions/runs/1234567890
# job URL 示例:.../actions/runs/1234567890/job/9876543210
gh run view "$RUN_ID" -R "$REPO" --json databaseId,workflowName,displayTitle,headBranch,headSha,event,status,conclusion,url,jobs
gh pr checks "$PR_NUMBER" -R "$REPO"
gh run list -R "$REPO" --status failure --limit 10 \
--json databaseId,workflowName,displayTitle,headBranch,headSha,event,status,conclusion,url,createdAt
在修改任何文件前先做只读检查:
gh auth status
git rev-parse --show-toplevel
git remote -v
git status --short --branch
git branch --show-current
git rev-parse HEAD
确认:
gh 能读取目标仓库 Actions。如果权限不足、不在可信仓库、工作区有高风险脏状态且无法安全隔离修复,停止并报告阻断原因。
gh run view "$RUN_ID" -R "$REPO" \
--json databaseId,workflowName,displayTitle,headBranch,headSha,event,status,conclusion,url,jobs,createdAt,updatedAt
gh run view "$RUN_ID" -R "$REPO" --log-failed
日志过大时:
gh run view "$RUN_ID" -R "$REPO" --job "$JOB_ID" --log
# 或下载完整日志后本地检索
gh api "repos/$REPO/actions/runs/$RUN_ID/logs" > "/tmp/ci-run-$RUN_ID.zip"
必须提取:
.github/workflows/main-ci.yml)push / pull_request / workflow_dispatch / schedule)headSha 与分支 headBranch根据失败 workflow 读取本地或失败 SHA 对应定义:
# 优先本地当前工作区
sed -n '1,200p' .github/workflows/<workflow>.yml
# 需要对照失败提交时
git show "$HEAD_SHA:.github/workflows/<workflow>.yml"
重点确认:
将失败步骤映射为可本地执行的等价命令。常见映射:
| CI 信号 | 优先本地验证 |
|---|---|
| Go 编译/单测失败 | 对应包 go test 或项目约定 make 目标 |
| Go lint 失败 | 与 workflow 相同的 lint 命令 |
| 前端单测失败 | 对应前端测试命令 |
| i18n check 失败 | i18n 校验命令 |
| make command smoke 失败 | 失败日志中的具体 make 命令 |
| OpenSpec 完成性检查失败 | openspec 相关校验 |
| 插件相关 job 失败 | 插件目录内对应测试/命令 |
| Redis/集成测试失败 | 确认本地依赖后运行对应测试 |
| E2E 失败 | 按 lina-e2e 与项目测试规范运行相关用例 |
| 仅 CI 环境问题(runner、权限、secrets、配额) | 不改业务代码;报告为环境/配置问题 |
不得猜测命令;以 workflow YAML、composite action 和失败日志中的实际命令为准。
在改代码前输出简短根因分析:
### CI 失败根因分析
- 目标:run <id> / job <name> / step <name>
- 仓库与引用:<repo> @ <branch> (<sha>)
- 失败摘要:<一句话>
- 根因判断:<代码缺陷 / 测试脆弱 / 工作流配置 / 环境依赖 / 权限或密钥 / flaky / 信息不足>
- 证据:<日志关键行、源码路径、workflow 路径>
- 拟修复范围:<文件或模块列表>
- 本地复现计划:<命令>
- 是否需要改 workflow:是/否(默认否;只有证据表明 workflow 本身错误才改)
分类处理:
.github/workflows/、.github/actions/ 或 hack/ 脚本;同时读取 dev-tooling 等命中规则。根据拟修改路径读取 AGENTS.md 与命中的 .agents/rules/*.md。常见映射:
backend-go.mdapi-contract.mddatabase.mdfrontend-ui.mdtesting.mdi18n.mdplugin.mddev-tooling.mdopenspec.mddocumentation.md插件目录变更前,还要检查并遵守 apps/lina-plugins/<plugin-id>/AGENTS.md(若存在)。
按映射命令验证:
验证记录必须包含命令、退出码和关键输出摘要。失败则继续分析,不得在红的情况下宣布完成。
修复与验证结束后,停止。以下动作全部禁止,除非用户在本技能之外另行明确要求:
git add / git commit / git commit --amendgit push / git push --force / git push --force-with-leasegh pr create / gh pr comment / gh pr edit / gh workflow runlina-community-commit-push-and-pr可以向用户说明“修复已完成,本地未提交;如需提交和开 PR,可手动触发 lina-community-commit-push-and-pr”,但不得自行执行。
处理结束后用简洁结构汇报:
## CI 修复结果
- 目标仓库:
- 失败 run:
- workflow / job / step:
- 失败提交与分支:
- 根因:
- 修改文件:
- 本地验证:
- 命令与结果:
- 未覆盖风险:
- Git 状态:仍有未提交改动 / 工作区干净
- 提交状态:**未提交**(本技能禁止自动提交)
### 建议下一步
- 用户审查 diff
- 如需提交/推送/开 PR:手动触发 `lina-community-commit-push-and-pr` 或自行提交
- 如需重跑 Actions:由用户在 GitHub 重跑,或用户明确要求后再执行 `gh run rerun`
最终报告不得包含密钥、token、完整敏感日志或无关大段 diff。