Agent Skillsboshu2/agentops › converter

converter

GitHub

将 AgentOps 技能解析为通用 SkillBundle,再转换为 Codex、Cursor 等平台格式。确保转换一致性,防止源文件被意外修改,支持模块化与内联输出模式。

images/gemini/skills/converter/SKILL.md boshu2/agentops

Trigger Scenarios

converter convert agentops skill formats. converter skill

Install

npx skills add boshu2/agentops --skill converter -g -y
More Options

Non-standard path

npx skills add https://github.com/boshu2/agentops/tree/main/images/gemini/skills/converter -g -y

Use without installing

npx skills use boshu2/agentops@converter

指定 Agent (Claude Code)

npx skills add boshu2/agentops --skill converter -a claude-code -g -y

安装 repo 全部 skill

npx skills add boshu2/agentops --all -g -y

预览 repo 内 skill

npx skills add boshu2/agentops --list

SKILL.md

Frontmatter
{
    "name": "converter",
    "context": {
        "intent": {
            "mode": "none"
        },
        "window": "isolated",
        "sections": {
            "exclude": [
                "HISTORY",
                "INTEL",
                "TASK"
            ]
        },
        "intel_scope": "none"
    },
    "consumes": [],
    "metadata": {
        "tier": "cross-vendor",
        "effects": [
            "write_converted_skill_projection"
        ],
        "disposition": "keep_specialist",
        "capabilities": [
            "converter"
        ],
        "dependencies": [],
        "canonical_status": "canonical"
    },
    "produces": [
        "converted-skill"
    ],
    "practices": [
        "refactoring",
        "design-patterns"
    ],
    "context_rel": [],
    "description": "Convert AgentOps skill formats. Triggers: \"converter\", \"convert agentops skill formats.\", \"converter skill\".",
    "hexagonal_role": "driven-adapter",
    "output_contract": "converted skill files for target platform",
    "skill_api_version": 1
}

Converter — Cross-Platform Skill Converter

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.

