Best for
- The user says "make this description pushier", "this description is weak",
- Called from within the Draft phase of one of the writing skills
- Auditing a skill flagged by auditskilldescriptions.ts as too-short,
event4u-app/agent-config/src/skills/description-assist/SKILL.md
Use when polishing a skill/rule/command/guideline frontmatter description — pushier phrasing, trigger coverage, undertrigger audit — even if the user just says 'make this pushier'.
Decision brief
Use when polishing a skill/rule/command/guideline frontmatter description — pushier phrasing, trigger coverage, undertrigger audit — even if the user just says 'make this pushier'.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/description-assist"Inspect the Agent Skill "description-assist" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/description-assist/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Open the target file. Read the description: value in full. If the value is missing, abort and route to the relevant writing skill instead.
The user says "make this description pushier", "this description is weak", "will this ever fire", "rewrite the description". Called from within the Draft phase of one of the writing skills (skill-writing, rule-writing, command-writing, guideline-writing). Auditing a skill flagge…
No silent edits. Every proposed variant is a suggestion presented with numbered options; the user picks before anything is written. No Claude API grading loop. You reason from your context only. No separate AI pass evaluates your suggestions. Max two rounds. Propose → reject → r…
Open the target file. Read the description: value in full. If the value is missing, abort and route to the relevant writing skill instead.
Normative source: skill-quality § Description Triggering.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Open the target file. Read the `description:` value in full. If the valueThe documentation asks the agent to create, modify, or delete local files.
Do not edit the file yet. Wait for the user's numbered pick or free-textThe documentation asks the agent to create, modify, or delete local files.
Do NOT edit the file before the user picksEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
skill-writing, rule-writing, command-writing, guideline-writing).audit_skill_descriptions.ts as too-short,
no-trigger-prefix, or description_too_long in skill_linter.ts.Do NOT use this skill when:
description. Trigger phrases, name, and
body belong to their own turns.Open the target file. Read the description: value in full. If the value
is missing, abort and route to the relevant writing skill instead.
Normative source: skill-quality § Description Triggering.
| Check | Pass when… |
|---|---|
| Length | ≤ 200 characters (soft cap; linter warns description_too_long) |
| Trigger prefix | Starts with "Use when …" or equivalent trigger phrasing |
| Trigger classes | Names ≥ 2 of: domain, symptom, user phrasing, tool, file type |
| Undertrigger tail | Ends with "… even if the user doesn't say {name}" or equivalent |
Report which checks pass / fail in one compact line — not a long essay.
If the target is a skill, check for a trigger-eval report:
.agent-src.uncondensed/skills/{name}/evals/triggers.json — the expected-trigger corpusevals/last-run.json — the most recent runner output (see
scripts/skill_trigger_eval.ts)If last-run.json exists and contains failed queries for this skill,
extract the failure patterns and use them to inform step 3 variants.
Example:
Eval evidence (evals/last-run.json, 2026-04-21, router=anthropic):
• 3/5 should-trigger passed
• failed queries share phrasing: "my E2E keeps flaking on CI"
• → one variant in step 3 should incorporate "flaky CI" vocabulary
If no last-run.json exists, skip this step silently. Do not run the
evaluator from this skill — eval execution is a separate user action
(costs API tokens, see road-to-trigger-evals.md Phase 2).
For rules, commands, and guidelines: skip this step entirely — they do not have evals.
Each variant:
user-interaction rule).Format:
Current (156 chars, missing undertrigger tail):
"Use when writing Playwright E2E tests — browser automation, visual
regression, Page Objects."
> 1. Adds undertrigger tail, 189 chars
> "Use when writing Playwright E2E tests — browser automation, visual
> regression, Page Objects — even if the user doesn't say Playwright."
> 2. Adds symptom trigger 'flaky CI', 193 chars
> "Use when writing Playwright E2E tests — flaky CI, Page Objects,
> fixtures, visual regression — even if the user doesn't say Playwright."
> 3. Skip — keep current
Do not edit the file yet. Wait for the user's numbered pick or free-text counter-proposal.
Only after the user picks:
.agent-src.uncondensed/{kind}/{name}.{md,SKILL.md}../scripts-run src/scripts/skill_linter {path} — must report 0 FAIL.If the user rejects all variants twice, ask one clarifying question (e.g. "What symptom phrase best captures when this skill should fire?") and stop. Do not loop further.
last-run.json was founddescription — out of scope, separate turn.scripts/skill_trigger_eval.ts from inside this skill — eval
execution spends API tokens and is a separate user actionOn cloud surfaces (Claude.ai Web, Skills API) the package's
scripts/audit_skill_descriptions.ts, scripts/skill_linter.ts,
and scripts/skill_trigger_eval.ts are not reachable. The skill
still applies — with prose-only inspection:
Inspection verdict (good — compact):
2/4 pass. Missing: trigger prefix ("Use when …"), undertrigger tail. Length OK (142), trigger classes OK (domain + symptom).
Inspection verdict (bad — essay):
After reviewing the description, I noticed it has several areas that could be improved. For instance, the length is fine, but the phrasing could be stronger. Additionally, we should consider…