feat: integrate skill-creator, add improve-ic-skill, overhaul contributor workflow#198
Conversation
Replace the template-copy workflow with the Anthropic skill-creator skill as the recommended starting point. Add explicit callouts for the IC-specific metadata block (title, category) that skill-creator does not produce, and clarify the two-phase eval workflow: skill-creator's internal loop for iterative drafting vs. the committed evaluations/ file required for PRs. Also remove prescriptive body section recommendations from CLAUDE.md — structure is individual to each skill and better left to skill-creator.
Install skill-creator as a project skill via `npx skills add` so it is auto-discovered by Claude Code without manual loading. Files land at .agents/skills/skill-creator/ (multi-agent canonical location) with a symlink at .claude/skills/skill-creator for Claude Code. Doc fixes: - Update skill-creator references to reflect it is pre-installed - Step 3 renamed "Review and finalize" to avoid implying manual authoring - Step 6 leads with porting evals from skill-creator's evals.json - "Keep it flat" bullet now correctly allows references/ subdirectory - "see step 5 above" cross-reference replaced with anchor link - CLAUDE.md: add three-file instruction for adding a new category - CLAUDE.md: mark _template/ as legacy in Project Structure
d4c95d0 to
941fe4f
Compare
There was a problem hiding this comment.
Pull request overview
This PR installs the skill-creator project skill and updates contributor/agent workflows to use it instead of the removed legacy skill template. It also clarifies IC-specific metadata/eval requirements and upstream sync guidance.
Changes:
- Adds vendored
skill-creatorskill assets, scripts, eval viewer, schemas, and lockfile. - Removes the old
skills/_template/SKILL.md.template. - Updates
CONTRIBUTING.mdand.claude/CLAUDE.mdto document the new skill creation/improvement workflow.
Reviewed changes
Copilot reviewed 22 out of 23 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
skills/_template/SKILL.md.template |
Removes the old rigid starter template. |
skills-lock.json |
Records installed skill-creator provenance/hash. |
CONTRIBUTING.md |
Reworks contributor workflow around skill-creator, metadata, evals, and upstream sync. |
.claude/CLAUDE.md |
Updates agent instructions for skill creation, evals, categories, and repo layout. |
.agents/skills/skill-creator/SKILL.md |
Adds the main skill-creator workflow instructions. |
.agents/skills/skill-creator/scripts/utils.py |
Adds shared SKILL.md parsing helper. |
.agents/skills/skill-creator/scripts/run_loop.py |
Adds description optimization loop. |
.agents/skills/skill-creator/scripts/run_eval.py |
Adds trigger-evaluation runner. |
.agents/skills/skill-creator/scripts/quick_validate.py |
Adds basic skill validation script. |
.agents/skills/skill-creator/scripts/package_skill.py |
Adds skill packaging utility. |
.agents/skills/skill-creator/scripts/improve_description.py |
Adds Claude-based description improvement script. |
.agents/skills/skill-creator/scripts/generate_report.py |
Adds HTML report generator. |
.agents/skills/skill-creator/scripts/aggregate_benchmark.py |
Adds benchmark aggregation script. |
.agents/skills/skill-creator/scripts/__init__.py |
Marks scripts package for module execution. |
.agents/skills/skill-creator/references/schemas.md |
Documents skill-creator JSON artifacts. |
.agents/skills/skill-creator/LICENSE.txt |
Adds Apache-2.0 license text. |
.agents/skills/skill-creator/eval-viewer/viewer.html |
Adds browser review UI. |
.agents/skills/skill-creator/eval-viewer/generate_review.py |
Adds review page generator/server. |
.agents/skills/skill-creator/assets/eval_review.html |
Adds trigger eval review template. |
.agents/skills/skill-creator/agents/grader.md |
Adds grader-agent instructions. |
.agents/skills/skill-creator/agents/comparator.md |
Adds blind comparator instructions. |
.agents/skills/skill-creator/agents/analyzer.md |
Adds post-hoc analyzer instructions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
needs to be tested properly before merging |
|
Two additional items not tied to specific lines: 1. Missing Running skill-creator in this repo produces two untracked directories that are not currently gitignored:
Suggest adding both to 2. SKILL.md line 225 warns that grading.json expectations must use The warning should appear in |
- Add internal improve-ic-skill skill (.agents/skills/improve-ic-skill/) for token-efficient improvement of existing skills. Uses our toolchain (npm run validate, evaluate-skills.js with targeted flags), knows eval location (evaluations/<skill-name>.json), handles upstream-tracked skills, and seeds evals when none exist. Distinct from skill-creator which is for new skill creation only. - Fix 4 confirmed bugs in vendored skill-creator (documented in PATCHES.md): 1. generate_review.py: escape </script> in JSON output to prevent viewer breakage 2. SKILL.md: add missing run-1/ level in output paths (aggregate_benchmark.py requires it) 3. SKILL.md: require eval-0-descriptive-name/ format (aggregator globs eval-*) 4. SKILL.md: clarify --static is wrong for Claude Code; use server mode instead - Remove skills-lock.json from git and add to .gitignore. Our skill-creator copy is a patched fork — npx skills add would overwrite fixes silently. Intentional updates must re-apply patches from PATCHES.md. - Update CLAUDE.md: distinguish improve-ic-skill vs skill-creator, warn against npx skills add updates, clarify that PR eval results must come from evaluate-skills.js (with-skill vs baseline), not skill-creator internals. - Add gitignore entries for skill-creator artifacts (skills/*-workspace/, **/__pycache__/, skills-lock.json).
…t/passed/evidence)
… CLAUDE.md, PATCHES.md - CONTRIBUTING.md: route improvements to improve-ic-skill (not skill-creator); fix nonexistent skills/<name>/evals/evals.json path reference - improve-ic-skill: remove redundant eval run from Step 8 (Step 7 covers it); add upstream sync guidance for seeding evals from the diff when none exist - CLAUDE.md: add improve-ic-skill mention in upstream sync workflow; align sync checklist eval policy with general improvement policy - PATCHES.md: reorder patches 4 and 5 into sequential order
- CONTRIBUTING.md: rename 'That's it' step to 'No site edits needed' - CLAUDE.md: remove redundant eval command from Workflow section; point to Evaluations section for the full command reference - CLAUDE.md: fix stale Project Structure (src/data/ → src/lib/, remove non-existent SiteLayout, components/*) - CLAUDE.md: clarify branch naming — <skill-name> is the IC skill name; document combined-branch pattern for multi-skill syncs
- CLAUDE.md: clarify 'Body content' row in upstream table (not icskills-owned) - CLAUDE.md: scope PR eval requirement to new skills only (line 67) - CLAUDE.md: fix Project Structure paths (already committed, included here) - improve-ic-skill: add #8-submit-a-pr anchor to CONTRIBUTING.md link - CONTRIBUTING.md: add improve-ic-skill and branch naming note to sync section - PATCHES.md: clarify upstream commit date vs vendored date labels
…r problem statement
… problem, no exceptions for pushback
Skill Validation ReportValidating skill: /home/runner/work/icskills/icskills/skills/icp-cliStructure
Frontmatter
Tokens
Markdown
Tokens
Content Analysis
References Content Analysis
Contamination Analysis
References Contamination Analysis
Result: 1 warning Project Checks |



