Borrowing it
Nothing to install: this file belongs to ai-ecoverse/slicc. 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/ai-ecoverse/slicc/main/.agents/skills/verifying-before-push/SKILL.mdgit clone --depth 1 https://github.com/ai-ecoverse/sliccWrote 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/ai-ecoverse/slicc/verifying-before-push)<a href="https://agentmods.dev/skills/ai-ecoverse/slicc/verifying-before-push"><img src="https://agentmods.dev/badge/skills/ai-ecoverse/slicc/verifying-before-push/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/ai-ecoverse/slicc/verifying-before-push"><img src="https://agentmods.dev/badge/skills/ai-ecoverse/slicc/verifying-before-push.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, 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.
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.00129 | $0.06063 |
| Opus 5.5 | $0.00052 | $0.02425 |
| Sonnet 5.5 | $0.00026 | $0.01213 |
| Haiku 4.5 | $0.00013 | $0.00606 |
Grade B, and why
verifying-before-push scanned grade B with 1 finding 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.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
sudo. A new root-only step must skip itself when `id -u` / `sudo -n true` How it starts
The opening of the file, as written. The whole thing — 430 lines — stays where its author put it; the contents beside it link to each section on GitHub.
verifying-before-push
Run the full verification pass before committing, pushing, or opening or updating a PR.
These commands mirror the CI gates in
.github/workflows/ci.yml; running them locally first
is the fastest way to avoid a red PR.
Quick Reference
npm run verify
npm run typecheck
npm run test
npm run test:coverage
npm run build
npm run bundle-size
node packages/dev-tools/tools/check-touched-exemptions.mjs
Run npm run verify first because formatting is the most common CI failure. Do not omit the
separate check-touched-exemptions.mjs command: npm run verify does not include it.
npm run bundle-size needs the build to have run first — it measures files in dist/.
Pre-push lint gate (automatic)
The .husky/pre-push hook runs the full CI lint gate automatically before every
push to a feature branch. It mirrors every check from the CI lint job —
biome, prettier, custom lint scripts, complexity gate, manifest justifications,
and knip dead-code detection — all in parallel (~6 s wall-clock), then the
autofix-drift check (below) serially, because it writes.
You can also run it manually:
npm run verify # Same gate, run on demand
Escape hatch: git push --no-verify bypasses the gate when needed.
The standard pass
Run every command in order:
npm run verify # Lint gate (mirrors CI lint job)
node packages/dev-tools/tools/check-touched-exemptions.mjs # NOT in npm run verify — easy to miss
npm run typecheck
npm run test
npm run test:coverage # Enforces minimum coverage thresholds
npm run build
npm run bundle-size # Bundle budgets; needs the build above
The check-touched-exemptions.mjs gate runs right after lint because it catches
grandfathered debt that lint alone misses. See the section below for details.
Lint
Run npm run lint. It runs biome check --write . over JS/TS/JSON/CSS and
prettier --write . over the remaining doc / config-text formats (Markdown, YAML, HTML),
then lint:docs (CLAUDE.md size limits), lint:no-comments (no-op on main; hard
fail on the no-comment benchmark branch), lint:skills (tessl SKILL.md lint),
lint:skill-router (developer-skill router and alias sync), lint:no-innerhtml,
lint:layer-back-edges (no new imports pointing up a per-package layer stack —
baseline-ratcheted; fix the layering, never grow layer-back-edge-baseline.json or
layer-back-edge-baseline-{node-server,cloudflare-worker}.json),
lint:no-float-probes (the ten names in check-no-float-probes.mjs's FLOAT_PROBE_NAMES —
isExtensionRealm, isChromeExtensionRealm, hasLocalNodeServer, resolveFloatTopology,
getChromeExtensionRealm, setChromeExtensionRealm, hasChromeRuntimeConnect,
canConnectToChromeRuntime, getExtensionDelegateId, setExtensionDelegateId — plus the raw
__slicc_connect_mode global-bag key; no new read under scoops/, tools/, kernel/ except
kernel/host.ts / kernel/kernel-worker.ts — baseline-ratcheted,
starts empty; ask the injected CapabilityBroker instead, never grow float-probe-baseline.json),
lint:record-string-unknown (no new Record<string, unknown> in non-test source —
baseline-ratcheted; name the shape, or suppress a genuinely untyped payload with
// biome-ignore lint/plugin: <reason>, never grow
record-string-unknown-baseline.json), lint:patches,
lint:swift-pins (GitHub SPM packages dual-pinned in Package.swift and
xcodegen project.yml must overlap — see packages/dev-tools/swift-pin-reconcile/),
lint:swift-deps (SPM unused-dependency gate — see below),
lint:swift-forbidden-imports (widget hosts / SliccWidgetKit must not import
WebRTC — see below), lint:dead-flags (registry vs isFeatureEnabled /
getFeatureValue / Cherry host / worker overlay keys; waiver
// unused-flag-ok), and lint:duplication.
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 · -4 lines 27fad0efe7fc
- 4d ago Changed · +5 lines scan A → B 94a00e5c7b10
- 20d ago Changed · -1 lines 3b3030ceb7d8
- 21d ago Changed · +4 lines dace3c56966f
- 26d ago Changed · +16 lines 47f1182530c0
- 27d ago Changed · -1 lines 10af0664e437
- 1mo ago Changed · +1 lines 6644fd72b6ba
- 1mo ago Changed · +50 lines 55e883b2ea11
- 1mo ago Changed · +19 lines a210e355cc30
- 1mo ago First seen · 341 lines · 129 tokens per session scan A 6aa251034a38
verifying-before-push is a skill published in the GitHub repository ai-ecoverse/slicc (34 stars, last pushed 2d ago), licensed Apache-2.0. It adds 129 tokens to every session and 6,063 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
setup-pre-commit
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
github-copilot-upgrader
Use this to update the Github Copilot CLI/SDK.
workflow-patterns
Use this skill when implementing tasks according to Conductor's TDD workflow, handling phase checkpoints, managing git commits for tasks, or understanding the verification protocol.
meta-pre-commit-quality-gate
Run three quality gates (ruff + mypy + pytest) in parallel over the staged diff, then arbitrate a single BLOCK/APPROVE verdict. Use before committing changes locally when you want a comprehensive pre-commit gate beyond per-file linting — exactly the same gate set CI enforces.
verify-commit
Verify that commits for a GitHub issue include tests and that those tests fail without the implementation changes. Given an issue ID, finds commits, checks for test files, then reverts src/main changes and runs the tests to confirm they fail.
verify-akashic-plugin
A plugin acceptance skill that commits a plugin, installs it into the running application, checks its status, and uses it once to confirm whether it works.