Writing skills
Portable skills, agents, hooks, and Pi extensions for Claude Code, Codex CLI, Copilot, Cursor, Grok, and Pi.From the repository description
npx -y skills add alexei-led/cc-thingz --skill writing-skillsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
5.5 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Writing Skills
Create or reshape a skill so it triggers at the right time, stays lean, and matches this repo's source and build rules.
Read first
AGENTS.mdsection## Writing Agent/Skill Instructionsfor markdown signal rules.references/skill-principles.mdfor invocation, description, disclosure, split, and pruning rules.references/repo-conventions.mdforsrc/skills/, plugin manifests, overlays, generated outputs, and verification.src/skills/reviewing-instructions/references/scoring-rubric.mdonly after the draft exists and quality needs a final check.
Use this skill for
- creating a new skill
- rewriting a skill body or description
- splitting one skill into a skill plus references
- splitting one skill into two skills when the trigger or workflow boundary is real
- merging or extending overlapping skills after checking the neighboring skills
- pruning bloated skill prose, duplicate rules, or weak trigger phrasing
- adding target overlays or support files to a skill
Do not use this skill for
- scoring or linting prompt files without editing them; use
reviewing-instructions - broad agent, hook, extension, MCP, or package audits outside skill authoring;
use
evolving-config - ordinary docs, READMEs, or code comments; use
documenting-code - external library or API lookup; use
looking-up-docs - broad design debate before a concrete skill change exists; use
brainstorming-ideas
Workflow
- Find the source of truth under
src/skills/<name>/. Read the owningsrc/.agentbundler/packages/*.jsonand the closest neighboring skills before editing. Treatdist/as generated. - State the smallest correct shape:
- edit the current skill
- move conditional detail to
references/ - add a
.agentbundler/targets/<target>.jsonoverlay - split into two skills
- merge or fold into a neighboring skill
- Decide invocation mode and trigger surface.
- Model-invoked: use when the agent or another skill must discover it on its own.
- User-invoked: use when it is mostly a manual expert tool or reference.
- Keep one trigger per branch. Name real neighboring skills when overlap is possible. Put the NOT-clause in the description, not as an afterthought.
- Split content per the information hierarchy in
references/skill-principles.md. Keep only common-path rules in the main body. Move conditional detail toreferences/. Use Agent Bundler JSON overlays only when the base cannot stay vendor-neutral:frontmatterPatch,bodyPatch,files, anddeletedFiles. - Tighten wording until each line changes behavior. Delete generic agent advice, duplicated rules, and pretty prose.
- When adding or removing a public skill, update the owning package JSON in
src/.agentbundler/packages/. UpdateAGENTS.mdandREADME.mdwhen they expose the public skill surface or counts. - Before claiming done, run the narrowest verification that proves the new skill compiles and reads well.
- If quality is still uncertain, run
reviewing-instructionson the new or changed skill and apply the highest-value fixes.
Writing rules
- Bias toward predictability over style.
- Prefer headers, bullets, numbered steps, and short imperative lines.
- Keep each meaning in one place.
- Inline only what every trigger path needs.
- Use references for detail that only some branches need.
- Add an output contract when the skill produces findings, plans, edits, or artifacts.
- Add failure handling for ambiguous scope, missing inputs, generated files, unavailable tools, and verification gaps.
- Do not create a new skill just to rename an existing trigger.
- Do not add a target overlay when a vendor-neutral base already works.
Output
Write-capable role:
## Skill Update
Updated:
- `path` — <created or changed>
Plugin:
- <plugin name or unchanged>
Routing:
- Invocation: model-invoked | user-invoked
- Trigger surface: <main trigger terms>
- Excludes: <neighbor skills or none>
Verified:
- <check>: passed | skipped (<reason>)
Follow-up:
- <reviewing-instructions run, docs update, or none>
Read-only role:
## Proposed Skill Change
Files:
- `path`
Why:
- <routing, disclosure, or repo-convention reason>
Proposed shape:
- Invocation: model-invoked | user-invoked
- Plugin: <plugin>
- References or overlays: <list or none>
Patch summary:
- <small bullet list of edits>
Verification:
- <checks the applier should run, or not run — read-only role>
Failure handling
- Ambiguous request between new skill and neighbor-skill edit: ask one scoped question before editing.
- Existing skill already covers the job: prefer tightening or extending it over adding a duplicate.
- Plugin ownership is unclear: list the plausible plugins and ask which public surface the user wants.
- Generated files differ from source: edit
src/first, then regenerate. - Build or compile check is unavailable: report the exact gap and do not claim generated outputs are current.
- A target needs unique behavior everywhere: add an overlay only after the vendor-neutral base fails.
What ships with it: 2 files
6.7 KB alongside SKILL.md
references/
- repo-conventions.md3.3 KB
- skill-principles.md3.4 KB