EmDash is a content management system for creating and managing websites, built with TypeScript and Astro and deployable on Cloudflare or Node.js with SQLite. It is for site owners and developers who want WordPress-like administration, templates, and plugins without PHP or separate hosting.
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 emdash-cms/emdash --skill writing-emdash-docsgit clone --depth 1 https://github.com/emdash-cms/emdashWrote 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/emdash-cms/emdash/writing-emdash-docs)<a href="https://agentmods.dev/skills/emdash-cms/emdash/writing-emdash-docs"><img src="https://agentmods.dev/badge/skills/emdash-cms/emdash/writing-emdash-docs/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/emdash-cms/emdash/writing-emdash-docs"><img src="https://agentmods.dev/badge/skills/emdash-cms/emdash/writing-emdash-docs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Prompt Injection · line 28 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
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.00085 | $0.01588 |
| Opus 5.5 | $0.00034 | $0.00635 |
| Sonnet 5.5 | $0.00017 | $0.00318 |
| Haiku 4.5 | $0.00009 | $0.00159 |
Grade A, and why
writing-emdash-docs 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 26d 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 — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Writing EmDash docs
Produce documentation that helps a specific reader complete a task or understand a concrete part of EmDash. Treat factual accuracy, information design, and sentence-level style as separate checks.
Load the right context
Load only the context needed for the artifact:
- Read
AGENTS.mdfor repository-wide rules. - For public documentation, read
docs/src/content/docs/contributing/docs-style-guide.mdxcompletely. - Read references/docs-practice.md when creating or restructuring a page, changing a task path, reviewing accessibility or information architecture, or writing substantial examples.
- Read references/anti-slop.md for prose-heavy revisions, de-slopping, or humanization. A small factual correction does not require loading it.
- Read nearby pages of the same type to preserve established structure, terminology, frontmatter, imports, and Starlight component usage.
- Inspect the implementation, types, tests, command help, or configuration that establishes every technical claim. Do not rely on memory when the repository can answer the question.
- For changesets, read .changeset/README.md completely. Treat the entry as public CHANGELOG documentation and review whether affected readers can recognize the surface, understand the observable effect, and act on any migration guidance. Frontmatter validity and technical accuracy do not make an unhelpful entry acceptable.
Define the reader and outcome
State the intended outcome privately in one sentence: "After reading this, the reader can ..." Use it to decide what belongs on the page.
Classify the document before choosing its structure:
| Document | Reader need | Default shape |
|---|---|---|
| Tutorial | Learn through a reliable, guided experience | Visible goal, prerequisites, one path, expected results after each stage, recap |
| Task guide | Complete one practical task | Outcome, prerequisites, ordered actions, result, optional next step |
| Concept or explanation | Build an accurate mental model | Definition, relevant behavior, concrete example, implications |
| Reference | Look up exact behavior | Signature or syntax, parameters, defaults, return value, errors, examples |
| Troubleshooting | Diagnose and resolve a known failure | Exact symptom, context, cause or diagnostic checks, workaround or resolution, verification |
| Upgrade or migration guide | Make an existing project work after a change | Previous behavior, current behavior, required action, minimal diff |
| README or contributor guide | Start or contribute quickly | Short purpose, fastest working path, common operations, deeper links |
| Technical specification | Evaluate and implement a decision | Goal, constraints, decision, interfaces and data flow, failure handling, rollout, verification, open decisions |
What ships with it
3 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.
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.
- 26d ago Changed · +2 lines 4ed2bf13155e
- 1mo ago First seen · 100 lines · 85 tokens per session scan A 7f90b5776f83
writing-emdash-docs is a skill published in the GitHub repository emdash-cms/emdash (13,659 stars, last pushed today), licensed MIT. It adds 85 tokens to every session and 1,588 once invoked, about $0.0003 per session on Opus 5.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 skills, from other repositories
emdash-cli
Use the EmDash CLI to inspect and manage an EmDash instance from the command line, including content, schema, media, taxonomies, menus, search, authentication, seeds, migrations, generated types, and whole-site export and import.
adversarial-reviewer
Stress-test a code change for concrete correctness defects, unsafe assumptions, and failure modes. Use when the user explicitly asks for an adversarial review, a deep bug hunt, or to tear a change apart. Do not use for ordinary review, style feedback, or general improvement suggestions.
wordpress-theme-to-emdash
Port WordPress themes to EmDash CMS. Use when asked to convert, migrate, or port a WordPress theme to EmDash, or when creating an EmDash site that should match an existing WordPress site's design. Handles design extraction, template conversion, and EmDash-specific features like menus, taxonomies, and widgets.
triage-contributor-pr
Triage open pull requests from external contributors to prisma/orm and produce a per-PR verdict with evidence. Use when a maintainer asks to triage, evaluate, assess, or review the queue of incoming contributor PRs, to decide whether a fork PR is safe to run CI on, to check whether a PR is in scope for its version…
review-implement-phase
Implements triaged review actions, commits focused fixes, and posts Done plus resolves threads. Use when the user wants only the implementation phase of the review-framework workflow.
review-triage-phase
Produces canonical review actions from fetched review state and renders action markdown. Use when the user wants only triage/action-planning for the review-framework workflow.