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 workgit 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/work)<a href="https://agentmods.dev/skills/emdash-cms/emdash/work"><img src="https://agentmods.dev/badge/skills/emdash-cms/emdash/work/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/work"><img src="https://agentmods.dev/badge/skills/emdash-cms/emdash/work.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.00031 | $0.00511 |
| Opus 5 | $0.00015 | $0.00255 |
| Sonnet 5 | $0.00006 | $0.00102 |
| Haiku 4.5 | $0.00003 | $0.00051 |
Grade A, and why
work 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 yesterday.
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 — 38 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Work on an approved issue
A maintainer approved this issue for delivery. Classify the requested work before editing, then use the matching path below. The work command replaces the old choice between fix and implement; the issue type determines the method and result fields.
Bug path
For a reported defect:
- Reproduce the reported behavior with the smallest meaningful failing test or browser journey.
- Diagnose the defect in the current source and verify that the proposed behavior is correct.
- Add the regression test before the fix, implement the smallest backwards-compatible correction, and rerun the focused test.
- Set
fixed: trueonly afterpublish_candidatesucceeds. Report the reproduction and verification evidence.
If reporter-only information prevents a reproduction attempt, report verdict: "unclear" and ask for that specific information. If the behavior is intended or the fix needs a product, security, migration, or breaking-change decision, do not edit. Report the evidence and decision needed.
Enhancement or task path
For approved new behavior, documentation, maintenance, or another directed task:
- Treat the issue and maintainer directive as the specification. Resolve details from existing APIs and conventions without inventing a bug verdict.
- Implement the smallest complete change and add focused behavior coverage through existing test infrastructure.
- Run the affected checks and publish the candidate even if a relevant check still fails after a reasonable repair attempt.
- Set
implemented: trueonly afterpublish_candidatesucceeds. Report the observable change and exact verification results.
Shared constraints
- Read
AGENTS.mdand the relevant implementation and tests before editing. - Use
edit_fileorwrite_filefor direct edits. Useexecfor local Git operations, generators, formatters, tests, builds, and conflict resolution; shell writes are checkpointed into the durable workspace. - Do not edit
.github/workflows, push from the execution container, or perform unrelated cleanup. - Add a changeset when a published package changes. Keep user-facing documentation useful to someone adopting the change.
- Use
fixedfor a bug orimplementedfor an enhancement/task. Never set both. - Run one final focused verification pass after the last edit, then call
publish_candidateandreport_resultexactly once.
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.
- yesterday First seen · 38 lines · 31 tokens per session scan A 1e459a83d873
work is a skill published in the GitHub repository emdash-cms/emdash (12,273 stars, last pushed today), licensed MIT. It adds 31 tokens to every session and 511 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-09-09.
Other skills, from other repositories
pn-systematic-debugging
Root cause analysis with triage mode — Phase 0 feedback loop, investigate first, one question max, then isolate, hypothesize, confirm. Outputs TDD fix plan with RED-GREEN cycles; optional GitHub issue via GitHub MCP. Use when debugging a failure or bug.
pn-discipline-philosophy
Defines engineering discipline: test-first, root-cause before fix, minimal change, measure-before-optimize, review/second look, evidence over guess. Use when implementing features, debugging, planning, or establishing development practices. Aligns with TDD, systematic debugging, and RCA practices (current).
adversarial-reviewer
Adversarial code review that assumes bugs exist and hunts for them. Use when asked to review code, find bugs, audit for correctness, stress-test a PR, or when someone says "tear this apart" or "what's wrong with this". Give no benefit of the doubt — every line is guilty until proven innocent.
systematic-debugging
4-phase root cause debugging: understand bugs before fixing.
build-test
Run the project's build / typecheck / lint / test commands and emit the build.passing + tests.passing signals devloop convergence reads.
server-side-calls
Call tRPC procedures directly from server code using t.createCallerFactory() and router.createCaller(context) for integration testing, internal server logic, and custom API endpoints. Catch TRPCError and extract HTTP status with getHTTPStatusCodeFromError(). Error handling via onError option.