bad-example-skill

bad-example-skill is a skill for Claude Code from bobmatnyc/claude-mpm-skills. It costs 22 tokens per session (3,343 once invoked), scanned A, original, MIT.

An example of a badly designed coding-agent skill that is not self-contained and depends on documentation in other skill folders.

In plain words
What is it for?
Learning what to avoid when packaging skills, including cross-folder links, incomplete documentation, and assumptions about the installation layout.
Why use it?
It shows how relative links and missing instructions can break when a skill is installed by itself.

Skill for Claude Code

Written for Claude Code: disable-model-invocation in frontmatter. Also seen: reads .claude/ paths.

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is For setup instructions, see [../setup-skill/SKILL.md](../setup-skill/SKILL.md).

Good fit Learning what to avoid when packaging skills, including cross-folder links, incomplete documentation, and assumptions about the installation layout.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/bobmatnyc/claude-mpm-skills
agentmods
npx agentmods add skills/bobmatnyc/claude-mpm-skills/bad-interdependent-skill

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 bad-example-skill

README.md
[![agentmods](https://agentmods.dev/badge/skills/bobmatnyc/claude-mpm-skills/bad-interdependent-skill/github.svg)](https://agentmods.dev/skills/bobmatnyc/claude-mpm-skills/bad-interdependent-skill)
Your own site
<a href="https://agentmods.dev/skills/bobmatnyc/claude-mpm-skills/bad-interdependent-skill"><img src="https://agentmods.dev/badge/skills/bobmatnyc/claude-mpm-skills/bad-interdependent-skill/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 bad-example-skill

Your own site · 80×15
<a href="https://agentmods.dev/skills/bobmatnyc/claude-mpm-skills/bad-interdependent-skill"><img src="https://agentmods.dev/badge/skills/bobmatnyc/claude-mpm-skills/bad-interdependent-skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 22 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,343 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 pass 7 Sept 2026
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.00022 $0.03343
Opus 5 $0.00011 $0.01672
Sonnet 5 $0.00004 $0.00669
Haiku 4.5 $0.00002 $0.00334

Measured 11d ago against content hash 46d0b9820a06, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

bad-example-skill 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 11d 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.

examples/bad-interdependent-skill/SKILL.md · 577 lines

How it starts

The opening of the file, as written. The whole thing — 577 lines — stays where its author put it; the contents beside it link to each section on GitHub.

⚠️ BAD EXAMPLE - Interdependent Skill (Anti-Pattern)

WARNING: This is an ANTI-PATTERN example showing what NOT to do.

DO NOT COPY THIS STRUCTURE. See good-self-contained-skill for correct approach.


❌ VIOLATION #1: Relative Path Dependencies

## Related Documentation

For setup instructions, see [../setup-skill/SKILL.md](../setup-skill/SKILL.md)

For testing patterns, see:
- [../../testing/pytest-patterns/](../../testing/pytest-patterns/)
- [../../testing/test-utils/](../../testing/test-utils/)

Database integration: [../../data/database-skill/](../../data/database-skill/)

Why This is Wrong:

  • ❌ Uses relative paths (../, ../../)
  • ❌ Assumes hierarchical directory structure
  • ❌ Breaks in flat deployment (~/.claude/skills/)
  • ❌ Links break when skill deployed standalone

Correct Approach:

## Complementary Skills

Consider these related skills (if deployed):

- **setup-skill**: Installation and configuration patterns
- **pytest-patterns**: Testing framework and fixtures
- **database-skill**: Database integration patterns

*Note: All skills are independently deployable.*

❌ VIOLATION #2: Missing Essential Content

## Testing

This skill uses pytest for testing.

**See pytest-patterns skill for all testing code.**

To write tests for this framework, install pytest-patterns skill
and refer to its documentation.

Why This is Wrong:

  • ❌ No actual testing patterns included
  • ❌ Requires user to have another skill
  • ❌ Skill is incomplete without other skills
  • ❌ "See other skill" instead of inlining

Correct Approach:

## Testing (Self-Contained)

**Essential pytest pattern** (inlined):

```python
import pytest
from example_framework.testing import TestClient

@pytest.fixture
def client():
    """Test client fixture."""
    return TestClient(app)

def test_home_route(client):
    """Test homepage."""
    response = client.get("/")
    assert response.status_code == 200
    assert response.json() == {"message": "Hello"}

Advanced fixtures (if pytest-patterns skill deployed):

  • Parametrized fixtures
  • Database session fixtures
  • Mock fixtures

See pytest-patterns skill for comprehensive patterns.

Read the full file on GitHub · 577 lines

Files

What ships with it

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

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. 11d ago First seen · 577 lines · 22 tokens per session scan A 46d0b9820a06

Subscribe to this mod's changes

bad-example-skill is a skill published in the GitHub repository bobmatnyc/claude-mpm-skills (74 stars, last pushed 1mo ago), licensed MIT. It adds 22 tokens to every session and 3,343 once invoked, about $0.0001 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-30.

Related

Other skills, from other repositories

pr-to-video

Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR…

heygen-com/hyperframes · 104 tokens

general-video

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated…

heygen-com/hyperframes · 92 tokens

motion-graphics

A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI…

heygen-com/hyperframes · 139 tokens

hyperframes-core

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Also covers Tailwind projects and the STORYBOARD.md / SCRIPT.md…

heygen-com/hyperframes · 77 tokens

horse-integration-tests

Guide for writing automated integration tests for Horse endpoints using DUnit/DUnitX and THTTPClient.

HashLoad/horse · 25 tokens

prompt-design

Design MCP prompts to expose reusable prompt templates. Use when creating parameterized prompts in xmcp.

basementstudio/xmcp · 22 tokens