关于 decodie-flag-stale
Decodie Flag Stale 是面向 CI 的模式,用 Git 文件名变更检查 `.decodie/index.json` 中已验证条目,并将受影响条目标记为过期。它不读取源文件,也不重新计算锚点哈希。
主要功能
- 01将源文件名与 Git 变更比对
- 02将变更影响的条目标记为过期
- 03仅更新 `.decodie/index.json`
- 04跳过未验证或缺少源文件的条目
- 05不重新计算锚点哈希
适用场景
- 01标记受文件变更影响的已验证条目
- 02在 CI 中执行轻量过期检查
- 03查看过期和未验证条目数量
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ owenbush/ decodie-skill --skill decodie-flag-stale安装后在 Claude Code 中输入/decodie-flag-stale确认已加载。
详细介绍
Decodie — 标记过期模式
verify 模式的快速、适用于 CI 的替代方案。对于每个包含 verified_sha 的条目,检查其源文件自该 SHA 以来是否有更改,并将有更改的条目标记为 stale: true。不会读取源文件或重新计算锚点哈希——只会将文件名与 git 历史进行差异比较。
此模式仅修改 .decodie/index.json。
激活
不接受任何参数。始终针对完整索引运行。
设置
- 确认
.decodie/存在。如果不存在:显示“未找到.decodie/目录——无需检查。”然后停止。 - 确认这是 git 仓库:
如果不是:显示“这不是 git 仓库——git rev-parse --git-dirflag-stale需要 git 历史。请改为运行 verify 模式。”然后停止。 - 读取
.decodie/index.json。如果为空:显示“没有需要检查的条目。”然后停止。
检测流程
对每个条目:
- **跳过没有
verified_sha的条目。**将其报告为unverified。 - 跳过没有
sources的条目(且没有references[].file可作为备用)。将其报告为no-sources。 - 计算已更改的文件:
如果 git 中不存在该 SHA(历史已重写),则将其视为过期。git diff --name-only <verified_sha>..HEAD - 比较已更改的文件与条目的源文件。如果有任何匹配,则该条目已过期。
- 更新:
- 新近过期 → 设置
stale: true。保持verified_sha不变。 - 已过期 → 不作更改(仍计入统计)。
- 差异中没有源文件 → 保持
stale原样。不要将过期状态改回未过期——只有 verify 模式可以执行此操作。
- 新近过期 → 设置
将更新写回 index.json。
报告
Decodie flag-stale
Newly stale: N entries
Already stale: M entries
Fresh: F entries
Unverified: U entries (no verified_sha -- run verify mode)
No sources: K entries
如果有新近过期的条目,请列出:
Newly stale:
- entry-1711540000-a1b2 -- src/lib/foo.ts
- entry-1711540123-c3d4 -- src/lib/bar.ts, src/lib/baz.ts
重要说明
- **单向标记。**只会将
stale设为true。清除标记需要使用 verify 模式。 - **不读取源文件。**完全基于
git diff --name-only。因此它足够快,可以用于 CI。 - **没有退出代码策略。**过期条目是否会阻止 PR,取决于各个仓库的决定。
- **不会重写 git 历史。**只执行只读 git 命令。
评论
支持 Markdown