Skip to content

Commit 094e5b6

Browse files
committed
feat: one-line installers for Claude Code marketplace + Gemini extension
- Add gemini-extension.json so `gemini extensions install <url>` works end-to-end and the repo is eligible for the geminicli.com/extensions gallery listing - Fix marketplace.json to declare source.github so `/plugin marketplace add LichAmnesia/lich-skills` + `/plugin install lich-skills@lich-skills` resolve correctly - Add README-zh.md Chinese translation matching the English README - Explain the why: plugin marketplace mechanics, extension manifest discovery, geminicli.com/extensions sourcing - Rewrite docs/gemini-cli-setup.md around the native extensions command - Clean lingering private workspace paths out of setup docs
1 parent 3c3e135 commit 094e5b6

8 files changed

Lines changed: 332 additions & 64 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,22 @@
11
{
22
"name": "lich-skills",
3-
"displayName": "Lich Skills Collection",
4-
"description": "LichAmnesia's open-source Claude Code skills — flagship spec-driven-dev workflow plus Tavily search and Nano Banana image generation",
5-
"version": "0.1.0",
63
"owner": {
74
"name": "Shen Huang (LichAmnesia)",
85
"url": "https://github.com/LichAmnesia"
96
},
10-
"repository": "https://github.com/LichAmnesia/lich-skills",
11-
"license": "MIT",
12-
"keywords": [
13-
"claude-code",
14-
"skills",
15-
"spec-driven-development",
16-
"sdd",
17-
"tavily",
18-
"nano-banana",
19-
"image-generation",
20-
"web-search"
21-
],
22-
"categories": [
23-
"Software Engineering",
24-
"Productivity",
25-
"Content Creation"
26-
],
7+
"metadata": {
8+
"description": "LichAmnesia's open-source Claude Code skills — flagship spec-driven-dev workflow plus Tavily search and Nano Banana image generation.",
9+
"version": "0.1.0",
10+
"license": "MIT"
11+
},
2712
"plugins": [
2813
{
2914
"name": "lich-skills",
30-
"description": "LichAmnesia's Claude Code skills collection",
31-
"version": "0.1.0",
32-
"source": "./"
15+
"source": {
16+
"source": "github",
17+
"repo": "LichAmnesia/lich-skills"
18+
},
19+
"description": "Spec → Plan → Build → Test → Review → Ship workflow + Tavily web search + Nano Banana image generation."
3320
}
3421
]
3522
}

.claude-plugin/plugin.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
{
22
"name": "lich-skills",
3+
"description": "LichAmnesia's open-source Claude Code skills — flagship spec-driven-dev workflow plus Tavily search and Nano Banana image generation.",
34
"version": "0.1.0",
4-
"description": "LichAmnesia's open-source Claude Code skills collection — spec-driven development, web search, image generation",
55
"author": {
66
"name": "Shen Huang (LichAmnesia)",
77
"url": "https://github.com/LichAmnesia"
88
},
9+
"homepage": "https://github.com/LichAmnesia/lich-skills",
910
"repository": "https://github.com/LichAmnesia/lich-skills",
1011
"license": "MIT",
1112
"keywords": [
1213
"claude-code",
1314
"skills",
1415
"spec-driven-development",
16+
"sdd",
1517
"tavily",
1618
"nano-banana",
1719
"gemini",
18-
"sdd"
20+
"codex"
1921
],
2022
"skills": "./skills"
2123
}

README-zh.md

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
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))

