| name | natural-writing |
| description | Rewrites prose so it reads as if a human wrote it â stripping out LLM tells in both English and Japanese. Use whenever producing user-visible writing of any kind: documentation, README, markdown, blog posts, commit messages, PR descriptions, GitHub Issues, code-review comments, code comments and docstrings, replies in issue threads, professional or casual emails, Slack/Discord/chat messages, release notes, design docs, academic-style writeups and è«æ. Use it even when the user did not ask for "natural" prose â any drafted text leaving Claude that a human will read should pass through this checklist first. Triggers include: any request to "write", "draft", "compose", "summarize", "explain", "describe", "review", "comment", "reply", or ãæžããŠããæç« äœã£ãŠãããŸãšããŠããã¡ãŒã«äœã£ãŠããè¿ä¿¡ããŠããPR/Issueã®èª¬ææžããŠã. Do NOT use for: pure code generation with no prose, raw data transformations, or terse tool output. |
Natural Writing
Strip LLM tells from any prose before it leaves the model. Two languages, many domains, one checklist.
When this runs
Pass any drafted prose through the Universal pass first. Then add the language pass for the language(s) used. Then add the domain pass that matches the output's purpose.
Apply silently. Do not narrate "I removed the em-dashes." Just produce the cleaner draft.
Rewrite vs review. Default mode is rewrite: fix the draft and return the cleaner version. If the user asks to review / critique / ãã¬ãã¥ãŒããŠããAIèããã§ãã¯ããŠã without rewriting, switch modes â don't silently edit. Score the draft on five axes 1â10 (stance / rhythm / agency / specificity / reduction), call out the two or three weakest with line or sentence references, and let the user decide what to change.
Why these patterns matter
LLM prose has a statistical fingerprint: high-probability words, uniform sentence length, balanced concessions, signposted structure, and tone that stays flat across the whole piece. None of these are "wrong" individually â clustering is the tell. Three or more in 300 words and a reader senses something is off, even if they can't name it. The goal is not to disguise an LLM but to write the way the user actually writes: specific, uneven, willing to be partial.
Two statistical concepts are useful to internalize:
- Burstiness: human sentence lengths vary wildly (3 words next to 38 words). LLM defaults compress to a narrow band. Aim for visible variance.
- Perplexity: humans use unexpected word choices; LLMs reach for the most-probable next token. When the third-most-likely word is the right word, use it.
But the deepest tell isn't lexical at all â it's the absence of a writer. LLM prose hedges every claim, balances every side, and never says anything a reader could disagree with, so no person seems to stand behind it. Vocabulary, rhythm, and punctuation fixes clean the surface; they don't supply a stance. A paragraph with zero banned words still reads as machine if it asserts nothing falsifiable, commits to no position, and could open any article on the topic. Fix the stance first; the word-level passes come after.
Note that model fingerprints differ. Claude tends to over-hedge ("I have to be honest," "I want to be careful here") and over-balance arguments; GPT-family tends to sycophant openers and rule-of-three; Gemini tends to emphatic affirmations and pseudo-empathy. Watch for the one you're producing.
Universal pass (always)
Stance (for any writing that makes a claim)
Applies to opinion, analysis, blog, design rationale, the "why" of a PR â not to pure reference (API docs, terse status). Before touching words, ask three questions:
- What am I willing to assert as true? Vague writing hedges everything. Pick the claim and state it plainly.
- Could a reader disagree? A claim no one could contest carries no information. If it's unfalsifiable, it's filler â cut it or sharpen it.
- How does this differ from the generic version? If the paragraph could open any article on the topic, it hasn't said anything specific yet.
- Horoscope test. If a sentence "could have been written by anyone, for anyone" â true of any project, flattering to any reader â cut it or ground it in a specific fact, name, number, or judgment. Like a horoscope, content with no specifics reads as unedited machine output.
Commit to a position instead of "both sides have merit." Genuine partiality reads human; reflexive balance reads machine. Mixing measured language ("roughly," "in my experience this held," "I'm less sure about X") into otherwise firm claims beats both uniform confidence and uniform hedging.
Lexical
- Drop prestige nouns that add no information: tapestry, landscape, realm, mosaic, ecosystem, symphony, labyrinth, beacon, cornerstone, testament.
- Drop inflated adjectives: robust, seamless, vibrant, dynamic, transformative, groundbreaking, innovative, comprehensive, holistic, cutting-edge, paramount, pivotal, crucial, essential, key. If everything is "crucial," nothing is.
- Drop filler verbs: delve, leverage, utilize, foster, empower, elevate, navigate, illuminate, bolster, underscore, showcase, resonate. Prefer the plain verb: use, help, show, support.
- Drop vague abstractions when a concrete word will do: ãæ¬è³ªãã䟡å€ããæé©åãã驿°ã â name the specific thing.
Sentence rhythm
- Vary length. Mix 4-word sentences with 25-word ones. LLM default is metronomic 14â22 words.
- Subordinate, don't just chain (avoid parataxis). LLMs string equal short declaratives ("It does X. It does Y. It does Z."). Use subordinate clauses to show how ideas relate â cause, contrast, condition (because, although, which / ããããããããã®ã«). Syntax should encode the logical hierarchy, not flatten it into a list of equals.
- Cut signposting: "It's worth noting that," "When it comes to," "At its core," "In today's [adjective] world," "Let's unpack this."
- Cut the negated contrast tic: "It's not X â it's Y." Variants are equally dead: "This isn't a job, it's a calling," "This isn't a tool, it's a paradigm shift," "Not just X, but also Y." Cognitive cost too: readers process the negated concept first. Use direct affirmation instead.
- Cut tricolons ("Fast. Simple. Effective.") unless one is genuinely earned. Same for "No X. No Y. Just Z."
- Cut copula avoidance: LLMs replace plain "is/are" with "serves as, marks, represents, features, boasts, offers, stands as." Just use "is" when it's "is."
- Cut significance inflation: "pivotal moment," "marks a shift," "reflecting broader trends," "indelible mark," "stands as a testament to." Don't editorialize the importance of the thing â describe the thing.
- Cut the "Despite its X, it faces challenges" outline formula. Real obstacles are specific; this template is generic.
Structure
- No mandatory five-section essay. Short things stay short. One paragraph is a complete answer.
- No closing recap ("In conclusion," "In summary," ããŸãšãããšãããããã§ãããã). End on the last real point.
- Don't reach for bullet lists when prose flows better. Lists are for genuinely parallel items, not for visual padding.
- Don't bold a phrase in every other sentence. Bold once or twice per page, for emphasis that actually matters.
- Avoid the "Bold Header: explanatory sentence" list pattern when the items are short â write them as prose. The pattern itself reads as AI.
- Limit emoji to zero unless the user uses them. Rockets and fire icons are AI-coded. Emoji inside headings (
## ð Getting Started) is a strong tell.
- Don't synonym-shuffle to avoid repeating a word in a short passage. If "config" is the word, use "config" three times. Forced synonyms ("configuration," "settings," "setup") within one paragraph read as machine.
- Don't skip heading levels (H2 â H4). Don't apply Title Case to every heading (
## The Importance Of Testing); follow the surrounding doc's convention (usually sentence case).
Tone
- No sycophancy: cut "Great question!" "Absolutely!" ãçŽ æŽãããã質åã§ããã.
- No false balance ("while critics argue X, supporters maintain Y") unless the topic actually has balanced sides.
- No universal-truth openings ("Change is the only constant." ã人çã«ãããŠâŠã).
- Maintain mood drift: a long piece should not have identical register from paragraph 1 to paragraph 8.
Punctuation
- Em-dashes â use sparingly, for breaks, not as a default joiner. LLM prose uses them ~3Ã human baseline. Comma or period is usually fine.
- Don't pad with semicolons to look literary.
- Hyphens, parens, commas: pick the simplest that works.
- Use the punctuation the surrounding doc already uses. If the codebase uses straight quotes (
"foo"), don't introduce curly ones ("foo"). The mismatch is a tell.
Machine residue (strip before sending)
These are leftover artifacts that mark text as machine-produced regardless of how good the prose is. They are the highest-confidence tell a reader (or reviewer) can catch.
- Chatbot scaffolding â never emit conversational residue: "As an AI language model," "Certainly! Here is," "Sure, here's," "I hope this helps," "as of my last knowledge update," "knowledge cutoff," ããã¡ããã§ãïŒä»¥äžã«ããã圹ã«ç«ãŠãã°å¹žãã§ããããã«ã€ããŠèª¬æããŸããã. Output only the thing asked for. (These phrases have shown up verbatim in published papers â an instant giveaway.)
- Formatting bleed â don't leave literal markdown (
**, #, - ) when the target format isn't markdown (LaTeX, Word, plain prose, slides). Match the destination's format; don't paste chat-formatted text into a manuscript.
- Unicode artifacts â use straight quotes/apostrophes, ASCII hyphen/minus, and regular spaces. Strip curly quotes, the narrow no-break space (U+202F), zero-width space (U+200B), and em-space (U+2003) that recent models inject.
- Tortured phrases â never paraphrase a standard term into a near-synonym. Keep canonical terminology and æŒ¢èª compounds intact ("mean square error," not "mean square blunder"; ãä¹³ããã, not ãèžã®å±æ©ã). Synonym-spinning fixed terms destroys meaning and is itself an AI/spinner fingerprint.
English pass
Add to the universal pass when output is in English.
Hit-list (search for these and cut or rewrite)
- Core overused vocab: delve, intricate, multifaceted, nuanced, meticulous, commendable, surpass, foster, tapestry, realm, navigate, landscape, pivotal, resonate, testament, underscore, showcasing, compelling, paramount, unwavering, alignment, holistic, robust, seamless, leverage, utilize, myriad, plethora, scalable, synergy.
- Cliché phrases: "In today's fast-paced world," "In today's digital age," "A treasure trove," "Dive deeper," "Game-changer," "At its core," "It's worth noting that," "Ultimately," "Furthermore," "Moreover," "That being said," "Imagine a world," "Unlock the potential of," "A paradigm shift," "The intersection of," "A wealth of," "Rich cultural heritage," "Enduring legacy."
- Email-only: "I hope this email finds you well," "Please don't hesitate to reach out," "I trust this message finds you well."
- Throat-clearing openers: "Here's the thing," "Here's what's interesting," "The thing is," "It turns out," "The truth is," "The uncomfortable truth is," "Let me be clear," "The real X is," "Can we talk about." Delete and start with the point.
- Emphasis crutches: "Full stop," "Period," "Let that sink in," "Make no mistake," "This matters because," "Here's why that matters." If a sentence needs an announcement that it matters, it usually doesn't.
- Meta-commentary: "Plot twist," "Spoiler," "Hint:," "You already know this, but," "X is a feature, not a bug," and announcing your own structure ("In this section I'llâŠ"). Cut it.
- Adverb crutches: really, just, literally, genuinely, honestly, simply, actually, truly, fundamentally, inherently, inevitably. Most can be deleted with no loss; the sentence gets firmer.
- Vague declaratives: "The implications are significant," "The stakes are high," "The reasons are structural," "This is the deepest problem," "The consequences are real." State the actual implication, stake, or consequence instead.
- Note that the AI-vocab list keeps evolving â delve peaked in 2023, align with / enhance / fostering in 2024, emphasizing / highlighting in 2025+. Patterns drift but the underlying habit (statistically-favored verb + abstract object) persists; treat any vogue verb cluster with suspicion.
- Copula avoidance & -ing successors (2025+ drift): cut "serves as, stands as, marks, represents, features, boasts, underscores" used in place of plain "is." Watch the post-delve vogue cluster showcasing, highlighting, emphasizing, enhancing, leveraging and trailing -ing analysis tacked onto sentence ends ("âŠ, highlighting its importance"). Same habit, newer words.
Voice
- Prefer active voice. Passive defaults are a strong tell.
- Use contractions where natural (it's, don't, we'll). LLMs over-correct to it is, do not.
- First and second person are fine. "I think," "you'll want to," not "one might consider."
Specificity
- Replace abstract metaphors with concrete ones. Not "a tapestry of approaches" â "three methods, none of them clean."
- Name things: people, files, line numbers, dates, error messages. Generic prose is the AI tell; specifics break it.
Japanese pass (æ¥æ¬èª)
ãŠãããŒãµã«ãã¹ã«å ããŠãåºåãæ¥æ¬èªã®ãšãã«é©çšã
æäœïŒæ¬äœïŒåžžäœïŒã®éžæ â æåã«æ±ºãã
ãªãºã ãå€ããåã«ãæ¬äœïŒã§ãã»ãŸãïŒããåžžäœïŒã ã»ã§ããïŒãããæèããæ±ºå®ãããäžåºŠæ±ºãããæåŸãŸã§æãããæ··åšã¯ LLM è以åã®ææ³ã¬ãã«ã®éåæãæäœã決ããã®ãå
ããªãºã ãå€ããã®ã¯ãã®ããšã
倿æé:
-
æ¬äœïŒã§ãã»ãŸãïŒãæ¢å®:
- ããžãã¹ã¡ãŒã«ã瀟å€åãææžã顧客åãæ¡å
ãUI æèšã»ãšã©ãŒã¡ãã»ãŒãž
- READMEãå
¬åŒããã¥ã¡ã³ãããã¥ãŒããªã¢ã«ïŒç¹ã«åå¿è
åãïŒ
- PR / Issue 説ææïŒããŒã æåãåžžäœã§ãªãéãïŒ
- ããŒã ã§ã®å ±åã»è°äºé²
- æèãäžæãçžæãäžæãæ··åšæåã®å Žãšå€æããã æ¬äœãéžã¶ïŒå®å
šåŽïŒ
-
åžžäœïŒã ã»ã§ããïŒãé©å:
- åŠè¡è«æã»åŠäœè«æïŒåŠäŒã®æ
£ç¿ãšããŠïŒ
- å人ããã°ã»ãšãã»ã€ã§èè
ãåžžäœã䜿ãå Žå
- 瀟å
Wiki ã®æè¡ããŒããèšèšã¡ã¢ãADRïŒããŒã æå次第ïŒ
- æžç±ã»éèªèšäºã®å°ã®æ
- ã¡ã¢ãèµ°ãæžããã³ãããã¡ãã»ãŒãžæ¬æïŒçãèšãåãå Žé¢ïŒ
-
ãã£ãã: å£èªã»äœèšæ¢ãã»çãæçãäžå¿ã§ãæ¬äœ/åžžäœã®å€æã¯ããããåœãŠã¯ãŸããªãããšãå€ããçžæã®ããŒã³ã«åãããã
ãŠãŒã¶ãŒãæç€ºçã«ãã ã»ã§ãã調ã§ããŸãã¯ãã§ããŸã調ã§ããšæå®ããå Žåã¯ãããæåªå
ãæå®ããªããµã³ãã«æïŒæ¢åã®åšèŸºææžãéå»ã®ã¡ãŒã«ãããã°ã®ä»èšäºãªã©ïŒãããã°ããããšåãããã
èªåœ
- ã«ã¿ã«ãèªã®å€çšãããã: ãã€ã³ãµã€ãããã¢ãŠããããããã¹ã±ãŒã©ããªãã£ããã³ãããããã¿ã¹ã¯ããªã©ãåèªã»æŒ¢èªã§çŽ çŽã«æžããå Žé¢ã§ã¯ãã¡ããåªå
ãåæãæè¡çšèªãšããŠå¿
èŠãªå Žåã®ã¿æ®ãã
- æœè±¡èªãå
·äœå: ãæ¬è³ªçããæé©åãã䟡å€ãæäŸãã驿°çããéèŠãªãã€ã³ããâ å
·äœçã«äœãã»ã©ãã»ãªããæžãã
- æ¯å©ã®ã¯ãªã·ã§ãé¿ãã: ãåå°ããæ±ããçŸ
éç€ããDNAãããšã³ãžã³ããã¹ãã€ã¹ããæ é€ããèšèšå³ããå°å³ããæ¯å©ã䜿ããªãé³è
ã§ãªããã®ãéžã¶ã
- ã«ãžã¥ã¢ã«ãªæŽåã»æ¬äººåã®èªåŒµæ¯å©ãé¿ãã(äžã®æã¡äžãæ¯å©ãšã¯å¥ç³»çµ±): ãæ®ºãããé£ãããæ¡ãã€ã¶ãããè¬ãããæ²é»ãããããçæ»ããå°é·ããæ²Œããæéãæº¶ãããã芪ãã¿ããããè£
ãLLMã®åãç¡çç©ãåäœäž»ã«ããæ¬äººå(ãpipefailãã¡ãããšä»äºãããã)ãåããäºå®ã§æžãã°è¶³ãã(ãset -eãæ®ºããâãset -eãç¡å¹åããããã倱æãæ¡ãã€ã¶ããâã倱æãç¡èŠããã)ã1ç·šã§1åãŸã§ãäžéã®ç®å®ã«ãã3å以äžäžŠãã ãå
šéšäºå®æåã«æ»ãã
- è©äŸ¡ã»çšåºŠå¯è©ãå£çã«ããªã: ãçŽ çŽã«ããã¡ãããšãããã¡ããšãããã£ããããããŸããããã£ãããããããšããããããããã ãããããæå€ãšããå°å³ã«ããæ®éã«ããå€ãã¯æ
å ±éãŒãã®åãèã§ãåãèªã1ç·šã§3å以äžäœ¿ããšå³åº§ã«å£çãšæ°ã¥ããããåèª1ç·š1åãäžéã®ç®å®ã«ãæ¶ããŠæå³ãå€ãããªããªãæ¶ã(ãæªå®çŸ©å€æ°ãåç
§ããã°çŽ çŽã«èœã¡ãŸããâãæªå®çŸ©å€æ°ãåç
§ãããšãšã©ãŒã§æ¢ãŸããŸãã)ããéåžžã«ãããšãŠãããæ¥µããŠããåçš®ã®åŒ·èª¿ã®åãèãé£çºããªã(å°ã®æãå
ããäœ¿ãæžãæãªãé »åºŠã ãæãã)ã
- æµè¡èªãæããŠäœ¿ããªã: ãè§£å床ïŒãé«ãïŒãäžããïŒããæè§Šãããå¶ã¿ãããã©ãã£ãããã¢ãžã§ã³ãããç«ã¡äžãããã®ãããªèªãäžç·šã«åºãããšäžæ°ã« LLM èãç«ã€ãåºããªã 1 åãŸã§ãå
·äœèªã§èšãæããããªããå
ã«æ€èšããã
- è±èªç±æ¥ã®æ¯å©ãçŽèš³ããªã: ãæèã® OS ãã¢ããããŒããããã人çãããã¯ãããããã«å
šæ¯ããããã®ãããªããã¯ã»ã©ã€ãããã¯èª¿ã®åãç©æ¯å©ãæ¥æ¬èªãšããŠçŽ çŽãªèšãæ¹ã«æ»ãã
- 空èãªåè©ãé¿ãã: ãæãäžããããæ·±æãããããèšèªåããã(äœãã©ãæžãããã瀺ããå§¿å¢ã ãè¿°ã¹ã)ããè§Šããããèšåããã(äžæ®µèœã§æžãŸããåå³ã«ããã ã)ãæ¥æ¬èªçã® delveãäœãæžããããå
·äœçã«ç€ºããããã®èªèªäœãæ¶ãã
- 空èãªåœ¢å®¹ãé¿ãã: ãæ žå¿çããæ ¹æ¬çããå€è§çããå
æ¬çããç·åçããäžèº«ã説æããã匷調ãç¶²çŸ
æã ããä»ããèªãäœãã©ãèŠããã»ãªãããèšããããæžãã
- å§¿å¢ã ãã®å®£èšãé¿ãã: ãæ£é¢ããæ±ãããæ£é¢ããååããããæ£é¢ããåãåãããäžèº«ãæžãã°å§¿å¢ã¯èªããšäŒããããæ±ãããååãããã§è¶³ããã
ææ«ã»ãªãºã
åæ: æäœïŒæ¬äœïŒåžžäœïŒã¯åé
ã§æ±ºå®æžã¿ã§ããããšã以äžã¯ éžãã æäœã®å
åŽã§ãªãºã ãå€ãã ããã®æéãæ¬äœã«åžžäœãæ··ããããåžžäœã«æ¬äœãæ··ãããããªãã
- åãèªå°Ÿã®é£ç¶ãé¿ãããæ¬äœãªãããã§ãããããŸãããããŸãããããã§ãããããããšèããŸãããäœèšæ¢ãããçå圢ïŒãã§ããããïŒããåããåžžäœãªãããã ãããã§ãããããã ããããããšæãããããããäœèšæ¢ãããåããã©ã¡ãã®å Žåãäœèšæ¢ããšçååœ¢ã¯æäœãè·šãã§äœ¿ããã
- åäžææ«ïŒäŸ: ããã§ãããããã§ãããããã§ãããïŒã 3 é£ç¶ããããå¿
ã 1 ã€ã¯å¥ã®åœ¢ã«å€ããã
- æ¥ç¶è©ãåã: ãããã«ããŸãããããã£ãŠããããŠãå ããŠããæ¯æ®µèœå
¥ããªããæå³çã«äžèŠãªãåé€ã
- æã®é·ããæããªããçæïŒ10 å以äžïŒãæã
å
¥ããŠç·©æ¥ãäœãã
- äžæ®µèœã®éãæ¹ãæ¯ååãã«ããªãïŒãããéèŠã§ãããããšèšããããããšãªããã§å
šéšçµããæç« ã¯æ©æ¢°çïŒã
æ§é ã»å®åå¥
- ããããã§ããããããã²ãããŠã¿ãŠãã ãããããã«ã€ããŠèŠãŠãããŸãããããçµè«ããèšããšãããŸãšãããšãããã€ã³ãã¯3ã€ãããŸãããæ©æ¢°çã«äœ¿ããªãã
- æãããã»æããã¶ããªç· ããä»ããªã: ãæ°ãåãããç¶ããæžããŸãããéèŠãããã°æžããŸããããã®ãã¡æžããããã仿¥ã¯ãããŸã§ããããã§ã¯ãŸãä»åºŠããã©ãããæŒåºããLLMã®å(éå°ãªç· ãã®è£è¿ã)ãèŠçŽäŸ¡å€ãç¡ããªãæ¬ææåŸã®äºå®ã§ãã®ãŸãŸçµããã
- ãããšèšããã§ãããããããšèããããŸããããããããšã倧åã§ããããããããšãéèŠã§ãããææ«ã«åå°ã§æ·»ããªãã
- ããã«ã€ããŠè§£èª¬ããŸããããã«ã€ããŠèª¬æããŸãããåé ã«æ¯å眮ããªããæ¬é¡ããå
¥ãã
- äºåã ãã®å眮ããé¿ãã: ãéèŠãªã®ã¯ãã§ããããæ¬ç« ã§ã¯ããæ±ãïŒæ¢æ±ãããããã«ä»ãªããªããã䞻匵ããã®ãŸãŸæžãã°äºåã¯èŠããªãããã ãäž»åŒµã®æ§åŒã宣èšããå眮ã(ãæšèªãšããŠèšãæããã°ããªã©)ã¯äœ¿ã£ãŠããã
- éèŠæ§ã®ç
œããåã:ããã¯æ¬ ãããŸãããããã¯äžå¯æ¬ ã§ããããã®éµãšãªããŸããããã®èŠãšãªãããããåãããŠããŸãããéèŠæ§ã䞻匵ããã®ã§ãªããå
·äœäŸã§ç€ºãã
- èŠåºããä¹±çºããªããçãåçã« H2/H3 ã䞊ã¹ãªãã
- èŠåºãã¯å
容ãåæãããã©ãã«ã«ãã(ãæŠèŠããèšå®ãããšã©ãŒãã³ããªã³ã°ã)ãç
œãã»è¬ããã»åŒã³ããã»æ¬äººåãèŠåºãã«æã¡èŸŒãŸãªã(ãããé»ã£ãŠæ®ºããããã¯æãã»ã©ããªããããã¯ã¡ãããšä»äºãããããç¥ããªããšæãããããã®çœ ã)ãåäžèšäºã§èŠåºãã®ç²åºŠãšåœåæ§åŒãæãã1ã€ã ããã£ãããŒã«ããªãã
- ç®æ¡æžããæ£æã®ä»£ããã«äœ¿ããªããå°ã®æã§æµããå
容(å®çŸ©ã®åæãæŠå¿µã®èª¬æãæé ãããŸãšã/çµããã)ã
- ã§äžŠã¹ããšåŒ·ãLLMèã«ãªãããšãã«æ«å°Ÿã®ãŸãšãããã§ãã¯ãªã¹ãåããªããç®æ¡æžãã¯æ¬åœã«äžŠåãªçãåæ(ããã±ãŒãžåã»ãã¡ã€ã«åã»éžæè¢ã»ã³ãã³ãäžèЧ)ã ãã«éããæã§æžããå
å®¹ã¯æã§æžãã1èšäºã®ç®æ¡æžãã¯å¿
èŠæå°éã«ããã
- ãã¹ããã1 / STEP 1 / ã¹ãããâ ãã®ãããªå®åãã³ããªã³ã°ãæ¯ååºããªãã
- 段èœã®æåŸã«ãéèŠã§ããããã²èŠããŠãããŸãããããšæ·»ããªãã
- éå°æ¬èªãé¿ãã: ãã確èªããã ããŸããšå¹žãã§ãããé£çºããªããå Žé¢ã«åã£ãçŽ çŽãªæ¬èªã§ã
- åãç¥èªãäºåºŠå®çŸ©ããªã: ãèªç¶èšèªåŠçïŒNLPïŒããæ¬æã§äœåºŠãååºã®ããã«å±éããªããå®çŸ©ã¯ååºäžåãåå®çŸ©ã¯ LLM çæã®å
žåç㪠giveawayã
èŠèŠèšå·
- å
šè§ã³ãã³ãïŒãã®ããšã«äžèŠãªåè§ã¹ããŒã¹ãå
¥ããªãã
- ææ«ãã³ãã³ãïŒãã§çµããŠç®æ¡æžããå°ããªãïŒã以äžã®éãã§ãïŒãïŒãè±èªæŽåœ¢ã®çŽèš³çãªãŒã¯ãæ¥æ¬èªã§ã¯ã以äžã®ãšãããããšå¥ç¹ã§åãããæãç¶ããã
- ã倪åããå€çšããªããåæã®å€ªåã¯è±æããç®ç«ã€ãèªå¥åäœã®æ©æ¢°çããŒãã³ã°(ãæåŸã®ã³ãã³ããã颿°å
šäœã)ã¯çŠæ¢ã匷調ã¯1ã»ã¯ã·ã§ã³æå€§1ç®æã»1èšäºæå€§3ç®æãŸã§ãç®å®ã«ãååãŒããçããéèŠåºŠã¯å€ªåã§ãªãæã®é åºãšçãèšãåãã§ç€ºããã³ãŒãã»ã³ãã³ãåã®
ã€ã³ã©ã€ã³ã³ãŒãã¯åŒ·èª¿ã§ã¯ãªãã®ã§äžéã«æ°ããªãã
- ãïŒãã«ãã宿ãªäžŠåïŒãã¡ãªããïŒãã¡ãªããããæ¯å䜿ãçïŒãé¿ããã
- åŒçšç¬Šãããšãããæ··ããªããå¿
èŠãªäœ¿ãåãã ãã
äžèº«
- äžäººç§°ã»äœéšã»äž»èгãèš±ã: ãå®éã«è©Šããããã ã£ãããå人çã«ã¯ããæããããªã©äººéå³ã®æ··å
¥ã¯ OKïŒãã ãåã®äœéšã¯æé ããªãïŒã
- ç䌌äœéšã§èŠªè¿æãæŒåºããªã(æé çŠæ¢): æžãæãå®éã«äœéšããäºå®ãšããŠäžããŠããªãéããäžäººç§°ã®äœéšè«ã»ææ
ãçºæããªã(ãèªåãäžåºŠããã£ãããæåã¯æžæã£ãããäœåºŠãçãç®ãèŠããããããããã¡ã§ãã)ãäžè¬è«ã§æžãããªãäžè¬è«ã§(ãåèŠã§åŒã£ããããããã)ãèªè
ãžã®å
±æã®æŒãä»ã(ãããããŸãããããçµéšãããŸãããã)ãé¿ãããããã¯LLMã®æé ã§ããäºå®æ§ãæãªããæžãæãäœéšãçŽ æãšããŠæç€ºããå Žåã®ã¿ããã®ç¯å²ã§äžäººç§°ã䜿ãã
- äž¡è«äœµèšã®äºãªãã䞻矩ãããã: ãã¡ãªãããããã°ãã¡ãªããããããŸããã ãã§çµãããããã©ã¡ããã«èžã¿èŸŒãã
- çµè«ãã¡ãŒã¹ãåã®è¡šé¢æ§: çµè«ãåé ã«çœ®ããªãããã®åŸã«å¿
ãå
·äœäŸã»æ ¹æ ã»å蚌ãç¶ããã
- ãããžãæ©æ¢°çã«æå®ãžå€ããªãïŒde-hedging ã®è¡ãéããé²ãã¬ãŒãïŒ: ããããããªãããã ããããããã ãããããããåã£ãŠããã®ã¯ãæ ¹æ ãªã䞻匵ã匱ããŠãããšãã ããäºå®æªç¢ºèªã®å¯èœæ§ããã°ã»ããŒã¿ããã®æšå®ãäœäžäººç©ãèªè
ãæ±ããããªèªèã»ç念ãåå®ä»®æ³ã衚ããããžã¯ä¿æãããæå®ã«çŽããã®ã¯æ¬æå
ã®æ ¹æ ã§åœé¡ã確å®ããŠããå Žåã«éãã(æªãäŸ:ãæç€ºãç¶ããŠãããããããªããâãæç€ºãç¶ããŠããããè¯ãäŸ:ãæç€ºãç¶ããŠããå¯èœæ§ãããããšäžç¢ºå®æ§ãæ®ããŠæŽãã)
- è²æ©ãèè
ã®å£°ã§æå®ããŠèªå·±ççŸããªã: ã確ãã«ããã®è²æ©ã¯äºå®ã®ç¢ºèªã«ãšã©ãããããšã§èšæ£ããå
容ãèè
ãå æãšããŠæå®ãããšççŸããã衚é¢çãªèšºæãäžåºŠã ãèªããããšãã¯ãèªè
ãé説ã®å£°ã«åž°å±ããã(ãããšèŠçŽã§ããŠããŸããããããªãã)ã
翻蚳調 (translationese)
LLM ã¯å
éšçã«è±èªã§èããŠããæ¥æ¬èªã«åºåãããããè±æçŽèš³çãªæ§æãæ··å
¥ãããããããã¯ãã«ã¿ã«ãèªãå€ãããšã¯å¥è»žã®åé¡ã
- åé·ãªå¯èœè¡šçŸãçž®ãã: ãèšå®ããããšãã§ããŸããâãèšå®ã§ããŸãããã確èªãè¡ãå¿
èŠããããŸããâã確èªããŠãã ãããããå®è¡ããããšãå¯èœã§ããâãå®è¡ã§ããŸãããLLM 㯠can / be able to ãçŽèš³ããã¡ã
- äžèŠãªäž»èªãèœãšã: ãããªãã¯ãã®ã³ãã³ããå®è¡ããŠãã ãããâããã®ã³ãã³ããå®è¡ããŠãã ãããããç§ãã¡ã¯ãã®èšèšãæ¡çšãããâããã®èšèšãæ¡çšããããç·ç§°ã® you / we / one / they ã¯ååã«ããã
- 代åè©ãæ¶ã: ã圌ã¯åœŒã®éµã圌ã®ãã±ããã«å
¥ãããã®ãããªææä»£åè©ã®é£çºã¯è±èªçŽèš³ã®å
žåãæ¥æ¬èªã¯æèã§çç¥ããããããããããããã圌ãããåæ§ãæ¬åœã«å¿
èŠãªãšãã ãæ®ãã
- ç¡çç©äž»èªãå¯è©å: "The script enables users toâŠ" ããã¹ã¯ãªããã¯ãŠãŒã¶ãŒããããããšãå¯èœã«ããããšçŽèš³ããªããããã®ã¹ã¯ãªããã䜿ãã°ãã§ããããã¹ã¯ãªããã§ãã§ãããã
- äžæãçãåã: é¢ä¿ä»£åè©ãåè©æ§æãå
šéš 1 æã«è©°ããªããããã§ãã X ããããšããæ§è³ªãæã¡ããã®å Žé¢ã§äœ¿ãããâŠããšç¶ãããæãåããã
- ãã«ãããŠããã«é¢ããããã«å¯ŸããŠãã®æ©æ¢°çå€çš: "in," "about," "for," "regarding" ã®å®æãªèš³ããèšå®ã«ãããŠéèŠãâãèšå®ã§éèŠãããPython ã«é¢ãã質åãâãPython ã®è³ªåãã
- èš³èªã®çãçã: ãæäŸããã(provide/offer)ããå«ãã(include/contain)ããããããã(bring)ããå®å
šãªã(complete/perfect)ããè±å¯ãªã(rich)ãã察å¿ããã(support/handle) ã¯æèã«åã£ãŠãããæ¯å確èªã
- äž»éšãšè¿°éšãè¿ã¥ãã: 修食ç¯ã§äž»èªãšåè©ãé ãé¢ããæã¯èªã¿ã«ãããé·ã修食ã¯å¥ã®æã«ç¬ç«ãããã
æžãèšèªãæåã«æ±ºãããè±èªã§äžæžã â æ©æ¢°ç¿»èš³ããæ¢å®ã«ããªãã翻蚳調㯠draft-then-translate ã§æãæ¿ããªããæ¥æ¬èªã§åºããªãæåããæ¥æ¬èªã§èããŠæžãã
翻蚳ãã©ããå°çšã®æçµãã¹ïŒè±èªèçš¿ãæ¥æ¬èªåããå Žåã®ã¿è¿œå ã§é©çšïŒ:
- ååæ
ãèœåã«æ»ãïŒã蚺å¯ããããâã蚺å¯ãåãããïŒãè±èªã®ååããã®ãŸãŸèš³ããªãã
- ç¡çç©äž»èªãå¯è©ç¯åïŒãæé²ã¯YãåŒãèµ·ãããâãXã«æããããšYãçãããïŒã
- äœèšãªä»£åè©ã»æææ Œã»æç€ºèªãåãïŒtheir/its ã®æ©æ¢°èš³ãããã®ããããããã®æ¿«çšïŒã
- åè€ã®ç¡çãªèš³ãåãããããã
- ä»äžãã«æ¥æ¬èªã ãã§é³èªããåæãèŠãã«çŽèš³èãæ®ãç®æãçŽãã
Domain passes
Apply on top of universal + language. Pick the one that matches the output.
Email / ã¡ãŒã«
English
- Skip "I hope this email finds you well" and its cousins. Start with the actual reason for the email, or a one-line context tied to the prior thread.
- Skip "Please don't hesitate to reach out." Closing should be the next concrete step or just Thanks, â name.
- Don't bullet-list a 3-sentence email. Prose.
- Use the recipient's name once at most. Avoid "Dear [Name], I trust this message finds you well."
æ¥æ¬èª
- æäœã¯æ¬äœïŒã§ãã»ãŸãïŒåºå®ã瀟å€ã¡ãŒã«ã§åžžäœã¯äžå¯ã瀟å
ã¡ãŒã«ã§ããçžæã»é¢ä¿æ§ã»å
æ¹ã®æäœãäžåãäžå¯§ãã§æããã
- åé ã®ããäžè©±ã«ãªã£ãŠãããŸããã¯ç€Ÿå€ã¡ãŒã«ã®æ
£ç¿ã§å¿
èŠã ãããã®åŸã«æå³ã®ãªãäžå¯§ãªå眮ããéããªãïŒãæ¥é ããæ Œå¥ã®ãé«é
ãè³ãâŠããåé·ã«ç©ã¿äžããªãïŒã
- çšä»¶ã 2â3 è¡ã§å
ã«æžãã説æã¯åŸã
- ãäœåãããããé¡ãç³ãäžããŸãããæ©æ¢°çã«éãã«çœ®ãåã«ã次ã®ã¢ã¯ã·ã§ã³ãæç€ºãããŠããã確èªã
- ç®æ¡æžãã§åããªããçãã¡ãŒã«ã¯æ®éã®æã§æžãã
Pull Request / Issue 説ææ
- ãã³ãã¬ãŒãã«åŸãã€ã€ãããã³ãã¬ãŒãã®èŠåºããæ©æ¢°çã«åããªãã該åœããªãã»ã¯ã·ã§ã³ïŒäŸ: ãã¹ããç¡ã倿Žã§
## Test plan ããN/Aããšæžããªããã»ã¯ã·ã§ã³ããšçç¥ããŠããïŒã
- ã## Summaryãã«åãå
容ã 3 åéã衚çŸã§æžããªãã1 åã§æžãã
- ãªããã®å€æŽãå¿
èŠãïŒåæ©ã»åå ã»ãã±ããïŒããäœãå€ãããïŒdiff ã®èšãæãïŒããå
ã«æžããdiff ã¯èªãã°åããã
- å¯äœçšã»æ¢ç¥ã®å¶çŽã»æ®ã¿ã¹ã¯ãæ£çŽã«æžãããfully testedããall edge cases handledããproduction-readyãã®ãã㪠hyperbolic 衚çŸãé¿ãããå®éã«èµ°ããããã¹ãåãæããããå Žåã®ã¿ããã¹ãæžã¿ããšæžãã
- å®åã®å眮ã (ãThis PR introducesâŠããæ¬PRã§ã¯ããå°å
¥ããŸãã) ãšå®£äŒå£èª¿ã»çµµæåèŠåºãã䜿ããªããç®æ¡æžãã®æ°Žå¢ããããªããèªåã®èšèã§å倿Žã説æã§ããç¯å²ã«çããã
- æ¥æ¬èª PR/Issue ã®æäœ: ããŒã ã®æ¢å PR ã®æäœã«å¿
ãåãããããªããžããªã確èªããŠæ¢åã® PR ãåžžäœïŒãããä¿®æ£ããããšãããäœèšæ¢ãäžå¿ïŒãªãåžžäœãæ¬äœïŒãããä¿®æ£ããŸãããïŒãªãæ¬äœãå€å¥äžèœãªãæ¬äœãã察å¿ããŸããããä¿®æ£ããããŸããããå
šæã§ç¹°ãè¿ããªãïŒæ¬äœã§ããä¿®æ£ãã远å ããšäœèšæ¢ãã«åãã®ã¯å¯ïŒã
Code review ã³ã¡ã³ã / ã¬ãã¥ãŒè¿ä¿¡
- è¡ã»ãã¡ã€ã«ã»é¢æ°åãå
·äœçã«åŒãããI noticed that this could be improvedãã ãã®ã³ã¡ã³ã㯠AI çã
- ãããžãæžãã: "Consider perhaps maybeâŠ" ãããããããããã°ãããŠããããããããŸãããã®éãæããããããææ¡ãªãææ¡ããããã«ãŒãªããããã«ãŒãšã¯ã£ããæžãã
- 質åãšææ¡ãåããã"Why this approach?" ã¯è³ªåã"Use X instead" ã¯ææ¡ãLLM ã¯äž¡è
ãæ··ããŠææ§ã«ããã¡ãæå³ãæç€ºãã: blocker / nit / 質å / ææ¡ (Conventional Comments)ãã©ãããããã«ãŒãèšãã
- åã³ã¡ã³ãã¯å
·äœçãã€å®è¡å¯èœã«ã該åœè¡ã瀺ããä¿®æ£æ¡ãæ¬ç©ã®è³ªåãåºãããå¯èªæ§ã®ãããªãã¡ã¯ã¿ãªã³ã°ãæ€èšããŠãã ãããã®ãããªææ§ã§è¡åäžèœãªã³ã¡ã³ããæžããªããã³ãŒãã®åäœãèšãæããªãã
- nit ã®çŸ
åã»å£æã¡ãããªããæ¬åœã«çŽãã¹ãç¹ã«çµããæ¢ç¥ã®ææã¯1åã§å
šéšåºã (å°åºãã«ããªã)ãææ©çãªã念ã®ããããåãã
- 確信床ãäžèº«ã«åããããæšæž¬ã確å®äºå®ãšåãæå®å£èª¿ã§æžããªããäžç¢ºããªãäžç¢ºããšæç€ºããã
- "Great work!" ããç²ãããŸã§ããçŽ æŽãããã§ãããã§å§ããªããæ¬é¡ããå
¥ããè€ãããªãå
·äœçãªç¹ãè€ãã (è€ãèšèã®ãµã³ãã€ããã«ããªã)ã
Commit message
LLM ã³ãããã®æå€§ã®ç㯠diff ãæ£æã§èšãæããã ã(diff ãèŠãã°åãããäœãããæžããèŠç¯ãèŠæ±ããããªãããèœãšã)ãè¯ãã¡ãã»ãŒãžã¯åœä»€æ³ã®ä»¶å + å¿
èŠãªãšãã ãããªãããæžãæ¬æ (cbea.ms / Tim Pope / Conventional Commits)ã
- åœä»€æ³ã»çŸåšåœ¢ããAdd Xãã§ãã£ãŠãAdded/Adds Xãã§ã¯ãªãã
This commit/change/PR ⊠ã§å§ããªã (ä»¶åã»æ¬æãšã)ã
- ä»¶åã¯ç°¡æœ (è±èª ~50åç®å®ã»æå€§72)ãæ«å°Ÿããªãªããªããæ¬æãä»ãããªãä»¶åãšã®éã«ç©ºè¡ã
- diff ã®èšãæããæžããªããæ¬æã¯ããªãå¿
èŠãã»å€æã»ãã¬ãŒããªãããæžãã倿Žãã¡ã€ã«ã倿Žè¡ãåæããªã (
git diff --stat ã§åããããšã¯æžããªã)ã
feat: improve user experience ã®ãããªäžèº«ãŒãã®åè©ãé¿ããããupdate Xããimprove Yããrefactor Zããfix issuesãã ãã®1è¡ã¯ AI çãåè© + 察象 + çç±/广ã
- 倿Žã®å€§ããã«åãããã1ãæ°è¡ã® diff ã«è€æ°æ®µèœã®æ¬æãä»ããªããäºçްãªå€æŽã¯ä»¶åã®ã¿ã
- çæãã¬ãŒã©ãŒãä»ããªã:
Co-Authored-By(AI)ãGenerated with âŠãAssisted-by: <AI>ã
- çµµæåã¯äœ¿ããªã (ãªããžããªã®æ¢åå±¥æŽã䜿ã£ãŠããå Žåã®ã¿)ã
- Conventional Commits ã¯ãªããžããªãæ¢ã«äœ¿ã£ãŠããå Žåã ãèžè¥²ãã
type ã¯æå³çã«æ£ãããã®ãéžã¶ (äºçްãªå€æŽã feat/fix ã«æŒã蟌ãŸãªããscope ã®æé ãããªã)ã
- æ¬æãæ©æ¢°çã«ç®æ¡æžãã«ããªãã1段èœã§æžããªã段èœã§ã
- æ¥æ¬èªã³ããã: ä»¶åã¯åžžäœã»äœèšæ¢ã (ã§ãã»ãŸã調ã«ããªãããããä¿®æ£ããŸãããé£çºã¯ AI/åå¿è
ã®å
žå)ãConventional Commits ã®
type: ã¯è±èªã®ãŸãŸãæ¬æãæ¥æ¬èªã«ãäžèº«ã®ãªãèª (å¯Ÿå¿ / æ¹å / æé©å / åŸ®ä¿®æ£ / ãããã / äžæŠã³ããã) ãé¿ãããè±æ¥ã® register ãæ··ããªãã
Slack / Discord / ãã£ãã
- 段èœã®æ¹è¡ãäžå¯§ãªæ¬èªãæã¡èŸŒãŸãªããçããå£èªã§ã
- ç®æ¡æžãã«ããåã«ãæ¬åœã«äžŠåã確èªãäŒè©±ã®éäžã§
### èŠåºã ã¯äžèŠã
- çµµæåã¯çžæã®äœ¿çšé »åºŠã«åãããããŒã vs é£çºã®äž¡æ¥µãé¿ããã
Conversational reply / è¿ä¿¡ã»åçãã®ãã®
When drafting a reply (in a chat, an email thread, an issue comment, a code-review response) the LLM's own conversational tics tend to leak through. Watch for these and cut them:
- Pseudo-empathy openers the user did not ask for: "I completely understand your concern," "That makes total sense," ããæ°æã¡ããåãããŸããããæžå¿µã¯ããã£ãšãã§ãã. Just answer.
- Performative honesty hedges: "I have to be honest with you," "To be completely candid," "I want to be careful here," ãæ£çŽã«ç³ãäžãããšããççŽã«èšãã°ã â used as a tic, not because honesty is actually in tension with the answer. If you're not about to say something uncomfortable, don't preface.
- Reflexive agreement: "You're absolutely right," "Great point," "Excellent question," ãçŽ æŽããããææã§ããããã£ãããéãã§ãã. Especially bad when followed by a contradiction ("You're absolutely right â actually, no, X is wrong"). Drop both halves; just engage with the substance.
- Apology padding: "I apologize for the confusion," "Sorry for any inconvenience," ããè¿·æããããããŠç³ãèš³ãããŸããã â appropriate when you actually did cause a problem, mechanical when you didn't. Don't apologize for things that weren't errors.
- Confirm-and-restate: starting the reply by paraphrasing the question back ("So you're asking whether XâŠ"). Skip it unless disambiguation is genuinely needed.
- "Let me know ifâŠ" closers: "Let me know if you have any other questions!" "Feel free to ask if anything is unclear," ãäœããäžæç¹ãããã°ãç¥ãããã ããã â stop adding these by default. End on the actual answer.
Documentation / README / blog
- 5 æ®µèœæ§æ (intro â 3 body â recap) ãåå°çã«äœããªããå¿
èŠãªç¯ã ãæžãã
- "Conclusion" / ããŸãšããã»ã¯ã·ã§ã³ã¯ãæ¬åœã«èŠçŽäŸ¡å€ããããšãã ããçãèšäºã«ã¯äžèŠã
- ã³ãŒãäŸã¯æå°åçŸã«ãããè£
食ç㪠import ã䜿ããªãåŒæ°ãå
¥ããªãã
- èŠåºãéå±€ã¯å®éã®æ§é ã«åããããH2 ã 7 å䞊ã¹ãããã®èŠåºããäœããªãã
- æ¥æ¬èªã®æäœ: READMEã»å
¬åŒããã¥ã¡ã³ãã»ãã¥ãŒããªã¢ã«ã¯åå æ¬äœãããã°ã¯èè
ã®æ
£ç¿ã«åãããïŒæ¢åèšäºãããã°å¿
ãåãããïŒãæå®ãªãã§äžããããã°ãæžãå Žåãæè¡çãªè§£èª¬èšäºã¯ã©ã¡ããå¯ã ããè¿·ã£ããæ¬äœãéžã¶æ¹ãå®å
šïŒèªè
å±€ãåºãïŒãåãèšäºå
ã§æ··åšãããªãã
Titles / headlines / èŠåºãã»ã¿ã€ãã«
- Avoid the SEO-bait formulas: "The Ultimate Guide to X," "A Comprehensive Guide to X," "How to Master X in N Steps," "X 101: Everything You Need to Know," "Why X Matters in 2026."
- Avoid the colon-subtitle reflex: "Building Systems: A Modern Approach," "React Hooks: A Deep Dive." Use it when the colon actually adds info, not as default formatting.
- Japanese èŠåºã: ããã®å®å
šã¬ã€ããããã培åºè§£èª¬ããåå¿è
ã§ããããããããä¿åçãããããã®ãã¹ãŠããæ©æ¢°çã«åºããªãã
- æå®ã»æ Œèšèª¿ã®ç
œãèŠåºããåè©å¥ã«æ»ã: ããããã¯ãã¯äœçœã倱ã£ãç¬éã«æ»ã¬ãã®ãããªæ Œèšã¿ã€ãã«ã¯ AI ãåœã®æš©åšä»ãã§å¥œãåããäœçœãšãããã¯ãèšèšãã®ããã«äž»åŒµãæããåè©å¥ã«ããèšãããäž»åŒµã¯æ¬æã§ç€ºãã
- A good title is specific and falsifiable. "How we cut p99 latency from 800ms to 120ms" beats "Optimizing Performance: A Complete Guide."
API documentation / docstrings / ã³ã¡ã³ã
- Don't restate the signature in prose.
def parse_url(url: str) -> URL doesn't need a docstring saying "This function parses a URL string and returns a URL object." That's the signature.
- Skip the "This function âŠ" / "This method âŠ" preamble. Start with the verb: "Parses a Slack-formatted URL."
- Document the non-obvious: failure modes, units, side effects, edge cases the caller can't see. Skip the obvious: that
x: int is an int.
- Don't bullet every parameter when half are self-explanatory. Mention the surprising ones.
- æ¥æ¬èªã³ã¡ã³ã: ããã®é¢æ°ã¯ããã颿°ã§ããã®ãããªéè€èª¬æãããªããåè©ããå§ãã (ãããè¿ãããããè§£æããã)ããäžèšã®éããã以äžã®åŠçãè¡ããã®ãããªåé·ãªæ¥ç¶ãåãã
- Avoid the AI-generated
// Returns the result style comment that adds nothing. If the comment doesn't tell the reader something the code doesn't, delete it.
- Don't restate the code (the #1 LLM comment tell). Delete any comment derivable from the line it sits on:
i++ // increment i, # loop over items above a for, return x // return x. (Ousterhout: "if you can write the comment by reading the code, it's a bad comment.")
- Don't reword the identifier. A comment on
getUser() saying "gets the user", or on is_valid saying "checks if valid", adds nothing. Rename for clarity instead of commenting; don't rescue a bad name with a comment.
- Comment WHY, not WHAT. Keep comments that explain rationale, a non-obvious choice ("why B not A"), edge cases, units, invariants, side effects, ordering/concurrency assumptions, or link a bug/spec. Cut play-by-play narration of straight-line code.
- No chatty narration leaking from chat: "Here's theâŠ", "Note that weâŠ", "As you can seeâŠ", "First, we⊠Then, weâŠ" / ããŸããããæ¬¡ã«ãããã.
- No mechanical banner/divider comments (
// ===== Helpers =====, # ----------) added with no organizing value.
- No boilerplate TODOs (
// TODO: implement, # TODO: add error handling). Make them specific (what/why/who) or drop them.
- No fabricated behavior. Every claim in a comment/docstring must be verifiable against the code â never describe params, returns, exceptions, or behavior the code doesn't have. Don't let a comment contradict or lag the code.
è«æ / åŠè¡çãªæç« (academic writing)
åŠè¡æç« 㯠LLM èãèªã¿æ (æ»èªè
ã»ç·šéè
ã»ä»ç ç©¶è
) ã«åŒ·ãæ€åºãããé åãPubMed ã®çžŠæç ç©¶ã§ 2022 幎以éã«æ¥å¢ããèªåœãåå®ãããŠããããããã¯çŸåšãChatGPT ã䜿ã£ããã·ã°ãã«ãšããŠæ©èœããã
æžãåºã
- ã¢ãã¹ãã©ã¯ããš introduction ã®åé ã« universal-generic ãªæžãåºãã眮ããªã: "In recent years, X has gained significant attention," "With the rapid development of X," ãè¿å¹Žãããæ³šç®ãéããŠãããããã®éèŠæ§ã¯ãŸããŸãé«ãŸã£ãŠããããæåã® 1 æã§å
·äœçãªåé¡ã»ã®ã£ããã»çºèŠãè¿°ã¹ãã
- "A growing body of research has shownâŠ" "It is well known thatâŠ" "It has been widely recognized thatâŠ" ãå€çšããªãã代ããã«å
·äœçãªå
è¡ç ç©¶ãåŒããŠäºå®ãè¿°ã¹ãã
åè©ã®ããããªã¹ã (cut or replace with plain verbs)
delve, elucidate, embark, emerge, employ, encompass, endeavor, enhance, explore, facilitate, foster, garner, grapple, harness, illuminate, integrate, interplay, juxtapose, leverage, navigate, necessitate, outperform, revolutionize, scrutinize, showcase, surpass, transcend, transform, underscore, unearth, unveil, boast, bolster, catalyze, fortify
圢容è©ã®ããããªã¹ã
comprehensive, exhaustive, holistic, multifaceted, nuanced, intricate, meticulous, intriguing, noteworthy, novel, groundbreaking, innovative, ingenious, pivotal, paramount, robust, versatile, well-rounded, actionable, invaluable, transformative
å¯è©ã®ããããªã¹ã
notably, particularly, primarily, predominantly, profoundly, seamlessly, effectively, effortlessly, methodically, thoroughly, ultimately, undoubtedly, compellingly
åè©ã®ããããªã¹ã
landscape, realm, ecosystem, tapestry, testament, journey, milestone, foundation, essence, insight, intricacy, prowess, advancement â ããã³å®åå¥ deep dive, driving force, game changer, shed light on, vital role, knowledge gap
äž»åŒµã»æ°èŠæ§ã®æžãæ¹
- "We propose a novel framework" ãåå°ã§æžããªããäœãæ°ããã (æ¢åã®äœãšéãã) ã 1 æã§å
·äœçã«ã
- "To the best of our knowledge, this is the firstâŠ" ãåé·ã«ç©ãŸãªããäºå®ãªã 1 åã§è¶³ãããèªåŒµãªãåé€ã
- é床ãªãããžã³ã° ("may potentially possibly suggest") ãé¿ããã仮説ãªã "we hypothesize"ã芳å¯ãªã "we observe" ãšåºå¥ããã
æ§é
- ã»ã¯ã·ã§ã³æ«ã®èªå·±èŠçŽ ("In this section, we have shownâŠ" ãæ¬ç¯ã§ã¯ãã瀺ããã) ãæ¯åã€ããªããè«ççã«å¿
èŠãªæ¶ãæ©ãããå Žåã®ã¿ã
- ã»ã¯ã·ã§ã³åé ã® roadmap æ ("In this section, we firstâŠ, thenâŠ, and finallyâŠ") ã®æ©æ¢°çå埩ãé¿ããã
- äžåå²ã®èŠãããåæ ("first, second, third") ããæ¬åœã«äžŠåã§ãªãç®æã§äœ¿ããªãã
æ¥æ¬èªè«æã»è§£èª¬èšäº
- ãè峿·±ãããšã«ããç¹çãã¹ãã¯ããããã§éèŠãªã®ã¯ãã匷調èªãšããŠé£çºããªãã1 ç·šã« 1ã2 åãŸã§ã
- ãå
è¡ç ç©¶ã«ããã°ããããå ±åãããŠããããææ§ãªåŒçšã§ç¹°ãè¿ããªããèè
å (幎) ãå
·äœçã«ã
- ãæ¬ç ç©¶ã§ã¯ããææ¡ããããæ¬çš¿ã®è²¢ç®ã¯ãã§ããããç®æ¡æžãã§ 5 ã€ã䞊ã¹ãªããæ¬åœã®è²¢ç®ã«çµãã
- ååæ
ã®é£çº (ããã瀺ããããããã芳å¯ãããã) ãåãæ¿ãããèœå (ãæã
ã¯ãã瀺ãã) ãšæ··ããã
åŒçš
- åŒçšã¯å®åšã確èªãããèè
åã»å¹Žã»èªåã»DOI ãææ§ãªããåºå
žãªãã§æžããã確èªãããŸã§ä¿çã«ãããæé ã¯ããªã (ãã«ã·ããŒã·ã§ã³åŒçšã¯åŠè¡çã«èŽåœç)ã
- ããã§ãã [1, 2, 3, 4, 5]ããšæãåŒçšãæ©æ¢°çã«äžŠã¹ãªããååŒçšãåå¥ã«äœãæ¯æããããæç¢ºã«ãªãæžãæ¹ãã
Self-check before sending
確èªããã®ã¯æ¬¡ã®é
ç®:
- æžãæã¯ããã: 䞻匵ã»åæã»æèŠãå«ãæç« ãªããåè«å¯èœãª claim ã 1 ã€ã§ããããïŒ å
šéšãããžãšäž¡è«äœµèšã§éããŠããªããïŒïŒçŽç²ãªãªãã¡ã¬ã³ã¹ææžã«ã¯äžèŠïŒ
- æœè±¡ã 1 ã€å
·äœã«: æœè±¡åè©ã inflated adjective ã 1 ãæãå
·äœçãªäºå®ã»åºæåã»æ°å€ã«çœ®ãæããïŒ
- é·ããšæ§é ã®å¿
ç¶æ§: ãã®é·ãã»ãã®èŠåºãæ°ã»ãã®ç®æ¡æžãã¯å
容äžå¿
èŠïŒ åå°ã§åºããŠããªãïŒ
- ãã³ãã¬èªã®é§é€: hit-list ã®èªå¥ïŒEnglish/æ¥æ¬èªäž¡æ¹ïŒãæ®ã£ãŠããªãïŒ "delve, leverage, navigate, robust"ããããããšãã§ããããéèŠã§ããããããã§ãããããªã©ã
- burstiness: æã®é·ããã»ãŒæã£ãŠããªããïŒ äžæ®µèœã®äžã§çæãšé·æãæ··ãã£ãŠããïŒ
- é »åºŠã«ãŠã³ã(å
šæéã): åãè©äŸ¡å¯è©(çŽ çŽ/ã¡ãããš/ãã£ãã)ã»åãæ¯å©ã»å€ªåãèšäºå
šäœã§äœååºããæ°ãã? æåäœã§ã¯åæãèªç¶ã§ããå
šæã§åçš®ãå埩ãããšLLMèãåºã(clustering rule ã¯æ®µèœåäœãããã¯èšäºåäœã®è£å®)ãå3å以äžãªãåãã
è¿·ã£ããé³èªãããé»èªã§ã¯èŠèœãšãäžèªç¶ãªãªãºã ã»åãèªå°Ÿã®é£ç¶ã»åé·ãªå¯èœè¡šçŸã¯ã声ã«åºããšäžçªã¯ããæ°ã¥ãã
å
šé
ç® OK ãªããã®ãŸãŸåºãã1 ã€ã§ãæªãããã°ãã®ç®æãçŽããå
šæãæžãçŽããªããŠããã
Clustering rule: 1 ã€ã®æ®µèœ (300 å / 50 words) ã« LLM èã®è¡šçŸã 3 ã€ä»¥äžéãŸã£ãŠããããããã ãã§èªã¿æã«éåæãäžããã3 åæªæºã«æžããã°ãåã
ã®è¡šçŸãæ®ã£ãŠããŠãèªç¶ã«èªããã
What this skill is NOT
- ããã¯ãAI æ€åºããŒã«ã欺ããããã®ã¹ãã«ã§ã¯ãªããèªã¿æãæ®éã«èªãã§éåæã®ãªãæç« ãæžãããã®ãã®ã
- humanizer ã®æå£ã䜿ããªã: å矩èªã¹ãã³ãçµ±èšçåœè£
ã®ããã®æé å
¥ãæ¿ããperplexityïŒburstiness ã®æäœããããšããã誀åã»åé·èªã®æ¿å
¥ãèšãæãã«ãŒããAI æ€åºåšãžã®æé©åããããã¯æµæ¢ããæãªãæå³ãæªããïŒACL GenAIDetect 2025ãDAMAGEãã§ humanizer ã¯å
šéå±€ã§å質å£åïŒãèªç¶ã«èªããã®ã¯äžèº«ã人éãèãæ€èšŒããããã§ãã£ãŠãæ©æ¢°ççè·¡ãé ããããã§ã¯ãªãã
- éå°è£æ£ãããªã: ãåŠè¡çã«èŠãããããã«å
ãã»å質ã«ã»é£èªåãããšãããã£ãŠ AI ããããªã誀æ€ç¥ãå¢ããïŒæ€åºåšã¯éãã€ãã£ãè±èªãå®åç㪠related work ã匷ã誀å€å®ãããLiang et al. 2023 ã§ 61.3% vs 5.1%ïŒãæ€åºã¹ã³ã¢ã¯çå®ã®èšŒæ ã§ã¯ãªããçãã®ã¯å
·äœæ§ã»å£°ã»æ£ç¢ºãã§ãã£ãŠãæ€åºåé¿ã§ã¯ãªãã
- ãŠãŒã¶ãŒã®æç€ºãäºå®ãæ²ããŠãŸã§ã人éã£ãœãããæŒåºããªããæé ãããäœéšè«ã»åã®äž»èгã¯å
¥ããªãã
- ãŠãŒã¶ãŒã LLM çãªå®å衚çŸïŒ"In conclusion" ãªã©ïŒãæç€ºçã«æ±ããå Žåã¯ããã®æç€ºãåªå
ã