Skip to content

Commit c21071c

Browse files
committed
docs: CONTRIBUTING — add custom skills, adversarial evals, CI section
1 parent 8ebe3d4 commit c21071c

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,34 @@ Followed by:
2323
4. Add the skill name to the `SKILLS` array in `setup`
2424
5. Test it: run `./setup` then try the trigger in Kiro CLI
2525

26+
## Custom Skills (Personal Use)
27+
28+
Want to add your own skills without them being overwritten by `git pull`?
29+
30+
Put them in the `custom/` directory — it's gitignored:
31+
32+
```
33+
kstack/
34+
├── custom/ ← your personal skills (gitignored)
35+
│ └── my-custom-skill/
36+
│ └── SKILL.md
37+
├── plan-product/ ← kstack skills (tracked by git)
38+
...
39+
```
40+
41+
Then symlink manually:
42+
```bash
43+
ln -sf ~/.kiro/skills/kstack/custom/my-custom-skill ~/.kiro/skills/my-custom-skill
44+
```
45+
2646
## Skill Design Rules
2747

2848
- **One skill = one cognitive mode.** Don't blend planning with review.
2949
- **Be opinionated.** Vague skills produce vague results.
3050
- **Include output format.** The agent needs to know what shape the response should take.
3151
- **No personal config.** Skills must work for any Kiro CLI user.
3252
- **No external dependencies.** Pure Markdown. No binaries, no npm, no API keys.
53+
- **Defensive pre-flight.** Skills that depend on git should detect non-git environments gracefully.
3354

3455
## Eval Test Cases
3556

@@ -43,6 +64,12 @@ Every skill must have evals. Format:
4364
- "Another expected behavior"
4465
```
4566
67+
Include adversarial test cases:
68+
- Vague or empty input
69+
- Wrong environment (e.g. non-git repo for ship)
70+
- Trivially correct input (e.g. clean code for code-review)
71+
- User trying to override safety checks
72+
4673
Expectations should be:
4774
- **Observable** — can be verified from the output
4875
- **Specific** — not "does a good job" but "produced an ASCII diagram"
@@ -53,3 +80,11 @@ Expectations should be:
5380
Manual: run each eval prompt through `kiro-cli chat` and check expectations.
5481

5582
Automated: use any LLM-as-judge framework that reads `test_cases.yaml`.
83+
84+
## CI
85+
86+
Every push runs:
87+
1. SKILL.md front matter validation (name + description required, name must match directory)
88+
2. Eval YAML structure validation (id + prompt + expectations required)
89+
3. Setup script syntax check
90+
4. Setup install/verify/remove integration test

0 commit comments

Comments
 (0)