mcpField
S
skill-to-prompt

skill-to-prompt

github.com/realjaymesAgent 工作流6848 次安装5 天前更新
代码仓库

关于 skill-to-prompt

skill-to-prompt 将 Claude skill 转换为 ChatGPT Project 文档,包括精简的指令文件和整合后的参考文件,适合将 skill 工作流迁移到 ChatGPT Projects。

主要功能

  1. 01将 Claude skill 转换为 ChatGPT Project
  2. 02生成少于 8,000 字符的提示指令
  3. 03将参考内容整合为一个知识文件
  4. 04输出 .docx 文档
  5. 05提供 Markdown 备用格式

适用场景

  1. 01将 Claude skill 迁移到 ChatGPT Project
  2. 02整理详细工作流和参考资料
  3. 03生成项目指令与参考文档

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/realjaymes/marketingagentskills --skill skill-to-prompt

安装后在 Claude Code 中输入/skill-to-prompt确认已加载。

附带文件references/docx-generator.jsreferences/prompt-structure-guide.md

详细介绍

技能转提示词转换器

将 Claude 技能(SKILL.md + references/)转换为 ChatGPT Project 格式:一个提示词指令文档(.docx,不超过 8,000 个字符)和一个知识文件文档(.docx)。

生成内容

每次转换会生成:

  1. 提示词指令(.docx)——粘贴到 ChatGPT「Instructions」字段中的文本。不超过 8,000 个字符。采用 9 组件提示词公式进行结构化。
  2. 知识文件(1 个 .docx 文件)——作为参考资料上传到 ChatGPT Project。将所有详细工作流、模板、框架、示例和参考内容整合到一个文档中。

所有 .docx 文件均采用标准格式:Arial 字体,普通文本为 10pt,H1=20pt,H2=16pt,H3=14pt,H4=12pt,行距为 1.15。


转换工作流

第 1 步:定位并读取源技能

如果用户提供了技能名称(例如「copywriting」):

  • 查找 ~/.claude/skills/[skill-name]/SKILL.md

如果用户提供了路径,则直接使用该路径。

读取所有内容:

  • SKILL.md(完整内容)
  • references/ 文件夹中的所有文件
  • 留意任何 scripts/ 或 assets/ 文件夹(这些需要特殊处理)
第 2 步:分析技能复杂度

统计源内容总量,判断单个知识文件需要压缩多少:

复杂度标准所需压缩程度
简单SKILL.md 少于 300 行,且无参考文件最少——内容可轻松放入一个知识文件
中等300–500 行,或有 1–2 个参考文件适度——精简冗长部分,保留所有框架和示例
复杂500 行以上,或有 3 个以上参考文件大幅——优先保留框架、完整示例和可执行内容。概述重复部分

无论复杂度如何,都必须恰好生成 1 个知识文件。

第 3 步:将内容映射到 9 组件提示词公式

阅读 references/prompt-structure-guide.md,了解完整映射指南。

从 Claude 技能中提取内容,并映射到 ChatGPT 指令组件:

Claude 技能章节ChatGPT 提示词组件
Frontmatter 中的 description角色 + 任务摘要
「When to Use」/ 触发条件任务背景
「Before Starting」/ 收集上下文的步骤输入/变量
核心工作流章节(编号步骤)任务(精简后的步骤)
「Output Format」章节格式说明
「Examples」章节输出示例(指令中最多 1–2 个)
「Constraints」/「Rules」/「Never」陈述约束
目标受众说明受众
语气/风格指南风格/语气
目的/结果说明目标
第 4 步:将内容拆分到指令和知识文件中

应用优先级系统,确保字符数不超过 8,000:

P1 — 必须放入提示词指令:

  • 角色说明(AI 的身份及其专长)
  • 任务概述(主要任务 + 精简后的工作流步骤)
  • 目标(期望结果)
  • 关键约束(禁止/必须遵守的规则)
  • 知识文件参考(各文件的内容,以及何时查阅)

P2 — 字符数允许时放入指令:

  • 1–2 个关键示例(保持简短,将完整示例移至知识文件)
  • 输入变量(开始前用户必须提供的内容)
  • 输出格式规范
  • 风格/语气指南

P3 — 必须放入知识文件:

  • 完整的详细工作流及多段说明
  • 完整的示例库
  • 模板和框架(来自 SKILL.md 正文和 references/)
  • 所有参考资料(来自 references/ 文件夹)
  • 边缘情况和高级场景
  • 决策树和详细表格
  • 脚本代码(来自 scripts/ 文件夹,作为参考文档)

