Custom skill development
Why build custom Skills
When teams repeat a specialist workflow, wrap it as a Skill:
- Reuse — everyone triggers it the same way
- Consistency — process / standards / guardrails baked in
- Evolution — bump versions, everyone benefits uniformly
- Governance — security audit, permissions, usage analytics
Skill directory layout
Authoring SKILL.md
Front matter (metadata)
Body (instructions for the Agent)
The body lands in system prompt or tool hints:
description gates whether the Skill fires. The sharper it is, the fewer false positives.
Development workflow
1. Ideate — use skill-architect
skill-architect walks five stages: goal, triggers, I/O, constraints, risks — and emits a skeleton.
2. Scaffold
3. Write SKILL.md
Center on description. Reference existing skills (e.g. AgentFlow/src/skills/builtin/docx/SKILL.md).
4. Optional dedicated tools
Place Python under tools/. Signatures surface to the Agent automatically:
5. Tests
6. Local debug
7. Publish
Best practices
| Tip | Detail |
|---|---|
Sharp description | Spell out “invoke” vs “do not invoke” |
| Least privilege | Expose only needed tools |
| Rollback-safe | Provide dry-run and snapshots for writes |
| Abuse-resistant | Caps on size, rate, permissions |
| Reference, don’t inline | Large rules → references/, lazy load to save tokens |
| Idempotent | Same input → same outcome |
| Tests | Happy path + ≥2 failure paths |
Anti-patterns
- Stuffing business logic into SKILL.md (token-heavy)
- Hard-coded secrets in Skills
- Tools with uncontrolled side effects (global env mutation)
- Tight coupling between Skills