Skip to content

Commit c961e9a

Browse files
committed
docs(skill): README + CONTRIBUTING + PR template for skill submissions
1 parent 4e99089 commit c961e9a

3 files changed

Lines changed: 134 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Skill submission
2+
3+
- **Name:** `<skill-name>`
4+
- **What it does (one sentence):**
5+
- **Source material:**
6+
7+
### Checklist
8+
9+
- [ ] I have the right to redistribute the source material this skill is
10+
derived from (public, my own work, properly licensed, or fair-use
11+
methodology only — not bulk-copied copyrighted text).
12+
- [ ] `SKILL.md` has valid YAML frontmatter with `name:` and `description:`
13+
(description ≤ 1024 chars).
14+
- [ ] All `[[references/...]]` links resolve.
15+
- [ ] I added an entry under `plugins[0].skills` in
16+
`.claude-plugin/marketplace.json`.
17+
- [ ] I installed and tested this skill locally in at least one agent CLI
18+
(Claude Code / Codex CLI / Gemini CLI / Cursor).
19+
20+
### Notes for reviewers
21+
22+
<anything else maintainers should know>

CONTRIBUTING.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Contributing to OpenKB
2+
3+
Thanks for your interest in OpenKB! There are two ways to contribute: code (bug
4+
fixes, new features) and skills (compiled knowledge artifacts).
5+
6+
## Code contributions
7+
8+
Standard GitHub workflow:
9+
10+
1. Fork the repo and create a feature branch off `main`.
11+
2. Add tests for any new behaviour. Run `uv run pytest` to verify they pass.
12+
3. Open a PR with a clear description and link to any related issues.
13+
4. Address review feedback. A maintainer will merge once everything looks good.
14+
15+
## Submitting a skill
16+
17+
OpenKB doubles as a registry for compiled-knowledge skills. The `skills/`
18+
directory in this repo hosts the official `openkb` skill plus
19+
community-contributed skills installable via:
20+
21+
```bash
22+
npx skills@latest add VectifyAI/OpenKB
23+
```
24+
25+
To submit your skill:
26+
27+
### 1. Compile and test locally
28+
29+
```bash
30+
cd <your-kb>
31+
openkb skill new <skill-name> "<one-sentence intent>"
32+
cp -r output/skills/<skill-name> ~/.claude/skills/
33+
# Verify the skill activates in a Claude Code session on a relevant question
34+
```
35+
36+
### 2. Open a PR against this repo
37+
38+
1. Fork `VectifyAI/OpenKB`.
39+
2. Copy your skill into the fork at `skills/<your-skill-name>/`.
40+
3. Add a new entry under `plugins[0].skills` in `.claude-plugin/marketplace.json`:
41+
```json
42+
"./skills/<your-skill-name>"
43+
```
44+
4. Open a PR with the "Skill submission" template (auto-applied when you create
45+
the PR).
46+
47+
### 3. Review
48+
49+
A maintainer will review your submission against this checklist:
50+
51+
- `SKILL.md` has a valid YAML frontmatter with `name:` and `description:`
52+
(description ≤ 1024 characters).
53+
- The `description` is specific (not "a skill about X").
54+
- All `[[references/...]]` links resolve to files you actually included.
55+
- Skill name doesn't clash with an existing entry.
56+
- No obvious copyright-infringing content (large verbatim copies of recent
57+
copyrighted books or papers without authorisation).
58+
59+
You're responsible for confirming you have rights to redistribute the source
60+
material your skill is derived from. The PR template includes a checkbox for
61+
this.
62+
63+
### What makes a good community skill
64+
65+
- **Methodology-focused**, not bulk-copied content. "How to reason about X"
66+
beats "the full text of X".
67+
- **Specific scope** so the `description:` field can be precise enough that
68+
loading agents pick it up at the right time.
69+
- **Tested in at least one agent CLI** before submission.
70+
71+
Thanks for sharing what you've compiled!

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ A single source might touch 10-15 wiki pages. Knowledge accumulates: each docume
150150
|---|---|
151151
| `openkb init` | Initialize a new knowledge base (interactive) |
152152
| <code>openkb&nbsp;add&nbsp;&lt;file_or_dir_or_URL&gt;</code> | Add documents and compile to wiki. URL ingest auto-detects PDF (saved as `.pdf` → PageIndex / markitdown) vs HTML (trafilatura main-content extract → `.md`) |
153+
| <code>openkb&nbsp;skill&nbsp;new&nbsp;&lt;name&gt;&nbsp;"&lt;intent&gt;"</code> | Compile a skill from this KB's wiki into `output/skills/<name>/` and update the marketplace manifest |
153154
| <code>openkb&nbsp;remove&nbsp;&lt;doc&gt;</code> | Remove a document and clean up its wiki pages, images, registry, and PageIndex state (use `--dry-run` to preview, `--keep-raw` / `--keep-empty-concepts` to retain artifacts) |
154155
| <code>openkb&nbsp;query&nbsp;"question"</code> | Ask a question over the knowledge base (use `--save` to save the answer to `wiki/explorations/`) |
155156
| `openkb chat` | Start an interactive multi-turn chat (use `--resume`, `--list`, `--delete` to manage sessions) |
@@ -161,6 +162,46 @@ A single source might touch 10-15 wiki pages. Knowledge accumulates: each docume
161162

162163
<!-- | `openkb lint --fix` | Auto-fix what it can | -->
163164

165+
### Skills — compile your wiki into a redistributable skill
166+
167+
Once you have a populated wiki, you can compile a subset of it into an
168+
**Anthropic Skill** — a portable folder that Claude Code, Codex CLI,
169+
Gemini CLI, and Cursor all know how to load.
170+
171+
```bash
172+
openkb skill new karpathy-thinking \
173+
"Reason about transformers and attention in Karpathy's style"
174+
```
175+
176+
This produces `output/skills/karpathy-thinking/` with `SKILL.md`,
177+
optional `references/`, and an auto-updated
178+
`.claude-plugin/marketplace.json` for distribution.
179+
180+
**Install locally:**
181+
182+
```bash
183+
cp -r output/skills/karpathy-thinking ~/.claude/skills/
184+
```
185+
186+
**Share with others:**
187+
188+
Push your KB directory to GitHub, then anyone can install all your skills with one command:
189+
190+
```bash
191+
npx skills@latest add <your-org>/<your-repo>
192+
```
193+
194+
You can also iterate inside chat:
195+
196+
```
197+
/skill new karpathy-thinking "Reason about transformers like Karpathy"
198+
[generation streams]
199+
> description is too generic, make it about transformer implementations specifically
200+
[agent edits SKILL.md frontmatter in place]
201+
```
202+
203+
See [CONTRIBUTING.md](CONTRIBUTING.md) for how to submit your compiled skill back to the OpenKB community registry.
204+
164205
### Interactive Chat
165206

166207
`openkb chat` opens an interactive chat session over your wiki knowledge base. Unlike the one-shot `openkb query`, each turn carries the conversation history, so you can dig into a topic without re-typing context.

0 commit comments

Comments
 (0)