找出浪费的 Actions 运行时间并生成小补丁
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 0disoft/dsh-ci-diet该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
找出浪费的 GitHub Actions runner 时间,并给出小而可审查的 YAML 补丁。
README
由 DeepSeek 最新模型翻译生成CI Diet
找出浪费掉的 GitHub Actions runner 时间,并给出小而可审查的补丁。
状态:alpha,已发布到 npm,包名 dsh-ci-diet@0.2.0。契约、规范、分析引擎、补丁引擎、命令行、DSH 插件工具,以及自包含的 HTML 报告都已实现并通过测试。DSH Web 客户端界面还没做。
它能做什么
CI Diet 读取两样东西,然后对比:
1. 当前工作树里的工作流 YAML。
2. 可选:用只读的 gh api 调用拉取执行历史。
据此报告 runner 分钟花在哪里,以及哪些发现可以安全地变成一处小的 YAML 修改。每条发现都带证据等级(observed、inferred、static),每条规则还带覆盖状态。
| 规则 | 发现什么 | v0.1 中的方案 |
| CD001 | 被更新提交取代的 PR 运行 | 补丁:concurrency |
| CD002 | 重叠的触发器 | 仅解释 |
| CD003 | 只改文档的变更上跑的重检查 | 仅解释 |
| CD004 | 过大的矩阵 | 仅解释 |
| CD005 | 没有 timeout-minutes 的任务 | 补丁:timeout-minutes |
| CD008 | 过长的产物保留期 | 补丁:retention-days |
规则集刻意保持很小。
展开完整文档(README 剩余 1 节)
CI Diet 找出浪费掉的 GitHub Actions runner 时间,并给出小而可审查的补丁。 状态:alpha,已发布到 npm,包名 dsh-ci-diet@0.2.0。契约、规范、分析引擎、补丁引擎、命令行、DSH 插件工具,以及自包含的 HTML 报告都已实现并通过测试。DSH Web 客户端界面还没做。 它能做什么 CI Diet 读取两样东西,然后对比: 1. 当前工作树里的工作流 YAML。 2. 可选:用只读的 gh api 调用拉取执行历史。 据此报告 runner 分钟花在哪里,以及哪些发现可以安全地变成一处小的 YAML 修改。每条发现都带证据等级(observed、inferred、static),每条规则还带覆盖状态。 | 规则 | 发现什么 | v0.1 中的方案 | | CD001 | 被更新提交取代的 PR 运行 | 补丁:concurrency | | CD002 | 重叠的触发器 | 仅解释 | | CD003 | 只改文档的变更上跑的重检查 | 仅解释 | | CD004 | 过大的矩阵 | 仅解释 | | CD005 | 没有 timeout-minutes 的任务 | 补丁:timeout-minutes | | CD008 | 过长的产物保留期 | 补丁:retention-days | 规则集刻意保持很小。一条规则只有在真实仓库上通过质量门槛后才会发布,因为吵闹的规则比缺失的规则更糟。CD003 和 CD005 已实现,但默认关闭,等通过那道门槛(见 ADR-13)。 它绝不做什么 - 不提交、不推送、不提 PR、不合并。 - 不运行工作流,不取消正在运行的任务,不删除产物或缓存。 - 不改分支保护。 - 在 GitHub 上没有写权限。历史访问是只读的;没有网络访问的仓库照样能做静态扫描。 - 不用 LLM 判断某个任务是否浪费。 - 补丁是对你现有 YAML 的字节区间编辑。你审查 diff,明确批准,再应用到工作树。 诚实的数字 成本输出保留四个独立的值,绝不混用: | 字段 | 含义 | | observedRunnerSeconds | 运行记录实际写的内容 | | modeledRoundedMinutes | 按任务计的分钟数,按计费方式向上取整 | | listPriceUsd | 按快照标价换算 | | actualBilledUsd | 在能证明之前始终为 null | 每份报告都嵌入它用到的价格快照(带内容哈希),所以数字以后可以复现。快照无法验证时,报告不发布。 安装 npm install --global dsh-ci-diet dsh plugin --profile web add dsh-ci-diet 插件会添加一条禁用的 loader 条目;只有想同步历史时才启用 networkEnabled。全局安装这个包是可选的:npx dsh-ci-diet 运行同一个命令行,DSH 插件只需要包在配置档里。发布标签在 GitHub 上;对应的 npm 版本是 0.2.0。 运行 ci-diet scan --cwd . # static scan, no network ci-diet sync --network # read GitHub Actions history for this checkout ci-diet plan --rule CD001 --workflow .github/workflows/ci.yml \ --claims ci-only,replace-safe ci-diet approve --plan <planId> --confirm <digest tail> ci-diet apply --plan <planId> # rewrites only the planned byte range ci-diet revert --change <changeId> # restores the backed-up bytes 发现项不符合补丁条件、覆盖范围不允许写入,或规则依赖的策略快照已过期时,plan 会拒绝写入。CD005 需要 --job 和 --minutes;CD008 需要 --job 和 --step,外加 --claims artifact-purpose:temporary,consumer-min-days:7。没有显式执行 approve 步骤,就不会提交、推送或应用任何改动。 读取报告 ci-diet report # text summary of the latest stored report ci-diet report --format html --out report.html ci-diet diagnose # explain job-name attribution and collection coverage ci-diet prune # drop expired reports, plans, and cache entries HTML 文件自包含:内联 CSS,不含脚本,不发起外部请求。它是只读的,所以审批仍留在命令行里,摘要与 nonce 校验也在那里。 diagnose 读取最近存储的历史,报告有多少 GitHub 作业名解析成了工作流键、哪些矩阵作业发生了展开、哪些采集上限导致某个覆盖维度不完整。它只读,可离线运行;--require-complete 在任一维度不完整时以 3 退出。 它还会列出建议性的缓存卫生提示:依赖安装没有缓存,以及字面量缓存键无法跟随 lockfile。冻结的契约里没有缓存规则 id,所以这些提示永远不会变成发现项或补丁。 发布 推送与 package.json 中版本匹配的 tag,会触发 .github/workflows/publish.yml: git tag v0.2.0 git push origin v0.2.0 工作流会把 tag 与 package.json 比对(node scripts/check-release-tag.mjs),运行与 CI 相同的检查,拒绝覆盖已发布的版本,然后用 npm 可信发布完成发布。它使用 GitHub OIDC(id-token: write),不用 npm token,所以包的 trusted publisher 必须为本仓库指定 publish.yml。 环境要求 - Node ^22.19.0 || >=24.0.0 - gh 命令行,可选,仅用于执行历史 - DSH >=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.3.0-0,可选,仅用于插件工具 开发 bun install node scripts/test-core.mjs node scripts/gen-types.mjs --check node scripts/sync-contracts.mjs --check bun run typecheck bun run lint bun run test:docs 用 Node 跑测试,这样发布的入口点保持 Node 兼容;Bun 只用来管理依赖。 目录结构 src/core workflow parsing, rules, savings, patch engine src/adapters github, git, storage src/dsh host and client plugin code src/cli command line entry src/shared i18n 和小型共享辅助函数 contracts JSON Schema,从冻结的设计包导入 examples 示例记录和评估向量 docs/spec 规范性产品规格 scripts 契约和文档检查 tests/unit 无需网络的快速检查 语言 英语是默认语言,也是消息键的权威来源。命令行、HTML 报告和 DSH 工具文本提供英语、韩语、简体中文、印地语、西班牙语和法语版本;每份词典都完整,因此缺失键会报类型错误。区域标签按语言解析(hi-IN、es-MX、fr-CA),非简体中文的中文变体回退到英语。 语言选择顺序:显式 --lang,然后是 DSH 区域偏好,然后是 LC_ALL/LC_MESSAGES/LANG,最后是英语。报告以英语存储,仅在显示时翻译:规则 id、错误码、枚举值、路径、摘要和数字保持不翻译,HTML 报告把 lang 属性设为选定的区域。DSH 工具描述在插件加载时捕获,所以更改 DSH 语言偏好需要重新加载。公开文档为英语,另有韩语 README 镜像。 文档 - 规格:docs/spec/README.md - 规则:docs/spec/rules.md - 成本模型:docs/spec/cost-model.md - 补丁模型:docs/spec/patch-model.md - 存储与错误:docs/spec/storage.md - 决策:docs/spec/decisions.md - 测量:docs/spikes/a0a-rules.md - 插件与命令行指南:docs/guide/plugin.md - 契约来源:contracts/UPSTREAM.md - 韩语:README.ko.md 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
0disoft/dsh-ci-diet
找出浪费的 Actions 运行时间并生成小补丁
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。