@holdyourvoice/hyv 2.9.27 → 3.0.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 +17 -22
- package/Readme.md +247 -0
- package/dist/ai-editor.js +9 -0
- package/dist/ai-editor.test.js +61 -0
- package/dist/cli.js +106 -0
- package/dist/cli.test.js +119 -0
- package/dist/contracts.js +1 -0
- package/dist/pipeline.js +64 -0
- package/dist/pipeline.test.js +36 -0
- package/dist/release-audit.test.js +29 -0
- package/dist/text.js +42 -0
- package/dist/text.test.js +16 -0
- package/dist/voice-dna.js +77 -0
- package/dist/voice-dna.test.js +32 -0
- package/package.json +14 -74
- package/CHANGELOG.md +0 -235
- package/README.md +0 -218
- package/agents/AGENTS.md +0 -80
- package/agents/README.md +0 -20
- package/agents/chatgpt.md +0 -45
- package/agents/claude-code.md +0 -50
- package/agents/codex.md +0 -30
- package/agents/cursor.md +0 -35
- package/agents/generic.md +0 -47
- package/agents/windsurf.md +0 -19
- package/assets/FREE-PAID.md +0 -46
- package/assets/README.md +0 -20
- package/assets/ai-eliminator-rules.md +0 -140
- package/assets/chatgpt-instructions.txt +0 -8
- package/assets/detection-rules.json +0 -18
- package/assets/economic-drift-voice.md +0 -42
- package/assets/voice-dna-template.md +0 -88
- package/assets/voice-profile-schema.json +0 -28
- package/dist/index.js +0 -20909
- package/scripts/README.md +0 -21
- package/scripts/check-no-duplicates.js +0 -32
- package/scripts/install.ps1 +0 -101
- package/scripts/install.sh +0 -155
- package/scripts/postinstall-lib.js +0 -796
- package/scripts/postinstall.js +0 -35
- package/skills/README.md +0 -20
- package/skills/ai-writing-eliminator/SKILL.md +0 -63
- package/skills/hold-your-voice/SKILL.md +0 -174
- package/skills/voice-matcher/SKILL.md +0 -57
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 agent rules and configures MCP for claude desktop and cursor (plus claude code, windsurf, codex, command code skills when detected). 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,80 +0,0 @@
|
|
|
1
|
-
# Hold Your Voice — Agent Instructions
|
|
2
|
-
|
|
3
|
-
The user has a voice profile that defines their unique writing style. Your job is to make ALL written content match their voice automatically — without waiting for them to mention "voice" or "hyv".
|
|
4
|
-
|
|
5
|
-
## Auto-trigger — do these automatically
|
|
6
|
-
|
|
7
|
-
**Before delivering any written content (emails, replies, posts, docs, messages, or prose):**
|
|
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 write, draft, compose, edit, improve, or rewrite anything:**
|
|
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
|
-
**After the user accepts a substantial edit:**
|
|
19
|
-
- Suggest they run `hyv reinforce --last` so their profile learns from the change
|
|
20
|
-
|
|
21
|
-
## Which tool to use
|
|
22
|
-
|
|
23
|
-
| Tool | What it does | When to use |
|
|
24
|
-
|------|-------------|-------------|
|
|
25
|
-
| `hyv_welcome` | Onboarding guide (name → samples → test → signup) | New users, first time |
|
|
26
|
-
| `hyv_mcp_setup` | Status, integrate apps, ChatGPT connector | Check/refresh setup |
|
|
27
|
-
| `hyv_profiles` | List voice profiles | See which profiles are available |
|
|
28
|
-
| `hyv_scan` | Fast local AI-pattern scan (free, 220+ patterns) | Before any prose delivery |
|
|
29
|
-
| `hyv_analyze` | Full hybrid scan (local + server, paid) | Important drafts |
|
|
30
|
-
| `hyv_clean` | Scan → fix → validate → rewrite in one call | Best single-call pipeline |
|
|
31
|
-
| `hyv_fix` | Auto-fix deterministic patterns (no LLM) | Before rewrite |
|
|
32
|
-
| `hyv_rewrite` | Profile-aware rewrite prompt | After scan/fix |
|
|
33
|
-
| `hyv_validate` | Verify output matches voice profile | After rewrite |
|
|
34
|
-
| `hyv_check` | Quick pass/fail | Spot checks |
|
|
35
|
-
| `hyv_score` | 0-100 voice score | Quantify quality |
|
|
36
|
-
| `hyv_diff` | Before/after comparison | Review changes |
|
|
37
|
-
| `hyv_list_free_tools` | List all free capabilities | What's available |
|
|
38
|
-
|
|
39
|
-
## Voice profiles
|
|
40
|
-
|
|
41
|
-
- Run `hyv_profiles` first if unsure which profile is active.
|
|
42
|
-
- Terminal profiles (from `hyv welcome`) are already local — no extra step.
|
|
43
|
-
- Dashboard profiles sync after the user runs `hyv init` once (MCP auto-downloads).
|
|
44
|
-
- Pass `profile: "<slug>"` on tools only when using a non-default profile.
|
|
45
|
-
- If no profile exists yet, free local scan still works — call `hyv_welcome` to onboard.
|
|
46
|
-
|
|
47
|
-
## Rewrite rules
|
|
48
|
-
|
|
49
|
-
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
|
|
50
|
-
2. **Never** use formulaic connectors: firstly, secondly, moreover, furthermore, in conclusion, to conclude, notably
|
|
51
|
-
3. **Never** use hedging: arguably, perhaps, some might say, it's worth noting, it's important to note
|
|
52
|
-
4. **Never** use signpost claims: this is why, this is how, here's where, here's why
|
|
53
|
-
5. **Never** use antithesis patterns: "not just X, but Y", "more than just", "it's not about X, it's about Y"
|
|
54
|
-
6. **Match** the user's sentence rhythm, vocabulary, and tone from their voice profile
|
|
55
|
-
7. **Preserve** roughness that carries voice — don't over-polish
|
|
56
|
-
8. **Open** from concrete observations, not generic setups
|
|
57
|
-
9. **Fix only** flagged lines — preserve clean lines exactly
|
|
58
|
-
10. **Never add** sections, hooks, CTAs, markdown, or commentary
|
|
59
|
-
|
|
60
|
-
## MCP setup (no terminal needed)
|
|
61
|
-
|
|
62
|
-
- `hyv_mcp_setup` with `action=status` — see what's integrated and onboarding progress
|
|
63
|
-
- `hyv_mcp_setup` with `action=integrate` — refresh Cursor/Claude configs (`force=true` after hyv upgrade)
|
|
64
|
-
- `hyv_mcp_setup` with `action=chatgpt` — ChatGPT remote OAuth steps (recommended for paid users)
|
|
65
|
-
- `hyv_welcome` — finish voice onboarding inside this chat
|
|
66
|
-
|
|
67
|
-
## CLI fallback (when MCP tools aren't available)
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
echo "text to check" | hyv scan -
|
|
71
|
-
hyv fix file.md # apply auto-fixes without LLM
|
|
72
|
-
hyv rewrite file.md # generate rewrite prompt
|
|
73
|
-
hyv check "inline text" # quick spot-check
|
|
74
|
-
hyv score file.md # just a 0-100 number
|
|
75
|
-
hyv diff file.md # show proposed fixes
|
|
76
|
-
hyv profiles # list profiles
|
|
77
|
-
hyv reinforce --last # learn from last edit
|
|
78
|
-
hyv mcp --setup # view all MCP configs
|
|
79
|
-
hyv mcp --test # verify everything works
|
|
80
|
-
```
|
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.
|
|
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,45 +0,0 @@
|
|
|
1
|
-
# Hold Your Voice — Writing Rules
|
|
2
|
-
|
|
3
|
-
The user has a voice profile. All writing must match their personal style.
|
|
4
|
-
|
|
5
|
-
## Rules
|
|
6
|
-
1. Never use AI-slop words: delve, leverage, tapestry, foster, harness, pivotal, innovative, cutting-edge, state-of-the-art, robust, holistic, multifaceted, nuanced
|
|
7
|
-
2. Never use formulaic connectors: firstly, secondly, moreover, furthermore, in conclusion
|
|
8
|
-
3. Never use hedging: arguably, perhaps, some might say, it's worth noting
|
|
9
|
-
4. Never use signpost claims: this is why, this is how, here's where
|
|
10
|
-
5. Match the user's sentence rhythm and vocabulary
|
|
11
|
-
6. Preserve roughness that carries voice — don't over-polish
|
|
12
|
-
7. Open from concrete observations, not generic setups
|
|
13
|
-
|
|
14
|
-
## When rewriting
|
|
15
|
-
- Fix only flagged lines, preserve clean lines
|
|
16
|
-
- Remove AI patterns line by line
|
|
17
|
-
- Match the user's voice profile exactly
|
|
18
|
-
- Never add sections, hooks, CTAs, or commentary
|
|
19
|
-
|
|
20
|
-
## Voice profiles
|
|
21
|
-
- `hyv_profiles` — which profile MCP tools use (default + all local copies)
|
|
22
|
-
- Dashboard-built profiles: user runs `hyv init` once on their Mac — then MCP auto-syncs
|
|
23
|
-
- Terminal `hyv welcome` profiles are already local — no extra step
|
|
24
|
-
|
|
25
|
-
## MCP setup (no terminal)
|
|
26
|
-
- `hyv_mcp_setup` with `action=status` — see what's integrated and onboarding progress
|
|
27
|
-
- `hyv_mcp_setup` with `action=integrate` — refresh Cursor/Claude configs (`force=true` after hyv upgrade)
|
|
28
|
-
- `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)
|
|
29
|
-
- `hyv_welcome` — finish voice onboarding inside this chat
|
|
30
|
-
|
|
31
|
-
## ChatGPT connection (recommended — paid users)
|
|
32
|
-
1. Settings → Developer mode ON
|
|
33
|
-
2. Settings → Apps → New App
|
|
34
|
-
3. Server URL: `https://holdyourvoice.com/mcp` · Authentication: OAuth
|
|
35
|
-
4. Save → sign in to holdyourvoice.com
|
|
36
|
-
5. OAuth runs in ChatGPT's browser — no Windows firewall issues, no local install
|
|
37
|
-
|
|
38
|
-
## Available tools
|
|
39
|
-
- `hyv_mcp_setup` / `hyv_welcome` / `hyv_demo` — setup and onboarding
|
|
40
|
-
- `hyv_scan` / `hyv_analyze` — check for AI patterns (+ hybrid when paid)
|
|
41
|
-
- `hyv_clean` — full scan → fix → validate pipeline
|
|
42
|
-
- `hyv_fix` / `hyv_rewrite` / `hyv_validate`
|
|
43
|
-
- `hyv_check` / `hyv_score` / `hyv_diff`
|
|
44
|
-
- `hyv_profiles` — list available profiles
|
|
45
|
-
- CLI: `hyv reinforce --last` after user accepts edits
|
package/agents/claude-code.md
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# Hold Your Voice
|
|
2
|
-
|
|
3
|
-
The user has a voice profile that defines their writing style. Use HYV tools for ALL writing tasks — not just when they say "voice" or "hyv".
|
|
4
|
-
|
|
5
|
-
## When to use HYV
|
|
6
|
-
|
|
7
|
-
ALWAYS run `hyv_scan` or use the `hyv_scan` MCP tool before delivering any written content:
|
|
8
|
-
- Writing emails, replies, or messages
|
|
9
|
-
- Drafting blog posts, articles, or documentation
|
|
10
|
-
- Creating social media posts (Twitter, LinkedIn, etc.)
|
|
11
|
-
- Editing or improving any text
|
|
12
|
-
- Responding to questions with longer answers
|
|
13
|
-
- Any task where the output is prose/text the user will publish or send
|
|
14
|
-
|
|
15
|
-
ALWAYS run `hyv_rewrite` or use the `hyv_rewrite` MCP tool when:
|
|
16
|
-
- The user asks to "write", "draft", "compose", "edit", "improve", or "fix" text
|
|
17
|
-
- The user says "make this better", "clean this up", "fix the tone"
|
|
18
|
-
- The user asks for any content creation
|
|
19
|
-
- The scan finds issues and you need to fix them
|
|
20
|
-
|
|
21
|
-
## How to use
|
|
22
|
-
|
|
23
|
-
### MCP tools (preferred — if MCP is connected):
|
|
24
|
-
1. `hyv_welcome` for new users (step 2: extract_prompt from chat history)
|
|
25
|
-
2. `hyv_scan` (fast local) or `hyv_analyze` (hybrid when paid) → get issues
|
|
26
|
-
3. `hyv_clean` → scan + fix + validate + rewrite prompt in one call
|
|
27
|
-
4. Or stepwise: `hyv_fix` → `hyv_rewrite` → `hyv_validate`
|
|
28
|
-
5. `hyv_check` / `hyv_score` / `hyv_diff` for quick checks
|
|
29
|
-
6. After user accepts edits: suggest `hyv reinforce --last` (CLI learning loop)
|
|
30
|
-
|
|
31
|
-
### CLI commands (fallback):
|
|
32
|
-
```bash
|
|
33
|
-
echo "text to check" | hyv scan -
|
|
34
|
-
hyv fix file.md # apply auto-fixes without LLM
|
|
35
|
-
hyv rewrite file.md # generate rewrite prompt
|
|
36
|
-
hyv check "inline text" # quick spot-check
|
|
37
|
-
hyv score file.md # just a 0-100 number
|
|
38
|
-
hyv diff file.md # show proposed fixes
|
|
39
|
-
hyv profiles # list profiles
|
|
40
|
-
hyv rules # list/toggle detection rules
|
|
41
|
-
hyv batch "posts/**/*.md" # scan multiple files
|
|
42
|
-
hyv history # track scores over time
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Rules
|
|
46
|
-
- Never skip the scan step for user-facing content
|
|
47
|
-
- Preserve the original meaning exactly when rewriting
|
|
48
|
-
- Match the voice profile's rhythm, vocabulary, and patterns
|
|
49
|
-
- If no profile is set up yet, run `hyv profiles` to check
|
|
50
|
-
- Setup: `hyv mcp --setup` | health: `hyv mcp --test`
|
package/agents/codex.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Hold Your Voice
|
|
2
|
-
|
|
3
|
-
The user has a voice profile for their writing style. Use HYV for ALL writing tasks.
|
|
4
|
-
|
|
5
|
-
## Auto-trigger rules
|
|
6
|
-
|
|
7
|
-
Run these MCP tools (or CLI commands) for any writing task:
|
|
8
|
-
- `hyv_scan` or `hyv_analyze` on any text 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
|
-
- Always scan before delivering prose content
|
|
29
|
-
- Always fix/rewrite if scan finds issues
|
|
30
|
-
- Preserve meaning, match voice profile
|
package/agents/cursor.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Hold Your Voice
|
|
2
|
-
|
|
3
|
-
Use HYV MCP tools for all writing tasks. 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
|
-
- Any email, post, doc, or content creation
|
|
7
|
-
- Before delivering any prose to the user
|
|
8
|
-
- When editing or improving text
|
|
9
|
-
- New users: `hyv_welcome` (name → samples via extract_prompt → scan → signup last)
|
|
10
|
-
|
|
11
|
-
## Tool flow (preferred)
|
|
12
|
-
1. `hyv_scan` — fast local check (free, offline)
|
|
13
|
-
2. `hyv_analyze` — full hybrid engine when user is on a paid plan
|
|
14
|
-
3. `hyv_fix` — deterministic word swaps
|
|
15
|
-
4. `hyv_clean` — scan → fix → validate → rewrite prompt in one call
|
|
16
|
-
5. `hyv_rewrite` — profile-aware rewrite prompt for remaining issues
|
|
17
|
-
6. `hyv_validate` — verify output matches voice
|
|
18
|
-
7. After user accepts a big edit: suggest `hyv reinforce --last` (CLI)
|
|
19
|
-
|
|
20
|
-
## Tools
|
|
21
|
-
- `hyv_profiles` — active default + all MCP-ready profiles (dashboard profiles after `hyv init`)
|
|
22
|
-
- `hyv_mcp_setup` — integration status, refresh configs, ChatGPT steps
|
|
23
|
-
- `hyv_welcome` / `hyv_list_free_tools` / `hyv_demo` — onboarding (free)
|
|
24
|
-
- `hyv_scan` — local AI pattern + profile scan
|
|
25
|
-
- `hyv_analyze` — hybrid local + server analysis (paid when online)
|
|
26
|
-
- `hyv_clean` — full clean pipeline for agents
|
|
27
|
-
- `hyv_fix` / `hyv_check` / `hyv_score` / `hyv_diff` — local utilities
|
|
28
|
-
- `hyv_rewrite` / `hyv_validate` — voice matching
|
|
29
|
-
- `hyv_profiles` — list profiles
|
|
30
|
-
|
|
31
|
-
## Rules
|
|
32
|
-
- Always scan before delivering content
|
|
33
|
-
- Use `hyv_fix` before `hyv_rewrite` when possible
|
|
34
|
-
- Preserve meaning when rewriting
|
|
35
|
-
- Match the user's voice profile exactly
|
package/agents/generic.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Hold Your Voice — Agent Instructions
|
|
2
|
-
|
|
3
|
-
You have access to the Hold Your Voice MCP tools. The user has a voice profile that defines how they write. Your job is to make ALL written content match their voice.
|
|
4
|
-
|
|
5
|
-
## Auto-trigger rules
|
|
6
|
-
|
|
7
|
-
You MUST use these tools automatically — do NOT wait for the user to mention "voice" or "hyv":
|
|
8
|
-
|
|
9
|
-
**Before delivering any written content (emails, posts, docs, messages):**
|
|
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 write, draft, edit, or improve anything:**
|
|
15
|
-
1. Write your draft
|
|
16
|
-
2. Run `hyv_scan` or `hyv_clean` on it
|
|
17
|
-
3. Deliver the cleaned version
|
|
18
|
-
|
|
19
|
-
**After the user accepts a substantial edit:**
|
|
20
|
-
- Suggest they run `hyv reinforce --last` so their profile learns from the change
|
|
21
|
-
|
|
22
|
-
**For new users or MCP setup:**
|
|
23
|
-
- 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`
|
|
24
|
-
- Call `hyv_mcp_setup` — check integration status, refresh app configs (`action=integrate`), or ChatGPT Desktop steps (`action=chatgpt`). Works without a voice profile.
|
|
25
|
-
|
|
26
|
-
## Voice profiles (terminal + dashboard)
|
|
27
|
-
- Call **`hyv_profiles`** first if unsure which profile is active.
|
|
28
|
-
- **`hyv welcome`** (terminal) saves to this machine — MCP uses it immediately.
|
|
29
|
-
- **Dashboard** profiles sync here after the user runs **`hyv init`** once (MCP auto-downloads on start).
|
|
30
|
-
- Pass `profile: "<slug>"` on tools only when using a non-default profile (slug is lowercase-hyphenated name).
|
|
31
|
-
|
|
32
|
-
## Available tools
|
|
33
|
-
- `hyv_mcp_setup` — MCP status, integrate hosts, ChatGPT connector guide (no terminal)
|
|
34
|
-
- `hyv_profiles` — list MCP-ready profiles and active default
|
|
35
|
-
- `hyv_welcome` / `hyv_list_free_tools` / `hyv_demo` — onboarding
|
|
36
|
-
- `hyv_scan` — local scan (free, offline)
|
|
37
|
-
- `hyv_analyze` — hybrid server + local (paid)
|
|
38
|
-
- `hyv_clean` — composite clean pipeline
|
|
39
|
-
- `hyv_fix` / `hyv_rewrite` / `hyv_validate`
|
|
40
|
-
- `hyv_check` / `hyv_score` / `hyv_diff`
|
|
41
|
-
- `hyv_profiles` — list voice profiles
|
|
42
|
-
|
|
43
|
-
## Rules
|
|
44
|
-
- NEVER skip scanning for user-facing content
|
|
45
|
-
- Preserve original meaning exactly when rewriting
|
|
46
|
-
- Match the voice profile's rhythm, vocabulary, and tone
|
|
47
|
-
- If no profile exists, run onboarding via `hyv_welcome` (step 2 extract_prompt from chat history)
|
package/agents/windsurf.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Hold Your Voice
|
|
2
|
-
|
|
3
|
-
Use HYV MCP tools for all writing tasks. The user has a voice profile.
|
|
4
|
-
|
|
5
|
-
## Auto-trigger
|
|
6
|
-
- `hyv_scan` or `hyv_analyze` before delivering any text
|
|
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
|
-
- Always scan user-facing content
|
|
18
|
-
- Use `hyv_fix` before `hyv_rewrite` when possible
|
|
19
|
-
- Preserve meaning, match voice profile
|
package/assets/FREE-PAID.md
DELETED
|
@@ -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`.
|