aibreze 0.1.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/LICENSE +21 -0
- package/README.md +149 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +81 -0
- package/package.json +56 -0
- package/rules/audit.md +200 -0
- package/rules/claims.md +212 -0
- package/rules/core.md +269 -0
- package/rules/cursor.mdc +83 -0
- package/rules/essays.md +78 -0
- package/rules/landing.md +142 -0
- package/rules/launch.md +93 -0
- package/rules/outreach.md +83 -0
package/rules/landing.md
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Landing / marketing
|
|
2
|
+
|
|
3
|
+
Apply [`core.md`](./core.md) first. This file is the genre overlay for
|
|
4
|
+
landing pages, marketing sites, and other "we sell something" surfaces.
|
|
5
|
+
|
|
6
|
+
Page extras, the pronoun call, rhetorical budgets, substance gaps, and a
|
|
7
|
+
rewrite gate. Project overlays add the pronoun decision and any
|
|
8
|
+
brand-metaphor budget.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Voice extras (on top of core)
|
|
13
|
+
|
|
14
|
+
Core already has the register: contractions, mixed sentence length, no
|
|
15
|
+
em dashes, concrete over abstract. On a page, also:
|
|
16
|
+
|
|
17
|
+
1. **Not a salesperson, not a professor.** Punchy hook, then substance.
|
|
18
|
+
2. **Practical over aspirational.** Hours saved and bottlenecks fixed,
|
|
19
|
+
not "transforming the future of work."
|
|
20
|
+
3. **Anti-BS positioning, shown not chanted.** Define yourself by what
|
|
21
|
+
you're not as much as what you are. A page of "No X. No Y. No Z." is
|
|
22
|
+
a triad, not a position.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Pronouns: decide, then hold
|
|
27
|
+
|
|
28
|
+
Neither I nor we is the package default. Write the choice in the overlay
|
|
29
|
+
before rewriting.
|
|
30
|
+
|
|
31
|
+
- **I** matches "you talk to the builder." AI copy defaults to "we"; I
|
|
32
|
+
is a tell that a person is speaking.
|
|
33
|
+
- **We** is honest when there are collaborators, or when the brand is
|
|
34
|
+
the speaker. Then soften singular-builder claims so the page does not
|
|
35
|
+
contradict itself.
|
|
36
|
+
|
|
37
|
+
Personal outreach (email, text) can still use "I" when the site uses
|
|
38
|
+
"we." See [`outreach.md`](./outreach.md).
|
|
39
|
+
|
|
40
|
+
Everything else in this file works under either choice.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Page tells (the ones that cluster here)
|
|
45
|
+
|
|
46
|
+
### Mechanical
|
|
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.
|
|
51
|
+
- Emoji as content (result badges, pain-list icons). Replace with type
|
|
52
|
+
or cut.
|
|
53
|
+
- Title Case On Every Card. Sentence case reads more human.
|
|
54
|
+
|
|
55
|
+
### Rhetorical (strongest AI signals on a page)
|
|
56
|
+
|
|
57
|
+
- **"Not X, but Y" antithesis.** Core already budgets teaching
|
|
58
|
+
antithesis. On a page the cap is hard: **max 2.** Keep only the
|
|
59
|
+
strongest.
|
|
60
|
+
- **Triadic negation chants.** "No pitch. No pressure. Honest answers."
|
|
61
|
+
This file's named exception: landing may keep **1** if it is the most
|
|
62
|
+
concrete one on the page.
|
|
63
|
+
- **Symmetrical parallel constructions.** "We speak both languages:
|
|
64
|
+
yours and the machine's."
|
|
65
|
+
- **The hedge-flourish.** "We'll also tell you when it isn't (yet)."
|
|
66
|
+
|
|
67
|
+
### Vocabulary (page hunts beyond core)
|
|
68
|
+
|
|
69
|
+
Core already bans unlock, unleash, leverage-as-verb, game-changer,
|
|
70
|
+
empower, journey. Extra on pages:
|
|
71
|
+
|
|
72
|
+
- Noise-cutting variants
|
|
73
|
+
- Friction as hype
|
|
74
|
+
- "Real" as an intensifier used more than twice. When everything is
|
|
75
|
+
real, nothing is.
|
|
76
|
+
|
|
77
|
+
### Metaphor overextension
|
|
78
|
+
|
|
79
|
+
A brand metaphor (forge, bridge, compass, engine) is allowed. Riding it
|
|
80
|
+
through every heading is not. **Budget: 2 references on the whole
|
|
81
|
+
page.** The rest go to plain language.
|
|
82
|
+
|
|
83
|
+
### Substance gaps
|
|
84
|
+
|
|
85
|
+
- **Claims with no evidence.** "Proven results" with zero numbers,
|
|
86
|
+
names, or outcomes. Add one concrete proof point or stop claiming
|
|
87
|
+
proof.
|
|
88
|
+
- **Pain lists that pitch.** Every item must be a pain, stated from the
|
|
89
|
+
reader's side. Do not name *your* product in the pain list. Naming a
|
|
90
|
+
tool the reader already uses is allowed.
|
|
91
|
+
- **Vague promises with fake specificity.** "A clear plan by Friday,"
|
|
92
|
+
"fluent by next week." Commit to a real offer or drop the fake dates.
|
|
93
|
+
- **Eyebrow word salad.** Keyword strings are not sentences a person
|
|
94
|
+
would say.
|
|
95
|
+
- **Interchangeability.** Could a competitor swap the logo and ship
|
|
96
|
+
this? If yes, it says nothing.
|
|
97
|
+
- **Hero names the category.** If you could swap the product name for a
|
|
98
|
+
competitor's and the hero still works, it is a category ad.
|
|
99
|
+
- **FAQ that is the pitch in question form.**
|
|
100
|
+
- **"We get it" empathy openers** that perform solidarity and then sell.
|
|
101
|
+
- **Testimonials in the brand's own voice.** A quote should not sound
|
|
102
|
+
like the rest of the page.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Rewrite acceptance criteria
|
|
107
|
+
|
|
108
|
+
A revised page passes when:
|
|
109
|
+
|
|
110
|
+
1. Zero em dashes in `<title>` and meta description (body already
|
|
111
|
+
covered by core).
|
|
112
|
+
2. Pronoun decision made and applied consistently; builder claims
|
|
113
|
+
aligned to it.
|
|
114
|
+
3. Max 2 "not X, but Y" constructions, max 1 triadic negation chant, max
|
|
115
|
+
2 brand-metaphor references.
|
|
116
|
+
4. Zero noise-cutting variants, friction-as-hype, and other
|
|
117
|
+
overlay-banned empties (core empties still apply).
|
|
118
|
+
5. "Real" used at most twice on the page.
|
|
119
|
+
6. Every pain-list item is a reader-side pain with no *your*-product
|
|
120
|
+
mention.
|
|
121
|
+
7. At least one concrete proof point, or all "proven results" claims
|
|
122
|
+
removed.
|
|
123
|
+
8. No emoji doing content work.
|
|
124
|
+
9. Read-aloud test: every section can be spoken to a smart friend
|
|
125
|
+
without either of you cringing. Any sentence you'd never say out
|
|
126
|
+
loud gets rewritten.
|
|
127
|
+
10. Punchy-then-substantive rhythm present. Nothing aspirational-abstract
|
|
128
|
+
("imagine," "transform," "future of work").
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Suggested process
|
|
133
|
+
|
|
134
|
+
1. Decide I vs we (and write it in the overlay).
|
|
135
|
+
2. Mechanical pass first (metadata em dashes, emoji, page-vocab hunts).
|
|
136
|
+
Cheap wins.
|
|
137
|
+
3. Rebuild the pain list and the how-it-works steps (biggest substance
|
|
138
|
+
gaps).
|
|
139
|
+
4. Rewrite hero sub and section titles against the rhetorical budgets.
|
|
140
|
+
5. Add one proof point or strip proof claims.
|
|
141
|
+
6. Read the whole page aloud, top to bottom. Fix anything that sounds
|
|
142
|
+
like a deck.
|
package/rules/launch.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Launch / announcement
|
|
2
|
+
|
|
3
|
+
Apply [`core.md`](./core.md) first. This file is the genre overlay for
|
|
4
|
+
shipping posts: product launches, rebrands, "we built this" reports.
|
|
5
|
+
|
|
6
|
+
Pair with [`essays.md`](./essays.md) if the piece is a build report on a
|
|
7
|
+
blog, and with [`landing.md`](./landing.md) if it is a marketing page.
|
|
8
|
+
This file is the extra tells that cluster on announcement copy.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Open on something specific, not the announcement formula
|
|
13
|
+
|
|
14
|
+
Skip "I'm excited to announce" and "Today, we're launching." Those are
|
|
15
|
+
the most generic openers in the genre.
|
|
16
|
+
|
|
17
|
+
Open on a specific moment or on the artifact. A first-ship story can
|
|
18
|
+
open on the decision that made the project real. A v1.2, a patch, or a
|
|
19
|
+
Show HN should open on the artifact. **Hacker News: artifact first,
|
|
20
|
+
always.**
|
|
21
|
+
|
|
22
|
+
If what building taught you is the interesting part, write a build
|
|
23
|
+
report (see [`essays.md`](./essays.md)). The product page can carry the
|
|
24
|
+
catalog.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Tells to avoid (launch-post specific)
|
|
29
|
+
|
|
30
|
+
Beyond `core.md` and `audit.md`:
|
|
31
|
+
|
|
32
|
+
- **"I'm excited to announce" / "Today, we're launching."** Also "we're
|
|
33
|
+
excited to share," "I'm humbled to announce."
|
|
34
|
+
- **The feature dump.** Three capabilities a reader can picture, not a
|
|
35
|
+
catalog. Everything else lives on the product page, behind one link.
|
|
36
|
+
A builder-audience overlay may raise the cap.
|
|
37
|
+
- **Fake humility.** "It's still early days and we have so much to
|
|
38
|
+
learn" is a tic, not modesty.
|
|
39
|
+
- **Manufactured urgency.** No countdowns, no launch-week pricing
|
|
40
|
+
theater.
|
|
41
|
+
- **Stacked CTAs.** One primary outbound link in the body. A second is
|
|
42
|
+
fine (docs, repo). Do not end every section with a button. On HN the
|
|
43
|
+
artifact is the link.
|
|
44
|
+
- **Retelling the origin story** when it belongs on another surface.
|
|
45
|
+
One or two sentences of setup, then a link.
|
|
46
|
+
- **False-momentum closers.** "This is just the beginning." Say the
|
|
47
|
+
honest status: live, paid, still being hardened, whatever is true.
|
|
48
|
+
- **Working-name history and tech stack** unless the audience is
|
|
49
|
+
builders who asked. Spec-sheet memory is not a story.
|
|
50
|
+
|
|
51
|
+
**What you chose not to build** is often the strongest section. Turning
|
|
52
|
+
down an obvious feature is a better story than shipping one, and it is a
|
|
53
|
+
claim a competitor cannot copy by rewriting their copy. Do not invent a
|
|
54
|
+
"we didn't build X" section so the post has one.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Pronouns
|
|
59
|
+
|
|
60
|
+
Use "we" when the build was a collaboration. Use "I" for observations
|
|
61
|
+
and lessons if the byline is one person. Do not erase the other hands,
|
|
62
|
+
and do not pretend a company wrote the scars. Overlay wins if it
|
|
63
|
+
already chose.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Channel extras
|
|
68
|
+
|
|
69
|
+
- **Personal surfaces:** first person "I."
|
|
70
|
+
- **Product / company surfaces:** "we" if the overlay says so.
|
|
71
|
+
- **Hacker News:** artifact first, story second. Disclose commercial
|
|
72
|
+
status up front. Engage in comments; never post-and-ghost. No upvote
|
|
73
|
+
asks (see [`outreach.md`](./outreach.md)).
|
|
74
|
+
- **LinkedIn / Facebook / X:** no feature dumps, no manufactured
|
|
75
|
+
urgency, no "Agree?", no "a thread 🧵", no "I'm humbled."
|
|
76
|
+
|
|
77
|
+
Run `audit.md` on every piece of publishable copy before it goes out.
|
|
78
|
+
Run `claims.md` if the post asserts facts, numbers, or "the industry
|
|
79
|
+
does X."
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Acceptance criteria (starting set)
|
|
84
|
+
|
|
85
|
+
1. Opens on a specific moment or on the artifact, not an announcement
|
|
86
|
+
formula. HN: artifact first.
|
|
87
|
+
2. Three product capabilities maximum in the body, unless the overlay
|
|
88
|
+
says the audience is builders who asked for more.
|
|
89
|
+
3. Honest status in the close; no "just the beginning."
|
|
90
|
+
4. One primary outbound link; a second is fine. Don't stack CTAs.
|
|
91
|
+
5. No feature table, no working-name history, unless the overlay
|
|
92
|
+
permits it for a builder audience.
|
|
93
|
+
6. Read-aloud test: every sentence is one you would say to a peer.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Personal outreach
|
|
2
|
+
|
|
3
|
+
Apply [`core.md`](./core.md) first. This file is the genre overlay for
|
|
4
|
+
email, DM, Signal, and text to people you actually know.
|
|
5
|
+
|
|
6
|
+
Landing pages can say "we." These messages are from one person. Default
|
|
7
|
+
to **I**.
|
|
8
|
+
|
|
9
|
+
Do not use this file to invent a relationship. Cold notes are a
|
|
10
|
+
different job: no fake shared history, no "loved your post about X"
|
|
11
|
+
scraped from a feed unless you did.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Tone extras
|
|
16
|
+
|
|
17
|
+
Direct without being aggressive. Phrasing you would actually send, not
|
|
18
|
+
copy you would publish. Time saved and problems solved, not "transforming
|
|
19
|
+
the future of work."
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Principles
|
|
24
|
+
|
|
25
|
+
**Relationship first.** Lead with warmth and shared history before news,
|
|
26
|
+
asks, or context. Skip this on a thank-you or an in-thread reply; those
|
|
27
|
+
already have a relationship.
|
|
28
|
+
|
|
29
|
+
**Ask before you broadcast.** A genuine question beats a status update
|
|
30
|
+
when you are starting a thread. Invite dialogue; don't just transmit.
|
|
31
|
+
|
|
32
|
+
**One primary ask per message**, when there is an ask. Stacked asks
|
|
33
|
+
dilute each other. Pick the real one and let the rest be context. Do
|
|
34
|
+
not legislate a weekly quota; do not stack parallel favors (product
|
|
35
|
+
invite plus "please share this") on the same person in one burst.
|
|
36
|
+
|
|
37
|
+
**Links as context, not CTAs.** Drop them inline ("the site is at X")
|
|
38
|
+
rather than isolated on their own lines, which reads as marketing.
|
|
39
|
+
|
|
40
|
+
**Easy out**, when there is an ask. Make it cheap to ignore. "No stress
|
|
41
|
+
if the week's packed" is better than manufactured urgency. A close
|
|
42
|
+
friend and an in-thread reply do not need a permission slip.
|
|
43
|
+
|
|
44
|
+
**Thank-you, specific, soon.** One line naming what they actually did.
|
|
45
|
+
That is what keeps the favor-budget refilling. A thank-you does not
|
|
46
|
+
need an ask.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Banned in this genre
|
|
51
|
+
|
|
52
|
+
- "Hope this finds you well."
|
|
53
|
+
- "I'm excited to announce."
|
|
54
|
+
- Feature dumps. One sentence on what it is, then the ask.
|
|
55
|
+
- Upvote asks on Hacker News, ever. HN detects rings. If you mention a
|
|
56
|
+
Show HN to a friend, no link and no ask. A substantive comment from
|
|
57
|
+
someone who knows the domain is the only useful favor.
|
|
58
|
+
- Generic "let me know if you have any questions."
|
|
59
|
+
- Fake intimacy on a cold note.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Shape of a message
|
|
64
|
+
|
|
65
|
+
When you are asking for something:
|
|
66
|
+
|
|
67
|
+
1. **Anchor.** Something real: last exchange, their world, a shared
|
|
68
|
+
fact.
|
|
69
|
+
2. **Frame.** One or two sentences of what happened, in voice.
|
|
70
|
+
3. **Ask.** One thing, concrete, sized to the relationship.
|
|
71
|
+
4. **Out.** Permission to skip it.
|
|
72
|
+
|
|
73
|
+
Thank-yous and replies can be one or two lines. Rewrite per person.
|
|
74
|
+
Seeds are not scripts.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Prompt phrasing (for an agent drafting a note)
|
|
79
|
+
|
|
80
|
+
Core register still applies. First-person "I." Lead with the
|
|
81
|
+
relationship when you are starting a thread. One ask, or none. Sounds
|
|
82
|
+
like a note you would send, not a landing page in an email client. Do
|
|
83
|
+
not invent shared history.
|