patina-cli 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/.patina.default.yaml +211 -0
  2. package/CHANGELOG.md +265 -0
  3. package/LICENSE +21 -0
  4. package/README.md +319 -0
  5. package/README_JA.md +254 -0
  6. package/README_KR.md +253 -0
  7. package/README_ZH.md +254 -0
  8. package/SKILL-MAX.md +455 -0
  9. package/SKILL.md +730 -0
  10. package/assets/brand/patina-icon.svg +9 -0
  11. package/assets/brand/patina-logo.svg +17 -0
  12. package/assets/social/patina-before-after.svg +46 -0
  13. package/assets/social/patina-og.svg +31 -0
  14. package/bin/patina.js +9 -0
  15. package/core/scoring.md +657 -0
  16. package/core/standalone-prompt.md +364 -0
  17. package/core/stylometry.md +754 -0
  18. package/core/voice.md +163 -0
  19. package/docs/AUTHENTICATION.md +105 -0
  20. package/docs/AUTHENTICATION_KR.md +105 -0
  21. package/docs/BRANDING.md +37 -0
  22. package/docs/CLI.md +80 -0
  23. package/docs/COMPARISON.md +38 -0
  24. package/docs/COOKBOOK.md +173 -0
  25. package/docs/DEMO.md +40 -0
  26. package/docs/ETHICS.md +27 -0
  27. package/docs/EXAMPLES.md +130 -0
  28. package/docs/EXAMPLES_KR.md +130 -0
  29. package/docs/EXIT-CODES.md +25 -0
  30. package/docs/FAQ.md +67 -0
  31. package/docs/FAQ_KR.md +65 -0
  32. package/docs/FLAG-PARITY.md +53 -0
  33. package/docs/GLOSSARY.md +123 -0
  34. package/docs/PATTERNS-EN.md +718 -0
  35. package/docs/PATTERNS-JA.md +706 -0
  36. package/docs/PATTERNS-KO.md +707 -0
  37. package/docs/PATTERNS-ZH.md +706 -0
  38. package/docs/PATTERNS.md +22 -0
  39. package/docs/ROADMAP.md +315 -0
  40. package/docs/audits/2026-05-deep-research.md +290 -0
  41. package/docs/benchmarks/detector-comparison.json +442 -0
  42. package/docs/benchmarks/detector-comparison.md +65 -0
  43. package/docs/benchmarks/latest.json +988 -0
  44. package/docs/benchmarks/latest.md +112 -0
  45. package/docs/integrations/docker.md +19 -0
  46. package/docs/integrations/github-action.md +59 -0
  47. package/docs/integrations/pre-commit.md +77 -0
  48. package/docs/integrations/release.md +43 -0
  49. package/docs/internal/HARNESS.md +14 -0
  50. package/docs/internal/README.md +14 -0
  51. package/docs/internal/WARP.md +23 -0
  52. package/docs/research/2025-rebaseline-plan.md +89 -0
  53. package/docs/research/ai-human-metrics.md +380 -0
  54. package/docs/social/gstack-cardnews.html +236 -0
  55. package/docs/social/gstack-cardnews.md +88 -0
  56. package/docs/social/gstack-thread.md +106 -0
  57. package/docs/social/patina-launch-copy.md +227 -0
  58. package/docs/superpowers/specs/2026-04-03-meaning-preservation-design.md +299 -0
  59. package/lexicon/ai-en.md +162 -0
  60. package/lexicon/ai-ko.md +159 -0
  61. package/package.json +100 -0
  62. package/patina-max/SKILL.md +523 -0
  63. package/patina-max/composite.py +457 -0
  64. package/patterns/en-communication.md +89 -0
  65. package/patterns/en-content.md +133 -0
  66. package/patterns/en-filler.md +113 -0
  67. package/patterns/en-language.md +163 -0
  68. package/patterns/en-structure.md +173 -0
  69. package/patterns/en-style.md +139 -0
  70. package/patterns/en-viral-hook.md +211 -0
  71. package/patterns/ja-communication.md +101 -0
  72. package/patterns/ja-content.md +153 -0
  73. package/patterns/ja-filler.md +123 -0
  74. package/patterns/ja-language.md +190 -0
  75. package/patterns/ja-structure.md +142 -0
  76. package/patterns/ja-style.md +147 -0
  77. package/patterns/ja-viral-hook.md +216 -0
  78. package/patterns/ko-communication.md +98 -0
  79. package/patterns/ko-content.md +154 -0
  80. package/patterns/ko-filler.md +105 -0
  81. package/patterns/ko-language.md +182 -0
  82. package/patterns/ko-structure.md +147 -0
  83. package/patterns/ko-style.md +146 -0
  84. package/patterns/ko-viral-hook.md +211 -0
  85. package/patterns/zh-communication.md +101 -0
  86. package/patterns/zh-content.md +153 -0
  87. package/patterns/zh-filler.md +118 -0
  88. package/patterns/zh-language.md +173 -0
  89. package/patterns/zh-structure.md +145 -0
  90. package/patterns/zh-style.md +159 -0
  91. package/patterns/zh-viral-hook.md +216 -0
  92. package/profiles/academic.md +53 -0
  93. package/profiles/blog.md +81 -0
  94. package/profiles/casual-conversation.md +105 -0
  95. package/profiles/code-comment.md +104 -0
  96. package/profiles/commit-message.md +99 -0
  97. package/profiles/default.md +62 -0
  98. package/profiles/email.md +52 -0
  99. package/profiles/formal.md +98 -0
  100. package/profiles/instructional.md +80 -0
  101. package/profiles/legal.md +57 -0
  102. package/profiles/marketing.md +56 -0
  103. package/profiles/medical.md +53 -0
  104. package/profiles/narrative.md +79 -0
  105. package/profiles/release-notes.md +98 -0
  106. package/profiles/social.md +56 -0
  107. package/profiles/technical.md +53 -0
  108. package/scripts/benchmark-report.mjs +252 -0
  109. package/scripts/check-release-metadata.mjs +48 -0
  110. package/scripts/detector-comparison.mjs +267 -0
  111. package/scripts/lint.mjs +40 -0
  112. package/scripts/precommit-score.mjs +31 -0
  113. package/scripts/prose-score.mjs +186 -0
  114. package/scripts/update-benchmark-ranges.mjs +108 -0
  115. package/src/api.js +330 -0
  116. package/src/auth.js +105 -0
  117. package/src/backends/claude-cli.js +112 -0
  118. package/src/backends/codex-cli.js +121 -0
  119. package/src/backends/contract.js +21 -0
  120. package/src/backends/gemini-cli.js +135 -0
  121. package/src/backends/index.js +159 -0
  122. package/src/cache.js +106 -0
  123. package/src/cli.js +1280 -0
  124. package/src/commands/doctor.js +229 -0
  125. package/src/commands/init.js +208 -0
  126. package/src/config.js +126 -0
  127. package/src/errors.js +53 -0
  128. package/src/features/index.js +96 -0
  129. package/src/features/lexicon.js +90 -0
  130. package/src/features/segment.js +49 -0
  131. package/src/features/stylometry.js +50 -0
  132. package/src/loader.js +103 -0
  133. package/src/logger.js +70 -0
  134. package/src/manifest.js +162 -0
  135. package/src/max-mode.js +207 -0
  136. package/src/ouroboros.js +233 -0
  137. package/src/output.js +480 -0
  138. package/src/prompt-builder.js +409 -0
  139. package/src/providers.js +100 -0
  140. package/src/scoring.js +531 -0
  141. package/src/security.js +133 -0
  142. package/tests/fixtures/suspect-zones/en/ai/en-ai-01.md +16 -0
  143. package/tests/fixtures/suspect-zones/en/ai/en-ai-02.md +16 -0
  144. package/tests/fixtures/suspect-zones/en/ai/en-ai-03.md +17 -0
  145. package/tests/fixtures/suspect-zones/en/ai/en-ai-04.md +15 -0
  146. package/tests/fixtures/suspect-zones/en/ai/en-ai-05.md +16 -0
  147. package/tests/fixtures/suspect-zones/en/ai/en-ai-06-chat-register.md +16 -0
  148. package/tests/fixtures/suspect-zones/en/natural/en-nat-01.md +15 -0
  149. package/tests/fixtures/suspect-zones/en/natural/en-nat-02.md +15 -0
  150. package/tests/fixtures/suspect-zones/en/natural/en-nat-03.md +15 -0
  151. package/tests/fixtures/suspect-zones/en/natural/en-nat-04.md +15 -0
  152. package/tests/fixtures/suspect-zones/en/natural/en-nat-05.md +15 -0
  153. package/tests/fixtures/suspect-zones/expected-ranges.json +939 -0
  154. package/tests/fixtures/suspect-zones/ja/ai/ja-ai-01.md +11 -0
  155. package/tests/fixtures/suspect-zones/ja/ai/ja-ai-02.md +11 -0
  156. package/tests/fixtures/suspect-zones/ja/ai/ja-ai-03.md +11 -0
  157. package/tests/fixtures/suspect-zones/ja/natural/ja-nat-01.md +11 -0
  158. package/tests/fixtures/suspect-zones/ja/natural/ja-nat-02.md +11 -0
  159. package/tests/fixtures/suspect-zones/ja/natural/ja-nat-03.md +11 -0
  160. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-01.md +14 -0
  161. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-02.md +16 -0
  162. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-03.md +15 -0
  163. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-04.md +15 -0
  164. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-05.md +16 -0
  165. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-06-chat-register.md +16 -0
  166. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-01.md +15 -0
  167. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-02.md +15 -0
  168. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-03.md +15 -0
  169. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-04.md +14 -0
  170. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-05.md +15 -0
  171. package/tests/fixtures/suspect-zones/zh/ai/zh-ai-01.md +11 -0
  172. package/tests/fixtures/suspect-zones/zh/ai/zh-ai-02.md +11 -0
  173. package/tests/fixtures/suspect-zones/zh/ai/zh-ai-03.md +11 -0
  174. package/tests/fixtures/suspect-zones/zh/natural/zh-nat-01.md +11 -0
  175. package/tests/fixtures/suspect-zones/zh/natural/zh-nat-02.md +11 -0
  176. package/tests/fixtures/suspect-zones/zh/natural/zh-nat-03.md +11 -0
  177. package/tests/quality/README.md +121 -0
  178. package/tests/quality/benchmark.mjs +306 -0
  179. package/tests/quality/detectors.manual.example.json +31 -0
  180. package/tests/quality/dogfood.mjs +44 -0
