Core Principles
Style is not an adjective, it is a fingerprint. Only what can be reproduced accordingly counts as successfully distilled.
A bare model makes three mistakes doing this (already tested): (1) style observations are hastily assembled, mixed with content stance, and not reusable; (2) after rewriting, no one blind-tests it — it acts as both player and referee, quietly sliding back into bland AI-speak; (3) during rewriting it arbitrarily adds and cuts material, erasing the original facts. This skill usesstructured fingerprint + independent judge blind test + factual skeleton disciplineto nail down these three points.
Two modes:Distill(samples → Style Card file) andRewrite(target article + Style Card → rewritten draft, with a blind-test loop).
Default to the streamlined version (user agreement): for everyday distillation / rewriting tasksprioritize
references/oneshot-prompts.md's one-shot prompt(Prompt A for rewriting / Prompt B for distillation) — the 9-axis fingerprint + anchors + factual skeleton discipline + 6 AI tell countermeasures are all there, only replacing the multi-round judge blind test / Turing test / rework witha single round of inline self-check. Good enough, done in one pass. Only when you need torigorously verify whether a card really resembles it(publish-grade, batch forgery) do you return to the full loop below (judge subagent + Turing blind test).
When to Use
- The user gives several articles by a certain author and wants to extract how they write
- The user wants to rewrite a passage / a draft / an AI-generated text into a certain author's flavor
- Not applicable: what the user wants is how this personthinks(mental models, worldview, role-play) → that is
huashu-nuwa, not here; this skill only handleshow to write。
Storage (independent library, not into the public repo)
~/code/style-cards/<author-slug>/
samples/ # 喂进来的原始样本
style-card.md # 蒸馏出的 Style Fingerprint(真源,人可读可手改)
rewrites/ # 历史改写稿(可选)
wjs-* skills are automatically synced to the public repo, so other people's drafts and cards go in this independent library and are not leaked. If the library or author directory does not exist, create it first.
Style Fingerprint — 9 Axes
Each axis writes three things:observation(what is seen in the samples),executable rules(how to follow them when rewriting),anchor original sentences(excerpt 2–3 real original sentences from the samples). Rules can lie, original sentences cannot — an axis without anchors is as good as not distilled.
| # | Axis | What to Capture |
|---|---|---|
| 1 | Sentence rhythm | Distribution of long and short sentences, the beat of alternating long and short, punctuation signature (dashes/ellipses/questions/exclamations) |
| 2 | Paragraph length | Average paragraph length, whether there are single-sentence paragraphs, density of long paragraphs |
| 3 | Vocabulary | High-frequency words, catchphrases, coined words, person, tendency toward idioms/internet slang, Chinese-English mixing, elegance vs vulgarity of word choice |
| 4 | Tone and voice | Confidence level, sense of distance (intimate vs objective), formality, humor |
| 5 | Argument structure | Assertion first vs layer-by-layer buildup, whether subheadings/lists/tables are used, progression path |
| 6 | Use of metaphor | Everyday vs abstract, frequency, how to build a ladder between abstract ↔ concrete |
| 7 | Emotional intensity | Emotional temperature, restraint vs eruption, exclamation density |
| 8 | Opening and closing | How to start (assertion/scene/hook), how to land and wrap up |
| 9 | Landmines | Things he would never do (e.g., not using the naive-question hook, not writing anything unverified, not using a certain class of formal words) |
See the template at references/style-card-template.md, just fill it in accordingly.
Don't write content stances into the fingerprint: "He loves to play devil's advocate," "His worldview is X" areideasnotwriting style. The fingerprint only captures "how it's written"—what the same viewpoint would look like if he wrote it.
"Seasoning is not a formula" calibration note (write it into every card): signature moves (coining terms / everyday metaphors / single-sentence paragraphs / em dashes) aretoolsnota checklist. Short content should be written short—don't pile on every signature move; piling them all on is a poor imitation, not that person.
9 axes → dozens of fine-grained dimensions (recommended card form): The 9 axes are the scaffolding for the initial breakdown. When making cards, break them down into ~30–45fine-grained executable dimensions, grouped into tables (sentences and punctuation / paragraphs / vocabulary / tone / argumentation / metaphors / openings / endings / anchor discipline / landmines…),each dimension with a one-sentence "what it's like" rule. The distillation process relies on anchor original sentences for calibration (mandatory, otherwise the rules spin idle), butexamples in the card should be trimmed—examples aren't necessarily typical and are easy to copy as formulas; only rules have generality. This is the form meant for "other models to write along with in batches."
Distillation process
- Sample intake
samples/. 3–6 pieces recommended, covering different topics / lengths.With fewer than 3 pieces, explicitly warn the user: the fingerprint will be unstable and it's easy to mistake a one-off writing choice from a single piece for a signature. - For long samples, spin up a subagent to do the 9-axis breakdown, to avoid polluting the main context, and only collect the structured results.
- Analyze axis by axis; each axismust quote anchor original sentences。
- Write out
style-card.md(following the template), let the user review / hand-edit.
Rewriting process (with a blind-test closed loop)
digraph rewrite {
"抽事实骨架" [shape=box];
"按9轴改写" [shape=box];
"独立判官盲测" [shape=box];
"达标?" [shape=diamond];
"拿判官具体意见回炉" [shape=box];
"对照骨架查事实" [shape=box];
"交稿" [shape=box];
"抽事实骨架" -> "按9轴改写" -> "独立判官盲测" -> "达标?";
"达标?" -> "拿判官具体意见回炉" [label="否, 最多2-3轮"];
"拿判官具体意见回炉" -> "独立判官盲测";
"达标?" -> "对照骨架查事实" [label="是"];
"对照骨架查事实" -> "交稿";
}
- Extract the fact skeleton: first list the target article's arguments / information / conclusions as a few bullets. This is the anchor for "preserving facts"—the rewriteneither adds nor removesthese facts, only changes how they're said.
- Rewrite along the 9 axes: allowed to adjust the opening / ending / rhythm / subheadings / paragraph splits, but the fact skeleton is kept as is.
- Independent judge blind test (mandatory, cannot be skipped): spin up a subagent,give it only the Style Card's anchors + the rewritten draft, not the original text, and don't tell it this was AI-rewritten. For the judge prompt, see
references/judge-prompt.md. It outputs: per-axis similarity scores (1–5), a list of specific lines that break character, and missing/overloaded signature moves. - Send back to the shop if it doesn't meet the bar: default threshold is an average ≥4/5 with no single axis ≤2. If it fails, take the judge'sspecific lines that break characterand rework it, then test again, up to 2–3 rounds.
- The judge reporting "missing a certain signature move" ≠ authorized to add material. What's common is the judge saying "missing his signature 'firsthand account with numbers'" — if this fact is not in the original factual skeleton,you must never fabricate a passage for the author just to score points. For that axis, rather take a 4 than a 5. When full marks for style conflict with factual discipline, factual discipline wins. The only thing you can add is "rephrasing"; you cannot add "new facts".
- Check facts against the skeleton: before submitting, compare against the skeleton from step 1 — is there any tampering / loss / addition of facts? Rewriting can change the wording, but not the facts.
The judge sub-agent is the only antidote to "the same model acting as both athlete and referee".Reading it yourself and feeling it's quite similar ≠ similar— this is exactly the entry point where the bare model slides back into mediocrity.
Strong verification: Turing discrimination blind test (to test whether the card is actually solid)
The similarity judge above asks "does it look like it?"; to quantitatively verify the entire card, go through one more gateTuring discrimination blind test: mix AI imitations into the genuine works and have abrand-new, different-modeljudge blindly guess whether each piece is "genuine" or "AI-imitated"; an accuracy of ≤ 50% (random guessing) counts as a pass. For the full procedure (sample selection / writing from scratch with only the title + 30 characters / stripping metadata and normalizing / a different-model judge reading the whole batch / scoring and reworking / deploying to the jianshuo.dev profile), see references/turing-blindtest.md。
Before running this gate, first read references/ai-tells.md— the 6 places where AI most easily gives itself awayforced out by 9 rounds of real testing (missing real proper nouns / ending too neatly / progression too smooth / chicken-soup textbook-ification / batch fingerprints / article archetype mismatch) + countermeasures for each.Write these 6 countermeasures into the tail of every style card(the bare model, even when writing along the 9 axes, will still steadily step into these 6 pits).
The honest ceiling (don't draw the user a pie in the sky): in the balance set, the judge's recall for genuine works is near 100%, the accuracy floor is 50%, and "stably pushing it below 50%" is basically impossible. Butindividual pieces often slip through(purely narrative/observational ones often fool a very sharp judge 4/6 times, while a single topical golden line gets caught). So the card's home turf ispolishing/rewriting real material the author already has, not fabricating an entire collected works out of thin air at scale.
Red flags — when they appear, it's time to get back on track
- "I read this passage myself and it seems quite similar, no need to spin up a judge again" → self-assessment doesn't count; the blind test must be done
- "Just list a few style traits and start revising" → no 9-axis template filled in, no anchors extracted = no distillation
- "This sentence in the original isn't flavorful enough, I'll add one for it" → stop; the factual skeleton must not gain or lose anything; adding material is changing the content, not the style
- "The judge says it's missing some signature move of his, so I'll add a firsthand account/numbers to make it up" → stop; if the original doesn't have this fact, you can't fabricate it; accept a 4 on that axis
- "Use all the coinages, metaphors, and subheadings and it'll look more like it" → piling it all on is clumsy imitation; see the seasoning calibration note
- "Two samples is enough" → warn the user that the fingerprint will be unstable
- "Give the AI a detailed skeleton/key points in several sentences and have it rewrite" → that's retelling the original, equivalent to cheating; Turing testing generates from scratch with only the title + 30 characters (turing-blindtest.md)
- "Use an AI-polished draft as the genuine baseline" → the human/AI boundary is blurred, and the test is wasted; you need purely handwritten genuine works
- "Blind test throws the article straight to the judge" → without stripping metadata, without erasing markdown, and without unifying blank lines between paragraphs = the judge wins on format, invalid
- "All 6 AI pieces use the same signature breakdown/ending" → batch fingerprint, the judge catches them all at once; vary it in every piece
- "Promise users it can be pushed below 50%" → the floor of the balancing scale is exactly 50%, don't promise it, just explain clearly that an individual piece can slip through
Common mistakes
| Mistake | Consequence | Fix |
|---|---|---|
| The fingerprint has only abstract rules, no anchor original sentences | When rewriting, the rules spin idle and can't capture the flavor | For each axis, force-extract 2–3 real original sentences |
| Treating content stance as style | The rewrite drifts into changing the viewpoint | The fingerprint only asks "how it is written" |
| Skipping the judge blind test | Slips back into mediocre AI-speak without knowing it | The judge must be used, blind and independent |
| Adding or deleting material while rewriting | The original meaning is changed | First extract the factual skeleton; rewriting neither adds nor removes |
| Signature moves piled up everywhere | Clumsy imitation | Short content gets written short; seasoning is not a formula |
| The Turing test gives the writer too much information | The AI repeats the original text; the test is pointless | Give only the title + a central idea of ≤30 characters; write from scratch |
| The blind test does not normalize formatting | The judge wins on format rather than style | Strip metadata + erase markdown + unify blank lines between paragraphs |
| A batch of AI pieces with the same signature moves | The batch fingerprint is caught all at once | Vary the breakdown/ending in each piece; align the prototype with the genuine work |
| The AI insists on elevating and stating the theme at the end | Landing a "transferable golden line" is what most attracts the judge | Pure narrative without stating the theme; the ending disperses and does not close the loop |