skills-authoring
npx machina-cli add skill filmicgaze/MiChat-desktop/skills-authoring --openclawUse this skill when you need to create a new skill or revise an existing skill for the active profile.
What a skill is and why it exists
In MiChat, a “skill” is a small, reusable instruction bundle that teaches the agent how to handle a particular kind of task (tools to use, rules to follow, and the preferred workflow). Skills are loaded into the model’s context only when relevant, so they improve reliability and consistency without bloating every conversation.
Use skills to:
- make recurring tasks repeatable (same tools, same safety boundaries, same workflow)
- keep “how to do this well” out of ad-hoc chat prompts
- keep the default context light — skills are pulled in only when needed
Scope and ground rules
- Only edit skills that belong to the active profile (for example:
profiles/<profile>/skills/...). Do not edit global skills. - Stay within the skill’s folder boundary. Never write outside the profile’s
skills/tree. - MiChat does not execute bundled code. Do not create or rely on
scripts/.
Skill folder structure
A skill is a folder containing a required SKILL.md file.
Recommended minimum
profiles/<profile>/skills/<skill-name>/SKILL.md
Optional (only when specifically requested)
profiles/<profile>/skills/<skill-name>/references/(supporting docs)profiles/<profile>/skills/<skill-name>/assets/(templates, small resources)
Tools
Read/inspect (core tools)
list_skills— list installed skills (including scope/provenance).read_skill— read a skill’sSKILL.md.
Edit (skill_editing toolset)
skill_edit_list(skill_name, path?, max_items?, cursor?)— list files/folders within a single skill directory. Useful for confirming what exists underSKILL.md,references/, andassets/.skill_edit_write(skill_name, content, path?)— writeSKILL.md(default) or a file underreferences/orassets/.
Constraints (tool-enforced)
- Only the active profile’s skills are writable.
- Only
SKILL.md,references/…, andassets/…are allowed.scripts/is blocked. - Relative paths only; no
..traversal; no absolute paths. - No delete support.
SKILL.md format
SKILL.md must start with YAML frontmatter between --- lines, followed by Markdown instructions.
Required fields
name: lowercase with hyphens (match the folder name).description: include when to use the skill (write it as “Use this when …”).
Recommended MiChat header
---
name: my-skill-name
description: One sentence describing capability + when to use it.
metadata:
michat.requires_toolsets: "documents"
---
MiChat metadata conventions
Use metadata.michat.requires_toolsets to control whether a skill is available for a profile.
MiChat uses this field to filter global skills when required toolsets aren’t enabled; for profile skills it may be informational today, but keep it accurate for clarity and future compatibility.
- Value is a space-separated list of toolset names (for example:
"documents filesystem"). - Keep it minimal and truthful: list only the toolsets that are genuinely required to follow the skill.
Preferred heading structure
Use consistent headings so skills are easy to scan and evolve:
## When to use this skill## Tools## Workflow## Constraints and safety
Add additional ## sections only when they earn their keep.
Authoring workflow
-
Identify whether you’re editing a profile skill or creating a new one.
-
Draft the new
SKILL.mdcontent first (scratchpad is fine for drafting), then write it to disk. -
Keep the body tight:
-
Put the decision rule up front (“Use this skill when …”).
-
Prefer short, operational instructions over long explanations.
-
If a large example or background reference is useful, put it in
references/(only if requested).
- After writing, re-read the description and ask: “Would this description reliably trigger the right skill?” If not, sharpen it.
What not to do
- Don’t add
scripts/(MiChat won’t run them). - Don’t introduce new toolsets in
michat.requires_toolsetsunless they’re actually required. - Don’t make global policy changes here (this skill is for editing the active profile’s skills only).
Quick quality checks
- Folder name matches
name. - Description includes a clear “Use this when …” trigger.
- The instructions can be followed without hidden assumptions.
- Toolset requirements are correct and minimal.
Source
git clone https://github.com/filmicgaze/MiChat-desktop/blob/main/profiles/_global/skills/skills-authoring/SKILL.mdView on GitHub Overview
A MiChat skill is a small, reusable instruction bundle that teaches the agent how to handle a task—tools to use, rules to follow, and the preferred workflow. Skills load into the model’s context only when relevant, improving reliability without bloating conversations. Use this skill to create a new skill or revise an existing one for the active profile.
How This Skill Works
Skills are stored as SKILL.md inside profiles/<profile>/skills/<skill-name>/ and gated by metadata. Editing uses the skill_edit toolset to read or write SKILL.md, as well as optional references/assets. The profile-scoped rules ensure that only the active profile’s skills are modified and that global skills remain untouched.
When to Use It
- Create a new skill for the active profile
- Revise an existing skill for the active profile
- Add or update references/assets for a skill
- Ensure you’re editing only within profiles/<profile>/skills
- Verify and align the skill's toolset gating (metadata) with required toolsets
Quick Start
- Step 1: Identify whether you are editing an existing skill or creating a new one for the active profile.
- Step 2: Draft the SKILL.md content with frontmatter and the required sections, then save under profiles/<profile>/skills/<skill-name>/SKILL.md.
- Step 3: Use the skill_edit_write tool to save changes and verify with read_skill or list_skills.
Best Practices
- Always confirm you’re editing the active profile’s directory
- Keep SKILL.md updates tight: frontmatter + concise sections
- Draft changes separately before writing to disk
- Avoid creating or relying on scripts; only use allowed paths
- Use the recommended headings (When to use this skill, Tools, Workflow, Constraints and safety)
Example Use Cases
- Add a new skill under profiles/sales/skills/send-email/SKILL.md to standardize email generation
- Update profiles/support/skills/faq-responder with a refined workflow for customer queries
- Attach a quick-reference document under references/ for a skill in profiles/ops/skills/incident-handler
- Move a misfiled skill into the active profile’s skills folder to ensure proper scoping
- Adjust metadata.michat.requires_toolsets for a skill that now needs the documents toolset