@@ -0,0 +1,211 @@
1
+ ---
2
+ pack: en-viral-hook
3
+ language: en
4
+ name: Viral Hook Patterns
5
+ version: 1.0.0
6
+ patterns: 8
7
+ score_only: true
8
+ ---
9
+
10
+ # Viral Hook Patterns (score-only)
11
+
12
+ This pack is **score- and audit-only**. It catches "AI marketing influencer" signals — shock-number hooks, clickbait closings, source-skipping authority claims, breath-optimized short-sentence stacking, hyperbolic engagement vocabulary, fake-stat citations, stacked credentials, and future-self promises — that are common in SNS and blog marketing copy. Rewrite mode does not touch them because they may be intentional rhetoric; the user decides.
13
+
14
+ A hit here does not mean the text is AI-generated. Humans use these patterns too. But when several appear together, the score aligns with the reader's intuition that "this reads like AI-polished marketing."
15
+
16
+ ---
17
+
18
+ ### 1. Shock Numbers as Hook
19
+
20
+ **Watch words:** in just N days, only N hours, jumped from 0 to N, hit N million in N weeks, N% growth in N months, broke the N-million mark, N-figure result
21
+
22
+ **Problem:** Specific shock numbers are used as the primary impact lever. Without a verifiable source (link, screenshot, named outlet), this reads more like marketing-bot or AI-influencer copy than something a person wrote about their own experience.
23
+
24
+ **Fire condition:** A bold claim relies on a striking number (time-to-X, scale, percentage) and the same piece offers no source or verification path.
25
+
26
+ **Exclusion:**
27
+ - First-person reports of personal numbers ("my salary is $4,000")
28
+ - Idioms ("a million times")
29
+ - Common-knowledge statistics that are independently verifiable
30
+
31
+ **Semantic Risk:** LOW — score-only, not rewritten.
32
+ **Detection examples:**
33
+ > 250K stars in just 60 days.
34
+
35
+ > $100M revenue with zero ad spend.
36
+
37
+ ---
38
+
39
+ ### 2. Clickbait Mystery Close
40
+
41
+ **Watch words:** what makes them tick, why is everyone, you'll never guess, can you believe, the reason might surprise you, here's why
42
+
43
+ **Problem:** The piece ends on an unresolved rhetorical question or teaser to drive clicks, follows, and comments instead of delivering information. AI-generated viral copy almost never skips this closing pattern.
44
+
45
+ **Fire condition:** The **last sentence** of the piece is a rhetorical question that the body has not answered, or a teaser that explicitly redirects the reader to engagement (subscribe, follow, save).
46
+
47
+ **Exclusion:**
48
+ - Genuine questions that lead into a follow-up paragraph or piece that answers them
49
+ - Real invitations to discussion with a specific channel and topic
50
+
51
+ **Semantic Risk:** LOW — score-only.
52
+ **Detection examples:**
53
+ > So why are devs flocking to it without any marketing?
54
+
55
+ > The reason might surprise you.
56
+
57
+ ---
58
+
59
+ ### 3. Source-Skipping Authority
60
+
61
+ **Watch words:** for the first time in history, a global first, never before seen, the only X that, reportedly (with no named source), industry insiders say (with no source)
62
+
63
+ **Problem:** Absolute authority or scope claims are made without a verifiable source. People typically hedge ("from what I've seen") or attribute; AI-influencer copy goes for impact via plain assertion.
64
+
65
+ **Fire condition:** Absolute scope or rank claims ("first ever", "no one has", "industry-wide change") appear without an accompanying source, link, screenshot, or named expert.
66
+
67
+ **Exclusion:**
68
+ - Self-evident factual statements
69
+ - Idiomatic exaggeration (clearly hyperbolic for effect)
70
+ - First-person personal claims ("the best book I've ever read")
71
+
72
+ **Semantic Risk:** LOW — score-only.
73
+ **Detection examples:**
74
+ > The fastest growth GitHub has ever seen.
75
+
76
+ > Developers worldwide are losing their minds over this.
77
+
78
+ ---
79
+
80
+ ### 4. Breath-Optimized Short-Sentence Stacking
81
+
82
+ **Watch words:** (structural pattern — judged by form, not vocabulary)
83
+
84
+ **Problem:** Sentences are intentionally clipped to one line each and separated by line breaks for vertical-scroll readability. This is a hallmark of SNS and blog marketing formatting. Real long-form human writing usually has natural burstiness — a mix of short and longer sentences.
85
+
86
+ **Fire condition:** The whole piece is composed almost entirely of one-sentence paragraphs, four or more in a row, with average sentence length under ~12 words. A handful of short sentences mixed with longer ones does not fire this.
87
+
88
+ **Exclusion:**
89
+ - Poetry, song lyrics, verse
90
+ - Genuinely short notes, announcements, alerts
91
+ - One- or two-line answers to a question
92
+ - Pieces dominated by code blocks, lists, or quoted dialogue
93
+
94
+ **Semantic Risk:** LOW — score-only; the format may be intentional.
95
+ **Detection examples:**
96
+ > No one has ever shipped this fast.
97
+ >
98
+ > 250K stars in 60 days.
99
+ >
100
+ > A tool called OpenClaw did it.
101
+ >
102
+ > Why are devs flocking to it without any marketing?
103
+
104
+ (Four one-line paragraphs, average ~10 words, line-break separated → fires.)
105
+
106
+ ---
107
+
108
+ ### 5. Hyperbolic Engagement Lexicon
109
+
110
+ **Watch words:** absolutely insane, totally wild, mind-blowing, game-changing, you can't sleep on this, don't miss out, hands down the best, literally everyone is, this changes everything, a no-brainer
111
+
112
+ **Problem:** Hype vocabulary tuned for SNS engagement. Humans use these too, but several stacked together is a strong signal — and AI-generated viral copy uses them as default amplifiers.
113
+
114
+ **Fire condition:**
115
+ - One occurrence in the piece: Low
116
+ - Two occurrences: Medium
117
+ - Three or more: High
118
+
119
+ **Exclusion:**
120
+ - Joking or self-deprecating context that explicitly flags the exaggeration
121
+ - Quoted speech or dialogue
122
+ - Sports, gaming, or other domains where these terms are conventional and a measurable outcome supports them
123
+
124
+ **Semantic Risk:** LOW — score-only.
125
+ **Detection examples:**
126
+ > This is absolutely insane and developers are losing their minds.
127
+
128
+ > Hands down the best dev tool of the year — don't sleep on it.
129
+
130
+ ---
131
+
132
+ ### 6. Fake Statistic Citation
133
+
134
+ **Watch words:** studies show N%, research says N%, data shows N%, according to research (with no named source), N% of people, science says, survey found (with no survey named)
135
+
136
+ **Problem:** A precise statistic borrows the feel of research without giving the reader a source to check. AI-polished marketing copy often uses fake precision to make ordinary advice feel proven.
137
+
138
+ **Fire condition:** A numeric or statistical claim is attributed to vague research, data, surveys, or science, and the same piece gives no named source, link, sample, date, or method.
139
+
140
+ **Severity rubric:**
141
+ - Low: One vague statistic supports a minor point.
142
+ - Medium: The statistic opens the piece or anchors the main call to action.
143
+ - High: Precise percentages support health, finance, career, or safety advice, or multiple unsourced statistics appear together.
144
+
145
+ **Exclusion:**
146
+ - A named report, publication, dataset, or linked source is provided
147
+ - The number is clearly labeled as an example or hypothetical
148
+ - First-party analytics include scope and measurement context
149
+ - Common public data that the reader can verify independently
150
+
151
+ **Semantic Risk:** LOW — score-only.
152
+ **Preservation Note:** Score-only by default; if the user asks to lower the hook, preserve real numbers and either cite, hedge, or remove the fake research frame. Do not invent a source.
153
+ **Before / after examples (manual lower-signal rewrite):**
154
+ > Before: Studies show 73% of founders lose money because they ignore this one habit.
155
+ >
156
+ > After: I do not have a source for that percentage, but weekly cash reviews can catch losses earlier.
157
+
158
+ ---
159
+
160
+ ### 7. Manufactured Authority Stacking
161
+
162
+ **Watch words:** Stanford-trained, Y Combinator-backed, ex-Google, Harvard-trained, Forbes-featured, award-winning, serial founder, trusted by top CEOs, industry-leading expert
163
+
164
+ **Problem:** Several prestige labels are stacked before a claim so the authority does the persuasive work. This reads like a growth-thread template when the credentials are vague, irrelevant, or not tied to evidence.
165
+
166
+ **Fire condition:** Two or more prestige credentials, titles, investors, schools, employers, awards, or media labels are stacked to sell a claim, and the piece does not show why those credentials prove the point.
167
+
168
+ **Severity rubric:**
169
+ - Low: Two credentials appear, but the person or product is named and the claim is narrow.
170
+ - Medium: Three or more credentials introduce advice, a product, or a trend without evidence.
171
+ - High: The credential stack replaces evidence for high-stakes advice or a direct purchase/signup call.
172
+
173
+ **Exclusion:**
174
+ - Resume, bio, speaker note, or press boilerplate where credentials are the subject
175
+ - Named, verifiable credentials that are relevant to the claim
176
+ - A sourced article where credentials supplement, rather than replace, evidence
177
+
178
+ **Semantic Risk:** LOW — score-only.
179
+ **Preservation Note:** Score-only by default; if toned down, keep verifiable affiliations and remove only the pile-up or unsupported leap from title to conclusion.
180
+ **Before / after examples (manual lower-signal rewrite):**
181
+ > Before: A Stanford-trained, Y Combinator-backed serial founder says this one workflow will 10x your growth.
182
+ >
183
+ > After: A founder shared the workflow they use for weekly growth reviews; test it on your own numbers before adopting it.
184
+
185
+ ---
186
+
187
+ ### 8. Future-Self / Parasocial Promise
188
+
189
+ **Watch words:** your future self will thank you, thank me later, listen friend, friend, save this for later, one year from now you'll be glad, future you, trust me on this
190
+
191
+ **Problem:** The copy simulates intimacy or future gratitude to pressure the reader into saving, sharing, or obeying advice. It is common in viral threads because it creates emotional urgency without adding evidence.
192
+
193
+ **Fire condition:** An opener or close addresses the reader as a friend, future self, or intimate confidant and promises later gratitude, usually around a save/share/follow call, without concrete support in the same piece.
194
+
195
+ **Severity rubric:**
196
+ - Low: One soft save-this or future-self phrase appears in a casual social post.
197
+ - Medium: The future-self promise frames the title, opener, or final call to action.
198
+ - High: The promise is paired with urgency, scarcity, or high-stakes life/career advice.
199
+
200
+ **Exclusion:**
201
+ - A real message to a known friend or community member
202
+ - Coaching, therapy, or accountability writing where the relationship is explicit
203
+ - Memoir or reflection addressed to the writer's own past/future self
204
+ - Plain calendar or reminder instructions without emotional pressure
205
+
206
+ **Semantic Risk:** LOW — score-only.
207
+ **Preservation Note:** Score-only by default; if rewritten, keep any useful reminder or action while removing simulated intimacy and unverifiable future payoff.
208
+ **Before / after examples (manual lower-signal rewrite):**
209
+ > Before: Listen, friend — your future self will thank you for saving this.
210
+ >
211
+ > After: Save this if you need a checklist for next month's planning.
@@ -0,0 +1,101 @@
1
+ ---
2
+ pack: ja-communication
3
+ language: ja
4
+ name: コミュニケーションパターン
5
+ version: 1.1.0
6
+ patterns: 4
7
+ ---
8
+
9
+ # コミュニケーションパターン
10
+
11
+ ### 19. チャットボットの痕跡
12
+
13
+ **注意語彙:** お役に立てれば幸いです、ご不明な点がございましたら、以下にまとめました、ご紹介させていただきます、さらに詳しい情報が必要な場合は、お答えします
14
+
15
+ **問題:** チャットボット用の会話表現がコンテンツにそのまま残っている。
16
+
17
+ **発火条件:** リアルタイム対話ではないコンテンツ(記事、報告書、文書)にチャットボット的表現が1つでも出現する場合。
18
+
19
+ **除外条件:**
20
+ - 実際のチャットセッションの記録・文字起こし
21
+ - チャットボットインターフェース用のUIコピー
22
+ - 分析対象として引用された対話テキスト
23
+
24
+ **Semantic Risk:** LOW
25
+ **Preservation Note:** チャットボット風の前置きを削る際、実際の案内、操作手順、サポート範囲まで削らない。礼儀は短く残してよい。
26
+
27
+ **修正前:**
28
+ > フランス革命についてまとめさせていただきます。お役に立てれば幸いです!さらに詳しい情報が必要な場合は、お気軽にお尋ねください。
29
+
30
+ **修正後:**
31
+ > フランス革命は1789年に始まった。直接のきっかけは国家の財政破綻寸前の状態と、パリでのパン価格の高騰だった。
32
+
33
+ ---
34
+
35
+ ### 20. 学習データ切断日の免責
36
+
37
+ **注意語彙:** 私の知識のカットオフ時点では、リアルタイム情報にはアクセスできません、最新の情報と異なる場合があります、具体的なデータは変動している可能性があります、最新の情報をご確認ください
38
+
39
+ **問題:** AIの学習データ制限に関する免責表現がコンテンツに残っている。
40
+
41
+ **発火条件:** 編集・報道・分析コンテンツにAI学習データの限界を示唆する自己参照または免責表現が1つでも出現する場合。
42
+
43
+ **除外条件:**
44
+ - AIシステム自体を扱う技術文書での限界説明
45
+ - AI生成を意図的に開示する告知文
46
+ - 免責表現の代わりに日付・出典付きの具体的事実で置き換えられた場合
47
+
48
+ **Semantic Risk:** MEDIUM
49
+ **Preservation Note:** 免責表現を除去する際に、実際に不確実な情報が確定事実として残らないよう、出典または日付付きの事実で置き換えること
50
+
51
+ **修正前:**
52
+ > 私の知識のカットオフ時点では、同社の従業員数は約5,000人です。具体的なデータは変動している可能性がありますので、最新の情報をご確認ください。
53
+
54
+ **修正後:**
55
+ > 同社の2024年度有価証券報告書によると、従業員数は約5,000人。
56
+
57
+ ---
58
+
59
+ ### 21. お世辞・追従的な語調
60
+
61
+ **注意語彙:** 素晴らしいご質問ですね、おっしゃる通りです、非常に鋭いご指摘です、とても興味深いテーマですね、大変価値のあるお考えですね
62
+
63
+ **問題:** AIは本題の前に質問者へのお世辞を入れる。
64
+
65
+ **発火条件:** 実質的な内容の前にお世辞・追従表現が1つでも出現する場合。
66
+
67
+ **除外条件:**
68
+ - このパターンに有効な例外はない——編集・分析・報道の文脈で追従表現は常に削除対象
69
+
70
+ **Semantic Risk:** LOW
71
+ **Preservation Note:** 過剰なお世辞を削っても、相手への敬意や質問への自然な受けは保つ。直截にしすぎて冷たい返答にしない。
72
+
73
+ **修正前:**
74
+ > 素晴らしいご質問ですね!おっしゃる通り、これは非常に重要なテーマです。経済的要因に関するご指摘は鋭いですね。詳しくご説明させていただきます。
75
+
76
+ **修正後:**
77
+ > 経済的要因が核心だ。昨年、住宅供給は18%減少したが、人口は2.1%増えており、需給ギャップが拡大している。
78
+
79
+ ---
80
+
81
+ ### 29. 偽りのニュアンス(事後的な言い換え)
82
+
83
+ **注意語彙:** 実はもう少し微妙な問題で, 正確に言えば, 単純にはそう言えませんが, もちろん現実はもっと複雑で, より正確には, 公平に見れば, もう少し掘り下げると
84
+
85
+ **問題:** AIが「ニュアンスを加える」という名目で、自分が今言ったことをすぐに言い直す。新しい情報や根拠を示さず、同じ主張をわずかに違う表現で繰り返し、深みがあるように見せかける。
86
+
87
+ **発火条件:** 先行する主張を新たな証拠・視点なしに「微妙だ」というフレーミングで言い換える場合。
88
+
89
+ **除外条件:**
90
+ - 言い換えが実質的な修正を含むか、新たな根拠を引用している場合
91
+ - 結論が実際に変わる分析的転換の場合
92
+ - 話者が新しいデータで自己修正している対話記録
93
+
94
+ **Semantic Risk:** HIGH
95
+ **Preservation Note:** 偽りのニュアンス表現を除去する際に、先行する主張の内容そのものまで失わないよう注意。主張は保持し、根拠なき言い換え部分のみを除去する
96
+
97
+ **修正前:**
98
+ > リモートワークは生産性を向上させます。実はもう少し微妙な問題でして、リモートワークは特定の状況では生産性を高める可能性がありますが、他の状況では課題をもたらすこともあり、純効果は組織文化と個人の働き方によって異なります。
99
+
100
+ **修正後:**
101
+ > リモートワークは集中作業の生産性を高める——スタンフォードの研究でコールセンター従業員基準13%の向上が確認された。ただし自発的な協業には不利で、マイクロソフトの2021年社内データによると、完全リモート移行後にチーム間コミュニケーションが25%減少した。
@@ -0,0 +1,153 @@
1
+ ---
2
+ pack: ja-content
3
+ language: ja
4
+ name: コンテンツパターン
5
+ version: 1.0.0
6
+ patterns: 6
7
+ ---
8
+
9
+ # コンテンツパターン
10
+
11
+ ### 1. 過度な重要性の強調
12
+
13
+ **注意語彙:** 画期的な、革新的な、パラダイムシフト、歴史的な転換点、新たな地平を切り開く、礎を築く、金字塔、~の先駆けとなる、~において極めて重要な意義を持つ、~の幕開け、時代を画する
14
+
15
+ **問題:** AIは何でも「画期的」「革新的」と大げさに表現する。実際の重要度に関係なく、あらゆる出来事が「パラダイムシフト」になる。
16
+
17
+ **発火条件:** 同一段落に注意語彙が2つ以上出現するか、「画期的」「パラダイムシフト」などの強い表現が日常的な事象・製品に使われている場合。
18
+
19
+ **除外条件:**
20
+ - 実際の歴史的大事件(初の月面着陸、終戦など)で、強調表現の強度が事件の規模に見合っている場合
21
+ - 注意語彙が引用文中にある場合(発話者の表現であるため)
22
+
23
+ **Semantic Risk:** HIGH
24
+ **Preservation Note:** 重要性の表現を除去する際に、事象の実際の規模や意義まで縮小しないよう注意
25
+
26
+ **修正前:**
27
+ > 日本の半導体産業の発展は、国家経済において画期的な役割を果たし、グローバル技術競争における革新的なパラダイムシフトを意味する。この成果は新たな地平を切り開く礎を築いた。
28
+
29
+ **修正後:**
30
+ > 日本の半導体産業は1980年代にDRAM世界シェアの80%を占めた。現在はロジック半導体の製造拠点誘致に2兆円規模の補助金を投じている。
31
+
32
+ ---
33
+
34
+ ### 2. 過度な注目度・メディア言及
35
+
36
+ **注意語彙:** 大きな注目を集めている、世界的に認められた、国内外のメディアから高い評価を受け、各方面から称賛の声が上がっている、話題を呼んでいる
37
+
38
+ **問題:** AIは具体的な出典なしに「大きな注目」「世界的に認められた」と主張する。
39
+
40
+ **発火条件:** 具体的な媒体名・記事タイトル・日付なしに、広範な注目・報道・評価を主張している場合。媒体名があっても文脈なく羅列しただけの場合。
41
+
42
+ **除外条件:**
43
+ - 「50カ国で利用」「ダウンロード1,000万件」など具体的な規模が裏付けとなる主張
44
+ - 特定の記事タイトル・日付・引用を併記している場合
45
+
46
+ **Semantic Risk:** HIGH
47
+ **Preservation Note:** 注目度や評価に関する主張を削除する際に、実際に存在する評価や出典が失われないよう注意
48
+
49
+ **修正前:**
50
+ > この作品は国内外のメディアから高い評価を受け、世界的に認められた芸術家として大きな注目を集めている。各方面から称賛の声が上がっている。
51
+
52
+ **修正後:**
53
+ > ニューヨーク・タイムズは2024年の記事で、この作品を「日本の現代美術における新たな潮流」と紹介した。
54
+
55
+ ---
56
+
57
+ ### 3. ~しながら/~することで 表層的分析
58
+
59
+ **注意語彙:** 示しながら、強調しつつ、反映しており、象徴するとともに、促進しながら、体現しつつ、見せながら、物語っており
60
+
61
+ **問題:** AIは「~しながら」「~しつつ」「~しており」を連ねることで深い分析をしているように見せかける。英語の"-ing"パターン、韓国語の"~하며"パターンと同じ役割を果たす。
62
+
63
+ **発火条件:** 一文または連続する節に「~しながら/~しつつ/~しており」の連結形が3つ以上並び、具体的な因果説明なく羅列のみの場合。
64
+
65
+ **除外条件:**
66
+ - 実際の因果・時間関係を示す単一の「~しながら」接続(例:「コストを削減しながら効率を高めた」——具体的な結果が伴う場合)
67
+ - リスト形式で意図的に要約している場合
68
+
69
+ **Burstiness 指針:** 「~しながら/~しつつ」チェーンを解体する際、すべての節を均一な長さの独立文に変えない。一部は短く切り、一部はまとめて一文にし、一部は削除してリズムに変化をつける。
70
+
71
+ **Semantic Risk:** HIGH
72
+ **Preservation Note:** 並列節を解体する際に、各節が示す機能・効果・関係性のいずれかが脱落しないよう注意
73
+
74
+ **修正前:**
75
+ > この祭りは地域文化の多様性を示しながら、伝統と現代の調和を象徴するとともに、地域経済の活性化を促進しつつ、世代間交流の場を提供している。
76
+
77
+ **修正後:**
78
+ > 祭りには毎年約30万人が訪れる。期間中、周辺商店街の売上は通常の40%増になる。
79
+
80
+ ---
81
+
82
+ ### 4. 広告的・宣伝的言語
83
+
84
+ **注意語彙:** 素晴らしい、世界クラスの、必見の、息をのむような、魅力あふれる、唯一無二の、圧巻の、感動的な、類まれなる、他に類を見ない、~の宝庫、至高の
85
+
86
+ **問題:** AIは中立的な語調を保てず、特に観光・文化の話題で広告コピーのような文章を書く。
87
+
88
+ **発火条件:** 同一対象に宣伝的な形容詞が2つ以上つくか、「息をのむような」「~の宝庫」などの強い修飾語が叙述文(広告引用ではない本文)に使われている場合。
89
+
90
+ **除外条件:**
91
+ - 分析対象であるマーケティング・宣伝資料の直接引用
92
+ - 小説・エッセイなど文学的修辞が意図された文脈
93
+
94
+ **Semantic Risk:** MEDIUM
95
+ **Preservation Note:** 広告的な表現を除去する際に、対象の実際の特性や具体的な魅力まで削除しないよう注意
96
+
97
+ **修正前:**
98
+ > 京都は素晴らしい歴史的建造物と魅力あふれる文化遺産が調和する世界クラスの観光都市であり、日本文化の宝庫と言える。息をのむような景観は訪れる人々に感動的な体験を与える。
99
+
100
+ **修正後:**
101
+ > 京都市内には世界遺産が17件ある。2023年の観光客数は約5,300万人で、コロナ前の水準に戻った。オーバーツーリズム対策として、一部の寺社は拝観料を値上げしている。
102
+
103
+ ---
104
+
105
+ ### 5. 曖昧な出典引用
106
+
107
+ **注意語彙:** 専門家によると、研究によれば、関係者は、業界では、一部の見方では、調査結果が示すように(具体的調査名なし)
108
+
109
+ **問題:** AIは具体的な出典を示さず、「専門家」「関係者」「研究」という匿名の権威に意見を帰属させる。
110
+
111
+ **発火条件:** 出典が人名・機関・発表日なく「専門家」「関係者」「研究によれば」などの匿名権威のみで提示されている場合。
112
+
113
+ **除外条件:**
114
+ - 異論のない常識的な合意事実(例:「医師は喫煙が肺がんを引き起こすとしている」)
115
+ - 具体的な人名・機関・日付が同一段落内に明示されている場合
116
+
117
+ **Semantic Risk:** HIGH
118
+ **Preservation Note:** 匿名出典を削除する際に、主張そのものまで除去しないよう注意。出典の質を高める修正にとどめ、主張の内容は保持する
119
+
120
+ **修正前:**
121
+ > 専門家によると、この技術は今後の産業全般に革新的な変化をもたらすと見られている。関係者は、市場規模は継続的に成長すると予測している。
122
+
123
+ **修正後:**
124
+ > 経済産業省の2024年版「ものづくり白書」によると、国内製造業のAI導入率は前年比12ポイント増の34%に達した。
125
+
126
+ ---
127
+
128
+ ### 6. 定型的な課題と展望
129
+
130
+ **注意語彙:** 課題はあるものの、今後の発展が期待される、~にもかかわらず前途は明るい、さまざまな課題を乗り越え、急速に変化する現代社会において、~の時代を迎え、100年に一度の変革期、Society 5.0の実現に向けて
131
+
132
+ **問題:** AI生成の文章の大半が「成果 → しかし課題がある → それでも前途は明るい」という公式に従う。導入部も「急速に変化する現代社会において」「100年に一度の変革期」などの定型句で始まりがちである。
133
+
134
+ **発火条件:** 同一段落または結論部で曖昧な課題表現(「さまざまな課題が残されている」)と曖昧な楽観表現(「今後の発展が期待される」)が同時に出現する場合。または導入部が「急速に変化する~」「100年に一度の変革期」などの時代公式で始まる場合。
135
+
136
+ **除外条件:**
137
+ - 具体的な数値・根拠とともに課題と展望を記述している場合(例:「FDA承認に平均14カ月を要する。Q3までに未承認の場合、EU臨床へ切り替え予定」)
138
+ - 報告書・白書などで意図的にSWOT/課題-展望構造を用いた文書形式
139
+
140
+ **Semantic Risk:** HIGH
141
+ **Preservation Note:** 定型的な課題・展望表現を除去する際に、実際に存在する課題や将来計画の内容まで失わないよう注意
142
+
143
+ **修正前:**
144
+ > これらの成果にもかかわらず、依然としてさまざまな課題が残されている。しかし、持続的な努力と革新により、今後の発展が期待される。
145
+
146
+ **修正後:**
147
+ > 2024年の会計検査院報告書は、人員不足と予算執行率の低さを主要な問題として指摘した。省庁は2025年度予算を18%増額し、専門人材40名を採用する方針だ。
148
+
149
+ **導入定型句の修正前:**
150
+ > 急速に変化する現代社会において、AIは私たちの生活のあらゆる側面に革命的な変化をもたらしている。100年に一度の変革期を迎え、あらゆる産業でデジタルトランスフォーメーションが加速している。
151
+
152
+ **導入定型句の修正後:**
153
+ > 昨年末、社内業務にAIを導入した国内企業は全体の15%だった。今年上半期には32%に増えた。
@@ -0,0 +1,123 @@
1
+ ---
2
+ pack: ja-filler
3
+ language: ja
4
+ name: フィラー・ヘッジングパターン
5
+ version: 1.1.0
6
+ patterns: 4
7
+ dedupe-with:
8
+ - source: "ja-filler:22"
9
+ target: "ja-filler:31"
10
+ owner: "ja-filler:31"
11
+ reason: "最終段落の結論マーカーは filler #31 が canonical owner。#22 は本文中で意味を足さないフィラー句を扱う。"
12
+ ---
13
+
14
+ # フィラー・ヘッジングパターン
15
+
16
+ ### 22. フィラー表現
17
+
18
+ **注意語彙:** 周知の通り、言うまでもなく、疑いなく、指摘すべきは、強調すべきは、注目すべきは、事実として、〜という点は注目に値する、〜に留意する必要がある
19
+
20
+ **問題:** AIはフィラー表現で文を水増しする。削除しても意味がまったく変わらない。
21
+
22
+ **発火条件:** 同一段落にフィラー表現が2つ以上出現、または削除しても意味が変わらないフィラーが単独使用された場合。
23
+
24
+ **除外条件:**
25
+ - 法律・契約文書で精度のため必要な表現
26
+ - 削除すると意味が変わる場合
27
+
28
+ **Semantic Risk:** LOW
29
+ **Preservation Note:** フィラーを削る際、範囲限定、視点、不確実性まで消さない。緩衝材として必要な語は、より短い表現に置き換える。
30
+
31
+ **置換対照:**
32
+ - 「周知の通り」→ 削除して事実を直接述べる
33
+ - 「言うまでもなく」→ 削除
34
+ - 「指摘すべきは」→ 直接述べる
35
+ - 「ある程度」→ 削除または具体化
36
+ - 「ある意味では」→ 削除または具体化
37
+ - 「現時点では」→ 「今は」または削除
38
+
39
+ **修正前:**
40
+ > 周知の通り、AIは世界を変えつつある。言うまでもなく、この技術の発展速度は多くの人の予想を上回っている。指摘すべきは、ある程度AIの倫理的問題も顕在化しているという点である。
41
+
42
+ **修正後:**
43
+ > OpenAIの昨年の売上は16億ドルから36億ドルに伸びた。同時期にEUのAI規制法が施行され、ハイリスクAIシステムにコンプライアンス審査が義務付けられた。
44
+
45
+ ---
46
+
47
+ ### 23. 過剰なヘッジング
48
+
49
+ **注意語彙:** おそらく〜かもしれない、ある程度〜の可能性がある、〜とも考えられなくはない、ある意味では〜とも言える、〜と言えるかもしれない、一概には〜とは言い切れない
50
+
51
+ **問題:** AIは同じ主張に複数のヘッジ(弱化表現)を重ね、ほとんど何も言っていない文を生成する。
52
+
53
+ **発火条件:** 同一主張にヘッジ・限定表現が3つ以上重なる場合、またはヘッジが多すぎて反証不可能になっている場合。
54
+
55
+ **除外条件:**
56
+ - 実際に不確実な主張に単一ヘッジを付ける場合(「この方法はコストを減らせるかもしれない」——予備的証拠のみの場合)
57
+ - 学術論文で慣例的に使われる単一の弱化表現
58
+
59
+ **Semantic Risk:** MEDIUM
60
+ **Preservation Note:** 過剰なヘッジを除去する際に、主張の核心的な内容まで削除しないよう注意。適切な不確実性は単一のヘッジとして残す
61
+
62
+ **修正前:**
63
+ > おそらく、ある程度この政策は何らかの効果をもたらす可能性があるかもしれないと考えられなくはないが、これはさまざまな要因に依存すると言えるかもしれない。
64
+
65
+ **修正後:**
66
+ > この政策は効果がある可能性があるが、最大の変数は実行力だ。大阪のパイロットでは、減税後に中小企業の生存率が62%から71%に上がった。
67
+
68
+ ---
69
+
70
+ ### 24. 空虚な楽観的結論
71
+
72
+ **注意語彙:** 今後が期待される、今後の展開に注目したい、大きな可能性を秘めている、輝かしい未来が待っている、ワクワクする未来、無限の可能性、新たな章の幕開け
73
+
74
+ **問題:** AIは具体的な情報なしに空虚な楽観で文章を終わらせる。
75
+
76
+ **発火条件:** 同一段落または結論部に空虚な楽観表現が2つ以上出現、または最終文が楽観フィラーだけで構成されている場合。
77
+
78
+ **除外条件:**
79
+ - 具体的な証拠に裏付けられた楽観的判断(「臨床データからQ3までにFDA承認の可能性が高い」)
80
+ - 具体的な計画・スケジュールが示された結論(「来年6月までに2店舗追加オープン予定」)
81
+
82
+ **Semantic Risk:** MEDIUM
83
+ **Preservation Note:** 空虚な楽観表現を除去する際に、具体的な将来計画や根拠のある見通しまで削除しないよう注意
84
+
85
+ **修正前:**
86
+ > 今後が大いに期待される!AIの発展は輝かしい未来をもたらすだろう。ワクワクする展開を楽しみにしたい。
87
+
88
+ **修正後:**
89
+ > 来四半期に大阪と福岡にデータセンターを新設する計画で、年末の稼働開始を目指している。
90
+
91
+ **結論公式の修正前:**
92
+ > いずれにせよ、この分野は大きな可能性を秘めている。今後の展開に注目したい。新たな章の幕開けである。
93
+
94
+ **結論公式の修正後:**
95
+ > 法案は今年9月に審議入りし、成立すれば来年1月に施行される見通し。
96
+
97
+ ---
98
+
99
+ ### 31. 結論シグナルワードの濫用
100
+
101
+ **注意語:** 結論として, 結局, 究極的には, 要するに, まとめると, 最終的に, 総じて, つまり, 言い換えれば, 以上から
102
+
103
+ **問題:** AI は結論段落をシグナルワードで明示的に印付ける。"結論として"、"結局"、"要するに" などは、日本語の書き手は普段あまり使わない。AI は文章構造を読者に教えなければならないという強迫があり、最終段落をほぼ常に結論マーカーで始める。
104
+
105
+ **発火条件:** 文書の最終段落(または最後から2番目)の先頭文が上記シグナルワードのいずれかで始まる。または、同じ文書に結論シグナルワードが 2 回以上登場。
106
+
107
+ **除外条件:**
108
+ - 学術論文の "結論" セクション見出し直後の最初の段落(見出し自体がシグナル役なので本文の信号語は重複)
109
+ - 明確な多段階論証の最終ステップ表示(数学証明の "したがって"、法律文書の "結論として")
110
+ - 講演・講義 transcript で話者が明示的にまとめる場合
111
+
112
+ **Semantic Risk:** LOW
113
+ **Preservation Note:** シグナルワードだけを除くと最後の段落が薄い結びになりがち。シグナルワードを消すだけでなく、結論自体をより具体的に書き直す。シグナルワードがなくても、その段落が結論として読めること。
114
+
115
+ **Burstiness ガイダンス:** 結論シグナルワードを平叙文に変える際、すべての結論を同じ長さ・構造にしない。短く断定的な一行と、より長い結びの説明を混ぜる。Pattern #24(漠然とした肯定的結論)と一緒に発火する場合が多いので、両方を一緒に処理。
116
+
117
+ **修正前:**
118
+ > 結論として、デジタルノマドのライフスタイルは一時的な流行ではなく、社会全体に持続的に根付く新しい標準として定着しつつある。
119
+
120
+ **修正後:**
121
+ > デジタルノマドはもう流行の話ではない。働き方そのものが変わり、人々はその上に新しい日常を築いている。
122
+
123
+ **このパターンではないもの:** 結論の*内容*が漠然と楽観的な場合 → Pattern 24(漠然とした肯定的結論)で扱う。Pattern 31 は*シグナルワードそのもの*に関するもの。