ENZH

I Open-Sourced the 11 AI Skills I Use Every Week

Last weekend I was tidying up some projects and stared at my ~/.claude/skills/ directory for a long minute.

Sixteen skills in there. Things for writing Chinese long-form articles, for doing research, for generating images, for extracting PDF text, for tidying up project memory at the end of a session — and one for cyber half-immortal divination. Each one started the same way: I noticed I was rewriting roughly the same prompt for the third or fourth time, got annoyed, and packaged it as a skill.

It hit me that this collection — sixteen skills, accumulated quietly over the course of a year — is basically my entire workflow for collaborating with AI.

So last week I opened a GitHub repo called AX-skills, picked the eleven I thought other people might find useful, and made it public.

The rest of this post is what I noticed when I sat down and looked at all eleven at once.

A skill isn't a stored prompt — it's a workflow committed to disk

When I started, I thought "skill" meant "good prompt I want to reuse." Like a Notion template, but for AI assistants.

After a year of writing them, I think they're doing something more interesting.

A skill isn't a prompt. It's the moment where something fuzzy in your head — "I sort of know how I'd do this if I were doing it myself" — becomes a concrete pipeline that an AI can actually run.

Take khazix-writer, one of the writing skills in the repo. On the surface, it teaches Claude to write Chinese long-form articles in the voice of 数字生命卡兹克 (Khazix) — a popular AI/tech blogger known for his conversational, narrative-driven style.

But internally it doesn't run as "give the model some style notes and let it freestyle." It runs as a four-layer self-check.

L1: Hard rules. Banned-word scans (Chinese AI-slop phrases — the dead giveaways), banned-punctuation scans (no colons, em-dashes, or double quotes — they signal AI), structural-cliché scans, generic-tool-name scans. L2: Style consistency. Does it open with a concrete scene? Does the rhythm alternate long and short sentences? Are there enough conversational markers? L3: Content quality. Are the claims backed by specific examples? Is the knowledge "casually pulled out mid-conversation" rather than lectured at the reader? Is there an upward connection from the specific event to a larger cultural reference? L4: The "felt-by-a-real-human" test. Reading the whole thing — does it feel like an experienced person earnestly talking about something that moved them, or does it feel like an AI outputting information?

After writing each section, the model runs all four layers on itself. L1 fails → swap words. L2 fails → fix rhythm. L3 fails → add a concrete case. L4 fails → rewrite the section.

I used to do all of this in my head. Every time I revised my own draft, I'd unconsciously ask "is this too written?", "is the hook missing?", "is this earned?" — but I never wrote any of it down.

Once it was written down as a skill, Claude could run the whole loop unattended. My revision time dropped by about 70%.

What's in the eleven

Two writing skills.

khazix-writer (above) — Chinese long-form in the conversational, narrative-driven khazix voice. wandian-writer — a different voice, modeled on 晚点 LatePost deep analysis. Cold narration, warm judgment, data-first. The two skills are mutually exclusive on a given article — mixing them produces narrative whiplash for the reader.

Two research skills.

deep-research — verification-mode research. Uses a Tier 1-4 source classification (Tier 1 = vendor-official docs; Tier 4 = GitHub issues, migration stories, production post-mortems) and runs multiple sub-agents in parallel with overlapping coverage so contradictions surface. Every load-bearing claim has to be backed by a Tier 3-4 independent source — vendor narrative alone is not enough. narrative-research — story-mode research. Uses Horizontal-Vertical Analysis: vertical axis is the lifecycle narrative of the thing being studied; horizontal axis is the competitive cross-section at the same point in time. The two axes cross to produce insight. The methodology is from 数字生命卡兹克; my version is the Western-source-friendly adaptation.

Four media skills.

gpt-image — default image generation, GPT Image 2 backend. Better at embedding readable text than Nano Banana, supports multi-image-per-prompt, handles most things. gemini-image — Gemini Nano Banana backend. Stronger at illustration aesthetics (anime, watercolor, Studio Ghibli, Chiikawa) and supports multi-reference-image input (up to 14), which is the only way to do character consistency, pose changes, and background swaps. transcribe — audio transcription via Gemini 3 Flash. Used on meeting and conversation recordings. apple-pdf — PDF text extraction via macOS PDFKit. Significantly cleaner output than the open-source PDF parsers I've tried.

