Create EmDash CMS plugins with hooks, storage, settings, admin UI, API routes, and Portable Text block types. Use this skill when asked to build, scaffold, or implement an EmDash plugin, or when creating plugin features like custom block types, admin pages, or content hooks.
72
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Low
Low-risk findings.
2 low severity findings. Worth noting, but not necessarily harmful.
The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.
Runtime workflow: plugin HTTP API route handlers defined via `definePlugin({ routes })` ingest request bodies/query parameters through `ctx.input` (e.g., `routes: { ... handler: async (ctx) => { const { ... } = ctx.input; } }`), meaning outsider-authored free text can be posted to the endpoints.
The skill fetches instructions or code from an external URL at runtime, and the fetched content directly controls the agent’s prompts or executes code. This dynamic dependency allows the external source to modify the agent’s behavior without any changes to the skill itself.
The hooks example returns an external-script contribution that will be fetched and executed at runtime in users' browsers (src: https://www.googletagmanager.com/gtm.js?id=GTM-XXXXX) and includes a noscript iframe (https://www.googletagmanager.com/ns.html?id=GTM-XXXXX), which are runtime external resources that execute remote code.
1717d31
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.