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 skills/jimmc414/claude-code-plugin-marketplace/use-sparse-setnpx skills add jimmc414/claude-code-plugin-marketplace --skill use-sparse-setgit clone --depth 1 https://github.com/jimmc414/claude-code-plugin-marketplaceWrote 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/jimmc414/claude-code-plugin-marketplace/use-sparse-set)<a href="https://agentmods.dev/skills/jimmc414/claude-code-plugin-marketplace/use-sparse-set"><img src="https://agentmods.dev/badge/skills/jimmc414/claude-code-plugin-marketplace/use-sparse-set.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.00029 | $0.00638 |
| Opus 5 | $0.00015 | $0.00319 |
| Sonnet 5 | $0.00006 | $0.00128 |
| Haiku 4.5 | $0.00003 | $0.00064 |
Grade A, and why
use-sparse-set 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 yesterday.
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 — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
use-sparse-set
When to Use
- Infinite or very large coordinate spaces
- Only a few elements are "active" at any time
- Need O(1) membership testing
- Natural union/intersection operations apply
- Game of Life, sparse matrices, active cell tracking
When NOT to Use
- Dense data where most cells have values
- Need array indexing or slicing
- Matrix operations (use numpy)
The Pattern
Use Python sets to represent sparse collections. Only store elements that exist/matter.
# Instead of 2D array:
# grid = [[0]*1000 for _ in range(1000)] # Wastes memory
# Use set of coordinates:
active_cells = {(3, 5), (10, 20), (100, 200)}
# Operations are natural
(5, 5) in active_cells # O(1) membership
active_cells.add((7, 7)) # O(1) add
active_cells |= other_set # Union
active_cells &= valid_region # Intersection
Example (from pytudes Life.ipynb)
Cell = Tuple[int, int]
World = Set[Cell] # Only live cells stored
# Initial state - just the active cells
glider = {(1, 0), (2, 1), (0, 2), (1, 2), (2, 2)}
def neighbors(cell):
"""All 8 neighbors of a cell."""
x, y = cell
return [(x+dx, y+dy)
for dx in [-1, 0, 1]
for dy in [-1, 0, 1]
if (dx, dy) != (0, 0)]
def neighbor_counts(world):
"""Count neighbors for all relevant cells."""
from collections import Counter
return Counter(n for cell in world for n in neighbors(cell))
def next_generation(world):
"""Game of Life: 3 neighbors = born, 2-3 = survive."""
counts = neighbor_counts(world)
return {cell for cell, count in counts.items()
if count == 3 or (count == 2 and cell in world)}
# Can handle any size - sparse representation!
huge_world = {(1000000, 1000000), (1000001, 1000000)}
next_gen = next_generation(huge_world) # Works fine
Key Principles
- Only store what exists: Empty cells don't consume memory
- Infinite space is free: No bounds needed
- Set operations map to problems: Union = combine, intersection = overlap
- Tuples are hashable: Coordinates work as set elements
- Counter for aggregation: Count "votes" from neighbors
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.
- yesterday First seen · 77 lines · 29 tokens per session scan A 5d78249d74e9
use-sparse-set is a skill published in the GitHub repository jimmc414/claude-code-plugin-marketplace (4 stars, last pushed today), licensed MIT. It adds 29 tokens to every session and 638 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-09-04.
Other skills, from other repositories
clean-code
Use when the user writes new Python, or asks for review, refactor, or cleanup of Python code, names, comments/docstrings, functions, or tests. Applies Robert Martin's complete Clean Code catalog -- naming, functions, comments, DRY, boundary conditions, and tests -- to the code being changed.
biopython
Molecular biology toolkit. Use for FASTA parsing, sequence analysis, and translation.
rust-coding-standards
Rust coding standards, documentation authoring, content workflows, and quality patterns for systemprompt.io development.
extension-building
Build library extensions for systemprompt.io with Rust - architecture, traits, schemas, API routes, jobs, and code review.
rust-dev-guide
Entry point for rust-development — routes to the right sub-skill for your task.
csharp-source-generator
Use when writing, reviewing, debugging, or testing C# source generators and Roslyn incremental generators. Covers IIncrementalGenerator architecture, SyntaxProvider pipelines, generated-code snapshots with Verify, analyzer packaging, marker attributes, AnalyzerConfigOptionsProvider, SDK compatibility, diagnostics, and…