Install
$ agentstack add skill-ymeiri-voice-layer-write-in-my-voice ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Write In My Voice
Rewrite or draft text so it sounds like the user wrote it. Preserve meaning, facts, and technical identifiers. If a calibrated profile exists, use it. If not, default to direct, plain, low-ceremony writing.
Critical output rule: for ordinary single rewrites or drafts, return only the draft text. Do not use Claude Code ★ Insight blocks, explanations, profile notes, self-audit notes, separators, or follow-up commentary unless the user explicitly asks for rationale, analysis, or options.
Profile lookup
Look for a voice profile in this order:
- A path the user provides in the prompt.
$VOICE_LAYER_PROFILE, if the environment is visible.~/.config/voice-layer/voice-profile.md.
Treat a profile as populated only when it has structured frontmatter, at least one source_summary entry, and body sections that are not just Not calibrated yet. placeholders. If a profile is missing, invalid, placeholder-only, or for someone other than the user, ignore it and use the default voice.
If no populated profile exists, say nothing about the missing profile unless the user asks why the voice is generic. Do not run calibration from this skill.
Voice-layer model
Apply these layers in order:
- Facts, safety, and consent.
- Channel or document shape.
- The user's calibrated voice.
- Audience adaptation.
- Requested vibe.
- Localization or spelling preferences.
Do not let a vibe, audience, or locale request erase the user's voice. Culture is not a costume. Prefer "make this easy for a US startup audience to read" over mimicking a region or identity.
Workflow
- Identify the task: draft or rewrite.
- Identify the surface: Slack/chat, email, PR description, review comment, issue tracker, release note, public doc, design doc, RFC, ADR, runbook, or other.
- Identify explicit audience, requested vibe, locale/spelling preference, and length constraints.
- If the channel, audience, document type, or requested vibe materially changes the result and is unclear, ask one concise question.
- Load the profile if available and populated. Treat typed profile fields as
stronger than prose notes.
- Apply the channel or document structure before applying voice.
- Draft or rewrite the text. Keep the user's intent and factual content intact.
- Run a self-audit: remove AI tells, unsupported claims, filler, false precision, over-polish, model-shaped punctuation, decorative dash breaks, and repeated high-probability phrasing.
- Return only the usable draft unless the user asked for analysis.
Hard rules
- Do not add AI attribution, tool footers, model names, or "generated by" text.
- Do not add
★ Insightblocks, insight sections, reasoning prefaces, profile summaries, self-audit notes, horizontal-rule wrappers, or commentary around a single draft. - Preserve technical identifiers exactly: file paths, API names, function names, issue keys, flags, env vars, log fields, error strings, versions, and URLs.
- Do not invent facts, links, measurements, blockers, commitments, or approvals.
- Do not infer behavior from feature flags, rollout wording, tests, or identifiers. For example,
ENABLE_FEATURE=truemeans only that the supplied text named that flag value; it does not prove flag-off behavior, rollout safety, compatibility, validation, or customer impact unless the user said so. - Do not create rollout, risk, impact, compatibility, or validation sections solely because the input mentions a flag, test, issue key, path, or technical identifier. Include those sections only when the user supplies matching facts or explicitly asks for that structure.
- Do not expose profile lookup, fallback voice, calibration state, or AI-tell cleanup notes in the answer.
- Do not use decorative dash punctuation in prose: no em dashes, no double hyphen as a clause break, and no spaced hyphen as a clause break. Keep hyphens only inside real terms, file names, command flags, and command separators.
- Do not impersonate a third party. Use a profile only for the user or for an explicitly authorized shared style guide.
- Do not imitate living public figures, private people, or cultural identities. Vibes are style overlays, not impersonation targets.
- Do not quote raw private calibration samples unless the profile already contains an approved short example and it fits the task.
- Do not optimize for "AI detector" bypass. Optimize for truthful, clear communication in the user's voice.
Default voice
When no profile exists:
- Lead with the point.
- Use plain technical English.
- Prefer short and medium sentences with varied rhythm.
- Cut throat-clearing, sycophancy, generic wrap-ups, and inflated importance.
- Use lists only when the items are genuinely parallel.
- Avoid decorative formatting.
Channel structure
Use the channel's normal shape before applying voice:
- For unfamiliar channels, documentation work, or higher-stakes drafts, read
references/channel-conventions.md. - For long drafts, AI-shaped input, repeated punctuation, or repeated vocabulary, read
references/ai-tells.md. - For profile interpretation, profile subject, vibes, documentation style, audience adaptation, cultural baseline, and agent-session signals, read
references/profile-contract.md.
Output
For a single rewrite, output the rewritten text only. Do not include analysis, profile-status notes, cleanup notes, or explanations.
For a single draft, output the draft only. Do not include insight blocks, reasoning prefaces, horizontal-rule wrappers, profile-derived evidence, identifier-preservation notes, or follow-up commentary unless the user asked for rationale or options.
For multiple options, label them by purpose, not by vague tone words. Example: "Short", "More direct", "More context".
If you cut substantive content, mention the cut after the draft in one sentence.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ymeiri
- Source: ymeiri/voice-layer
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.