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/tonyghiani/ai-essentials/marco-code-stylenpx skills add tonyghiani/ai-essentials --skill marco-code-stylegit clone --depth 1 https://github.com/tonyghiani/ai-essentialsWrote 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/tonyghiani/ai-essentials/marco-code-style)<a href="https://agentmods.dev/skills/tonyghiani/ai-essentials/marco-code-style"><img src="https://agentmods.dev/badge/skills/tonyghiani/ai-essentials/marco-code-style.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 | $0.00086 | $0.03690 |
| Opus 5 | $0.00043 | $0.01845 |
| Sonnet 5 | $0.00017 | $0.00738 |
| Haiku 4.5 | $0.00009 | $0.00369 |
Grade A, and why
marco-code-style scanned grade A with 1 finding 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 5d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
`queryFn: ({ signal }: QueryFunctionContext) => client.fetch(endpoint, { signal: signal ?? null })`. How it starts
The opening of the file, as written. The whole thing — 237 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Marco's code style
Observed conventions, then confirmed. Every rule below came from reading 748 commits Marco authored, cross-checked by author-frequency per file, and then put to him directly in a 69-question interview covering naming, control flow, typing, React, state, server patterns, structure, comments, and tests.
Precedence. Project conventions win when they conflict with this file. Read the neighbouring files first. Where project documentation states a rule Marco's own code contradicts, follow the surrounding file, and follow this file for new modules he owns.
Scope. Mechanical rules (formatting, import order, casing, banned syntax) are lint config, not
guidance; they live in eslint-recommendations.md in the ai-essentials repo. Cursor consumes the same
material as file-scoped rules in rules/typescript-style.mdc, rules/react-components.mdc,
rules/node-api-patterns.mdc, rules/testing-style.mdc, and rules/project-structure.mdc.
Where his stated preference overrides his existing code
Read these first. Following the code instead of the preference is the most likely way to get it wrong.
| Rule | His code | His answer |
|---|---|---|
| Type name prefixes | no prefixes in Kibana (58 declarations) | I on interfaces, T on type aliases |
| Props interface | inline object type under ~4 props | always a named interface IXProps |
| Guard braces | 12 brace-less single-line guards | always braces |
| Imperative loops | 24 for…of for sequencing |
declarative by default; imperative is a performance escape hatch |
| Abort signals | threaded through every call | only long-running or user-cancellable requests |
| Destructured params | past ~2 arguments | past 1 argument, and always once one is optional |
Components
// Default form.
export function SignificantEventsPage({ tab, onTabChange }: ISignificantEventsPageProps) {
// ...
}
// Arrow-const only for a one-expression wrapper.
export const AppHeader = (props: IAppHeaderProps) => <PageHeader {...props} />;
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.
- 5d ago First seen · 237 lines · 86 tokens per session scan A 41cab1aecb85
marco-code-style is a skill published in the GitHub repository tonyghiani/ai-essentials (6 stars, last pushed 27d ago), licensed MIT. It adds 86 tokens to every session and 3,690 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
client-setup
Create a vanilla tRPC client with createTRPCClient (), configure link chain with httpBatchLink/httpLink, dynamic headers for auth, transformer on links (not client constructor). Infer types with inferRouterInputs and inferRouterOutputs. AbortController signal support. TRPCClientError typing.
adapter-express
Mount tRPC as Express middleware with createExpressMiddleware() from @trpc/server/adapters/express. Access Express req/res in createContext via CreateExpressContextOptions. Mount at a path prefix like app.use('/trpc', ...). Avoid global express.json() conflicting with tRPC body parsing for FormData.
trpc-router
Entry point for all tRPC skills. Decision tree routing by task: initTRPC.create(), t.router(), t.procedure, createTRPCClient, adapters, subscriptions, React Query, Next.js, links, middleware, validators, error handling, caching, FormData.
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.
frontend-dev-guidelines
Frontend development guidelines for React/TypeScript applications. Modern patterns including Suspense, lazy loading, useSuspenseQuery, file organization with features directory, MUI v7 styling, TanStack Router, performance optimization, and TypeScript best practices. Use when creating components, pages, features…
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…