What changed against main
New: skill-creator installed
skill-creatorvendored at.agents/skills/skill-creator/with a symlink at.claude/skills/skill-creatorfor Claude Code auto-discovery. Installed vianpx skills addfromanthropics/skillscommitb0cbd3df(2026-03-06).skills-lock.jsonis gitignored — our copy is a patched fork and must not be silently overwritten bynpx skills add. Re-apply patches fromPATCHES.mdif updating intentionally.5 bugs patched (confirmed from testrun, documented in
.agents/skills/skill-creator/PATCHES.md):generate_review.py: escape</script>— viewer breaks on HTML eval output containing script tagsSKILL.md: add missingrun-1/path level —aggregate_benchmark.pysilently drops all results without itSKILL.md: requireeval-0-descriptive-name/format — aggregator globseval-*, purely descriptive names vanishSKILL.md:--staticwrong for Claude Code — generatesfile://URLs browsers restrict; use server modequick_validate.py: replace PyYAML (undeclared third-party dep) with stdlib parser —package_skill.pyfails at import in a clean environment1 doc improvement to
agents/grader.md: explicit warning thatgrading.jsonexpectations must usetext/passed/evidencefield names — viewer silently shows empty grades otherwise.New: improve-ic-skill
Internal skill at
.agents/skills/improve-ic-skill/for improving existing skills. Token-efficient alternative to skill-creator's heavy interactive loop.Key behaviours:
npm run validate,evaluate-skills.jsflags), eval location (evaluations/<skill-name>.json), and upstream-tracked skill rulesDeleted: legacy skill template
skills/_template/SKILL.md.templateremoved — its prescribed body sections contradicted the "no rigid structure" principle and skill-creator now handles drafting.Updated:
.gitignoreAdded entries for skill-creator runtime artifacts:
skills/*-workspace/,**/__pycache__/,skills-lock.json.Updated:
CLAUDE.mdandCONTRIBUTING.mdimprove-ic-skillfor improving existing skills;skill-creatorfor creating new skills — explicit in both docsevaluations/<skill-name>.json+evaluate-skills.jsas the committed regression safety netimprove-ic-skillnamed as the skill to load; eval guidance aligned with general policy; branch naming clarified (<repo>= upstream repo short name)src/data/→src/lib/, non-existent components removed)Not fixed (intentional)
grader.mdstep ordering bug (Step 7 writes before Step 8 reads metrics) — pre-existing in upstream Anthropic code, does not affectimprove-ic-skill's workflow.