KEEP IT HANDS-ON functional ~ tested 2026-09-16
// sandboxed in macOS (host) · aarch64 ·install log · why not fully functional: The deterministic helpers were exercised end to end (quality gate positive and negative cases, SRT/VTT cleaning with content asserts, research merger, install byte-identity for hermes-agent), but the core deliverable is a multi-agent web-research pipeline executed inside a live agent session with real token cost (the SKILL.md itself warns a full run can cost tens of dollars), which cannot be re-run headless in this review. The 15 committed FIDELITY.md scorecards are evidence authored upstream, not re-executed here. ·functional log

Nuwa Skill (女娲)

by alchaincyf (花叔 / Huashu) · https://github.com/alchaincyf/nuwa-skill · MIT · vunversioned (no tags; last push 2026-08-25) · updated 2026-08-25

The 32,749-star thinking-distillation factory has the best eval methodology in its tier, and a quality gate that fails 13 of its own 15 showcase examples.

4 / 5
quality 4/5
documentation 4/5
setup 4/5
value 4/5
ecosystem fit 3/5
// bottom line

Nuwa is the most disciplined person-distillation skill GearScope has tested: a 682-line contract with cost tiers, source blacklists, anti-fabrication rules, and 15 shipped personas each carrying an independent dual-agent fidelity scorecard. The executable side lags the prose: the shipped quality gate cannot see numbered lists and therefore fails 13 of those 15 examples, and the README tells Hermes users to run an installer script that does not exist in the repo. Install it if you want research-grounded thinking advisors and run the pipeline in Claude Code; verify gate verdicts by hand.

Don't install your next skill blind. Every week: the shortlist of skills worth installing — and the ones to skip — from 100+ hands-on tests.
install via skills CLI
$npx skills add alchaincyf/nuwa-skill --agent hermes-agent --skill huashu-nuwa --copy --yes
or clone directly
$git clone --depth 1 https://github.com/alchaincyf/nuwa-skill

67 MB shallow; place under your runtime's skills/ directory

install if

  • Claude Code users who want a repeatable factory for research-grounded thinking advisors. The pipeline's source discipline, cost tiers, and fidelity scoring are a class above typing "pretend to be Munger" into a prompt, and the 15 examples double as templates.
  • Skill authors studying evaluation design. The separated answerer/judge FIDELITY methodology, the failure-mode table built from real issues, and the anti-fabrication rules are patterns worth copying into any skill that generates persona or style artifacts.
  • Chinese-language teams. The contract, examples, and research conventions are Chinese-primary with English triggers supported, which is rare among heavily-engineered skills.

What It Does

Nuwa turns a person's name into a working "perspective skill": a SKILL.md that role-plays how that person thinks, built from structured research rather than vibes. The 682-line contract runs a six-phase pipeline (entry triage, clarification with cost tiers, six parallel research agents covering writings, conversations, expression, critics, decisions, and timeline, framework synthesis with triple-verified mental models, assembly from a template, then independent quality validation and a dual-agent refinement pass). Four stdlib Python and shell helpers support the run: a YouTube subtitle downloader, an SRT/VTT-to-transcript cleaner, a research-merging summarizer, and a six-check quality gate. The repo ships 15 finished example personas (Munger, Feynman, Naval, MrBeast, Trump, Zhang Yiming, and others), each with research files and a graded fidelity scorecard. It targets developers and knowledge workers who want a "thinking advisor" distilled from a public figure, run inside a skills-compatible agent.

The Good

The eval methodology is the best in the person-distillation tier. Every one of the 15 shipped personas carries a FIDELITY.md scorecard produced by separated agents: one agent answers test questions using only the skill directory with no network access, and an independent judge agent scores against the person's real public positions. The methodology file explicitly cites SkillLens (arXiv 2605.23899) and its finding that LLM self-evaluation is only 46.4 percent accurate as the reason for the separation. Scores run 89 to 97 out of 100 with itemized deductions, including refreshingly specific ones like a one-point deduction on the Munger card for a research index containing absolute paths outside the skill directory. The research paper trail behind the scorecards is real: 23 to 506 source URLs per persona across the example set.

The contract plans for failure instead of pretending it away. A dedicated failure-mode table maps seven real degradation paths (no parallel subagent support, context window exhaustion around 500k accumulated tokens, cost overruns, agent timeouts, missing search tools, thin sources, conflicting agents) to first-line fixes and fallbacks, and states that the top three were observed in real GitHub issues. Cost is disclosed before the run, not after: the clarification phase presents three price tiers and warns that a full distillation on a frontier model can consume tens of dollars, citing a real user case. The headline rule is an anti-fabrication stance: prefer an honestly limited 60-point skill over a fabricated 90-point one.

The install path is clean and byte-faithful. The skills.sh registry carries the canonical entry (skillId huashu-nuwa, 25,908 all-time installs at test time, plus a secondary nuwa-skill face at 211). The universal installer landed the skill for hermes-agent in an isolated HOME with 159 files, a skills-lock.json, and a SKILL.md byte-identical to the upstream clone. All four helper scripts run on the Python standard library alone, with no pip installs and no API keys. Source discipline extends to a blacklist with reasons (Zhihu and WeChat公众号 excluded for content laundering, Baidu Baike for staleness) and to a privacy rule requiring consent prompts before distilling living non-public individuals.

