skillship 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,11 +16,29 @@ registry. It adds the three things the ecosystem is missing:
16
16
 
17
17
  ## Install / usage
18
18
 
19
+ Both commands below use `npx`, which ships with [Node.js](https://nodejs.org)
20
+ (>= 18). If `npx` is not found, install Node.js first — e.g. download the LTS
21
+ installer from [nodejs.org](https://nodejs.org), or use a version manager
22
+ (`brew install node`, `nvm install --lts`, `winget install OpenJS.NodeJS.LTS`).
23
+ Verify with `node -v` and `npx -v`.
24
+
25
+ **Recommended:** install the bundled `/skillship` Agent Skill straight from
26
+ GitHub. It drives the CLI for you — invoke `/skillship` (or ask to publish a
27
+ skill) and the agent locates/scaffolds a `SKILL.md`, validates it, fixes issues,
28
+ and installs or packages it for the chosen surface:
29
+
19
30
  ```bash
20
- npx skillship <command>
31
+ npx skills add shivdeepak/skillship
21
32
  ```
22
33
 
23
- Requires Node.js >= 18.
34
+ Add `-a <agent>` (e.g. `-a cursor`, repeatable) to target specific agents, or
35
+ `-g` to install globally.
36
+
37
+ Or run the CLI directly with `npx` (requires Node.js >= 18):
38
+
39
+ ```bash
40
+ npx skillship <command>
41
+ ```
24
42
 
25
43
  ## Commands
26
44
 
@@ -148,9 +166,42 @@ src/
148
166
  lib/exec.ts # spawn wrappers for npx skills / gh / agentskills
149
167
  lib/load.ts # SKILL.md loader
150
168
  templates/ # CI + snippet + AGENTS/README/SKILL templates for init
169
+ skillship/ # bundled Agent Skill (the /skillship skill)
151
170
  test/ # vitest specs + fixtures
152
171
  ```
153
172
 
173
+ ## Releases
174
+
175
+ Releases are automated via
176
+ [release-please](https://github.com/googleapis/release-please-action) +
177
+ [Conventional Commits](https://www.conventionalcommits.org/). On every push to
178
+ `main`, release-please opens/updates a release PR that bumps the version in
179
+ `package.json` and the `CHANGELOG.md` based on the commits since the last
180
+ release (`feat:` -> minor, `fix:`/`perf:` -> patch, `feat!:`/`BREAKING CHANGE`
181
+ -> major). Merging that PR tags the release and triggers `npm publish` from
182
+ `.github/workflows/release.yml`. `chore:`/`ci:` commits do not trigger a
183
+ release.
184
+
185
+ Publishing uses **npm trusted publishing (OIDC)** — no `NPM_TOKEN` secret. The
186
+ workflow requests a short-lived OIDC token (`id-token: write`) that npm verifies
187
+ against the trusted-publisher config; provenance attestations are generated
188
+ automatically.
189
+
190
+ `.github/workflows/ci.yml` runs lint + test + build on every push and PR.
191
+
192
+ One-time setup:
193
+
194
+ 1. Enable **Settings -> Actions -> General -> Workflow permissions**: "Read and
195
+ write" and "Allow GitHub Actions to create and approve pull requests" so
196
+ release-please can open release PRs.
197
+ 2. Publish `1.0.0` once manually (`npm publish --access public`) — trusted
198
+ publishing can only be configured for a package that already exists.
199
+ 3. On npmjs.com, open the package's **Access** page and add a **Trusted
200
+ Publisher** for GitHub Actions, matching repo `shivdeepak/skillship` and
201
+ workflow file `release.yml` exactly. After that, every release publishes
202
+ tokenlessly. Optionally set the package to "require 2FA and disallow tokens"
203
+ so only the workflow can publish.
204
+
154
205
  ## License
155
206
 
156
207
  MIT
package/package.json CHANGED
@@ -1,14 +1,19 @@
1
1
  {
2
2
  "name": "skillship",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Make any Agent Skill (SKILL.md) portable across Cursor, Claude Code, Claude Web, and Claude Cowork.",
5
5
  "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/shivdeepak/skillship.git"
9
+ },
6
10
  "bin": {
7
11
  "skillship": "dist/cli.js"
8
12
  },
9
13
  "files": [
10
14
  "dist",
11
15
  "templates",
16
+ "skillship",
12
17
  "README.md"
13
18
  ],
14
19
  "engines": {
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: skillship
3
+ description: Turn a project into a publishable Agent Skill via the skillship CLI. Use to scaffold, validate, package, install, or publish a SKILL.md for Cursor, Claude Code, Claude Web, or Cowork, or on /skillship
4
+ ---
5
+
6
+ # skillship
7
+
8
+ Drive the `skillship` CLI to convert the user's project into a portable Agent
9
+ Skill and publish it. Run the CLI for the user; do not ask them to run commands
10
+ manually.
11
+
12
+ ## Workflow
13
+
14
+ Copy this checklist and track progress:
15
+
16
+ ```
17
+ - [ ] 1. Locate or create the SKILL.md
18
+ - [ ] 2. Validate (skillship validate)
19
+ - [ ] 3. Fix any reported issues, re-validate until clean
20
+ - [ ] 4. Confirm publish target with the user
21
+ - [ ] 5. Install (filesystem) or package (Claude upload)
22
+ ```
23
+
24
+ ### Step 1 — Locate or create the SKILL.md
25
+
26
+ A skill is a directory containing a `SKILL.md`. Find one in the project (search
27
+ for `SKILL.md`). Determine `<dir>` = the folder that directly contains it.
28
+
29
+ - **Already exists** → use it.
30
+ - **Does not exist** → scaffold one:
31
+
32
+ ```bash
33
+ npx skillship init <name> --ci --snippets
34
+ ```
35
+
36
+ Then author the `SKILL.md` body following the `create-skill` skill's rules
37
+ (third-person `description`, both WHAT and WHEN, under 500 lines). The skill
38
+ `name` must be lowercase letters/numbers/hyphens and match the parent folder.
39
+
40
+ ### Step 2 — Validate
41
+
42
+ ```bash
43
+ npx skillship validate <dir> --profile all
44
+ ```
45
+
46
+ `--profile all` is the strictest (Claude's 200-char description cap). Use
47
+ `--json` if you need to parse results programmatically.
48
+
49
+ ### Step 3 — Fix and re-validate
50
+
51
+ Read each failure, edit the `SKILL.md`, and re-run validate until it exits 0.
52
+ Common failures: description over 200 chars, `name` not matching the folder,
53
+ `<`/`>` characters in the description, body over 500 lines (warning only).
54
+
55
+ ### Step 4 — Confirm the publish target
56
+
57
+ Ask the user where to publish (use AskQuestion). Targets:
58
+
59
+ | Target | Mechanism |
60
+ | --- | --- |
61
+ | `cursor`, `claude-code` | Filesystem install |
62
+ | `claude-web`, `claude-cowork` | Upload-only `.skill` zip |
63
+
64
+ ### Step 5 — Install or package
65
+
66
+ **Filesystem agents** (e.g. Cursor, Claude Code) — install with the `npx skills`
67
+ convention that skillship wraps:
68
+
69
+ ```bash
70
+ npx skillship install <dir> -a cursor,claude-code
71
+ # equivalently: npx skills add <dir> -a cursor,claude-code
72
+ ```
73
+
74
+ Add `--global` to install for all projects, `--copy` to copy instead of
75
+ symlink.
76
+
77
+ **Upload-only surfaces** (e.g. Claude Web / Cowork):
78
+
79
+ ```bash
80
+ npx skillship package <dir> # -> dist/<name>.skill
81
+ ```
82
+
83
+ Then tell the user to upload `dist/<name>.skill`:
84
+ - Claude Web: Settings → Capabilities → Upload skill → enable toggle.
85
+ - Claude Cowork: Customize → Skills → Upload (desktop app only).
86
+
87
+ ## Publishing via CI (optional)
88
+
89
+ If the skill repo was created with `init --ci`, it auto-releases via
90
+ release-please + Conventional Commits. After pushing, tell the user to enable
91
+ **Settings → Actions → Workflow permissions**: "Read and write" and "Allow
92
+ GitHub Actions to create and approve pull requests" so release-please can open
93
+ release PRs and attach the `.skill` asset.
94
+
95
+ ## Invoking the CLI
96
+
97
+ Prefer `npx skillship <command>`. If `npx skillship` cannot resolve the package
98
+ (not published / offline), run it from a local checkout instead:
99
+
100
+ ```bash
101
+ npm run build # in the skillship repo, produces dist/cli.js
102
+ node dist/cli.js <command>
103
+ ```
104
+
105
+ Run `npx skillship doctor` to verify the environment (Node >= 18, npx; optional
106
+ gh and agentskills).