From dynamo-skills
Author and maintain Dynamo agent skills. Use this skill whenever creating a new skill in .agents/skills/, updating an existing skill, fixing drift between canonical skills and Copilot/Cursor/Claude wrappers, or asking how to write effective skill instructions for the Dynamo repo.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dynamo-skills:dynamo-skill-writerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- Creating a new skill in `.agents/skills/`.
.agents/skills/.A request to add/update a skill, or a request to sync skill surfaces across Copilot/Cursor/Claude.
A concrete set of file edits and validation steps that:
.agents/skills/.github/scripts/sync_agent_wrappers.ps1 when Copilot exposure is needed.github/agents/.agents/README.md, .github/copilot-instructions.md, and AGENTS.md when applicable.agents/skills/<skill-name>/SKILL.md.canonicalSkills array in .github/scripts/sync_agent_wrappers.ps1../.github/scripts/sync_agent_wrappers.ps1./.github/scripts/sync_agent_wrappers.ps1 -Check -VerboseReport.agents/README.md.github/copilot-instructions.mdAGENTS.md.agents/skills/<skill>/SKILL.md and its assets//references/ files; update .agents/README.md and AGENTS.md.github/scripts/sync_agent_wrappers.ps1 or trigger wrapper regeneration — confirm Copilot surfacing intent before running the sync script.github/agents/ — they are always overwritten by the sync script, so manual edits are lost and create drift.agents/ is the canonical source of truth for skill logic. When mirrors conflict with canonical files, canonical wins..github/agents/ must never be hand-edited — they exist only as outputs of the sync script.name/description) should be concise and stable; churn in these fields breaks triggering accuracy.-Check mode stays reliable in CI..agents/skills/<skill-name>/SKILL.md with frontmatter (name, description).agents/README.md Quick Reference table.agents/README.md parity matrix (if cross-tool surfaced).github/scripts/sync_agent_wrappers.ps1 wrapper map.github/agents/* wrappers./.github/scripts/sync_agent_wrappers.ps1 -Check -VerboseReport.github/copilot-instructions.md skill listAGENTS.md skill listdynamo-skill-writer)Dynamo Skill Writer)"Create a skill that enforces consistent skill-sync behavior across Copilot, Cursor, and Claude."
Expected result:
.agents/skills/.github/agents/, sync script updated and passing in check modeAGENTS.md, .agents/README.md, and .github/copilot-instructions.md skill indexes updatedWrite a skill to handle one focused task well. Anticipating all requirements upfront produces bloated prompts that are harder to maintain and easier to overfit. Expand based on observed gaps instead.
The description field is what the agent reads when deciding whether to consult this skill. Vague descriptions cause undertriggering; overly broad ones cause false matches. Include the concrete contexts that should activate the skill, not just a general summary.
❌ Vague:
description: Helps with code tasks in Dynamo.
✅ Specific and triggering:
description: Write and review NUnit tests for DynamoCore following Dynamo testing
patterns, base class selection, and AAA structure. Use when writing test methods,
setting up test infrastructure, or reviewing tests for quality.
Include the framework and key constraints when they matter (.NET 10, NUnit, WPF Windows-only). Per skill-creator guidance: all "when to use" information belongs in the description, not just the body.
List commands in an early section with exact flags — not just tool names. An agent that doesn't know the flags will guess, and guesses are wrong.
❌ Missing flags:
Run dotnet test to execute tests.
✅ Executable:
dotnet test src/DynamoCoreTests/DynamoCoreTests.csproj --filter "Name~MyTest"
One real snippet showing the expected pattern beats three paragraphs describing it. Explain the why behind rules rather than issuing mandates — an agent that understands reasoning generalizes better than one following a checklist.
Show both ✅ correct and ❌ anti-pattern forms for non-obvious rules:
❌ Prose only:
Override BuildOutputAst and return a list of AssociativeNodes.
✅ Code example:
public override IEnumerable<AssociativeNode> BuildOutputAst(
List<AssociativeNode> inputAstNodes)
{
return new[] { AstFactory.BuildAssignment(
GetAstIdentifierForOutputIndex(0),
AstFactory.BuildFunctionCall("MyLib.MyFunc", inputAstNodes)) };
}
Use a three-tier system so the agent knows what requires human approval before acting:
.cs files)PublicAPI.Unshipped.txt, edit .resx files, rename public types).github/agents/, remove entries from PublicAPI.Shipped.txt, suppress CA2327/CA2328/CA2329/CA2330)When a skill touches multiple directories, state which it reads vs. writes. This prevents unintended side effects and makes it obvious what "done" looks like:
| Path | Access |
|---|---|
.agents/skills/<skill>/SKILL.md | Read + Write (canonical) |
.github/agents/*.md | Read only (generated — never hand-edit) |
.github/scripts/sync_agent_wrappers.ps1 | Read + Write (sync map) |
.agents/README.md | Read + Write (index) |
Put detailed reference material in assets/ or references/ sub-files and link from the skill. This keeps SKILL.md under ~500 lines and scannable.
## Assets & References
- **[quality-checklist.md](./references/quality-checklist.md)** — anti-patterns and PR checklist
- **[template.md](./assets/template.md)** — copy-paste skill template
---
name: dynamo-<skill-name>
description: One sentence covering what this skill does AND the specific contexts
that should trigger it. Be concrete. Be slightly pushy.
---
# Dynamo <Skill Name>
## When to use
- Bullet list of triggering scenarios.
## When not to use
- Redirect to the correct skill where applicable.
## Inputs expected
What the caller must provide.
## Output format
What the skill produces.
---
## Workflow
Numbered steps. Reference asset files for detail rather than inlining.
## Boundaries
- ✅ Always: ...
- ⚠️ Ask first: ...
- 🚫 Never: ...
## Assets & References
- **[asset.md](./assets/asset.md)** — description
npx claudepluginhub dynamods/skills --plugin dynamo-skillsCreates, updates, or validates SKILL.md agent skills including frontmatter authoring, bundled resource planning, and three-phase discoverability validation.
Create, synthesize, and iteratively improve agent skills following the Agent Skills specification. Handles source capture, authoring, registration, and validation.
Guides creation of new Claude Code skills from scratch, listing existing user/project skills, samples, current directory, and providing metadata templates for descriptions/tags.