Borrowing it
Nothing to install: this file belongs to pacphi/agentic-kit. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/pacphi/agentic-kit/main/.agents/skills/ak-verify/SKILL.mdgit clone --depth 1 https://github.com/pacphi/agentic-kitWrote 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/pacphi/agentic-kit/ak-verify)<a href="https://agentmods.dev/skills/pacphi/agentic-kit/ak-verify"><img src="https://agentmods.dev/badge/skills/pacphi/agentic-kit/ak-verify/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/pacphi/agentic-kit/ak-verify"><img src="https://agentmods.dev/badge/skills/pacphi/agentic-kit/ak-verify.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.00078 | $0.01921 |
| Opus 5.5 | $0.00031 | $0.00768 |
| Sonnet 5.5 | $0.00016 | $0.00384 |
| Haiku 4.5 | $0.00008 | $0.00192 |
Grade A, and why
ak-verify 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 23d 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 — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Verify before completion
When to use
Work in this repository is about to be called finished, committed or handed to review. Run this first and report from it; a claim of "done" without this list is not a claim.
Preflight
git rev-parse --show-toplevel,git branch --show-currentandgit status --short. Note the commit under test. Rungit worktree list: if this checkout is one another session uses (its branch is checked out there, or the maintainer says so), run read-only checks only and say so.- Check the environment:
env | grep -E '^(FORCE_COLOR|AQE_EMBEDDER_|XDG_)'. The runner deletesFORCE_COLORitself, but notAQE_EMBEDDER_*orXDG_*, and checks outside the runner get none of that. Before any command below, unsetFORCE_COLOR, unsetAQE_EMBEDDER_*, and unset every relativeXDG_*value.env -utakes literal names, not globs: take each name from theenv | grepoutput and pass it as its own-u(for exampleenv -u FORCE_COLOR -u AQE_EMBEDDER_X -u XDG_STATE_HOME <command>). An XDG value is relative when it does not start with/. Also note which keys ofINHERITED_STATE_KEYSintests/kit/helpers/home-sandbox.mjsare set (CLAUDE_FLOW_DB_PATHcan point at the real Ruflo store); step 5 unsets them for anything that runsak. - In a worktree,
node_modulesmust be a link to the main checkout's (ls -ld node_modules). If it is missing, stop and ask the maintainer to set it up; do not create it or install anything. Mark every check that needs it skipped, with that reason.
Steps
- Focused tests first, for the files the change touches:
node scripts/run-tests.mjs focus <test files>. Addtests/kit/docs-layout.test.mjswhen any Markdown ordocs/file changed;scripts/docs-layout.mjsis a module, not a command. That test is only the layout half of the docs gate: for a change to code or docs, finish withak-docs-gatefor the alignment half. - Static checks, each reported on its own. In a main checkout use
pnpm run typecheck,pnpm run lint,pnpm run lint:cc,pnpm run lint:mdandpnpm run build. In a worktree run the same checks withoutpnpm:node_modules/.bin/tsc -p tsconfig.json,node_modules/.bin/eslint .,node_modules/.bin/eslint src bin --rule 'complexity: [2, 50]',node_modules/.bin/markdownlintwith the globs of thelint:mdscript inpackage.json, andnode scripts/build-check.mjs. For a change to docs, also runlint:links:internal(alychee --offlinescript inpackage.json); with nolychee, it is skipped. - Full unit suite for a non-trivial change:
node scripts/run-tests.mjs unit(whatpnpm testruns). The runner fingerprints real user state before and after. Its exit code is the failing command's own code first, otherwise 2 (unsafe temp base such as one inside a git repository or the home directory, failed run-owner or hold setup, or bad usage), 3 (real user state changed) or 4 (temporary folders left behind); each lists the paths. An exit 3 or 4 is a FAIL reported with the listed paths, not retried or cleaned up. "Concurrent writers" lines are files a live Claude Code, Ruflo or AQE session wrote during the run; they do not fail a local run (CI andAK_TRIPWIRE_STRICT=1do fail on them). Report them as a note, and never as a pass over a nonzero exit. - Dashboard or UI changes add
node scripts/run-tests.mjs ui(pnpm run test:uiin a main checkout) and a screenshot of the changed view, saved under the scratchpad or a disposable folder, never in the repository. It passes when the view renders the change without errors. Needs Chrome; if it cannot launch, it is skipped. - Anything that runs
akfor real uses a disposable home. Create the folder outside any git repository and not directly under~:mktemp -d "${TMPDIR:-/tmp}/ak-verify.XXXXXX"makes it (the template form is needed because macOSmktemp -dignoresTMPDIRwithout one), thenmkdir <folder>/home. ReadINHERITED_STATE_KEYSintests/kit/helpers/home-sandbox.mjs: the keys that point a child at real per-user state,CLAUDE_FLOW_DB_PATHamong them.HOMEis set, not unset; pass every key in that list other thanHOMEas its own-u(unsetting a key that is not set is harmless). Run asenv -u XDG_CONFIG_HOME -u XDG_STATE_HOME -u XDG_DATA_HOME -u XDG_CACHE_HOME -u <each other key> HOME=<folder>/home <command>. Run<command>from a folder inside the disposable folder, never from a checkout:akwrites into the project it runs in (.claude,.mcp.json,CLAUDE.md,AGENTS.md) whateverHOMEis. Somkdir <folder>/proj, rungit initin that subfolder andcdinto it first; the disposable folder itself stays outside any repository. Only the assertion below runs from the repository root, since it readstests/kit/helpers/home-sandbox.mjs. Before anyakwrite, assertHOMEand every XDG path resolve under the disposable folder: from the repository root, with that sameenvprefix, runnode --input-type=module -e "import os from 'node:os';import {INHERITED_STATE_KEYS as K} from './tests/kit/helpers/home-sandbox.mjs';console.log(os.homedir());for(const k of K)console.log(k,process.env[k]??'(unset)')". Stop ifos.homedir()orHOMEis outside the folder or any other key prints a value. Leave the folder for the maintainer to remove by its literal path. - When a check fails, read the failure, fix the cause in code you own and rerun that check and every check after it. Never edit a test to make it pass or loosen a threshold.
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.
- 23d ago First seen · 99 lines · 78 tokens per session scan A 436af7ed0186
ak-verify is a skill published in the GitHub repository pacphi/agentic-kit (61 stars, last pushed yesterday), licensed MIT. It adds 78 tokens to every session and 1,921 once invoked, about $0.0003 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-05.
Other skills, from other repositories
tdd
Discipline skill — TDD red-green-refactor cycle. Use when implementing any feature or bugfix, before writing implementation code.
qa-cycle
QA + bugfix cycle until it passes.
systematic-debugging
4-phase root cause debugging: understand bugs before fixing.
react-patterns
React 18/19 patterns including hooks discipline, server/client component boundaries, Suspense + error boundaries, form actions, data fetching, state management decision trees, and accessibility-first composition. Use when writing or reviewing React components.
golang-testing
Go testing best practices including table-driven tests, test helpers, benchmarking, race detection, coverage analysis, and integration testing patterns. Use when writing or improving Go tests.
verification-loop
A comprehensive verification system for Claude Code sessions. Use when verifying a Claude Code session's work before claiming it is complete.