Skip to content

refactor: consolidate discrete skills into single convex skill with references#9

Open
bencered wants to merge 1 commit into
waynesutton:mainfrom
bencered:feat/consolidate-skills
Open

refactor: consolidate discrete skills into single convex skill with references#9
bencered wants to merge 1 commit into
waynesutton:mainfrom
bencered:feat/consolidate-skills

Conversation

@bencered
Copy link
Copy Markdown

Summary

Consolidates 14 separate skill directories into a single skills/convex/ skill with a references/ folder, following the pattern from cloudflare/skills. This is a v2.0.0 breaking change.

Before

skills/convex-functions/SKILL.md
skills/convex-agents/SKILL.md
skills/convex-best-practices/SKILL.md
... (14 directories, each with duplicate assets + openai.yaml)

After

skills/convex/
├── SKILL.md              ← decision trees + reference index
├── references/           ← 13 focused markdown files
├── assets/               ← shared logo files
└── agents/openai.yaml    ← single Codex config

Why

  • Progressive disclosure — agents load the main SKILL.md first (~100 tokens of metadata at startup), then drill into specific references only when needed. Matches the agentskills.io spec design philosophy.
  • Ecosystem compat — tested with npx skills add (discovers 1 skill, installs to 42 agents), npm pack, Claude Code plugin, and Cursor plugin.
  • Less duplication — removed 13 copies of logo assets and openai.yaml.

Breaking Changes

  • npm API: SKILLS keys changed ("convex-functions""functions"). A backward-compat alias with both old and new keys is kept, but prefer REFERENCES. getSkill("convex-best-practices") now throws with a helpful migration message.
  • CLI: convex-skills install <skill-name> replaced by convex-skills install (warns if old name passed). install-all kept as alias.
  • CLAUDE.md removed from npm package — was a symlink to agents.md, which is now included directly.

See the changelog for full migration guide with before/after code examples.

What Changed

  • 13 SKILL.md files → skills/convex/references/*.md (frontmatter stripped)
  • New SKILL.md with decision trees and reference index
  • index.js / bin/cli.js rewritten for consolidated structure
  • Added .claude-plugin/marketplace.json, .cursor-plugin/
  • SKILL.md frontmatter now spec-compliant (compatibility, allowed-tools, metadata)
  • getReference(), listReferences(), getSkillPath() resolve old names gracefully
  • Cleaned up broken .codex/skills/ symlinks, .DS_Store, stale docs
  • Fixed CONTRIBUTING.md license (MIT → Apache-2.0), CLAUDE.md/AGENTS.md symlinks
  • Updated docs.md, files.md, changelog.md, README.md, agents.md, .codex/README.md

Testing

node bin/cli.js list                          # ✅ 1 skill, 13 references
node bin/cli.js install --dir /tmp/test       # ✅ copies SKILL.md + 13 refs
node bin/cli.js install convex-functions      # ✅ warns + installs full skill
npx skills add . --all -y                     # ✅ 1 skill → 42 agents
npm pack --dry-run                            # ✅ 29 files, 62.6 kB

…eferences

Restructures the repository from 14 separate skill directories into a single
consolidated 'convex' skill following the pattern established by cloudflare/skills.

Changes:
- Move 13 discrete SKILL.md files into skills/convex/references/ as plain markdown
- Rewrite skills/convex/SKILL.md with decision trees and reference index
- Strip old YAML frontmatter from reference files (they're docs, not standalone skills)
- Make SKILL.md frontmatter spec-compliant per agentskills.io (name, description,
  license, compatibility, allowed-tools, metadata)
- Rewrite index.js and bin/cli.js for consolidated single-skill structure
- Update command/convex.md to reference new paths
- Add .claude-plugin/marketplace.json for Claude Code marketplace
- Add .cursor-plugin/ for Cursor support
- Rewrite README.md for new structure
- Update agents.md, .codex/README.md, package.json (v2.0.0)
- Remove .DS_Store files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant