curb CLAUDE.md

curb CLAUDE.md is an instructions file for Claude Code from alevizio/curb. It costs 6,277 tokens per session, scanned A, original, MIT.

Repository instructions for Curb, a mobile web app showing San Francisco street-parking rules on an interactive map. It covers parking meters, street sweeping, residential permits, and calendar reminders.

In plain words
What is it for?
It is for guiding edits to the single HTML file, map display, live DataSF data, map tiles, parking-rule searches, and sweep reminders.
Why use it?
It keeps the app's intentionally simple setup and important map, data, and security decisions from being changed accidentally.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions Claude Code.

Install

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.

agentmods
npx agentmods add instructions/alevizio/curb/claude-md
Clone the repo
git clone --depth 1 https://github.com/alevizio/curb

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 curb CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/alevizio/curb/claude-md.svg)](https://agentmods.dev/instructions/alevizio/curb/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/alevizio/curb/claude-md"><img src="https://agentmods.dev/badge/instructions/alevizio/curb/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 6,277 This file is loaded in full into every session.
When invoked 6,277 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
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.06277 $0.06277
Opus 5 $0.03138 $0.03138
Sonnet 5 $0.01255 $0.01255
Haiku 4.5 $0.00628 $0.00628

Measured 6d ago against content hash 595130157dbe, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

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

CLAUDE.md · 315 lines

How it starts

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

CURB — SF street parking, block by block

Context for Claude Code. Read this before editing.

What it is

A mobile-first web app that shows San Francisco street-parking rules on an interactive map: where you can park, until when it's swept, whether it's metered, and whether it's a residential permit (RPP) zone. Lets the user set a calendar reminder before the next sweep.

Stack (intentionally minimal)

  • Single static file: index.html. No build step, no framework, no bundler.
  • Vanilla JS + Leaflet 1.9.4 (from cdnjs) for the map.
  • Basemap: official Google Map Tiles API when GMAPS_KEY (or window.GMAPS_KEY) is set — session-token flow in initBasemap(), viewport attribution refreshed on moveend. Falls back to keyless CARTO Voyager raster tiles when no key / on any failure. Leaflet stays the map engine either way. The Google key is a client key (referrer-restrict it) kept OUT of the public repo: local dev reads a gitignored config.js (from config.example.js); on Vercel, api/config.js emits window.GMAPS_KEY from the GMAPS_KEY env var and vercel.json rewrites /config.js/api/config.
  • Everything is client-side. Data is fetched live from DataSF (Socrata) at runtime.
  • Design system: fonts Anton (display) + Hanken Grotesk (body); "transit signage" aesthetic; color tokens in :root (--green clear / --amber soon / --red now / --meter permit-blue / paper+ink). Keep this language if extending the UI.

Data sources (all DataSF Socrata, CORS-open: access-control-allow-origin: *)

  1. Street sweeping — yhqp-riqs https://data.sfgov.org/resource/yhqp-riqs.json Fields: cnn (segment id), corridor, limits (cross streets), blockside, cnnrightleft (L/R vs digitized direction), weekday, fromhour, tohour, week1..week5 ("1"/"0" = Nth occurrence of that weekday in the month), line (GeoJSON LineString). CURRENT data.
  2. Parking meters — 8vzz-qzz9 https://data.sfgov.org/resource/8vzz-qzz9.json Fields: street_name (UPPERCASE), cap_color, on_offstreet_type, lat/long, etc. CURRENT data. Used only for a street-level count (no spatial join — see limits).
  3. Parking regulations / RPP — hi6h-neyh https://data.sfgov.org/resource/hi6h-neyh.json Fields: regulation, rpparea1 (permit-area letter), hrlimit, days, from_time, to_time, exceptions, shape (GeoJSON MultiLineString). STALE: this is SFMTA's 2017 set, flagged by the city as not comprehensively updated. Treat as a hint. NOTE: RPP covers BOTH curbs — rendered as ONE street-wide centerline ribbon UNDER the curb lines, with zoom-scaled weight (rppWeight(): 4px@z15 → 26px@z18 ≈ curb-to-curb). Do NOT draw offset bands per side: they stack into a blue blanket at low zoom and collide with the ±5m curb lines at high zoom (tried 2026-06-09, looked broken).
  4. Loading / color-curb zones — 6cqg-dxku (Meter Operating Schedules) Field applied_color_rule carries the regulation + days_applied/from_time/to_time/ time_limit (White=passenger, Yellow=commercial, Red=truck, Green=short-term, Orange=bus). cap_color is UNRELIABLE (white zones show Grey caps) — match on applied_color_rule. No geometry → join to meter coords by post_id (8vzz-qzz9 lat/long). Metered zones only; paint-only curbs aren't published. Loaded once on toggle, rendered per-viewport.
  5. Parking citations — ab4h-6ztd (23.8M rows, daily, ~2-5 day lag) STR CLEAN (TRC7.2.22) + ST CLEANIN (T37C) = street-cleaning tickets, minute-resolution. A 2024 records request (#26-5453) restored GPS lat/long on the citations: ~815k of ~1M street-cleaning tickets now match to a CNN by NEAREST CNN SEGMENT (<=40m), the primary pipeline. The old address→CNN join via EAS (3mea-di5p, keyed by stripZeros(number)|street_name) is demoted to a pre-2024 fallback for rows without GPS. Precomputed offline into data/enforcement.json — see scripts/build-enforcement-records.py and docs/sweeper-data-research.md. Powers the "🎯 Ticketed ~9:11a" lines.

Read the full file on GitHub · 315 lines

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. 6d ago First seen · 315 lines · 6,277 tokens per session scan A 595130157dbe

Subscribe to this mod's changes

curb CLAUDE.md is an instructions file published in the GitHub repository alevizio/curb (11 stars, last pushed 4d ago), licensed MIT. It adds 6,277 tokens to every session, about $0.0314 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 instructions, from other repositories