lich-skills
LichAmnesia's open-source skills for Gemini CLI — spec-driven development workflow, Tavily web search, Nano Banana image generation.
Open source Open in the app JSON README (API)
About
LichAmnesia's open-source skills for Gemini CLI — spec-driven development workflow, Tavily web search, Nano Banana image generation.
Details
- Kind
- Plugins
- Topic
- AI, RAG & memory
- Publisher
- lichamnesia
- Origin
- gemini
- Category
- ferramentas
- Version
- 0.1.0
- Stars
- 233
- Forks
- 26
- Open pull requests
- 1
- Last push
- 2026-06-09T22:09:24Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-30 14:13:39
- Updated
- 2026-08-30 14:13:39
- Origin id
lichamnesia/lich-skills
README
# lich-skills
> Personal skill collection for **Claude Code**, **Gemini CLI**, and **OpenAI Codex** — by [@LichAmnesia](https://github.com/LichAmnesia).
Telegraph-style, opinionated, no filler. Engineering judgment skills plus high-leverage utility tools.
中文版:[README-zh.md](README-zh.md)
---
## The go-no-go gate (Stage 0)
```
┌─────────────────────────────────────┐
│ NO-GO is the default. │
│ GO requires evidence. │
└──────────────┬──────────────────────┘
│
MEMORY → HYPOTHESIS → FIVE CHECKS → 24h INTERRUPT? → COMMITMENT
┌────────┐ ┌─────────────┐ ┌────────────────┐ ┌──────────────┐ ┌──────────────┐
│ Search │ │ One-sentence│ │ Differentiation│ │ Enthusiasm │ │ Public doc + │
│ prior │───▶│ guess + │─▶│ Audience-fit │─▶│ high? Wait │──▶│ kill criteria│
│ tries │ │ confidence% │ │ Acquisition │ │ 24h, restart │ │ D14/30/60/90 │
└────────┘ └─────────────┘ │ Capacity │ └──────────────┘ └──────┬───────┘
│ 7-Factor Wedge │ │
└────────────────┘ │
▼
GO → spec-driven-dev
NO-GO → journal entry
```
Stage 0 before any `/spec`. Five framework gates, mandatory memory check against
prior attempts, 24h pattern-interrupt for high-enthusiasm signals, public commitment
artifact with pre-mortemed kill criteria. See [`skills/go-no-go/`](skills/go-no-go/).
---
## The spec-driven-dev loop
```
DEFINE PLAN BUILD TEST REVIEW SHIP
┌────────┐ ┌────────┐ ┌─────────┐ ┌────────┐ ┌────────┐ ┌────────┐
│ Spec │──▶│ Plan │──▶│ Build │──▶│ Test │──▶│ Review │──▶│ Ship │
│ PRD │ │ Tasks │ │ Impl │ │ Verify │ │ Gate │ │ Tag │
└────────┘ └────────┘ └─────────┘ └────────┘ └────────┘ └────────┘
▲ │
└─────────────────── feedback / regression ──────────────────────┘
```
One skill, six phases, explicit exit criteria per step. Pairs with `go-no-go` as
Stage 1 of the pipeline. See [`skills/spec-driven-dev/`](skills/spec-driven-dev/).
---
## The debug-hypothesis loop
```
┌─────────────────────────────┐
│ all hypotheses rejected? │
│ back to OBSERVE │
└──────────┬──────────────────┘
│
OBSERVE ──▶ HYPOTHESIZE ──▶ EXPERIMENT ──▶ CONCLUDE
│ │ │ │
▼ ▼ ▼ ▼
Reproduce List 3-5 One test, Root cause
the bug, causes + max 5 lines, confirmed
collect evidence falsify → fix +
symptoms for each don't confirm regression test
│ │ │ │
│ │ ┌──────┘ │
│ │ │ rejected? │
│ │ ▼ │
│ │ next hypothesis │
│ │ │
└──────────────┴──── everything in DEBUG.md ──────┘
```
Scientific-method debugging. Prevents the #1 AI failure: bulldozing through a wrong theory. See [`skills/debug-hypothesis/`](skills/debug-hypothesis/).
---
## The aggregate-N-sources loop
```
Trajectories-as-environment
╔════════════════════════════════════════╗
║ src_1 src_2 src_3 ... src_N ║
║ [..] [..] [..] [..] ║
║ ║
║ not concatenated. not summarized. ║
║ navigated. ║
╚═══════════════════╤════════════════════╝
▼
┌────────────────────────────────────────┐
│ AGGREGATOR (lite agent) │
│ inspect_file / inspect_section │
│ search_sources / cross_pack_check │
│ │
│ notes = [] (every claim → path:line)│
│ budget = 25 → loop until coverage │
└───────────────────┬────────────────────┘
▼
pack/ brief.md / findings.md /
sources.tsv / _aggregation_log.md
```
Agentic aggregation for long-horizon research. N raw notes → 1 structured pack with full `path:line` provenance + cross-source contradictions surfaced. See [`skills/wiki-aggregate/`](skills/wiki-aggregate/).
---
## The build-until-pass loop
```
┌──────────────────────────────────────────────┐
│ attempt > MAX (default 10)? │
│ → STOP, report what's left, hand to human │
└───────────────────────┬──────────────────────┘
│ no
RUN CHECK ──▶ exit 0? ──yes──▶ DONE (green = exit code, not opinion)
▲ │
│ │ no (red)
│ ▼
│ READ first error ──▶ FIX smallest ──▶ re-RUN
│ verbatim, file:line minimal diff, │
│ never fake green │
└─────────────────────────────────────────────────┘
one round = one fix + one re-run + one-line report
```
Turns the human out of the run → read error → fix one line → run again loop,
and caps the agent so it can't bulldoze 200-line speculative rewrites between
runs. Refuses to fake green (`@ts-ignore`, deleting tests, `|| true`). See [`skills/build-until-pass/`](skills/build-until-pass/).
---
## Skills
| Skill | What it does |
|---|---|
| [`skills-map`](skills/skills-map/) | **The router — start here.** Maps every skill in this collection to its phase of work (Decide → Spec → Build → Debug → Fan-out → Research → Media → Analyze) and walks a decision tree to pick the right one. Closes the discovery gap: a skill only fires if the agent remembers it exists and reaches for it at the right moment. Hand-curated index + typical pipelines + anti-rationalization table. Run on `/skills-map` or any "which skill should I use" doubt. |
| [`go-no-go`](skills/go-no-go/) | **Stage 0 gate — NO-GO is the default.** Runs before `/spec` to decide whether a project should start at all. Memory check against prior attempts + 5 framework gates (Differentiation · Audience–Market Fit · Acquisition Channel · Capacity · 7-Factor Wedge) + 24h pattern-interrupt if enthusiasm-high + public commitment doc with D14/D30/D60/D90 kill criteria. 3 starter packs (solo-founder · indie-dev · content-creator). |
| [`spec-driven-dev`](skills/spec-driven-dev/) | Full SDLC workflow: Spec → Plan → Build → Test → Review → Ship. Anti-rationalization tables, verification gates, atomic commits. Pairs with `go-no-go` as Stage 1 of the pipeline. |
| [`debug-hypothesis`](skills/debug-hypothesis/) | Scientific-method debugging: Observe → Hypothesize → Experiment → Conclude. Anti-bulldozer rules, max 5-line experiments, mandatory `DEBUG.md` evidence trail. |
| [`wiki-aggregate`](skills/wiki-aggregate/) | Lift N≥3 raw research artifacts into one structured pack via agentic aggregation. Cheap-pass + tool-budgeted aggregator loop, every claim has `path:line` provenance, cross-source contradictions logged. |
| [`tavily-search`](skills/tavily-search/) | Web search + content extraction via the [Tavily](https://tavily.com) API. Use for fact-checking, docs lookup, source-cited research. |
| [`nano-banana`](skills/nano-banana/) | Text-to-image and image editing via Google's Nano Banana 2 (`gemini-3.1-flash-image-preview`). Supports `512 / 1K / 2K / 4K`. |
| [`frontend-design`](skills/frontend-design/) | Build distinctive, production-grade frontend interfaces — bold aesthetic direction, intentional typography, and motion that avoids generic AI-slop UI. Adapted from Anthropic's official `frontend-design` skill (Apache-2.0). |
| [`google-analytics`](skills/google-analytics/) | Analyze GA4 data + ship an out-of-the-box **SEO daily report** — point it at one property and get organic KPIs (28d-vs-prior-28d), same-weekday anomaly detection, top organic landing pages, by-engine/country/device cuts, and prioritized recommendations. Plus general analyses (overview / sources / content / devices / seo). **TypeScript** scripts (Bun / `npx tsx`) over the official `@google-analytics/data` client, `conversions`↔`keyEvents` auto-detect. Reads `GOOGLE_ANALYTICS_PROPERTY_ID` + service-account JSON from env. |
| [`subagent-brief`](skills/subagent-brief/) | Pre-flight discipline for spawning subagents. Anthropic does NOT share prefix across subagents — each one cold-starts on the full prompt. Compress every subagent prompt into a ≤200-word brief before spawning. Five rules + brief template + anti-rationalization table. Backed by arXiv 2604.25899 (Pythia, 2026). |
| [`build-until-pass`](skills/build-until-pass/) | Bounded self-correcting loop: run the build/typecheck/test command → read the first error → apply the smallest fix → re-run → repeat until **exit code 0** or a hard attempt cap (default 10). Green is the exit code, not the agent's opinion. Minimal-diff-per-round + cap kill both failure modes — human-as-while-loop and agent-as-bulldozer. Refuses to fake green (`@ts-ignore`, deleting tests, `\|\| true`). |
All skills read credentials from environment variables (`TAVILY_API_KEY`, `GEMINI_API_KEY`, etc.) — never hardcoded.
---
## Quick install
<details open>
<summary><b>Claude Code — plugin marketplace (one command)</b></summary>
Inside a running Claude Code session:
```
/plugin marketplace add LichAmnesia/lich-skills
/plugin install lich-skills@lich-skills
```
Done. All skills become available immediately. Verify:
```
/skills
```
</details>
<details>
<summary><b>Claude Code — git clone</b></summary>
```bash
# 1. Install Claude Code (if not already)
curl -fsSL https://claude.ai/install.sh | bash
# or: brew install --cask claude-code
# 2. Clone into the global skills directory
git clone https://github.com/LichAmnesia/lich-skills.git ~/.claude/skills/lich-skills
# 3. Start Claude Code
claude
> /skills
```
Full guide: [`docs/claude-code-setup.md`](docs/claude-code-setup.md).
</details>
<details>
<summary><b>Gemini CLI — extensions install (one command)</b></summary>
```bash
gemini extensions install https://github.com/LichAmnesia/lich-skills
```
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:
```bash
gemini extensions list
```
Manual clone fallback:
```bash
npm install -g @google/gemini-cli
git clone https://github.com/LichAmnesia/lich-skills.git ~/.gemini/extensions/lich-skills
```
Full guide: [`docs/gemini-cli-setup.md`](docs/gemini-cli-setup.md).
</details>
<details>
<summary><b>OpenAI Codex CLI</b></summary>
```bash
# 1. Install Codex CLI
npm install -g @openai/codex
# or: brew install --cask codex
# 2. Install the skill collection
mkdir -p ~/.codex/skills
git clone https://github.com/LichAmnesia/lich-skills.git ~/.codex/skills/lich-skills
```
Full guide: [`docs/codex-setup.md`](docs/codex-setup.md).
</details>
---
## Why the one-liners work
- **`/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.
- **`/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.
- **`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.
- **[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.
- **`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.
---
## Documentation
| Tool | Install + skill setup |
|---|---|
| Claude Code | [`docs/claude-code-setup.md`](docs/claude-code-setup.md) |
| Gemini CLI | [`docs/gemini-cli-setup.md`](docs/gemini-cli-setup.md) |
| OpenAI Codex | [`docs/codex-setup.md`](docs/codex-setup.md) |
---
## Security
No secrets committed. Repo scanned with [`gitleaks`](https://github.com/gitleaks/gitleaks) via pre-commit hook and CI on every PR. Skills use environment variables only; example configs use `YOUR_API_KEY_HERE` placeholders. Report any leaked credential via a [private security advisory](https://github.com/LichAmnesia/lich-skills/security/advisories/new).
---
## Contributing
PRs welcome. New skills should be **specific**, **verifiable**, and **minimal**. See [`CONTRIBUTING.md`](CONTRIBUTING.md).
---
## License
[MIT](LICENSE) © 2026 Shen Huang ([@LichAmnesia](https://github.com/LichAmnesia))
---
## Star History
[](https://www.star-history.com/#LichAmnesia/lich-skills&Date)