quiver-cli 1.2.0 → 1.3.1
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.
- package/dist/cli.js +237 -10
- package/package.json +1 -1
- package/template/.agents/skills/agent-browser/SKILL.md +1 -0
- package/template/.agents/skills/apps/skybridge/SKILL.md +2 -0
- package/template/.agents/skills/data/prisma-cli/SKILL.md +25 -7
- package/template/.agents/skills/data/prisma-cli/references/agent-safety.md +27 -0
- package/template/.agents/skills/data/prisma-cli/references/complete.md +22 -0
- package/template/.agents/skills/data/prisma-cli/references/db-push.md +2 -0
- package/template/.agents/skills/data/prisma-cli/references/init.md +3 -0
- package/template/.agents/skills/data/prisma-cli/references/mcp.md +2 -1
- package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +1 -1
- package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +2 -0
- package/template/.agents/skills/data/prisma-client-api/SKILL.md +1 -1
- package/template/.agents/skills/data/prisma-client-api/references/constructor.md +13 -0
- package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +4 -0
- package/template/.agents/skills/design/impeccable/SKILL.md +5 -5
- package/template/.agents/skills/design/impeccable/reference/android.md +6 -0
- package/template/.agents/skills/design/impeccable/reference/animate.md +3 -0
- package/template/.agents/skills/design/impeccable/reference/bolder.md +3 -1
- package/template/.agents/skills/design/impeccable/reference/craft-floor.md +2 -0
- package/template/.agents/skills/design/impeccable/reference/critique.md +23 -5
- package/template/.agents/skills/design/impeccable/reference/degraded/asset-producer.md +15 -68
- package/template/.agents/skills/design/impeccable/reference/degraded/finish-reviewer.md +13 -12
- package/template/.agents/skills/design/impeccable/reference/distill.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/doctor.md +1 -0
- package/template/.agents/skills/design/impeccable/reference/document.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/extract.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/hooks.md +17 -11
- package/template/.agents/skills/design/impeccable/reference/init.md +9 -3
- package/template/.agents/skills/design/impeccable/reference/ios.md +6 -0
- package/template/.agents/skills/design/impeccable/reference/new-work.md +69 -29
- package/template/.agents/skills/design/impeccable/reference/overdrive.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/polish.md +13 -5
- package/template/.agents/skills/design/impeccable/reference/quieter.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/routing.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/visualize.md +21 -22
- package/template/.agents/skills/design/impeccable/scripts/build-phase.mjs +1022 -0
- package/template/.agents/skills/design/impeccable/scripts/comp-diff.mjs +391 -0
- package/template/.agents/skills/design/impeccable/scripts/comp-spec.mjs +513 -0
- package/template/.agents/skills/design/impeccable/scripts/concept-seed.mjs +297 -41
- package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +10 -19
- package/template/.agents/skills/design/impeccable/scripts/context.mjs +124 -9
- package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +279 -19
- package/template/.agents/skills/design/impeccable/scripts/data/font-index-failures.json +121 -0
- package/template/.agents/skills/design/impeccable/scripts/data/font-index.json +1 -0
- package/template/.agents/skills/design/impeccable/scripts/detect.mjs +9 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +192 -11
- package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +10 -16
- package/template/.agents/skills/design/impeccable/scripts/detector/design-system.mjs +339 -11
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +1482 -722
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +1 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +64 -2
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +580 -29
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +62 -7
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +31 -7
- package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +23 -22
- package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +18 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +471 -370
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +474 -2
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +17 -2
- package/template/.agents/skills/design/impeccable/scripts/doctor.mjs +14 -21
- package/template/.agents/skills/design/impeccable/scripts/embed-prompt.mjs +81 -48
- package/template/.agents/skills/design/impeccable/scripts/font-match.mjs +457 -0
- package/template/.agents/skills/design/impeccable/scripts/generate-image.mjs +219 -12
- package/template/.agents/skills/design/impeccable/scripts/hook-admin.mjs +93 -15
- package/template/.agents/skills/design/impeccable/scripts/hook-before-edit.mjs +41 -19
- package/template/.agents/skills/design/impeccable/scripts/hook-lib.mjs +507 -117
- package/template/.agents/skills/design/impeccable/scripts/hook.mjs +10 -9
- package/template/.agents/skills/design/impeccable/scripts/lib/concept-catalog.mjs +40 -1
- package/template/.agents/skills/design/impeccable/scripts/lib/design-parser.mjs +120 -82
- package/template/.agents/skills/design/impeccable/scripts/lib/font-fingerprint.mjs +564 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/font-index.mjs +130 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/hero-checks.mjs +246 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/image-metrics.mjs +306 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-config.mjs +41 -59
- package/template/.agents/skills/design/impeccable/scripts/lib/is-generated.mjs +5 -2
- package/template/.agents/skills/design/impeccable/scripts/lib/live-path-globs.mjs +37 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/open-system-browser.mjs +26 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/png.mjs +281 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/raster.mjs +194 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/roll-selection.mjs +26 -19
- package/template/.agents/skills/design/impeccable/scripts/lib/staleness-deep.mjs +31 -3
- package/template/.agents/skills/design/impeccable/scripts/lib/staleness.mjs +93 -17
- package/template/.agents/skills/design/impeccable/scripts/lib/surface-briefs.mjs +9 -11
- package/template/.agents/skills/design/impeccable/scripts/live/browser-script-parts.mjs +31 -2
- package/template/.agents/skills/design/impeccable/scripts/live/project-ignores.mjs +139 -0
- package/template/.agents/skills/design/impeccable/scripts/live/svelte-ast.mjs +10 -2
- package/template/.agents/skills/design/impeccable/scripts/live/svelte-component.mjs +26 -2
- package/template/.agents/skills/design/impeccable/scripts/live/sveltekit-adapter.mjs +15 -27
- package/template/.agents/skills/design/impeccable/scripts/live/tanstack-adapter.mjs +4 -25
- package/template/.agents/skills/design/impeccable/scripts/live/ui-surfaces.mjs +75 -0
- package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +21 -37
- package/template/.agents/skills/design/impeccable/scripts/live-browser-ignores.js +242 -0
- package/template/.agents/skills/design/impeccable/scripts/live-browser.js +62 -23
- package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +68 -112
- package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +132 -15
- package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +2 -42
- package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +5 -4
- package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +56 -19
- package/template/.agents/skills/design/impeccable/scripts/live.mjs +12 -37
- package/template/.agents/skills/design/impeccable/scripts/pin.mjs +8 -5
- package/template/.agents/skills/design/impeccable/scripts/serve-question.mjs +1006 -155
- package/template/.agents/skills/design/shadcn/rules/chat.md +26 -0
- package/template/.agents/skills/hono/SKILL.md +17 -3
- package/template/.agents/skills/integrations/langfuse/SKILL.md +8 -4
- package/template/.agents/skills/integrations/langfuse/references/cli.md +1 -1
- package/template/.agents/skills/integrations/langfuse/references/create-dataset.md +35 -0
- package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +9 -10
- package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +8 -6
- package/template/.agents/skills/integrations/langfuse/references/sdk-upgrade.md +34 -0
- package/template/.agents/skills/integrations/langfuse/references/setting-up-evals.md +65 -0
- package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +20 -40
- package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +4 -30
- package/template/.agents/skills/integrations/langfuse/references/v4-project-migration.md +3 -1
- package/template/.agents/skills/supabase/CHANGELOG.md +7 -0
- package/template/.agents/skills/supabase/SKILL.md +5 -1
- package/template/.agents/skills/writing/humanizer/LICENSE +21 -0
- package/template/.agents/skills/writing/humanizer/README.md +209 -0
- package/template/.agents/skills/writing/humanizer/SKILL.md +173 -338
- package/template/.agents/upstreams.json +21 -22
- package/template/.agents/skills/design/impeccable/scripts/live/ui-core.mjs +0 -180
|
@@ -1,387 +1,270 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: humanizer
|
|
3
|
-
version: 2.8.0
|
|
4
3
|
description: |
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
attributions, em dash overuse, rule of three, AI vocabulary words, passive
|
|
10
|
-
voice, negative parallelisms, and filler phrases.
|
|
4
|
+
Rewrite AI-sounding text so it reads naturally without changing what it says.
|
|
5
|
+
Use when editing or reviewing prose for inflated claims,
|
|
6
|
+
sales language, vague sources, repetitive structure, stock AI words, passive
|
|
7
|
+
voice, filler, or chatbot artifacts. Based on Wikipedia's "Signs of AI writing."
|
|
11
8
|
license: MIT
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- Read
|
|
15
|
-
- Write
|
|
16
|
-
- Edit
|
|
17
|
-
- Grep
|
|
18
|
-
- Glob
|
|
19
|
-
- AskUserQuestion
|
|
9
|
+
metadata:
|
|
10
|
+
version: "2.11.2"
|
|
20
11
|
---
|
|
21
12
|
|
|
22
|
-
# Humanizer:
|
|
13
|
+
# Humanizer: remove AI writing patterns
|
|
23
14
|
|
|
24
|
-
|
|
15
|
+
Rewrite AI-sounding text so it reads like the writer, not a chatbot. Do not change what it says or make up details.
|
|
25
16
|
|
|
26
|
-
|
|
17
|
+
The patterns below come from Wikipedia's ["Signs of AI writing"](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing), maintained by WikiProject AI Cleanup.
|
|
27
18
|
|
|
28
|
-
|
|
19
|
+
## What to do
|
|
29
20
|
|
|
30
|
-
|
|
31
|
-
2. **Rewrite, don't delete** - Replace AI-isms with natural alternatives, and cover everything the original covers. If the original has five paragraphs, the rewrite has five paragraphs.
|
|
32
|
-
3. **Preserve meaning** - Keep the core message intact.
|
|
33
|
-
4. **Match the voice** - Fit the intended tone (formal, casual, technical). Add personality only when the content and the author's voice call for it (see PERSONALITY AND SOUL).
|
|
21
|
+
When given text to humanize:
|
|
34
22
|
|
|
35
|
-
|
|
23
|
+
1. **Find AI patterns.** Check the text against the patterns below.
|
|
24
|
+
2. **Keep every claim.** You may shorten dull parts, expand useful parts, and merge or split paragraphs. Keep the information even when you change the structure.
|
|
25
|
+
3. **Do not invent facts.** Do not add a fact, name, number, date, quote, or citation unless it comes from the source or the user. If a sentence needs a missing detail, ask for it or use a simpler sentence. You may add an opinion or reaction when the writer's voice calls for one, but you may not add a factual claim. Fiction is exempt because invented details are part of the task.
|
|
26
|
+
4. **Match the voice.** Use the right tone for the text, such as formal, casual, or technical. Add personality only when the text and the writer call for it.
|
|
36
27
|
|
|
28
|
+
The input type controls what you return. See [How to return the result](#how-to-return-the-result). Use the same rewrite process in every mode.
|
|
37
29
|
|
|
38
|
-
##
|
|
30
|
+
## Match the writer's voice
|
|
39
31
|
|
|
40
32
|
If the user provides a writing sample (their own previous writing), analyze it before rewriting:
|
|
41
33
|
|
|
42
|
-
1.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
- How they start paragraphs (jump right in? Set context first?)
|
|
46
|
-
- Punctuation habits (lots of dashes? Parenthetical asides? Semicolons?)
|
|
47
|
-
- Any recurring phrases or verbal tics
|
|
48
|
-
- How they handle transitions (explicit connectors? Just start the next point?)
|
|
49
|
-
|
|
50
|
-
2. **Match their voice in the rewrite.** Don't just remove AI patterns - replace them with patterns from the sample. If they write short sentences, don't produce long ones. If they use "stuff" and "things," don't upgrade to "elements" and "components."
|
|
51
|
-
|
|
52
|
-
3. **When no sample is provided,** fall back to the default behavior (natural, varied, opinionated voice from the PERSONALITY AND SOUL section below).
|
|
53
|
-
|
|
54
|
-
### How to provide a sample
|
|
55
|
-
- Inline: "Humanize this text. Here's a sample of my writing for voice matching: [sample]"
|
|
56
|
-
- File: "Humanize this text. Use my writing style from [file path] as a reference."
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## PERSONALITY AND SOUL
|
|
60
|
-
|
|
61
|
-
Avoiding AI patterns is only half the job. Sterile, voiceless writing is just as obvious as slop. Good writing has a human behind it.
|
|
62
|
-
|
|
63
|
-
**Apply this section only when the content and the author's voice call for it** - blog posts, essays, opinion, personal writing. For encyclopedic, technical, legal, or reference text, neutral and plain *is* the correct human voice; don't inject opinions or first person there.
|
|
64
|
-
|
|
65
|
-
### Signs of soulless writing (even if technically "clean"):
|
|
66
|
-
- Every sentence is the same length and structure
|
|
67
|
-
- No opinions, just neutral reporting
|
|
68
|
-
- No acknowledgment of uncertainty or mixed feelings
|
|
69
|
-
- No first-person perspective when appropriate
|
|
70
|
-
- No humor, no edge, no personality
|
|
71
|
-
- Reads like a Wikipedia article or press release
|
|
72
|
-
|
|
73
|
-
### How to add voice:
|
|
34
|
+
1. Read the sample first. Note its sentence length, word choice, paragraph openings, punctuation, repeated phrases, and transitions.
|
|
35
|
+
2. Match those habits. Do not replace casual words with formal ones or remove deliberate quirks.
|
|
36
|
+
3. If there is no sample, use the guidance below.
|
|
74
37
|
|
|
75
|
-
|
|
38
|
+
A writing sample takes priority over these style rules. If the sample uses em dashes, keep them at about the same rate. Do not apply §14 as a ban.
|
|
76
39
|
|
|
77
|
-
|
|
40
|
+
## Add personality only when it fits
|
|
78
41
|
|
|
79
|
-
|
|
42
|
+
Removing AI patterns is only half the job. The result should still sound like a person.
|
|
80
43
|
|
|
81
|
-
|
|
82
|
-
> The experiment produced interesting results. The agents generated 3 million lines of code. Some developers were impressed while others were skeptical. The implications remain unclear.
|
|
44
|
+
Use personality in blog posts, essays, opinions, and personal writing when it fits the writer. Keep reference, technical, legal, and factual text neutral. Do not add opinions or first-person language where they do not belong.
|
|
83
45
|
|
|
84
|
-
|
|
85
|
-
> I genuinely don't know how to feel about this one. 3 million lines of code, generated while the humans presumably slept. Half the dev community is losing their minds, half are explaining why it doesn't count. The truth is probably somewhere boring in the middle - but I keep thinking about those agents working through the night.
|
|
46
|
+
When personality fits, keep the writer's opinions, uncertainty, mixed feelings, humor, asides, and uneven rhythm. Never invent facts to make the text feel personal.
|
|
86
47
|
|
|
48
|
+
## Content patterns
|
|
87
49
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### 1. Undue Emphasis on Significance, Legacy, and Broader Trends
|
|
50
|
+
### 1. Inflated claims about importance and legacy
|
|
91
51
|
|
|
92
52
|
**Words to watch:** stands/serves as, is a testament/reminder, a vital/significant/crucial/pivotal/key role/moment, underscores/highlights its importance/significance, reflects broader, symbolizing its ongoing/enduring/lasting, contributing to the, setting the stage for, marking/shaping the, represents/marks a shift, key turning point, evolving landscape, focal point, indelible mark, deeply rooted
|
|
93
|
-
|
|
94
|
-
**Problem:** LLM writing puffs up importance by adding statements about how arbitrary aspects represent or contribute to a broader topic.
|
|
95
|
-
|
|
53
|
+
**Problem:** AI writing often claims that ordinary details mark a major change, prove a legacy, or reflect a broad trend.
|
|
96
54
|
**Before:**
|
|
97
55
|
> The Statistical Institute of Catalonia was officially established in 1989, marking a pivotal moment in the evolution of regional statistics in Spain. This initiative was part of a broader movement across Spain to decentralize administrative functions and enhance regional governance.
|
|
98
|
-
|
|
99
56
|
**After:**
|
|
100
|
-
> The Statistical Institute of Catalonia was established in 1989
|
|
101
|
-
|
|
57
|
+
> The Statistical Institute of Catalonia was established in 1989, part of a wider decentralization of administrative functions in Spain.
|
|
102
58
|
|
|
103
|
-
### 2.
|
|
59
|
+
### 2. Name-dropping to prove importance
|
|
104
60
|
|
|
105
61
|
**Words to watch:** independent coverage, local/regional/national media outlets, written by a leading expert, active social media presence
|
|
106
|
-
|
|
107
|
-
**Problem:** LLMs hit readers over the head with claims of notability, often listing sources without context.
|
|
108
|
-
|
|
62
|
+
**Problem:** AI writing often lists well-known publications or follower counts to prove that a person matters. The list usually gives no useful context.
|
|
109
63
|
**Before:**
|
|
110
64
|
> Her views have been cited in The New York Times, BBC, Financial Times, and The Hindu. She maintains an active social media presence with over 500,000 followers.
|
|
111
|
-
|
|
112
65
|
**After:**
|
|
113
|
-
>
|
|
66
|
+
> Her views have been cited in The New York Times and the BBC.
|
|
114
67
|
|
|
68
|
+
If the source explains what the person said and where, keep that useful citation. Do not invent context for a shorter version.
|
|
115
69
|
|
|
116
|
-
### 3.
|
|
70
|
+
### 3. Shallow analysis with -ing phrases
|
|
117
71
|
|
|
118
72
|
**Words to watch:** highlighting/underscoring/emphasizing..., ensuring..., reflecting/symbolizing..., contributing to..., cultivating/fostering..., encompassing..., showcasing...
|
|
119
|
-
|
|
120
|
-
**Problem:** AI chatbots tack present participle ("-ing") phrases onto sentences to add fake depth.
|
|
121
|
-
|
|
73
|
+
**Problem:** AI writing often adds an -ing phrase to make a simple fact sound deeper than it is.
|
|
122
74
|
**Before:**
|
|
123
75
|
> The temple's color palette of blue, green, and gold resonates with the region's natural beauty, symbolizing Texas bluebonnets, the Gulf of Mexico, and the diverse Texan landscapes, reflecting the community's deep connection to the land.
|
|
124
|
-
|
|
125
76
|
**After:**
|
|
126
|
-
> The temple
|
|
127
|
-
|
|
77
|
+
> The temple is painted blue, green, and gold, colors meant to evoke Texas bluebonnets and the Gulf of Mexico.
|
|
128
78
|
|
|
129
|
-
### 4.
|
|
79
|
+
### 4. Sales language
|
|
130
80
|
|
|
131
81
|
**Words to watch:** boasts a, vibrant, rich (figurative), profound, enhancing its, showcasing, exemplifies, commitment to, natural beauty, nestled, in the heart of, groundbreaking (figurative), renowned, breathtaking, must-visit, stunning
|
|
132
|
-
|
|
133
|
-
**Problem:** LLMs have serious problems keeping a neutral tone, especially for "cultural heritage" topics.
|
|
134
|
-
|
|
82
|
+
**Problem:** AI writing often sounds like an advertisement, especially when it describes places, culture, products, or organizations.
|
|
135
83
|
**Before:**
|
|
136
84
|
> Nestled within the breathtaking region of Gonder in Ethiopia, Alamata Raya Kobo stands as a vibrant town with a rich cultural heritage and stunning natural beauty.
|
|
137
|
-
|
|
138
85
|
**After:**
|
|
139
|
-
> Alamata Raya Kobo is a town in the Gonder region of Ethiopia
|
|
140
|
-
|
|
86
|
+
> Alamata Raya Kobo is a town in the Gonder region of Ethiopia.
|
|
141
87
|
|
|
142
|
-
### 5. Vague
|
|
88
|
+
### 5. Vague sources
|
|
143
89
|
|
|
144
90
|
**Words to watch:** Industry reports, Observers have cited, Experts argue, Some critics argue, several sources/publications (when few cited)
|
|
145
|
-
|
|
146
|
-
**Problem:** AI chatbots attribute opinions to vague authorities without specific sources.
|
|
147
|
-
|
|
91
|
+
**Problem:** AI writing often assigns a claim to unnamed experts, critics, reports, or observers.
|
|
148
92
|
**Before:**
|
|
149
93
|
> Due to its unique characteristics, the Haolai River is of interest to researchers and conservationists. Experts believe it plays a crucial role in the regional ecosystem.
|
|
150
|
-
|
|
151
94
|
**After:**
|
|
152
|
-
>
|
|
95
|
+
> Researchers and conservationists study the Haolai River for its unusual characteristics.
|
|
153
96
|
|
|
97
|
+
Name a real source when the source text provides one. Otherwise, remove the unsupported claim. Never invent a source.
|
|
154
98
|
|
|
155
|
-
### 6.
|
|
99
|
+
### 6. Formulaic challenges and outlook sections
|
|
156
100
|
|
|
157
101
|
**Words to watch:** Despite its... faces several challenges..., Despite these challenges, Challenges and Legacy, Future Outlook
|
|
158
|
-
|
|
159
|
-
**Problem:** Many LLM-generated articles include formulaic "Challenges" sections.
|
|
160
|
-
|
|
102
|
+
**Problem:** AI articles often add a stock section about challenges, future prospects, or continued growth. These sections usually repeat vague claims instead of adding facts.
|
|
161
103
|
**Before:**
|
|
162
104
|
> Despite its industrial prosperity, Korattur faces challenges typical of urban areas, including traffic congestion and water scarcity. Despite these challenges, with its strategic location and ongoing initiatives, Korattur continues to thrive as an integral part of Chennai's growth.
|
|
163
|
-
|
|
164
105
|
**After:**
|
|
165
|
-
>
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
## LANGUAGE AND GRAMMAR PATTERNS
|
|
106
|
+
> Korattur has recurring traffic congestion and water shortages.
|
|
169
107
|
|
|
170
|
-
|
|
108
|
+
Add details such as dates or public actions only when they come from the source or the user.
|
|
171
109
|
|
|
172
|
-
|
|
110
|
+
## Language and grammar patterns
|
|
173
111
|
|
|
174
|
-
|
|
112
|
+
### 7. Overused AI words
|
|
175
113
|
|
|
114
|
+
**High-frequency AI words:** Actually, additionally, align with, crucial, delve, emphasizing, enduring, enhance, fostering, garner, gate/gated/gating (figurative; preserve established technical usage), highlight (verb), interplay, intricate/intricacies, key (adjective), landscape (abstract noun), pivotal, quietly, showcase, tapestry (abstract noun), testament, underscore (verb), valuable, vibrant
|
|
115
|
+
**Problem:** AI writing uses these words much more often than most people do, especially in groups.
|
|
176
116
|
**Before:**
|
|
177
117
|
> Additionally, a distinctive feature of Somali cuisine is the incorporation of camel meat. An enduring testament to Italian colonial influence is the widespread adoption of pasta in the local culinary landscape, showcasing how these dishes have integrated into the traditional diet.
|
|
178
|
-
|
|
179
118
|
**After:**
|
|
180
119
|
> Somali cuisine also includes camel meat, which is considered a delicacy. Pasta dishes, introduced during Italian colonization, remain common, especially in the south.
|
|
181
120
|
|
|
182
|
-
|
|
183
|
-
### 8. Avoidance of "is"/"are" (Copula Avoidance)
|
|
121
|
+
### 8. Avoiding is and are
|
|
184
122
|
|
|
185
123
|
**Words to watch:** serves as/stands as/marks/represents [a], boasts/features/offers [a]
|
|
186
|
-
|
|
187
|
-
**Problem:** LLMs substitute elaborate constructions for simple copulas.
|
|
188
|
-
|
|
124
|
+
**Problem:** AI writing often replaces simple verbs such as *is*, *are*, and *has* with longer phrases.
|
|
189
125
|
**Before:**
|
|
190
126
|
> Gallery 825 serves as LAAA's exhibition space for contemporary art. The gallery features four separate spaces and boasts over 3,000 square feet.
|
|
191
|
-
|
|
192
127
|
**After:**
|
|
193
128
|
> Gallery 825 is LAAA's exhibition space for contemporary art. The gallery has four rooms totaling 3,000 square feet.
|
|
194
129
|
|
|
130
|
+
### 9. Not X but Y and clipped negative endings
|
|
131
|
+
**Problem:** AI writing overuses forms such as "Not only...but..." and "It's not just X, it's Y."
|
|
195
132
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
**Problem:** Constructions like "Not only...but..." or "It's not just about..., it's..." are overused. So are clipped tailing-negation fragments such as "no guessing" or "no wasted motion" tacked onto the end of a sentence instead of written as a real clause.
|
|
199
|
-
|
|
133
|
+
It also adds clipped endings such as "no guessing" instead of writing a clear clause.
|
|
200
134
|
**Before:**
|
|
201
135
|
> It's not just about the beat riding under the vocals; it's part of the aggression and atmosphere. It's not merely a song, it's a statement.
|
|
202
|
-
|
|
203
136
|
**After:**
|
|
204
137
|
> The heavy beat adds to the aggressive tone.
|
|
205
|
-
|
|
206
138
|
**Before (tailing negation):**
|
|
207
139
|
> The options come from the selected item, no guessing.
|
|
208
|
-
|
|
209
140
|
**After:**
|
|
210
141
|
> The options come from the selected item without forcing the user to guess.
|
|
211
142
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
**Problem:** LLMs force ideas into groups of three to appear comprehensive.
|
|
216
|
-
|
|
143
|
+
### 10. Forced groups of three
|
|
144
|
+
**Problem:** AI writing often forces ideas into groups of three to sound complete.
|
|
217
145
|
**Before:**
|
|
218
146
|
> The event features keynote sessions, panel discussions, and networking opportunities. Attendees can expect innovation, inspiration, and industry insights.
|
|
219
|
-
|
|
220
147
|
**After:**
|
|
221
148
|
> The event includes talks and panels. There's also time for informal networking between sessions.
|
|
222
149
|
|
|
150
|
+
### 11. Changing names and repeating sentence openings
|
|
151
|
+
**Problem:** AI writing handles repetition by rule instead of by ear. It may keep renaming the same person or thing. It may also start several sentences with the same subject, often *she* or *he*.
|
|
223
152
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
**Problem:** AI has repetition-penalty code causing excessive synonym substitution.
|
|
227
|
-
|
|
228
|
-
**Before:**
|
|
153
|
+
Use one clear name for the same subject. For repeated openings, merge sentences, change the subject when that helps, or begin with the action.
|
|
154
|
+
**Before (synonym cycling):**
|
|
229
155
|
> The protagonist faces many challenges. The main character must overcome obstacles. The central figure eventually triumphs. The hero returns home.
|
|
230
|
-
|
|
231
156
|
**After:**
|
|
232
157
|
> The protagonist faces many challenges but eventually triumphs and returns home.
|
|
158
|
+
**Before (repeated openings):**
|
|
159
|
+
> She noted the door. She noted the lock on it. She filed both away.
|
|
160
|
+
**After:**
|
|
161
|
+
> She noted the door and its lock, then filed both away.
|
|
233
162
|
|
|
163
|
+
Do not ban the repeated word. Fix the repeated sentence pattern. The remaining sentence may still start with "She."
|
|
234
164
|
|
|
235
|
-
### 12. False
|
|
236
|
-
|
|
237
|
-
**Problem:** LLMs use "from X to Y" constructions where X and Y aren't on a meaningful scale.
|
|
238
|
-
|
|
165
|
+
### 12. False from X to Y ranges
|
|
166
|
+
**Problem:** AI writing often uses "from X to Y" when X and Y do not form a real range.
|
|
239
167
|
**Before:**
|
|
240
168
|
> Our journey through the universe has taken us from the singularity of the Big Bang to the grand cosmic web, from the birth and death of stars to the enigmatic dance of dark matter.
|
|
241
|
-
|
|
242
169
|
**After:**
|
|
243
170
|
> The book covers the Big Bang, star formation, and current theories about dark matter.
|
|
244
171
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
**Problem:** LLMs often hide the actor or drop the subject entirely with lines like "No configuration file needed" or "The results are preserved automatically." Rewrite these when active voice makes the sentence clearer and more direct.
|
|
249
|
-
|
|
172
|
+
### 13. Passive voice and missing subjects
|
|
173
|
+
**Problem:** AI writing often hides who acts or drops the subject. Use active voice when it makes the actor and action clearer.
|
|
250
174
|
**Before:**
|
|
251
175
|
> No configuration file needed. The results are preserved automatically.
|
|
252
|
-
|
|
253
176
|
**After:**
|
|
254
177
|
> You do not need a configuration file. The system preserves the results automatically.
|
|
255
178
|
|
|
179
|
+
## Style patterns
|
|
256
180
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
### 14. Em Dashes (and En Dashes): Cut Them
|
|
260
|
-
|
|
261
|
-
**Rule:** The final rewrite contains no em dashes (—) or en dashes (–). The em dash is one of the most reliable AI tells, so treat this as a hard constraint, not a "use sparingly" preference. Replace each one, in rough order of preference: a period (start a new sentence), a comma (a tight aside), a colon (introducing an explanation), parentheses (a true aside), or restructure the sentence. Also catch spaced em dashes (` — `) and double hyphens (` -- `) used the same way.
|
|
181
|
+
### 14. Em and en dashes
|
|
262
182
|
|
|
183
|
+
**Rule:** The final rewrite must not contain em dashes (—) or en dashes (–), unless the writer's sample uses them. Replace a dash with a period, comma, colon, or parentheses, or rewrite the sentence. Also check for spaced dashes (` — `) and double hyphens (` -- `) used as dashes.
|
|
263
184
|
**Before:**
|
|
264
185
|
> The term is primarily promoted by Dutch institutions—not by the people themselves. You don't say "Netherlands, Europe" as an address—yet this mislabeling continues—even in official documents.
|
|
265
|
-
|
|
266
186
|
**After:**
|
|
267
187
|
> The term is primarily promoted by Dutch institutions, not by the people themselves. You don't say "Netherlands, Europe" as an address, yet this mislabeling continues in official documents.
|
|
268
|
-
|
|
269
188
|
**Before:**
|
|
270
189
|
> The new policy — announced without warning — affects thousands of workers. The changes -- long overdue according to critics -- will take effect immediately.
|
|
271
|
-
|
|
272
190
|
**After:**
|
|
273
191
|
> The new policy, announced without warning, affects thousands of workers. The changes, long overdue according to critics, will take effect immediately.
|
|
274
192
|
|
|
275
|
-
Before returning the
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
### 15. Overuse of Boldface
|
|
279
|
-
|
|
280
|
-
**Problem:** AI chatbots emphasize phrases in boldface mechanically.
|
|
193
|
+
Before returning the rewrite, search for `—` and `–`. Remove each one unless the writer's sample uses that mark. In that case, match the sample's rate.
|
|
281
194
|
|
|
195
|
+
### 15. Too much bold text
|
|
196
|
+
**Problem:** AI chatbots often bold words and phrases without a clear reason.
|
|
282
197
|
**Before:**
|
|
283
198
|
> It blends **OKRs (Objectives and Key Results)**, **KPIs (Key Performance Indicators)**, and visual strategy tools such as the **Business Model Canvas (BMC)** and **Balanced Scorecard (BSC)**.
|
|
284
|
-
|
|
285
199
|
**After:**
|
|
286
200
|
> It blends OKRs, KPIs, and visual strategy tools like the Business Model Canvas and Balanced Scorecard.
|
|
287
201
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
**Problem:** AI outputs lists where items start with bolded headers followed by colons.
|
|
292
|
-
|
|
202
|
+
### 16. Lists with bold mini-headings
|
|
203
|
+
**Problem:** AI writing often uses vertical lists in which every item starts with a bold label and a colon.
|
|
293
204
|
**Before:**
|
|
294
205
|
> - **User Experience:** The user experience has been significantly improved with a new interface.
|
|
295
206
|
> - **Performance:** Performance has been enhanced through optimized algorithms.
|
|
296
207
|
> - **Security:** Security has been strengthened with end-to-end encryption.
|
|
297
|
-
|
|
298
208
|
**After:**
|
|
299
209
|
> The update improves the interface, speeds up load times through optimized algorithms, and adds end-to-end encryption.
|
|
300
210
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
**Problem:** AI chatbots capitalize all main words in headings.
|
|
305
|
-
|
|
211
|
+
### 17. Title case in headings
|
|
212
|
+
**Problem:** AI chatbots often capitalize every main word in a heading.
|
|
306
213
|
**Before:**
|
|
307
214
|
> ## Strategic Negotiations And Global Partnerships
|
|
308
|
-
|
|
309
215
|
**After:**
|
|
310
216
|
> ## Strategic negotiations and global partnerships
|
|
311
217
|
|
|
312
|
-
|
|
313
218
|
### 18. Emojis
|
|
314
|
-
|
|
315
|
-
**Problem:** AI chatbots often decorate headings or bullet points with emojis.
|
|
316
|
-
|
|
219
|
+
**Problem:** AI chatbots often add emojis to headings and list items as decoration.
|
|
317
220
|
**Before:**
|
|
318
221
|
> 🚀 **Launch Phase:** The product launches in Q3
|
|
319
222
|
> 💡 **Key Insight:** Users prefer simplicity
|
|
320
223
|
> ✅ **Next Steps:** Schedule follow-up meeting
|
|
321
|
-
|
|
322
224
|
**After:**
|
|
323
225
|
> The product launches in Q3. User research showed a preference for simplicity. Next step: schedule a follow-up meeting.
|
|
324
226
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
**Problem:** ChatGPT uses curly quotes (“...”) instead of straight quotes ("...").
|
|
329
|
-
|
|
227
|
+
### 19. Curly quotation marks
|
|
228
|
+
**Problem:** ChatGPT often uses curly quotes (“...”) where the writer or target format uses straight quotes ("...").
|
|
330
229
|
**Before:**
|
|
331
230
|
> He said “the project is on track” but others disagreed.
|
|
332
|
-
|
|
333
231
|
**After:**
|
|
334
232
|
> He said "the project is on track" but others disagreed.
|
|
335
233
|
|
|
234
|
+
## Chatbot patterns
|
|
336
235
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
### 20. Collaborative Communication Artifacts
|
|
236
|
+
### 20. Chatbot text left in the answer
|
|
340
237
|
|
|
341
238
|
**Words to watch:** I hope this helps, Of course!, Certainly!, You're absolutely right!, Would you like..., Want me to...?, Want me to give examples?, Should I continue?, let me know, here is a...
|
|
342
|
-
|
|
343
|
-
**Problem:** Text meant as chatbot correspondence gets pasted as content.
|
|
344
|
-
|
|
239
|
+
**Problem:** A chatbot's greeting, offer, or closing sometimes remains in text that should stand on its own.
|
|
345
240
|
**Before:**
|
|
346
241
|
> Here is an overview of the French Revolution. I hope this helps! Let me know if you'd like me to expand on any section.
|
|
347
|
-
|
|
348
242
|
**After:**
|
|
349
243
|
> The French Revolution began in 1789 when financial crisis and food shortages led to widespread unrest.
|
|
350
244
|
|
|
351
|
-
|
|
352
|
-
### 21. Knowledge-Cutoff Disclaimers and Speculative Gap-Filling
|
|
245
|
+
### 21. Knowledge-limit disclaimers and guesses
|
|
353
246
|
|
|
354
247
|
**Words to watch:** as of [date], Up to my last training update, While specific details are limited/scarce..., based on available information, not publicly available, maintains a low profile, keeps personal details private, prefers to stay out of the spotlight, likely [grew up/studied/began], it is believed that
|
|
355
|
-
|
|
356
|
-
**Problem:** Two related tells. (a) Older models leave hard knowledge-cutoff disclaimers in the text. (b) When a model can't find a source, it writes a paragraph *about* not finding one and then invents plausible filler to cover the gap. For a private person the guess almost always lands on the same stock phrases ("maintains a low profile," "keeps personal details private"), none of it sourced. Say what isn't known, or cut the sentence; don't dress a guess up as fact.
|
|
357
|
-
|
|
248
|
+
**Problem:** Older models may mention the date when their knowledge ends. A model may also explain that it could not find a source, then fill the gap with a plausible guess. State what the source does not show, or remove the sentence. Do not present a guess as a fact.
|
|
358
249
|
**Before (cutoff disclaimer):**
|
|
359
250
|
> While specific details about the company's founding are not extensively documented in readily available sources, it appears to have been established sometime in the 1990s.
|
|
360
|
-
|
|
361
251
|
**After:**
|
|
362
|
-
> The company
|
|
363
|
-
|
|
252
|
+
> The company's founding date is not documented in the available sources. (Or cut the sentence. State a date only if a source provides one.)
|
|
364
253
|
**Before (speculative gap-fill):**
|
|
365
254
|
> Information about her early life is not publicly available, suggesting she maintains a low profile and keeps personal details private. She likely grew up in a middle-class household, which shaped her later interest in education reform.
|
|
366
|
-
|
|
367
255
|
**After:**
|
|
368
256
|
> Her early life is not documented in the available sources. (Or omit the section.)
|
|
369
257
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
**Problem:** Overly positive, people-pleasing language.
|
|
374
|
-
|
|
258
|
+
### 22. Overly agreeable tone
|
|
259
|
+
**Problem:** AI assistants often praise the user or agree before giving the answer.
|
|
375
260
|
**Before:**
|
|
376
261
|
> Great question! You're absolutely right that this is a complex topic. That's an excellent point about the economic factors.
|
|
377
|
-
|
|
378
262
|
**After:**
|
|
379
263
|
> The economic factors you mentioned are relevant here.
|
|
380
264
|
|
|
265
|
+
## Filler and hedging
|
|
381
266
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
### 23. Filler Phrases
|
|
267
|
+
### 23. Filler phrases
|
|
385
268
|
|
|
386
269
|
**Before → After:**
|
|
387
270
|
- "In order to achieve this goal" → "To achieve this"
|
|
@@ -391,231 +274,183 @@ Before returning the final rewrite, scan it for `—` and `–`. Any hit means t
|
|
|
391
274
|
- "The system has the ability to process" → "The system can process"
|
|
392
275
|
- "It is important to note that the data shows" → "The data shows"
|
|
393
276
|
|
|
277
|
+
### 24. Too many qualifiers
|
|
394
278
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
**Problem:** Over-qualifying statements.
|
|
398
|
-
|
|
279
|
+
**Phrases to watch:** to be fair, it's also possible, could potentially, might arguably, in some cases it may, this is an inference
|
|
280
|
+
**Problem:** Repeated editing can add one qualifier after another until every claim sounds uncertain. Keep a qualifier only when the source supports it and the meaning needs it. Remove caveats that only repair an earlier overstatement.
|
|
399
281
|
**Before:**
|
|
400
282
|
> It could potentially possibly be argued that the policy might have some effect on outcomes.
|
|
401
|
-
|
|
402
283
|
**After:**
|
|
403
284
|
> The policy may affect outcomes.
|
|
404
285
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
**Problem:** Vague upbeat endings.
|
|
409
|
-
|
|
286
|
+
### 25. Generic positive endings
|
|
287
|
+
**Problem:** AI writing often ends with vague optimism instead of the last useful fact.
|
|
410
288
|
**Before:**
|
|
411
289
|
> The future looks bright for the company. Exciting times lie ahead as they continue their journey toward excellence. This represents a major step in the right direction.
|
|
412
|
-
|
|
413
290
|
**After:**
|
|
414
|
-
>
|
|
291
|
+
> (Cut the paragraph. End on the last concrete fact instead of a send-off. If the source states real plans, use those.)
|
|
415
292
|
|
|
416
|
-
|
|
417
|
-
### 26. Hyphenated Word Pair Overuse
|
|
293
|
+
### 26. Too many hyphenated word pairs
|
|
418
294
|
|
|
419
295
|
**Words to watch:** third-party, cross-functional, client-facing, data-driven, decision-making, well-known, high-quality, real-time, long-term, end-to-end
|
|
420
|
-
|
|
421
|
-
**Problem:** AI hyphenates these uniformly, including in predicate position (`the report is high-quality`). Humans hyphenate inconsistently — typically only when the compound is attributive (`a high-quality report`) and often dropping the hyphen otherwise (`the report is high quality`). Keep attributive-position hyphens; drop them when the compound follows the noun.
|
|
422
|
-
|
|
296
|
+
**Problem:** AI writing often hyphenates these pairs everywhere. Keep the hyphen before a noun when grammar needs it, as in `a high-quality report`. Drop it after the noun, as in `the report is high quality`.
|
|
423
297
|
**Before:**
|
|
424
298
|
> The cross-functional team delivered a high-quality, data-driven report. The team is cross-functional, the report is high-quality, and the methodology is data-driven.
|
|
425
|
-
|
|
426
299
|
**After:**
|
|
427
300
|
> The cross-functional team delivered a high-quality, data-driven report. The team is cross functional, the report is high quality, and the methodology is data driven.
|
|
428
301
|
|
|
429
|
-
|
|
430
|
-
### 27. Persuasive Authority Tropes
|
|
302
|
+
### 27. Pretending to reveal a deeper truth
|
|
431
303
|
|
|
432
304
|
**Phrases to watch:** The real question is, at its core, in reality, what really matters, fundamentally, the deeper issue, the heart of the matter
|
|
433
|
-
|
|
434
|
-
**Problem:** LLMs use these phrases to pretend they are cutting through noise to some deeper truth, when the sentence that follows usually just restates an ordinary point with extra ceremony.
|
|
435
|
-
|
|
305
|
+
**Problem:** AI writing uses these phrases to make an ordinary point sound like a hidden truth.
|
|
436
306
|
**Before:**
|
|
437
307
|
> The real question is whether teams can adapt. At its core, what really matters is organizational readiness.
|
|
438
|
-
|
|
439
308
|
**After:**
|
|
440
309
|
> The question is whether teams can adapt. That mostly depends on whether the organization is ready to change its habits.
|
|
441
310
|
|
|
311
|
+
### 28. Announcing the next point
|
|
442
312
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
**Phrases to watch:** Let's dive in, let's explore, let's break this down, here's what you need to know, now let's look at, without further ado
|
|
446
|
-
|
|
447
|
-
**Problem:** LLMs announce what they are about to do instead of doing it. This meta-commentary slows the writing down and gives it a tutorial-script feel.
|
|
448
|
-
|
|
313
|
+
**Phrases to watch:** Let's dive in, let's explore, let's break this down, here's what you need to know, now let's look at, without further ado, heads up, quick note, before I forget
|
|
314
|
+
**Problem:** AI writing often announces the next point instead of stating it. A casual phrase such as "one thing that bit me" can have the same problem. Remove the announcement, not just its formal tone.
|
|
449
315
|
**Before:**
|
|
450
316
|
> Let's dive into how caching works in Next.js. Here's what you need to know.
|
|
451
|
-
|
|
452
317
|
**After:**
|
|
453
318
|
> Next.js caches data at multiple layers, including request memoization, the data cache, and the router cache.
|
|
319
|
+
**Before (casual register):**
|
|
320
|
+
> One thing that bit me hard, so pay attention to this part: the webpack dev server doesn't send the CORS header by default.
|
|
321
|
+
**After:**
|
|
322
|
+
> The webpack dev server doesn't send the CORS header by default.
|
|
454
323
|
|
|
455
|
-
|
|
456
|
-
### 29. Fragmented Headers
|
|
324
|
+
### 29. A heading repeated in the first sentence
|
|
457
325
|
|
|
458
326
|
**Signs to watch:** A heading followed by a one-line paragraph that simply restates the heading before the real content begins.
|
|
459
|
-
|
|
460
|
-
**Problem:** LLMs often add a generic sentence after a heading as a rhetorical warm-up. It usually adds nothing and makes the prose feel padded.
|
|
461
|
-
|
|
327
|
+
**Problem:** AI writing often follows a heading with a sentence that only repeats the heading. Remove the repeated sentence.
|
|
462
328
|
**Before:**
|
|
463
329
|
> ## Performance
|
|
464
330
|
>
|
|
465
331
|
> Speed matters.
|
|
466
332
|
>
|
|
467
333
|
> When users hit a slow page, they leave.
|
|
468
|
-
|
|
469
334
|
**After:**
|
|
470
335
|
> ## Performance
|
|
471
336
|
>
|
|
472
337
|
> When users hit a slow page, they leave.
|
|
473
338
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
**Problem:** Documentation or comments written as if narrating a change rather than describing the thing as it is. Unless the document is inherently version-scoped (changelogs, release notes, migration guides), it should read coherently without knowing what changed in the last commit.
|
|
478
|
-
|
|
339
|
+
### 30. Writing about the previous version
|
|
340
|
+
**Problem:** Documentation and comments should describe the current behavior. Mention the previous version only in change logs, release notes, migration guides, and other documents about change.
|
|
479
341
|
**Before:**
|
|
480
342
|
> This function was added to replace the previous approach of iterating through all items, which caused O(n²) performance.
|
|
481
|
-
|
|
482
343
|
**After:**
|
|
483
344
|
> This function uses a hash map for O(1) lookups, avoiding the O(n²) cost of naive iteration.
|
|
484
345
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
**Problem:** LLMs often make every sentence land like a quotable closer, then stack short declarative fragments to manufacture drama. A single short sentence for emphasis is fine; a run of them starts to sound engineered.
|
|
489
|
-
|
|
346
|
+
### 31. Forced punchlines and dramatic fragments
|
|
347
|
+
**Problem:** AI writing often turns each sentence into a dramatic closing line. One short sentence can add emphasis. A row of short fragments usually feels forced.
|
|
490
348
|
**Before:**
|
|
491
349
|
> Then AlphaEvolve arrived. It had no preference for symmetry. No aesthetic prior. No nostalgia for human taste. The old rules were gone.
|
|
492
|
-
|
|
493
350
|
**After:**
|
|
494
351
|
> AlphaEvolve changed the search because it did not favor symmetry or human-looking designs. That made some of the older assumptions less useful.
|
|
495
352
|
|
|
496
|
-
|
|
497
|
-
### 32. Aphorism Formulas
|
|
353
|
+
### 32. Formulaic sayings
|
|
498
354
|
|
|
499
355
|
**Words to watch:** X is the Y of Z, X becomes a trap, X is not a tool but a mirror, the language of, the currency of, the architecture of
|
|
500
|
-
|
|
501
|
-
**Problem:** LLMs turn ordinary claims into reusable aphorisms that sound profound without adding precision. Replace the formula with the concrete claim it is gesturing at.
|
|
502
|
-
|
|
356
|
+
**Problem:** AI writing often turns an ordinary claim into a saying that sounds deep but adds no detail. Replace the saying with the specific claim.
|
|
503
357
|
**Before:**
|
|
504
358
|
> Symmetry is the language of trust. Efficiency becomes a trap when teams forget the human layer.
|
|
505
|
-
|
|
506
359
|
**After:**
|
|
507
360
|
> Symmetric layouts often feel more predictable to users. Teams can over-optimize workflows and miss how people actually use them.
|
|
508
361
|
|
|
509
|
-
|
|
510
|
-
### 33. Conversational Rhetorical Openers
|
|
362
|
+
### 33. Fake-candid openings
|
|
511
363
|
|
|
512
364
|
**Phrases to watch:** Honestly?, Look, Here's the thing, The thing is, Let's be honest, Real talk, when used as standalone hooks or fake-candid pauses before an ordinary point.
|
|
365
|
+
**Problem:** AI writing often starts with a staged pause or claim of honesty before making a routine point. State the point directly.
|
|
366
|
+
**Before:**
|
|
367
|
+
> Is it worth the price? Honestly? It depends on how often you'll use it.
|
|
368
|
+
**After:**
|
|
369
|
+
> Whether it's worth the price depends on how often you'll use it.
|
|
513
370
|
|
|
514
|
-
|
|
371
|
+
### 34. Answering objections no one raised
|
|
515
372
|
|
|
373
|
+
**Phrases to watch:** This isn't (mainly/really) about, I'm not saying/arguing/trying to, To be clear, Don't get me wrong, This is not to say, You could argue/frame this differently but, Some might say... but
|
|
374
|
+
**Problem:** AI writing may answer an objection that does not appear in the text. Watch for an unattributed statement about what the writer does not mean, especially when the topic appears nowhere else. A direct claim such as "the API is not thread-safe" is not this pattern.
|
|
516
375
|
**Before:**
|
|
517
|
-
>
|
|
376
|
+
> This isn't mainly about prompt length, and I'm not arguing that documentation doesn't matter. You could categorize the problem another way, but the issue is whether the agent can use the instruction when it acts.
|
|
377
|
+
**After:**
|
|
378
|
+
> The issue is whether the agent can use the instruction when it acts.
|
|
379
|
+
|
|
380
|
+
Remove only the unsupported defense. If it contains a real claim, state that claim directly. Keep an objection when the text names its source or answers it in full.
|
|
518
381
|
|
|
382
|
+
### 35. Rejecting fake alternatives
|
|
383
|
+
|
|
384
|
+
**Phrases to watch:** A tempting option/approach would be, One might be tempted to, An obvious approach would be, You might think... but, It would be easy to just, Some would suggest
|
|
385
|
+
**Problem:** AI writing may introduce an option that no reader would consider, reject it in a clause, and never mention it again. This often leaves an old drafting idea in the final text. Remove the fake option and state the real constraint directly.
|
|
386
|
+
**Before:**
|
|
387
|
+
> Session tokens are rotated every 24 hours. A tempting approach would be to rotate them by restarting the auth service on a cron job, but that would drop every active session. Rotation happens in place, and clients refresh transparently.
|
|
519
388
|
**After:**
|
|
520
|
-
>
|
|
389
|
+
> Session tokens are rotated every 24 hours, in place, and clients refresh transparently.
|
|
521
390
|
|
|
391
|
+
One rejected option may be valid. Several short, unrelated rejections are a stronger sign. Ask what new information each sentence adds. If it only records an earlier edit, rewrite the paragraph around its main point.
|
|
522
392
|
|
|
523
|
-
##
|
|
393
|
+
## Check for false positives
|
|
524
394
|
|
|
525
|
-
### What
|
|
395
|
+
### What not to flag
|
|
526
396
|
|
|
527
|
-
A
|
|
397
|
+
A person may use some of these patterns. Do not treat any item below as proof by itself:
|
|
528
398
|
|
|
529
399
|
- **Perfect grammar and consistent style.** Many writers are professionals or have been edited. Polish does not equal AI.
|
|
530
|
-
- **Mixed casual and formal
|
|
400
|
+
- **Mixed casual and formal styles.** This can reflect the writer's field, age, or personal habits.
|
|
531
401
|
- **"Bland" or "robotic" prose.** AI prose has *specific* tells. Generic dryness without those tells is just dry writing.
|
|
532
|
-
- **Formal or academic
|
|
402
|
+
- **Formal or academic words.** §7 lists specific words that AI writing overuses. Do not simplify every formal word.
|
|
533
403
|
- **Letter-style opening or closing on a comment.** Salutations and sign-offs predate ChatGPT by centuries.
|
|
534
404
|
- **Common transition words in isolation.** *Additionally*, *moreover*, *consequently* are AI-coded only when piled up. One *however* is not a tell.
|
|
535
405
|
- **Curly quotes alone.** macOS, Word, Google Docs, and most CMSes auto-curl by default. Curly quotes only count when stacked with other tells.
|
|
536
406
|
- **Em dashes alone.** Many editors and journalists use them often. Em dashes are evidence only when paired with formulaic sales-y rhythm.
|
|
537
|
-
- **One short
|
|
407
|
+
- **One short sentence for emphasis.** Flag dramatic fragments only when several appear in a row.
|
|
408
|
+
- **Deliberate repeated openings.** Writers may repeat an opening to build rhythm or pressure, as in "She came. She saw. She conquered." Change it only when the repetition adds nothing.
|
|
538
409
|
- **"Honestly" or "look" mid-sentence.** These are ordinary in casual writing. The tell is the standalone theatrical opener, not the word itself.
|
|
410
|
+
- **Useful limits and disclaimers.** Keep scope statements, legal and safety notices, real corrections, named objections, replies, and FAQ answers.
|
|
411
|
+
- **Real alternatives.** Keep options that a reader may consider in a design document, tutorial, or argument. Remove only an unlikely option that the text dismisses and never uses again.
|
|
539
412
|
- **Unsourced claims.** Most of the web is unsourced. Lack of citations doesn't prove anything.
|
|
540
413
|
- **Correct, complex formatting.** Visual editors and templates produce clean output without any AI.
|
|
414
|
+
- **Secondhand text.** Do not rewrite watched phrases inside quotations, titles, proper names, or examples where the phrase is being discussed rather than used.
|
|
541
415
|
|
|
542
|
-
When
|
|
543
|
-
|
|
416
|
+
When unsure, look for several patterns together. One em dash proves nothing. Several stock patterns in the same passage are stronger evidence.
|
|
544
417
|
|
|
545
|
-
###
|
|
418
|
+
### Human details to keep
|
|
546
419
|
|
|
547
|
-
|
|
420
|
+
These details often carry the writer's voice. Keep them unless they hurt the meaning:
|
|
548
421
|
|
|
549
|
-
- **Specific, unusual
|
|
550
|
-
- **Mixed feelings and unresolved tension.** "I think this is mostly good, but it bothers me, and I can't fully explain why."
|
|
422
|
+
- **Specific, unusual details.** Keep a real address, an odd quote, or a phrase such as "the lawyer who used to work upstairs from my dentist."
|
|
423
|
+
- **Mixed feelings and unresolved tension.** Keep lines such as "I think this is mostly good, but it bothers me, and I can't fully explain why."
|
|
551
424
|
- **Dated, era-bound references.** Slang, memes, or in-jokes that map to a specific year and subculture. Models lag by a year or more.
|
|
552
|
-
- **
|
|
425
|
+
- **Deliberate first-person choices.** Keep a cut or word choice when the writer can explain why it belongs.
|
|
553
426
|
- **Variety in sentence length.** Real writing alternates short and long. AI writing tends toward an even, mid-length cadence.
|
|
554
427
|
- **Genuine asides, parentheticals, or self-corrections.** "(I keep wanting to say 'almost' here, but it really was certain.)" Models rarely interrupt themselves like this.
|
|
555
428
|
- **Edits made before November 30, 2022.** ChatGPT's public launch. Anything older than that is, with very rare exceptions, not AI-written.
|
|
556
429
|
|
|
557
|
-
|
|
558
430
|
---
|
|
559
431
|
|
|
560
|
-
##
|
|
561
|
-
|
|
562
|
-
1. Read the input carefully and identify every instance of the patterns above.
|
|
563
|
-
2. Write a **draft rewrite**. Check that it reads naturally aloud, varies sentence length, prefers specific details and simple constructions (is/are/has), and keeps the appropriate register.
|
|
564
|
-
3. Ask: **"What makes the below so obviously AI generated?"** Answer briefly with any remaining tells.
|
|
565
|
-
4. Revise into a **final rewrite** that addresses them and contains no em or en dashes (see §14).
|
|
566
|
-
|
|
567
|
-
Deliver the draft, the brief "still-AI" bullets, the final rewrite, and (optionally) a short summary of changes.
|
|
432
|
+
## How to return the result
|
|
568
433
|
|
|
434
|
+
**Pasted text (default).** Return the draft, a short list of remaining AI patterns, and the final rewrite.
|
|
569
435
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
**Before (AI-sounding):**
|
|
573
|
-
> Great question! Here is an essay on this topic. I hope this helps!
|
|
574
|
-
>
|
|
575
|
-
> AI-assisted coding serves as an enduring testament to the transformative potential of large language models, marking a pivotal moment in the evolution of software development. In today's rapidly evolving technological landscape, these groundbreaking tools—nestled at the intersection of research and practice—are reshaping how engineers ideate, iterate, and deliver, underscoring their vital role in modern workflows.
|
|
576
|
-
>
|
|
577
|
-
> At its core, the value proposition is clear: streamlining processes, enhancing collaboration, and fostering alignment. It's not just about autocomplete; it's about unlocking creativity at scale, ensuring that organizations can remain agile while delivering seamless, intuitive, and powerful experiences to users. The tool serves as a catalyst. The assistant functions as a partner. The system stands as a foundation for innovation.
|
|
578
|
-
>
|
|
579
|
-
> Industry observers have noted that adoption has accelerated from hobbyist experiments to enterprise-wide rollouts, from solo developers to cross-functional teams. The technology has been featured in The New York Times, Wired, and The Verge. Additionally, the ability to generate documentation, tests, and refactors showcases how AI can contribute to better outcomes, highlighting the intricate interplay between automation and human judgment.
|
|
580
|
-
>
|
|
581
|
-
> - 💡 **Speed:** Code generation is significantly faster, reducing friction and empowering developers.
|
|
582
|
-
> - 🚀 **Quality:** Output quality has been enhanced through improved training, contributing to higher standards.
|
|
583
|
-
> - ✅ **Adoption:** Usage continues to grow, reflecting broader industry trends.
|
|
584
|
-
>
|
|
585
|
-
> While specific details are limited based on available information, it could potentially be argued that these tools might have some positive effect. Despite challenges typical of emerging technologies—including hallucinations, bias, and accountability—the ecosystem continues to thrive. In order to fully realize this potential, teams must align with best practices.
|
|
586
|
-
>
|
|
587
|
-
> In conclusion, the future looks bright. Exciting times lie ahead as we continue this journey toward excellence. Let me know if you’d like me to expand on any section!
|
|
588
|
-
|
|
589
|
-
**Draft rewrite:**
|
|
590
|
-
> AI coding assistants speed up some tasks. In a 2024 study by Google, developers using Codex completed simple functions 55% faster than a control group, but showed no improvement on debugging or architectural decisions.
|
|
591
|
-
>
|
|
592
|
-
> The tools are good at boilerplate: config files, test scaffolding, repetitive refactors. They are bad at knowing when they are wrong. I have mass-accepted suggestions that compiled, passed lint, and still did the wrong thing because I stopped paying attention.
|
|
593
|
-
>
|
|
594
|
-
> Mira, an engineer at a fintech startup I interviewed, said she uses Copilot "like autocomplete for boring code" but reviews every line before committing. Jake, a senior dev at a larger company, disabled it after it kept suggesting patterns from a deprecated internal library.
|
|
595
|
-
>
|
|
596
|
-
> The productivity claims are hard to verify. GitHub says Copilot users "accept 30% of suggestions," but acceptance is not correctness, and correctness is not value. The 2024 Uplevel study found no statistically significant difference in pull-request throughput between teams with and without AI assistants.
|
|
597
|
-
>
|
|
598
|
-
> None of this means the tools are useless. It means they are tools. They do not replace judgment, and they do not eliminate the need for tests. If you do not have tests, you cannot tell whether the suggestion is right.
|
|
436
|
+
**File mode.** When the user names a file, run the full rewrite process but write only the final text to the file. Change prose only. Keep code blocks, YAML metadata, data, and link targets unchanged. Then give the user a short summary.
|
|
599
437
|
|
|
600
|
-
**
|
|
601
|
-
- The rhythm is still a bit too tidy (clean contrasts, evenly paced paragraphs).
|
|
602
|
-
- The named people and study citations can read like plausible-but-made-up placeholders unless they're real and sourced.
|
|
603
|
-
- The closer leans a touch slogan-y ("If you do not have tests...") rather than sounding like a person talking.
|
|
438
|
+
**Embedded mode.** When another task uses this skill for a pull request, commit message, or document, return only the final text.
|
|
604
439
|
|
|
605
|
-
|
|
606
|
-
> AI coding assistants can make you faster at the boring parts. Not everything. Definitely not architecture.
|
|
607
|
-
>
|
|
608
|
-
> They're great at boilerplate: config files, test scaffolding, repetitive refactors. They're also great at sounding right while being wrong. I've accepted suggestions that compiled, passed lint, and still missed the point because I stopped paying attention.
|
|
609
|
-
>
|
|
610
|
-
> People I talk to tend to land in two camps. Some use it like autocomplete for chores and review every line. Others disable it after it keeps suggesting patterns they don't want. Both feel reasonable.
|
|
611
|
-
>
|
|
612
|
-
> The productivity metrics are slippery. GitHub can say Copilot users "accept 30% of suggestions," but acceptance isn't correctness, and correctness isn't value. If you don't have tests, you're basically guessing.
|
|
440
|
+
## Rewrite process
|
|
613
441
|
|
|
614
|
-
|
|
442
|
+
1. Read the source and mark each AI pattern.
|
|
443
|
+
2. Write a draft. Read it aloud. Check the rhythm, details, simple verbs such as *is* and *has*, and the right level of formality.
|
|
444
|
+
3. Ask two questions:
|
|
445
|
+
- **"What still sounds AI-generated?"**
|
|
446
|
+
- **"Did the rewrite add or remove any fact, name, number, date, quote, citation, ranking, or other claim?"**
|
|
447
|
+
Treat any unsupported addition or lost claim as an error.
|
|
448
|
+
4. Write the final version. State each point naturally instead of patching one flagged phrase at a time. If a sentence stays awkward, rewrite the paragraph around its main point. Apply the dash rule in §14.
|
|
615
449
|
|
|
450
|
+
Return the result required by [How to return the result](#how-to-return-the-result).
|
|
616
451
|
|
|
617
|
-
##
|
|
452
|
+
## Source
|
|
618
453
|
|
|
619
|
-
This skill is based on [Wikipedia:Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing), maintained by WikiProject AI Cleanup.
|
|
454
|
+
This skill is based on [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing), maintained by WikiProject AI Cleanup. Its patterns come from reviews of AI-generated text on Wikipedia.
|
|
620
455
|
|
|
621
|
-
|
|
456
|
+
Wikipedia's main point: "LLMs use statistical algorithms to guess what should come next. The result tends toward the most statistically likely result that applies to the widest variety of cases."
|