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 skills add MohammadShehadeh/agent-skills --skill agent-skills-conventionsgit clone --depth 1 https://github.com/MohammadShehadeh/agent-skillsWrote 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/mohammadshehadeh/agent-skills/agent-skills-conventions)<a href="https://agentmods.dev/skills/mohammadshehadeh/agent-skills/agent-skills-conventions"><img src="https://agentmods.dev/badge/skills/mohammadshehadeh/agent-skills/agent-skills-conventions/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mohammadshehadeh/agent-skills/agent-skills-conventions"><img src="https://agentmods.dev/badge/skills/mohammadshehadeh/agent-skills/agent-skills-conventions.svg" alt="Reviewed on agentmods" width="80" 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.00046 | $0.02121 |
| Opus 5 | $0.00023 | $0.01060 |
| Sonnet 5 | $0.00009 | $0.00424 |
| Haiku 4.5 | $0.00005 | $0.00212 |
Grade A, and why
agent-skills-conventions 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 12d 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 — 44 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Code Conventions
Condensed house style. Adapt to the repo first — read existing layout, aliases, UI layer, and toolchain; match established patterns (core-principles). Full rules with examples live in this skill's references/ directory — read the topic file when detail is needed:
core-principles · naming · typescript · components · hooks-state · forms · nextjs · styling · ui-composition · ui-ux · icons · services · data · optimistic-ui · errors · structure · testing
Cheat sheet
Process — inspect the repo before imposing patterns; plan before coding and confirm the approach; be concise; say "I don't know" instead of guessing; simplest code that works; surgical diffs only.
Naming — kebab-case filenames (components too); camelCase vars; booleans is/has/should; handlers handle*, callback props on*; name business meaning, not technical accident. .tsx iff the file contains JSX.
No barrels — never create re-export index.ts files; import directly from the file that defines the symbol.
Components — named arrow-function const exports; no default exports except Next.js file conventions. Props: interface <Component>Props (no I prefix), destructured in the signature. children: React.ReactNode. Compound components as flat named exports from one file (Card/CardHeader — never Card.Header statics). Data-driven rendering: typed as const arrays + .map(), content out of markup.
Flat trees — design for the flattest tree possible: page → section → primitive. No pass-through wrapper components; no prop drilling past one intermediate — compose via children/slot props, fetch/read data where it's used, lift state only to the lowest common owner. Tracing a prop must never take 3–6 file jumps.
Hooks — return an object (never a tuple) exposing status plus only the derived flags call-sites read; booleans derived from status, never stored. Async state is ONE status union ('idle' | 'loading' | 'success' | 'error') in one useState — bare union by default, discriminated-with-payload only when data/errorKey must be tied to the state; never parallel booleans. Failures carry an errorKey, not a message. Server state lives in a query cache (TanStack Query), never useState+useEffect+fetch; live updates are refetchInterval/invalidateQueries/setQueryData from a socket — never a hand-rolled setInterval poll. Context via a createSafeContext factory that throws without a provider.
What ships with it
18 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/components.md 3.3 KB
- references/core-principles.md 3.9 KB
- references/data.md 7.8 KB
- references/errors.md 7.1 KB
- references/forms.md 2.7 KB
- references/hooks-state.md 4.3 KB
- references/icons.md 1.4 KB
- references/naming.md 1.9 KB
- references/nextjs.md 3.6 KB
- references/optimistic-ui.md 4.3 KB
- references/review-checklist.md 5.9 KB
- references/services.md 9.0 KB
- references/structure.md 4.0 KB
- references/styling.md 3.3 KB
- references/testing.md 763 B
- references/typescript.md 3.8 KB
- references/ui-composition.md 2.3 KB
- references/ui-ux.md 2.0 KB
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.
- 12d ago First seen · 44 lines · 46 tokens per session scan A a31d3cad6a2e
agent-skills-conventions is a skill published in the GitHub repository MohammadShehadeh/agent-skills (2 stars, last pushed 28d ago), licensed MIT. It adds 46 tokens to every session and 2,121 once invoked, about $0.0002 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-31.
Other skills, from other repositories
custom-features
Author a TanStack Table v9 feature plugin across every FeatureMap and API installation surface: state, options, column definitions, table, column, row, cell, header, row-model functions/caches, defaults, prototypes, and table/row/column instance data lifecycles. Load for initTableInstanceData, resetTableInstanceData…
frontend-conventions
Coding conventions, architecture patterns, and testing rules for the SkillHub React frontend. Ensures agents follow Feature-Sliced Design and use the generated OpenAPI types.
fast-typescript-check
Keep www-sacred's TypeScript fast to type-check and fast to run. Use when touching the ASCII/canvas animation components (the only real per-frame code here), tightening type-check wall-clock, or auditing a change for runtime or compiler regressions. Scoped to this repo — a React 19 / Next.js 16 component library plus…
typescript-react
Apply, review, and explain React conventions from the TypeScript Style Guide. Use automatically for TypeScript and TSX tasks involving prop-derived state, prop typing, component responsibilities, data flow, compound components, or client and server state.
electron-dev
Electron desktop apps with React, TypeScript, and Vite. Use for IPC, window/tray, PTY terminals, WebRTC, and packaging.
typescript-rules
React/TypeScript frontend development rules including type safety, component design, state management, and error handling. Use when implementing React components, TypeScript code, or frontend features.