agentleFS
realjaymesrealjaymes/marketingagentskills/skills/skill-to-prompt/SKILL.md

skill-to-prompt

Skill68 starsChanged 25 days agoMITView on GitHub

Converts Claude skills into ChatGPT Project format (prompt instructions + 1 knowledge file as .docx). Use when user mentions "convert to ChatGPT," "ChatGPT project," "export skill," "GPT instructions," "skill to prompt," or "skill to GPT.

  • Installs packages

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. About 0 are common, 16 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈16

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If user provides a skill name (e.g., "copywriting"):

    line 27
  2. Distinctive:

    If user provides a path, use it directly.

    line 30
  3. Very specific:

    All files in references/ folder

    line 34
  4. Very specific:

    Read references/prompt-structure-guide.md for the full mapping guide.

    line 51
  5. Distinctive:

    All reference material (from references/ folder)

    line 89
  6. Distinctive:

    Every prompt instruction document must include all 9 headings below, in this exact order.

    line 100
  7. Distinctive:

    After the 9 required sections, always append a Knowledge Files section:

    line 156
  8. Distinctive:

    After drafting, count characters.

    line 166
  9. Distinctive:

    If over 8,000 after compression: shorten section content further, but all 9 headings must remain.

    line 171
  10. Very specific:

    Always produce exactly 1 knowledge file named [SkillName]_Reference_Guide.docx.

    line 175
  11. Distinctive:

    All examples and worked examples

    line 181
  12. Distinctive:

    Use H1 for major sections (Workflows, Templates, Examples, Reference Material)

    line 189
  13. Distinctive:

    Use H2-H3 for subsections within each major section

    line 190
  14. Distinctive:

    Use page breaks between major sections for readability

    line 191
  15. Very specific:

    Write this JSON to a temporary file in the current directory: [skill-name]-conversion.json

    line 232
  16. Distinctive:

    Fallback: If .docx generation fails entirely, output the content as formatted markdown that the user can paste into Google Docs or Word.

    line 250
  17. Distinctive:

    After presenting, clean up the temporary JSON file:

    line 281
  18. Distinctive:

    All text and headings must be default black.

    line 347
  19. Distinctive:

    Add space after each paragraph.

    line 348
  20. Distinctive:

    When generating .docx, explicitly set Arial font, heading sizes, black color (no theme colors), and 1.15 line spacing on every element.

    line 350

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill to Prompt Converter

Converts a Claude skill (SKILL.md + references/) into ChatGPT Project format: one prompt instruction document (.docx, under 8,000 characters) and one knowledge file document (.docx).

What This Produces

For each conversion:

  1. Prompt Instructions (.docx) — The text that gets pasted into ChatGPT's "Instructions" field. Under 8,000 characters. Structured using the 9-component prompt formula.
  2. Knowledge File (1 .docx file) — Uploaded to the ChatGPT Project as reference material. Contains all detailed workflows, templates, frameworks, examples, and reference content consolidated into a single document.

All .docx files follow standard formatting: Arial font, 10pt normal text, H1=20pt, H2=16pt, H3=14pt, H4=12pt, 1.15 line spacing.


Conversion Workflow

Step 1: Locate and Read Source Skill

If user provides a skill name (e.g., "copywriting"):

  • Look in ~/.claude/skills/[skill-name]/SKILL.md

If user provides a path, use it directly.

Read everything:

  • SKILL.md (full content)
  • All files in references/ folder
  • Note any scripts/ or assets/ folders (these need special handling)

Step 2: Analyze Skill Complexity

Count total source content to understand how much compression is needed for the single knowledge file:

ComplexityCriteriaCompression Needed
Simple<300 lines in SKILL.md, no reference filesMinimal — content fits easily in one knowledge file
Medium300-500 lines or 1-2 reference filesModerate — condense verbose sections, keep all frameworks and examples
Complex500+ lines or 3+ reference filesHeavy — prioritize frameworks, worked examples, and actionable content. Summarize repetitive sections

Regardless of complexity, always produce exactly 1 knowledge file.

Step 3: Map Content to the 9-Component Prompt Formula

Read references/prompt-structure-guide.md for the full mapping guide.

Extract from the Claude skill and map to ChatGPT instruction components:

Claude Skill SectionChatGPT Prompt Component
Frontmatter descriptionRole + Task summary
"When to Use" / trigger conditionsTask context
"Before Starting" / gather context stepsInputs/Variables
Core workflow sections (numbered steps)Task (condensed steps)
"Output Format" sectionFormatting Instructions
"Examples" sectionExample Output (1-2 max in instructions)
"Constraints" / "Rules" / "Never" statementsConstraints
Target audience mentionsAudience
Voice/tone guidanceStyle/Tone
Purpose / outcome descriptionsGoal

Step 4: Split Content Between Instructions and Knowledge Files

Apply the priority system to stay under 8,000 characters:

P1 — Always in the prompt instructions:

  • Role statement (who the AI is, what it specializes in)
  • Task overview (primary task + condensed workflow steps)
  • Goal (desired outcome)
  • Critical constraints (never/always rules)
  • Knowledge file references (what each file contains, when to consult it)

P2 — Include in instructions if character budget allows:

  • 1-2 key examples (keep short, move full examples to knowledge files)
  • Input variables (what the user must provide before starting)
  • Output formatting specs
  • Style/tone guidance

