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 harebeats/cannonball --skill kit-montargit clone --depth 1 https://github.com/harebeats/cannonballWrote 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/harebeats/cannonball/kit-montar)<a href="https://agentmods.dev/skills/harebeats/cannonball/kit-montar"><img src="https://agentmods.dev/badge/skills/harebeats/cannonball/kit-montar/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/harebeats/cannonball/kit-montar"><img src="https://agentmods.dev/badge/skills/harebeats/cannonball/kit-montar.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
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 →
- medium Rogue Agent · line 17 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium MCP Rug Pull · line 547 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.00245 | $0.12292 |
| Opus 5 | $0.00122 | $0.06146 |
| Sonnet 5 | $0.00049 | $0.02458 |
| Haiku 4.5 | $0.00024 | $0.01229 |
Grade A, and why
kit-montar 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 3d 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 — 960 lines — stays where its author put it; the contents beside it link to each section on GitHub.
kit-montar — site novo a partir do acervo
Antes de qualquer comando: resolva o SKILL_DIR
Todo comando abaixo roda um script que viaja junto desta skill, em
SKILL_DIR/scripts/. Defina SKILL_DIR como o caminho absoluto da pasta que
contém ESTE SKILL.md que você acabou de ler — o seu harness informou esse caminho
no resultado da leitura. Funciona em qualquer hospedeiro, sem depender de variável
de ambiente de nenhum agente específico:
~/.claude/plugins/cache/cannonball/cannonball/<v>/skills/<nome>/SKILL.md
~/.codex/skills/<nome>/SKILL.md
~/.gemini/skills/<nome>/SKILL.md
~/.agents/skills/<nome>/SKILL.md
Em todos, SKILL_DIR é a pasta do SKILL.md, e SKILL_DIR/scripts/ está ao lado.
A regra que governa esta skill: o acervo vem primeiro. Gerar do zero é o último recurso, não o primeiro — o que está no acervo já rodou, código novo é aposta.
0. Veja o que o acervo tem hoje
O acervo é do usuário e muda a cada ingestão. Antes de qualquer pergunta:
python "${SKILL_DIR}/scripts/perfil.py"
Ele diz quantas peças existem, de que famílias, em que stacks, que setores cobre e onde estão as lacunas. É o que decide se esta conversa é uma montagem a partir do acervo ou uma construção do zero.
Ele termina com um bloco POR ONDE SEGUIR que muda conforme o acervo. Numa instalação nova ele manda vincular a pasta antes de qualquer ingestão — repasse ao usuário, porque esquecer isso deixa o material dele no lugar errado:
python "${SKILL_DIR}/scripts/vincular.py" --para "<pasta do usuário>"
Acervo vazio não invalida a skill. O fluxo continua igual — briefing, cor,
tipografia, hero, plano, construção — só que sem peça para reaproveitar. No fim,
ofereça guardar com /kit-ingerir: a próxima montagem do mesmo setor já começa
adiantada. É assim que o acervo cresce, e cada peça guardada melhora todas as skills
de uma vez.
0.1. Pergunte a stack — sempre, e antes de escolher peça
A stack decide quais peças são elegíveis e se haverá conversão. Perguntar depois de escolher significa refazer o trabalho.
What ships with it
52 files 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.
- references/fundamentos-visuais.md 19 KB
- references/getlayers.md 8.5 KB
- references/higgsfield.md 4.6 KB
- references/motionsites-genjutsu-designdna.md 7.0 KB
- references/stack-animacao.md 7.1 KB
- references/stack-webgl-react.md 13 KB
- scripts/armadilhas.py 4.8 KB runs code
- scripts/assets.py 4.8 KB runs code
- scripts/buscar.py 9.4 KB runs code
- scripts/caminhos.py 6.4 KB runs code
- scripts/capturar.py 19 KB runs code
- scripts/cor.py 11 KB runs code
- scripts/curar.py 12 KB runs code
- scripts/fontes_licenca.json 19 KB
- scripts/indexar.py 10 KB runs code
- scripts/ingerir_design.py 6.7 KB runs code
- scripts/ingerir_mcp.py 7.6 KB runs code
- scripts/ingerir_projeto.py 10 KB runs code
- scripts/ingerir_registro.py 5.1 KB runs code
- scripts/ingerir.py 5.4 KB runs code
- scripts/lote.py 5.5 KB runs code
- scripts/normalizar.py 10.0 KB runs code
- scripts/painel.py 20 KB runs code
- scripts/perfil.py 10 KB runs code
- scripts/publicar.py 12 KB runs code
- scripts/receita.py 4.8 KB runs code
- scripts/relocalizar.py 6.0 KB runs code
- scripts/sinonimos.json 7.6 KB
- scripts/tags_funcao.py 5.8 KB runs code
- scripts/test_sinonimos.py 1.8 KB runs code
- scripts/tipo.py 22 KB runs code
- scripts/vincular.py 5.0 KB runs code
- seed/acervo/index.json 18 KB
- seed/acervo/ui/kit-agendamento/armadilhas.json 4.1 KB
- seed/acervo/ui/kit-agendamento/codigo/agendamento.css 8.0 KB
- seed/acervo/ui/kit-agendamento/codigo/Agendamento.tsx 13 KB
- seed/acervo/ui/kit-agendamento/codigo/regras.ts 4.8 KB runs code
- seed/acervo/ui/kit-agendamento/codigo/useAgendamento.ts 4.0 KB runs code
- seed/acervo/ui/kit-agendamento/item.json 1.7 KB
- seed/acervo/ui/kit-agendamento/README.md 6.2 KB
- seed/acervo/ui/kit-calendario/armadilhas.json 798 B
- seed/acervo/ui/kit-calendario/codigo/calendario.css 5.4 KB
- seed/acervo/ui/kit-calendario/codigo/Calendario.tsx 7.7 KB
- seed/acervo/ui/kit-calendario/codigo/useCalendario.ts 4.1 KB runs code
- seed/acervo/ui/kit-calendario/item.json 1.4 KB
- seed/acervo/ui/kit-calendario/README.md 3.9 KB
- seed/acervo/ui/kit-mapa/armadilhas.json 747 B
- seed/acervo/ui/kit-mapa/codigo/mapa.css 5.3 KB
- seed/acervo/ui/kit-mapa/codigo/Mapa.tsx 4.7 KB
- seed/acervo/ui/kit-mapa/item.json 1.6 KB
- seed/acervo/ui/kit-mapa/README.md 4.3 KB
- seed/LEIA.md 905 B
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.
- 3d ago Changed · +37 lines · -19 tokens per session 5306601e5de1
- 8d ago First seen · 923 lines · 264 tokens per session scan A ffab415fd7b5
kit-montar is a skill published in the GitHub repository harebeats/cannonball (9 stars, last pushed 5d ago), licensed MIT. It adds 245 tokens to every session and 12,292 once invoked, about $0.0012 per session on Opus 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-31.
Other skills, from other repositories
designlang-tokens
Use when styling UI for cal.com — references the extracted design system tokens instead of inventing colors, spacing, or typography.
design-to-code-check
Check alignment between a specific design specification and its code implementation — a focused, single-component or single-screen comparison. Trigger when someone says: does this match the design, check implementation, design code alignment, what's different between the design and the build, spec check…
stitch-design-system
Extracts a Stitch design and generates production code artifacts — CSS custom properties with dark mode tokens, a Tailwind v4 @theme block, and a semantic design system document. Run this before framework conversion skills.
stitch-orchestrator
Master entry point for all Stitch design workflows. Routes from user request → design spec → prompt assembly → screen generation → iteration (edit, variants, design systems) → design system extraction → framework conversion (Next.js, Svelte, HTML, React Native, or SwiftUI) → optional quality pass.
stitch-a11y
Audits Stitch-generated components for WCAG 2.1 AA accessibility issues and applies fixes — semantic HTML, ARIA attributes, keyboard navigation, focus management, and screen reader support.
stitch-animate
Adds a purposeful animation layer to Stitch-generated components — CSS transitions, Framer Motion (React/Next.js), or Svelte transitions. Always respects prefers-reduced-motion.