Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add flanliulf/SpecLite --skill speclite-code-review-06-finalizergit clone --depth 1 https://github.com/flanliulf/SpecLiteWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/flanliulf/speclite/speclite-code-review-06-finalizer)<a href="https://agentmods.dev/skills/flanliulf/speclite/speclite-code-review-06-finalizer"><img src="https://agentmods.dev/badge/skills/flanliulf/speclite/speclite-code-review-06-finalizer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/flanliulf/speclite/speclite-code-review-06-finalizer"><img src="https://agentmods.dev/badge/skills/flanliulf/speclite/speclite-code-review-06-finalizer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00073 | $0.01940 |
| Opus 5 | $0.00036 | $0.00970 |
| Sonnet 5 | $0.00015 | $0.00388 |
| Haiku 4.5 | $0.00007 | $0.00194 |
Grade A, and why
speclite-code-review-06-finalizer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
[技能说明] Story 通过代码审查(CR Approved)后的收尾操作技能。一次性完成 Story 状态更新和流程文档同步,确保所有跟踪文件的状态一致性。是 Speclite CR 工作流的最终环节(承接 Speclite-cr-01 ~ 05 之后)。
[核心能力]
- CR 审批确认:读取最新一轮 CR 评估文件,验证 CR 结论确实为 Approved
- Completion Gate 验证:读取最新 story-completion gate report,确认结果为 PASS 或 PASS_EQUIVALENT 后才允许标记 Done
- Story 状态更新:将 Story 文件中的状态字段更新为 Done
- Sprint 状态同步:更新 {implementation_artifacts}/sprint-status.yaml 中对应 Story 的状态
- 工作流状态同步:更新 {planning_artifacts}/speclite-workflow-status.yaml 中对应 Story 的状态
- Epic 状态联动:检测所属 Epic 下所有 Story 是否均已 Done,如果是则提示用户是否同步更新 Epic 状态
- 防重复执行:检测 Story 是否已经是 Done 状态,避免重复操作
- 操作审计:输出完整的状态变更清单供用户确认
[执行流程]
路径约定和文件名格式以 references/cr-config.md 为准。
Step 1:定位 Story 和 CR 审查目录
- 接收用户指定的 Story 标识(Story 文件路径或 Story ID)
- 读取 `references/cr-config.md` 获取路径约定
- 按配置中的 Story 文件目录定位 Story 文件
- 按配置中的 Story ID 规则提取 `{story-id}`
- 按配置中的代码审查目录格式确定路径
- 生成数据:story-id、story-file-path、code-review-dir
Step 2:验证 CR 审批状态
- 按配置中的审查评估文件名格式,扫描 code-review-dir 下匹配的文件
- 找到 round 值最大的评估文件
- 读取该文件,确认 CR 结论为 Approved(查找"Approved"、"通过"等关键词)
- IF CR 结论不是 Approved:
- 立即停止,告知用户:"❌ 最新一轮 CR 评估结论不是 Approved,无法标记为 Done"
- 展示实际的 CR 结论内容
- 退出流程
- IF 找不到评估文件:
- 立即停止,告知用户:"❌ 未找到 CR 评估文件,请先完成代码审查流程"
- 退出流程
- 生成数据:cr-conclusion(CR 结论)、latest-evaluation-file
Step 3:验证 story-completion gate
- 按 `references/cr-config.md` 中的 Flow Gate 目录和文件名格式,读取 `{story-id}-story-completion-gate.md`
- 确认 gate result 为 `PASS` 或 `PASS_EQUIVALENT`
- IF gate report 缺失:
- 立即停止,告知用户:"❌ 未找到 story-completion gate report,请先运行 speclite-flow-gate mode=story-completion"
- 退出流程
- IF gate result 不是 `PASS` 或 `PASS_EQUIVALENT`:
- 立即停止,告知用户:"❌ story-completion gate 未通过,无法标记为 Done"
- 展示 gate result 和推荐下一步
- 退出流程
- 生成数据:story-completion-gate-result、story-completion-gate-file
Step 4:检查当前状态(防重复)
- 读取 Story 文件,检查当前状态字段
- IF 状态已经是 Done:
- 告知用户:"ℹ️ Story {story-id} 已经是 Done 状态,无需重复操作"
- 退出流程
- 生成数据:current-status
Step 5:更新 Story 文件状态
- 在 Story 文件中找到状态字段(如 `status:` 行)
- 将状态值更新为 `done`
- 生成数据:story-updated
Step 6:更新 sprint-status.yaml
- 按 `references/cr-config.md` 中的实现产物目录配置定位 sprint-status.yaml
- IF 文件不存在:
- 警告用户:"sprint-status.yaml 不存在,跳过此步骤"
- 跳到 Step 7
- 在 `development_status` 段中找到匹配当前 Story 的条目(通过 story-id 前缀匹配)
- 将该条目的状态值更新为 `done`
- 更新 `last_updated` 时间戳为当前时间(格式:YYYY-MM-DD HH:MM)
- 生成数据:sprint-status-updated
Step 7:更新 speclite-workflow-status.yaml
- 按 `references/cr-config.md` 中的规划产物目录配置定位 speclite-workflow-status.yaml
- IF 文件不存在:
- 警告用户:"speclite-workflow-status.yaml 不存在,跳过此步骤"
- 跳到 Step 8
- 找到匹配当前 Story 的条目
- 将该条目的状态值更新为 `done`
- 更新文件的时间戳字段为当前时间
- 生成数据:workflow-status-updated
Step 8:检测 Epic 完成状态
- 从 story-id 中提取 epic 编号(如 story-id 为 1-2,则 epic 编号为 1)
- 在 sprint-status.yaml 的 `development_status` 中查找所有以该 epic 编号开头的 Story 条目
- 检查这些 Story 是否全部为 `done` 状态
- IF 全部 Done:
- 提示用户:"Epic {epic-num} 下所有 Story 已全部完成。先运行 speclite-flow-gate mode=epic-completion 生成 Epic 实现证据摘要,再决定是否将 Epic 状态更新为 done。"
- 等待用户确认后再执行 Epic 状态更新;若用户要求更新 Epic 状态,必须先确认 epic-completion gate 为 `PASS` 或 `PASS_EQUIVALENT`
- IF 未全部 Done:
- 展示剩余未完成的 Story 列表
Step 9:输出变更总结
- 展示完整的操作清单:
```
✅ CR Done 收尾操作完成!
📋 变更清单:
- Story 文件:{story-file-path} → status: done
- sprint-status.yaml:{story-key} → done
- speclite-workflow-status.yaml:{story-key} → done
- Epic 状态:{epic-status-info}
📌 CR 信息:
- 最终 CR 轮次:Round {n}
- CR 结论:Approved
- 评估文件:{latest-evaluation-file}
- Story completion gate:{story-completion-gate-result} ({story-completion-gate-file})
```
- 完成后返回:"✅ Story {story-id} 已标记为 Done,所有流程文档已同步更新"
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 130 lines · 73 tokens per session scan A ccaee7147e5b
speclite-code-review-06-finalizer is a skill published in the GitHub repository flanliulf/SpecLite (4 stars, last pushed 2mo ago), licensed MIT. It adds 73 tokens to every session and 1,940 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
project-init
Interview-based project setup — generates CLAUDE.md, ROADMAP, .gitignore, .env.example from scratch. Use when: user says '/project-init', 'new project', 'project creation', 'project setup', 'project setup', 'new project', 'create project'. NOT for AI agent/harness configuration (use setup for that). Conversational…
project-overview
Use when the user wants a deterministic cross-project status map generated from registered projects' session handoffs. Triggers: '/project-overview', 'project map', 'overall status'. Reads /.claude/projects-registry.md (opt-in list), parses each project's memory/session-handoff-LATEST.md state-snapshot v1 block…
great_cto
Use when the CTO describes a feature, task, or project goal. Orchestrates the full SDLC pipeline automatically based on project type.
opportunity-solution-tree
Build an Opportunity Solution Tree (OST) to structure product discovery — map a desired outcome to customer opportunities, possible solutions, and experiments. Based on Teresa Torres' Continuous Discovery Habits. Use when the team is unclear what to build next, when multiple opportunities compete, or before writing a…
done-blocked
Reusable reporting contract for any agent that hands work back to the pipeline. Forces ONE of two terminal statuses (DONE or BLOCKED) with a specific evidence shape. Stops vague "probably finished" and "kind of stuck" verdicts.
outcome-roadmap
Transform an output-focused roadmap (feature list) into an outcome-focused one. Rewrites initiatives as outcome statements reflecting user and business impact. Use when a roadmap lists features instead of results, when making a roadmap more strategic, or when communicating what success looks like vs what will be built.