Skip to content
Back to skills

Commands

ASecurity

Modify an existing skill safely: add or update a section, fix a pattern, bump library versions, or resolve a flagged quality gap.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentspythonkotlinbashtestinggitapi

Works with

  • terminal
  • api

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add ronjunevaldoz/kmp-agent-skills --skill commands --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commands?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commands
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ronjunevaldoz-commands/badge)](https://www.skillsdirectory.com/skills/ronjunevaldoz-commands)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: "Modify an existing skill safely: add or update a section, fix a pattern, bump library versions, or resolve a flagged quality gap."
argument-hint: "[arguments]"
---

# /kmp-modify-skill $ARGUMENTS

**KMP Agent Skills** — modify an existing skill safely: add or update a section, fix a
pattern, bump library versions, or resolve a flagged quality gap.

Skill name: **$ARGUMENTS** (e.g. `repository-pattern`, `design-system`)

---

## Rules — read before touching any SKILL.md

These protect the collection's coherence. Violating them breaks the audit and pipeline.

### 1. Never remove required sections

Every SKILL.md must keep all of these — removing any one will fail `audit_skills_repo.py`:

| Section / field | Where it lives |
|---|---|
| YAML frontmatter (`name`, `description`, `metadata`, `last-updated`) | Top of file |
| `## When to Use This Skill` | Body |
| `**Trigger keywords:**` | Inside "When to Use" |
| `**Freshness rule:**` | Inside "When to Use" or early body |
| `## Recommendation First` | Body |
| `## Common Anti-Patterns` | Body |
| `## Related Skills` | Body |
| `## Output Style` | Body |

### 2. Always bump `last-updated`

Any substantive edit must update `last-updated: '<YYYY-MM-DD>'` in the frontmatter.
Typo fixes may skip this. When in doubt, update it.

### 3. Keep code snippets compilable

Every Kotlin snippet must be syntactically valid. Do not write pseudocode or partial
imports. If you can't write a complete snippet, write a prose description instead.

### 4. Prefer adding to anti-patterns over deleting patterns

If a pattern is superseded, mark it as such with a comment rather than deleting it.
Deletion loses the institutional memory of why the pattern was wrong.

### 5. Testing section format

```markdown
## Testing

```kotlin
class FakeXxx : XxxInterface {
    // minimal implementation for unit tests
}

@Test fun `happy path description`() = runTest {
    // ...
}
```
```

A Testing section must include:
- At least one `Fake` implementation for the skill's main abstraction
- At least two `@Test` functions (happy path + error/edge case)
- Integration test pattern if the skill wraps a real driver or platform API

### 6. Do not change skill names or directory names

The `name:` field in frontmatter and the directory name under `skills/` must match
the entry in `skills.json`. Renaming without updating `skills.json` breaks routing.

### 8. Update tests when modifying a bundled script

If the modification touches any `.py` file under `skills/kmp-$ARGUMENTS/scripts/`
or any file under the top-level `scripts/`, update the matching `tests/test_<script-name>.py`
(tests are one file per script under `tests/`) in the same commit. The pre-commit hook
(`hooks/pre-commit-audit.sh`) will block the commit otherwise.

The test update must:
- Add a test for every new function introduced
- Update or remove tests for any function signature that changed
- Verify all new `main()` exit code paths are covered

### 7. Do not merge two skills

Each SKILL.md covers one concern. If a skill feels too broad, add a `## Related Skills`
pointer to the closely related skill — do not fold one into the other.

---

## Step 1 — Identify the skill

```bash
ls skills/ | grep $ARGUMENTS
```

If ambiguous, show a list and ask the user to confirm.

---

## Step 2 — Check current quality gaps

Any numbered step you add or edit follows `docs/reference/writing-style.md`:
one instruction, under 20 prose words, active voice.
The `long_procedural_step` finding below is that rule.

```bash
python3 scripts/scan_skill_issues.py | python3 -c "
import json, sys
d = json.load(sys.stdin)
issues = [i for i in d['issues'] if '$ARGUMENTS' in i['skill_dir']]
for i in issues:
    print(f\"{i['severity']}: {i['check']} — {i['detail']}\")
"
```

Show any open issues for this skill before making changes.

---

## Step 3 — Make the edit

Apply the change following the rules above. Common modifications:

| Change type | What to do |
|---|---|
| Add a Testing section | Add `## Testing` before `## Common Anti-Patterns` |
| Update a library version | Update the version in TOML snippets AND check Freshness rule |
| Add an anti-pattern | Add a bullet under `## Common Anti-Patterns`; include a before/after code pair |
| Fix a code snippet | Replace only the affected snippet; do not touch surrounding prose |
| Add a new section | Place it before `## Common Anti-Patterns` unless it is a terminal section |

---

## Step 4 — Verify the edit

```bash
python3 skills/kmp-audit/scripts/audit_skills_repo.py .
```

Zero findings expected. If findings appear, fix them before proceeding.

---

## Step 5 — Update `last-updated` and commit

1. Set `last-updated: '<today>'` in the skill's frontmatter
2. Commit:
   ```bash
   git add skills/kmp-$ARGUMENTS/SKILL.md
   git commit -m "docs(<skill>): <what changed>"
   ```
3. Cut a patch release:
   ```bash
   python3 scripts/release.py patch
   ```

---

## Notes

- If the edit closes a gap from `/summarize-issues`, re-run the scanner after to confirm
  the issue count dropped: `python3 scripts/scan_skill_issues.py | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['total_issues'], 'issues remaining')"`
- If you're updating library versions, also update the skill's `Freshness rule:` text to
  reflect the new minimum version and the date rechecked.
- Do NOT modify `skills.json` directly — it is managed by `scripts/release.py`.

Files in this skill

  • kmp-audit-adaptive.md6.4 KB
  • kmp-audit-design-visual.md6.5 KB
  • kmp-audit-screenshots.md8.7 KB
  • kmp-check-updates.md2.2 KB
  • kmp-clean-comments.md8.2 KB
  • kmp-doctor.md799 B
  • kmp-execute-ticket.md6.3 KB
  • kmp-fix-design.md9.2 KB
  • kmp-generate-palette.md6.1 KB
  • kmp-harvest-lessons.md6.2 KB
  • kmp-heal-docs.md662 B
  • kmp-implement-feature.md2.8 KB
  • kmp-maintain-docs.md2.5 KB
  • kmp-migrate-to-shadcn.md8.7 KB
  • kmp-modify-skill.md5.2 KB
  • kmp-new-project.md3.7 KB
  • kmp-new-skill.md5.7 KB
  • kmp-record-design-baselines.md3.9 KB
  • kmp-refine-skill.md4.7 KB
  • kmp-release-notes.md2.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.