|
| 1 | +# lich-skills |
| 2 | + |
| 3 | +> 面向 **Claude Code**、**Gemini CLI**、**OpenAI Codex** 的个人技能集 —— 作者 [@LichAmnesia](https://github.com/LichAmnesia)。 |
| 4 | +
|
| 5 | +电报风格,观点明确,零废话。一个旗舰 SDLC 技能 + 两个高杠杆工具技能。 |
| 6 | + |
| 7 | +English: [README.md](README.md) |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## spec-driven-dev 工作流 |
| 12 | + |
| 13 | +``` |
| 14 | + 定义 规划 构建 验证 评审 发布 |
| 15 | + ┌────────┐ ┌────────┐ ┌─────────┐ ┌────────┐ ┌────────┐ ┌────────┐ |
| 16 | + │ Spec │──▶│ Plan │──▶│ Build │──▶│ Test │──▶│ Review │──▶│ Ship │ |
| 17 | + │ 规格 │ │ 任务 │ │ 实现 │ │ 跑通 │ │ 质量 │ │ 上线 │ |
| 18 | + └────────┘ └────────┘ └─────────┘ └────────┘ └────────┘ └────────┘ |
| 19 | + ▲ │ |
| 20 | + └─────────────────── 反馈 / 回归 ─────────────────────────────────┘ |
| 21 | +``` |
| 22 | + |
| 23 | +一个技能、六个阶段、每步都有明确的退出条件。详见 [`skills/spec-driven-dev/`](skills/spec-driven-dev/)。 |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +## 技能列表 |
| 28 | + |
| 29 | +| 技能 | 作用 | |
| 30 | +|---|---| |
| 31 | +| [`spec-driven-dev`](skills/spec-driven-dev/) | 完整软件开发生命周期:Spec → Plan → Build → Test → Review → Ship。反合理化表、验证关卡、原子提交。 | |
| 32 | +| [`tavily-search`](skills/tavily-search/) | 通过 [Tavily](https://tavily.com) API 做网页搜索 + 正文抽取。用于事实核查、文档查询、带引用的研究。 | |
| 33 | +| [`nano-banana`](skills/nano-banana/) | 文生图 + 图片编辑,基于 Google Nano Banana 2 (`gemini-3.1-flash-image-preview`),支持 `512 / 1K / 2K / 4K`。 | |
| 34 | + |
| 35 | +所有技能都从环境变量读取凭据(`TAVILY_API_KEY`、`GEMINI_API_KEY` 等)—— **绝不硬编码**。 |
| 36 | + |
| 37 | +--- |
| 38 | + |
| 39 | +## 快速安装 |
| 40 | + |
| 41 | +<details open> |
| 42 | +<summary><b>Claude Code — 插件市场(一行搞定)</b></summary> |
| 43 | + |
| 44 | +在 Claude Code 会话里直接输入: |
| 45 | + |
| 46 | +``` |
| 47 | +/plugin marketplace add LichAmnesia/lich-skills |
| 48 | +/plugin install lich-skills@lich-skills |
| 49 | +``` |
| 50 | + |
| 51 | +三个技能立即可用。验证: |
| 52 | + |
| 53 | +``` |
| 54 | +/skills |
| 55 | +``` |
| 56 | + |
| 57 | +</details> |
| 58 | + |
| 59 | +<details> |
| 60 | +<summary><b>Claude Code — git clone 方式</b></summary> |
| 61 | + |
| 62 | +```bash |
| 63 | +# 1. 安装 Claude Code(如果还没装) |
| 64 | +curl -fsSL https://claude.ai/install.sh | bash |
| 65 | +# 或: brew install --cask claude-code |
| 66 | + |
| 67 | +# 2. 克隆到全局 skills 目录 |
| 68 | +git clone https://github.com/LichAmnesia/lich-skills.git ~/.claude/skills/lich-skills |
| 69 | + |
| 70 | +# 3. 启动 Claude Code |
| 71 | +claude |
| 72 | +> /skills |
| 73 | +``` |
| 74 | + |
| 75 | +完整指南:[`docs/claude-code-setup.md`](docs/claude-code-setup.md) |
| 76 | + |
| 77 | +</details> |
| 78 | + |
| 79 | +<details> |
| 80 | +<summary><b>Gemini CLI — extensions install(一行搞定)</b></summary> |
| 81 | + |
| 82 | +```bash |
| 83 | +gemini extensions install https://github.com/LichAmnesia/lich-skills |
| 84 | +``` |
| 85 | + |
| 86 | +本仓库根目录放了 [`gemini-extension.json`](gemini-extension.json) 清单,Gemini CLI 会把整个仓库当作一个 extension 安装,并自动发现 `skills/*/SKILL.md` 里所有技能。验证: |
| 87 | + |
| 88 | +```bash |
| 89 | +gemini extensions list |
| 90 | +``` |
| 91 | + |
| 92 | +手动克隆的兜底方式: |
| 93 | + |
| 94 | +```bash |
| 95 | +npm install -g @google/gemini-cli |
| 96 | +git clone https://github.com/LichAmnesia/lich-skills.git ~/.gemini/extensions/lich-skills |
| 97 | +``` |
| 98 | + |
| 99 | +完整指南:[`docs/gemini-cli-setup.md`](docs/gemini-cli-setup.md) |
| 100 | + |
| 101 | +</details> |
| 102 | + |
| 103 | +<details> |
| 104 | +<summary><b>OpenAI Codex CLI</b></summary> |
| 105 | + |
| 106 | +```bash |
| 107 | +# 1. 安装 Codex CLI |
| 108 | +npm install -g @openai/codex |
| 109 | +# 或: brew install --cask codex |
| 110 | + |
| 111 | +# 2. 安装技能集 |
| 112 | +mkdir -p ~/.codex/skills |
| 113 | +git clone https://github.com/LichAmnesia/lich-skills.git ~/.codex/skills/lich-skills |
| 114 | +``` |
| 115 | + |
| 116 | +完整指南:[`docs/codex-setup.md`](docs/codex-setup.md) |
| 117 | + |
| 118 | +</details> |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +## 一行命令为什么能跑? |
| 123 | + |
| 124 | +- **`/plugin marketplace add LichAmnesia/lich-skills`** —— Claude Code 会读取仓库根目录的 [`.claude-plugin/marketplace.json`](.claude-plugin/marketplace.json)。这个文件把仓库声明为一个 plugin marketplace,并通过 `source: github` 字段把插件指回自己的 GitHub repo。没有这个字段,一行命令跑不通。 |
| 125 | +- **`/plugin install lich-skills@lich-skills`** —— 格式是 `<插件名>@<市场名>`。我这里两边同名,所以出现两次 `lich-skills`。addyosmani 的仓库用的是 `agent-skills@addy-agent-skills`,市场名不同,看起来更清楚。 |
| 126 | +- **`gemini extensions install <github-url>`** —— Gemini CLI 的原生 `extensions` 子命令。它要求被安装的仓库根目录必须有 `gemini-extension.json` 清单文件,才会把这个仓库当成 extension 装进来。装进来之后,`skills/*/SKILL.md` 会被自动发现。没有清单,一行命令直接拒绝安装。 |
| 127 | +- **[geminicli.com/extensions/](https://geminicli.com/extensions/) 目录** —— 这个官方扩展画廊会从公开 GitHub 仓库里收录带有 `gemini-extension.json` 清单的 extension。放清单是必要条件(但不是充分条件)——有了清单才有机会被收录。 |
| 128 | +- **`git clone` 到 `~/.claude/skills/`** —— 最朴素的路径。Claude Code 每次启动会扫描 `~/.claude/skills/**` 下所有 `SKILL.md`,不依赖 marketplace 机制。 |
| 129 | + |
| 130 | +--- |
| 131 | + |
| 132 | +## 目录结构 |
| 133 | + |
| 134 | +``` |
| 135 | +lich-skills/ |
| 136 | +├── README.md / README-zh.md # 中英文说明 |
| 137 | +├── LICENSE # MIT |
| 138 | +├── CLAUDE.md # 仓库内 Claude 指令 |
| 139 | +├── CONTRIBUTING.md # 贡献规范 |
| 140 | +├── .claude-plugin/ # Claude Code 插件清单 |
| 141 | +│ ├── plugin.json |
| 142 | +│ └── marketplace.json |
| 143 | +├── .gitleaks.toml # 秘钥扫描配置 |
| 144 | +├── .github/workflows/ci.yml # CI: gitleaks + 技能格式 lint + py 编译 |
| 145 | +├── scripts/ |
| 146 | +│ ├── pre-commit # commit 时的 gitleaks 钩子 |
| 147 | +│ └── install-hooks.sh |
| 148 | +├── docs/ # 三个工具的安装指南 |
| 149 | +│ ├── claude-code-setup.md |
| 150 | +│ ├── gemini-cli-setup.md |
| 151 | +│ └── codex-setup.md |
| 152 | +└── skills/ |
| 153 | + ├── spec-driven-dev/ # 六阶段 SDLC 工作流 |
| 154 | + │ ├── SKILL.md |
| 155 | + │ └── templates/ |
| 156 | + │ ├── spec.md |
| 157 | + │ ├── plan.md |
| 158 | + │ ├── review.md |
| 159 | + │ └── ship.md |
| 160 | + ├── tavily-search/ # Tavily 网页搜索 |
| 161 | + │ ├── SKILL.md |
| 162 | + │ └── scripts/search.py |
| 163 | + └── nano-banana/ # Nano Banana 2 文生图 |
| 164 | + ├── SKILL.md |
| 165 | + └── scripts/generate_image.py |
| 166 | +``` |
| 167 | + |
| 168 | +--- |
| 169 | + |
| 170 | +## 文档 |
| 171 | + |
| 172 | +| 工具 | 安装 + 技能配置 | |
| 173 | +|---|---| |
| 174 | +| Claude Code | [`docs/claude-code-setup.md`](docs/claude-code-setup.md) | |
| 175 | +| Gemini CLI | [`docs/gemini-cli-setup.md`](docs/gemini-cli-setup.md) | |
| 176 | +| OpenAI Codex | [`docs/codex-setup.md`](docs/codex-setup.md) | |
| 177 | + |
| 178 | +--- |
| 179 | + |
| 180 | +## 安全 |
| 181 | + |
| 182 | +仓库里没有任何秘钥。每次提交都会通过 [`gitleaks`](https://github.com/gitleaks/gitleaks) 做 pre-commit 扫描,CI 里每个 PR 还会再跑一次。所有技能只读环境变量,示例里用 `YOUR_API_KEY_HERE` 占位。 |
| 183 | + |
| 184 | +如果发现任何泄露,请通过 [私密安全通告](https://github.com/LichAmnesia/lich-skills/security/advisories/new) 反馈,不要开 public issue。 |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +## 贡献 |
| 189 | + |
| 190 | +欢迎 PR。新技能要 **具体**、**可验证**、**最小化**。详见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 |
| 191 | + |
| 192 | +--- |
| 193 | + |
| 194 | +## 许可 |
| 195 | + |
| 196 | +[MIT](LICENSE) © 2026 黄声 ([@LichAmnesia](https://github.com/LichAmnesia)) |
0 commit comments