@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/CHANGELOG.md DELETED
@@ -1,241 +0,0 @@
1
- # Changelog — @holdyourvoice/hyv
2
-
3
- All notable CLI changes. Also mirrored to [holdyourvoice.com/changelog](https://holdyourvoice.com/changelog) for user-facing releases.
4
-
5
- ## [2.9.28] — 2026-07-31
6
-
7
- ### Fixed
8
- - **Scoped MCP activation** — installed rules, export prompts, and MCP metadata now use HYV automatically for publishable copy or an explicit voice request, while routine chat and engineering work bypass it
9
- - **Agent refresh** — `hyv doctor --fix-agents` refreshes the new scoped instructions through the package version marker
10
-
11
- ## [2.9.27] — 2026-07-15
12
-
13
- ### Fixed
14
- - **MCP scan hang** — `hyv_scan`, `hyv_fix`, `hyv_check`, `hyv_score`, `hyv_diff`, and `hyv_validate` no longer block on account profile sync; they use local `~/.hyv` cache immediately (matching `hyv scan` CLI) and hydrate profiles in the background
15
-
16
- ## [2.9.26] — 2026-07-09
17
-
18
- ### Improved
19
- - **Tier 1 structural detection** — cross-sentence binary reframes (`this is not X. it is Y.`), sermon anaphora, and founder-carousel metaphors now sort first in scan output and rewrite prompts
20
- - **Rewrite prompts** split tier 1 structural hits vs other patterns so the model fixes architecture before vocabulary slop
21
- - **18 new structural cousin rules** synced in local scan engine (`scan.ts`, `tier-one.ts`)
22
-
23
- ## [2.9.25] — 2026-07-04
24
-
25
- ### Fixed
26
- - **MCP stdio pollution** — `hyv mcp` no longer prints setup banners to stdout when spawned by Cursor/Claude/ChatGPT (fixes "Unexpected token … is not valid JSON" toast spam on app open)
27
- - Auto-detects piped stdout (`!isTTY`) or explicit `--stdio` flag; MCP configs now use `mcp --stdio`
28
- - Interactive terminal runs still show setup on stderr before the JSON-RPC server starts
29
-
30
- ## [2.9.15] — 2026-06-18
31
-
32
- ### Added
33
- - `mcp-profile-hydrate` — syncs voice profile into MCP agent configs after setup
34
- - `mcp-integrate` — writes MCP server entries for cursor, claude, codex, windsurf, and more
35
- - Postinstall detects installed agents and suggests `hyv mcp --setup`
36
-
37
- ### Fixed
38
- - `hyv mcp --test` validates 13 setup checks including ChatGPT actions
39
- - Agent docs updated for one-command MCP setup across all supported editors
40
-
41
- ## [2.9.11] — 2026-06-12
42
-
43
- ### Fixed
44
- - Data safety: preserve profiles with voice anchors, learned patterns, or dashboard-edited markdown
45
- - Welcome sync accepts `force: true` to intentionally overwrite preserved server profiles
46
- - `hyv sync` keeps newer local profiles (uses `updated_at` metadata); `--force` overwrites
47
- - JSON profile cache (`.hyv/cache/profiles/*.json`) backs up before overwrite; skips stale server snapshots
48
- - `~/.hyv/auth.json` backed up to `.hyv.bak` before each write
49
- - Web login: fixed email `body` ReferenceError in strict mode; Google sign-in warms `/ready` and retries on 503
50
- - Legacy `dashboard.html` email login fixed (`user` response, OTP `code` field, cold-start retries)
51
- - Static copy/sitemap: `holdyourvoice.com/dashboard` → `/app`
52
-
53
- ## [2.9.10] — 2026-06-12
54
-
55
- ### Fixed
56
- - **Data safety** — welcome profile sync no longer overwrites enriched dashboard profiles (keywords, signature, rules, flashcard onboarding)
57
- - Local profile cache backs up to `.hyv.bak` before overwrite; refuses empty content replacing real data
58
- - `hyv sync` skips empty server profile payloads instead of wiping local cache
59
-
60
- ## [2.9.9] — 2026-06-12
61
-
62
- ### Fixed
63
- - Welcome step 4 failure copy — says `hyv welcome` retry, not `hyv sync` (sync requires paid plan)
64
- - CLI plan/init/export/api messages point to `/app` and `/app/billing`, not `/dashboard`
65
- - Rewrite prompts no longer silently pick a cached profile when none is passed (generic rules as intended)
66
- - Web auth forgot-password and session check retry on cold-start 503s
67
- - Marketing email links point to `/app` not `/dashboard`
68
-
69
- ## [2.9.7] — 2026-06-12
70
-
71
- ### Fixed
72
- - `hyv sync` — profiles with spaces or missing slugs (e.g. "Say About Us") no longer crash with "Invalid profile name"
73
- - Welcome step 4 — clearer sync failure messages (HTTP status / server error)
74
-
75
- ## [2.9.6] — 2026-06-12
76
-
77
- ### Fixed
78
- - Welcome profile sync — server accepts `content` markdown from step 4 (upsert, no duplicate-profile 403)
79
- - Dashboard handoff — opens `/app/billing` with session cookie; falls back to billing URL if handoff fails
80
- - Edge worker handles `/cli/auth/web-handoff` (no container lag)
81
-
82
- ### Changed
83
- - `hyv open dashboard` and paid-feature copy point to `/app` not `/dashboard`
84
-
85
- ## [2.9.5] — 2026-06-12
86
-
87
- ### Fixed
88
- - Post-signup browser opens `/app/billing` (live dashboard) instead of `/dashboard` (404)
89
- - Worker redirects `/dashboard` → `/app` for old links
90
-
91
- ## [2.9.4] — 2026-06-12
92
-
93
- ### Fixed
94
- - Welcome step 4 — one sign-in only; opens dashboard billing tab (no second Google login on marketing site)
95
- - `hyv plan --upgrade` opens authenticated dashboard billing instead of public pricing page
96
-
97
- ### Changed
98
- - Step 4 copy tightened; spinners while account + profile sync run
99
-
100
- ## [2.9.3] — 2026-06-12
101
-
102
- ### Fixed
103
- - Browser signup OAuth — clearer error when Google denies; server fix for `redirect_uri_mismatch` (requires API deploy)
104
-
105
- ## [2.9.2] — 2026-06-12
106
-
107
- ### Changed
108
- - Welcome step 4 copy — warmer signup pitch, highlights $1 first month and what paid unlocks
109
-
110
- ## [2.9.1] — 2026-06-12
111
-
112
- ### Added
113
- - Welcome step 3 is skippable (Enter or `s`)
114
- - Multiline draft paste for testing (no more single-line shell chaos)
115
- - Document extraction for samples and scans: `.md`, `.txt`, `.html`, `.docx`, `.pdf`, `.skill`
116
- - Recursive folder scan; single files (including `.skill` archives) work in step 2
117
- - Minimal terminal spinners while reading, saving, and scanning
118
-
119
- ### Fixed
120
- - Step 3 crash when scanning pasted text (`Cannot read properties of undefined (reading 'match')`) — profile now loads correctly
121
- - `ENOTDIR` when pointing at a file instead of a folder
122
-
123
- ## [2.9.0] — 2026-06-12
124
-
125
- ### Changed
126
- - `hyv welcome` — profile-first flow: name → samples (paste/folder/link/chat) → test draft → signup
127
- - Keeps tagline; drops install/init/mcp step list from welcome
128
- - MCP `hyv_welcome` supports `step`, `mode=extract_prompt`, and `profile` for agent-led onboarding
129
- - Postinstall points to `hyv welcome` instead of `hyv init`
130
-
131
- ## [2.8.10] — 2026-06-12
132
-
133
- ### Fixed
134
- - `hyv init` browser login opens Google OAuth again (`assertSafeOAuthUrl` allows `accounts.google.com`)
135
-
136
- ## [2.8.9] — 2026-06-12
137
-
138
- ### Improved
139
- - `hyv fix --in-place` matches batch/watch safeguards: interactive `[y/N]` or `--yes` + `.bak` backup
140
- - `hyv watch --command fix` ignores self-triggered saves after writing fixes
141
- - `hyv doctor` checks auth.json permissions, stale `hyv.md` vs `hyv.mdc`, and MCP stdio health
142
- - Shared `resolveCliEntry()` for MCP setup and stdio probes
143
- - Auth refresh + destructive-write unit tests
144
-
145
- ### Changed
146
- - `dist/` built at publish/prepare — no longer committed to git
147
-
148
- ## [2.8.8] — 2026-06-12
149
-
150
- ### Security
151
- - OAuth browser flow verifies server `state` on callback (CSRF protection)
152
- - Automatic token refresh via `getValidToken()` before API calls
153
- - `HYV_API_URL` host allowlist; `assertSafeOpenUrl` for checkout/OAuth redirects
154
- - Profile name path traversal blocked; MCP file reads symlink-safe with `isError` responses
155
- - Sensitive `~/.hyv` files and dirs use `0o600`/`0o700` permissions
156
-
157
- ### Fixed
158
- - `hyv doctor --fix-agents` uses correct postinstall-lib path
159
- - `hyv import` registered; `--fail-on-hit` exits code 2 (scan + batch)
160
- - Queue sync sends `original_text` / `accepted_text` for learning reinforce
161
- - Postinstall: Claude Desktop MCP merge with backup, Cursor `alwaysApply` rule, absolute MCP command path
162
-
163
- ### Improved
164
- - `hyv mcp --test` spawns stdio subprocess and validates JSON-RPC `tools/list`
165
- - `hyv batch --fix --in-place` and `hyv watch --command fix` require `--yes` (`.bak` backups)
166
- - Stale duplicate agent/skill markdown removed from `assets/` (canonical copies in `agents/` + `skills/`)
167
-
168
- ## [2.8.6] — 2026-06-12
169
-
170
- ### Changed
171
- - `hyv welcome` — short onboarding: 4 steps, one-line demo, subscribe prompt (full lists moved to `hyv free`)
172
- - Shorter postinstall message before auto-welcome
173
-
174
- ## [2.8.5] — 2026-06-12
175
-
176
- ### Changed
177
- - `hyv welcome` slimmed down (superseded by 2.8.6 — use `npm i -g @holdyourvoice/hyv@2.8.6`)
178
-
179
- ## [2.8.4] — 2026-06-12
180
-
181
- ### Fixed
182
- - Postinstall only auto-runs welcome when npm shows script output; otherwise first bare `hyv` shows full onboarding (fixes silent global installs)
183
-
184
- ## [2.8.3] — 2026-06-12
185
-
186
- ### Fixed
187
- - `npm i -g` runs `hyv welcome` onboarding automatically on first install (no y/N prompt)
188
- - First bare `hyv` shows full onboarding when npm hid postinstall output
189
- - Upgraded `glob` to v13 — removes deprecated glob@11 warning during install
190
-
191
- ## [2.8.2] — 2026-06-12
192
-
193
- ### Added
194
- - Phase 5 marketing: `hyv content` (blog outlines, CI snippets, share templates)
195
- - `hyv plan --free` — canonical free vs paid matrix in terminal
196
- - `cli/assets/FREE-PAID.md` — shipped free/paid reference
197
- - Scan funnel hints + `scan_complete` / `init_success` telemetry events
198
- - Landing + npm README: npx-first install, free CLI section, SEO keywords
199
-
200
- ### Improved
201
- - Postinstall, welcome, plan, and init flows promote npx + free local tier
202
- - npm package description optimized for cursor/claude/MCP discovery
203
-
204
- ## [2.8.1] — 2026-06-12
205
-
206
- ### Fixed
207
- - `postinstall-lib.js` now included in published tarball — `npm install` no longer fails on postinstall
208
-
209
- ## [2.8.0] — 2026-06-12
210
-
211
- ### Added
212
- - Full Phase 1–4 product plan: free local engine, hybrid analysis, MCP `hyv_analyze` / `hyv_clean`, learning loop UX, packaging hardening
213
- - `npm run test:smoke` — 28+ CLI regression checks
214
- - `npm run validate:publish` — prepublish tarball verification
215
- - Golden prompt tests, postinstall idempotency tests, edge-case suite
216
-
217
- ### Fixed
218
- - `hyv check ""` no longer reports false clean — rejects empty input
219
- - Bundled CLI resolves correct package + rules version from `dist/`
220
- - Smoke tests avoid SIGPIPE false failures when piping CLI output
221
-
222
- ## [2.7.1] — 2026-06-12
223
-
224
- ### Added
225
- - `hyv upgrade` — check and install latest global CLI
226
- - `hyv mcp --setup` and `hyv mcp --test` — agent setup + health check
227
- - MCP tools: `hyv_analyze` (hybrid server+local), `hyv_clean` (scan→fix→validate pipeline)
228
- - `hyv reinforce --last` — learn from last fix/rewrite session
229
- - Free-first local engine: scan, fix, check, score, diff work offline without subscription
230
- - `hyv welcome` / `hyv free` — onboarding with live demo
231
- - Profile-aware local pipeline: never-list, learned patterns, anchors, cadence
232
- - Opt-in telemetry: `HYV_TELEMETRY=1`
233
-
234
- ### Improved
235
- - Postinstall upgrades agent instructions via `~/.hyv/agents-version.json`
236
- - `hyv status` shows engine/rules version, drift, evolution summary
237
- - `hyv doctor` reports full engine label + `--fix-agents`
238
- - Published package excludes Python dev scripts and `src/`
239
-
240
- ### Fixed
241
- - Bundled CLI reads correct `package.json` version from `dist/`
package/README.md DELETED
@@ -1,218 +0,0 @@
1
- # hold your voice
2
-
3
- make your ai agent sound exactly like you.
4
-
5
- `@holdyourvoice/hyv` is a CLI-first voice gate for AI workflows. scan drafts for AI writing patterns locally (offline, no API), wire it into cursor/claude via MCP, and unlock profile-aware rewrites when you subscribe.
6
-
7
- **Try without installing:**
8
-
9
- ```bash
10
- npx @holdyourvoice/hyv welcome
11
- npx @holdyourvoice/hyv scan draft.md
12
- ```
13
-
14
- ## install
15
-
16
- **Recommended** (installs node automatically if missing):
17
-
18
- ```bash
19
- # mac / linux
20
- curl -fsSL https://holdyourvoice.com/install.sh | bash
21
-
22
- # windows (powershell)
23
- powershell -ExecutionPolicy Bypass -c "irm https://holdyourvoice.com/install.ps1 | iex"
24
- ```
25
-
26
- Already have node 18+?
27
-
28
- ```bash
29
- npm i -g @holdyourvoice/hyv
30
- ```
31
-
32
- postinstall copies scoped agent rules and configures MCP for claude desktop and cursor (plus claude code, windsurf, codex, command code skills when detected). HYV runs automatically for publishable copy or an explicit voice request, not routine chat or engineering work. set `HYV_AUTO_CONFIGURE_AGENTS=0` to skip.
33
-
34
- ## free vs paid
35
-
36
- | free forever (local, no account) | paid unlocks |
37
- |----------------------------------|--------------|
38
- | `hyv scan`, `fix`, `check`, `score`, `diff`, `batch`, `watch` | voice profiles synced from your account |
39
- | `hyv mcp` — agent tools (`hyv_scan`, `hyv_clean`, …) | learning loop: `hyv reinforce`, `hyv add` |
40
- | `hyv welcome`, `hyv doctor`, `hyv content` | profile-aware `hyv rewrite` prompts |
41
- | 30+ free web tools at [holdyourvoice.com/tools](https://holdyourvoice.com/tools) | hybrid server analysis (`hyv scan --server`, MCP `hyv_analyze`) |
42
- | public voice profiles + blog | multiple profiles, team voices, dashboard |
43
-
44
- ```bash
45
- hyv plan --free # full matrix in the terminal
46
- hyv welcome # live demo + every free capability
47
- ```
48
-
49
- local scan never calls an LLM. your text stays on your machine.
50
-
51
- ## quick start
52
-
53
- ```bash
54
- # instant demo — no auth
55
- npx @holdyourvoice/hyv welcome
56
-
57
- # scan a draft offline
58
- hyv scan draft.md
59
-
60
- # sign in when you want profiles + learning
61
- hyv init
62
- hyv new my-voice
63
-
64
- # generate a rewrite prompt (profile-aware when subscribed)
65
- hyv rewrite draft.md
66
- ```
67
-
68
- ## npx (no global install)
69
-
70
- ```bash
71
- npx @holdyourvoice/hyv welcome
72
- npx @holdyourvoice/hyv scan draft.md
73
- npx @holdyourvoice/hyv fix draft.md
74
- npx @holdyourvoice/hyv init
75
- npx @holdyourvoice/hyv mcp --setup
76
- ```
77
-
78
- ## MCP server
79
-
80
- `hyv mcp` runs a stdio MCP server for claude desktop, claude code, cursor, windsurf, codex, and command code.
81
-
82
- ```bash
83
- hyv mcp --setup # copy-paste config for every agent
84
- hyv mcp --test # health check (tools, demo pipeline, profile)
85
- hyv mcp # start server (stdio)
86
- ```
87
-
88
- postinstall copies agent rules to `~/.cursor/rules/hyv.mdc`, `~/.claude/commands/hyv.md`, etc. re-run anytime:
89
-
90
- ```bash
91
- hyv doctor --fix-agents
92
- ```
93
-
94
- ### tools
95
-
96
- | tool | description |
97
- |------|-------------|
98
- | `hyv_welcome` / `hyv_demo` | onboarding + live free scan demo |
99
- | `hyv_scan` | fast local scan (free, offline; uses `~/.hyv` cache, no network wait) |
100
- | `hyv_analyze` | hybrid local + server analysis (paid when online) |
101
- | `hyv_clean` | scan → fix → validate → rewrite prompt |
102
- | `hyv_fix` / `hyv_check` / `hyv_score` / `hyv_diff` | local utilities |
103
- | `hyv_rewrite` | profile-aware rewrite prompt |
104
- | `hyv_validate` | verify text against voice profile |
105
- | `hyv_profiles` | list cached or account profiles |
106
-
107
- ### agent workflow
108
-
109
- 1. `hyv_scan` or `hyv_analyze` on draft text
110
- 2. `hyv_clean` or `hyv_fix` → `hyv_rewrite` → `hyv_validate`
111
- 3. after user accepts edits: `hyv reinforce --last` (CLI learning loop)
112
-
113
- ## CI / pre-commit
114
-
115
- block AI-slop before merge:
116
-
117
- ```bash
118
- hyv content ci # full github actions + pre-commit snippets
119
- ```
120
-
121
- github actions:
122
-
123
- ```yaml
124
- - run: npx @holdyourvoice/hyv@latest scan content/ --fail-on-hit
125
- ```
126
-
127
- `--fail-on-hit` exits with code **2** when issues are found (exit 0 = clean). use in CI to block merges on AI-slop.
128
-
129
- ### destructive in-place writes
130
-
131
- `fix`, `batch`, and `watch` can rewrite files on disk. they create a `.bak` backup sibling before writing.
132
-
133
- | command | safeguard |
134
- |---------|-----------|
135
- | `hyv fix <file> --in-place` | prompts `[y/N]` locally; use `--yes` in CI |
136
- | `hyv batch <glob> --fix --in-place` | same — one prompt for the whole batch |
137
- | `hyv watch <file> --command fix` | same — confirms once at startup |
138
-
139
- ```bash
140
- # interactive (local)
141
- hyv fix draft.md --in-place
142
-
143
- # non-interactive (CI/scripts)
144
- hyv fix draft.md --in-place --yes
145
- hyv batch "posts/**/*.md" --fix --in-place --yes
146
- ```
147
-
148
- ## commands
149
-
150
- | command | description |
151
- |---------|-------------|
152
- | `hyv` | condensed welcome (no args) |
153
- | `hyv welcome` / `hyv free` | free demo + capability tour |
154
- | `hyv scan <file>` | scan text for AI patterns |
155
- | `hyv fix <file>` | auto-swap fixable patterns (`--in-place --yes` for CI) |
156
- | `hyv batch <glob>` | scan/fix many files (`--fail-on-hit` exits 2) |
157
- | `hyv watch <file>` | re-scan on save (`--command fix --yes` to auto-fix) |
158
- | `hyv check <text>` | quick pass/fail check |
159
- | `hyv init` | authenticate with hold your voice |
160
- | `hyv new <name>` | create a voice profile |
161
- | `hyv rewrite <file>` | generate rewrite prompt |
162
- | `hyv content [topic]` | blog outlines, CI snippets, share templates |
163
- | `hyv plan --free` | free vs paid matrix |
164
- | `hyv mcp` | start MCP server |
165
- | `hyv export [format]` | export profile for LLMs |
166
- | `hyv reinforce --last` | learn from last fix session |
167
- | `hyv doctor` | diagnose and fix issues |
168
- | `hyv upgrade` | install latest global CLI |
169
-
170
- ## voice profiles
171
-
172
- profiles live in `~/.hyv/profiles/` as markdown. create one with:
173
-
174
- ```bash
175
- hyv new my-voice
176
- ```
177
-
178
- onboarding walks through your style, audience, and tone. profiles sync to the server when you're on a paid plan.
179
-
180
- ## content formats
181
-
182
- `hyv scan` detects 220+ AI writing patterns:
183
-
184
- - **ai-slop** — delve, leverage, tapestry, pivotal, foster
185
- - **formulaic** — firstly, moreover, in conclusion
186
- - **voice-drift** — arguably, perhaps, some might say
187
- - **structure** — antithesis, signpost claims, lesson setups
188
-
189
- paid profiles add never-list bans, learned patterns, anchors, and cadence scoring.
190
-
191
- ## environment variables
192
-
193
- | variable | description |
194
- |----------|-------------|
195
- | `HYV_API_URL` | API base URL (default: `https://holdyourvoice.com`) |
196
- | `HYV_LOCAL_ONLY` | force offline mode (`1` or `true`) |
197
- | `HYV_TELEMETRY` | log funnel events to `~/.hyv/telemetry/` (`1` to enable) |
198
- | `HYV_POSTINSTALL_QUIET` | suppress postinstall output (`1`) |
199
-
200
- ```bash
201
- HYV_API_URL=https://staging.holdyourvoice.com hyv init
202
- ```
203
-
204
- ## links
205
-
206
- - [npm package](https://www.npmjs.com/package/@holdyourvoice/hyv)
207
- - [free tools](https://holdyourvoice.com/tools)
208
- - [pricing](https://holdyourvoice.com/#pricing)
209
- - [blog](https://holdyourvoice.com/blog)
210
- - [community](https://holdyourvoice.com/community)
211
-
212
- ## documentation ownership
213
-
214
- Changes under `cli/` update this README, the more-specific owner README when applicable, and the root repository README. Package-relative paths, bin names, published files, and postinstall behavior are contracts; validate them with `npm run validate:publish` before merging.
215
-
216
- ## license
217
-
218
- UNLICENSED — [holdyourvoice.com](https://holdyourvoice.com)
package/agents/AGENTS.md DELETED
@@ -1,82 +0,0 @@
1
- # Hold Your Voice — Agent Instructions
2
-
3
- The user has a voice profile for publishable copy. Use it for 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 — do these automatically
6
-
7
- **For eligible publishable copy or an explicit HYV/voice request:**
8
- 1. Run `hyv_scan` for a fast local check (free, offline, works without a profile)
9
- 2. Run `hyv_clean` for the full scan → fix → validate pipeline, or `hyv_fix` then `hyv_rewrite`
10
- 3. Run `hyv_validate` to verify the output matches their voice
11
-
12
- **When the user asks you to create or rewrite eligible copy:**
13
- 1. Write your draft normally
14
- 2. Run `hyv_scan` or `hyv_clean` on it
15
- 3. Run `hyv_rewrite` to match their voice profile
16
- 4. Deliver the voice-matched version
17
-
18
- **Do not auto-run HYV** for routine chat, Q&A, analysis, research, planning, coding, debugging, reviews, logs, operational work, code comments, or internal engineering-status messages. If the request is ambiguous, bypass HYV unless the user explicitly asks for it.
19
-
20
- **After the user accepts a substantial edit:**
21
- - Suggest they run `hyv reinforce --last` so their profile learns from the change
22
-
23
- ## Which tool to use
24
-
25
- | Tool | What it does | When to use |
26
- |------|-------------|-------------|
27
- | `hyv_welcome` | Onboarding guide (name → samples → test → signup) | New users, first time |
28
- | `hyv_mcp_setup` | Status, integrate apps, ChatGPT connector | Check/refresh setup |
29
- | `hyv_profiles` | List voice profiles | See which profiles are available |
30
- | `hyv_scan` | Fast local AI-pattern scan (free, 220+ patterns) | Eligible publishable copy or an explicit HYV request |
31
- | `hyv_analyze` | Full hybrid scan (local + server, paid) | Important drafts |
32
- | `hyv_clean` | Scan → fix → validate → rewrite in one call | Best single-call pipeline |
33
- | `hyv_fix` | Auto-fix deterministic patterns (no LLM) | Before rewrite |
34
- | `hyv_rewrite` | Profile-aware rewrite prompt | After scan/fix |
35
- | `hyv_validate` | Verify output matches voice profile | After rewrite |
36
- | `hyv_check` | Quick pass/fail | Spot checks |
37
- | `hyv_score` | 0-100 voice score | Quantify quality |
38
- | `hyv_diff` | Before/after comparison | Review changes |
39
- | `hyv_list_free_tools` | List all free capabilities | What's available |
40
-
41
- ## Voice profiles
42
-
43
- - Run `hyv_profiles` first if unsure which profile is active.
44
- - Terminal profiles (from `hyv welcome`) are already local — no extra step.
45
- - Dashboard profiles sync after the user runs `hyv init` once (MCP auto-downloads).
46
- - Pass `profile: "<slug>"` on tools only when using a non-default profile.
47
- - If no profile exists yet, free local scan still works — call `hyv_welcome` to onboard.
48
-
49
- ## Rewrite rules
50
-
51
- 1. **Never** use AI-slop words: delve, leverage, tapestry, foster, harness, pivotal, innovative, cutting-edge, robust, holistic, nuanced, resonate, unpack, navigate, landscape, ecosystem, transformative, paradigm, revolutionize, unlock, supercharge, game-changer
52
- 2. **Never** use formulaic connectors: firstly, secondly, moreover, furthermore, in conclusion, to conclude, notably
53
- 3. **Never** use hedging: arguably, perhaps, some might say, it's worth noting, it's important to note
54
- 4. **Never** use signpost claims: this is why, this is how, here's where, here's why
55
- 5. **Never** use antithesis patterns: "not just X, but Y", "more than just", "it's not about X, it's about Y"
56
- 6. **Match** the user's sentence rhythm, vocabulary, and tone from their voice profile
57
- 7. **Preserve** roughness that carries voice — don't over-polish
58
- 8. **Open** from concrete observations, not generic setups
59
- 9. **Fix only** flagged lines — preserve clean lines exactly
60
- 10. **Never add** sections, hooks, CTAs, markdown, or commentary
61
-
62
- ## MCP setup (no terminal needed)
63
-
64
- - `hyv_mcp_setup` with `action=status` — see what's integrated and onboarding progress
65
- - `hyv_mcp_setup` with `action=integrate` — refresh Cursor/Claude configs (`force=true` after hyv upgrade)
66
- - `hyv_mcp_setup` with `action=chatgpt` — ChatGPT remote OAuth steps (recommended for paid users)
67
- - `hyv_welcome` — finish voice onboarding inside this chat
68
-
69
- ## CLI fallback (when MCP tools aren't available)
70
-
71
- ```bash
72
- echo "text to check" | hyv scan -
73
- hyv fix file.md # apply auto-fixes without LLM
74
- hyv rewrite file.md # generate rewrite prompt
75
- hyv check "inline text" # quick spot-check
76
- hyv score file.md # just a 0-100 number
77
- hyv diff file.md # show proposed fixes
78
- hyv profiles # list profiles
79
- hyv reinforce --last # learn from last edit
80
- hyv mcp --setup # view all MCP configs
81
- hyv mcp --test # verify everything works
82
- ```
package/agents/README.md DELETED
@@ -1,20 +0,0 @@
1
- # `cli/agents/`
2
-
3
- ## Purpose
4
-
5
- `cli/agents/` contains agent resources included in the published CLI package.
6
-
7
- ## Contracts
8
-
9
- The directory is included by the `files` list in `cli/package.json`. Changes must preserve package inclusion and postinstall discovery behavior. All host instructions share the same activation boundary: publishable copy or an explicit voice request uses HYV; routine chat and engineering work bypass it.
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`.
package/agents/chatgpt.md DELETED
@@ -1,47 +0,0 @@
1
- # Hold Your Voice — Writing Rules
2
-
3
- The user has a voice profile for publishable copy: social posts, newsletters, blogs, landing or product pages, campaigns, and external audience-facing emails. Apply it whenever the user explicitly asks for HYV, a voice profile, or writing in their voice.
4
-
5
- Do not apply these rules to routine chat, Q&A, analysis, research, planning, coding, debugging, reviews, logs, operational work, code comments, or internal engineering-status messages. If a request is ambiguous, bypass HYV unless the user explicitly requests it.
6
-
7
- ## Rules
8
- 1. Never use AI-slop words: delve, leverage, tapestry, foster, harness, pivotal, innovative, cutting-edge, state-of-the-art, robust, holistic, multifaceted, nuanced
9
- 2. Never use formulaic connectors: firstly, secondly, moreover, furthermore, in conclusion
10
- 3. Never use hedging: arguably, perhaps, some might say, it's worth noting
11
- 4. Never use signpost claims: this is why, this is how, here's where
12
- 5. Match the user's sentence rhythm and vocabulary
13
- 6. Preserve roughness that carries voice — don't over-polish
14
- 7. Open from concrete observations, not generic setups
15
-
16
- ## When rewriting
17
- - Fix only flagged lines, preserve clean lines
18
- - Remove AI patterns line by line
19
- - Match the user's voice profile exactly
20
- - Never add sections, hooks, CTAs, or commentary
21
-
22
- ## Voice profiles
23
- - `hyv_profiles` — which profile MCP tools use (default + all local copies)
24
- - Dashboard-built profiles: user runs `hyv init` once on their Mac — then MCP auto-syncs
25
- - Terminal `hyv welcome` profiles are already local — no extra step
26
-
27
- ## MCP setup (no terminal)
28
- - `hyv_mcp_setup` with `action=status` — see what's integrated and onboarding progress
29
- - `hyv_mcp_setup` with `action=integrate` — refresh Cursor/Claude configs (`force=true` after hyv upgrade)
30
- - `hyv_mcp_setup` with `action=chatgpt` — **recommended:** remote OAuth (developer mode → new app → https://holdyourvoice.com/mcp + OAuth). Free fallback: local connector (command: hyv, arguments: mcp)
31
- - `hyv_welcome` — finish voice onboarding inside this chat
32
-
33
- ## ChatGPT connection (recommended — paid users)
34
- 1. Settings → Developer mode ON
35
- 2. Settings → Apps → New App
36
- 3. Server URL: `https://holdyourvoice.com/mcp` · Authentication: OAuth
37
- 4. Save → sign in to holdyourvoice.com
38
- 5. OAuth runs in ChatGPT's browser — no Windows firewall issues, no local install
39
-
40
- ## Available tools
41
- - `hyv_mcp_setup` / `hyv_welcome` / `hyv_demo` — setup and onboarding
42
- - `hyv_scan` / `hyv_analyze` — check for AI patterns (+ hybrid when paid)
43
- - `hyv_clean` — full scan → fix → validate pipeline
44
- - `hyv_fix` / `hyv_rewrite` / `hyv_validate`
45
- - `hyv_check` / `hyv_score` / `hyv_diff`
46
- - `hyv_profiles` — list available profiles
47
- - CLI: `hyv reinforce --last` after user accepts edits
@@ -1,45 +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
- ## When to use HYV
6
-
7
- Run `hyv_scan` or use the `hyv_scan` MCP tool before delivering eligible publishable copy:
8
- - Social posts, threads, and public replies
9
- - Newsletters, blogs, articles, and landing or product pages
10
- - Campaigns and external audience-facing emails
11
-
12
- Run `hyv_rewrite` or use the `hyv_rewrite` MCP tool when eligible copy needs voice work, or whenever the user explicitly asks for HYV or voice-profile writing.
13
-
14
- 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.
15
-
16
- ## How to use
17
-
18
- ### MCP tools (preferred — if MCP is connected):
19
- 1. `hyv_welcome` for new users (step 2: extract_prompt from chat history)
20
- 2. `hyv_scan` (fast local) or `hyv_analyze` (hybrid when paid) → get issues
21
- 3. `hyv_clean` → scan + fix + validate + rewrite prompt in one call
22
- 4. Or stepwise: `hyv_fix` → `hyv_rewrite` → `hyv_validate`
23
- 5. `hyv_check` / `hyv_score` / `hyv_diff` for quick checks
24
- 6. After user accepts edits: suggest `hyv reinforce --last` (CLI learning loop)
25
-
26
- ### CLI commands (fallback):
27
- ```bash
28
- echo "text to check" | hyv scan -
29
- hyv fix file.md # apply auto-fixes without LLM
30
- hyv rewrite file.md # generate rewrite prompt
31
- hyv check "inline text" # quick spot-check
32
- hyv score file.md # just a 0-100 number
33
- hyv diff file.md # show proposed fixes
34
- hyv profiles # list profiles
35
- hyv rules # list/toggle detection rules
36
- hyv batch "posts/**/*.md" # scan multiple files
37
- hyv history # track scores over time
38
- ```
39
-
40
- ## Rules
41
- - Never skip the scan step for user-facing content
42
- - Preserve the original meaning exactly when rewriting
43
- - Match the voice profile's rhythm, vocabulary, and patterns
44
- - If no profile is set up yet, run `hyv profiles` to check
45
- - Setup: `hyv mcp --setup` | health: `hyv mcp --test`