The generated-skill design goes beyond parroting. Every generated persona includes an Agentic Protocol section derived from its distilled mental models (the Munger card's research dimensions look at moats, incentive structures, and inverse risk; the Feynman card's look at physical constraints and official-story logic gaps), which forces the persona to research before answering factual questions instead of improvising from training data. A silent 30-day version self-check pokes the git remote and only mentions available updates after finishing the user's task. Five-language READMEs (CN base plus EN, ES, JA, KO) and an "Honest Limits" section ("a skill that doesn't tell you its limits is not worth trusting") round out a documentation set that mostly matches reality.

The Bad

The shipped quality gate fails 13 of the repo's own 15 showcase examples. The check_honest_boundary function in scripts/quality_check.py counts only dash and asterisk bullets, but all 15 example skills write their honest-boundary sections as numbered lists. The Munger skill fails with "诚实边界: 0条" while its section provably contains six numbered limitations, and its own FIDELITY.md credits "诚实边界6条". Only Steve Jobs and Zhangxuefeng pass, presumably because their formatting happens to use bullets. The 15th failure is different: x-mastery-mentor is a topic-skill variant, and the checker understands only the person-skill template, so it fails 5 of 6 checks on a legitimate structural variant the SKILL.md itself documents. A user who runs the gate on their fresh distillation and formats boundaries as a numbered list will get a false FAIL.

The README documents a Hermes installer that does not exist. The manual-install table's Hermes Agent row says to run tools/install_hermes_skill.py, but the repo has no tools/ directory at all (verified by find across the tree). Hermes users following the documented path hit a dead end; the working path is the universal installer, which the same table does mention. The contract also hardcodes .claude/skills/ output paths in five places (persona directories are created and written under .claude/skills/ by default), so on Hermes or OpenClaw the pipeline writes its output where those hosts will not auto-load it unless the user intervenes.

The helper scripts only fit part of the shipped corpus. merge_research.py expects the numbered references/research/ directory layout and exits 1 with "目录不存在" on the 5 of 15 examples (Musk, Feynman, Munger, Naval, Taleb) that store research as flat per-agent files like naval-agent2-conversations.md. download_subtitles.sh has a logic bug: its first success-detection branch compares against /tmp/.ytdlp_marker, a file the script never creates, so the Chinese-subtitle path can never detect its own success and always falls through to re-download attempts. None of the four scripts has a test file, and the only CI workflow gates COMMUNITY.md PRs.

Every install ships 34 MB for a 78 KB contract. The installer copies the entire repo: 10.4 MB of promo imagery, 4.7 MB of assets, five READMEs, an X thread, and a WeChat QR code ride along in every one of the 25,908 installs. The functional payload (SKILL.md, three references, four scripts) is roughly 78 KB. There are no git tags, no releases, and no changelog, so installed copies cannot be pinned to a version, which matters for a skill whose contract text changes behavior.

Smoke Test Results

Host-based run (macOS 26.5.2 aarch64, the sbx microVM being Docker-unauthenticated at test time): Python 3.12.13, Node 24.13.1, clone of main at commit fe03746. Scripts run bare from the clone with no dependency installation, matching the repo's stdlib-only claim.

Run A. Fresh sandbox, no deps preinstalled

$ git clone --depth 1 https://github.com/alchaincyf/nuwa-skill /tmp/nuwa-skill-fresh
✅ 67 MB shallow clone, root SKILL.md present (682 lines)
$ find examples -name SKILL.md | wc -l
✅ 15 example persona skills found
$ find examples -name FIDELITY.md | wc -l
✅ 15 fidelity scorecards found, one per persona
$ grep -l '^name:' on root + 15 example SKILL.md
✅ frontmatter name and description present in all 16 files
$ ls references/
✅ extraction-framework.md, fidelity-scorecard.md, skill-template.md all present (331 lines total)
$ python3 scripts/quality_check.py examples/munger-perspective/SKILL.md
❌ exit 1: 5 of 6 checks pass, honest-boundary counted as 0 items though the section has 6 numbered entries
$ python3 scripts/merge_research.py examples/munger-perspective
❌ exit 1: "目录不存在", Munger uses flat research files, not the references/research/ layout the script requires
$ python3 scripts/srt_to_transcript.py <planted SRT with timestamps, HTML tags, duplicate lines>
✅ exit 0, transcript written
$ bash scripts/download_subtitles.sh
✅ no-args invocation prints usage and exits 1
$ python3 scripts/srt_to_transcript.py /nonexistent.srt
✅ exits 1 with a named file-not-found message

Pass rate: 9 of 10. Both failures are repo defects verified to root cause (numbered-list blind spot in the gate, layout split in the merger), not environment problems.

Full sandbox log →

Run B. Sandbox with deps preinstalled

Node 24.13.1 plus the vercel-labs skills CLI, isolated HOME to keep the host clean.

