Skip to content

docs(skill): rewrite ecp skill pack, A/B-validated on Haiku#646

Merged
coseto6125 merged 1 commit into
mainfrom
chore/ecp-skill-rewrite
Jul 22, 2026
Merged

docs(skill): rewrite ecp skill pack, A/B-validated on Haiku#646
coseto6125 merged 1 commit into
mainfrom
chore/ecp-skill-rewrite

Conversation

@coseto6125

Copy link
Copy Markdown
Owner

What

Rewrites all three ecp skills (docs/skills/ecp, docs/skills/ecp-onboard, skill_sample/codex/ecp) following skill-writing TDD: baseline (RED) runs on Haiku first, rewrite targets only the observed failures, then re-test (GREEN). Net -30 lines, main skill body -12%.

A/B method

claude -p --model haiku --setting-sources project from a clean dir (contamination-checked control), 11 scenarios × 3 arms (no-skill control / current / rewritten), n=3–6 per cell, every flagged output read manually. Scenarios cover: trigger-stage verb selection (4), command selection with body loaded (4), output interpretation with canned real-format fixtures (3).

Findings → changes

Finding Evidence Change
Bare arrow map (where→find, trace-flow→processes) makes Haiku invent verbs ecp where, ecp trace-flow in 2/9 trigger trials Backtick real commands: definition→\ecp find`` — 0/9 after
Ambiguous-name guidance is a no-op CLI error already says add --file or --kind; no-skill control passed 3/3 Deleted
Warm-attach mechanics prose is a no-op result caveat (PR #504) self-instructs; control passed 3/3 Compressed to "do what the caveat says"
HIGH/CRITICAL risk wording is stale risk_level removed in PR #592; SKILL.md + ECP.md still claimed it Reworded to observable criteria (many callers / core modules)
ecp-onboard triggers live in when-to-use, a field skill loaders never surface ONBOARDING-link scenario: baseline 0/3 invoked the skill (all went WebFetch) → 3/3 after merging triggers into description Frontmatter merge; lint-skill.sh no longer requires when-to-use (it codified the bug); regression case added
Codex desc has no triggers → invented verbs (ecp grep, ecp refs, ecp callers) who-calls scenario 0/3 correct Adopt the validated command-map description → 3/3 ecp impact; three-layer structure collapsed

Load-bearing content kept verbatim (control failed without it, current passed): Quick Reference tables, impact --literal, the orphan cypher example (copied verbatim by Haiku 6/6), lower-bound cross-check rule, honest-miss red-line.

Notes

  • tests/skill/test-gen-cli-ref.sh fails identically on unmodified main — pre-existing, untouched here.
  • Overlaps stale PR chore(skills): CLAUDE.md prompt-rule compliance + script-first onboarding design #236 on docs/skills/ecp-onboard/SKILL.md (last updated 2026-05-24); that PR needs a rebase regardless.
  • Installed ~/.claude/skills/ecp copy syncs at next release per convention; its locally-tuned description is upstreamed here.

- ecp SKILL.md: backtick real commands in the description map
  ("definition→`ecp find`") — the bare arrow form ("where→find",
  "trace-flow→processes") made Haiku invent verbs (ecp where,
  ecp trace-flow) in 2/9 trigger trials; 0/9 after. Collapse the four
  directives into Core rules: drop the ambiguous-name trap (the CLI
  error already instructs --file/--kind; no-skill control passed 3/3)
  and the warm-attach mechanics prose (the result caveat from PR #504
  self-instructs; control passed 3/3). Remove stale HIGH/CRITICAL
  risk_level wording (feature removed in PR #592). Body -12%.
- ecp ECP.md: same stale HIGH/CRITICAL fix.
- ecp-onboard SKILL.md: merge when-to-use triggers into description —
  skill loaders surface only description, so the ONBOARDING-link
  trigger never fired (baseline 0/3 → 3/3 after).
- lint-skill.sh: stop requiring when-to-use (it codified the
  invisible-field bug); regression case in test-lint-frontmatter.sh.
- codex ecp SKILL.md: adopt the validated command-map description
  (who-calls trials 0/3 → 3/3); collapse the three layers.

A/B method: claude -p --model haiku --setting-sources project from a
clean dir, 11 scenarios x 3 arms (no-skill control / current /
rewritten), n=3-6 per cell, flagged outputs read manually.
@coseto6125
coseto6125 enabled auto-merge (squash) July 22, 2026 16:56
@coseto6125 coseto6125 added the merge-queue Opt-in to Mergify merge queue label Jul 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor
ecp impact cache (0 symbols) — internal, used by ecp dev pr-analyze

[]

@github-actions github-actions Bot added the ecp:risk-low ecp signal label Jul 22, 2026
@coseto6125
coseto6125 merged commit 8979893 into main Jul 22, 2026
18 checks passed
@coseto6125
coseto6125 deleted the chore/ecp-skill-rewrite branch July 22, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ecp:risk-low ecp signal merge-queue Opt-in to Mergify merge queue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant