Mode d’emploi
- Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
- Consultez le document original pour les outils, identifiants et environnements requis.
- Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/affaan-m/ecc --skill skill-host-compatAvant de commencer
- L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
- Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
Skill Host Compatibility
Run the same host-compat gate CI uses on skills/ before opening a skill PR. The check is for Codex and Cursor copies, not Claude-only runtime quality.
When to Activate
- Adding or editing a skill under
skills/ - Copying a skill into
.agents/skills/or.cursor/skills/ - A review asks whether a skill is safe to install into Codex or Cursor
- CI reports
validate-skill-host-compat.jsfindings
Core Concepts
Canonical skills live in skills/. Codex loads .agents/skills/. Cursor loads a smaller .cursor/skills/ subset. CONTRIBUTING documents that sync as manual.
validate-skills.js only checks that SKILL.md exists and that name / description are usable YAML. tests/ci/codex-skill-surface.test.js only sees .agents/skills/. This script is the cross-tree gate:
- Claude-only substitutions in executable
bash/sh/zshfences
in Codex/Cursor projections (${CLAUDE_SESSION_ID}, ${CLAUDE_SKILL_DIR}, ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PROJECT_DIR}, $ARGUMENTS) fail. Codex leaves those tokens as literal text. In a Codex copy, rewrite ${CLAUDE_PROJECT_DIR} to $(pwd) or an explicit path.
- A Codex copy may only use
name,description,metadata,license,
and allowed-tools. origin: ECC may stay on the canonical skills/ copy and must be stripped on the Codex copy.
- A skill listed in
agents/openai.yamlthat has askills/directory must
have .agents/skills/<name>/. Cursor copies are optional; when present, name: must match the directory.
- CONTRIBUTING checklist items (When to Activate, Anti-Patterns, name
matches directory, 500/800 line caps) warn. They fail only with --strict-checklist.
validate-skills.js frontmatter WARN default is unchanged (#1663).
Code Examples
From the repo root:
node scripts/ci/validate-skill-host-compat.jsPrint counts without failing:
node scripts/ci/validate-skill-host-compat.js --inventoryPromote checklist warnings:
node scripts/ci/validate-skill-host-compat.js --strict-checklistSlash command:
/skill-host-compat
/skill-host-compat --inventoryAnti-Patterns
Codex and Cursor projections must resolve Claude-only substitutions in executable blocks. Canonical Claude-scoped examples remain valid. POSIX $1 and ${1} parameters are ambiguous and require review rather than failing this gate. This fence is the forbidden pattern:
echo "${CLAUDE_SESSION_ID}"
ls "${CLAUDE_SKILL_DIR}"
node "${CLAUDE_PLUGIN_ROOT}/scripts/setup.js" $ARGUMENTS
cd "${CLAUDE_PROJECT_DIR}"Do not add version: or origin: to a Codex copy under .agents/skills/. Do not treat a passing validate-skills.js run as Codex-safe. Do not require every skills/ entry to have a Cursor copy.
Best Practices
- Keep canonical
origin: ECCif the CONTRIBUTING template calls for it. - Drop
origin,version, andargument-hinton the Codex copy. - Show host-portable commands in bash fences (
npx,ecc, or a resolved
root). Rewrite ${CLAUDE_PROJECT_DIR} in Codex copies to $(pwd) or an explicit path. Keep valid Claude-scoped forms in canonical instructions; resolve host variables in the target projection.
- Run this script before
npm testwhen the change is a new skill. - Use
--inventoryto see checklist warning volume without failing the tree.
Related Skills
skill-comply— runtime behavioral traces, not host-portabilityskill-stocktake— holistic audit of installed~/.claude/skillsskill-scout— search existing skills before creating a new one



