Agent Portability

August 13, 2026 ยท View on GitHub

Chat2Skill is an agent-portable skill distribution. The core behavior lives in skills/ and scripts/; host-specific files are thin adapters that load the same behavior in each coding agent.

Supported Adapters

HostFilesNotes
Claude Code.claude-plugin/, hooks/hooks.json, hooks/claude-hooks.json, skills/Full plugin marketplace install with the chat2skill skill, UserPromptSubmit, Stop learning, and Stop response guard hooks.
Codex.codex-plugin/plugin.json, hooks/hooks.json, hooks/codex-hooks.json, skills/Plugin install with Codex-specific retrieval, Stop learning, and configurable blocking Stop response guard hooks. install.sh writes the Codex manifest into each Codex cache.
DeepSeek Harnesspackage.json, adapters/deepseek-harness/, scripts/deepseek_harness_adapter.pyCordis bundle adapter. agent/pre-step retrieves context; agent/turn-stopping runs the shared response guard and session learning through ctx.subprocess.
Cursor.cursor-plugin/, .cursor-plugin/hooks.json, .cursor/rules/chat2skill.mdcNative plugin plus always-on project rule. stop learns from Cursor transcripts and runs the response guard when Cursor provides final response text; prompt-specific retrieval should use the skill or CLI because Cursor's current beforeSubmitPrompt hook does not inject dynamic context.
OpenCodeopencode.json, .opencode/plugins/chat2skill.mjs, .opencode/command/chat2skill.mdServer plugin performs retrieval. It does not register a final-response guard.
GitHub Copilot.github/copilot-instructions.mdRepository instructions only; no final-response guard registration.
Windsurf.windsurf/rules/chat2skill.mdProject rule only; no final-response guard registration.
Cline.clinerules/chat2skill.mdProject rule only; no final-response guard registration.
Kiro.kiro/steering/chat2skill.mdSteering rule only; no final-response guard registration.
Generic agentsAGENTS.md, skills/chat2skill/SKILL.mdPortable instruction file or direct skill loading.

Adapter Rule

Keep adapters thin. When a host supports skills or hooks, point it at the existing skills/ and scripts/ files. When a host only supports project instructions, keep its copied rule text aligned with AGENTS.md.

Portable Behavior

  • skills/chat2skill/SKILL.md: manual update/retrieve workflow.
  • scripts/hook_user_prompt_submit.py: prompt/session-start retrieval hook.
  • scripts/hook_stop.py: session-end learning hook.
  • scripts/hook_stop_response_guard.py: session-end final-message guard for hard wording constraints.
  • adapters/deepseek-harness/plugin.mjs: Cordis lifecycle adapter for DeepSeek Harness.
  • scripts/retrieve_for_prompt.py: manual or plugin-driven retrieval.
  • scripts/update_from_transcript.py: manual transcript processing.

Claude Code, Codex, Cursor, and DeepSeek Harness are the native adapters that register the shared response guard. Its default mode is strict; setting CHAT2SKILL_RESPONSE_GUARD=false disables it consistently for all four.