Internalize skill
This skill automates the process of moving externally installed skills to the project's internal skills/ directory, tagging them as internal, and optionally renaming and attributing them.
Workflow
Identify Target Skills & Options:
- Check the
.agents/skills/(or.agent/skills/) directory for subdirectories. - If the user explicitly named a skill (e.g., "internalize the research skill"), focus only on that one.
- If the user was vague, clarify which skill to target.
- Ask the user if they would like to:
- Rename the skill (e.g., change
creating-changesetstoarkenv-changesets). - Add attribution details (e.g.,
original_author, originaloriginrepository url).
- Rename the skill (e.g., change
- Check the
Move/Rename to Internal:
- Move the identified skill directory to
skills/<new-name>(where<new-name>defaults to the original name if no rename is requested).
- Move the identified skill directory to
Update Frontmatter & Metadata:
- Update the
namefield in theSKILL.mdfrontmatter to<new-name>. - Update the
metadatablock to includeinternal: true. - If attribution details were specified, add:
original_author: The original author's name.origin: The URL or GitHub repository of the original skill.author: The current maintainer or team name.
- Update the
Append Markdown Credits (Optional):
- If the skill was renamed or customized, append a
## Creditsor## Acknowledgementssection at the bottom of the skill'sSKILL.mdfile linking back to the original source.
- If the skill was renamed or customized, append a
Implementation details
The skill should rely on standard bash commands for efficiency and portability.
Moving & renaming skills
# If keeping the same name:
mv .agents/skills/<old-name> skills/
# If renaming:
mv .agents/skills/<old-name> skills/<new-name>
Updating metadata
Use code edits or awk to update SKILL.md frontmatter. The logic should:
- Update
name: <new-name>at the top. - Insert or merge the
metadatablock to ensureinternal: true, plus any specified attribution fields.
Example of expected final frontmatter structure:
---
name: arkenv-changesets
description: Creates changesets for semantic versioning.
metadata:
author: Yam Borodetsky
original_author: Ollie Shop
origin: github.com/ollieshop/creating-changesets
version: 1.0.0
internal: true
---
Safety checks
- Ensure the root
skills/directory exists before moving. - Verify
SKILL.mdexists in the target directory before attempting to edit it. - Do not overwrite existing internal skills under
skills/unless explicitly confirmed by the user.