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 rules/productdevbook/shadcn-htmx/registry-bases-paritygit clone --depth 1 https://github.com/productdevbook/shadcn-htmxWhat 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 | $0.00000 | $0.00270 |
| Opus 5 | $0.00000 | $0.00135 |
| Sonnet 5 | $0.00000 | $0.00054 |
| Haiku 4.5 | $0.00000 | $0.00027 |
Grade A, and why
registry-bases-parity 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.
This is a copy
100% identical to registry-bases-parity — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
What it actually says
Registry bases: Base UI ↔ Radix parity
apps/v4/registry/bases/base and apps/v4/registry/bases/radix are parallel registries. Anything that exists in both trees for the same purpose (preview blocks, mirrored examples, shared card layouts, etc.) must stay in sync.
When editing
- If you change a file under
bases/base/..., apply the same behavioral and visual change to the matching path underbases/radix/...(and the reverse). - Only diverge where APIs differ (e.g. import paths like
@/registry/bases/base/ui/*vs@/registry/bases/radix/ui/*, or Base UI vs Radix component props). - Do not update only one side unless the user explicitly asks for a single-base change.
Typical mirrored paths
blocks/preview/**— preview cards and blocks- Parallel
ui/*components when both exist for the same component
After edits, briefly confirm both trees were updated (or state why one side is intentionally unchanged).
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 · 23 lines · 0 tokens per session scan A a1289b135e10
registry-bases-parity is a cursor rule published in the GitHub repository productdevbook/shadcn-htmx (49 stars, last pushed 3mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 270 tokens. A static security scan graded it A with 0 findings. It is 100% identical to registry-bases-parity, differing in 0 lines, and is treated as a copy.
Other cursor rules, from other repositories
taste-enforcement
These dials drive all downstream decisions. Adjust per-prompt when the user specifies a different mood.
design-animation-rules
Taste is trained, not innate. Reverse engineer animations. Inspect interactions. Unseen details compound — a thousand barely audible voices all singing in tune. Beauty is leverage.
interface-micro-polish
Nested surfaces must be mathematically related: outer radius = inner radius + padding.
typescript-conventions
Label console.warn and console.error calls with their origin.
sigil-conventions
All CSS variables use the --s- prefix: var(--s-primary), var(--s-surface), etc.
material-icons
use material icons for icons.