From agentops
Converts AgentOps skills to Codex and Cursor formats via a three-stage parse-convert-write pipeline using an intermediate SkillBundle.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentops:converterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Parse AgentOps skills into a universal SkillBundle format, then convert to target agent platforms.
Parse AgentOps skills into a universal SkillBundle format, then convert to target agent platforms.
The intermediate SkillBundle is what keeps conversions honest: every target reads the same parsed contract, so a rendering bug is a target-adapter bug, never a silent reinterpretation of the source. If two targets disagree about a skill's content, the bundle — not either output — arbitrates.
Named failure mode — projection editing: fixing a rendering problem by hand-editing the converted output, which the next conversion clean-writes away.
Anti-pattern: merging new output into an existing target directory to preserve local tweaks. Corrective: fix the source skill or the adapter, then re-run the clean-write conversion.
The converter runs a three-stage pipeline:
parse --> convert --> write
Read the source skill directory and produce a SkillBundle:
--- markers)---)references/ and scripts/references/skill-bundle-schema.md)Transform the SkillBundle into the target platform's format:
| Target | Output Format | Status |
|---|---|---|
codex | Codex SKILL.md + prompt.md | Implemented |
cursor | Cursor .mdc rule + optional mcp.json | Implemented |
The Codex adapter produces a SKILL.md with YAML frontmatter (name, description) plus rewritten body content and a prompt.md. Default mode is modular: reference docs, scripts, and resources are copied as files and SKILL.md includes a local resource index instead of inlining everything. Optional inline mode preserves the older behavior by appending inlined references and script code blocks. Codex output normalizes foreign-runtime invocation syntax and paths, rewrites unsupported primitive labels to runtime-neutral wording, and preserves current flat ao CLI commands. It also deduplicates repeated runtime headings while preserving section content. Non-generated resource files and directories are copied with parity checks. Descriptions are truncated to 1024 characters at a word boundary if needed.
The Cursor adapter produces a <name>.mdc rule file with YAML frontmatter (description, globs, alwaysApply: false) and body content. References are inlined into the body, scripts are included as code blocks. Output is budget-fitted to 100KB max -- references are omitted largest-first if the total exceeds the limit. If the skill references MCP servers, a mcp.json stub is also generated.
Write the converted output to disk.
.agents/converter/<target>/<skill-name>/# Convert a single skill
bash skills/converter/scripts/convert.sh <skill-dir> <target> [output-dir]
bash skills/converter/scripts/convert.sh --codex-layout inline <skill-dir> codex [output-dir]
# Convert all skills
bash skills/converter/scripts/convert.sh --all <target> [output-dir]
| Argument | Required | Description |
|---|---|---|
skill-dir | Yes (or --all) | Path to skill directory (e.g. skills/council) |
target | Yes | Target platform: codex, cursor, or test |
output-dir | No | Override output location. Default: .agents/converter/<target>/<skill-name>/ |
--all | No | Convert all skills in skills/ directory |
--codex-layout | No | Codex-only layout mode: modular (default) or inline (legacy inlined refs/scripts) |
SKILL.md + prompt.md) with runtime-neutral rewrites and flat ao CLI preservation. Default is modular output with copied resources and a local-resource index; pass --codex-layout inline for legacy inlined refs/scripts. Missing copied resources fail fast..mdc rule file + optional mcp.json). Output: <dir>/<name>.mdc and optionally <dir>/mcp.json.To add a new target platform:
scripts/convert.sh (pattern: convert_<target>)references/ if the target format needs documentationCaller asks: Convert skills/council to Codex format.
What happens:
skills/council/SKILL.md frontmatter, markdown body, and any references/ and scripts/ files into a SkillBundle.SKILL.md (body + inlined references + scripts as code blocks) and a prompt.md (Codex prompt referencing the skill)..agents/converter/codex/council/.Result: A Codex-compatible skill package ready to use with OpenAI Codex CLI.
Caller asks: Convert all canonical skills to Cursor format.
What happens:
skills/ and parses each into a SkillBundle..mdc rule file with YAML frontmatter and body content, budget-fitted to 100KB max. Skills referencing MCP servers also get a mcp.json stub..agents/converter/cursor/<skill-name>/.Result: All skills are available as Cursor rules, ready to drop into a .cursor/rules/ directory.
| Problem | Cause | Solution |
|---|---|---|
parse error: no frontmatter found | SKILL.md is missing the --- delimited YAML frontmatter block | Add frontmatter with at least name: and description: fields, or run Heal Skill on the source package first |
Cursor .mdc output is missing references | Total bundle size exceeded the 100KB budget limit | The converter omits references largest-first to fit the budget. Split large reference files or move non-essential content to external docs |
| Output directory already has old files | Previous conversion artifacts remain | This is expected -- the converter clean-writes by deleting the target directory before writing. If old files persist, manually delete .agents/converter/<target>/<skill>/ |
--all skips a skill directory | The directory has no SKILL.md file | Ensure each skill directory contains a valid SKILL.md. Run Heal Skill to detect empty directories |
Codex prompt.md description is truncated | The skill description exceeds 1024 characters | This is by design. The converter truncates at a word boundary to fit Codex limits. Shorten the description in SKILL.md frontmatter if the truncation point is awkward |
| Conversion fails with passthrough parity check | A resource entry from source skill wasn't copied to output | Ensure source entries are readable and copyable (including nested files). Re-run conversion; failure is intentional to prevent drift between skills/ and converted output |
.agents/converter/<target>/<skill-name>/ by default, or the exact caller-supplied output directory.SKILL.md, prompt.md, and copied resources; Cursor emits <skill-name>.mdc and optional mcp.json; test emits the raw bundle representation.bash skills/converter/scripts/convert.sh <skill-dir> <target> <output-dir> and require zero; treat parse, budget, write, or passthrough-parity failure as nonzero and incomplete.references/skill-bundle-schema.md -- SkillBundle interchange format specificationnpx claudepluginhub boshu2/agentops --plugin agentopsConverts Claude Code skills to OpenAI Codex, Google Gemini CLI, Antigravity, and Cursor. Generates platform-specific files like openai.yaml, AGENTS.md and compatibility reports.
Creates cross-platform agent skills from workflow descriptions, transcripts, docs, or code. Activates on requests to create an agent, automate a workflow, or build a custom skill.
Creates, updates, or validates SKILL.md agent skills including frontmatter authoring, bundled resource planning, and three-phase discoverability validation.