One workflow skill (publicly).

neat-freak — end-of-session knowledge cleanup. After each substantive working session, it reconciles three layers: the agent's memory system, the project root markdown (CLAUDE.md / AGENTS.md), and the project's docs/ + README. The three audiences are different — your future-AI in this project, the AI in any other project, and external humans integrating against your work. They drift differently. neat-freak runs a structured editorial pass on all three. I run it almost every session.

Two for fun.

banxian-skill — the cyber half-immortal divination skill I wrote about previously. Three Eastern divination methods (小六壬, 梅花易数, 六爻) with real algorithm engines and a knowledge base ported from panpanmao's production code, wrapped in an "AI half-immortal" persona that's 70% mystical, 25% modern slang (handles KPIs, mortgages, dating questions), and 5% professional discipline (won't predict death, refuses repeat divinations on the same question). jewelry-marketing — marketing copy for small jewelry brands. A friend's side project asked me to build it.

I'd never sat down and counted them like this. It's a little startling to see what an unremarkable amount of work — a skill here, a skill there, on weekends — turns into when you look at it as a system.

Writing skills isn't really about saving time

The "save time" framing is true but shallow.

The real return on writing skills is that it forces a particular kind of clarity.

Before skills, I knew what tone I wanted in an article, but couldn't articulate it precisely. I knew when a piece of research was thin, but couldn't say what made it thin. Each session would produce a draft, I'd glance at it and say "this isn't right," and we'd iterate twice more on vibes.

Writing a skill forces you to commit. The AI is going to run this pipeline without you in the room. The self-check has to be specific enough that the model can check itself. So the standards have to leave your head and land on disk.

This is counterintuitive. You think you're teaching the AI how to do work. What you're actually doing is figuring out, often for the first time, how you do work.

It took me a year of writing skills to notice this.

Attribution

Three of the skills in the repo — khazix-writer, neat-freak, and narrative-research — are based on methodology open-sourced by KKKKhazix/khazix-skills (数字生命卡兹克's public skill collection, MIT-licensed). My versions are adapted (path conventions, cross-platform install instructions, AX-skills cross-references), and each skill's README points back to the canonical version. Read upstream if you want the original.

banxian-skill's algorithms and knowledge base are ported from panpanmao's production divination platform — three methods, ported from TypeScript to ≤500 lines of Python each, with the full 64-hexagram dataset, 纳甲 (Najia) tables, six-親 (Liu Qin) rules, and 6-神 (Liu Shen) lookups carried over.

gemini-image is adapted from feedtailor's nanobanana skill; the upstream MIT license is preserved at gemini-image/LICENSE-UPSTREAM-NANOBANANA.

What my versions add over upstream is mainly two things. First, cross-platform consistency — every skill runs on Claude Code, Codex, OpenCode, and OpenClaw with a unified install convention. Second, the cross-references between skills — routing rules ("when to use which") live in my global CLAUDE.md, so the skills compose into a system rather than sitting as isolated tools.

Installation

Pretty simple.

git clone https://github.com/xingfanxia/AX-skills.git ~/AX-skills
ln -sf ~/AX-skills/<skill-name> ~/.claude/skills/<skill-name>

Each skill has its own SKILL.md and Claude Code auto-discovers them. The Python-dependent skills (banxian-skill, gpt-image, gemini-image) have a pip install -r requirements.txt line in their READMEs.

Pirsig and care

I read Zen and the Art of Motorcycle Maintenance a long time ago and one idea has stuck with me: Quality. Pirsig's argument is that what separates someone who really knows motorcycles from someone who just follows the manual isn't memorizing every torque spec. It's knowing why you'd torque it that way, when to stop, when to switch tools. He calls this "care" — and it cannot be put in a manual.

A year of writing skills has me convinced that skills are how you encode care.

Each skill in the repo is the residue of an actual workflow I went through, repeatedly tripped on, and eventually thought "no, this is the judgment that needs to live in the loop." Once it's written down, the AI can inherit that care. And only then can I genuinely hand off the work.

Without that, every session is me looking over the model's shoulder, and "AI collaboration" stays a marketing term.

The repo: github.com/xingfanxia/AX-skills

Forks, issues, and PRs welcome. If you've been working on your own skills, send them my way — I'd love to compare notes.


© Xingfan Xia 2024 - 2026 · CC BY-NC 4.0