$ node --version
✅ v24.13.1
$ npx -y skills --version
✅ skills CLI available via npx
$ npx -y skills add alchaincyf/nuwa-skill --agent hermes-agent --skill huashu-nuwa --copy --yes
✅ install completes, SKILL.md lands at .hermes/skills/huashu-nuwa/SKILL.md
$ find .hermes/skills/huashu-nuwa -type f | wc -l
✅ 159 files, payload self-contained
$ cmp installed SKILL.md vs clone
✅ byte-identical
$ ls .hermes/skills/huashu-nuwa/scripts/
✅ quality_check.py, merge_research.py, srt_to_transcript.py all present
$ ls skills-lock.json (cwd level)
✅ lockfile written for reproducible installs
$ test -e tools/install_hermes_skill.py
❌ README's documented Hermes installer does not exist anywhere in the repo

Pass rate: 9 of 10. The install path is solid; the sole failure is the README's ghost installer.

Full sandbox log →

Run C. Functional verification (does it do what it claims?)

Asserts on actual output of the skill's own tooling, positive and negative cases.

$ python3 scripts/quality_check.py examples/naval-perspective/SKILL.md
❌ exit 1: 5 of 6, same honest-boundary false negative (numbered list of 6 items counted as 0)
$ python3 scripts/quality_check.py <doctored copy: boundary section stripped, model headers renamed>
✅ rejected: exit 1 with FAIL lines, gate catches real violations
$ python3 scripts/quality_check.py <generic no-section SKILL.md>
✅ rejected: exit 1, multiple checks fail
$ python3 scripts/srt_to_transcript.py talk.srt (timestamps, <u> tags, duplicated line)
✅ output contains zero timestamp patterns
$ same output, consecutive-duplicate scan
✅ duplicate lines deduped
$ grep 'Avoid stupidity' transcript
✅ content preserved through cleaning
$ grep '<u>' transcript
✅ HTML tags stripped
$ python3 scripts/srt_to_transcript.py talk.vtt
✅ WEBVTT header and NOTE block removed, content kept
$ python3 scripts/merge_research.py examples/andrej-karpathy-perspective
✅ exit 0, summary table covers the research dimensions
$ grep '诚实边界' across 15 example SKILL.md
✅ 15 of 15 shipped examples carry honest-boundary sections
$ run quality gate across all 15 shipped examples
❌ only 2 of 15 pass their own checker (13 fail solely on the numbered-list boundary check, x-mastery-mentor fails 5 of 6 as an unsupported topic-skill variant)

Functional pass rate: 9 of 11.

Full functional log →

What the runs tell you

The tooling that works is deterministic (the SRT cleaner survives every positive and negative case, the gate correctly rejects doctored and generic skills), and the install is byte-faithful across runtimes. The two red flags are self-consistency failures: the gate cannot pass the repo's own Grade-A examples, and one repo helper rejects a third of the repo's own corpus layout. The core distillation pipeline itself is a prompt contract whose quality depends on the executing model, and its committed FIDELITY evidence is authored upstream rather than independently re-runnable here.

Setup Walkthrough

  1. Install with the universal CLI: npx skills add alchaincyf/nuwa-skill --agent (add --skill huashu-nuwa --copy --yes for scripted runs; the interactive picker stalls in pipes). Verified working and byte-identical for hermes-agent.
  2. Expect a 34 MB payload; the promo and assets directories are safe to delete if disk matters, the skill contract plus references plus scripts total about 78 KB.
  3. Trigger with phrases like "蒸馏芒格" (distill Munger), "nuwa", or "distill [person]"; vague requests like "I want better decisions" route through a diagnostic path that recommends 2 to 3 candidate personas.
  4. Before a full run, pick a cost tier when the agent asks: quick (3 dimensions), standard (6 dimensions, default), or deep (6 dimensions plus full primary-source downloads). A standard run is a long multi-subagent task; the contract's own guidance for 200k-context models is to split it across three sessions.
  5. After generation, run python3 scripts/quality_check.py /SKILL.md, but format your honest-boundary section as dash bullets or the gate will undercount it (the shipped examples themselves use numbered lists and fail).

Alternatives

  1. titanwings/distilly - the 24.3K-star competitor in the same person-distillation vertical, shipping an engine plus MCP server plus plugin bindings rather than a pure prompt contract; reviewed here as distilly (3.5, TRY IT) for its host-version gating and build-from-source install.
  2. virgiliojr94/book-to-skill - distills books rather than people into reusable skills; reviewed here at 4.5 KEEP IT, and a safer fit when the source material is a single text you already own.
  3. FrancyJGLisboa/agent-skill-creator - a general-purpose meta-skill for authoring skills across 17 platforms; reviewed here at 4.5 KEEP IT, better when you want the craft of skill structure rather than a persona factory.
// review provenance
reviewed by
GearScope
tested
2026-09-16 · macOS (Apple Silicon)
last verified
2026-09-16
depth
HANDS-ON
sponsorship
none, ever
// share this review
// feedback
was this review helpful?

Don't install your next skill blind.

Every week: the shortlist of skills worth installing — and the ones to skip — from 100+ hands-on tests. No spam, no affiliate links.