This is not the owner of the shipped skills-codex/** projection: that path is generated and gated by scripts/codex-sync.sh via scripts/regen-all.sh. This converter is an ad-hoc, out-of-tree exporter (Codex, Cursor) that writes under .agents/projections/converter/; it never mutates skills-codex/**. When the shipped Codex twin and this exporter disagree, the shipped path wins.

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.

Constraints

  • Treat the canonical source skill as read-only because conversion must not mutate the contract it is translating.
  • Clean-write only the explicit target directory to prevent stale resources from surviving a conversion or unrelated paths from being deleted.
  • Fail when copied-resource parity or target-format validation fails because a partial bundle is not a usable conversion.

Pipeline

The converter runs a three-stage pipeline:

parse --> convert --> write

Stage 1: Parse

Read the source skill directory and produce a SkillBundle:

  • Extract YAML frontmatter from SKILL.md (between --- markers)
  • Collect the markdown body (everything after the closing ---)
  • Enumerate all files in references/ and scripts/
  • Assemble into a SkillBundle (see references/skill-bundle-schema.md)

Stage 2: Convert

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.

Stage 3: Write

Write the converted output to disk.

  • Default output directory: .agents/projections/converter/<target>/<skill-name>/
  • Write semantics: Clean-write. The target directory is deleted before writing. No merge with existing content.
  • Refusal guard: the write stage refuses — it does not silently redirect — when the resolved output directory equals the source package, contains it (an ancestor), or is the repository root, because the clean-write would otherwise delete the very files the conversion must read.

CLI Usage

# 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]

Arguments

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/projections/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)

Supported Targets

  • codex -- Convert to OpenAI Codex format (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.
  • cursor -- Convert to Cursor rules format (.mdc rule file + optional mcp.json). Output: <dir>/<name>.mdc and optionally <dir>/mcp.json.
  • test -- Emit the raw SkillBundle as structured markdown. Useful for debugging the parse stage.

Extending

To add a new target platform:

  1. Add a conversion function to scripts/convert.sh (pattern: convert_<target>)
  2. Update the target table above
  3. Add reference docs to references/ if the target format needs documentation

Examples

Converting a single skill to Codex format

Caller asks: Convert skills/council to Codex format.

What happens:

  1. The converter parses skills/council/SKILL.md frontmatter, markdown body, and any references/ and scripts/ files into a SkillBundle.
  2. The Codex adapter transforms the bundle into a SKILL.md (body + inlined references + scripts as code blocks) and a prompt.md (Codex prompt referencing the skill).
  3. Output is written to .agents/projections/converter/codex/council/.

Result: A Codex-compatible skill package ready to use with OpenAI Codex CLI.

Batch-converting all skills to Cursor rules

Caller asks: Convert all canonical skills to Cursor format.

What happens:

  1. The converter scans every directory under skills/ and parses each into a SkillBundle.
  2. The Cursor adapter transforms each bundle into a .mdc rule file with YAML frontmatter and body content, budget-fitted to 100KB max. Skills referencing MCP servers also get a mcp.json stub.
  3. Each skill's output is written to .agents/projections/converter/cursor/<skill-name>/.

Result: All skills are available as Cursor rules, ready to drop into a .cursor/rules/ directory.

Troubleshooting

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/projections/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

Output Specification

  • Path: .agents/projections/converter/<target>/<skill-name>/ by default, or the exact caller-supplied output directory.
  • Filename: Codex emits SKILL.md, prompt.md, and copied resources; Cursor emits <skill-name>.mdc and optional mcp.json; test emits the raw bundle representation.
  • Format: target-valid UTF-8 text with required frontmatter, rewritten runtime references, and byte-present passthrough resources; Cursor output remains within 100KB.
  • Exit code: run 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.
  • Downstream handoff: report the source skill, target, output directory, layout, omitted Cursor references if any, and validation result to the installer or projection gate.

Quality Checklist

  • The source tree is unchanged and the output tree contains no files left over from an earlier conversion.
  • Every required target file parses with its target frontmatter/schema and every eligible source resource is present.
  • Runtime-specific rewrites preserve the source meaning without reintroducing deprecated command forms or foreign-runtime paths.

References

  • references/skill-bundle-schema.md -- SkillBundle interchange format specification

Reference Documents

Version History

  • 7b07a7d Current 2026-08-19 21:59

    修复了 convert.sh 可能删除调用者提供的输出目录及破坏源包的安全漏洞,增加了路径包含关系检查,默认输出路径调整为 .agents/projections/converter/

  • 3f402e5 2026-07-24 22:07

Same Skill Collection

images/gemini/skills/account-rotation/SKILL.md
images/gemini/skills/agent-mail/SKILL.md
images/gemini/skills/agent-native/SKILL.md
images/gemini/skills/agy-native/SKILL.md
images/gemini/skills/anti-ceremony/SKILL.md
images/gemini/skills/automation-shape-routing/SKILL.md
images/gemini/skills/bootstrap/SKILL.md
images/gemini/skills/cass/SKILL.md
images/gemini/skills/cc-hooks/SKILL.md
images/gemini/skills/codebase-recon/SKILL.md
images/gemini/skills/codex-exec/SKILL.md
images/gemini/skills/council/SKILL.md
images/gemini/skills/craft-goal/SKILL.md
images/gemini/skills/dcg/SKILL.md
images/gemini/skills/doc/SKILL.md
images/gemini/skills/domain/SKILL.md
images/gemini/skills/fitness/SKILL.md
images/gemini/skills/goals/SKILL.md
images/gemini/skills/handoff/SKILL.md
images/gemini/skills/idea-genie/SKILL.md
images/gemini/skills/implement/SKILL.md
images/gemini/skills/learn/SKILL.md
images/gemini/skills/ms/SKILL.md
images/gemini/skills/ntm/SKILL.md
images/gemini/skills/operationalize/SKILL.md
images/gemini/skills/pattern-mining/SKILL.md
images/gemini/skills/plan/SKILL.md
images/gemini/skills/postmortem/SKILL.md
images/gemini/skills/premortem/SKILL.md
images/gemini/skills/product/SKILL.md
images/gemini/skills/rch/SKILL.md
images/gemini/skills/reality-check/SKILL.md
images/gemini/skills/refactor/SKILL.md
images/gemini/skills/research/SKILL.md
images/gemini/skills/reverse-engineer/SKILL.md
images/gemini/skills/rpi/SKILL.md
images/gemini/skills/sbh/SKILL.md
images/gemini/skills/scaffold/SKILL.md
images/gemini/skills/scope/SKILL.md
images/gemini/skills/security/SKILL.md
images/gemini/skills/shared/SKILL.md
images/gemini/skills/skill-builder/SKILL.md
images/gemini/skills/standards/SKILL.md
images/gemini/skills/status/SKILL.md
images/gemini/skills/swarm/SKILL.md
images/gemini/skills/test/SKILL.md
images/gemini/skills/toil-mining/SKILL.md
images/gemini/skills/using-flywheel/SKILL.md
images/gemini/skills/using-gc/SKILL.md

Metadata

Files
0
Version
7b07a7d
Hash
325007a3
Indexed
2026-07-24 22:07

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 00:38
浙ICP备14020137号-1 $mapa de visitantes$