@kensio/skill-template 1.3.0 → 1.6.0
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/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/package.json +1 -1
- package/skills/skill-template/SKILL.md +41 -18
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
|
|
3
3
|
"name": "skill-template",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.6.0",
|
|
5
5
|
"description": "A copy-and-edit starting point for writing a new Claude Code skill, covering SKILL.md frontmatter, description wording, and progressive disclosure.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Kensio Software",
|
package/README.md
CHANGED
|
@@ -10,5 +10,5 @@ bump.
|
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
Part of [kensio.ai](https://github.com/KensioSoftware/kensio.ai). Licensed under the Apache License
|
|
13
|
-
2.0
|
|
13
|
+
2.0. See the [LICENSE](https://github.com/KensioSoftware/kensio.ai/blob/main/LICENSE) in the
|
|
14
14
|
repository root.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kensio/skill-template",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "A copy-and-edit starting point for writing a new Claude Code skill, covering SKILL.md frontmatter, description wording, and progressive disclosure.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: skill-template
|
|
3
|
-
description: Scaffold a new Claude Code skill in this repo
|
|
3
|
+
description: Scaffold a new Claude Code skill in this repo, creating the plugin folder, package.json, plugin.json and SKILL.md, and registering it in the marketplace. Use when the user asks to "add a new skill", "create a skill", or "start a new plugin" in the kensio.ai repo.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Skill Template
|
|
@@ -19,53 +19,76 @@ plugins/<skill-name>/
|
|
|
19
19
|
│ └── plugin.json # name, version, description, author
|
|
20
20
|
└── skills/
|
|
21
21
|
└── <skill-name>/
|
|
22
|
-
|
|
22
|
+
├── SKILL.md
|
|
23
|
+
├── reference/ # optional, loaded only when linked to
|
|
24
|
+
└── scripts/ # optional, anything the skill runs
|
|
23
25
|
```
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
Anything under `skills/` ships, because that is what `package.json` lists in `files`. A script the
|
|
28
|
+
skill runs belongs there, not at the plugin root.
|
|
29
|
+
|
|
30
|
+
**A plugin folder must be self-contained.** Never reference files outside it with `../`, because
|
|
31
|
+
plugins are copied, zipped, and installed standalone, so those paths will not resolve.
|
|
27
32
|
|
|
28
33
|
## Steps
|
|
29
34
|
|
|
30
35
|
1. Create `plugins/<skill-name>/` following the layout above.
|
|
31
|
-
2. Copy `package.json` from an existing plugin
|
|
36
|
+
2. Copy `package.json` from an existing plugin, then set `name` to `@kensio/<skill-name>` and the
|
|
32
37
|
`repository.directory` to `plugins/<skill-name>`.
|
|
33
|
-
3. Copy `.claude-plugin/plugin.json
|
|
38
|
+
3. Copy `.claude-plugin/plugin.json`, then set `name` and `description`.
|
|
34
39
|
4. Set the `version` in both files to whatever the other plugins currently carry. Versions move in
|
|
35
|
-
lockstep across the whole repo, and the release workflow is what changes them
|
|
40
|
+
lockstep across the whole repo, and the release workflow is what changes them. Never pick a new
|
|
36
41
|
number by hand.
|
|
37
42
|
5. Write `skills/<skill-name>/SKILL.md` (see frontmatter below).
|
|
38
43
|
6. Add an entry to `.claude-plugin/marketplace.json` with a matching `name`, a `source` of
|
|
39
44
|
`"./plugins/<skill-name>"`, and a description.
|
|
40
|
-
7. Run `pnpm check`.
|
|
45
|
+
7. Run `pnpm check`. This validates the manifests, asserts the lockstep version, and runs the prose
|
|
46
|
+
gate described below.
|
|
47
|
+
|
|
48
|
+
Everything else is automatic. `scripts/set-version.mjs` and `scripts/publish-npm.mjs` both read the
|
|
49
|
+
`plugins/` directory, so a new folder is versioned and published to npm on the next release without
|
|
50
|
+
being listed anywhere.
|
|
41
51
|
|
|
42
52
|
## SKILL.md frontmatter
|
|
43
53
|
|
|
44
54
|
```markdown
|
|
45
55
|
---
|
|
46
56
|
name: <skill-name>
|
|
47
|
-
description: <what it does, then when to use it
|
|
57
|
+
description: <what it does, then when to use it. Include the words and phrases a user would actually type>
|
|
48
58
|
---
|
|
49
59
|
```
|
|
50
60
|
|
|
51
61
|
- `name` must be kebab-case and match the containing directory.
|
|
52
|
-
- `description` is the _only_ thing Claude sees when deciding whether to load the skill
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
- `description` is the _only_ thing Claude sees when deciding whether to load the skill. It carries
|
|
63
|
+
the whole triggering burden. State what the skill does, then when to use it, in third person.
|
|
64
|
+
Concrete trigger phrases beat abstract summaries.
|
|
55
65
|
- Optional frontmatter worth knowing: `allowed-tools` (restrict the tools the skill may use) and
|
|
56
66
|
`disable-model-invocation: true` (user-invocable only, via `/<skill-name>`).
|
|
57
67
|
|
|
58
68
|
## Writing the body
|
|
59
69
|
|
|
60
|
-
Keep `SKILL.md` short and imperative
|
|
61
|
-
Push detail into sibling files (`reference
|
|
62
|
-
|
|
70
|
+
Keep `SKILL.md` short and imperative. It is instructions for Claude, not documentation for a human.
|
|
71
|
+
Push detail into sibling files (`reference/`, `examples/`) and link to them. The body stays cheap to
|
|
72
|
+
load and the details are read only when needed.
|
|
73
|
+
|
|
74
|
+
## Prose
|
|
75
|
+
|
|
76
|
+
`pnpm check` runs `pnpm prose`, which fails the build on em dashes, semicolons, and five sentence
|
|
77
|
+
shapes measured against Django, Effective Go, the Rust Book and the Python docs. A new `SKILL.md`
|
|
78
|
+
and `README.md` have to pass it.
|
|
79
|
+
|
|
80
|
+
Load the `technical-prose-style` skill before writing either one. It carries the rules, the
|
|
81
|
+
before-and-after examples, and the evidence for each. Checking a single file while drafting:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
node plugins/technical-prose-style/skills/technical-prose-style/scripts/prose-check.mjs plugins/<skill-name>
|
|
85
|
+
```
|
|
63
86
|
|
|
64
87
|
## Releasing
|
|
65
88
|
|
|
66
|
-
|
|
89
|
+
Releasing is automatic. Merging to `main` releases, and the version comes from the pull request
|
|
67
90
|
title: `fix:` for a patch, `feat:` for a minor, `feat!:` or a `BREAKING CHANGE` footer for a major.
|
|
68
91
|
A `docs:` or `chore:` title releases nothing.
|
|
69
92
|
|
|
70
|
-
Every plugin is set to the new version together
|
|
71
|
-
|
|
93
|
+
Every plugin is set to the new version together. A released version means the same commit wherever
|
|
94
|
+
it was installed from.
|