portability/chatgpt
GitHub指导在 ChatGPT 与 NeuDrive 之间迁移数据,包括备份、恢复及功能映射。规范技能包导入规则,支持单个或多个技能包的批量处理,并提供不同场景下的上传方式建议。
Trigger Scenarios
Install
npx skills add agi-bar/neuDrive --skill portability/chatgpt -g -y
SKILL.md
Frontmatter
{
"name": "portability\/chatgpt",
"tags": [
"portability",
"migration",
"backup",
"chatgpt",
"neudrive"
],
"source": "system",
"read_only": true,
"description": "Guide for importing ChatGPT data into NeuDrive or restoring NeuDrive data into ChatGPT-compatible structures.",
"when_to_use": "Use when the user asks to migrate, back up, restore, import, or export ChatGPT data and platform features."
}
ChatGPT Portability Manual
Overview
Use this skill when the user wants to move data between ChatGPT and NeuDrive. Treat NeuDrive as the canonical store, preserve original meaning, and never hide portability gaps.
When To Use
Use this skill for:
- backing up ChatGPT data into NeuDrive
- restoring NeuDrive data into ChatGPT-compatible structures
- mapping ChatGPT features into NeuDrive domains
- producing a step-by-step migration prompt for another agent
Platform Feature Map
Custom Instructions->memory/profile/preferences.mdandmemory/profile/principles.mdSaved Memory->memory/profile/*for stable facts,memory/scratch/*for transient contextProjects->/projects/<name>/context.mdplus project logsChats / conversation history-> archived conversation assetsLibrary / Knowledge uploads-> knowledge and file assetsCustom GPT configuration-> tool and connection shadow metadataGPT Actions-> connection and tool metadata, not live secretsConnectors / integrations-> connection metadata plus vault referencesAutomations / scheduled behaviors-> automation shadow records and recreation notes
Skill And Package Rules
ChatGPT does not expose Claude-style /mnt/skills/user directories.
If the migration still needs reusable prompt/code/tool bundles to land under neuDrive /skills, the agent must assemble that bundle explicitly.
- Use
import_skill(name, files)for one text/code bundle whose full directory can be represented asmap[path]string. - Nested paths like
scripts/run.py,prompts/review.txt, andconfig/tool.yamlare allowed. - Do not simplify a bundle to only
SKILL.md; include the whole bundle directory and every text/code file it depends on. - If the user asks for all skills, a workspace export, or any multi-bundle batch, do not use
import_skillas the primary transport. - Use
import_skills_archivefor multi-bundle imports, binary-heavy bundles, or any case where exact bytes matter. - Supported zip layouts are:
- one skill at zip root:
SKILL.md,scripts/...,prompts/...,assets/... - many skills as top-level directories:
skill-a/SKILL.md,skill-b/SKILL.md, and related files below each directory
- one skill at zip root:
- Every imported skill directory must contain
SKILL.md. - All skill imports land under neuDrive
/skills/<name>/.... - Do not
catbase64(zip), paste archive base64 into chat, or otherwise emit long archive strings into the conversation, because that can crash the conversation session. - If one archive is too large for a single MCP tool call, use
prepare_skills_uploadand present both the browser upload link and the curl command when available. Prefer the browser path for ordinary users and curl for terminal-comfortable users.
Import Into NeuDrive
Recommended order:
- Identify whether the user wants profile, memory, projects, knowledge files, conversations, tools, connections, automations, or everything.
- Classify each item into NeuDrive domains before writing.
- Write stable rules and preferences into
memory/profile. - Write project context into
/projects/<name>/context.md. - Use
write_filefor imported data that should be preserved as files even when it does not fit a first-class neuDrive domain such as profile, memory, project, or skill. The agent may design a sensible custom directory structure for those files. - If the task includes reusable bundles that should live under neuDrive
/skills, apply the skill/package rules above and preserve the entire directory contents, not just the instruction file. - Preserve chats, knowledge uploads, GPT configuration, and other unsupported surfaces as structured archive, shadow metadata, or custom file trees when no first-class domain exists yet.
- End with a coverage report: native imports, archived items, manual follow-ups, and unsupported parity.
Export Back To ChatGPT
When exporting NeuDrive data back into ChatGPT:
- Compress stable preferences into reusable Custom Instructions text.
- Convert project context into one project seed document per project.
- Prepare a knowledge upload manifest for files and references.
- Generate draft GPT Actions configuration from stored tool metadata.
- Mark manual recreation steps explicitly when a ChatGPT-native feature has no direct automated restore path.
Known Limits
- ChatGPT feature availability may vary by account and product surface.
- Knowledge uploads and library-like assets may require manual handling.
- GPT Actions can usually be preserved as metadata and draft configuration, but not always auto-restored.
- Secrets and tokens should stay governed by NeuDrive vault policy by default.
- Automation parity is partial and should be described as intent plus recreation guidance.
Prompt Template
Use or adapt this prompt when another agent needs to execute ChatGPT portability work:
Help me migrate data between ChatGPT and NeuDrive. First classify the data into profile, memory, projects, knowledge/files, tools/connections, automations, conversations, and any reusable bundles that should live under neuDrive
/skills. Then map each item to the nearest NeuDrive canonical domain. Usewrite_filefor additional imported file-like data that should be preserved even when it does not fit a first-class neuDrive domain, and choose a sensible custom directory structure for those files. If one bundle is a text/code skill-like directory, useimport_skillwith the full directory contents, not justSKILL.md. If the user asks for all skills, a workspace export, or any multi-bundle batch, do not useimport_skillas the primary transport. If the bundle is multi-skill, binary-heavy, or too large for one tool call, useimport_skills_archiveorprepare_skills_uploadas appropriate. Do notcatbase64(zip), paste archive base64 into chat, or otherwise emit long archive strings into the conversation. Preserve ChatGPT-specific structure as archive, shadow metadata, or custom file trees instead of dropping it. If exporting back to ChatGPT, generate the nearest ChatGPT-compatible outputs and clearly mark manual steps and unsupported parity.
{{CURRENT_USER_SNAPSHOT}}
Version History
- 5df41f2 Current 2026-07-24 15:56


