aibreze 0.1.2 → 0.1.5

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,3 +1,7 @@
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.
@@ -23,9 +27,9 @@ software does that reliably.
23
27
 
24
28
  ## What it is
25
29
 
26
- A composable editorial system for agent-generated prose (and for human
27
- prose in the same register). Markdown you install and point an agent at.
28
- 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.
29
33
 
30
34
  ```text
31
35
  core.md shared law (register, bans, cadence, heuristic)
@@ -41,16 +45,22 @@ claims.md substance first, then voice
41
45
  Genre files assume `core.md` and are additive: surface law only, no
42
46
  copied bans. Do not fork `core.md`.
43
47
 
44
- The **applicability heuristic** is the load-bearing idea. The problem is
45
- unearned language, not the dictionary. Earn the word: "transformative"
46
- 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.
47
51
  "Inflection point" is fine if there was one. Overlay the terms that
48
- usually pass *here*, with one-line why. The heuristic is the rule; the
49
- list is not exhaustive.
52
+ usually pass *here*, with one-line why. The list is not exhaustive.
50
53
 
51
54
  `claims.md` is substance first, voice after. A clean-smelling wrong
52
55
  essay is still wrong. Do not polish a lie.
53
56
 
57
+ Cadence tells are a budget, not a ban. Flag density: signpost openers,
58
+ em-dash furniture, riddle labels (a heading you can only decode after
59
+ the body), cozy machinery (register standing in for a fact you have),
60
+ operator notes in the brochure, hand-holding the obvious, unparseable
61
+ sentences. One earned em dash is not a finding. Do not treat the mark
62
+ as an AI tell to erase.
63
+
54
64
  ## Install
55
65
 
56
66
  ```bash
@@ -61,7 +71,7 @@ pnpm add -D aibreze
61
71
 
62
72
  | File | Use |
63
73
  | --- | --- |
64
- | `rules/core.md` | Always. Register, applicability heuristic, teaching antithesis, hard bans, cadence, chat vs publish. |
74
+ | `rules/core.md` | Always. Register, applicability heuristic, teaching antithesis, hard bans, cadence budgets (density, not single uses), chat vs publish. |
65
75
  | `rules/audit.md` | Paste-in smell audit (score, flags, protect list, top 5). |
66
76
  | `rules/claims.md` | Skeptical peer review. Substance first, voice after. |
67
77
  | `rules/essays.md` | Longform: one register, author in the essay, concrete instance. Not for reference docs. |
@@ -90,10 +100,9 @@ either way. If the prose smells, spray it.
90
100
 
91
101
  Adjacent tools tend to be humanizers ("make this sound human"), banned-word
92
102
  anti-slop lists, or general style linters (Vale, write-good). This package
93
- is the layered law: genre surfaces, an applicability heuristic (earn the
94
- word), claims before cologne, overlays instead of forks, and both
95
- prevention at draft time and audit after. Authorship is irrelevant. Prose
96
- quality is the subject.
103
+ layers genre files, an earn-the-word test, claims before voice, and overlays
104
+ instead of forks. Use it while drafting or on a finished pass. Authorship
105
+ is irrelevant. Prose quality is the subject.
97
106
 
98
107
  ## Use from Node
99
108
 
@@ -142,7 +151,9 @@ pnpm site:build
142
151
 
143
152
  ## Publishing to npm
144
153
 
145
- The maintainer publishes. Agents must not run `npm publish`,
154
+ The maintainer publishes. `pnpm publish` runs a gate first: `pnpm whoami`,
155
+ then `pnpm login` if that fails, then a patch bump if this version is
156
+ already on npm (or behind it). Agents must not run `npm publish`,
146
157
  `pnpm publish`, or `yarn npm publish`.
147
158
 
148
159
  ## License
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aibreze",
3
- "version": "0.1.2",
3
+ "version": "0.1.5",
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,7 +48,7 @@
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
52
  "ship": "pnpm --dir site run ship",
53
53
  "site:dev": "pnpm --dir site dev",
54
54
  "site:build": "pnpm --dir site run build",
package/rules/audit.md CHANGED
@@ -55,7 +55,9 @@ honest framing, validation+profundity, mechanism inflation, narrative
55
55
  theater, genuinely-stacks, dramatic apology, suspense, setup sentences,
56
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,
package/rules/claims.md CHANGED
@@ -122,7 +122,9 @@ Only after Passes A-D:
122
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, em-dash furniture, 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
@@ -192,6 +192,34 @@ not single instances.
192
192
  protect native pairs, trim assistant-added ones first.
193
193
  - **Bold-lead lists.** Every bullet "**Label.** Explanation" is a
194
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.
195
223
 
196
224
  ---
197
225
 
@@ -200,7 +228,7 @@ not single instances.
200
228
  | Mode | Extra watch |
201
229
  | --- | --- |
202
230
  | **Agent chat** | Honest framing, validation theater, suspense, dramatic apology, genuinely-stack, helper theater |
203
- | **Drafts / posts / pages** | Escalation formula, insight-labeling without evidence, setup sentences, em-dash furniture, 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 |
204
232
 
205
233
  The table is extra watch, not a partition. Chat theater infects drafts.
206
234
  Publish tells show up in chat.
@@ -243,6 +271,29 @@ Good: Just state the idea.
243
271
  Bad: "Brain — the model plus the loop."
244
272
  Good: "Brain: the model plus the loop."
245
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
+
246
297
  ---
247
298
 
248
299
  ## How to audit
package/rules/cursor.mdc CHANGED
@@ -55,6 +55,19 @@ Earn the word.
55
55
  finding.
56
56
  - Parallel-zinger (chiasmus) density; trim assistant-added ones first.
57
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").
58
71
 
59
72
  ## Corpus-applicability carve-out (standing rule)
60
73