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 midFang/ai-agent-skills-workflow --skill feature-donegit clone --depth 1 https://github.com/midFang/ai-agent-skills-workflowWrote 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/midfang/ai-agent-skills-workflow/feature-done)<a href="https://agentmods.dev/skills/midfang/ai-agent-skills-workflow/feature-done"><img src="https://agentmods.dev/badge/skills/midfang/ai-agent-skills-workflow/feature-done/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/midfang/ai-agent-skills-workflow/feature-done"><img src="https://agentmods.dev/badge/skills/midfang/ai-agent-skills-workflow/feature-done.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.00127 | $0.01097 |
| Opus 5 | $0.00063 | $0.00549 |
| Sonnet 5 | $0.00025 | $0.00219 |
| Haiku 4.5 | $0.00013 | $0.00110 |
Grade A, and why
feature-done 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 9d 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 — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Feature Done
目的
处理 feature 开发后半段:
用户人工验证通过(或用户触发 `$feature-done` 并明确给出 feature 与目标分支)
-> 标记 human_verified
-> 合并到用户指定目标分支
-> 标记 merged
-> 构建并安装目标分支 APK
-> 等用户做合并后验证
-> 标记 integration_verified
-> 删除 worktree
-> 标记 worktree_removed
阶段 A:验证通过并合并
若用户触发 $feature-done 并明确给出 feature 与目标分支,即视为该 feature 的待验证 APK 已人工验证通过,不再额外要求用户回复“验证通过”。
触发示例:
$feature-done FEAT-001 验证通过,合并到 main
如果用户没说目标分支,必须先问:
要把 FEAT-001 合并到哪个目标分支?
步骤:
- 读取
features/<版本>/feature_list.json中的 feature。 - 更新:
status=human_verified
- 更新 TASK 的用户验证记录。
- 合并前检查:
- feature worktree 没有未提交改动
- 目标分支由用户明确给出
- 执行合并的仓库不能有业务代码/配置类未提交改动
issues/**/*.md、issues/**/*.csv、features/**/*.md、features/**/*.csv、features/**/*.json这类流程文件允许有改动
- 切到目标分支。
- 默认执行:
- merge commit message 使用:
Merge <feature_id> feat: <中文需求描述或实现内容> - 中文描述优先取 spec 的“目标”,其次取 feature list 的
title/name/description。 - 示例:
git merge --no-ff -m "Merge FEAT-001 feat: 增加沉浸式写作模式" <feature-branch>
- merge commit message 使用:
- 合并成功后:
status=merged- 记录 merge commit
- 构建目标分支 APK,复制到:
features/<版本>/apks/<feature_id>-merged.apk
- 自动安装到手机:
- 多设备时询问 serial
adb install -r <merged-apk>
- TASK 记录合并、构建、安装结果。
- 不删除 worktree,等待用户做合并后验证。
阶段 B:合并后验证通过并清理
触发示例:
$feature-done FEAT-001 合并后验证通过,可以清理 worktree
步骤:
- 确认当前状态是
merged,或用户明确说明合并后验证通过。 - 更新:
status=integration_verified
- 检查 feature worktree 没有未提交改动。
- 删除 worktree:
git worktree remove <worktree_path>
- 默认尝试安全删除本地 feature 分支:
git branch -d <feature-branch>
- 更新:
status=worktree_removed
- TASK 记录清理结果。
安全规则
- 没有目标分支,不合并,先问用户。
- 未经用户人工验证通过,不合并;但用户触发
$feature-done并明确给出 feature 与目标分支时,视为已完成待验证 APK 的人工验证。 - 合并成功后自动构建并安装目标分支 APK,等待用户做合并后验证。
- 合并后未经用户确认,不删除 worktree。
- 执行合并的仓库允许存在
issues/**/*.md、issues/**/*.csv、features/**/*.md、features/**/*.csv、features/**/*.json流程文件改动;其它未提交改动会阻止合并。 - 不使用
git branch -D、git reset --hard等破坏性命令,除非用户明确要求。
What ships with it
1 file 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.
- 9d ago First seen · 108 lines · 127 tokens per session scan A 7b1bb053c3f0
feature-done is a skill published in the GitHub repository midFang/ai-agent-skills-workflow (2 stars, last pushed 2mo ago), licensed MIT. It adds 127 tokens to every session and 1,097 once invoked, about $0.0006 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-08-31.
Other skills, from other repositories
axiom-shipping
Use when preparing ANY app for submission, handling App Store rejections, writing appeals, or managing App Store Connect. Covers submission checklists, rejection troubleshooting, metadata requirements, privacy manifests, age ratings, export compliance.
mobiai-create-pr
YOU MUST use this before ANY git push, branch push to remote, merge, or PR creation — regardless of phrasing or language. Covers all irreversible integration actions (committing, pushing, opening a PR, shipping finished work). Also triggers proactively after a fix when the user signals completion (still ask before…
mobiai-mobile-worktrees
You MUST use this before starting mobile work that needs isolation from the current workspace — new feature branches, parallel efforts, or any plan execution that should not contaminate the active tree. Do not create worktrees ad hoc; this skill enforces safe directory selection and verification.
mobiai-mobile-finishing-branch
You MUST use this once mobile implementation is finished and you are about to integrate the work — merging, pushing, opening a PR, or cleaning up the branch. Do not improvise the wrap-up; this skill gates verification, presents integration options, and handles cleanup.
asc-ad-hoc-distribution
Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside TestFlight, reconciling ad hoc profiles, publishing through caller-owned S3-compatible storage, or diagnosing a resumable private distribution run.
release-new-version
Use when the user wants to release a new Zafiro version — drafting bilingual release notes, deciding the next version number, bumping app/build.gradle.kts, tagging, and publishing to GitHub (main repo, optionally the Xposed repo).