@holdyourvoice/hyv 2.9.28 → 3.0.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.
Files changed (49) hide show
  1. package/LICENSE +17 -22
  2. package/Readme.md +254 -0
  3. package/dist/ai-editor.js +9 -0
  4. package/dist/ai-editor.test.js +61 -0
  5. package/dist/cli.js +77 -0
  6. package/dist/cli.test.js +119 -0
  7. package/dist/contracts.js +1 -0
  8. package/dist/mcp-tools.js +27 -0
  9. package/dist/mcp-tools.test.js +23 -0
  10. package/dist/mcp.js +69 -0
  11. package/dist/mcp.test.js +22 -0
  12. package/dist/pipeline.js +64 -0
  13. package/dist/pipeline.test.js +36 -0
  14. package/dist/profile.js +31 -0
  15. package/dist/release-audit.test.js +37 -0
  16. package/dist/text.js +42 -0
  17. package/dist/text.test.js +16 -0
  18. package/dist/voice-dna.js +77 -0
  19. package/dist/voice-dna.test.js +32 -0
  20. package/package.json +15 -74
  21. package/CHANGELOG.md +0 -241
  22. package/README.md +0 -218
  23. package/agents/AGENTS.md +0 -82
  24. package/agents/README.md +0 -20
  25. package/agents/chatgpt.md +0 -47
  26. package/agents/claude-code.md +0 -45
  27. package/agents/codex.md +0 -31
  28. package/agents/cursor.md +0 -36
  29. package/agents/generic.md +0 -49
  30. package/agents/windsurf.md +0 -20
  31. package/assets/FREE-PAID.md +0 -46
  32. package/assets/README.md +0 -20
  33. package/assets/ai-eliminator-rules.md +0 -140
  34. package/assets/chatgpt-instructions.txt +0 -8
  35. package/assets/detection-rules.json +0 -18
  36. package/assets/economic-drift-voice.md +0 -42
  37. package/assets/voice-dna-template.md +0 -88
  38. package/assets/voice-profile-schema.json +0 -28
  39. package/dist/index.js +0 -20911
  40. package/scripts/README.md +0 -23
  41. package/scripts/check-no-duplicates.js +0 -32
  42. package/scripts/install.ps1 +0 -101
  43. package/scripts/install.sh +0 -155
  44. package/scripts/postinstall-lib.js +0 -796
  45. package/scripts/postinstall.js +0 -35
  46. package/skills/README.md +0 -20
  47. package/skills/ai-writing-eliminator/SKILL.md +0 -63
  48. package/skills/hold-your-voice/SKILL.md +0 -174
  49. package/skills/voice-matcher/SKILL.md +0 -57
