aibreze 0.1.0 → 0.1.4

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 CHANGED
@@ -1,12 +1,17 @@
1
+ <p align="center">
2
+ <img src="site/static/logo.svg" alt="aiBreze" width="128" />
3
+ </p>
4
+
1
5
  # aiBreze
2
6
 
3
7
  An installable writing rule set for AI agents.
4
8
 
5
- aiBreze strips the performative, faux-profound register from prose.
9
+ Editorial rules for prose that actually says something instead of just
10
+ sounding like it. AI-assisted or not.
6
11
  Written **aiBreze**. npm **`aibreze`**. A spray, not a breeze.
7
12
 
8
- Direct > clever. Clear > profound. Useful > insightful-sounding. No em
9
- dashes in publishable prose.
13
+ Direct > clever. Clear > profound. Useful > insightful-sounding. Em dashes
14
+ earn their place; most don't.
10
15
 
11
16
  Spray the prose, not the author. Earn the word.
12
17
 
@@ -22,9 +27,9 @@ software does that reliably.
22
27
 
23
28
  ## What it is
24
29
 
25
- A composable editorial system for agent-generated prose (and for human
26
- prose in the same register). Markdown you install and point an agent at.
27
- Not a CLI (yet), not an editor, not a list of "words ChatGPT uses."
30
+ A composable editorial system for agent-generated prose, and for human
31
+ prose in the same register. Markdown you install and point an agent at.
32
+ v1 has no CLI.
28
33
 
