- Restore native Copilot CLI prompts for authentic Plan Mode behavior - Add SQLite-backed session management for state persistence via system prompt - Implement Adaptive Autonomy (Agent chooses planning vs direct execution) - Fix OpenWebUI custom tool context injection for v0.8.x compatibility - Add compact Live TODO widget synchronized with session.db - Upgrade SDK to github-copilot-sdk==0.1.30 - Remove legacy mode switch RPC calls (moved to prompt-driven orchestration) - Fix intent status localization and widget whitespace optimization - Sync bilingual READMEs and all documentation mirrors to v0.10.0
6.2 KiB
6.2 KiB
aw-ci-audit 中文对照
对应源文件:.github/workflows/aw-ci-audit.md
用途:这是一份给维护者 review 用的中文对照说明,不是 gh-aw 工作流源文件,也不参与 gh aw compile。
工作流定位
这个工作流的目标是做“CI / 自动化健康审计”。
它不是日志转储器,也不是自动修复器,而是用于:
- 检查近期仓库自动化是否出现可重复的失败模式
- 分析 release、publish、stats 等关键工作流的薄弱点
- 只在有新且可操作的诊断结论时,创建一条维护 issue
如果没有新的可操作诊断,或者问题已经被现有 issue 覆盖,就执行 noop。
Frontmatter 对照
触发方式
schedule: dailyworkflow_dispatchroles: allskip-botsgithub-actionscopilotdependabotrenovate
说明:这套设计更适合“定期体检 + 手动补查”,而不是直接绑到不确定的 workflow failure 事件上。
权限
当前设计为只读:
contents: readissues: readpull-requests: readactions: read
说明:工作流只做诊断分析,不改代码、不发 release、不创建 PR。
Safe Outputs
已配置:
create-issue- 标题前缀:
[ci-audit] - labels:
ci-audit、maintenance - 不自动关闭旧 issue
- 标题前缀:
最终只能二选一:
- 有新且可操作的诊断时执行
create_issue - 无新问题时执行
noop
工具
githubreposissuespull_requests
bash- 仅开放只读类命令,如
pwd、ls、cat、rg、git diff、git show
- 仅开放只读类命令,如
正文指令对照
主要目标
要求代理审计:
- release 相关 workflow 的失败或波动
- 插件发布失败
- 社区统计更新回归
- 重复出现的 workflow 脆弱点
- 维护者真正可以执行的下一步动作
明确限制:
- 只做诊断
- 不改文件
- 不推代码
- 不开 PR
- 不发 release
高优先级依据文件
在形成结论前,优先把这些文件当成“自动化规则源”:
.github/copilot-instructions.md.github/workflows/release.yml.github/workflows/publish_plugin.yml.github/workflows/publish_new_plugin.yml.github/workflows/plugin-version-check.yml.github/workflows/community-stats.ymldocs/development/gh-aw-integration-plan.mddocs/development/gh-aw-integration-plan.zh.md
重点关注的目标工作流
优先检查:
release.ymlpublish_plugin.ymlpublish_new_plugin.ymlplugin-version-check.ymlcommunity-stats.ymldeploy.yml
如果这些没有明显问题,不要无限扩大范围。
审查范围
聚焦“近期失败或可疑自动化信号”,并优先给出基于本仓库结构的诊断,而不是泛泛的 CI 建议。
它应该像“在看仓库自动化健康趋势的维护者”,而不是普通日志摘要机器人。
重点检查项
1. Release 与 Publish 失败
检查近期失败是否指向这些可操作问题:
- 版本提取或比较逻辑漂移
- release note 打包缺口
- publish 脚本的认证或环境问题
- workflow 中的结构假设已经不匹配当前仓库
- 如果不改仓库逻辑,就可能持续复现的失败
2. Stats 与定时任务稳定性
检查定时维护任务是否出现这些脆弱点:
- community stats 该提交时不再提交
- badge / docs 生成逻辑过时
- 依赖外部 API 的任务反复因同类原因失败
- schedule 驱动任务制造低价值噪音
3. 维护者信号质量
只有当结论“真的值得维护者处理”时,才创建 issue。
适合开 issue 的情况:
- 同类失败在多次运行中重复出现
- workflow 逻辑与当前仓库结构不匹配
- 大概率缺 secret / 权限 / 路径假设过时
- 重复出现的低信号失败值得过滤或加固
不要为一次性噪音失败开 issue,除非它很可能复发。
4. 已有 Issue 感知
在创建新 issue 前,先判断是否已有 open issue 覆盖同一类 CI 问题。
如果已有 issue 已经足够覆盖,就优先 noop,避免制造重复单。
严重级别
只允许三档:
High- 高概率重复发生,且会持续影响仓库自动化
Medium- 建议尽快修,以降低维护成本或 workflow 漂移
Low- 可选的稳健性增强或清理建议
并且明确要求:
- 不要为了开 issue 而硬造问题
Issue 格式
如果要创建 issue,必须只有一条维护 issue。
要求:
- 英文
- 简洁
- 先写 findings,不写空泛表扬
- 带可点击路径引用
- 不用嵌套列表
- 不要粘贴大段原始日志,除非短摘录确实必要
固定结构:
## CI Audit
### Summary
Short diagnosis of the failure pattern or automation risk.
### Findings
- `path/to/file`: specific problem or likely root cause
### Suggested Next Steps
- concrete maintainer action
- concrete maintainer action
### Notes
- Mention whether this appears recurring, new, or already partially mitigated.
补充规则:
- 正常情况下控制在约 300 词以内
- 如果是相关联的问题,合并成一个 issue,不要拆多个
- 优先提交“单个可执行诊断”,而不是大杂烩
No-Issue 规则
如果没有值得报告的新诊断:
- 不要创建状态汇报型 issue
- 不要复述 workflows 看起来健康
- 直接走
noop
示例:
{"noop": {"message": "No action needed: reviewed recent repository automation signals and found no new actionable CI diagnosis worth opening as a maintenance issue."}}
建议执行流程
- 检查近期仓库自动化上下文
- 优先检查目标工作流
- 识别可重复或仓库特定的失败模式
- 判断该问题是否已被 open issue 覆盖
- 只有在诊断“新且可操作”时,才起草最短有用的维护 issue
- 最终只执行一次
create_issue或一次noop
额外约束
- 不要为单次低信号瞬时失败开 issue
- 除非失败模式非常明确,否则不要顺势要求大规模重构
- 优先给出仓库特定原因,而不是泛泛的“重试试试”
- 如果根因不确定,要把不确定性写明
- 如果现有 issue 已经覆盖,优先
noop而不是重复开单
最终要求
必须以且仅以一次 safe output 结束:
- 有新且可操作的诊断:
create_issue - 无新问题:
noop