# Skill Write Policy

> Hard rules for hermes writing or modifying skills via skill_manage.

- Skill: `jajabong/skill-write-policy` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jajabong/skill-write-policy`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jajabong/skill-write-policy/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jajabong (https://skillmd.com/u/jajabong)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/jajabong/skill-write-policy

---


# Skill Write Policy（写入硬规则）

每次 `skill_manage(action=create|edit|patch)` 前必读。

## 硬规则（违反任意一条即拒绝）

### Frontmatter
- `name`：kebab-case，`[a-z0-9-]`，≤64 字符
- `description`：≤1024 字符；**前 57 字符精准描述触发场景**（系统 prompt 索引只显示前 57 字 + `...`）
- 必须有 `version` / `author` / `license`（peer 匹配）
- `metadata.hermes.category` 必须填

### 内容
- SKILL.md ≤100k 字符
- 必须引用至少一个 hermes 原生工具：`terminal` / `skill_view` / `skill_manage` /
  `read_file` / `patch` / `delegate_task` / `execute_code` 等
- 不允许 paste 完整文件内容进 SKILL.md；用 `path:line` 引用

### Category 白/黑名单（Henry 偏好）
- 允许：`software-development` / `research` / `github` / `mlops` /
  `productivity` / `email` / `smart-home` / `apple`
- 黑名单：`media` / `creative` / `social-media`（除非用户明确指定）
- 默认 category：`software-development`

### 重名检测
- 写入前必跑 `skills_list()`，比对 name
- 命中 bundled → 拒绝，提示「改写 bundled skill」
- 命中用户自定义 → 加后缀 `-v2` / `-<topic>`

### Self-check
写完后调：
```bash
~/.hermes/skills/learning-loop/scripts/synthesize_skill.py \
    --name <name> --description "<desc>" --category <cat> \
    --body "<body>" --research-dir /tmp/x --output /dev/null
```
exit 0 → 通过；exit 1 → 拒绝，按错误修。

## 流程
1. 准备 name / description / category / body
2. 跑 self-check（上面命令）
3. skill_manage(action="create", name=..., content=<full_skill_md>, category=...)
4. skills_list() | grep <name> 验证注册

