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-docs-gate/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-docs-gate)<a href="https://agentmods.dev/skills/pacphi/agentic-kit/ak-docs-gate"><img src="https://agentmods.dev/badge/skills/pacphi/agentic-kit/ak-docs-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/pacphi/agentic-kit/ak-docs-gate"><img src="https://agentmods.dev/badge/skills/pacphi/agentic-kit/ak-docs-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.00067 | $0.01438 |
| Opus 5.5 | $0.00027 | $0.00575 |
| Sonnet 5.5 | $0.00013 | $0.00288 |
| Haiku 4.5 | $0.00007 | $0.00144 |
Grade A, and why
ak-docs-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 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 — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Docs gate
When to use
A code or docs change is about to be called done, or the maintainer asks for the docs gate. The gate has two halves: the layout rules, which a test enforces, and alignment, which only reading can check.
Preflight
git branch --show-current,git status --shortandgit worktree list. Work in the checkout this session owns; never write to a checkout another session uses. Never runpnpmin a worktree: usenode scripts/run-tests.mjsandnode_modules/.bin/*.git diff --name-only main...HEADplus uncommitted files: the change under review. If there is no change and no named plan, stop and ask what to check.
The rules (AGENTS.md and CLAUDE.md, "Documentation layout")
- Markdown file names are lower case. Only
README.md,CLAUDE.md,AGENTS.mdandSKILL.mdkeep capitals. - Never create a folder under
docs/. Plans go todocs/plans/YYYY-MM-DD-<feature>.md, specs todocs/plans/YYYY-MM-DD-<topic>-design.md, neverdocs/superpowers/. Dated audits and evidence go straight todocs/archive/; dormant proposals go todocs/proposals/. - Never move an ADR. Nothing under
docs/adr/is archived, renamed or deleted. - Top-level
docs/*.mdfiles are living guides. Each is listed indocs/README.mdand carries current state only. History stays in ADRs. A retired command gets no alias and no hint in a guide; the old-to-new mapping goes in the PR body and release notes only. docs/plans/README.mddefines the## Statussection every plan or spec carries: Active, Blocked, Superseded, or Done, pending archive.
Steps
- Layout:
node scripts/run-tests.mjs focus tests/kit/docs-layout.test.mjs. Each failure names the file and the fix (layoutProblemsinscripts/docs-layout.mjsis the source of the rules; it has no CLI). A fail is a FAIL. Do not edit the test or the script to make it pass. - Alignment: for each changed behavior (command, flag, path, setting, output, default), search the
guides, README, AGENTS.md and the packaged templates for the old and new wording
(
git grep -non the literal). Update each doc the change touches so it states the new current state only. A code change is not complete until the docs it touches are aligned; list the docs checked, even when none needed edits. - New or renamed guide: it is listed in
docs/README.mdin the same change. - ADRs: if an ADR describes behavior the change alters, do not edit it. Name the ADR and the claim, and ask whether to update its status and date. Edit only after a yes.
- Plans and specs: read the
## Statusof each file indocs/plans/. For a "Done, pending archive" file (or one the maintainer names), check it is not still cited by name from a live doc (git grep -n <file name>; a Superseded file stays while cited). Then propose the move:- Write a map file OUTSIDE the repository (for example in the scratchpad): one row per file,
the source path, a tab, the archive path. A plan
docs/plans/<date>-<topic>.mdbecomesdocs/archive/<date>-plan-<topic>.md, and a specdocs/plans/<date>-<topic>-design.mdbecomesdocs/archive/<date>-design-<topic>.md: the name isYYYY-MM[-DD]-<origin>-<topic>.<ext>, with the origins under "Naming convention" indocs/archive/README.md. The destination must not exist. - Preview:
node scripts/docs-relocate.mjs --map <map file> --mentions --dry-run. It writes nothing. It prints each path mention it would rewrite, a count of the Markdown links it would rewrite and in how many files, and links that are already broken.--barealso rewrites bare file names; use it only if the dry run shows it is needed. - Show the maintainer the rows and the dry-run output, and ask for a yes that names the files. A move is a write that rewrites links in other files; a general permission is not a yes.
- After the yes, run the same command without
--dry-run, then add one row per file todocs/archive/README.md(see its existing rows for the format). Re-run step 1. - Re-read
git status --shortandgit diff --stat: only the named moves, link rewrites and the index rows may appear. Report anything else.
- Write a map file OUTSIDE the repository (for example in the scratchpad): one row per file,
the source path, a tab, the archive path. A plan
- Markdown lint on the touched files:
node_modules/.bin/markdownlint <files>. This is the worktree form ofpnpm run lint:md; use the pnpm script only in the main checkout, if it is yours.
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 · 84 lines · 67 tokens per session scan A 0efe03dd7d5d
ak-docs-gate is a skill published in the GitHub repository pacphi/agentic-kit (61 stars, last pushed yesterday), licensed MIT. It adds 67 tokens to every session and 1,438 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
docs-governance
Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references. Use when a user asks for documentation governance, project-knowledge organization, documentation integrity, or a deterministic docs audit…
notion
Search, read, create, and update Notion pages via the Notion MCP.
parallel-feature-development
Coordinate parallel feature development with file ownership strategies, conflict avoidance rules, and integration patterns for multi-agent implementation. Use this skill when decomposing a large feature into independent work streams, when two or more agents need to implement different layers of the same system…
meeting-action-items
Turn meeting notes into cited decisions, owners, tickets.
create-stories
Breaks one epic into implementable stories with acceptance criteria. Use when the user wants stories for an epic or the next batch of work to build. Not for turning the whole design into epics.
story-readiness
Checks whether a story is ready to implement: clear acceptance criteria, no open questions, valid ADR and dependencies. Use when the user asks if a story, or the sprint's stories, are ready to start or build.