**字符数预算:**指令文本目标为 7,500 个字符(预留 500 个字符的安全余量)。

步骤 5:编写提示词说明

按照以下结构起草说明文本:

每份提示词说明文档都必须包含以下 9 个标题,顺序必须完全一致。不得省略或重命名任何标题。

## Role

You are [expertise extracted from skill description and intro].
You specialize in [specific domain/capabilities].

## Task

Your primary task is to [main objective from the skill].

Follow this workflow:
1. [Condensed step from skill workflow]
2. [Condensed step]
3. [Condensed step]
...

## Goal

[Desired outcome extracted from the skill's purpose/output sections]

## Audience

[Target audience. If the skill does not specify an audience, write: "General users seeking [skill domain] assistance. Adjust complexity based on the user's apparent experience level."]

## Style/Tone

[Voice/tone rules extracted from the skill. If the skill does not specify tone, write: "Professional and clear. Match the register of the target audience. Avoid jargon unless the audience expects it."]

Always include these writing rules regardless of skill-specific tone:
- Avoid dashes unless absolutely necessary. Prefer commas, periods, or conjunctions to keep the tone natural.
- Use en dashes (with spaces, e.g. word – word) or em dashes (without spaces, e.g. word—word) only when unavoidable, ideally no more than once per complete piece of output.

## Constraints

- [Never/always rule]
- [Character/word limits]
- [Format restrictions]
- [Quality standards]

## Inputs/Placeholders

Before starting, ask the user for:
1. [Required input from the skill's context-gathering steps]
2. [Required input]

## Example Output

[1-2 short examples showing expected output structure. Keep brief.]

## Formatting Instructions

[Output structure and formatting rules from the skill]

完成 9 个必需部分后,始终追加“知识文件”部分:

## Knowledge Files

This project includes 1 knowledge file. Consult it as needed:

1. **[SkillName]_Reference_Guide.docx** — [What it contains and when to reference it]

起草后统计字符数。如果超过 7,500 个字符:

  • 将示例精简至最低限度(但保留“示例输出”标题,并至少提供一个简短示例)
  • 进一步精简工作流步骤
  • 缩短“受众”和“风格/语气”部分(但绝不能删除标题)

如果精简后仍超过 8,000 个字符:进一步缩短各部分内容,但必须保留全部 9 个标题。将详细说明移至知识文件,并在各标题下替换为简明摘要。

步骤 6:整理知识文件内容

始终只生成 1 个知识文件,命名为 [SkillName]_Reference_Guide.docx。

将所有 P3 内容整合到此单个文档中,并按清晰的标题层级组织:

[SkillName]_Reference_Guide.docx 包含:

  • 完整详细的工作流及完整说明
  • 所有示例和演示示例
  • 模板和框架(来自 SKILL.md 正文和 references/ 文件夹)
  • 所有参考资料(来自 references/ 文件夹)
  • 指南、最佳实践和边缘情况
  • 决策树和详细表格
  • 脚本文档(注明为不可执行的参考资料)

单个文件内的组织结构:

  • 主要部分使用 H1 标题(工作流、模板、示例、参考资料)
  • 各主要部分中的小节使用 H2-H3 标题
  • 主要部分之间插入分页符,以提高可读性
  • 对于参考内容较多的复杂技能,优先保留框架、演示示例和可操作内容,而非冗长说明
步骤 7:生成 JSON 数据

将所有内容整理为符合 docx-generator 输入格式的 JSON 对象。

JSON 结构如下:

{
  "skillName": "Skill Display Name",
  "originalSkillName": "skill-name",
  "version": "1.0.0",
  "outputDir": "~/Downloads/",
  "instructionDoc": {
    "filename": "SkillName_Prompt_Instructions.docx",
    "title": "Skill Name — ChatGPT Project Instructions",
    "characterCount": 7234,
    "sections": [
      { "type": "heading", "level": 1, "text": "Section Title" },
      { "type": "paragraph", "text": "Regular paragraph text." },
      { "type": "bold-paragraph", "label": "Label:", "text": "Text after label" },
      { "type": "bullet", "text": "Bullet point", "level": 0 },
      { "type": "numbered", "text": "Numbered item", "number": 1 },
      { "type": "table", "headers": ["H1","H2"], "rows": [["a","b"]], "columnPcts": [30,70] },
      { "type": "divider" },
      { "type": "spacer", "size": 200 },
      { "type": "meta", "text": "Metadata or footnote text" }
    ]
  },
  "knowledgeFiles": [
    {
      "filename": "SkillName_Reference_Guide.docx",
      "title": "Skill Name Reference Guide",
      "sections": [...]
    }
  ]
}

将此 JSON 写入当前目录中的临时文件:[skill-name]-conversion.json

步骤 8:生成 .docx 文件

运行生成器:

NODE_PATH=~/Documents/node_modules node ~/.claude/skills/skill-to-prompt/references/docx-generator.js [skill-name]-conversion.json

这会在 ~/Downloads/ 文件夹中生成所有 .docx 文件。

如果 docx 软件包不可用,请先安装:

cd ~/Documents && npm install docx && cd -

**备用方案:**如果完全无法生成 .docx,请将内容以格式化 Markdown 输出,供用户粘贴到 Google Docs 或 Word。使用相同的标题层级和部分结构。

步骤 9:验证并呈现结果

检查并报告:

  • 说明字符数(必须少于 8,000)
  • 所有 .docx 文件均已成功生成
  • 知识文件包含完整的引用内容
  • 说明与知识文件之间的交叉引用清晰明确

向用户呈现:

Conversion complete: [skill-name] → ChatGPT Project

Output saved to ~/Downloads/

Prompt Instructions:
  [SkillName]_Prompt_Instructions.docx (X,XXX characters)

Knowledge File:
  [SkillName]_Reference_Guide.docx — [brief description]

Setup in ChatGPT:
  1. Create a new Project in ChatGPT
  2. Paste the instruction text from the Instructions .docx into the project's Instructions field
  3. Upload the knowledge file to the project
  4. Test with a sample prompt

呈现后,清理临时 JSON 文件:

rm [skill-name]-conversion.json

转换规则

可直接移植的内容
  • 角色和目的定义
  • 工作流步骤(精简后)
  • 约束和规则
  • 输出格式规范
  • 示例和模板
  • 参考内容
需要改写的内容
  • Claude 工具引用(Read、Grep、Glob、Bash、Edit、Write)→ 改写为自然语言说明。例如,“读取用户的文件”改为“请用户粘贴或上传内容。”
  • 动态命令(!command 语法)→ ChatGPT 不支持。应记录为手动步骤。
  • 文件系统操作 → 替换为“请用户提供”这类表述。
  • 渐进式披露(按需加载参考资料)→ 所有内容都必须预先放入知识文件中。
不会迁移的内容
  • 脚本(scripts/ 文件夹)→ 在知识文件中说明脚本的用途。如有帮助,可将代码作为参考内容,但请注明它无法在 ChatGPT 中执行。
  • 资源文件(assets/ 文件夹)→ 在输出中注明:“如有需要,必须手动迁移这些资源文件。”
  • 跨技能引用→ 标记为依赖项:“此技能引用了 [other-skill]。请考虑单独转换该技能。”
  • MCP 服务集成→ 在 ChatGPT Projects 中不可用。
  • Frontmatter 字段(version、argument-hint、context、agent、allowed-tools)→ 这些是 Claude 专属元数据。不要将其加入 ChatGPT 指令。

输出命名规范

[SkillName]_Prompt_Instructions.docx
[SkillName]_Reference_Guide.docx

其中 [SkillName] 是采用标题大小写且以空格替换下划线的技能名称。

示例:

  • copywriting → Copywriting_Prompt_Instructions.docx
  • digital-product-video-ads → Digital_Product_Video_Ads_Prompt_Instructions.docx
  • page-cro → Page_CRO_Prompt_Instructions.docx

文档格式标准

所有 .docx 输出均遵循以下标准:

元素设置
字体Arial
字体颜色所有文本和标题均为黑色(默认)
正文10pt
标题 120pt
标题 216pt
标题 314pt
标题 412pt
行距1.15

其他规则:

  • 标题仅通过字号设置样式。不要额外加粗标题。
  • 所有文本和标题都必须为默认黑色。不要为任何文本或标题添加其他颜色。
  • 每个段落后都要添加间距。
  • 表格使用交替行底纹,以提高可读性。
  • 生成 .docx 时,必须为每个元素明确设置 Arial 字体、标题字号、黑色(不使用主题颜色)和 1.15 倍行距。切勿依赖 Word 默认样式。

参考资料

  • references/prompt-structure-guide.md — 9 个组成部分的提示词公式、字符预算分配、压缩技巧
  • references/docx-generator.js — 用于根据 JSON 数据生成 .docx 文件的 Node.js 脚本
  • references/AI Prompting Techniques.pdf — 提示词结构框架的源材料

相关技能

  • agent-skill-builder — 反向转换:将 ChatGPT Projects 转换为 Claude 技能
  • skill-creator — 从头创建 Claude 技能的指南

评论

支持 Markdown