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 agentmods add instructions/aliakhtari78/spotifyscraper/claude-mdgit clone --depth 1 https://github.com/AliAkhtari78/SpotifyScraperWrote 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/instructions/aliakhtari78/spotifyscraper/claude-md)<a href="https://agentmods.dev/instructions/aliakhtari78/spotifyscraper/claude-md"><img src="https://agentmods.dev/badge/instructions/aliakhtari78/spotifyscraper/claude-md.svg" alt="Measured on agentmods" 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.00862 | $0.00862 |
| Opus 5 | $0.00431 | $0.00431 |
| Sonnet 5 | $0.00172 | $0.00172 |
| Haiku 4.5 | $0.00086 | $0.00086 |
Grade A, and why
SpotifyScraper CLAUDE.md 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 6d 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 — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
Guidance for AI coding agents (and humans) working on SpotifyScraper.
What this project is
A Python library that extracts public Spotify data (tracks, albums, artists, playlists, shows, episodes) without the official API. v3 is a clean-room rewrite; the stable v2 line lives on the v2.x branch.
Architecture rules (do not violate)
- Sans-io core. All Spotify intelligence — URL parsing, token extraction, request building, payload→model parsing — lives in pure, sync-agnostic functions. Only the thin client facades in
_sync/and_async/know about I/O. - One runtime dependency. Core depends on
httpxonly. New functionality that needs another package goes behind an optional extra (media,browser) with a lazy import and a helpfulImportError. - Two-tier extraction ladder. Tier 1: anonymous bearer token (bootstrapped from any embed page's
__NEXT_DATA__) → Spotify pathfinder GraphQL. Tier 2 (fallback): parse the entity's own embed page. Tier-1-only model fields are| None. GraphQL persisted-query hashes live ONLY inapi/pathfinder.py. - Typed throughout. Frozen slotted dataclasses for models,
to_dict()JSON-safe;mypy --strictmust pass; exceptions come from theerrors.pyhierarchy — never return error strings or error dicts. - Hermetic tests by default. Network tests are
@pytest.mark.liveand excluded by default. Never commit fixtures containing liveaccessToken,clientId, or cookie values — scrub them (seescripts/capture_fixtures.pyonce it exists).
Workflow
- Spec-first. Every non-trivial change goes through OpenSpec: propose (
/opsx:propose) → apply (/opsx:apply) → archive (/opsx:archive). Specs live inopenspec/. - Conventional commits are enforced by a commit-msg hook (template:
.gitmessage). - One OpenSpec change = one PR into
v3(until v3 merges tomaster).
Commands
| Command | Purpose |
|---|---|
uv sync |
Install/refresh the dev environment |
make lint / make format |
ruff check / autofix + format |
make type |
mypy strict on src/ |
make test |
hermetic test suite |
make cov |
tests with coverage (85% floor) |
make live |
live Spotify smoke tests (network) |
uv build |
build wheel + sdist |
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.
- 6d ago First seen · 54 lines · 862 tokens per session scan A e3a37a3bca3a
SpotifyScraper CLAUDE.md is an instructions file published in the GitHub repository AliAkhtari78/SpotifyScraper (301 stars, last pushed 2d ago), licensed MIT. It adds 862 tokens to every session, about $0.0043 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.
Other instructions, from other repositories
deepagents AGENTS.md
AGENTS.md instructions for langchain-ai/deepagents, covering global development guidelines for the deep agents monorepo, corridor security analysis, development workflow, suppressing ruff rules and pr conventions.
cocoindex AGENTS.md
AGENTS.md instructions for cocoindex-io/cocoindex, covering agents.md, build and test commands, building, testing and code formatting and linting.
apm python.instructions.md
Python development guidelines.
technocore-chat AGENTS.md
AGENTS.md instructions for flop-labs/technocore-chat: CI runs exactly these — run them before pushing.
foundry-local python-cffi-pointer-types.instructions.md
Use when working on the Python SDK's native bindings (cffi), especially when defining new Item subclasses, working with flItemQueue, or extending Request/Session methods that pass native handles.
streamlit e2e_playwright.instructions.md
Instructions for streamlit/streamlit, covering streamlit e2e tests, test structure, key fixtures and utilities, external test mode and url handling (no localhost hardcoding).