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 chenweil/skillcaddy --skill spec-direction-gategit clone --depth 1 https://github.com/chenweil/skillcaddyWrote 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/chenweil/skillcaddy/spec-direction-gate)<a href="https://agentmods.dev/skills/chenweil/skillcaddy/spec-direction-gate"><img src="https://agentmods.dev/badge/skills/chenweil/skillcaddy/spec-direction-gate/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/chenweil/skillcaddy/spec-direction-gate"><img src="https://agentmods.dev/badge/skills/chenweil/skillcaddy/spec-direction-gate.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.00099 | $0.01704 |
| Opus 5.5 | $0.00040 | $0.00682 |
| Sonnet 5.5 | $0.00020 | $0.00341 |
| Haiku 4.5 | $0.00010 | $0.00170 |
Grade A, and why
spec-direction-gate 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 28d 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 — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
方向确认关卡(B)
一条流程只有在"方向"这一格真的会挡住它的时候才算成立。这个技能就是那一格。
输入是 specs/<id>/TECH.md 的草稿,输出是写回 TECH.md 的批准状态记录。中间没有任何自动放行的路径。
何时使用
TECH.md草稿已写完,尚未开始实施- 需要在实施前留下"谁在什么时候批准了方向"的可核验记录
- 复盘时需要确认某个实施是否真的经过方向批准,而不是默认通过
何时不使用
- 纯 UI 改动、单文件修复等低复杂度变更,
TECH.md本身就不必产出 - 方向已经单独确认过、这次只是修订若干小节时,改用下面的"增量修订"路径
硬性约束
- 两次确认,不合并。 先确认方向,确认通过之后才确认内容。合并这一步会破坏关卡:把大纲和方向放在同一次确认里,人会锚定在已经看到的具体大纲上,而不再重新考虑它上位的那个问题。
- 拒绝语义。 没有人在场就停止并报告这个技能需要人,不要"先按草稿往下走,回头再确认"。
- 批准要落盘。 两次确认的结论写进
TECH.md,不只留在对话里。实施阶段的验收要能读到"批准后文档仍存活"的证据。 - 批准的是方向,不是逐字内容。 方向确认通过后,作者仍可改实现细节;实施者不得改方向。
流程
第 0 步:确认在场
先确认当前是有人可以回答的交互会话。
不是交互式会话时:停下并报告"这个关卡需要人在场确认方向",然后结束。不要用默认值代替确认,也不要因为草稿看起来已经足够好就跳过。
第 1 步:确认方向
读 TECH.md,然后只向人提出方向层面的问题,不要展示具体大纲或章节结构:
- 这份文档要解决的问题,和仓库当前状态对得上吗
- 选定的方案,是这几个候选里最合适的那个吗
- 哪些明确不在这次范围内
- 还有什么上位问题,是这份文档答不了的
把问题一次问完,然后等回答。
方向被拒时的处理:记录被拒的方向和原因,停止。不要改写成新的大纲再问第二遍——那等于把第一次确认作废。修改草稿后必须从第 1 步重来。
第 2 步:确认内容
只有在第 1 步通过后才进入这一步。展示文档的实际章节和每节承担的内容,然后等确认。
内容被拒时:按意见修订,同样从第 1 步重新开始(内容修订可能改变方向)。
第 3 步:写回批准状态
两次都通过后,把结论追加到 TECH.md 末尾:
## Approval
- 方向确认:通过 / 拒绝(时间:YYYY-MM-DD HH:MM CST,确认人:__)
- 内容确认:通过 / 拒绝(时间:YYYY-MM-DD HH:MM CST,确认人:__)
- 本次确认的范围:仅方向与结构。实现细节可由作者调整,方向变更须重新过本关卡。
批准状态是显式记录,不是推断依据。没有这段内容,验收阶段必须按"未批准"处理。
写完用同目录的校验脚本自查:
python3 check-approval.py specs/<id>/TECH.md
退出码 0 = 已批准可进入实施;1 = 挡住(缺 ## Approval、结论仍是 通过 / 拒绝 模板、缺时间戳、方向被拒、结论无法判定);2 = 用法错误。
模板里的 通过 / 拒绝 必须二选一写死。两个候选都留着会被判为未批准——这是有意的,模板没填就等于没确认。
实施前的机械检查
上面的约束是文字。文字挡不住无人值守运行,所以本技能附带一个退出码校验:
python3 check-approval.py specs/<id>/TECH.md
进入实施之前跑一次,退出码非 0 就不要开始写代码。脚本只读不写,不会改文档。
被挡住的常见情况:
- 文件不存在
- 没有
## Approval段 - 有
## Approval段但里面没有方向确认结论(摄入技能产出的就是这个状态) - 结论仍是
通过 / 拒绝模板 - 通过但没写时间戳(批准必须可核验到"谁在什么时候批准")
- 方向被明确拒绝
- 既不是通过也不是拒绝——按未批准处理
## Approval 之后如果还有别的章节,脚本只读到下一个章节标题为止;把"方向确认:通过"藏在后面的章节里不算数。## Source draft 之类段落里出现的"通过"也不会被误读成批准。
增量修订路径
只改了措辞、补充了行级引用、调整了不影响方向的实施顺序时,不必重走两次确认。在现有的 ## Approval 段下面追加一条修订记录,写明改了什么、为什么不需要重新确认方向。
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.
- 28d ago First seen · 120 lines · 99 tokens per session scan A eaa7cf2333d7
spec-direction-gate is a skill published in the GitHub repository chenweil/skillcaddy (29 stars, last pushed 5d ago), licensed MIT. It adds 99 tokens to every session and 1,704 once invoked, about $0.0004 per session on Opus 5.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-10-01.
Other skills, from other repositories
exploratory-data-analysis
Performs bounded, local exploratory analysis of explicitly supported scientific files. Supports redacted CSV/TSV/JSON profiles; optional NumPy, HDF5, FASTA/FASTQ, and basic image metadata inspection; missingness/leakage audits; outlier and transformation sensitivity; and rigorous EDA report scaffolds. Other domain…
webhook-management
Configure and validate CCAM webhook targets across supported chat, incident, automation, and generic providers. Use when listing provider requirements, creating or updating a target, scoping it to alert rules, sending a test notification, reviewing delivery history, or deleting a target.
design-review
Review a web app or page for visual design quality — layout, typography, spacing, colour, hierarchy, consistency, interaction patterns, and responsive behaviour. Not a UX audit (that checks usability) — this checks whether it looks professional and polished. Produces a design findings report with screenshots.…
react-patterns
React 19 performance patterns and composition architecture for Vite + Cloudflare projects. 50+ rules ranked by impact — eliminating waterfalls, bundle optimisation, re-render prevention, composition over boolean props, server/client boundaries, and React 19 APIs. Use when writing, reviewing, or refactoring React…
render-3d-product-showcase
Assemble a premium 3D product-showcase ad from a config — four beat clips (an orbiting hero rotation, a macro push-in, a physics reveal, a typographic close) normalized to the chosen backdrop colour, hard-concatenated in order, closed on a deterministic Playwright brand end card, and mixed under one instrumental bed…
render-airdrop-carousel
Assemble a viral iOS "AirDrop" notification-carousel video ad (≈6–8s, 9:16) from a brand line plus 6–16 real product photos — a native AirDrop share-sheet card ("Brand would like to share a · Decline / Accept") springs up and its preview window CYCLES through the products, landing on a range/lineup payoff with an…