--- name: adapting-external-skills description: "Import and adapt skills from other agent ecosystems (Claude Code, Cursor, Copilot) into Hermes-compatible skills. Use when cloning an external plugin/skill repo and merging or porting its skills into the Hermes skill library." version: 1.0.0 author: Hermes Agent license: MIT metadata: hermes: tags: [skills, import, adaptation, migration, cross-platform, compound-engineering] related_skills: [hermes-agent-skill-authoring, using-superpowers, brainstorming, plan] --- # Adapting External Skills to Hermes Port skills from other agent ecosystems into Hermes-native skills. Other ecosystems use different tool names, file paths, dispatch mechanisms, and rendering — verbatim copies break. ## When to Use - User clones an external skill/plugin repo (Claude Code, Cursor, Copilot, Windsurf, etc.) - User asks to "merge", "port", or "adapt" external skills into existing Hermes skills - User wants to compare external skills with installed Hermes skills and adopt useful concepts ## Workflow ### 1. Clone and Survey ```bash git clone --depth 1 /tmp/ find /tmp/ -name "SKILL.md" -o -name "*.yaml" -o -name "*.yml" | head -50 ``` Catalog every skill file found. Note sizes — large skills (>40k chars) may need selective extraction rather than full port. ### 2. Read Source + Target Skills in Parallel Batch all reads: - `read_file` for every external SKILL.md - `skill_view` for every potentially-overlapping Hermes skill - Do this in one parallel batch — don't serialize ### 3. Classify Each External Skill For each external skill, assign one of: | Classification | Action | Criteria | |---|---|---| | **Merge** | `patch` existing Hermes skill | Covers territory an existing Hermes skill handles | | **Create** | New Hermes skill via `skill_manage(action='create')` | Unique capability, no Hermes equivalent (check `skills_list` first) | | **Skip** | Drop | Too ecosystem-specific (e.g., Xcode-only, Slack-API-only, proprietary internals) | ### 4. Adapt Tool Mappings This is the critical step — external skills reference tools that don't exist in Hermes. See `references/tool-mapping-table.md` for the complete mapping. Key substitutions: | External (Claude Code) | Hermes Equivalent | Notes | |---|---|---| | `Skill` tool | `skill_view(name=...)` | Loading skills | | Sub-agent dispatch | `delegate_task(goal=..., context=...)` | Batch mode for parallel | | `execute_code` for tool orchestration | `execute_code` (same) | Available but `delegate_task` is NOT callable from inside it | | Manual file reads | `read_file(path=...)` | Always prefer over `cat`/`head` | | Manual file search | `search_files(pattern=..., path=...)` | Always prefer over `grep`/`find` | | `docs/plans/` | `.hermes/plans/` | Hermes plan directory | | HTML rendering / visual output | `browser_vision` or markdown tables | Remove HTML, use native MD | | `STRATEGY.md` / `CONCEPTS.md` | Keep as-is | Project-level docs, not Hermes-specific | ### 5. For Merges — Patch Existing Skills Use `skill_manage(action='patch')` to add new subsections, phases, or pitfalls to existing Hermes skills. Rules: - Mark added content with the source name: `(Compound Engineering)` or `(from )` so origins are traceable - Don't duplicate — add only what the existing skill doesn't cover - Update `related_skills` in frontmatter if the merge introduces new cross-references - Keep the existing skill's structure and tone intact ### 6. For New Skills — Write Full SKILL.md Create with `skill_manage(action='create')`: - Full Hermes frontmatter (`name`, `description`, `version`, `author`, `license`, `metadata.hermes.tags`, `metadata.hermes.related_skills`) - All tool calls use Hermes-native names (`skill_view`, `delegate_task`, `search_files`, `read_file`, `write_file`, `terminal`) - No references to external tool names - Include `## When to Use` with triggers and counter-triggers - Include `## Pitfalls` section - Include `## Integration with Other Skills` cross-references - Include `## Hermes Agent Integration` listing which Hermes tools the skill uses ### 7. Verify ```python # For each modified or new skill: skill_view(name="") # Confirm: readiness_status == "available" ``` Session caching: newly created skills may not appear in `skills_list` until a new session. `skill_view` with the exact name still works. ## Pitfalls - **Don't copy verbatim** — external skills reference tools, paths, and mechanisms that don't exist in Hermes. Every tool call must be translated. - **Don't duplicate existing skills** — before creating, check `skills_list` and `skill_view` for overlapping coverage. Prefer merging into an existing skill. - **Don't lose the source attribution** — mark merged content with the origin so future readers know where concepts came from. - **Don't skip verification** — a skill with broken frontmatter or invalid tool references silently fails to load. Always `skill_view` after creating/modifying. - **Don't forget `related_skills`** — new skills should cross-reference existing ones and vice versa. This is how the skill graph stays navigable. - **`delegate_task` is NOT callable from `execute_code`** — if a skill instructs the agent to orchestrate sub-agents, the dispatch must happen from the main conversation, not from a Python script. - **Large external skills** — a 60k-char external skill often has 5k of unique value. Extract the concept, don't port the bulk. Put detail in `references/` if needed. ## Integration with Other Skills - **hermes-agent-skill-authoring** — the canonical reference for Hermes skill frontmatter, structure, and quality principles. This skill extends it for the cross-ecosystem import case. - **brainstorming** — use before adapting if the merge strategy is unclear (which skills to merge vs create vs skip) - **plan** — for large multi-skill imports, create a plan first - **compound-learning** — capture what was learned during the adaptation for future imports ## Hermes Agent Integration - `skill_manage(action='create')` — create new skills - `skill_manage(action='patch')` — merge concepts into existing skills - `skill_view(name=...)` — verify skills after creation/modification - `skills_list` — check for existing coverage before creating - `read_file` — read external skill files - `terminal` — git clone, find, file size analysis - `write_file` — write reference files under skills - `delegate_task` — parallelize reading/comparison of large skill sets ## Remember ``` Translate every tool call Merge > Create > Skip Mark origins in merged content Verify with skill_view after every change Extract concepts, don't port bulk ```