P3 — Always in knowledge files:

  • Full detailed workflow with multi-paragraph explanations
  • Complete example library
  • Templates and frameworks (from SKILL.md body and references/)
  • All reference material (from references/ folder)
  • Edge cases and advanced scenarios
  • Decision trees and detailed tables
  • Script code (from scripts/ folder, documented as reference)

Character budget: Target 7,500 characters for the instruction text (500-char safety buffer).

Step 5: Write Prompt Instructions

Draft the instruction text following this structure:

Every prompt instruction document must include all 9 headings below, in this exact order. No headings may be omitted or renamed.

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

After the 9 required sections, always append a Knowledge Files section:

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

After drafting, count characters. If over 7,500:

  • Cut examples to bare minimum (but keep the Example Output heading with at least a brief example)
  • Compress workflow steps further
  • Shorten Audience and Style/Tone content (but never remove the headings)

If over 8,000 after compression: shorten section content further, but all 9 headings must remain. Move detailed explanations to the knowledge file and replace with concise summaries under each heading.

Step 6: Organize Knowledge File Content

Always produce exactly 1 knowledge file named [SkillName]_Reference_Guide.docx.

Consolidate all P3 content into this single document, organized with clear heading hierarchy:

[SkillName]_Reference_Guide.docx containing:

  • Full detailed workflow with complete explanations
  • All examples and worked examples
  • Templates and frameworks (from SKILL.md body and references/ folder)
  • All reference material (from references/ folder)
  • Guidelines, best practices, and edge cases
  • Decision trees and detailed tables
  • Script documentation (from scripts/ folder, noted as non-executable reference)

Organization within the single file:

  • Use H1 for major sections (Workflows, Templates, Examples, Reference Material)
  • Use H2-H3 for subsections within each major section
  • Use page breaks between major sections for readability
  • For complex skills with heavy reference content, prioritize frameworks, worked examples, and actionable content over verbose explanations

Step 7: Generate JSON Data

Structure all content as a JSON object matching the docx-generator input format.

The JSON structure:

{
  "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": [...]
    }
  ]
}

Write this JSON to a temporary file in the current directory: [skill-name]-conversion.json

Step 8: Generate .docx Files

Run the generator:

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

This produces all .docx files in the ~/Downloads/ folder.

If the docx package is not available, install it first:

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

Fallback: If .docx generation fails entirely, output the content as formatted markdown that the user can paste into Google Docs or Word. Apply the same heading hierarchy and section structure.

Step 9: Validate and Present Results

Check and report:

  • Instruction character count (must be under 8,000)
  • All .docx files generated successfully
  • Knowledge files contain complete referenced content
  • Cross-references between instructions and knowledge files are clear

Present to the user:

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

After presenting, clean up the temporary JSON file:

rm [skill-name]-conversion.json

Conversion Rules

What Transfers Directly

  • Role and purpose definitions
  • Workflow steps (condensed)
  • Constraints and rules
  • Output format specifications
  • Examples and templates
  • Reference content

What Requires Rewriting

  • Claude tool references (Read, Grep, Glob, Bash, Edit, Write) → Rewrite as natural language instructions. Example: "Read the user's file" becomes "Ask the user to paste or upload the content."
  • Dynamic commands (!command syntax) → Not available in ChatGPT. Document as manual steps.
  • File system operations → Replace with "ask the user to provide" patterns.
  • Progressive disclosure (loading references on demand) → All content must be in knowledge files upfront.

What Does Not Transfer

  • Scripts (scripts/ folder) → Document the script's purpose in the knowledge file. Include the code as reference if useful, but note it cannot execute in ChatGPT.
  • Assets (assets/ folder) → Note in the output: "These assets must be manually transferred if needed."
  • Cross-skill references → Flag as dependencies: "This skill references [other-skill]. Consider converting that skill separately."
  • MCP server integrations → Not available in ChatGPT Projects.
  • Frontmatter fields (version, argument-hint, context, agent, allowed-tools) → These are Claude-specific metadata. Do not include in ChatGPT instructions.

Output Naming Convention

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

Where [SkillName] is the skill name in Title Case with spaces replaced by underscores.

Examples:

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

Document Formatting Standards

All .docx output follows these standards:

ElementSetting
FontArial
Font colorBlack (default) for all text and headings
Normal text10pt
Heading 120pt
Heading 216pt
Heading 314pt
Heading 412pt
Line spacing1.15

Additional rules:

  • Headings are styled by size only. No extra bold on headings.
  • All text and headings must be default black. No additional colors on any text or headings.
  • Add space after each paragraph.
  • Tables use alternating row shading for readability.
  • When generating .docx, explicitly set Arial font, heading sizes, black color (no theme colors), and 1.15 line spacing on every element. Never rely on Word default styles.

References

  • references/prompt-structure-guide.md — 9-component prompt formula, character budget allocation, compression techniques
  • references/docx-generator.js — Node.js script for generating .docx files from JSON data
  • references/AI Prompting Techniques.pdf — Source material for the prompt structure framework

Related Skills

  • agent-skill-builder — The reverse direction: converts ChatGPT Projects into Claude skills
  • skill-creator — Guide for creating new Claude skills from scratch

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.