#2389·ECC

Proposal: Semantic verb system for cross-harness skill portability (10 verbs + optional `requires` frontmatter)

Author: YuhaoLin2005Created Jun 29, 2026Updated Oct 2, 2026
Labelsenhancement

Problem

ECC's Cross-Harness architecture guide says: "Avoid platform-specific command assumptions." But there's no mechanism to enforce it. Skills use Claude Code tool names (Agent, Bash, Read) directly in their prose — making them non-portable even though the SKILL.md format itself is portable.

Example from ECC's own verification-loop:

bash
npx tsc --noEmit          # Claude Code-specific
grep -rn "sk-" .          # Bash-specific

These commands don't work in Codex or Cursor without manual rewriting.

Proposal: 10 semantic verbs as a Cross-Harness extension

The Cross-Harness architecture already says SKILL.md is the most portable unit. This proposal adds a machine-enforceable layer on top:

  1. 10 semantic verbs — abstract operations ({read}, {write}, {execute}, {review}...) that every LLM runtime has an equivalent for
  2. requires frontmatter field — optional, declarative: requires: [read, review, verify]
  3. Mapping table — Claude ↔ Codex ↔ Cursor ↔ CLI equivalents

Skills would use {review} instead of Agent(subagent_type: "code-reviewer"). A thin adapter (at the harness level, not in the skill) replaces {verb} with the runtime's native tool name.

Why this fits ECC

  • Extends, doesn't replace. ECC's Cross-Harness guide already wants portable skills. This makes that guidance machine-verifiable.
  • Backward compatible. Existing skills work unchanged. requires is optional.
  • Reduces manual sync burden. Cross-Harness section documents manual Codex/Cursor skill subsets — semantic verbs automate the translation.
  • ECC is the right home. ECC has the most diverse user base across runtimes (Claude Code, Codex, Cursor, OpenCode, Gemini CLI).

Before/After — verification-loop

Before (Claude Code-only):

bash
npx tsc --noEmit && npx eslint . && npm run test
grep -rn "sk-" . 

After (any runtime, auto-adapted):

{validate} with: type-check + lint + test
{read} for: hardcoded secrets pattern

Claude Code resolves {validate} → npx tsc --noEmit && npx eslint . && npm run test.
Codex resolves {validate} → its own test/lint mechanism.
Same skill, zero rewrites.

Open questions

  1. Should this be a docs/ architecture document, a skills/ workflow skill, or an extension to SKILL-DEVELOPMENT-GUIDE.md?
  2. Would you want a reference implementation (10-verb mapping table + adapter) contributed to ECC, or is this better kept as a standalone reference that ECC skills optionally adopt?
  3. Is there appetite for making requires part of ECC's skill validation (CI check: "skill uses Agent but doesn't declare requires: [review]")?

Not proposing now

  • No PR yet — waiting for #2377 and #2378 to resolve first. This is a discussion to gauge interest and direction.
  • No runtime implementation included here — the adapter is a harness concern, not a skill concern. If there's interest, a standalone reference implementation can be submitted separately.

Disclosure

This proposal was developed with Claude Code assistance. The semantic verb concept and mapping table were iterated through AI-assisted review and refinement.