vishwakarma
AGENTS.md1 starsChanged 50 days agoApache-2.0View on GitHub
Vishwakarma compiles one authored skill set into thirteen agent formats. This document covers what each target receives, where it lands, and what is unavoidably lost in translation. Commands below assume the CLI is on your path — see Getting started for the one-line alias (the packages are not yet on npm). Every agent invented its own way of being given standing instructions. One reads Markdown with YAML frontmatter from a skills directory. Another reads .mdc files with a different frontmatter…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,439 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository45 other files it gives its agents.
- 3d-game-assetsSkill
- accessibility-evidenceSkill
- accessible-componentsSkill
- agent-memorySkill
- agent-orchestrationSkill
- code-qualitySkill
- code-reviewSkill
- colour-systemsSkill
- component-architectureSkill
- design-judgmentSkill
- design-reviewSkill
- design-tokensSkill
- engineering-disciplineSkill
- information-architectureSkill
- interaction-designSkill
- interface-copySkill
- interface-statesSkill
- layout-compositionSkill
- media-driven-motionSkill
- methodology-feedbackSkill
- micro-interactionsSkill
- mobile-performanceSkill
- motion-designSkill
- motion-physicsSkill
- multiplayer-game-publishingSkill
- platform-androidSkill
- platform-appleSkill
- platform-webSkill
- procedural-surfacesSkill
- public-api-integrationSkill
- rendering-performanceSkill
- responsive-architectureSkill
- reverse-engineeringSkill
- scroll-experiencesSkill
- seo-and-metadataSkill
- ship-readinessSkill
- skill-discoverySkill
- surface-and-depthSkill
- test-driven-developmentSkill
- theming-systemsSkill
- typographic-systemsSkill
- ui-generation-workflowSkill
- vishwakarma-studiosSkill
- visual-feedback-loopSkill
- webgl-experiencesSkill
The file
We split this agents.md into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Every agent invented its own way of being given standing instructions.
- Distinctive: line 99
Every file in the rules directory is concatenated into the system prompt.
- Distinctive: line 147
All of these are written into a delimited section so your own instructions survive.
- Distinctive: line 163
No instruction files are written.
- Very specific: line 232
By what is going wrong: If output looks generic, install design-judgment.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Agent integration
Vishwakarma compiles one authored skill set into thirteen agent formats. This document covers what each target receives, where it lands, and what is unavoidably lost in translation.
The short version
Commands below assume the CLI is on your path — see Getting started for the one-line alias (the packages are not yet on npm).
vishwakarma add --all # every detected agent
vishwakarma add --target cursor # one specific agent
vishwakarma targets # what's supported and where it installsWhy translation is necessary at all
Every agent invented its own way of being given standing instructions. One reads Markdown
with YAML frontmatter from a skills directory. Another reads .mdc files with a different
frontmatter dialect from a rules directory. A third reads one large Markdown file at the
repository root. They express roughly the same thing, and none of them can read each
other's.
The consequence is that anyone publishing agent guidance maintains N copies of the same knowledge and lets N−1 of them rot. Vishwakarma authors once and compiles, so the copies cannot diverge.
The format is a deliberate superset of the most constrained target, which means every adapter's job is subtraction rather than invention. That asymmetry matters: subtraction is mechanical and testable, invention is where drift comes from.
What differs between targets
Three properties determine how much a target can carry.
Supporting files. Some agents load a skill's main file and can fetch adjacent reference files on demand. That maps exactly onto our reference tier, so those targets lose nothing. Targets without the mechanism must inline or drop the deep material.
Activation. Some agents decide which guidance to load from a description or a glob pattern. Others load everything they find, every time. That difference is the single largest factor in what an installation costs.
Budget. An agent that injects its instruction file into every request needs that file to stay small. An agent that loads on demand can afford depth.
Per-target detail
Claude Code
.claude/skills/<skill-id>/SKILL.md
.claude/skills/<skill-id>/references/<reference-id>.mdThe closest match to the source format. Skills live in their own directories with frontmatter carrying the name, description, and an optional tool allowlist, and supporting files sit alongside to be read when needed. Progressive disclosure works as designed: descriptions are always available, bodies load on activation, references load on request.
Nothing is lost in this translation.
Cursor
.cursor/rules/<skill-id>.mdcRule files carry frontmatter that drives activation: alwaysApply for unconditional rules,
globs for file-triggered ones, and a description the agent matches against when
deciding to pull a rule in itself.
Our activation model maps onto those three. alwaysApply is never set unless a skill
explicitly asked for it, because an always-applied rule is charged against context on every
single request and a handful of them will crowd out the code the user actually wants
attention on.
There is no supporting-file mechanism, so reference material is not installed. Skills compile at full detail when conditionally activated, and at compact detail when always applied.
Windsurf
.windsurf/rules/<skill-id>.mdSimilar to Cursor, with tighter practical size limits. Content compiles at compact detail: rule statements and rationales survive, extended examples do not.
Cline
.clinerules/<skill-id>.mdEvery file in the rules directory is concatenated into the system prompt. Per-skill files therefore do not buy on-demand loading here — everything installed is loaded on every request.
The CLI reports this rather than hiding it:
Cline always 13.0k tok on demand 0 tok ← heavyInstall a focused subset here, or use the MCP target instead.
Roo Code
.roo/rules/<skill-id>.mdRules apply across modes unless placed in a mode-specific directory. Files load together, so the same advice applies: keep the installed set small.
Continue
.continue/rules/<skill-id>.mdMarkdown rule files with optional frontmatter, loaded from the project rules directory.
OpenAI Codex, Gemini CLI, GitHub Copilot, Zed, Aider
AGENTS.md (Codex, and the universal fallback)
GEMINI.md (Gemini CLI)
.github/copilot-instructions.md (Copilot)
.rules (Zed)
CONVENTIONS.md (Aider)These are single-file targets: the whole file is loaded on every request. That constraint drives what we emit.
Including full bodies for thirty-four skills would produce a preamble of several hundred thousand tokens, which makes the agent worse rather than better. So the file contains an index of what is available, the full body of any skill marked always-on, and the rules only from everything else — strongest first, since attention degrades over a long context and prohibitions carry the highest consequence.
All of these are written into a delimited section so your own instructions survive.
AGENTS.md as the universal fallback
The AGENTS.md convention is read by a growing number of tools and is the right target for
any agent without a dedicated adapter. Codex and the universal target write the same file,
so installing both is harmless rather than duplicative.
Model Context Protocol
.mcp.jsonThe most efficient integration, and the one that behaves differently in kind.
No instruction files are written. Instead the config registers a server, and skills, tokens, palettes, contrast checks, and audits are fetched when the agent asks. Progressive disclosure is enforced by the protocol rather than requested politely in prose, so the standing context cost is a list of tool names.
It also exposes things a Markdown file cannot: real computation. An agent can ask whether a colour pair passes contrast and get an arithmetic answer with a corrected colour attached, rather than estimating.
Works with any MCP-capable client. See getting started for the tool list.
Protecting your own instructions
Files we create in directories we own are replaced outright. Shared files are written into a delimited section:
# My project
Always use tabs. Never touch the legacy folder.
<!-- vishwakarma:begin — generated, do not edit between these markers -->
...generated guidance...
<!-- vishwakarma:end -->Re-syncing rewrites only the region between the markers. Uninstalling removes it and leaves everything else, deleting the file only when nothing but whitespace remains.
New content is appended rather than prepended. The top of a hand-written instruction file usually carries the author's most important context, and displacing it would change the emphasis of a document we do not own.
This is tested directly, because getting it wrong is the failure that makes someone uninstall a tool and never return.
Reading the cost report
vishwakarma add --all
Claude Code always 157 tok on demand 13.0k tok
Cursor always 157 tok on demand 13.0k tok
Cline always 13.0k tok on demand 0 tok ← heavy
MCP always 0 tok on demand 13.0k tokAlways is what the agent carries on every request, whether or not it is relevant. On demand is what it can reach for when it is.
The numbers are estimates from character counts, not exact tokeniser output. They are accurate enough to make the decision they exist to inform, which is whether an installation is about to eat a meaningful share of the context window.
Above roughly eight thousand always-loaded tokens, the CLI suggests a narrower selection or the MCP target.
Choosing what to install
By project type. A marketing site wants design-judgment, motion-design,
micro-interactions, typographic-systems. A dashboard wants information-architecture,
layout-composition, rendering-performance, accessible-components. A design system
wants design-tokens, theming-systems, colour-systems, component-architecture.
By agent budget. Generous targets can take the full catalog. Constrained ones should get
design-judgment and ui-generation-workflow and little else — those two carry the most
value per token, because one covers judgment and the other covers process.
By what is going wrong. If output looks generic, install design-judgment. If it breaks
on mobile, responsive-architecture. If animations feel cheap, motion-design. If it fails
audits, accessible-components.
If the artefact is a game. None of the above applies to a simulation. Install
vishwakarma-studios instead, and add the interface skills only for the parts
that are interface — the launcher, the settings screen, the store page. Studios ships 68
references, so it is worth noting that on the single-file targets only its rules survive;
Claude Code and MCP are the two targets that carry the reference tier intact.
Adding a new agent
Agents appear regularly. An adapter answers three questions — where instructions live, what frontmatter is understood, and how much context is affordable — and everything else is shared.
See the Contributing guide. The important discipline is that an adapter must not render its own body: shared rendering is what keeps the targets from drifting apart while still appearing to work.
When guidance is ignored
The most common cause is a description that reads as a summary rather than a trigger.
Several agents decide whether to load a skill from that one string, so it must say when to
use this.
Bad: "Comprehensive guidance on typography, scales, and font loading."
Good: "Use when choosing typefaces, building a type scale, or loading webfonts."The validator warns about descriptions that do not contain a trigger word, which catches most instances of this before install.
The second most common cause is budget: on a single-file target, guidance buried after forty thousand tokens of other guidance is guidance the agent will not reliably apply. Install less.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