package/agents/codex.md DELETED
@@ -1,31 +0,0 @@
1
- # Hold Your Voice
2
-
3
- The user has a voice profile for publishable copy. Use HYV for social posts, newsletters, blogs, landing or product pages, campaigns, and external audience-facing emails. Always use HYV when the user explicitly asks for it, a voice profile, or writing in their voice.
4
-
5
- ## Auto-trigger rules
6
-
7
- Run these MCP tools (or CLI commands) for eligible publishable copy:
8
- - `hyv_scan` or `hyv_analyze` before delivering it
9
- - `hyv_clean` for the full pipeline, or `hyv_fix` → `hyv_rewrite`
10
- - `hyv_validate` to verify the output
11
- - Suggest `hyv reinforce --last` after substantial accepted edits
12
-
13
- ## Quick tools
14
- - `hyv_welcome` / `hyv_demo` for new users
15
- - `hyv_check` / `hyv_score` / `hyv_diff`
16
-
17
- ## CLI fallback
18
- ```bash
19
- echo "text" | hyv scan -
20
- hyv fix file.md
21
- hyv rewrite file.md
22
- hyv reinforce --last
23
- hyv profiles
24
- hyv mcp --setup
25
- ```
26
-
27
- ## Rules
28
- - Bypass HYV for routine chat, Q&A, analysis, research, planning, coding, debugging, reviews, logs, operational work, code comments, and internal engineering-status messages. If ambiguous, bypass it unless HYV is explicitly requested.
29
- - Always scan eligible publishable copy
30
- - Always fix/rewrite if scan finds issues
31
- - Preserve meaning, match voice profile
package/agents/cursor.md DELETED
@@ -1,36 +0,0 @@
1
- # Hold Your Voice
2
-
3
- Use HYV MCP tools for publishable copy: social posts, newsletters, blogs, landing or product pages, campaigns, and external audience-facing emails. Always use HYV when the user explicitly asks for it, a voice profile, or writing in their voice. If no profile exists yet, call `hyv_welcome` or `hyv_profiles` first — free local scan works without a profile. For MCP host setup or refresh, call `hyv_mcp_setup` (no terminal).
4
-
5
- ## When to use
6
- - Social posts, newsletters, blogs, landing or product pages, campaigns, and external audience-facing emails
7
- - Any request that explicitly names HYV, a voice profile, or writing in the user's voice
8
- - New users: `hyv_welcome` (name → samples via extract_prompt → scan → signup last)
9
-
10
- Bypass HYV for routine chat, Q&A, analysis, research, planning, coding, debugging, reviews, logs, operational work, code comments, and internal engineering-status messages. If ambiguous, bypass it unless HYV is explicitly requested.
11
-
12
- ## Tool flow (preferred)
13
- 1. `hyv_scan` — fast local check (free, offline)
14
- 2. `hyv_analyze` — full hybrid engine when user is on a paid plan
15
- 3. `hyv_fix` — deterministic word swaps
16
- 4. `hyv_clean` — scan → fix → validate → rewrite prompt in one call
17
- 5. `hyv_rewrite` — profile-aware rewrite prompt for remaining issues
18
- 6. `hyv_validate` — verify output matches voice
19
- 7. After user accepts a big edit: suggest `hyv reinforce --last` (CLI)
20
-
21
- ## Tools
22
- - `hyv_profiles` — active default + all MCP-ready profiles (dashboard profiles after `hyv init`)
23
- - `hyv_mcp_setup` — integration status, refresh configs, ChatGPT steps
24
- - `hyv_welcome` / `hyv_list_free_tools` / `hyv_demo` — onboarding (free)
25
- - `hyv_scan` — local AI pattern + profile scan
26
- - `hyv_analyze` — hybrid local + server analysis (paid when online)
27
- - `hyv_clean` — full clean pipeline for agents
28
- - `hyv_fix` / `hyv_check` / `hyv_score` / `hyv_diff` — local utilities
29
- - `hyv_rewrite` / `hyv_validate` — voice matching
30
- - `hyv_profiles` — list profiles
31
-
32
- ## Rules
33
- - Always scan eligible publishable copy
34
- - Use `hyv_fix` before `hyv_rewrite` when possible
35
- - Preserve meaning when rewriting
36
- - Match the user's voice profile exactly
package/agents/generic.md DELETED
@@ -1,49 +0,0 @@
1
- # Hold Your Voice — Agent Instructions
2
-
3
- You have access to the Hold Your Voice MCP tools. Use the user's voice profile for publishable copy: social posts, newsletters, blogs, landing or product pages, campaigns, and external audience-facing emails. Also use it whenever the user explicitly asks for HYV, a voice profile, or writing in their voice.
4
-
5
- ## Auto-trigger rules
6
-
7
- Use these tools automatically for eligible publishable copy. Always honor an explicit HYV or voice-profile request:
8
-
9
- **Before delivering eligible publishable copy:**
10
- 1. Run `hyv_scan` (fast) or `hyv_analyze` (full hybrid when paid)
11
- 2. Run `hyv_clean` for the full scan → fix → validate loop, or `hyv_fix` then `hyv_rewrite`
12
- 3. Run `hyv_validate` to verify the result
13
-
14
- **When the user asks you to create or rewrite eligible copy:**
15
- 1. Write your draft
16
- 2. Run `hyv_scan` or `hyv_clean` on it
17
- 3. Deliver the cleaned version
18
-
19
- **Bypass HYV** for routine chat, Q&A, analysis, research, planning, coding, debugging, reviews, logs, operational work, code comments, and internal engineering-status messages. If the request is ambiguous, bypass it unless the user explicitly requests HYV.
20
-
21
- **After the user accepts a substantial edit:**
22
- - Suggest they run `hyv reinforce --last` so their profile learns from the change
23
-
24
- **For new users or MCP setup:**
25
- - Call `hyv_welcome` — guide them: name profile → samples (use `hyv_welcome` with `mode=extract_prompt` to pull voice from chat) → `hyv_scan` test → signup last via `hyv init`
26
- - Call `hyv_mcp_setup` — check integration status, refresh app configs (`action=integrate`), or ChatGPT Desktop steps (`action=chatgpt`). Works without a voice profile.
27
-
28
- ## Voice profiles (terminal + dashboard)
29
- - Call **`hyv_profiles`** first if unsure which profile is active.
30
- - **`hyv welcome`** (terminal) saves to this machine — MCP uses it immediately.
31
- - **Dashboard** profiles sync here after the user runs **`hyv init`** once (MCP auto-downloads on start).
32
- - Pass `profile: "<slug>"` on tools only when using a non-default profile (slug is lowercase-hyphenated name).
33
-
34
- ## Available tools
35
- - `hyv_mcp_setup` — MCP status, integrate hosts, ChatGPT connector guide (no terminal)
36
- - `hyv_profiles` — list MCP-ready profiles and active default
37
- - `hyv_welcome` / `hyv_list_free_tools` / `hyv_demo` — onboarding
38
- - `hyv_scan` — local scan (free, offline)
39
- - `hyv_analyze` — hybrid server + local (paid)
40
- - `hyv_clean` — composite clean pipeline
41
- - `hyv_fix` / `hyv_rewrite` / `hyv_validate`
42
- - `hyv_check` / `hyv_score` / `hyv_diff`
43
- - `hyv_profiles` — list voice profiles
44
-
45
- ## Rules
46
- - NEVER skip scanning for eligible publishable copy
47
- - Preserve original meaning exactly when rewriting
48
- - Match the voice profile's rhythm, vocabulary, and tone
49
- - If no profile exists, run onboarding via `hyv_welcome` (step 2 extract_prompt from chat history)
@@ -1,20 +0,0 @@
1
- # Hold Your Voice
2
-
3
- Use HYV MCP tools for publishable copy: social posts, newsletters, blogs, landing or product pages, campaigns, and external audience-facing emails. Always use HYV when the user explicitly asks for it, a voice profile, or writing in their voice.
4
-
5
- ## Auto-trigger
6
- - `hyv_scan` or `hyv_analyze` before delivering eligible publishable copy
7
- - `hyv_clean` for scan → fix → validate in one call
8
- - `hyv_fix` then `hyv_rewrite` for stepwise fixes
9
- - `hyv_validate` after rewriting
10
- - `hyv reinforce --last` after user accepts big edits (CLI)
11
-
12
- ## Quick tools
13
- - `hyv_welcome` / `hyv_demo` for onboarding
14
- - `hyv_check` / `hyv_score` / `hyv_diff`
15
-
16
- ## Rules
17
- - Bypass HYV for routine chat, Q&A, analysis, research, planning, coding, debugging, reviews, logs, operational work, code comments, and internal engineering-status messages. If ambiguous, bypass it unless HYV is explicitly requested.
18
- - Always scan eligible publishable copy
19
- - Use `hyv_fix` before `hyv_rewrite` when possible
20
- - Preserve meaning, match voice profile
@@ -1,46 +0,0 @@
1
- # free vs paid — @holdyourvoice/hyv
2
-
3
- ## free forever (local + web)
4
-
5
- **CLI (offline, no account)**
6
-
7
- - `hyv scan`, `fix`, `check`, `score`, `diff`, `batch`, `watch`
8
- - `hyv rules`, `history`, `demo`, `doctor`, `upgrade`
9
- - `hyv export` (local profile markdown)
10
- - `hyv mcp` — agent tools (`hyv_scan`, `hyv_clean`, `hyv_analyze`, …)
11
- - `hyv welcome` / `hyv free` — capability tour + live demo
12
- - `hyv content` — blog & share templates
13
- - `hyv plan --free` — this matrix in the terminal
14
-
15
- **Try without installing**
16
-
17
- ```bash
18
- npx @holdyourvoice/hyv welcome
19
- npx @holdyourvoice/hyv scan draft.md
20
- npx @holdyourvoice/hyv fix draft.md
21
- npx @holdyourvoice/hyv init
22
- npx @holdyourvoice/hyv mcp
23
- ```
24
-
25
- **Web (30+ free tools)**
26
-
27
- - https://holdyourvoice.com/tools
28
- - headline analyzer, brand voice audit, readability checker, email subject scorer, persona builder, and more
29
- - public profiles: https://holdyourvoice.com/profiles
30
- - blog: https://holdyourvoice.com/blog
31
-
32
- ## paid unlocks
33
-
34
- - voice profiles synced from your account (never-list, anchors, learned patterns)
35
- - learning loop: `hyv reinforce`, `hyv add`
36
- - profile-aware rewrite prompts (`hyv rewrite`)
37
- - hybrid server analysis (`hyv scan --server`, MCP `hyv_analyze`)
38
- - multiple profiles + team voices (team plan)
39
- - dashboard at https://holdyourvoice.com/app
40
-
41
- First month $1 → https://holdyourvoice.com/#pricing
42
-
43
- ```bash
44
- hyv init
45
- hyv plan --upgrade
46
- ```
package/assets/README.md DELETED
@@ -1,20 +0,0 @@
1
- # `cli/assets/`
2
-
3
- ## Purpose
4
-
5
- `cli/assets/` contains assets included in the published CLI package.
6
-
7
- ## Contracts
8
-
9
- The directory is included by the `files` list in `cli/package.json`. Keep package paths and postinstall consumers intact.
10
-
11
- ## Validation
12
-
13
- ```bash
14
- cd cli
15
- npm run validate:publish
16
- ```
17
-
18
- ## Documentation ownership
19
-
20
- Changes update this README, `cli/README.md`, and the root `README.md`.
@@ -1,140 +0,0 @@
1
- # AI Eliminator Rules (v2 — 220+ patterns + structural signals)
2
-
3
- Use these rules to remove AI-generated cadence without erasing the writer.
4
-
5
- ## Core Rule
6
-
7
- Fix the exact line that drifted. Do not rewrite a whole draft when one sentence
8
- is the problem. Preserve clean surrounding lines.
9
-
10
- ## Detection Coverage
11
-
12
- The algorithm now detects 220+ named AI writing patterns organized across 31
13
- composite regex rules, plus structural/rhythmic analysis of: burstiness
14
- (sentence length variance), paragraph rhythm uniformity, contraction density,
15
- formal hedging, generic intensifiers, fragment ratio, over-structured list
16
- patterns, and uniform sentence rhythm within paragraphs.
17
-
18
- ## Banned Pattern Categories
19
-
20
- ### Binary reframing & negation (#1, #210-212)
21
- - "It's not X, it's Y" / "The point isn't X, it's Y"
22
- - "You don't need X, you need Y"
23
- - "Not just X, but Y" / "Not only... but also"
24
- - **structural cousins (top priority):** cross-sentence forms the vocabulary scan misses:
25
- - "This is not X. It is Y." / "Is not X. It is Y."
26
- - "You are not X. You are Y." / "You are no longer X. You are Y."
27
- - "You stop X. You start Y."
28
- - "They don't need X. They need Y."
29
- - "They call it X. They call it Y." (staccato anaphora)
30
- - Parallel sermon: "X because… / they X because…" and "endure through… / they endure through…"
31
- - Founder-carousel metaphors: "competing with the void", "architect of a new reality", "friction into momentum", "cognitive architecture", "defines what good looks like", "the hidden goal", "quiet promise", "simple but uncomfortable:"
32
-
33
- **Tier 1 priority:** rules with ids `structural_*` and `founder_*` are primary flags. They sort first in scan output, win hit-budget slots in the editor, weigh heavier in cleanliness scoring, lead rewrite prompts, and gate rewrite output before vocabulary slop.
34
-
35
- ### Staccato drama (#2, #95, #96)
36
- - Short punchy sentence runs: "No X. No Y. Just Z."
37
- - Perfectly even sentence rhythm throughout paragraphs
38
- - Three short sentences in a row (performance cadence)
39
-
40
- ### Landscape/era grandstanding (#3, #181-188)
41
- - "In today's fast-paced world" / "ever-evolving landscape"
42
- - "Now more than ever" / "as never before"
43
- - "Has never been more important"
44
- - "In the digital age" / "new era of X"
45
- - "The rise of X" / "increasingly + adjective"
46
-
47
- ### Truth/reality posturing (#22, #110, #161-163)
48
- - "The truth is" / "the reality is" / "here's the truth"
49
- - "The harsh/ugly/brutal reality" / "real talk"
50
- - "Brutal honesty" / "reality check"
51
-
52
- ### Hedging & non-committal (#4, #53-55, #89, #197-199)
53
- - "It depends, but" / "no one-size-fits-all"
54
- - "It can be tempting to" / "you might be tempted to"
55
- - "In many ways" / "at first it might seem"
56
-
57
- ### Transitions & balance (#7, #38-40, #81, #91, #203)
58
- - "On the one hand / on the other hand"
59
- - "On the flip side" / "that said" / "however"
60
- - "Moreover / furthermore / in addition" chains
61
- - "At first glance vs on closer inspection"
62
-
63
- ### Let's/invitation patterns (#5, #63-65, #80, #127)
64
- - "Let's dive in" / "let's explore" / "let's break it down"
65
- - "Delve into" / "dive deeper" / "deep dive"
66
- - "Navigate the complex landscape"
67
-
68
- ### Empathy opener (#21, #74-75, #107, #164-165)
69
- - "It's easy to feel X" / "you're not alone"
70
- - "You're not imagining it" / "you deserve"
71
- - "Shouting into the void"
72
-
73
- ### Founder/thought-leader cadence (#72-73, #104-109)
74
- - "Here's the thing" / "and honestly?"
75
- - "Here's the kicker" / "the part most people miss"
76
- - "What nobody's saying" / "the best part?"
77
- - "Same X. Better Y." / "the moment X becomes Y"
78
-
79
- ### Marketing verbs (#61-62, #83, #114-117, #145-150)
80
- - "Unlock the power of" / "harness the power of"
81
- - "Transform/elevate/take to the next level"
82
- - "Master the art of" / "game-changer"
83
- - "Supercharge / turbocharge / on steroids"
84
-
85
- ### Journey/destination clichés (#59, #84, #122, #144, #214-215)
86
- - "X isn't a destination; it's a journey"
87
- - "No matter where you are on your journey"
88
- - "Embark on" / "you're still early" / "it's still day one"
89
-
90
- ### Metaphor clusters (#18, #120-121, #159-160, #167-168, #173-180)
91
- - "Beacon / lighthouse / tapestry / symphony / tides"
92
- - "Silent killer / hidden gem / tip of the iceberg"
93
- - "North star / double-edged sword / blessing and a curse"
94
- - "Noise vs signal" / "X is the new Y"
95
- - "Flood / avalanche / tsunami of X"
96
-
97
- ### Guide/article framing (#11-13, #27-28, #136-138)
98
- - "You're in the right place" / "here's a step-by-step guide"
99
- - "First, second, third" / "key takeaways" / "actionable tips"
100
- - "In this article/guide/post" / "this piece explores"
101
-
102
- ### Wrapping/closing (#9, #14-15, #51-52, #66, #93, #103, #189, #217)
103
- - "At the end of the day" / "the bottom line is"
104
- - "In conclusion / in summary / to recap"
105
- - "Let that sink in" / "only time will tell"
106
- - "Curious what others think" / "let me know if you need help"
107
-
108
- ### UX/business buzzwords (#92, #123-126, #155-157)
109
- - "Robust, scalable, innovative, impactful"
110
- - "Seamless experience" / "frictionless journey"
111
- - "Pain points" / "wealth of insights"
112
-
113
- ### Story/temporal templates (#17, #32-33, #113, #216, #218-219)
114
- - "Imagine this / picture this"
115
- - "Storytelling has been around for centuries"
116
- - "Little did I know" / "at first I was skeptical"
117
- - "The best time was X, the second-best time is now"
118
-
119
- ## Structural Signals (Beyond Individual Words)
120
-
121
- - **Low burstiness**: Sentence lengths all similar (coefficient of variation < 0.35)
122
- - **Mechanical paragraphs**: All paragraphs nearly identical sentence count
123
- - **Over-structured lists**: Rigid 3-item lists throughout
124
- - **Uniform paragraph rhythm**: Most sentences fall in 12-22 word range
125
- - **Low contractions**: < 0.8 contractions per 100 words (overly formal)
126
- - **Formal hedging density**: 2+ institutional hedging phrases
127
- - **Generic intensifiers**: 3+ "remarkably/incredibly/amazingly" instances
128
- - **No fragments**: Zero sentence fragments in 20+ sentences (over-polished)
129
-
130
- ## What To Do Instead
131
-
132
- - Start from rough private-note material: an exact edit, meeting fragment,
133
- dashboard annoyance, customer confusion, half-remembered sentence, or internal
134
- contradiction.
135
- - Let the idea move because the logic moves, not because line breaks perform.
136
- - Prefer concrete scenes, mechanisms, quoted language, and specific stakes.
137
- - Let some pieces end on a detail, hesitation, unresolved thought, or awkwardly
138
- specific observation.
139
- - If a line sounds like a maxim, a carousel, or a model trying to be sharp,
140
- make it plainer and more grounded.
@@ -1,8 +0,0 @@
1
- when i ask you to "write in my voice" or "rewrite this in my voice":
2
-
3
- - read `~/.hyv/voice.md` for my voice profile
4
- - run `hyv rewrite --text "<text>"` to get the structured prompt
5
- - execute the prompt and rewrite the text
6
- - match my rhythm, vocabulary, and patterns exactly
7
- - never use words i avoid
8
- - present the rewritten version
@@ -1,18 +0,0 @@
1
- {
2
- "version": "1.0.0",
3
- "engine": "node",
4
- "source": "cli/src/lib/signals.ts",
5
- "updated": "2026-06-12",
6
- "categories": {
7
- "ai-slop": { "description": "Dead AI language and overused words", "severity_default": "red" },
8
- "voice-drift": { "description": "Hedging, generic openers, voice drift", "severity_default": "yellow" },
9
- "structure": { "description": "Formulaic structure and antithesis tells", "severity_default": "yellow" },
10
- "cadence": { "description": "Sentence rhythm violations", "severity_default": "yellow" },
11
- "learned": { "description": "User-specific learned patterns", "severity_default": "yellow" },
12
- "engagement-bait": { "description": "Engagement bait patterns", "severity_default": "red" },
13
- "ai-cringe": { "description": "AI cringe phrases", "severity_default": "yellow" },
14
- "insider-claim": { "description": "Insider knowledge claims", "severity_default": "yellow" }
15
- },
16
- "pattern_count": 220,
17
- "notes": "Node signals.ts is canonical for npm package. Server syncs this manifest; supplemental rules may ship in ~/.hyv/cache/supplemental-rules.json"
18
- }
@@ -1,42 +0,0 @@
1
- # Economic Drift Voice
2
-
3
- Economic Drift is the default Shashank voice profile when the user asks for
4
- "my voice" and no fresher project samples are available. Do not force it onto a
5
- different writer when their own samples exist.
6
-
7
- ## Philosophy
8
-
9
- High-signal, low-friction writing. The reader should get a lot without working
10
- hard. The tone feels like a private conversation with someone smart, slightly
11
- cynical, and not performing for approval.
12
-
13
- ## Style
14
-
15
- - Open with a concrete observation, moment, mechanism, or pattern.
16
- - Avoid lesson openers, question openers, inspirational claims, and generic
17
- category summaries.
18
- - Use contrarian tension only when the real point is uncomfortable, not for
19
- cheap shock.
20
- - Mix simple language with dense thinking.
21
- - Let sentence length vary naturally. No theatrical staccato.
22
- - Favor rough private-note texture: exact edits, customer confusion, dashboard
23
- annoyances, meeting fragments, internal contradictions.
24
- - Do not turn every piece into a tidy lesson. Some endings should stop on a
25
- detail or unresolved thought.
26
- - Use lowercase when writing in Shashank's deliberate social-writing style,
27
- unless the user or target format asks otherwise.
28
-
29
- ## Hard Bans
30
-
31
- - `here's the thing`
32
- - `let's be honest`
33
- - `at the end of the day`
34
- - `which is another way of saying`
35
- - `in other words`
36
- - `the moment x becomes y`
37
- - `same x. better y.`
38
- - motivational poster energy
39
- - screenshot-ready punchline cadence
40
- - generic founder advice
41
- - bullets, hashtags, emojis, and bold emphasis in social prose unless requested
42
-
@@ -1,88 +0,0 @@
1
- # Voice DNA
2
-
3
- ## Writing Rules
4
- - Write like a sharp human, not a language model.
5
- - Use contractions naturally (don't, can't, won't).
6
- - Short paragraphs. 1-3 sentences max.
7
- - Get to the point. No throat-clearing, no preamble.
8
- - If making a claim, be specific. Use numbers, names, concrete details.
9
- - Vary sentence length. Mix short punchy lines with longer ones.
10
- - Use natural transitions, not mechanical ones ("Furthermore," "Additionally").
11
- - When uncertain, say so plainly ("I think," "probably," "kinda"). Hedging is human.
12
- - Never pad output to seem more thorough. Shorter and accurate beats longer and fluffy.
13
- - Use physical verbs for abstract processes: "sanded down" not "improved," "bolted on" not "added," "stripped back" not "simplified."
14
- - Humor comes from specificity, not from jokes. Be unexpectedly precise.
15
- - Parenthetical asides are good. Use them for editorial commentary, honest reactions, quick tangents, and deflating your own seriousness (like this).
16
- - Write the way you talk. Naturally.
17
- - Use short words, short sentences, short paragraphs.
18
- - Never use jargon. Pretend the reader is smart but unfamiliar with the topic.
19
- - Read every sentence aloud in your head. If you'd stumble saying it, rewrite it.
20
- - Be crystal clear about what you want the reader to do next.
21
-
22
- ## Formatting Rules
23
- - Short paragraphs (1-2 sentences default, 3 max).
24
- - Numbers as digits.
25
- - Contractions always.
26
- - NO em dashes ever. Use commas, periods, colons, semicolons, or parentheses.
27
- - Bold sparingly, 1-2 key moments per section.
28
- - Code blocks for specific prompts, commands, or tool outputs.
29
-
30
- ## Banned Phrases
31
-
32
- ### Dead AI Language
33
- - "In today's [anything]..."
34
- - "It's important to note that..." / "It's worth noting..."
35
- - "Delve" / "Dive into" / "Unpack"
36
- - "Harness" / "Leverage" / "Utilize"
37
- - "Landscape" / "Realm" / "Robust"
38
- - "Game-changer" / "Cutting-edge" / "State-of-the-art"
39
- - "Straightforward"
40
- - "I'd be happy to help"
41
- - "In order to"
42
-
43
- ### Dead Transitions
44
- - "Furthermore" / "Additionally" / "Moreover"
45
- - "Moving forward" / "At the end of the day"
46
- - "To put this in perspective..."
47
- - "What makes this particularly interesting is..."
48
- - "The implications here are..."
49
- - "In other words..."
50
- - "It goes without saying..."
51
-
52
- ### Engagement Bait
53
- - "Let that sink in" / "Read that again" / "Full stop"
54
- - "This changes everything"
55
- - "Are you paying attention?"
56
- - "You're not ready for this"
57
-
58
- ### AI Cringe
59
- - "Supercharge" / "Unlock" / "Future-proof"
60
- - "10x your productivity"
61
- - "The AI revolution"
62
- - "In the age of AI"
63
-
64
- ### Generic Insider Claims
65
- - "Here's the part nobody's talking about"
66
- - "What nobody tells you"
67
- - Anything with "nobody" or "most people don't realize"
68
-
69
- ### The Big One (FATAL)
70
- - "This isn't X. This is Y." and ALL variations.
71
- - "Not X. Y."
72
- - "Forget X. This is Y."
73
- - "Less X, more Y."
74
- - ANY sentence that negates one framing then asserts a corrected one.
75
- - If even ONE of these appears, the output fails. Delete the negation, just state the positive claim.
76
-
77
- ### Business Jargon (Ogilvy Rule)
78
- - "Utilize" / "Leverage" / "Synergy"
79
- - "Circle back" / "Touch base" / "Take it offline"
80
- - "Low-hanging fruit" / "Move the needle" / "Bandwidth"
81
- - "Deep dive" / "Boil the ocean"
82
-
83
- ## Writing Samples
84
-
85
- <!-- Paste your writing here. The more you give, the better the voice match.
86
- Google docs, emails, blog posts, Slack messages, reports.
87
- Pre-AI writing is best — your voice before it blended with AI defaults. -->
88
-
@@ -1,28 +0,0 @@
1
- {
2
- "profile_version": "hold-your-voice-portable-v1",
3
- "name": "project voice",
4
- "source_count": 0,
5
- "word_count": 0,
6
- "sentence": {
7
- "avg_words": 0,
8
- "variance": "medium"
9
- },
10
- "paragraph": {
11
- "avg_sentences": 0
12
- },
13
- "signature": {
14
- "case_style": "mixed",
15
- "argument_pattern": "mixed",
16
- "opening_moves": [],
17
- "cadence": [],
18
- "anchors": [],
19
- "never_list": []
20
- },
21
- "voice_rules": [],
22
- "ai_eliminator": {
23
- "rewrite_scope": "flagged-lines-only",
24
- "preserve_surrounding_lines": true,
25
- "avoid_polished_founder_cadence": true
26
- }
27
- }
28
-