Skip to content

Commit 316bb46

Browse files
authored
update skills (#10)
* update skills * update skills * chore: remove plugin category metadata references Align plugin spec, templates, and CI frontmatter validation by removing deprecated category references and enforcing name+description where required. Made-with: Cursor * update readme
1 parent 063426e commit 316bb46

18 files changed

Lines changed: 61 additions & 185 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "kit",
33
"description": "Community plugin & skills marketplace for Claude Code",
4-
"version": "1.4.0",
4+
"version": "1.4.1",
55
"owner": {
66
"name": "hamsurang",
77
"email": "zlemzlem5656@naver.com"

.github/ISSUE_TEMPLATE/plugin-submission.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ assignees: ''
1111
**Plugin name** (kebab-case):
1212
<!-- e.g. my-awesome-plugin -->
1313

14-
**Category**:
15-
<!-- productivity | git | code-quality | documentation | ai-agents | integrations | learning | security | devops | data -->
16-
1714
**Description** (one sentence):
1815
<!-- What does this plugin do? -->
1916

@@ -37,6 +34,7 @@ claude plugin install YOUR_PLUGIN_NAME@hamsurang/kit
3734

3835
- [ ] I have tested this plugin locally
3936
- [ ] `plugin.json` has all required fields
37+
- [ ] Markdown frontmatter has required fields (`commands`: `description`, `skills`/`agents`: `name`, `description`)
4038
- [ ] `README.md` is present with usage examples
4139
- [ ] No secrets or credentials are hardcoded
4240
- [ ] The plugin follows [PLUGIN_SPEC.md](../../docs/contributors/plugin-spec.md)

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
## Plugin Submission Checklist
22

33
- [ ] Plugin name is unique and kebab-case (lowercase, hyphens only)
4-
- [ ] `.claude-plugin/plugin.json` has all required fields: `name`, `version`, `description`, `author`, `category`, `license`
4+
- [ ] `.claude-plugin/plugin.json` has all required fields: `name`, `version`, `description`, `author`, `license`
55
- [ ] `README.md` is present and explains what the plugin does
6-
- [ ] Frontmatter in command/skill/agent `.md` files is valid YAML
6+
- [ ] Frontmatter has required fields (`commands`: `description`, `skills`/`agents`: `name`, `description`)
77
- [ ] No hardcoded secrets or credentials in any file
88
- [ ] Version follows semantic versioning (e.g. `1.0.0`)
99
- [ ] MCP server URLs use HTTPS (if applicable)

.github/scripts/validate-plugin.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,6 @@ if (!manifest.author) {
4141
}
4242
}
4343

44-
// Category validation
45-
const validCategories = [
46-
'productivity', 'git', 'code-quality', 'documentation',
47-
'ai-agents', 'integrations', 'learning', 'security', 'devops', 'data'
48-
];
49-
if (manifest.category && !validCategories.includes(manifest.category)) {
50-
console.error('Invalid category: ' + manifest.category + '. Must be one of: ' + validCategories.join(', '));
51-
failed = true;
52-
}
53-
5444
// Name format: kebab-case only
5545
const nameRegex = /^[a-z0-9-]+$/;
5646
if (manifest.name && !nameRegex.test(manifest.name)) {

.github/workflows/validate-plugin.yml

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ jobs:
123123
for md_file in $MD_FILES; do
124124
[ -f "$md_file" ] || continue
125125
echo "Checking frontmatter in $md_file..."
126+
FILE_FAILED=0
126127
127128
# Check file starts with ---
128129
if ! head -1 "$md_file" | grep -q '^---$'; then
@@ -138,12 +139,25 @@ jobs:
138139
continue
139140
fi
140141
141-
# Extract frontmatter and check for description field
142+
# Extract frontmatter and check required fields by file type
142143
FRONTMATTER=$(awk '/^---$/{if(++c==2)exit} c==1' "$md_file")
143144
if ! printf "%s" "$FRONTMATTER" | grep -qE '^description:'; then
144145
echo "::error file=$md_file::Frontmatter missing required field: description"
145146
FAILED=1
146-
else
147+
FILE_FAILED=1
148+
fi
149+
150+
case "$md_file" in
151+
plugins/*/skills/*/SKILL.md|plugins/*/agents/*.md)
152+
if ! printf "%s" "$FRONTMATTER" | grep -qE '^name:'; then
153+
echo "::error file=$md_file::Frontmatter missing required field: name"
154+
FAILED=1
155+
FILE_FAILED=1
156+
fi
157+
;;
158+
esac
159+
160+
if [ "$FILE_FAILED" -eq 0 ]; then
147161
echo "OK: $md_file"
148162
fi
149163
done

README.ko.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,13 @@ bash scripts/scaffold-plugin.sh
7575

7676
## 플러그인 & 스킬 목록
7777

78-
| 플러그인 | 카테고리 | 설명 | 작성자 |
79-
|---------|---------|------|--------|
80-
| [vitest](./plugins/vitest) | code-quality | Vitest 테스트 작성·디버깅·설정을 위한 자동 활성화 스킬 | [hamsurang](https://github.com/hamsurang) |
78+
| 플러그인 | 설명 | 작성자 |
79+
| --------- | ------ | -------- |
80+
| [vitest](./plugins/vitest) | Vite 기반 프로젝트에서 Vitest 테스트 작성, 디버깅, 설정을 지원하는 자동 활성화 스킬 | [minsoo.web](https://github.com/minsoo-web) |
81+
| [skill-review](./plugins/skill-review) | SKILL.md를 베스트 프랙티스 기준으로 리뷰하고 pass/fail 리포트를 생성하는 슬래시 커맨드 스킬 | [minsoo.web](https://github.com/minsoo-web) |
82+
| [gh-cli](./plugins/gh-cli) | gh CLI로 GitHub 작업을 수행할 때 자동으로 활성화되는 스킬 | [minsoo.web](https://github.com/minsoo-web) |
83+
| [personal-tutor](./plugins/personal-tutor) | 세션 간 학습자 프로필과 지식 그래프를 유지하는 적응형 기술 튜터링 스킬 | [minsoo.web](https://github.com/minsoo-web) |
84+
| [deepwiki-cli](./plugins/deepwiki-cli) | MCP 토큰 오버헤드 없이 DeepWiki CLI로 GitHub 저장소 위키를 조회하는 스킬 | [minsoo.web](https://github.com/minsoo-web) |
8185

8286
*플러그인을 기여하고 싶으신가요? [기여 방법](docs/contributors/contributing.md)을 확인하세요.*
8387

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,13 @@ bash scripts/scaffold-plugin.sh
7575

7676
## Plugin & Skills Directory
7777

78-
| Plugin | Category | Description | Author |
79-
|--------|----------|-------------|--------|
80-
| [vitest](./plugins/vitest) | code-quality | Auto-invoked skill for writing, debugging, and configuring Vitest tests | [hamsurang](https://github.com/hamsurang) |
78+
| Plugin | Description | Author |
79+
| -------- | ----------- | -------- |
80+
| [vitest](./plugins/vitest) | Auto-invoked skill for writing, debugging, and configuring Vitest tests in Vite-based projects | [minsoo.web](https://github.com/minsoo-web) |
81+
| [skill-review](./plugins/skill-review) | Slash-command skill that reviews any SKILL.md against best practices and outputs a structured pass/fail report | [minsoo.web](https://github.com/minsoo-web) |
82+
| [gh-cli](./plugins/gh-cli) | Auto-invoked skill for working with GitHub from the command line using the gh CLI tool | [minsoo.web](https://github.com/minsoo-web) |
83+
| [personal-tutor](./plugins/personal-tutor) | Adaptive technical tutoring skill that builds a persistent knowledge graph and learner profile across sessions | [minsoo.web](https://github.com/minsoo-web) |
84+
| [deepwiki-cli](./plugins/deepwiki-cli) | Query GitHub repository wikis via DeepWiki CLI without MCP token overhead. | [minsoo.web](https://github.com/minsoo-web) |
8185

8286
*Have a plugin to share? See [Contributing](docs/contributors/contributing.md).*
8387

docs/contributors/categories.md

Lines changed: 0 additions & 102 deletions
This file was deleted.

docs/contributors/contributing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ Your PR will be automatically validated by CI and reviewed by a maintainer withi
5454

5555
Before submitting, verify all items:
5656

57-
- [ ] `plugin.json` has all required fields: `name`, `version`, `description`, `author`, `category`, `license`
57+
- [ ] `plugin.json` has all required fields: `name`, `version`, `description`, `author`, `license`
5858
- [ ] Plugin name is unique and kebab-case (no spaces, lowercase)
5959
- [ ] `README.md` is present and explains what the plugin does
60-
- [ ] Markdown files have valid YAML frontmatter (no syntax errors)
60+
- [ ] Markdown frontmatter has required fields (`commands`: `description`, `skills`/`agents`: `name`, `description`)
6161
- [ ] No hardcoded secrets or credentials in any file
6262
- [ ] MCP server URLs use HTTPS (except `localhost` / `127.0.0.1`)
6363
- [ ] License is declared and compatible with open source distribution

docs/contributors/plugin-spec.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ The manifest lives at `.claude-plugin/plugin.json` inside the plugin directory.
3434
| `description` | string | One clear sentence describing what the plugin does. Max 200 chars. |
3535
| `author.name` | string | Human-readable author name. |
3636
| `author.github` | string | GitHub username for attribution and contact. |
37-
| `category` | string | One of the defined category slugs. See [categories.md](./categories.md). |
3837
| `license` | string | SPDX license identifier (e.g. `MIT`, `Apache-2.0`). |
3938

4039
### Optional Fields
@@ -58,7 +57,6 @@ The manifest lives at `.claude-plugin/plugin.json` inside the plugin directory.
5857
"name": "Your Name",
5958
"github": "your-github-username"
6059
},
61-
"category": "productivity",
6260
"license": "MIT",
6361
"keywords": ["automation", "workflow"],
6462
"repository": "https://github.com/you/my-plugin",
@@ -81,6 +79,8 @@ model: sonnet # Optional: haiku, sonnet, opus
8179
---
8280
```
8381

82+
`commands/*.md` frontmatter requires only `description`.
83+
8484
### Body
8585

8686
The body is the command's prompt template. Use `$ARGUMENTS` to reference user-provided arguments.
@@ -116,11 +116,11 @@ Skills are automatically invoked by Claude when the conversation context matches
116116
name: skill-name # Required: unique identifier
117117
description: > # Required: trigger conditions (used by Claude to decide when to activate)
118118
This skill should be used when...
119-
version: 1.0.0 # Required: semantic version
120-
license: MIT # Required: SPDX identifier
121119
---
122120
```
123121

122+
`skills/*/SKILL.md` frontmatter requires both `name` and `description`.
123+
124124
The `description` field is critical — it's what Claude reads to decide whether to activate this skill. Write it as trigger scenarios starting with "This skill should be used when...".
125125

126126
### Example: `skills/code-explainer/SKILL.md`
@@ -132,8 +132,6 @@ description: >
132132
This skill should be used when the user asks to "explain this code",
133133
"what does this do", "help me understand", or asks questions about
134134
how a specific piece of code works.
135-
version: 1.0.0
136-
license: MIT
137135
---
138136

139137
# Code Explainer
@@ -164,6 +162,8 @@ description: > # Required: when/how to invoke this agent
164162
---
165163
```
166164

165+
`agents/*.md` frontmatter requires both `name` and `description`.
166+
167167
### Example: `agents/reviewer.md`
168168

169169
```markdown

0 commit comments

Comments
 (0)