Skip to content

Latest commit

 

History

History
51 lines (43 loc) · 1.82 KB

File metadata and controls

51 lines (43 loc) · 1.82 KB

Skillmo

Linked skills for AI agents. A friendly CLI wrapper over git submodules that adds skill repos directly into .claude/skills/.

Quick start

npm install
npm run build
npm test

Build & test

npm run build          # TypeScript → dist/
npm test               # vitest (18 tests)
npm run dev            # watch mode
node dist/cli.js       # run CLI locally

Architecture

  • Thin wrapper over git submodule commands -- no custom package manager
  • Skills are git submodules checked out into .claude/skills/<name>
  • GitHub shorthand (org/repo) resolves to git@github.com:org/repo.git
  • commander for CLI, vitest for tests
  • All git operations go through src/git/submodule.ts
  • URL resolution logic in src/git/resolve.ts

Key files

  • src/cli.ts — CLI entry point, 6 commands
  • src/git/submodule.ts — all git submodule operations (add, remove, update, init, list)
  • src/git/resolve.ts — GitHub shorthand and URL resolution
  • src/commands/ — one file per command
  • tests/git/ — tests with real temporary git repos

Non-negotiables

  • Strict TypeScript — no any
  • Never modify user's existing .claude/skills/ content that wasn't added by skillmo
  • Every new feature must have tests
  • Submodule operations must handle cleanup fully (deinit + git rm + .git/modules removal)
  • GitHub shorthand must always work alongside full git URLs

How to work here

  • Small incremental commits with conventional messages (feat:, fix:, refactor:)
  • Run npm test before committing
  • The project is intentionally minimal — resist scope creep

Forbidden patterns

  • No any types
  • No console.log in library code (only in command handlers for user output)
  • No custom package manager logic — git submodules are the mechanism
  • No registry, no cloud sync, no compile step (MVP scope)