Borrowing it
Nothing to install: this file belongs to artyomsv/quil. 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/artyomsv/quil/master/.claude/skills/verify/SKILL.mdgit clone --depth 1 https://github.com/artyomsv/quilWrote 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/artyomsv/quil/verify)<a href="https://agentmods.dev/skills/artyomsv/quil/verify"><img src="https://agentmods.dev/badge/skills/artyomsv/quil/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/artyomsv/quil/verify"><img src="https://agentmods.dev/badge/skills/artyomsv/quil/verify.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 5 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Tool Misuse · line 45 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
- high Tool Misuse · line 45 Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.Fix: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.
- medium MCP Rug Pull · line 15 Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.Fix: Pin the image: image:tag or image@sha256:abc123
- medium Tool Misuse · line 17 Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.Fix: Override unsafe defaults with secure settings (verify=True, auth required, restrictive permissions). Review and harden all tool configurations.
- low Tool Misuse · line 15 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
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.00027 | $0.00756 |
| Opus 5.5 | $0.00011 | $0.00302 |
| Sonnet 5.5 | $0.00005 | $0.00151 |
| Haiku 4.5 | $0.00003 | $0.00076 |
Grade A, and why
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 25d 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 — 55 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Verifying quil changes
Quil is a Go client-daemon TUI. Host has no Go/make — everything runs in Docker.
Build only when the user asks for a runtime check in the current conversation. A docker
go build is a local build (~/.claude/rules/no-local-builds.md); unit tests, vet and the
cross-compile are CI's job — read gh pr checks <n> instead.
Build (dev binaries, review-fix aware)
CRLF in shell scripts breaks ./scripts/dev.sh build; build directly:
MSYS_NO_PATHCONV=1 docker run --rm -v "$(pwd -W):/src" -v quil-gomod:/go/pkg/mod -w //src golang:1.25-alpine sh -c \
'VER=$(cat VERSION | tr -d "\r") && F="-s -w -X main.version=$VER-dev" && \
F_DEV="$F -X main.buildDevMode=true -X main.buildLogLevel=debug -X main.daemonBinary=quild-dev" && \
GOOS=windows GOARCH=amd64 go build -ldflags "$F_DEV" -o quil-dev.exe ./cmd/quil && \
GOOS=windows GOARCH=amd64 go build -ldflags "$F_DEV" -o quild-dev.exe ./cmd/quild && echo BUILD_OK'
Windows target needs the gitignored internal/pty/winconpty/bins/{conpty.dll,OpenConsole.exe}; copy them from the main checkout if absent.
Drive the daemon surface (headless)
The full-screen TUI can't be driven headlessly here; the daemon is a real socket surface. Never touch the production daemon (~/.quil) — always dev (.quil/ in the worktree, QUIL_HOME set).
Start the dev daemon in the background (it restores .quil/workspace.json):
QUIL_HOME="$(pwd -W)/.quil" ./quild-dev.exe --background & sleep 6
Observe the real spawn/resize decisions in .quil/quild.log. Scope to the current run — the log APPENDS, it does not rotate, so old runs' lines linger:
awk '/quild v.*starting/{f=1} f' .quil/quild.log | grep -E 'spawn: pane|resize pane|panic|ERROR'
Session-resume (escaper) verification: each restored claude pane must spawn with --resume <its-own-uuid> (distinct per pane), not the shared --continue fallback.
Stop the dev daemon (kills claude children too)
taskkill //PID $(cat .quil/quild.pid) //T //F ; rm -f .quil/quild.pid .quil/quild.sock
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.
- 25d ago Changed · +4 lines 06736981e1bf
- 1mo ago First seen · 51 lines · 27 tokens per session scan A a4a8ac7a3018
verify is a skill published in the GitHub repository artyomsv/quil (26 stars, last pushed yesterday), licensed Apache-2.0. It adds 27 tokens to every session and 756 once invoked, about $0.0001 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-08-30.
Other skills, from other repositories
go-127
What changed in Go 1.27 (released August 2026) and how it changes the way Go is written in pi-go. Use this skill when writing or reviewing Go that could use a 1.27 feature, when bumping the go directive in go.mod, when a build or test behaves differently after a toolchain upgrade, or when code-guidelines-go points…
bubbletea-testing
Use this skill whenever writing tests for Bubble Tea (charmbracelet/bubbletea) TUI applications in Go. Triggers include any mention of testing Bubble Tea models, teatest, golden file testing for TUIs, testing tea.Cmd or tea.Msg, snapshot testing terminal output, or writing tests for any Go CLI/TUI that uses the Elm…
check-linters-before-commit
Before any commit, run linters, vet, tests, and build verification; do not commit until checks pass.
write-tests
Writes a unit test for one Python function. Use when the user asks for tests of existing code; not for integration tests.
vite-plus-conventions
vite+ unified TypeScript toolchain conventions: the vp CLI for package/node management, oxlint/oxfmt, type-aware linting, vitest, rolldown/tsdown bundling, task caching, and migration. Load when configuring or reviewing a vite+ TypeScript toolchain.
ext-php-rs-bindings
ext-php-rs PHP 8.2+ extensions from a Rust core: phpclass/phpfunction, Zval conversion, PhpException mapping, loading, PHPUnit. Use when writing or reviewing ext-php-rs bindings.