README.md

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
> Personal skill collection for **Claude Code**, **Gemini CLI**, and **OpenAI Codex** — by [@LichAmnesia](https://github.com/LichAmnesia).
44
5-
一套个人向的 AI 编程代理技能集,覆盖规格驱动开发、网页搜索、图片生成三条主线。Telegraph-style, opinionated, no filler.
5+
Telegraph-style, opinionated, no filler. One flagship SDLC skill plus two high-leverage utility skills.
6+
7+
中文版:[README-zh.md](README-zh.md)
68

79
---
810

@@ -34,22 +36,38 @@ All skills read credentials from environment variables (`TAVILY_API_KEY`, `GEMIN
3436

3537
---
3638

37-
## Quick start
39+
## Quick install
3840

3941
<details open>
40-
<summary><b>Claude Code</b> (recommended)</summary>
42+
<summary><b>Claude Code — plugin marketplace (one command)</b></summary>
43+
44+
Inside a running Claude Code session:
4145

42-
Install Claude Code, then clone this repo into your global skills directory:
46+
```
47+
/plugin marketplace add LichAmnesia/lich-skills
48+
/plugin install lich-skills@lich-skills
49+
```
50+
51+
Done. All three skills become available immediately. Verify:
52+
53+
```
54+
/skills
55+
```
56+
57+
</details>
58+
59+
<details>
60+
<summary><b>Claude Code — git clone</b></summary>
4361

4462
```bash
45-
# 1. Install Claude Code (native installer)
63+
# 1. Install Claude Code (if not already)
4664
curl -fsSL https://claude.ai/install.sh | bash
4765
# or: brew install --cask claude-code
4866

49-
# 2. Install the skill collection
67+
# 2. Clone into the global skills directory
5068
git clone https://github.com/LichAmnesia/lich-skills.git ~/.claude/skills/lich-skills
5169

52-
# 3. Verify
70+
# 3. Start Claude Code
5371
claude
5472
> /skills
5573
```
@@ -59,14 +77,22 @@ Full guide: [`docs/claude-code-setup.md`](docs/claude-code-setup.md).
5977
</details>
6078

6179
<details>
62-
<summary><b>Gemini CLI</b></summary>
80+
<summary><b>Gemini CLI — extensions install (one command)</b></summary>
6381

6482
```bash
65-
# 1. Install Gemini CLI
66-
npm install -g @google/gemini-cli
83+
gemini extensions install https://github.com/LichAmnesia/lich-skills
84+
```
85+
86+
This repo ships a [`gemini-extension.json`](gemini-extension.json) at the root, so Gemini CLI installs it as a first-class extension and auto-discovers every `skills/*/SKILL.md`. Verify:
87+
88+
```bash
89+
gemini extensions list
90+
```
91+
92+
Manual clone fallback:
6793

68-
# 2. Install the skill collection as an extension
69-
mkdir -p ~/.gemini/extensions
94+
```bash
95+
npm install -g @google/gemini-cli
7096
git clone https://github.com/LichAmnesia/lich-skills.git ~/.gemini/extensions/lich-skills
7197
```
7298

@@ -93,6 +119,16 @@ Full guide: [`docs/codex-setup.md`](docs/codex-setup.md).
93119

94120
---
95121

122+
## Why the one-liners work
123+
124+
- **`/plugin marketplace add LichAmnesia/lich-skills`** — Claude Code reads [`.claude-plugin/marketplace.json`](.claude-plugin/marketplace.json) at the repo root. That file declares the repo as a plugin marketplace and points the plugin back at its GitHub source.
125+
- **`/plugin install lich-skills@lich-skills`** — format is `<plugin-name>@<marketplace-name>`. Both resolve from the same marketplace manifest, which is why the name appears twice.
126+
- **`gemini extensions install <github-url>`** — Gemini CLI's native `extensions` subcommand clones any public GitHub repo that has a `gemini-extension.json` at its root, then auto-discovers bundled skills from `skills/*/SKILL.md`. The manifest is what makes this one-liner work — without it, Gemini CLI refuses to install the repo as an extension.
127+
- **[geminicli.com/extensions/](https://geminicli.com/extensions/) listing** — the public extension gallery sources third-party extensions from GitHub repos that have the same `gemini-extension.json` manifest. Having the manifest is necessary (though not sufficient) to appear there.
128+
- **`git clone` into `~/.claude/skills/`** — the lowest-common-denominator path. Claude Code reads every `SKILL.md` under `~/.claude/skills/**` on session start. No marketplace required.
129+
130+
---
131+
96132
## Documentation
97133

98134
| Tool | Install + skill setup |

docs/claude-code-setup.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ Add `.claude/skills/lich-skills` to that project's `.gitignore` unless you want
7777
### Alternative: symlink from an existing clone
7878

7979
```bash
80-
git clone https://github.com/LichAmnesia/lich-skills.git ~/ws/oss/lich-skills
81-
ln -s ~/ws/oss/lich-skills ~/.claude/skills/lich-skills
80+
git clone https://github.com/LichAmnesia/lich-skills.git ~/projects/lich-skills
81+
ln -s ~/projects/lich-skills ~/.claude/skills/lich-skills
8282
```
8383

8484
---

docs/codex-setup.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@ git clone https://github.com/LichAmnesia/lich-skills.git ~/.codex/skills/lich-sk
4444
Codex CLI honors `AGENTS.md` files for persistent instructions. If you prefer keeping the repo outside `~/.codex`:
4545

4646
```bash
47-
git clone https://github.com/LichAmnesia/lich-skills.git ~/ws/oss/lich-skills
47+
git clone https://github.com/LichAmnesia/lich-skills.git ~/projects/lich-skills
4848
```
4949

5050
Then add the following block to `~/.codex/AGENTS.md` (create it if missing):
5151

5252
```md
5353
## Skills
5454

55-
Skill definitions live at `~/ws/oss/lich-skills/skills/`:
55+
Skill definitions live at `~/projects/lich-skills/skills/`:
5656

5757
- spec-driven-dev — Spec → Plan → Build → Test → Review → Ship workflow
5858
- tavily-search — Web search + extraction via Tavily

0 commit comments

Comments
 (0)