@creator-notes/cnotes 0.26.0 → 0.29.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.
- package/README.md +3 -4
- package/dist/cn.js +0 -2
- package/dist/cn.js.map +1 -1
- package/dist/commands/canvas.d.ts.map +1 -1
- package/dist/commands/canvas.js +125 -54
- package/dist/commands/canvas.js.map +1 -1
- package/dist/commands/relationships.d.ts.map +1 -1
- package/dist/commands/relationships.js +145 -14
- package/dist/commands/relationships.js.map +1 -1
- package/dist/lib/api-client.d.ts +1 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +2 -1
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/build-schema.d.ts +3 -1
- package/dist/lib/build-schema.d.ts.map +1 -1
- package/dist/lib/build-schema.js +3 -1
- package/dist/lib/build-schema.js.map +1 -1
- package/dist/lib/canvas-read.d.ts +59 -13
- package/dist/lib/canvas-read.d.ts.map +1 -1
- package/dist/lib/canvas-read.js +209 -17
- package/dist/lib/canvas-read.js.map +1 -1
- package/dist/lib/install-skill.d.ts +7 -2
- package/dist/lib/install-skill.d.ts.map +1 -1
- package/dist/lib/install-skill.js +44 -12
- package/dist/lib/install-skill.js.map +1 -1
- package/dist/mcp-server.js +56 -58
- package/dist/mcp-server.js.map +1 -1
- package/package.json +1 -1
- package/skills/cnotes/SKILL.md +144 -73
- package/skills/cnotes/references/humanizer.md +267 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
# The CreatorNotes humanizer
|
|
2
|
+
|
|
3
|
+
Load this before you draft, audit, or rewrite **audience-facing prose** that will
|
|
4
|
+
be saved to CreatorNotes: pre-reads, workshop notes, strategy notes, public
|
|
5
|
+
drafts, Slack messages, canvas orientation banners, and the prose body of typed
|
|
6
|
+
notes. Its job is to remove generic model habits so text lands as a real human
|
|
7
|
+
author wrote it, **without corrupting meaning or erasing a legitimate voice**.
|
|
8
|
+
|
|
9
|
+
Two things this is NOT:
|
|
10
|
+
- It is not a truth checker. The model cannot verify a claim is correct; it can
|
|
11
|
+
only flag the three defects listed under [The three verifiable flags](#the-three-verifiable-flags).
|
|
12
|
+
- It is not a personal-voice generator. Removing slop creates a quality *floor*.
|
|
13
|
+
A person's voice is a separate, optional layer (see [Two layers](#two-layers-quality-floor-and-personal-voice)).
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## First decide: does this text get touched at all?
|
|
18
|
+
|
|
19
|
+
Classify the task before editing a single word. Getting this gate right matters
|
|
20
|
+
more than any word-level fix, because the failure that hurts is rewriting
|
|
21
|
+
something that should have been left alone.
|
|
22
|
+
|
|
23
|
+
**Apply the humanizer automatically** — agent-generated prose meant for a reader:
|
|
24
|
+
pre-reads, Slack messages, strategy prose, workshop notes, public drafts, and
|
|
25
|
+
canvas banners an agent wrote.
|
|
26
|
+
|
|
27
|
+
**Audit first, change only on evidence** — existing authored material: decision
|
|
28
|
+
records, reference guides, and any note carrying many relationships or
|
|
29
|
+
measurements. Read it, list the specific problems, and revise only the notes with
|
|
30
|
+
real defects. Most audits should change *some* notes and leave others untouched.
|
|
31
|
+
|
|
32
|
+
**Never rewrite silently** — raw capture where the words are the evidence: raw
|
|
33
|
+
transcripts, voice memos, customer quotes, source evidence, legal text, and
|
|
34
|
+
human-authored material where the voice itself is the record. Store these
|
|
35
|
+
unchanged. If a reader needs a clean version, humanize the *derived artifact*,
|
|
36
|
+
never the source.
|
|
37
|
+
|
|
38
|
+
**Override language wins over all of the above.** If the user says any of these,
|
|
39
|
+
follow the instruction and stop:
|
|
40
|
+
- "Save this as raw capture. Do not humanize it." → store verbatim.
|
|
41
|
+
- "Audit X for AI writing. Do not change anything." → report only, no writes.
|
|
42
|
+
- "Humanize X. Preserve timings, links and questions." → rewrite with the named
|
|
43
|
+
things held fixed.
|
|
44
|
+
- "Rewrite this in my personal voice." → apply a voice card on top of the floor.
|
|
45
|
+
- "Use the neutral / company voice." → no personal voice, shared-artifact tone.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## The four modes
|
|
50
|
+
|
|
51
|
+
| Mode | What you do |
|
|
52
|
+
|---|---|
|
|
53
|
+
| **Draft cleanly** | Author new prose already free of slop — the audit is baked into the first draft, not bolted on. |
|
|
54
|
+
| **Audit only** | Report defects with locations and no edits. Hand the nuanced findings to the user. |
|
|
55
|
+
| **Rewrite with preservation** | Fix the flagged prose while the preservation gate holds every fact, number, ID, and link fixed. |
|
|
56
|
+
| **Match a voice card** | Apply an optional personal or company voice on top of the clean floor. |
|
|
57
|
+
|
|
58
|
+
Default to **Draft cleanly** for new prose and **Audit only** for existing
|
|
59
|
+
material. Only rewrite existing notes once an audit has named the specific defect.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## The workflow
|
|
64
|
+
|
|
65
|
+
### New agent-generated prose (draft → audit → preserve → save)
|
|
66
|
+
|
|
67
|
+
1. **Draft for meaning** and the note-type rubric (`cnotes types show <Type>`).
|
|
68
|
+
Own the outline yourself before filling it in — see [Structural slop](#structural-slop-own-your-outline).
|
|
69
|
+
2. **Run the anti-slop audit** against the kill-list and moves below.
|
|
70
|
+
3. **Remove high-confidence pattern clusters, not isolated words.** A single
|
|
71
|
+
flagged word in otherwise clean prose is usually a false positive. A *cluster*
|
|
72
|
+
(hype adjective + filler verb + rule-of-three in the same paragraph) is real slop.
|
|
73
|
+
4. **Run the preservation check** — verify nothing in the [preservation gate](#the-preservation-gate)
|
|
74
|
+
changed.
|
|
75
|
+
5. **Save** with a `# h1` title and readable relationship-mention titles.
|
|
76
|
+
|
|
77
|
+
### Existing notes and canvases (audit → select → version → verify)
|
|
78
|
+
|
|
79
|
+
1. Read the canvas digest (`cnotes canvas digest <id>`) and the note bodies.
|
|
80
|
+
2. **Audit only.** Identify notes with clear problems; leave clean notes alone.
|
|
81
|
+
3. Create a new version (`cnotes versions create`) **only** for the selected notes,
|
|
82
|
+
with a change description saying what you fixed.
|
|
83
|
+
4. Replace affected canvas richtext banners separately (text elements have no
|
|
84
|
+
version history — remove and re-add).
|
|
85
|
+
5. **Verify** numbers, names, IDs, links, mention titles, tables, uncertainty,
|
|
86
|
+
and canvas layout survived unchanged.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## The anti-slop audit
|
|
91
|
+
|
|
92
|
+
Slop is a bundle of habits, not a list of words. Scrub the vocabulary and a
|
|
93
|
+
symmetrical skeleton still reads machine-built. Fix both.
|
|
94
|
+
|
|
95
|
+
### The one rule under all of these
|
|
96
|
+
|
|
97
|
+
When you catch a hit, **do not swap it for a quieter synonym** — a calmer slop
|
|
98
|
+
word is still slop. Replace it with one of three things:
|
|
99
|
+
- a **concrete noun** (the graph, the version, the transcript),
|
|
100
|
+
- a **number with its baseline** ("nine minutes to ninety seconds on the
|
|
101
|
+
two-thousand-file repo"),
|
|
102
|
+
- an **active verb that names the behavior** ("re-indexes on every edit", "links
|
|
103
|
+
each claim to its evidence").
|
|
104
|
+
|
|
105
|
+
If you cannot make the line concrete, the line has no claim. Cut it.
|
|
106
|
+
|
|
107
|
+
### Words — cut on sight
|
|
108
|
+
|
|
109
|
+
**A. Hype / greatness adjectives** (grade us instead of describing behavior):
|
|
110
|
+
powerful, seamless, robust, scalable, cutting-edge, revolutionary, game-changer,
|
|
111
|
+
innovative, world-class, best-in-class, effortless, magical, intuitive
|
|
112
|
+
(self-claimed). *Fix:* state the behavior.
|
|
113
|
+
|
|
114
|
+
**B. AI-slop verbs and nouns** (filler the model reaches for): delve, leverage,
|
|
115
|
+
harness, unlock, unleash, supercharge, streamline, elevate, empower, foster,
|
|
116
|
+
tapestry, journey, landscape, ecosystem, realm, synergy, paradigm shift.
|
|
117
|
+
*Fix:* name the action or the thing.
|
|
118
|
+
|
|
119
|
+
**C. Slop connective tissue** (announces a transition, carries no information —
|
|
120
|
+
delete the phrase, keep the sentence): furthermore, moreover, additionally, in
|
|
121
|
+
conclusion, it is important to note, it is worth noting, needless to say, aims to
|
|
122
|
+
(→ present-tense verb), when it comes to (→ the subject itself), at the end of the
|
|
123
|
+
day, in today's fast-paced world.
|
|
124
|
+
|
|
125
|
+
**D. Category cliches** (name the outcome and the pain, not the category): second
|
|
126
|
+
brain, PKM, note-taking app, knowledge base, all-in-one workspace, digital brain,
|
|
127
|
+
smart notes, AI notes, AI-powered notes, "X alternative".
|
|
128
|
+
|
|
129
|
+
**E. Personal-ban tics** (our own recurring habits): actually, simply, just (as
|
|
130
|
+
filler), really (as intensifier), might, perhaps, kind of, thrilled, excited.
|
|
131
|
+
|
|
132
|
+
### Moves — a sentence can pass every word check and still be slop
|
|
133
|
+
|
|
134
|
+
| Banned move | Do instead |
|
|
135
|
+
|---|---|
|
|
136
|
+
| Em dashes in user-facing prose | rewrite the sentence; split it or use a period |
|
|
137
|
+
| Comparison framing ("unlike X", "the only X that") | state what we do; name a shared category truth, no rival |
|
|
138
|
+
| Absolutes (everyone, nobody, always, the only) | state the specific case and let it stand |
|
|
139
|
+
| Antithesis template ("not just X, it is Y") | make the affirmative claim once |
|
|
140
|
+
| Negation-reversal with a clipped echo ("X was not the bottleneck. Y was.") | state the claim by consequence, not as a "Not X. Y." flip |
|
|
141
|
+
| Rule-of-three triples ("Focused. Aligned. Measurable.") | one claim that carries its own weight |
|
|
142
|
+
| Throat-clearing openers ("a thread on", "I want to share") | open with the problem or the payoff |
|
|
143
|
+
| Thread-bro formatting ("1/", "follow for more") | write as prose with a standalone first line |
|
|
144
|
+
| Engagement bait ("comment YES", "drop a fire emoji") | end on the value, not the ask |
|
|
145
|
+
| Numbers with no baseline, date, or source | pair every number with its baseline and where it came from |
|
|
146
|
+
| Both-sides hedge-seesaw presented as a view | commit to a stance and name its cost |
|
|
147
|
+
| Exclamation points in feature copy | a period; the usefulness is the news |
|
|
148
|
+
|
|
149
|
+
### Structural slop — own your outline
|
|
150
|
+
|
|
151
|
+
Structure is the deeper tell than vocabulary. A tidy intro, three even sections,
|
|
152
|
+
and a balanced conclusion pattern-match to generated text even after every banned
|
|
153
|
+
word is gone. Write the spine yourself, then let the draft fill inside it. If the
|
|
154
|
+
skeleton is symmetrical, break the symmetry before you touch the words.
|
|
155
|
+
|
|
156
|
+
### Watch the over-correction
|
|
157
|
+
|
|
158
|
+
Humanizing fixes meaning and structure. Do not thesaurus-swap a banned word for a
|
|
159
|
+
near-synonym (that trades one tell for another), and do not manufacture fake
|
|
160
|
+
casualness in place of formal prose that was doing real work. Rewrite the sentence
|
|
161
|
+
around the load-bearing fact, or leave it.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## The three verifiable flags
|
|
166
|
+
|
|
167
|
+
These are the only defects a model can flag **without knowing whether the claim is
|
|
168
|
+
true**. A precise-sounding but unsourced number passes every linter, so do not
|
|
169
|
+
pretend to grade truth or calibration. Flag these three, and pair every
|
|
170
|
+
concreteness check with a source check:
|
|
171
|
+
|
|
172
|
+
1. **Unredeemed abstraction** — a comparative or magnitude word (better, faster,
|
|
173
|
+
bigger, significant, most, many, soon, a lot) with no number, unit, baseline,
|
|
174
|
+
and date. Demand the operand: better on which metric, from what baseline to
|
|
175
|
+
what target, by when.
|
|
176
|
+
2. **Missing falsifier** — on an empirical or decision claim, no statable "this is
|
|
177
|
+
wrong if X by date D."
|
|
178
|
+
3. **Naked claim** — a load-bearing claim with no linked Fact, Test, or Metric
|
|
179
|
+
(no supporting relationship mention).
|
|
180
|
+
|
|
181
|
+
Surface these as questions for the author, not as silent rewrites — forcing a
|
|
182
|
+
number where none exists only mints fake precision.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## The preservation gate
|
|
187
|
+
|
|
188
|
+
Before saving any rewrite, confirm none of these changed. Each row is a real way
|
|
189
|
+
humanization corrupts a note:
|
|
190
|
+
|
|
191
|
+
- **Numbers, dates, names** — identical to the source.
|
|
192
|
+
- **Negations, uncertainty, scope** — "not", "only", "up to", "we think",
|
|
193
|
+
"in some cases" carry meaning; do not drop or invert them.
|
|
194
|
+
- **Legal / technical qualifiers** — a hedge that is a legal or technical
|
|
195
|
+
constraint is not slop. Keep it.
|
|
196
|
+
- **Checklists and structured writing** — deliberate structure is not slop.
|
|
197
|
+
Do not flatten a checklist into a paragraph.
|
|
198
|
+
- **Relationship mentions** — titles and links intact. `[NOTE-12: Title](relationship:type)`
|
|
199
|
+
must keep both the display ID and a readable title; never strip a mention to
|
|
200
|
+
bare text or drop its link.
|
|
201
|
+
- **Tables and layout** — tables, columns, and canvas placement survive.
|
|
202
|
+
- **Voice as evidence** — a customer quote or raw memo keeps its original wording.
|
|
203
|
+
|
|
204
|
+
When in doubt, keep it and flag it in **Audit only** mode rather than rewriting.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Two layers: quality floor and personal voice
|
|
209
|
+
|
|
210
|
+
Removing slop creates a shared **quality floor**. It does not create a person's
|
|
211
|
+
voice. Keep the two separate.
|
|
212
|
+
|
|
213
|
+
### The shared quality floor (always)
|
|
214
|
+
|
|
215
|
+
The anti-slop audit above. Applies to everyone and every genre. It removes
|
|
216
|
+
corporate fog, fake contrasts, forced triads, and chatbot residue.
|
|
217
|
+
|
|
218
|
+
### Optional personal voice cards (only when asked)
|
|
219
|
+
|
|
220
|
+
A voice card is a **local**, **genre-specific** profile built from writing the
|
|
221
|
+
author chose. One universal "sound like me" profile is too blunt: a Slack message,
|
|
222
|
+
a strategy note, a public article, and a technical spec should not sound
|
|
223
|
+
identical. A card can capture directness, sentence rhythm, formality, humour,
|
|
224
|
+
preferred vocabulary, spelling, punctuation, heading style, and how strongly the
|
|
225
|
+
author states opinions. Store it locally by default; share only when the author
|
|
226
|
+
chooses. Never impose one person's voice on every user.
|
|
227
|
+
|
|
228
|
+
### Shared artifacts use a neutral or company voice
|
|
229
|
+
|
|
230
|
+
Company-facing documents use a **neutral CreatorNotes voice or a company voice**,
|
|
231
|
+
not an individual's profile. When the author is the team, write in a steady first
|
|
232
|
+
person: attach each opinion to the specific decision or failure that produced it,
|
|
233
|
+
so credibility comes from the work, not from adjectives. A bolt-on "I personally
|
|
234
|
+
believe" in front of a generic claim still reads synthetic — the first person has
|
|
235
|
+
to carry a real detail (a number, a named workflow, a decision and what it cost),
|
|
236
|
+
or cut both the "I" and the claim.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## CreatorNotes mechanics (deterministic — always apply)
|
|
241
|
+
|
|
242
|
+
These are objective and never need judgment. Enforce them on every write:
|
|
243
|
+
|
|
244
|
+
- **Canvas titles** use the middle dot `·` (U+00B7) as a separator, never an
|
|
245
|
+
em dash or en dash.
|
|
246
|
+
- **Every note starts with a `# h1`** heading — it becomes the title.
|
|
247
|
+
- **Relationship mentions include a readable title**: `[NOTE-123: Title](relationship:type)`,
|
|
248
|
+
never bare `NOTE-123`.
|
|
249
|
+
- **No mention syntax inside canvas richtext or list descriptions** — it corrupts
|
|
250
|
+
the card. Reference notes there as plain display IDs ("see RISK-64").
|
|
251
|
+
- **Richtext stays card-sized** — at most ~3 sentences, one heading; distinct
|
|
252
|
+
items are N typed notes, not a wall of text.
|
|
253
|
+
- **No placeholder or artifact tokens** — "lorem ipsum", "TODO", "[insert X]",
|
|
254
|
+
"as an AI language model", or leftover template markers never ship in saved prose.
|
|
255
|
+
- **Valid mention syntax and live links** — no broken links, no malformed mentions.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Restraint is the most important behavior
|
|
260
|
+
|
|
261
|
+
The measure of a good pass is not the number of edits. It is the willingness to
|
|
262
|
+
leave clean notes alone. A selective pass that fixes the three genuinely-slopped
|
|
263
|
+
notes and leaves nine good ones untouched is a success. A pass that rewrites every
|
|
264
|
+
note because a detector word appeared somewhere is the failure this whole
|
|
265
|
+
reference exists to prevent.
|
|
266
|
+
|
|
267
|
+
If a note already reads as a real person wrote it, do nothing.
|