quil: Skill for Claude Code

.claude/skills/verify/SKILL.md

verify is a skill for Claude Code from artyomsv/quil. It costs 27 tokens per session (756 once invoked), scanned A, original, Apache-2.0.

Instructions for building and testing Quil, a Go client and daemon with a terminal interface. A daemon is a background process that exposes services while it runs.

In plain words
What is it for?
Building development binaries in Docker, starting a separate test daemon, exercising its socket interface, and checking that it responds correctly.
Why use it?
It provides a repeatable way to check that changes work through Quil's development socket without affecting the production daemon.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths.

This is artyomsv/quil's own configuration. It tells Claude Code how to work on quil itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything quil configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is GOOS=windows GOARCH=amd64 go build -ldflags "$F_DEV" -o quil-dev.exe ./cmd/quil && \.

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/artyomsv/quil/master/.claude/skills/verify/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/artyomsv/quil

Made for: Claude Code.

Wrote 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.

agentmods badge for verify

README.md
[![agentmods](https://agentmods.dev/badge/skills/artyomsv/quil/verify/github.svg)](https://agentmods.dev/skills/artyomsv/quil/verify)
Your own site
<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.

agentmods 80×15 button for verify

Your own site · 80×15
<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>
Per session 27 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 756 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
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.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 25d ago against content hash 06736981e1bf, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

.claude/skills/verify/SKILL.md · 55 lines

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

Read the full file on GitHub · 55 lines

Changes

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.

  1. 25d ago Changed · +4 lines 06736981e1bf
  2. 1mo ago First seen · 51 lines · 27 tokens per session scan A a4a8ac7a3018

Subscribe to this mod's changes

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.

Related

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…

dimetron/pi-go · 177 tokens

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…

dimetron/pi-go · 139 tokens

check-linters-before-commit

Before any commit, run linters, vet, tests, and build verification; do not commit until checks pass.

dimetron/pi-go · 30 tokens

write-tests

Writes a unit test for one Python function. Use when the user asks for tests of existing code; not for integration tests.

Goldziher/ai-rulez · 28 tokens

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.

Goldziher/ai-rulez · 64 tokens

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.

Goldziher/ai-rulez · 54 tokens