@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.
@@ -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.3.0",
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 see the [LICENSE](https://github.com/KensioSoftware/kensio.ai/blob/main/LICENSE) in the
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.0",
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 creates the plugin folder, package.json, plugin.json and SKILL.md, and registers 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.
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
- └── SKILL.md
22
+ ├── SKILL.md
23
+ ├── reference/ # optional, loaded only when linked to
24
+ └── scripts/ # optional, anything the skill runs
23
25
  ```
24
26
 
25
- **A plugin folder must be self-contained.** Never reference files outside it with `../` plugins
26
- are copied, zipped, and installed standalone, so those paths will not resolve.
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; set `name` to `@kensio/<skill-name>` and the
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`; set `name` and `description`.
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 never pick a new
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 include the words and phrases a user would actually type>
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, so it
53
- carries the whole triggering burden. State what the skill does, then when to use it, in third
54
- person. Concrete trigger phrases beat abstract summaries.
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 it is instructions for Claude, not documentation for a human.
61
- Push detail into sibling files (`reference.md`, `examples/`) and link to them, so the body stays
62
- cheap to load and the details are read only when needed.
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
- There is nothing to do. Merging to `main` releases, and the version comes from the pull request
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, so a released version means the same commit
71
- wherever it was installed from.
93
+ Every plugin is set to the new version together. A released version means the same commit wherever
94
+ it was installed from.