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: ko-viral-hook
3
+ language: ko
4
+ name: 바이럴 훅 패턴
5
+ version: 1.0.0
6
+ patterns: 8
7
+ score_only: true
8
+ ---
9
+
10
+ # 바이럴 훅 패턴 (score-only)
11
+
12
+ 이 팩은 **점수(`--score`)와 감사(`--audit`) 전용**이다. SNS·블로그 마케팅 글에서 자주 보이는 "AI 인플루언서 콘텐츠 톤" 신호를 잡는다. 이번 범위에는 가짜 통계 인용, 권위 타이틀 쌓기, 미래의 나/친밀한 2인칭 약속도 포함한다. rewrite 모드에서는 의도적 수사일 가능성이 있어 자동 교정하지 않는다 — 사용자가 직접 판단하도록 점수에만 반영한다.
13
+
14
+ 이 팩이 적중한다고 해서 글이 무조건 AI 생성이라는 뜻은 아니다. 사람도 쓰는 패턴이지만, 다수가 함께 등장하면 "AI 같다"는 직관과 강하게 일치한다.
15
+
16
+ ---
17
+
18
+ ### 1. 숫자 충격 훅
19
+
20
+ **주의 어휘:** 단 N일/시간/주 만에, 단 N개월 만에, N억/N만 명/N만 개/N만 회, 0원으로 N원, 단돈 N원에, N% 폭증, N배 성장
21
+
22
+ **문제:** 구체적 숫자를 핵심 임팩트로 내세워 검증 곤란한 권위를 만든다. 출처(링크·스크린샷·매체명) 없이 단언하면 사람보단 마케팅 봇/AI 인플루언서 콘텐츠 특유의 패턴이다.
23
+
24
+ **발화 조건:** 단언에 충격적인 숫자(시간·규모·비율)가 등장하지만 같은 글 안에 출처·검증 경로가 없는 경우.
25
+
26
+ **제외 조건:**
27
+ - 본인 경험 1인칭 보고 ("내 월급이 200만원인데")
28
+ - 관용 표현 ("백만 번 들어도")
29
+ - 일반 통계로 자명한 수치 (인구, 면적, 공식 발표 인용 등 검증 가능)
30
+
31
+ **의미 위험도:** LOW — score-only, rewrite 시 변경하지 않음
32
+ **탐지 예시:**
33
+ > 단 60일 만에 별 25만 개.
34
+
35
+ > 0원으로 100억 매출.
36
+
37
+ ---
38
+
39
+ ### 2. 클릭베이트 미스터리 종결
40
+
41
+ **주의 어휘:** ~이유가 뭘까, ~이유는 뭐였을까, ~이게 가능할까요, ~궁금하지 않나요, ~정말 충격이지 않나요, ~왜일까
42
+
43
+ **문제:** 글의 마지막을 답 없이 수사적 질문으로 마무리해 클릭·팔로우·댓글을 유도한다. 정보 전달이 아니라 engagement bait. AI가 viral 문체를 흉내 낼 때 거의 빠지지 않는 마무리 패턴이다.
44
+
45
+ **발화 조건:** 글의 **마지막 문장**이 답을 주지 않는 수사적 질문이고, 본문이 그 질문에 충분한 답을 제공하지 않는 경우.
46
+
47
+ **제외 조건:**
48
+ - 학술·에세이의 정당한 문제 제기 (이어지는 단락 또는 별도 글에서 답을 다룸을 명시)
49
+ - 진정한 토론 초대 (구체적 답변 요청 + 답을 받을 채널 명시)
50
+
51
+ **의미 위험도:** LOW — score-only
52
+ **탐지 예시:**
53
+ > 광고 한 번 안 하고 전 세계 개발자들이 미친 듯이 달려든 이유가 뭘까.
54
+
55
+ > 이게 정말 가능한 일일까요?
56
+
57
+ ---
58
+
59
+ ### 3. 검증 회피 단언
60
+
61
+ **주의 어휘:** 역사상 처음, 역사상 이런 X은 없었다, 전 세계가 주목, 역대 최고, 유일무이한, ~에 따르면 (출처 명시 없이), ~로 알려졌다 (주체 없음)
62
+
63
+ **문제:** 검증 가능한 정보 없이 절대적 권위·범위 단언을 한다. 사람은 보통 출처를 덧붙이거나 "내가 본 한에선" 같은 hedge를 쓰지만, 마케팅·AI 인플루언서 콘텐츠는 단언으로 임팩트를 만든다.
64
+
65
+ **발화 조건:** "역사상 X", "전 세계 Y", "역대 최고 Z" 같은 절대 범위/순위 단언이 출처·근거 없이 등장. 같은 글에 검증 가능한 다른 단서(링크·인용·스크린샷)도 부재.
66
+
67
+ **제외 조건:**
68
+ - 자명한 사실에 대한 일반 진술
69
+ - 명백한 농담·관용적 과장 ("백만 년 만에 본다" 같은)
70
+ - 본인 경험 1인칭 한정 ("내 인생 역대급")
71
+
72
+ **의미 위험도:** LOW — score-only
73
+ **탐지 예시:**
74
+ > GitHub 역사상 이런 속도는 없었다.
75
+
76
+ > 전 세계 개발자들이 미친 듯이 달려든
77
+
78
+ ---
79
+
80
+ ### 4. 호흡 최적화 단문 배열
81
+
82
+ **주의 어휘:** (구조적 패턴 — 어휘가 아니라 형태로 판단)
83
+
84
+ **문제:** 모든 문장이 1줄에 끝나도록 의도적으로 짧게 자르고 줄바꿈으로 분리한 배열. 세로 스크롤 가독성에 최적화된 SNS·블로그 마케팅 특유의 형식. 사람이 깊이 사고하며 쓴 글은 보통 문장 길이의 자연스러운 burstiness(긴 문장과 짧은 문장이 섞임)가 있다.
85
+
86
+ **발화 조건:** 글 전체가 거의 모두 한 문장 = 한 줄 = 한 단락 형식이고, 4문장 이상 연속이며, 평균 문장 길이가 30자 미만인 경우. 단문이 한두 개만 섞인 경우는 발화하지 않는다.
87
+
88
+ **제외 조건:**
89
+ - 시·운문·노래 가사
90
+ - 본질적으로 짧은 메모·공지·알림
91
+ - 질문에 대한 한두 줄 답변
92
+ - 코드 블록·리스트가 본문의 다수를 차지하는 글
93
+
94
+ **의미 위험도:** LOW — score-only, 형식은 의도일 수 있음
95
+ **탐지 예시:**
96
+ > GitHub 역사상 이런 속도는 없었다.
97
+ >
98
+ > 단 60일 만에 별 25만 개.
99
+ >
100
+ > OpenClaw라는 도구가 세운 기록임.
101
+ >
102
+ > 광고 한 번 안 하고 전 세계 개발자들이 미친 듯이 달려든 이유가 뭘까.
103
+
104
+ (4문장 모두 1줄 단문, 줄바꿈으로 분리, 평균 25자 내외 → 발화)
105
+
106
+ ---
107
+
108
+ ### 5. AI 인플루언서 어휘
109
+
110
+ **주의 어휘:** 미친 듯이, 미쳤다, 역대급, 다 뒤집어졌다, 판이 바뀌었다, 이거 모르면 손해, 안 보면 후회, 충격적이지 않나요, 게임 체인저, 다들 난리난, 진짜 미쳤네, 이거 진심임
111
+
112
+ **문제:** SNS engagement 최적화에 쓰이는 과장 어휘. 사람도 쓰지만 한 글에 다수 등장하면 "AI가 viral 톤을 흉내 낸 콘텐츠" 직관과 강하게 일치한다. 특히 정보 글·소개 글에 등장하면 신호가 더 강하다.
113
+
114
+ **발화 조건:**
115
+ - 한 글에 1개 등장: Low
116
+ - 2개 등장: Medium
117
+ - 3개 이상: High
118
+
119
+ **제외 조건:**
120
+ - 농담·자조 맥락임이 명시된 경우
121
+ - 인용·대화체 안에서의 등장
122
+ - 게임·스포츠 등 실제로 "역대급"이 적절한 도메인 (단, 객관적 수치가 함께 제시될 때만)
123
+
124
+ **의미 위험도:** LOW — score-only
125
+ **탐지 예시:**
126
+ > 전 세계 개발자들이 미친 듯이 달려든
127
+
128
+ > 역대급 도구가 등장했다
129
+
130
+ ---
131
+
132
+ ### 6. 가짜 통계 인용
133
+
134
+ **주의 어휘:** 연구에 따르면 N%, 조사 결과 N%, 데이터가 말하길, 과학적으로 증명, N명 중 N명, 전문가들은 말한다(출처 없음), 통계상
135
+
136
+ **문제:** 출처 없는 정밀한 숫자로 연구의 권위를 빌린다. 실제 근거를 보여주지 않으면서 평범한 조언을 검증된 사실처럼 보이게 만드는 viral 마케팅 문체다.
137
+
138
+ **발화 조건:** 통계·연구·조사·데이터를 언급하며 숫자나 비율을 제시하지만, 같은 글 안에 기관명·링크·표본·시점·조사 방법이 없는 경우.
139
+
140
+ **심각도 기준:**
141
+ - Low: 출처 없는 통계가 보조 설명으로 한 번 등장.
142
+ - Medium: 통계가 글의 첫 문장이나 핵심 CTA를 지탱.
143
+ - High: 건강·금융·커리어·안전 조언에 정밀한 퍼센트를 붙이거나, 출처 없는 통계가 여러 개 등장.
144
+
145
+ **제외 조건:**
146
+ - 보고서명·매체명·데이터셋·링크가 함께 제공됨
147
+ - 예시나 가정 수치임을 명확히 밝힘
148
+ - 자사 데이터가 범위와 측정 맥락을 포함함
149
+ - 독자가 독립적으로 검증 가능한 공공 통계
150
+
151
+ **의미 위험도:** LOW — score-only
152
+ **보존 메모:** 기본적으로 점수만 반영한다. 사용자가 톤을 낮추라고 요청하면 실제 숫자는 보존하고, 출처를 붙이거나 hedge 처리하거나 가짜 연구 프레임만 제거한다. 출처를 지어내지 않는다.
153
+ **이전 / 이후 예시(수동 저신호 rewrite):**
154
+ > 이전: 연구에 따르면 창업자의 73%가 이 습관 하나를 몰라서 돈을 잃는다.
155
+ >
156
+ > 이후: 그 73% 수치의 출처는 확인되지 않는다. 다만 주간 현금흐름 점검은 손실을 더 빨리 발견하는 데 도움이 된다.
157
+
158
+ ---
159
+
160
+ ### 7. 권위 타이틀 쌓기
161
+
162
+ **주의 어휘:** 스탠퍼드 출신, Y Combinator 출신, 전 Google, 하버드 박사, Forbes 선정, 수상 경력, 연쇄 창업가, 업계 1위 전문가, 톱 CEO들이 신뢰한
163
+
164
+ **문제:** 여러 권위 표지를 한꺼번에 쌓아 근거 대신 설득력을 만든다. 자격과 주장 사이의 연결이 없으면 사람이 쓴 소개보다 성장 해킹 스레드나 AI 인플루언서 문체처럼 읽힌다.
165
+
166
+ **발화 조건:** 학교·투자사·전 직장·수상·매체·직함 등 권위 표지가 2개 이상 연속으로 등장하고, 그 권위가 주장 자체를 입증하는 근거로 제시되는 경우.
167
+
168
+ **심각도 기준:**
169
+ - Low: 2개 권위 표지가 나오지만 인물/제품이 명확하고 주장이 좁음.
170
+ - Medium: 3개 이상 권위 표지가 조언·제품·트렌드를 소개하는 핵심 훅으로 쓰임.
171
+ - High: 고위험 조언이나 구매/가입 CTA에서 권위 나열이 근거를 완전히 대체.
172
+
173
+ **제외 조건:**
174
+ - 이력서·약력·연사 소개처럼 자격 자체가 주제인 글
175
+ - 이름과 소속이 검증 가능하고 주장과 직접 관련됨
176
+ - 근거가 따로 있고 권위 표지는 보조 설명에 그침
177
+
178
+ **의미 위험도:** LOW — score-only
179
+ **보존 메모:** 기본적으로 점수만 반영한다. 톤을 낮출 때는 검증 가능한 소속은 남기고, 과도한 나열과 직함에서 결론으로 뛰는 부분만 줄인다.
180
+ **이전 / 이후 예시(수동 저신호 rewrite):**
181
+ > 이전: 스탠퍼드 출신, Y Combinator 출신 연쇄 창업가가 말하는 매출 10배 워크플로.
182
+ >
183
+ > 이후: 한 창업자가 매주 성장 지표를 점검할 때 쓰는 워크플로를 공유했다. 자기 지표에 맞는지 먼저 시험해 보자.
184
+
185
+ ---
186
+
187
+ ### 8. 미래의 나 / 친밀한 2인칭 약속
188
+
189
+ **주의 어휘:** 친구야, 솔직히 말할게, 이건 저장해, 나중에 고마워할걸, 1년 뒤의 당신이 감사할 것이다, 미래의 내가 고마워할, 믿고 따라와
190
+
191
+ **문제:** 독자를 친구나 미래의 자신처럼 부르며 저장·공유·팔로우를 압박한다. 근거를 추가하지 않고 감정적 친밀감과 미래 보상만으로 행동을 유도하는 viral hook이다.
192
+
193
+ **발화 조건:** 글의 시작이나 끝에서 독자를 친구·미래의 나·친밀한 상담 대상처럼 직접 부르고, 같은 글 안에 구체적 근거 없이 미래의 감사/후회를 약속하는 경우.
194
+
195
+ **심각도 기준:**
196
+ - Low: 캐주얼 SNS 글에 저장/미래 보상 문구가 한 번 등장.
197
+ - Medium: 미래의 나 약속이 제목·첫 문장·마지막 CTA를 구성.
198
+ - High: 긴급성·희소성·고위험 인생/커리어 조언과 함께 사용.
199
+
200
+ **제외 조건:**
201
+ - 실제 친구나 커뮤니티 구성원에게 보내는 메시지
202
+ - 코칭·상담·회고처럼 관계와 맥락이 명시된 글
203
+ - 작성자가 과거/미래의 자기 자신에게 쓰는 에세이
204
+ - 감정 압박 없이 단순히 저장/리마인더를 안내하는 문장
205
+
206
+ **의미 위험도:** LOW — score-only
207
+ **보존 메모:** 기본적으로 점수만 반영한다. 고칠 때는 유용한 알림·체크리스트·행동 안내는 보존하고, 가짜 친밀감과 검증되지 않은 미래 보상만 낮춘다.
208
+ **이전 / 이후 예시(수동 저신호 rewrite):**
209
+ > 이전: 친구야, 이건 저장해. 1년 뒤의 당신이 분명 고마워할 거다.
210
+ >
211
+ > 이후: 다음 달 계획을 세울 때 쓸 체크리스트가 필요하면 저장해 두자.
@@ -0,0 +1,101 @@
1
+ ---
2
+ pack: zh-communication
3
+ language: zh
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
+ **触发条件:** 编辑/报道/分析类内容中出现1个以上AI训练数据限制的自我引用或免责表达。
42
+
43
+ **排除条件:**
44
+ - 关于AI系统本身的技术文档中对限制的说明
45
+ - 有意公开AI生成事实的声明(作为单独的公开说明形式)
46
+ - 用带日期和来源的具体事实替代了免责表达的场合
47
+
48
+ **Semantic Risk:** MEDIUM
49
+ **Preservation Note:** 删除截止日期免责声明时,若原文的数据确实存在时效性问题,应以带日期的具体来源替代免责语,而非直接删除——删除后读者将无从判断数据的时效。
50
+
51
+ **修改前:**
52
+ > 截至我的知识截止日期,该公司约有5000名员工。具体数据可能有变化,建议您查阅最新资料。
53
+
54
+ **修改后:**
55
+ > 该公司2024年年报显示员工约5000人。
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: zh-content
3
+ language: zh
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
+ > 2024年国内AI企业拿到的融资总额超过800亿元,比上一年翻了一番。其中大模型赛道占了六成。
31
+
32
+ ---
33
+
34
+ ### 2. 过度强调关注度/媒体报道
35
+
36
+ **高频词汇:** 引起了社会各界的广泛关注、受到了国内外媒体的高度关注、获得了业界的一致好评、在国际上产生了深远影响、赢得了广泛赞誉
37
+
38
+ **问题:** AI在没有具体来源的情况下声称获得了广泛关注和好评。
39
+
40
+ **触发条件:** 声称获得广泛关注/报道/好评,但未提供具体媒体名称、文章标题或日期。
41
+
42
+ **排除条件:**
43
+ - 有具体规模支撑的声明("覆盖50个国家"、"下载量超千万")
44
+ - 在同一段落中提供了具体出处(媒体名+日期+引述)
45
+
46
+ **Semantic Risk:** HIGH
47
+ **Preservation Note:** 删除无来源的关注度声明时,若原文确实在表达某项目受到重视这一事实,应用有出处的具体表述替代,而非直接删除整个关注度主张。
48
+
49
+ **修改前:**
50
+ > 该项目引起了社会各界的广泛关注,受到了国内外媒体的高度关注和一致好评,在国际上产生了深远影响。
51
+
52
+ **修改后:**
53
+ > 《人民日报》2024年3月的报道称该项目"首次实现了量子纠错的工程化应用"。Nature同月刊发了评论文章。
54
+
55
+ ---
56
+
57
+ ### 3. 表面化的"~着"/"~了"连缀分析
58
+
59
+ **高频词汇:** 展现了、彰显了、体现了、反映了、推动了、促进了、凸显了、见证了、标志着、意味着、象征着
60
+
61
+ **问题:** AI用动词连缀代替实质分析。不解释为什么重要,只是堆砌"展现了"、"彰显了"、"体现了"。
62
+
63
+ **触发条件:** 同一句或连续分句中出现3个以上此类动词,且没有具体因果解释。
64
+
65
+ **排除条件:**
66
+ - 单独使用且后面有具体因果关系的(例:"降低了30%的成本,推动了更多中小企业采用"——有具体结果跟随)
67
+ - 以列表形式有意进行摘要的场合
68
+
69
+ **Semantic Risk:** HIGH
70
+ **Preservation Note:** 拆解动词连缀时,原文隐含的因果关系或实质论断不可一并删除;如原文确有"A推动了B"的因果主张,改写后该因果关系应以具体形式保留。
71
+
72
+ **Burstiness 指引:** 拆解"展现了/彰显了"连缀时,不要把每个分句都改成长度一致的独立句。有的缩短,有的合并,有的直接删掉。
73
+
74
+ **修改前:**
75
+ > 这项活动展现了中华文化的深厚底蕴,彰显了文化自信的力量,体现了传统与现代的完美融合,推动了文化产业的蓬勃发展。
76
+
77
+ **修改后:**
78
+ > 活动期间周边商户营业额增长了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
+ > 张家界的砂岩柱地貌在全球范围内罕见,核心景区有3000多根石柱。2023年接待游客超过3500万人次,门票收入约28亿元。
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年白皮书预测,国内大模型市场规模2027年将达到600亿元,年复合增长率约45%。
125
+
126
+ ---
127
+
128
+ ### 6. 套路化的"挑战与展望"
129
+
130
+ **高频词汇:** 尽管如此~仍面临诸多挑战、但我们有理由相信、前景十分广阔、机遇与挑战并存、在~的浪潮下、站在~的历史节点上、百年未有之大变局、新时代新征程
131
+
132
+ **问题:** AI文章大多遵循"成绩→但仍有挑战→未来可期"公式。开头则常用"在百年未有之大变局下"、"站在新时代的历史节点上"等时代套话。
133
+
134
+ **触发条件:** 同一段落或结尾部分同时出现模糊的挑战表述("仍面临诸多挑战")和模糊的乐观表述("前景十分广阔")。或开头使用"百年未有之大变局"、"新时代新征程"等时代套话。
135
+
136
+ **排除条件:**
137
+ - 有具体数据支撑的挑战和前景叙述(例:"芯片良率仅58%,目标Q3提升至75%;如达不到则转向成熟制程产品线")
138
+ - 报告/白皮书中有意使用SWOT/挑战-展望结构的文档格式
139
+
140
+ **Semantic Risk:** HIGH
141
+ **Preservation Note:** 改写"挑战与展望"套话时,原文若确实指向真实挑战(如监管限制、技术瓶颈),该挑战的实质内容须以具体形式保留,不可因删除套话结构而一并消除。
142
+
143
+ **修改前:**
144
+ > 尽管取得了显著成绩,我国AI产业仍面临诸多挑战。但我们有理由相信,通过持续创新和不懈努力,前景十分广阔。
145
+
146
+ **修改后:**
147
+ > 目前的主要瓶颈是高端GPU的供应——受出口管制影响,国内企业获取H100的渠道收窄。华为昇腾910B已开始替代,但生态兼容性仍需半年以上的适配周期。
148
+
149
+ **开头套话修改前:**
150
+ > 在百年未有之大变局的时代背景下,人工智能正以前所未有的速度改变着人类社会。站在新时代的历史节点上,科技创新成为推动发展的核心动力。
151
+
152
+ **开头套话修改后:**
153
+ > 去年年底,国内使用大模型API的企业比例还不到8%。今年上半年已经涨到了22%。
@@ -0,0 +1,118 @@
1
+ ---
2
+ pack: zh-filler
3
+ language: zh
4
+ name: 填充/弱化模式
5
+ version: 1.1.0
6
+ patterns: 4
7
+ ---
8
+
9
+ # 填充/弱化模式
10
+
11
+ ### 22. 填充表达
12
+
13
+ **高频词汇:** 众所周知、不言而喻、毫无疑问、毋庸置疑、不可否认的是、必须指出的是、需要强调的是、有必要指出、应当注意到、事实上
14
+
15
+ **问题:** AI用大量填充语来拉长句子,删掉后意思完全不变。
16
+
17
+ **触发条件:** 同一段落中出现2个以上填充表达,或删除后完全不影响意思的填充表达被单独使用。
18
+
19
+ **排除条件:**
20
+ - 法律/合同文件中为精确性需要的表达
21
+ - 删除后确实会改变语义的场合
22
+
23
+ **Semantic Risk:** LOW
24
+ **Preservation Note:** 删除填充表达时,保留原文的范围限定、视角和不确定性;若填充词承担转折或缓冲作用,应以更短的结构保留。
25
+
26
+ **替换对照:**
27
+ - "众所周知" → 直接陈述事实
28
+ - "不可否认的是" → 直接陈述
29
+ - "必须指出的是" → 直接陈述
30
+ - "在一定程度上" → 删除或具体化
31
+ - "从某种意义上来说" → 删除或具体化
32
+ - "就目前而言" → "目前"或直接删除
33
+
34
+ **修改前:**
35
+ > 众所周知,人工智能正在改变世界。不可否认的是,这一技术的发展速度超出了许多人的预期。必须指出的是,在一定程度上,AI的伦理问题也日益凸显。
36
+
37
+ **修改后:**
38
+ > OpenAI去年的营收从16亿美元涨到了36亿。与此同时,欧盟AI法案正式生效,要求高风险AI系统必须通过合规审查。
39
+
40
+ ---
41
+
42
+ ### 23. 过度弱化/套层对冲
43
+
44
+ **高频词汇:** 或许可以认为、在某种程度上可能、不排除~的可能性、从一定意义上来说、就某种角度而言、也许在一定条件下
45
+
46
+ **问题:** AI在同一句话上堆砌多个弱化限定词,使陈述变得毫无信息量。单个弱化词是正常的;三四个叠在一起就不正常了。
47
+
48
+ **触发条件:** 同一个论断叠加了3个以上弱化/限定表达,或陈述被弱化到完全无法证伪的程度。
49
+
50
+ **排除条件:**
51
+ - 确实不确定的论断附加单个弱化词("这种方法可能降低成本"——证据初步时)
52
+ - 学术论文中惯例性的单个弱化表达
53
+
54
+ **Semantic Risk:** MEDIUM
55
+ **Preservation Note:** 去除堆叠弱化词时,若原论断确实存在不确定性,应保留单个合理的弱化表达,而非将所有限定一并删除变成绝对陈述。
56
+
57
+ **修改前:**
58
+ > 或许可以认为,在某种程度上,这一政策可能会在一定条件下对经济产生某些方面的积极影响,当然这还取决于多种因素。
59
+
60
+ **修改后:**
61
+ > 这一政策可能有正面效果,但关键变量是执行力度。上海试点的数据是:减税后小微企业存活率从62%升到了71%。
62
+
63
+ ---
64
+
65
+ ### 24. 空洞的积极结尾
66
+
67
+ **高频词汇:** 未来可期、前景可期、未来已来、我们拭目以待、让我们共同期待、大有可为、令人振奋、前途光明、充满希望、值得期待
68
+
69
+ **问题:** AI用空洞的乐观表达结尾,不提供任何具体信息。
70
+
71
+ **触发条件:** 同一段落或结尾部分出现2个以上空洞乐观表达,或最后一句完全由乐观套话组成。
72
+
73
+ **排除条件:**
74
+ - 有具体证据支撑的积极判断("根据临床数据,Q3前获得FDA批准的可能性很高")
75
+ - 有具体计划/时间表的结尾("明年6月前开设两家新店")
76
+
77
+ **Semantic Risk:** LOW
78
+ **Preservation Note:** 改写空洞结尾时,若原文包含真实计划、期待或承诺,应换成具体时间、动作或责任人,而不是直接删除结尾。
79
+
80
+ **修改前:**
81
+ > 未来可期!人工智能的发展前景令人振奋,前途光明。让我们共同期待这一领域带来更多惊喜和突破。
82
+
83
+ **修改后:**
84
+ > 公司下个季度计划在深圳和成都各开一个数据中心,预计年底前完工。
85
+
86
+ **结尾套话修改前:**
87
+ > 总之,这一领域大有可为,我们拭目以待。未来已来,让我们共同见证历史。
88
+
89
+ **结尾套话修改后:**
90
+ > 法案将于今年9月提交审议,通过后预计明年1月施行。
91
+
92
+ ---
93
+
94
+ ### 31. 结论信号词滥用
95
+
96
+ **注意词:** 总的来说, 综上所述, 总而言之, 最终, 简而言之, 总结一下, 概括而言, 最后, 归根结底
97
+
98
+ **问题:** AI 在结论段落显式使用"信号词"("综上所述"、"总的来说"、"最终"),中文写作者实际很少这样标记结构。AI 觉得有义务为读者标记文章结构,所以最后一段几乎总以结论标记开头。
99
+
100
+ **触发条件:** 文章最后一段(或倒数第二段)首句以上述信号词之一开头。或同一文档中此类信号词出现 2 次以上。
101
+
102
+ **排除条件:**
103
+ - 学术论文带"结论"小节标题的(标题已经标记,正文再标记是多余)
104
+ - 多步推理的最后一步(数学证明的"因此",法律文书的"综上")
105
+ - 演讲或讲座稿明确总结之处
106
+
107
+ **Semantic Risk:** LOW
108
+ **Preservation Note:** 仅删信号词会留下空洞的段落。重写结论本身使其更具体。即使去掉标记,段落仍要读起来像结论。
109
+
110
+ **Burstiness 指引:** 改写时变化形式。不要把每个"综上所述, X 是 Y"改成"X 就是 Y"——那只是换了一种机械模式。短断言和较长解释混用。常与 #24(空洞的积极结论)一起出现,建议同时处理。
111
+
112
+ **修改前:**
113
+ > 综上所述,数字游民生活方式不是一时的潮流,而是已在我们社会广泛扎根、将持续发展的新标准。
114
+
115
+ **修改后:**
116
+ > 数字游民已经不只是潮流问题。工作方式整个变了,人们正在这上面建起新的日常。
117
+
118
+ **不属于此模式:** 当结论的*内容*是空洞的乐观时 → 由 Pattern 24(空洞的积极结论)处理。Pattern 31 是关于*信号词本身*。