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 alex-jb/shadow-perception-mcp --skill shadow-perception-kagglegit clone --depth 1 https://github.com/alex-jb/shadow-perception-mcpWrote 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/alex-jb/shadow-perception-mcp/shadow-perception-kaggle)<a href="https://agentmods.dev/skills/alex-jb/shadow-perception-mcp/shadow-perception-kaggle"><img src="https://agentmods.dev/badge/skills/alex-jb/shadow-perception-mcp/shadow-perception-kaggle/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/alex-jb/shadow-perception-mcp/shadow-perception-kaggle"><img src="https://agentmods.dev/badge/skills/alex-jb/shadow-perception-mcp/shadow-perception-kaggle.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.00074 | $0.00889 |
| Opus 5 | $0.00037 | $0.00445 |
| Sonnet 5 | $0.00015 | $0.00178 |
| Haiku 4.5 | $0.00007 | $0.00089 |
Grade A, and why
shadow-perception-kaggle 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 8d 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 — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Shadow Perception — Kaggle vertical
Five-voice deterministic pre-submit council for Kaggle notebooks. Deterministic — no LLM call in the verdict path.
When to use
The user's request is any variant of:
- "Should I submit this notebook to Kaggle?"
- "Any leakage in this notebook?"
- "Is my Kaggle submission reproducible?"
- "Did I accidentally use protected-class features?"
Or the user points at a .ipynb file and asks for feedback before submit.
What it does
shadow_perception_scan(notebook_path)— parses the .ipynb into a structured observation (imports, function definitions, seed pinning, file reads/writes, detected leakage patterns).shadow_perception_council(observation)— runs the 5-voice council:- Leakage — 5 heuristic patterns (fit_transform on test, fit before split, target in features, temporal shuffle, future data in training).
- Fairness — flags protected-class proxy terms in source.
- Reproducibility — checks seed pinning + kernel spec + imports.
- Compliance — flags external data reads outside standard competition paths.
- Ops — checks for submission artifact.
shadow_perception_attest(observation, verdict)— Ed25519 signs the verdict so it can be shared with a teammate or attached to a Kaggle submission as proof of pre-submit review.
The named invariants
- Leakage detector is heuristic + advisory. REWORK, not BLOCK. Missing hits are possible; false positives are possible. Do not claim "no leakage" on the basis of this scan alone.
- Fairness voice is US-ECOA / GDPR Art. 9 flavored. Kaggle competitions may use public-data features that would be prophylactically blocked in production; that mismatch is intentional. Human review remains load-bearing.
- Ops voice BLOCK on missing submission — this is the one BLOCK-authority voice. All others are REWORK-authority.
- Deterministic council. Same notebook + same code path = same verdict, always. No LLM randomness.
Non-goals
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.
- 8d ago First seen · 74 lines · 74 tokens per session scan A 99d7485497ce
shadow-perception-kaggle is a skill published in the GitHub repository alex-jb/shadow-perception-mcp (0 stars, last pushed 2mo ago), licensed MIT. It adds 74 tokens to every session and 889 once invoked, about $0.0004 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
bio-workbench
A set of rules for running reproducible bioinformatics analyses, which study biological data with software. It uses small self-contained scripts, recorded inputs and outputs, environment details, and version history so results can be repeated.
figure-style
Publication-grade figure correctness and legibility rules. Load before drawing any plot and call applyfigurestyle() — sets a role-mapped font-size ladder, outward ticks, frameless legends, and 300-dpi output. The skill is a checklist, not a house look: data fidelity (claim-titles tested against every row, excluded…
figure-composer
Compose one publication-grade multi-panel figure. Entry from a one-line claim + data files, OR from an existing figure via deriveoutlineprompt (you read the PNG). Runs a per-figure loop: outline (12-col grid, per-panel ask + labelbudget) → render each panel with paneltask (loading figure-style), one at a time or…
bernstein-plan
Create and manage multi-step execution plans in Bernstein. Plans decompose complex goals into stages with dependencies. Use when the user wants to plan a complex feature, break down a large task, or review an execution plan before agents start working.
bernstein-run
Run a verified multi-agent goal with Bernstein. Use when a task is too large for a single agent session: Bernstein decomposes the goal into tasks, spawns CLI coding agents in parallel git worktrees, verifies their output, and merges results. Also use to check run status, costs, and to verify a finished run against its…
bernstein-approve
Review and approve/reject pending tasks or plans in Bernstein. Use when the user asks about approvals, wants to review agent work, or needs to approve/reject a plan before execution begins.