29
34
  ```text
30
35
  core.md shared law (register, bans, cadence, heuristic)
@@ -40,12 +45,11 @@ claims.md substance first, then voice
40
45
  Genre files assume `core.md` and are additive: surface law only, no
41
46
  copied bans. Do not fork `core.md`.
42
47
 
43
- The **applicability heuristic** is the load-bearing idea. The problem is
44
- unearned language, not the dictionary. Earn the word: "transformative"
45
- is fine if something transformed and you can say from what into what.
48
+ The **applicability heuristic** is the rule. The problem is unearned
49
+ language, not the dictionary. Earn the word: "transformative" is fine
50
+ if something transformed and you can say from what into what.
46
51
  "Inflection point" is fine if there was one. Overlay the terms that
47
- usually pass *here*, with one-line why. The heuristic is the rule; the
48
- list is not exhaustive.
52
+ usually pass *here*, with one-line why. The list is not exhaustive.
49
53
 
50
54
  `claims.md` is substance first, voice after. A clean-smelling wrong
51
55
  essay is still wrong. Do not polish a lie.
@@ -89,10 +93,9 @@ either way. If the prose smells, spray it.
89
93
 
90
94
  Adjacent tools tend to be humanizers ("make this sound human"), banned-word
91
95
  anti-slop lists, or general style linters (Vale, write-good). This package
92
- is the layered law: genre surfaces, an applicability heuristic (earn the
93
- word), claims before cologne, overlays instead of forks, and both
94
- prevention at draft time and audit after. Authorship is irrelevant. Prose
95
- quality is the subject.
96
+ layers genre files, an earn-the-word test, claims before voice, and overlays
97
+ instead of forks. Use it while drafting or on a finished pass. Authorship
98
+ is irrelevant. Prose quality is the subject.
96
99
 
97
100
  ## Use from Node
98
101
 
@@ -141,7 +144,9 @@ pnpm site:build
141
144
 
142
145
  ## Publishing to npm
143
146
 
144
- The maintainer publishes. Agents must not run `npm publish`,
147
+ The maintainer publishes. `pnpm publish` runs a gate first: `pnpm whoami`,
148
+ then `pnpm login` if that fails, then a patch bump if this version is
149
+ already on npm (or behind it). Agents must not run `npm publish`,
145
150
  `pnpm publish`, or `yarn npm publish`.
146
151
 
147
152
  ## License
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aibreze",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Installable writing rule set for AI agents. Sprays the performative, faux-profound register off prose. Core bans, smell audit, claims review, genre overlays.",
@@ -48,9 +48,10 @@
48
48
  },
49
49
  "scripts": {
50
50
  "build": "tsc",
51
- "test": "tsc && node --test dist/index.test.js",
51
+ "test": "tsc && node --test dist/index.test.js dist/publish-gate.test.js",
52
+ "ship": "pnpm --dir site run ship",
52
53
  "site:dev": "pnpm --dir site dev",
53
54
  "site:build": "pnpm --dir site run build",
54
- "site:deploy": "pnpm --dir site run deploy"
55
+ "site:deploy": "pnpm --dir site run ship"
55
56
  }
56
57
  }
package/rules/audit.md CHANGED
@@ -53,9 +53,11 @@ pass that skips the house bans.
53
53
  Hunt every hard ban and cadence tell in `core.md`: escalation formula,
54
54
  honest framing, validation+profundity, mechanism inflation, narrative
55
55
  theater, genuinely-stacks, dramatic apology, suspense, setup sentences,
56
- em dashes, triad packing including prefix-repetition, empty marketing
56
+ em-dash furniture, triad packing including prefix-repetition, empty marketing
57
57
  vocab, helper theater, signpost openers, mic-drop closers, intensifier
58
- filler, parallel-zinger density, bold-lead lists. Apply the
58
+ filler, parallel-zinger density, bold-lead lists, riddle labels, cozy
59
+ machinery, operator notes in the brochure, hand-holding the obvious,
60
+ unparseable sentences. Apply the
59
61
  corpus-applicability heuristic before rewriting overlay terms. Teaching
60
62
  antithesis is allowed only when categories differ, never as
61
63
  synonym-escalation. One concrete landing chant is a named exception,
@@ -123,10 +125,6 @@ product names, and words that would get less precise if swapped for
123
125
 
124
126
  ### Structural extras
125
127
 
126
- - **Em dashes.** Core already bans them in publishable prose. Still flag
127
- density and the clause-then-punchline construction as a smell signal
128
- (some human writers use them heavily; combined with other tells they
129
- are a strong signal).
130
128
  - **Emoji as content furniture.** Checkmarks, rockets, and lightbulbs
131
129
  doing the work that words or design should do, especially in lists and
132
130
  result badges.
package/rules/claims.md CHANGED
@@ -119,10 +119,12 @@ Only after Passes A-D:
119
119
  1. Score AI smell 1-10 with one-paragraph justification (same scale as
120
120
  `audit.md`).
121
121
  2. Flag hard bans from `core.md`: escalation formula, honest-framing,
122
- validation+profundity, narrative theater, em dashes, setup-only
122
+ validation+profundity, narrative theater, setup-only
123
123
  sentences, synonym antithesis, helper theater.
124
124
  3. Flag cadence budgets: signpost openers, mic-drop closers, intensifier
125
- filler, parallel-zinger density, bold-lead lists.
125
+ filler, em-dash furniture, parallel-zinger density, bold-lead lists,
126
+ riddle labels, cozy machinery, operator notes in the brochure,
127
+ hand-holding the obvious, unparseable sentences.
126
128
  4. Apply **corpus-applicability**: do not "correct" overlay terms when
127
129
  they are structural.
128
130
  5. Quote lines to **protect** (distinctive human voice).
package/rules/core.md CHANGED
@@ -42,8 +42,9 @@ across with minimal ceremony.
42
42
  Direct > clever. Clear > profound. Useful > insightful-sounding.
43
43
 
44
44
  Contractions. Short sentences mixed with longer ones. Point first, support
45
- second. Concrete over abstract. No em dashes in publishable prose (commas,
46
- periods, or parentheses).
45
+ second. Concrete over abstract. Em dashes earn their place, like everything
46
+ else, and most don't. A comma, period, or colon usually does the job with
47
+ less drama.
47
48
 
48
49
  Pronouns are a project decision (I / we / you). Pick one per surface and
49
50
  hold it. Do not let an agent default to corporate "we" on a personal essay,
@@ -154,7 +155,6 @@ Do not withhold the answer while building drama. Answer first.
154
155
 
155
156
  ### Also still banned
156
157
 
157
- - Em dashes in publishable prose
158
158
  - Alliterative triads and stacked-negation chants, except protected
159
159
  maxims the overlay names, or **one concrete chant a genre file
160
160
  explicitly allows** (landing). **Prefix-repetition triads count**
@@ -184,11 +184,42 @@ not single instances.
184
184
  - **Intensifier repetition.** "actually," "whole," "real," "very"
185
185
  recurring as filler. Keep only where the word marks a true contrast;
186
186
  cut the padding uses.
187
+ - **Em-dash furniture.** Clause-then-punchline, a dash in every heading,
188
+ or stacks. One earned dash is not a finding. Density plus other tells
189
+ is. Do not treat the mark as an AI tell to erase.
187
190
  - **Parallel-zinger density.** Chiasmus and mirror sentences ("X is a
188
191
  performance. Y is a practice.") are spice. Track the count per piece;
189
192
  protect native pairs, trim assistant-added ones first.
190
193
  - **Bold-lead lists.** Every bullet "**Label.** Explanation" is a
191
194
  template when the whole piece does it.
195
+ - **Riddle labels.** A bold lead-in or heading that is an aphorism the
196
+ reader can only decode after reading the body: "**Names you actually
197
+ say.**" over a paragraph about custom vocabulary. Core already bans the
198
+ setup sentence that announces the next sentence; this is the same waste
199
+ in reverse, withholding instead of announcing. Test: cover the body and
200
+ read the label alone. If it does not say which thing this is, name the
201
+ thing. The aphorism can go in the prose if it earns a place there.
202
+ - **Cozy machinery.** Infrastructure written the way a fond craftsman
203
+ would talk: the model is "asleep," a worker stays "warm," heavy jobs go
204
+ to a "quieter" box, "the mesh is the door." Terms of art pass the
205
+ applicability heuristic (warm cache, cold start, daemon), and one idiom
206
+ is not a finding. The tell is the register standing in for a fact the
207
+ writer already has: "asleep" covers suspended, unreachable, and
208
+ misconfigured at once, so it tells the reader less than "unreachable"
209
+ would. Keep it where the machine literally sleeps.
210
+ - **Operator notes in the brochure.** Recovery commands, internal folder
211
+ names, settle timers, gitignore facts, and "doctor and /health run the
212
+ same probes" listed as what the product is good at. The tell is
213
+ *placement*, not the fact. A recovery CLI belongs under Run. A Syncthing
214
+ wait belongs next to Syncthing. Test: would you say this first to a
215
+ friend who asked what it does? If not, it is later, or not at all.
216
+ - **Hand-holding the obvious.** "config.json is gitignored." One trap
217
+ warning is fine. Stating what a competent reader already knows, in the
218
+ voice of a tour guide, is the tell.
219
+ - **Unparseable sentence.** A finished-sounding line the reader cannot
220
+ repeat: "This is meant to live on a desktop you already leave on."
221
+ Related to riddle labels, but at sentence level. Rewrite until a smart
222
+ friend can say it back.
192
223
 
193
224
  ---
194
225
 
@@ -197,7 +228,7 @@ not single instances.
197
228
  | Mode | Extra watch |
198
229
  | --- | --- |
199
230
  | **Agent chat** | Honest framing, validation theater, suspense, dramatic apology, genuinely-stack, helper theater |
200
- | **Drafts / posts / pages** | Escalation formula, insight-labeling without evidence, setup sentences, em dashes, triad packing |
231
+ | **Drafts / posts / pages** | Escalation formula, insight-labeling without evidence, setup sentences, riddle labels, cozy machinery, operator notes in the brochure, hand-holding, unparseable sentences, em-dash furniture, triad packing |
201
232
 
202
233
  The table is extra watch, not a partition. Chat theater infects drafts.
203
234
  Publish tells show up in chat.
@@ -240,6 +271,29 @@ Good: Just state the idea.
240
271
  Bad: "Brain — the model plus the loop."
241
272
  Good: "Brain: the model plus the loop."
242
273
 
274
+ **Riddle label**
275
+ Bad: "**Names you actually say.** `promptTerms` seeds the decoder."
276
+ Good: "**Custom vocabulary.** `promptTerms` seeds the decoder."
277
+
278
+ **Cozy machinery**
279
+ Bad: "If the cleanup model is asleep, you still get raw text."
280
+ Good: "If the cleanup model is unreachable, you still get raw text."
281
+ (Still fine: "the laptop was asleep," when it was.)
282
+
283
+ **Operator notes in the brochure**
284
+ Bad: "**Two settle timers.** Watched folders wait 30 minutes." as the
285
+ first item under "What it is good at."
286
+ Good: Mention the wait next to Syncthing. Lead the feature list with
287
+ what a friend would hear first.
288
+
289
+ **Hand-holding**
290
+ Bad: "`config.json` is gitignored." after `cp config.example.json`.
291
+ Good: Omit it. They already copied the example.
292
+
293
+ **Unparseable sentence**
294
+ Bad: "This is meant to live on a desktop you already leave on."
295
+ Good: "Run it on a computer you leave turned on."
296
+
243
297
  ---
244
298
 
245
299
  ## How to audit
package/rules/cursor.mdc CHANGED
@@ -17,7 +17,7 @@ not copy genre law into this file.
17
17
  ## Target
18
18
 
19
19
  Sharp, slightly tired colleague. Direct > clever. Clear > profound.
20
- Useful > insightful-sounding. No em dashes in publishable prose.
20
+ Useful > insightful-sounding. Em dashes earn their place; most don't.
21
21
  Judge the sentence, not the byline. Spray the prose, not the author.
22
22
  Earn the word.
23
23
 
@@ -51,8 +51,23 @@ Earn the word.
51
51
  - Mic-drop closer fragments ending every section.
52
52
  - Intensifier filler: "actually / whole / real / very" where no contrast
53
53
  is marked.
54
+ - Em-dash furniture: stacks and unearned drama. One earned dash is not a
55
+ finding.
54
56
  - Parallel-zinger (chiasmus) density; trim assistant-added ones first.
55
57
  - Bold-lead lists on every bullet.
58
+ - Riddle labels: a bold lead-in or heading the reader can only decode
59
+ after the body ("**Names you actually say.**" over custom vocabulary).
60
+ Name the thing instead.
61
+ - Cozy machinery: the model is "asleep," the worker stays "warm," a
62
+ "quieter" box. Terms of art pass; the tell is register replacing a fact
63
+ you have ("unreachable" says more than "asleep").
64
+ - Operator notes in the brochure: recovery CLIs, internal folder names,
65
+ settle timers, gitignore facts listed as what the product is good at.
66
+ Placement is the tell. Would you say this first to a friend?
67
+ - Hand-holding the obvious: "config.json is gitignored" after they
68
+ already copied the example.
69
+ - Unparseable sentence: a finished-sounding line the reader cannot
70
+ repeat ("a desktop you already leave on").
56
71
 
57
72
  ## Corpus-applicability carve-out (standing rule)
58
73
 
package/rules/landing.md CHANGED
@@ -11,8 +11,8 @@ brand-metaphor budget.
11
11
 
12
12
  ## Voice extras (on top of core)
13
13
 
14
- Core already has the register: contractions, mixed sentence length, no
15
- em dashes, concrete over abstract. On a page, also:
14
+ Core already has the register: contractions, mixed sentence length,
15
+ concrete over abstract. On a page, also:
16
16
 
17
17
  1. **Not a salesperson, not a professor.** Punchy hook, then substance.
18
18
  2. **Practical over aspirational.** Hours saved and bottlenecks fixed,
@@ -45,9 +45,8 @@ Everything else in this file works under either choice.
45
45
 
46
46
  ### Mechanical
47
47
 
48
- - Em dashes in `<title>` and meta description. Core already bans them in
49
- body copy; pages hide them in chrome. Zero tolerance including
50
- metadata.
48
+ - Unearned em dashes in `<title>` and meta description. Chrome is a bad
49
+ place for the drama; a comma or colon almost always does it.
51
50
  - Emoji as content (result badges, pain-list icons). Replace with type
52
51
  or cut.
53
52
  - Title Case On Every Card. Sentence case reads more human.
@@ -107,8 +106,8 @@ page.** The rest go to plain language.
107
106
 
108
107
  A revised page passes when:
109
108
 
110
- 1. Zero em dashes in `<title>` and meta description (body already
111
- covered by core).
109
+ 1. Unearned em dashes in `<title>` and meta description; prefer a comma
110
+ or colon unless the dash earns the drama.
112
111
  2. Pronoun decision made and applied consistently; builder claims
113
112
  aligned to it.
114
113
  3. Max 2 "not X, but Y" constructions, max 1 triadic negation chant, max