agentleFS
YangsonHungYangsonHung/awesome-agent-skills/skills/en/conversation-json-to-md/SKILL.md

conversation-json-to-md

Skill18 starsChanged 7 days agoMITView on GitHub

Use when converting chat export JSON into per-conversation Markdown files with preserved user-assistant Q/A and normalized headings.

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 12 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when the user asks for:

    line 14
  2. Distinctive:

    Do not use this skill for:

    line 23
  3. Distinctive:

    Read the input file path provided by the user.

    line 30
  4. Distinctive:

    Keep only user/assistant Q&A content.

    line 33
  5. Distinctive:

    Run an independent second-pass formatting check and fix naming/title structure before final delivery.

    line 38
  6. Distinctive:

    If format detection fails, stop and ask the user for a sample snippet, then extend parsing rules.

    line 49
  7. Distinctive:

    After export, run a second-pass check/fix on output files:

    line 78
  8. Distinctive:

    Remove illegal filename characters

    line 82
  9. Very specific:

    Keep only one H1: # <conversation title>

    line 86
  10. Distinctive:

    Ensure questions are H2

    line 87
  11. Very specific:

    Ensure responses are exactly ### Answer

    line 88
  12. Distinctive:

    Keep answer body markdown

    line 91
  13. Distinctive:

    Keep answer-internal heading demotion

    line 92
  14. Distinctive:

    No random suffixes in filenames

    line 100

≈ “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

Conversation JSON To MD

Overview

Convert a user-provided chat-export JSON into multiple Markdown files with consistent Q/A formatting. The workflow keeps only user-assistant exchanges, writes one conversation per Markdown file, preserves answer Markdown, and runs a second pass to normalize filenames and heading structure.

When to Use

Use this skill when the user asks for:

  • Splitting one JSON chat export into many .md files
  • One conversation per markdown file
  • Keeping only question/answer content from user and assistant
  • Renaming response sections to Answer
  • Normalizing exported files with a second formatting pass

Do not use

Do not use this skill for:

  • Plain text transformation that does not involve JSON chat exports
  • Non-conversation JSON processing tasks
  • Requests requiring semantic summarization instead of structural conversion

Instructions

  1. Read the input file path provided by the user. Do not assume default file names.
  2. Detect conversation/message structure automatically.
  3. Export one markdown file per conversation.
  4. Keep only user/assistant Q&A content.
  5. Format each Q/A block as:
    • ## <question text>
    • ### Answer
  6. Preserve answer markdown and demote answer-internal heading levels by one level.
  7. Run an independent second-pass formatting check and fix naming/title structure before final delivery.

Supported Input Structures

The bundled script supports common export formats including:

  • DeepSeek/ChatGPT-like mapping tree (mapping/root/children/fragments)
  • Qwen-like exports (data[].chat.messages[], content_list with phase=answer)
  • Claude web export style (list[{ name, chat_messages: [...] }])
  • Generic message arrays (messages, history, conversations, dialog, turns)
  • Pair fields (question-answer, prompt-response, input-output)

If format detection fails, stop and ask the user for a sample snippet, then extend parsing rules.

Run Script

python3 scripts/convert_conversations.py \
  --input /path/to/<user-provided>.json \
  --output-dir /path/to/output_md \
  --clean

Output Format

Each output file uses this structure:

# <conversation title>

## <user question 1>
### Answer
<assistant answer markdown>

## <user question 2>
### Answer
<assistant answer markdown>

Second-Pass Formatting (Required)

After export, run a second-pass check/fix on output files:

  1. Filename normalization:
  • Keep title-only naming
  • Remove illegal filename characters
  • Resolve duplicates with (2), (3)...
  1. Heading normalization:
  • Keep only one H1: # <conversation title>
  • Ensure questions are H2
  • Ensure responses are exactly ### Answer
  1. Body normalization:
  • Keep answer body markdown
  • Keep answer-internal heading demotion
  1. Final verification:
  • Confirm no files still violate naming or heading rules

Validation Checklist

  • File count equals detected conversation count
  • No random suffixes in filenames
  • No ## REQUEST or ## RESPONSE headers in output
  • Response blocks are present as ### Answer
  • Output preserves markdown rendering correctly

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.