Agent skill

Write Skill

by druxt in druxt/druxt.js

Creates or changes a druxt.js contributor skill in .agents/skills, with its evals and the tests that gate it.

MITAuto-check passedAgent Workflows

Install Write Skill

skills CLI
$ npx skills add druxt/druxt.js --skill write-skill -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install druxt/druxt.js write-skill --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/druxt/druxt.js.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/write-skill .claude/skills/write-skill && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
write-skill
GitHub stars
114
Token cost
~926 tokens
SKILL.md length
373 words
Files
2
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Creates or changes a druxt.js contributor skill in .agents/skills, with its evals and the tests that gate it.

  • Works in 3 steps: Red: write evals/tests.yaml first, then… → Green: write the smallest skill that… → Refactor: close the gaps the next run…
  • Editing a SKILL.md
  • SKILL.md covers Layout, SKILL.md, Test it first and Gates
  • Calls yarn and mise

What it does

Write Skill is an agent skill from druxt/druxt.js. Creates or changes a druxt.js contributor skill in .agents/skills, with its evals and the tests that gate it. Use when adding a skill, editing a SKILL.md or its evals, making a skill trigger more reliably, deciding whether guidance belongs in AGENTS.md or a skill, or when yarn lint:skills or a skill eval fails.

Its SKILL.md is about 930 tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/tests.yaml`).

It sits in Agent Workflows, covering LLM evaluation, Agent evaluation and testing and Agent instruction files. The repository describes itself as: The Fully Decoupled Drupal Framework. The licence is MIT.

When your agent uses it

  • Editing a SKILL.md
  • Making a skill trigger more reliably
  • Deciding whether guidance belongs in AGENTS.md
  • Yarn lint:skills

Example prompts

  • “Use the write-skill skill to create or changes a druxt.js contributor skill in .agents/skills, with its evals and the tests that gate it”
  • “/write-skill”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Red: write evals/tests.yaml first, then run the prompts without the skill and note what the agent gets wrong.
  2. Green: write the smallest skill that fixes those mistakes.
  3. Refactor: close the gaps the next run shows, then run the evals again.

What it can do on your machine

Read from SKILL.md and the folder at commit b07a3e3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • yarn
    • mise

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • agentskills.io
    • github.com
    • promptfoo.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Write Skill loads about 926 tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 373 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~926

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from druxt/druxt.js at commit b07a3e3, republished under its MIT licence (© druxt). 373 words, ~926 tokens.

Download SKILL.mdSave it as .claude/skills/write-skill/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
write-skill
description
Creates or changes a druxt.js contributor skill in .agents/skills, with its evals and the tests that gate it. Use when adding a skill, editing a SKILL.md or its evals, making a skill trigger more reliably, deciding whether guidance belongs in AGENTS.md or a skill, or when yarn lint:skills or a skill eval fails.

Write a skill

Skills hold the procedures contributors repeat. AGENTS.md holds the facts every session needs. If the guidance is one line that applies everywhere, put it in AGENTS.md. If it is a sequence of steps for one kind of task, write a skill.

Layout

text
.agents/skills/<name>/
├── SKILL.md          # frontmatter and instructions
├── evals/tests.yaml  # promptfoo tests for this skill
└── references/       # optional detail, loaded only when SKILL.md links it

.claude/skills is a symlink to .agents/skills, so Claude Code reads the same files as Codex, Cursor, Gemini CLI, Copilot and OpenCode.

SKILL.md

  • Frontmatter uses only the Agent Skills fields. name and description are required, and name matches the directory.
  • Name the skill as a verb and an object (open-pr, add-changeset), and check it does not shadow a built-in command such as /verify or /review.
  • The description says what the skill does and then "Use when ...", listing the situations that should load it. Leave the steps out of it, because an agent that reads a summary of the steps may skip the body.
  • Keep the body short (under 150 lines). Link to AGENTS.md, CONTRIBUTING.md and the scripts instead of copying them, so a change to the process has one place to change.
  • Never tell an agent to skip hooks, force push, pipe a download into a shell or read credentials.
Show full SKILL.md (179 more words)Show less

Test it first

Follow the order in superpowers' writing-skills (install superpowers at user scope to use it directly):

  1. Red: write evals/tests.yaml first, then run the prompts without the skill and note what the agent gets wrong.
  2. Green: write the smallest skill that fixes those mistakes.
  3. Refactor: close the gaps the next run shows, then run the evals again.

evals/tests.yaml holds promptfoo tests, run by .agents/evals/promptfooconfig.yaml:

yaml
- description: 'open-pr triggers: Open a PR for my druxt.js branch.'
  vars:
    request: Open a PR for my druxt.js branch.
    forbidden: ['gh pr merge', '--no-verify']
  assert:
    - type: skill-used
      value: open-pr
    - type: llm-rubric
      value: Targets the develop branch, not main
  • Add at least three prompts that should load the skill (skill-used) and three that should not (not-skill-used), including prompts that belong to a nearby skill.
  • forbidden lists regular expressions for shell commands the agent must not run or try.
  • An llm-rubric judges the answer. The eval sessions cannot write files, so word a rubric as "writes or proposes", not "creates".

Gates

bash
yarn lint:skills                       # agnix and the "Use when" check, in CI and before each commit
mise exec node@22 -- yarn skills:eval  # promptfoo, locally only (spends model tokens)
yarn lint:md && yarn lint:prose && yarn lint:cspell

To run one skill's tests, add --filter-pattern <name> to the promptfoo eval command in package.json.

Add the skill to the Skills table in AGENTS.md, with its name linked to its SKILL.md (.agents/skills/<name>/SKILL.md). Agents without skill discovery of their own find skills through that link, and agnix checks the link resolves.

© druxt, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/write-skill of druxt/druxt.js.

  • SKILL.md
  • evals/tests.yaml

Open the folder on GitHubat commit b07a3e3

Compare with similar skills

Write Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Write Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Write Skill this skilldruxt/druxt.js114—~926Automated safety check: PassMIT
Harness Evaltech-leads-club/agent-skills7k—~3.9kAutomated safety check: PassCC-BY-4.0
Octocode Graph Eval Loopbgauryy/octocode946—~1.6kAutomated safety check: PassMIT
Eval-Driven Development Harnessaffaan-m/ECC274k—~1.5kAutomated safety check: PassMIT
Benchmark Agentsvercel/vercel-plugin301—~3.6kAutomated safety check: PassCustom licence
Autocontextgreyhaven-ai/autocontext1.3k—~892Automated safety check: PassApache-2.0

Similar skills

  • Harness Eval

    tech-leads-club/agent-skills

    Evaluates a repository's agent harness (AGENTS.md, rules, skills) for broken paths, redundant instructions and usefulness, and stops at reports.

    7k GitHub stars~3.9k tokensUpdated 17 days ago
    Agent WorkflowsAuto-check passed
  • Octocode Graph Eval Loop

    bgauryy/octocode

    Runs a measurable keep-or-discard improvement loop against a runnable sensor, from framing a goal and KPI through baseline, judging and held-out verification.

    946 GitHub stars~1.6k tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed
  • Sets up eval-driven development for Claude Code workflows: capability and regression evals, three grader types and pass@k reliability metrics.

    274k GitHub stars~1.5k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Benchmark Agents

    vercel/vercel-plugin

    Official

    Advanced AI agent benchmark scenarios that push Vercel's cutting-edge platform features — Workflow SDK, AI Gateway, MCP, Chat SDK, Queues, Flags, Sandbox, and multi-agent orchestration.

    301 GitHub stars~3.6k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Autocontext

    greyhaven-ai/autocontext

    Runs LLM-based rubric judging on agent output and loops revise-and-rejudge rounds until a quality threshold is met.

    1.3k GitHub stars~892 tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Waza Skill Evaluator

    microsoft/waza

    Official

    Evaluates agent skills with a Go CLI that runs YAML-defined benchmarks, compares runs and scores the quality of SKILL.md frontmatter.

    1.4k GitHub stars~2k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from druxt/druxt.js

  • Add Changeset

    druxt/druxt.js

    Writes the changeset that versions a druxt.js package change and becomes its changelog entry.

    114 GitHub stars~763 tokensUpdated yesterday
    Auto-check passed
  • Address Review

    druxt/druxt.js

    Works through review comments and failing CI on a druxt.js pull request, fixing or answering each one until the pull request is green and every thread has a reply.

    114 GitHub stars~600 tokensUpdated yesterday
    Auto-check passed
  • Open PR

    druxt/druxt.js

    Prepares and opens a druxt.js pull request from a contributor's fork against develop, with a Conventional Commits title and the repository's template filled in.

    114 GitHub stars~771 tokensUpdated yesterday
    Auto-check passed
  • Start Work

    druxt/druxt.js

    Sets up a druxt.js change before the first edit, from the issue to a feature branch off develop, a short spec and a failing test.

    114 GitHub stars~887 tokensUpdated yesterday
    Auto-check passed
  • Triage Issue

    druxt/druxt.js

    Sorts a druxt.js issue by type and package, and reproduces it against the example Drupal backend or with a failing unit test before writing up the findings.

    114 GitHub stars~763 tokensUpdated yesterday
    Auto-check passed
  • Verify Change

    druxt/druxt.js

    Runs the druxt.js verification gate (lint, build, unit tests and the checks for whatever else changed) and reports the real results.

    114 GitHub stars~916 tokensUpdated yesterday
    Auto-check passed

Questions about Write Skill

What does Write Skill do?

Creates or changes a druxt.js contributor skill in .agents/skills, with its evals and the tests that gate it. js.agents/skills, with its evals and the tests that gate it.

When should I use Write Skill?

Write Skill fits situations like: editing a SKILL.md; making a skill trigger more reliably; deciding whether guidance belongs in AGENTS.md; yarn lint:skills.

How do I install Write Skill in Claude Code?

Run `npx skills add druxt/druxt.js --skill write-skill -a claude-code`. Or copy the skill folder (.agents/skills/write-skill in druxt/druxt.js) into .claude/skills/write-skill in your project. Claude Code loads it when a task matches its description.

How do I install Write Skill in Codex?

Run `npx skills add druxt/druxt.js --skill write-skill -a codex`. Or copy the skill folder (.agents/skills/write-skill in druxt/druxt.js) into .agents/skills/write-skill in your project. Codex loads it when a task matches its description.

Can I use Write Skill in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add druxt/druxt.js --skill write-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/write-skill, .gemini/skills/write-skill, .github/skills/write-skill and .opencode/skills/write-skill in your project.

What does Write Skill need to run?

Going by SKILL.md and its folder, Write Skill needs the command-line tools its instructions call (yarn and mise).

Does Write Skill access the network?

SKILL.md names 3 domains. As links in the text: agentskills.io, github.com and promptfoo.dev. This is read from the text; nothing was executed.

Is Write Skill safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Write Skill use?

Write Skill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Write Skill use?

About 926 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Write Skill?

Skills that share tags, products or a category with Write Skill: Harness Eval (tech-leads-club/agent-skills, 7k stars), Octocode Graph Eval Loop (bgauryy/octocode, 946 stars), Eval-Driven Development Harness (affaan-m/ECC, 274k stars) and Benchmark Agents (vercel/vercel-plugin, 301 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Write Skill?

druxt (a GitHub organization) maintains it in druxt/druxt.js, which has 114 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

Source: druxt/druxt.js on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.