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/khan/wonder-blocks/generalgit clone --depth 1 https://github.com/Khan/wonder-blocksWhat 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.05190 | $0.05190 |
| Opus 5 | $0.02595 | $0.02595 |
| Sonnet 5 | $0.01038 | $0.01038 |
| Haiku 4.5 | $0.00519 | $0.00519 |
Grade A, and why
general 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 2d 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 — 386 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Wonder Blocks Design System
Technology Stack
- Language: TypeScript (Strict mode enforced).
- Framework: React (Functional Components and Hooks are standard).
- Styling: Aphrodite (
aphrodite) for CSS-in-JS, leveraging Wonder Blocks tokens (@khanacademy/wonder-blocks-tokens) and themes. - State Management: Primarily local state (
useState) and React Context API (useContextwith custom provider hooks). - Data Fetching: There should be no data fetching in the design system UI components.
- Routing: Design system components that have link functionality should also support React-Router routes.
- Testing: Jest, React Testing Library (RTL),
@testing-library/user-event, Storybook.
Coding Conventions & Style
1. File Naming
- ✅ Use kebab-case for files and directories (e.g.,
activity-button.tsx,utils.ts) - ✅ Test files:
*.test.ts(x) - ✅ Storybook files:
*.stories.tsx
2. Export Naming
- ✅ PascalCase for React components and TSX types/interfaces (e.g.,
Button,type ButtonProps) - ✅ camelCase for functions, variables, hooks (e.g.,
getButtonProps,useButtonFunctionality)
3. TypeScript
- ✅ Use
strictmode - ✅ Define clear interfaces/types (colocated or in
types.ts). Usetypefor props and state,interfacefor shared structures where appropriate - ✅ Use utility types (
Partial,Omit,Pick,Readonly, etc.) - ✅ Use the
satisfiesoperator for type-safe object literals when you want both type checking and type inference - ✅ Prefer type-only imports where applicable:
import type {...}for types - ❌ Avoid
any; useunknownor specific types instead
4. React
- ✅ Imports: Always use
import * as React from "react"(required for JSX transformation) - ✅ Functional Components & Hooks: Use
useState,useEffect,useContext,useCallback,useMemo, and custom hooks - ✅ Props: Define explicit
Propstypes. Use object destructuring. Pass complex objects/callbacks with stable references (useCallback,useMemo) if they are dependencies of effects or memoized children - ✅ State: Keep component state minimal. Lift state up when necessary
- ✅ Keys: Provide stable
keyprops for lists (use item IDs if available) - ✅ Composition: Build complex UI by composing smaller Wonder Blocks when possible
- ✅ Refs: Use
React.forwardRefwhen components need to expose DOM refs - ✅ Custom Hooks: Extract reusable logic into custom hooks (e.g.,
useFieldValidation,useIsMountedfrom@khanacademy/wonder-blocks-core) - ✅ Event Handlers: Internal handlers should be prefixed with
handle(e.g.,handleClick,handleChange). Callback props should be prefixed withon(e.g.,onClick,onChange) - ❌ Don't use
React.FC<Props>when defining functional components, use(props: Props) =>instead - ❌ Avoid creating new class components. Refactor existing ones if making significant 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.
- 2d ago First seen · 386 lines · 5,190 tokens per session scan A ae2b2cf96384
general is a cursor rule published in the GitHub repository Khan/wonder-blocks (163 stars, last pushed 4d ago), licensed MIT. It adds 5,190 tokens to every session, about $0.0260 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 cursor rules, from other repositories
solid-js
When writing code for Solid.js, follow these rules.
svelte
Cursor rule "svelte" from chakra-ui/ark, covering exporting files and creating stories.
vue
When writing code for Vue.js, follow these rules.
cursorrules
You are using StyleSeed, an AI design-method engine for product UI and other visual artifacts.
backend
Backend development rules for TT Studio - AI model management backend.
docker-deployment
Docker containerization and deployment rules for TT Studio.