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/joacod/skills/dx-firstnpx skills add joacod/skills --skill dx-firstgit clone --depth 1 https://github.com/joacod/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/joacod/skills/dx-first)<a href="https://agentmods.dev/skills/joacod/skills/dx-first"><img src="https://agentmods.dev/badge/skills/joacod/skills/dx-first.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.00095 | $0.01530 |
| Opus 5 | $0.00048 | $0.00765 |
| Sonnet 5 | $0.00019 | $0.00306 |
| Haiku 4.5 | $0.00010 | $0.00153 |
Grade A, and why
dx-first 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 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.
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 — 143 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DX First
Treat the development experience as a product surface of the repository. Optimize for three outcomes:
- Reduce cognitive load — make the next useful action findable and the common path understandable.
- Shorten feedback loops — give developers fast, trustworthy signals at the smallest useful scope.
- Protect flow — remove waiting, context switching, avoidable choices, and surprising recovery work.
This is a human-developer experience skill. Properties that help coding agents are useful when they also make the repository clearer and safer for people.
Select a mode
- DX Audit — inspect and test the repository, then report prioritized friction. Remain read-only except for safe, ignored artifacts needed for testing.
- DX Improve — perform a focused audit, implement the smallest coherent set of fixes, update affected documentation, and rerun the journeys.
- DX Review / Guard — evaluate a feature, plan, pull request, refactor, or tooling change for workflow regressions. Do not edit unless implementation was requested.
If the request is ambiguous, use Audit for questions and Improve only when the user explicitly asks to fix or implement something.
Operating workflow
Follow this pipeline; do not replace it with a checklist of missing tools:
inspect → classify → trace → test → find friction → prioritize → improve → verify → simplify
- Inspect. Read
references/repo-inspection.md. Map the repository's structure, instructions, manifests, runtime and package-manager declarations, task entrypoints, tests, CI, documentation, and environment configuration. Inspect enough implementation to verify important claims; do not read the entire codebase blindly. - Classify. Identify the repository type, ecosystem, runtime, package manager, monorepo boundaries, setup path, development process, validation strategy, release shape, and any developer-facing API, CLI, SDK, or tool. Evaluate only surfaces that apply.
- Trace. Start with the first contribution loop: clone → setup → run → change → validate. Then trace relevant daily tasks such as a targeted test, full validation, debugging, generated artifacts, migrations, CI reproduction, or release preparation.
- Test. Execute supported paths when safe and practical. Prefer the real command, help output, invalid-input behavior, targeted check, or setup step over assumptions from file presence. Record step counts or timings only when actually observed.
- Find friction. Read
references/friction-catalog.mdas needed. Record concrete symptoms, not vague quality judgments. Distinguish TESTED (executed or observed), VERIFIED (confirmed statically), and INFERRED (reasonable but unexecuted). - Prioritize. Order work approximately by developer impact × frequency × confidence ÷ implementation and maintenance cost. Fix blockers and repeated inner-loop friction before polish. Treat intentional tradeoffs as context, not automatic findings.
- Improve. Prefer removal, simplification, clearer existing commands, and ecosystem-native mechanisms. Add a dependency, wrapper, task runner, hook, container, service, or configuration layer only when it removes evidenced friction and its maintenance cost is justified.
- Verify. Rerun the affected journey and relevant repository checks. Compare the observed path before and after; do not claim an improvement from a file edit alone.
- Simplify. Remove stale instructions, duplicate paths, temporary helpers,
and complexity introduced during the fix. Read
references/quality-checklist.mdbefore finishing.
What ships with it
6 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.
- 5d ago First seen · 143 lines · 95 tokens per session scan A afec61d29c8d
dx-first is a skill published in the GitHub repository joacod/skills (3 stars, last pushed 7d ago), licensed MIT. It adds 95 tokens to every session and 1,530 once invoked, about $0.0005 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
channel_message
Use this skill to proactively send a one-way message to a user/session/channel, usually only when the user explicitly asks to send to a channel/session or when proactive notification is needed. First query sessions with qwenpaw chats list, then push with qwenpaw channels send.
webmcp
Open a user-provided URL in the host's built-in browser and use the page's MCP or WebMCP tools before browser UI automation for app communication or edits.
stay-within-limits
Use when long-running or parallel agent work must respect 5-hour and weekly usage limits by checking usage between waves, pausing near the cap, and resuming only when the window is clear.
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
crisis-holding
Draft crisis holding statements, journalist Q&A posture, and what-not-to-say guidance from confirmed incident facts, with a hard legal-counsel gate. Builds each statement through proven crisis-comms frameworks (holding-statement anatomy, SCCT, CAP order, the legitimate non-answer, bridge/flag/block).
find-journalists
Build, refine, dedupe, and enrich small fit-checked journalist lists for newsjack campaigns. Uses the newsjack CLI (preferred) or the medialyst MCP for news search and journalist enrichment, and falls back to a best-effort local mode with no verified contacts; the agent owns how returned data is organized.