Catalog
affaan-m/skill-host-compat

affaan-m

skill-host-compat

Lint ECC skills for Codex/Cursor-safe frontmatter and Claude-only substitutions before a skill PR.

v1.0LATEST
NewUpdated Oct 12, 2026

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.js findings

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:

  1. Claude-only substitutions in executable bash / sh / zsh fences 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.
  2. 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.
  3. A skill listed in agents/openai.yaml that has a skills/ directory must have .agents/skills/<name>/. Cursor copies are optional; when present, name: must match the directory.
  4. 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.js

Print counts without failing:

node scripts/ci/validate-skill-host-compat.js --inventory

Promote checklist warnings:

node scripts/ci/validate-skill-host-compat.js --strict-checklist

Slash command:

/skill-host-compat
/skill-host-compat --inventory

Anti-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: ECC if the CONTRIBUTING template calls for it.
  • Drop origin, version, and argument-hint on 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 test when the change is a new skill.
  • Use --inventory to see checklist warning volume without failing the tree.
  • skill-comply — runtime behavioral traces, not host-portability
  • skill-stocktake — holistic audit of installed ~/.claude/skills
  • skill-scout — search existing skills before creating a new one
Files1
1 files · 1.0 KB

Select a file to preview

Overall Score

82/100

Grade

B

Good

Grades are signals, not a certification. Always review a skill yourself before use.

Safety

85

Quality

82

Clarity

79

Completeness

80

Summary

This skill guides an agent to validate ECC skills for host compatibility before opening PRs, checking whether a skill can safely run on Codex/Cursor infrastructure. It documents the cross-tree gate that catches Claude-only substitutions in executable blocks and enforces field restrictions for non-Claude hosts.

Detected Capabilities

shell executionfile readingscript validationdirectory scanningfrontmatter parsing

Trigger Keywords

Phrases that agents use to match this skill to user intent.

host compatibility checkmulti-host skill validationcodex cursor safeclaude substitution auditskill tree syncvalidate skill pr

Risk Signals

INFO

Canonical skill references (scripts/ci/validate-skill-host-compat.js) to Node.js validation script execution

Code Examples section
INFO

Instructions reference reading and validating skill files across multiple directory trees (skills/, .agents/skills/, .cursor/skills/)

Core Concepts section

Use Cases

  • Validate a skill before submitting a PR to ensure Codex/Cursor compatibility
  • Check for Claude-only variable substitutions in bash/shell code blocks
  • Audit which frontmatter fields are safe to include in non-Claude projections
  • Review a skill's directory structure and field consistency across canonical and host-specific copies
  • Run a checklist audit to identify skills needing updates for multi-host deployment

Quality Notes

  • Skill clearly documents the three canonical skill repositories and their synchronization model, helping users understand scope
  • Anti-Patterns section explicitly lists forbidden patterns with concrete example, making edge cases unambiguous
  • Best Practices section provides actionable guidance on variable rewriting and field management across host projections
  • Core Concepts section thorough but dense—could benefit from a table summarizing field restrictions by host type
  • Code Examples section well-structured with three progressively detailed command variants and slash command equivalents
  • Limitation (CONTRIBUTING checklist warnings vs. --strict-checklist failures) clearly documented but somewhat implicit
Model: claude-haiku-4-5-20251001Analyzed: Oct 12, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use affaan-m/skill-host-compat in your dev environment

Command Palette

Search for a command to run...