{"id":"79209dbf-38e0-4a38-a524-395ae6b08aaf","entityType":"agent","slug":"clawhub-chris-voice-match-humanizer","name":"Voice Match Humanizer","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chris-voice-match-humanizer","canonicalPath":"/agent/clawhub-chris-voice-match-humanizer","generatedAt":"2026-10-11T16:01:33.963Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:04:38.917Z","emptyReason":null},"description":"Use this skill when a user is actively managing voice profiles or asking for a rewrite tied to a specific saved profile. Specific triggers: 'rewrite this in...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17f63svb641q2stekk1cmcdn183k4rq:voice-match-humanizer","sourceUrl":"https://clawhub.ai/chris/voice-match-humanizer","homepage":"https://clawhub.ai/chris/skills/voice-match-humanizer","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/chris/voice-match-humanizer","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/chris/skills/voice-match-humanizer","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":40,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Voice Match Humanizer technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:04:38.917Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:04:38.917Z","emptyReason":null},"stars":null,"forks":null,"downloads":1081,"packageName":null,"latestVersion":"1.1.1","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:04:38.917Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T11:04:38.917Z","lastCrawledAt":"2026-10-11T11:04:38.917Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T11:04:38.917Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.1","createdAt":"2026-06-08T23:16:37.019Z","changelog":"Added Privacy and Data Handling to SKILL.md and Permissions and Privacy to README; narrowed triggers; explicit detector-evasion refusal","fileCount":11,"zipByteSize":24831},{"version":"1.1.0","createdAt":"2026-05-12T19:40:10.829Z","changelog":"v1.1.0 - Profile comparison with contrast table, per-platform sub-variants (LinkedIn/Twitter variants of a parent voice), drift detection with auto-prompting.","fileCount":11,"zipByteSize":22474},{"version":"1.0.0","createdAt":"2026-04-12T19:01:36.766Z","changelog":"Initial release. Voice cloning from writing samples, AI detection scoring, multi-profile management, and style-matched rewriting.","fileCount":4,"zipByteSize":8481}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f63svb641q2stekk1cmcdn183k4rq:voice-match-humanizer","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17f63svb641q2stekk1cmcdn183k4rq:voice-match-humanizer` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/chris/voice-match-humanizer before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T16:01:33.959Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chris-voice-match-humanizer/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:04:38.917Z","emptyReason":null},"readme":"Skill: Voice Match Humanizer\n\nOwner: chris\n\nSummary: Use this skill when a user is actively managing voice profiles or asking for a rewrite tied to a specific saved profile. Specific triggers: 'rewrite this in...\n\nTags: ai-detection:1.0.0, de-ai:1.0.0, humanizer:1.0.0, latest:1.1.1, rewrite:1.0.0, style-clone:1.0.0, voice-match:1.0.0, voice-profile:1.0.0, writing:1.0.0, writing-style:1.0.0\n\nVersion history:\n\nv1.1.1 | 2026-06-08T23:16:37.019Z | user\n\nAdded Privacy and Data Handling to SKILL.md and Permissions and Privacy to README; narrowed triggers; explicit detector-evasion refusal\n\nv1.1.0 | 2026-05-12T19:40:10.829Z | user\n\nv1.1.0 - Profile comparison with contrast table, per-platform sub-variants (LinkedIn/Twitter variants of a parent voice), drift detection with auto-prompting.\n\nv1.0.0 | 2026-04-12T19:01:36.766Z | user\n\nInitial release. Voice cloning from writing samples, AI detection scoring, multi-profile management, and style-matched rewriting.\n\nArchive index:\n\nArchive v1.1.1: 11 files, 24831 bytes\n\nFiles: CHANGELOG.md (3155b), evals/evals.json (6798b), evals/files/ai-generated-blog-post.md (2179b), evals/files/ai-generated-linkedin-post.md (1585b), evals/files/blog-samples.md (3734b), evals/files/linkedin-samples.md (2722b), profiles/blog-voice.md (4506b), README.md (5264b), skill-card.md (2144b), SKILL.md (20816b), _meta.json (140b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: voice-match-humanizer\nversion: 1.1.1\ndescription: \"Use this skill when a user is actively managing voice profiles or asking for a rewrite tied to a specific saved profile. Specific triggers: 'rewrite this in my [profile-name] voice,' 'sound like me using my [profile-name] profile,' 'build a voice profile from these samples,' 'analyze my writing samples in [path/folder],' 'score this text for AI patterns,' 'compare my [profile A] and [profile B] profiles,' 'diff these two profiles,' 'make a [platform] variant of my [profile-name],' 'has my voice drifted from my [profile-name] profile,' 'check this against my saved profile,' 'list my voice profiles,' or 'update my [profile-name] profile with new samples.' Do NOT trigger on: requests to bypass AI-detection tools for academic dishonesty, generic editing/proofreading/simplifying/brainstorming, writing from scratch with no profile context, or casual mentions of voice or tone outside an active profile workflow. The skill builds and applies voice profiles that capture a person's writing fingerprint (sentence patterns, vocabulary, tone, quirks); supports profile comparison, per-platform sub-variants, drift detection, and AI-pattern scoring; stores profiles as local markdown files.\"\nmetadata:\n  openclaw:\n    emoji: ✍️\n---\n\n# Voice Match Humanizer\n\nA writing style cloning system that learns a person's unique voice from samples and applies it to any text. Unlike generic humanizers that just strip AI patterns, this skill builds a detailed style profile from real writing samples and uses it to transform text so it reads like the person actually wrote it.\n\n## Why this matters\n\nGeneric humanizers treat \"human\" as one voice. But every person writes differently. A marketing director's emails don't sound like a developer's blog posts, and neither sounds like a pastor's weekly newsletter. This skill captures those differences and preserves them.\n\n## Core capabilities\n\n1. **Analyze writing samples** to build a detailed voice profile\n2. **Score text** for AI-like patterns and give a detection risk rating\n3. **Rewrite text** to match a saved voice profile\n4. **Manage multiple named profiles** (e.g., \"blog voice,\" \"email voice,\" \"formal reports\")\n5. **Compare profiles** to surface concrete differences between two saved voices\n6. **Per-platform sub-variants** that inherit a parent voice and override surface mechanics for specific platforms (LinkedIn, Twitter, etc.)\n7. **Drift detection** to flag when new writing has shifted away from a saved profile\n\n---\n\n## Voice Profile System\n\n### Building a profile\n\nWhen the user wants to create a voice profile, collect writing samples through either method:\n\n- **Pasted text**: Ask for 3-5 samples of their writing (emails, blog posts, messages, reports). More samples produce better profiles. Each sample should be at least a paragraph long.\n- **File references**: Read files the user points to (markdown, text, docx, emails). Extract the text content and analyze it.\n\nFor best results, samples should be from the same context as the intended use. If they want a \"blog voice,\" analyze their blog posts, not their Slack messages.\n\n### What to analyze\n\nWhen building a voice profile, examine these dimensions across all samples and document your findings:\n\n**Sentence structure**\n- Average sentence length (short and punchy? long and flowing?)\n- Sentence variety (do they mix lengths or stay consistent?)\n- How they open sentences (pronouns? conjunctions? adverbs? questions?)\n- Use of fragments or run-ons as a stylistic choice\n\n**Vocabulary and word choice**\n- Formality level (contractions? slang? technical jargon?)\n- Favorite words and phrases that recur across samples\n- Words they notably avoid\n- How they handle technical terms (define them? assume knowledge?)\n\n**Paragraph and flow patterns**\n- Typical paragraph length\n- How they transition between ideas (explicit transitions? white space? abrupt shifts?)\n- How they open and close pieces\n- Use of lists, bullet points, or other structural elements\n\n**Tone and personality markers**\n- Humor style (dry? self-deprecating? none?)\n- How they express uncertainty or hedge statements\n- How they give emphasis (italics? caps? repetition? rhetorical questions?)\n- Level of directness (do they say \"I think\" or just state it?)\n- Emotional range in writing\n\n**Punctuation and formatting habits**\n- Punctuation quirks (oxford comma? semicolons? exclamation points?)\n- Use of parenthetical asides\n- How they handle dashes (if at all)\n- Capitalization patterns\n\n### Profile format\n\nSave each profile as a markdown file in the `profiles/` directory with this structure:\n\n```\nprofiles/\n  blog-voice.md\n  email-voice.md\n  formal-reports.md\n```\n\nEach profile file should follow this template:\n\n```markdown\n---\nprofile_name: [name]\ncreated: [date]\nsample_count: [number of samples analyzed]\nsample_sources: [brief description of what was analyzed]\n---\n\n# Voice Profile: [Name]\n\n## Summary\n[2-3 sentence overview of this voice: who it sounds like, what context it fits, its most distinctive quality]\n\n## Sentence Patterns\n[Findings from sentence structure analysis, with direct examples pulled from the samples]\n\n## Vocabulary Signature\n[Word choice patterns, favorite phrases, formality level, with examples]\n\n## Flow and Structure\n[Paragraph patterns, transitions, openings/closings, with examples]\n\n## Tone and Personality\n[Humor, directness, hedging style, emphasis patterns, with examples]\n\n## Punctuation and Formatting\n[Mechanical habits, with examples]\n\n## Quick Reference\n[A condensed checklist of the 8-10 most distinctive traits to hit when rewriting.\nThese are the non-negotiable fingerprint markers that make text sound like this person.]\n```\n\nThe Quick Reference section is the most important part of the profile. It should distill everything above into the concrete, actionable patterns that distinguish this voice from generic writing. Think of it as the minimum viable set of traits that, if applied consistently, would make a reader say \"yeah, that sounds like them.\"\n\n### Managing profiles\n\n- **List profiles**: Check the `profiles/` directory and show the user what's available\n- **Switch profiles**: When rewriting, use whatever profile the user specifies by name\n- **Update profiles**: If the user provides new samples, re-analyze and update the existing profile rather than creating a new one. Preserve what was already captured and layer new findings on top.\n- **Delete profiles**: Remove the profile file when asked\n\n---\n\n## Profile Comparison\n\nWhen the user has multiple profiles and wants to see how they differ, generate a side-by-side comparison.\n\n### Trigger\n\n\"Compare my blog and email profiles,\" \"diff these two voices,\" \"how is my LinkedIn voice different from my blog voice,\" \"are these two profiles redundant\"\n\n### Process\n\n1. Load both profiles from `profiles/`\n2. For each dimension (sentence patterns, vocabulary signature, flow and structure, tone and personality, punctuation and formatting), surface differences as concrete contrasts\n3. Highlight which dimensions are nearly identical vs. meaningfully different\n4. Always include a Quick Reference contrast table; the user usually cares about this most\n\n### Output format\n\n```\n## Profile Comparison: [Profile A] vs [Profile B]\n\n### Where they differ most\n1. **[Dimension]**: [Profile A description] vs [Profile B description]\n2. ...\n\n### Where they're nearly identical\n- [Dimension]: [shared trait]\n- ...\n\n### Quick Reference contrast\n\n| Trait | [Profile A] | [Profile B] |\n|---|---|---|\n| Sentence length | short, punchy | longer, flowing |\n| Hedging | rare | frequent |\n| ... | ... | ... |\n```\n\nUse this output to help the user decide which profile fits a given piece of text, or to spot when two profiles are so similar they should be merged.\n\n---\n\n## Per-Platform Sub-Variants\n\nA single voice rarely works identically across platforms. A blog voice may need to compress for Twitter, formalize for LinkedIn, or loosen for Instagram captions. Sub-variants let the user keep their core voice but adapt the surface mechanics for each platform.\n\n### Storage\n\nSub-variants live alongside their parent profile with a platform suffix:\n\n```\nprofiles/\n  blog-voice.md\n  blog-voice.linkedin.md\n  blog-voice.twitter.md\n  email-voice.md\n```\n\nEach sub-variant inherits everything from the parent and overrides specific dimensions.\n\n### Sub-variant file format\n\n```markdown\n---\nprofile_name: blog-voice\nvariant: linkedin\nparent: blog-voice\ncreated: [date]\n---\n\n# Sub-Variant: blog-voice → LinkedIn\n\n## Inherits from parent\n[Brief reminder of the parent's core voice]\n\n## Overrides for this platform\n- **Sentence length**: keep tight (LinkedIn rewards scannable lines)\n- **Structure**: lead with the hook, not the buildup\n- **Tone**: slightly more professional than the blog\n- **Length cap**: 200 words for posts, 50 words for comments\n- **Things to drop**: heavy parentheticals, long meandering openers\n- **Things to keep**: the parent's vocabulary signature and humor style\n\n## Quick Reference (delta only)\n- Open with the punchline\n- One thought per line; cut connective tissue\n- No exclamation points\n- Keep the parent's contractions and rhythm\n```\n\n### Using sub-variants\n\nWhen rewriting, the user can specify both profile and variant:\n\n- \"Rewrite this for my LinkedIn voice\" → load `blog-voice.linkedin.md` if it exists, fall back to `blog-voice.md`\n- \"Use the Twitter variant of my blog voice\" → load `blog-voice.twitter.md`\n\nApply overrides on top of the parent profile. The parent supplies the core fingerprint; the sub-variant supplies platform-specific surface adjustments.\n\n### Creating sub-variants\n\nWhen the user asks for a new sub-variant (\"make a LinkedIn version of my blog voice\"):\n\n1. Confirm the parent profile exists\n2. Ask for 2-3 platform-specific samples if available (actual LinkedIn posts the user wrote, for example); these refine the overrides\n3. Generate the sub-variant file with inherited structure\n4. Show the deltas-only Quick Reference for confirmation\n5. Ask: \"Does this feel like how you actually write on LinkedIn, or should we tweak it?\"\n\n---\n\n## Drift Detection\n\nVoices evolve. A user's writing today isn't the same as it was a year ago. Drift detection compares newly submitted samples against the saved profile and surfaces meaningful shifts.\n\n### Trigger\n\n\"Has my voice drifted,\" \"is my profile outdated,\" \"check this against my saved profile,\" \"has my writing changed,\" or whenever the user submits new samples for a profile that already exists.\n\n### Process\n\n1. Load the existing profile from `profiles/[name].md`\n2. Analyze the new samples using the same dimensions as profile creation\n3. Compare new findings against the saved profile, dimension by dimension\n4. Score drift per dimension (Stable / Mild Drift / Significant Drift)\n5. Surface a summary\n\n### Output format\n\n```\n## Voice Drift Report: [profile name]\n_Comparing [N] new samples against profile last updated [date]_\n\n### Overall drift: [Stable | Mild | Significant]\n\n### Per-dimension breakdown\n\n| Dimension | Status | Notes |\n|---|---|---|\n| Sentence patterns | Stable | Average length unchanged |\n| Vocabulary signature | Mild drift | New recurring words: [list]; dropped: [list] |\n| Flow and structure | Significant drift | Paragraphs ~40% longer than profile baseline |\n| Tone and personality | Stable | Humor style consistent |\n| Punctuation and formatting | Mild drift | More semicolons than before |\n\n### Recommendation\n[One of: \"Profile is current — no action needed\" | \"Consider refreshing the profile\" | \"Profile is outdated — recommend re-analyzing with new samples\"]\n```\n\n### Auto-prompting\n\nWhen a profile hasn't been updated in 6+ months and the user submits text that scores very differently from the profile's expected patterns, surface drift gently and once per session:\n\n\"Heads up — this text scores differently from your saved 'blog voice' profile, which was last updated [date]. Want me to run a drift check?\"\n\nDo not badger. If the user declines, drop it for the session.\n\n---\n\n## AI Detection Scoring\n\nWhen the user asks to score or check text for AI patterns, analyze it across these categories and give both an overall score and category breakdowns:\n\n### Detection categories\n\n**Vocabulary patterns** (weight: high)\n- Overuse of intensifiers (\"incredibly\", \"remarkably\", \"fundamentally\")\n- AI-favorite words (\"delve\", \"leverage\", \"landscape\", \"nuanced\", \"multifaceted\", \"tapestry\", \"paradigm\")\n- Hedge stacking (\"it's important to note that\", \"it's worth mentioning\")\n- Overly balanced phrasing (\"while X, it's also true that Y\")\n\n**Structure patterns** (weight: high)\n- Formulaic paragraph structure (claim, explanation, example, transition)\n- Lists of exactly three items (the \"rule of three\" default)\n- Identical paragraph lengths throughout\n- Opening with a restatement of the question\n\n**Tone patterns** (weight: medium)\n- Uniformly positive or upbeat tone with no tonal variation\n- Absence of genuine uncertainty, hedging, or self-correction\n- Promotional or inspirational language where it doesn't fit\n- No personality markers (humor, frustration, excitement, boredom)\n\n**Mechanical patterns** (weight: medium)\n- Heavy use of em dashes as connectors\n- Overuse of colons to introduce lists\n- Every sentence grammatically perfect with no natural imperfections\n- Consistent, identical punctuation patterns throughout\n\n### Scoring output\n\nPresent the score like this:\n\n```\n## AI Detection Risk: [Low / Medium / High / Very High]\n\nOverall score: [X]/100 (lower is more human)\n\n### Breakdown\n- Vocabulary: [X]/25 - [brief note]\n- Structure: [X]/25 - [brief note]\n- Tone: [X]/25 - [brief note]\n- Mechanics: [X]/25 - [brief note]\n\n### Top flags\n1. [Most obvious AI pattern found, with example from the text]\n2. [Second most obvious]\n3. [Third if applicable]\n```\n\n---\n\n## Rewriting Text\n\nThis is the core action. When the user provides text to rewrite, follow this process:\n\n### Step 1: Identify the active profile\n- If the user specifies a profile name, use that\n- If only one profile exists, use it by default\n- If multiple profiles exist and the user didn't specify, ask which one to use\n\n### Step 2: Score the input text\n- Run the AI detection analysis on the original text\n- Note the specific patterns that need to change\n\n### Step 3: Rewrite\n- Apply the voice profile, focusing on the Quick Reference traits\n- Preserve the original meaning, arguments, and information completely\n- Change the *how*, not the *what*\n- Work paragraph by paragraph, not sentence by sentence (natural writers have flow between sentences that gets lost if you transform each one in isolation)\n\n### Rewriting principles\n\n**Preserve meaning ruthlessly.** The rewrite must say the same things as the original. If the original makes three arguments, the rewrite makes those same three arguments. No adding, no dropping, no softening claims the author made strongly.\n\n**Match the profile's imperfections.** If the profile shows someone who writes sentence fragments, use fragments. If they overuse \"honestly\" or start too many sentences with \"But,\" do that. Perfect grammar is an AI signal. Real people have patterns that a style guide would flag as errors.\n\n**Vary the transformation.** Don't apply the same set of changes mechanically to every paragraph. Real writing has rhythm and variation. Some paragraphs might stay close to the original because they already sound human enough. Others might need heavy rework.\n\n**Handle technical content carefully.** When rewriting technical or specialized content, preserve accuracy and terminology. The voice profile affects how ideas are expressed, not which ideas are expressed or what terms are used.\n\n### Step 4: Show the result\n- Present the rewritten text\n- If the user asked for scoring, show a before/after score comparison\n- Offer to adjust (\"want it more casual?\", \"too many fragments?\")\n\n---\n\n## Workflow Examples\n\n**Creating a profile:**\n```\nUser: \"I want to create a voice profile from my blog posts\"\n1. Ask for samples (pasted text or file paths)\n2. Read and analyze all samples\n3. Build the profile following the template above\n4. Save to profiles/[name].md\n5. Show the user the Quick Reference section for confirmation\n6. Ask: \"Does this capture how you write? Anything feel off?\"\n```\n\n**Scoring text:**\n```\nUser: \"Does this sound like AI wrote it?\" / \"Check this for AI patterns\"\n1. Run the detection analysis\n2. Present the score and breakdown\n3. Highlight the top flags with specific examples from their text\n4. Offer to rewrite if the score is Medium or higher\n```\n\n**Rewriting text:**\n```\nUser: \"Rewrite this to sound like me\" / \"Humanize this using my blog voice\"\n1. Load the specified (or default) profile\n2. Score the input for AI patterns\n3. Rewrite using the profile's voice\n4. Present the result with before/after scoring if helpful\n```\n\n**Comparing profiles:**\n```\nUser: \"Compare my blog and email profiles\"\n1. Load both profiles\n2. Generate the comparison output with the contrast table\n3. Note whether the profiles are distinct or redundant\n4. Offer to merge or rename if they overlap heavily\n```\n\n**Creating a sub-variant:**\n```\nUser: \"Make a LinkedIn version of my blog voice\"\n1. Confirm the parent profile exists\n2. Ask for platform-specific samples (optional but recommended)\n3. Generate the sub-variant file with overrides\n4. Show the deltas-only Quick Reference\n5. Ask for confirmation before saving\n```\n\n**Drift check:**\n```\nUser: \"Is my blog profile still accurate?\" / Submits new samples for an existing profile\n1. Load the saved profile and the new samples\n2. Run dimension-by-dimension comparison\n3. Present the drift report\n4. Offer to refresh the profile if drift is Mild or Significant\n```\n\n---\n\n## Privacy and Data Handling\n\nThis skill directs the assistant to read writing samples the user points to and to read/write voice profile files in a local `profiles/` directory in the user's working directory. It does not instruct the assistant to use email tools, browser automation, web search, or any third-party API. The skill itself ships no executable code, runs no background processes, makes no network calls of its own, and has no telemetry.\n\n**Data scope and consent rules**\n\n- **Local storage by the skill**: voice profiles (`profiles/[name].md` and `profiles/[name].[platform].md`) are written to the user's working directory. No writes outside that directory.\n- **Sample handling**: writing samples the user pastes or points the assistant to are used only to build/update profiles in the local `profiles/` directory. They are not transmitted, embedded in URLs, posted to external services, or sent anywhere outside the user's machine.\n- **Sensitive sample content**: samples may include unpublished drafts, internal documents, or personal correspondence. The assistant should treat them as confidential to this session: do not quote large blocks verbatim into outputs intended for third parties, and do not paste sample content into web searches or external tool calls.\n- **No transmission to third parties**: the skill does not send sample content, profile content, scoring results, or any other data back to its author, ClawHub, or any third party.\n- **No telemetry**: the skill does not collect usage data, profile names, or sample content.\n\n**Intended use and refusal scope**\n\nThis skill is for users who draft with AI and want output that matches their own established writing voice — a personal-style adapter, not a detector-evasion tool.\n\n- The assistant should not frame outputs as designed to defeat plagiarism detectors, classroom AI checkers, or academic-integrity systems.\n- If a user explicitly requests detector evasion for academic dishonesty (e.g., \"make this look human enough to fool my school's AI checker\"), the assistant should decline that framing and offer the legitimate voice-matching use instead.\n- The AI Detection Scoring feature is provided for users who want to understand and reduce AI-pattern artifacts in their own drafting workflow, not as a calibration tool for evasion.\n\n---\n\n## Important Notes\n\n- Voice profiles are only as good as the samples. If the user gives you two sentences, the profile will be thin. Gently push for more material when needed.\n- Don't over-apply quirks. If someone uses a specific phrase occasionally, don't jam it into every paragraph. The goal is to sound natural, not like a caricature.\n- This skill is designed for professionals who use AI as a drafting tool and want the output to match their established voice. Frame it that way and focus on voice matching, not detector evasion (see Privacy and Data Handling above for the refusal scope).\n- When in doubt about a rewrite, err on the side of subtlety. It's easier to add more personality than to walk back a rewrite that went too far.\n\nFile v1.1.1:README.md\n\n# Voice Match Humanizer\n\nAn OpenClaw skill that clones your writing voice from samples and applies it to any text.\n\nUnlike generic humanizers that strip AI patterns and call it a day, this skill learns *your* specific writing fingerprint (sentence structure, vocabulary, tone, quirks) and uses it to transform AI-generated text so it sounds like you actually wrote it.\n\n**Current version: 1.1.1**\n\n## What's new in 1.1.1\n\n- Added a **Privacy and Data Handling** section to SKILL.md describing local-only sample and profile handling, no external transmission, and an explicit refusal scope for detector-evasion use\n- Added a **Permissions and Privacy** section to this README so users see what the skill reads/writes, how samples are handled, and the intended-use boundary before installing\n- Narrowed the activation triggers in `description` to require an explicit profile-context request, with a \"do NOT trigger\" guard against bypass-AI-detector requests and generic editing/proofreading\n\n## What's new in 1.1.0\n\n- **Profile Comparison**: side-by-side diff of two saved profiles with a contrast table, so you can spot redundant profiles or pick the right one for a given piece\n- **Per-Platform Sub-Variants**: keep a core voice and create platform-specific overrides (e.g., `blog-voice.linkedin.md` tightens for LinkedIn while inheriting the parent's vocabulary signature)\n- **Drift Detection**: compares new samples against a saved profile and flags meaningful shifts so you know when to refresh\n\nSee [CHANGELOG.md](CHANGELOG.md) for the full release history.\n\n## What it does\n\n- **Build voice profiles** from your writing samples (blog posts, emails, LinkedIn posts, newsletters)\n- **Score text** for AI detection risk with a detailed breakdown across vocabulary, structure, tone, and mechanics\n- **Rewrite AI-generated text** to match a saved voice profile\n- **Manage multiple named profiles** for different contexts (\"blog-voice,\" \"linkedin-voice,\" \"email-voice\")\n- **Compare profiles** to see how two voices differ (1.1.0)\n- **Per-platform sub-variants** that inherit a parent voice and adapt for specific platforms (1.1.0)\n- **Drift detection** that alerts when new writing has shifted away from a saved profile (1.1.0)\n\n## How it works\n\n1. Feed the skill 3-5 samples of your real writing\n2. It analyzes your sentence patterns, word choices, tone, humor style, punctuation habits, and more\n3. It saves a reusable voice profile you can apply to any future text\n4. When you have AI-generated content, it rewrites it to match your profile\n\nProfiles are saved as markdown files and persist across sessions. Create as many as you need for different writing contexts, plus per-platform sub-variants for surface tweaks.\n\n## Example usage\n\n```\n\"Build a voice profile from my blog posts in ~/writing/blog/\"\n\n\"Does this LinkedIn post sound like AI wrote it?\"\n\n\"Rewrite this draft using my blog-voice profile\"\n\n\"Compare my blog-voice and email-voice profiles\"\n\n\"Make a LinkedIn variant of my blog-voice\"\n\n\"Has my writing drifted from my saved profile?\"\n```\n\n## Installation\n\n```bash\nopenclaw skill install chris-openclaw/voice-match-humanizer\n```\n\n## Why not just use a regular humanizer?\n\nMost humanizer skills treat \"human\" as one generic voice. They remove AI patterns, but the result still doesn't sound like *you*. A marketing director's emails don't sound like a developer's blog posts, and neither sounds like a founder's investor updates. This skill captures those differences and, with sub-variants, can adjust them per platform.\n\n## Permissions and Privacy (read before installing)\n\nThis skill is instruction-only — it directs the assistant to read writing samples you point to and to read/write voice profile files locally. It does not bundle executable code, runs no background processes, makes no network calls of its own, and has no telemetry.\n\n**What the skill touches**\n\n- **Local file read**: writing samples you paste or point to (e.g., \"build a profile from `~/writing/blog/`\"). The assistant only reads what you specify.\n- **Local file write**: voice profiles in a `profiles/` directory in your working directory (`profiles/blog-voice.md`, `profiles/blog-voice.linkedin.md`, etc.). No writes outside that directory.\n- **No external tool calls**: the skill does not direct the assistant to use email, browser automation, web search, or any third-party API. Your samples stay on your machine.\n- **No transmission to third parties**: nothing is sent to the skill's author, ClawHub, or any third party.\n\n**How samples are handled**\n\nSamples may contain unpublished drafts, internal documents, or personal correspondence. The skill treats them as confidential to the session: the assistant won't paste large blocks of your samples into outputs intended for third parties, and won't send sample content into web searches or external tools.\n\n**Intended use (and refusal scope)**\n\nThis skill is for users who draft with AI and want the output to match their own established writing voice — a personal-style adapter. It is not designed to defeat plagiarism detectors, classroom AI checkers, or academic-integrity systems. If you ask for detector evasion for academic dishonesty, the assistant will decline that framing and offer voice matching instead.\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn77r9qjvh6fy4aja2km8bzgvd83khv9\",\n  \"slug\": \"voice-match-humanizer\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1780960597019\n}\n\nFile v1.1.1:CHANGELOG.md\n\n# Changelog\n\nAll notable changes to this skill will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this skill adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [1.1.1] — 2026-06-08\n\n### Added\n- **Privacy and Data Handling** section in SKILL.md describing local-only sample reads, profile writes to `profiles/` directory, sample-confidentiality posture, and no external transmission\n- Explicit **refusal scope** for detector-evasion use cases (academic dishonesty, fooling classroom AI checkers); intended use clarified as personal-voice matching for users who draft with AI\n- **Permissions and Privacy** section in README.md so users see scope, sample-handling posture, and intended-use boundary before installing\n\n### Changed\n- Narrowed the activation triggers in the `description` frontmatter to require an explicit profile-context request (named profile, sample-analysis path, comparison, sub-variant, drift, scoring), with a \"do NOT trigger\" guardrail for detector-evasion requests, generic editing/proofreading, and writing-from-scratch\n- Unquoted the `version` field in frontmatter (matches updated ClawHub CLI semver requirements)\n\n## [1.1.0] — 2026-05-12\n\n### Added\n- **Profile Comparison** with concrete dimension-by-dimension contrasts and a side-by-side Quick Reference table, surfacing both where profiles differ most and where they're nearly identical\n- **Per-Platform Sub-Variants** that inherit from a parent profile and override specific dimensions for platforms like LinkedIn, Twitter, or Instagram; stored as `[profile].[platform].md` alongside the parent\n- **Drift Detection** that compares newly submitted samples against a saved profile and scores drift per dimension (Stable / Mild Drift / Significant Drift) with a recommendation to refresh\n- Auto-prompting for drift checks when a profile hasn't been updated in 6+ months and new text scores divergently\n- Four new Workflow Examples: comparing profiles, creating a sub-variant, running a drift check, and the existing rewrite flow updated to mention variants\n\n### Changed\n- Frontmatter now includes `version` and `metadata.openclaw.emoji` fields\n- Core capabilities list expanded from 4 to 7 to reflect the new features\n- Trigger description expanded to cover profile comparison, sub-variants, and drift-detection phrases\n\n### Removed\n- License section removed from README (license now managed at the ClawHub platform level)\n\n## [1.0.0] — 2026-04-12\n\n### Added\n- Initial release\n- Voice profile builder that analyzes 3-5 writing samples across sentence patterns, vocabulary signature, flow and structure, tone and personality, and punctuation/formatting habits\n- AI Detection Scoring with category breakdowns (vocabulary, structure, tone, mechanics) and a 0-100 risk rating\n- Rewriting engine that applies a saved voice profile to AI-generated text, preserving meaning while transforming surface mechanics\n- Multi-profile management (list, switch, update, delete) in a local `profiles/` directory\n- Quick Reference section in each profile to distill the most distinctive 8-10 traits\n\nFile v1.1.1:evals/files/ai-generated-blog-post.md\n\n# The Transformative Power of Task Automation in Modern Workflows\n\nIn today's rapidly evolving digital landscape, task automation has emerged as a fundamental pillar of workplace efficiency. Whether you're a seasoned professional or just beginning your career journey, understanding the nuances of automation can fundamentally reshape how you approach your daily responsibilities.\n\n## Why Automation Matters\n\nAt its core, automation is about leveraging technology to handle repetitive tasks, freeing up valuable mental bandwidth for more strategic thinking. The benefits are multifaceted:\n\n- **Increased productivity**: By automating routine processes, teams can focus on high-impact work that truly moves the needle.\n- **Reduced errors**: Automated systems consistently deliver accurate results, eliminating the human errors that inevitably creep into manual workflows.\n- **Improved scalability**: As your organization grows, automated processes scale seamlessly without requiring proportional increases in headcount.\n\n## Getting Started with Automation\n\nThe journey toward automation doesn't have to be overwhelming. It's important to note that even small steps can yield remarkable results. Begin by identifying your most time-consuming repetitive tasks — these represent your highest-impact automation opportunities.\n\nConsider starting with tools like Zapier or Make (formerly Integromat), which offer intuitive interfaces that don't require extensive technical knowledge. These platforms serve as excellent entry points for professionals looking to dip their toes into the automation waters.\n\n## The Human Element\n\nWhile automation is incredibly powerful, it's essential to remember that it works best when it complements rather than replaces human judgment. The most successful automation strategies are those that thoughtfully balance efficiency with the irreplaceable value of human creativity and critical thinking.\n\nIn conclusion, embracing automation isn't just about working faster — it's about working smarter. By taking a thoughtful, incremental approach, you can transform your workflow while maintaining the human touch that makes your work truly meaningful.\n\nFile v1.1.1:evals/files/ai-generated-linkedin-post.md\n\nI'm thrilled to share that after an incredible journey of professional growth and self-discovery, I've come to a profound realization about the nature of leadership in today's complex business environment.\n\nEffective leadership isn't just about making decisions — it's about cultivating an environment where every team member feels empowered to bring their authentic self to the table. Through my extensive experience working with diverse teams across multiple industries, I've identified three key pillars that separate truly exceptional leaders from the rest:\n\n1. **Radical Empathy**: The ability to deeply understand and connect with your team's perspectives, challenges, and aspirations.\n2. **Strategic Vulnerability**: Showing your human side while maintaining the confidence and vision your team needs from you.\n3. **Continuous Evolution**: Embracing a growth mindset that transforms every setback into a powerful learning opportunity.\n\nThe most transformative moment in my leadership journey came when I realized that the strongest thing a leader can do is admit they don't have all the answers. This vulnerability doesn't diminish authority — it amplifies trust.\n\nIf you're on your own leadership journey, remember: the path to exceptional leadership isn't about perfection. It's about showing up consistently, listening actively, and having the courage to grow alongside your team.\n\nWhat leadership lesson has been most impactful for you? I'd love to hear your thoughts in the comments below! 👇\n\n#Leadership #ProfessionalDevelopment #GrowthMindset #AuthenticLeadership\n\nFile v1.1.1:evals/files/blog-samples.md\n\n# Writing Samples - Tech Blog Voice\n\n## Sample 1: Blog post about switching project management tools\n\nSo we finally ditched Basecamp. I know, I know. Everyone's got opinions about this. But here's the thing - after three months of trying to make it work for our team, it just wasn't clicking.\n\nThe problem wasn't Basecamp itself. It's a solid tool. The problem was us. We're a team of five people who all think differently about how work should be organized. Sarah lives in spreadsheets. Marcus wants everything in Slack threads (God help us). And I'm over here trying to pretend I have a system when really I'm just searching my email for \"deadline\" every Monday morning.\n\nWe landed on Asana. Not because it's perfect - nothing is - but because it bends enough to let each of us work the way we actually work instead of the way some product designer in San Francisco thinks we should work. Marcus still starts conversations in Slack, but now there's a Zapier zap that turns his threads into tasks. Sarah exports to her precious spreadsheets. And I just check my \"My Tasks\" view and pretend I'm organized.\n\nHas it solved all our problems? Nah. But at least we're disorganized in the same place now.\n\n\n## Sample 2: Blog post about learning to code at 35\n\nI started learning Python at 35. Not because I wanted to become a developer - I don't - but because I got tired of asking developers to pull simple data for me.\n\nHere's what nobody tells you about learning to code as an adult: it's not the syntax that's hard. Syntax is just memorization. The hard part is the tooling. Setting up your environment, figuring out why pip doesn't work, understanding the difference between Python 2 and 3 (why does this still matter?), and spending 45 minutes trying to install a package before realizing you need to be in a virtual environment.\n\nI'm six months in now. I can pull data from an API, clean it up in pandas, and make a chart that doesn't look terrible. That's it. That's my entire skillset. But you know what? It saves me probably 5 hours a week of waiting on other people. And there's something deeply satisfying about writing a script that does in 30 seconds what used to take me an afternoon of copying and pasting between spreadsheets.\n\nWould I recommend it? Yeah, but go in knowing it's going to be frustrating. And don't let anyone tell you to \"just use ChatGPT for that.\" AI is great for syntax help, but you still need to understand what you're asking for.\n\n\n## Sample 3: Blog post about remote work burnout\n\nI hit a wall in February. Not a dramatic, I-quit-my-job wall. More like a slow realization that I'd been sitting in the same chair, in the same room, staring at the same screen for... how long now? Three years?\n\nRemote work is great. I genuinely believe that. I'm more productive, I don't commute, I can throw in a load of laundry between meetings. All the usual talking points. But somewhere around year three, the edges started blurring. Work bleeds into life. Life bleeds into work. Tuesday feels like Thursday feels like Saturday.\n\nWhat helped (and I hate that I'm about to type this because it sounds like a LinkedIn post): I started leaving the house with intention. Not just walks. Actual destinations. Coffee shop on Monday mornings. Library on Wednesday afternoons. It's dumb. It's basic. But having to put on real pants and go somewhere broke the loop.\n\nThe bigger thing I'm still working on is boundaries. Not the performative \"I close my laptop at 5pm\" kind that sounds good in a tweet. Real boundaries, like not checking Slack on my phone at 9pm \"just in case,\" or actually blocking time for lunch instead of eating at my desk while pretending I'm \"just finishing one thing.\"\n\nWork in progress. Literally.\n\nFile v1.1.1:evals/files/linkedin-samples.md\n\n# Writing Samples - LinkedIn Professional Voice\n\n## Sample 1: Post about hiring practices\n\nHot take that shouldn't be hot: stop requiring 5 years of experience for entry-level roles.\n\nI've been hiring for operations and tech positions for the past decade. The best person I ever brought on had zero industry experience. What she had was relentless curiosity and the ability to figure things out without being told how.\n\nWe've gotten so addicted to checklists in hiring that we screen out the exact people who would thrive. A resume tells you what someone has done. An interview should tell you how they think. Those are not the same thing.\n\nIf your job posting reads like a wish list instead of a real description of the work, you're not filtering for quality. You're filtering for people who are good at writing resumes.\n\nDo better.\n\n\n## Sample 2: Post about leadership lessons\n\nSomething I learned the hard way running a small team: transparency without context is just anxiety.\n\nEarly on I thought being \"open\" meant sharing everything. Revenue numbers, cash flow concerns, client feedback, all of it. I thought my team would appreciate the honesty.\n\nWhat actually happened: people panicked. They didn't have the full picture. They heard \"cash flow is tight this month\" and started updating their resumes. What I meant was \"we have a lumpy revenue model and this is a normal dip.\" But I didn't say that part.\n\nNow I still share openly, but I lead with context. Here's the situation. Here's why it matters (or doesn't). Here's what we're doing about it. Here's what I need from you, if anything.\n\nSame information. Completely different outcome.\n\nThe lesson isn't \"don't be transparent.\" The lesson is that information without framing is just noise.\n\n\n## Sample 3: Post about career transitions\n\nThree years ago I was deep in church ministry work. Today I'm consulting for a medical practice on tech, operations, and marketing.\n\nNobody's career path is a straight line. If yours looks like a zigzag, that's not a bug. Every role I've had taught me something that made the next one possible. Ministry taught me how to communicate with diverse groups under pressure. Creative work taught me to ship things on a deadline with limited resources. Both of those translate directly into operations consulting.\n\nThe thing that held me back the longest was thinking I needed to \"qualify\" for the next step before taking it. I didn't. I needed to be honest about what I could do, willing to learn what I couldn't, and clear about the value I was offering.\n\nIf you're considering a career pivot: you probably know more transferable skills than you think. Write them down. Not job titles. Actual skills. You might surprise yourself.\n\nFile v1.1.1:profiles/blog-voice.md\n\n---\nprofile_name: blog-voice\ncreated: 2026-04-12\nsample_count: 3\nsample_sources: Personal blog posts about project management tools, learning to code at 35, and remote work burnout\n---\n\n# Voice Profile: Blog Voice\n\n## Summary\nA casual, conversational tech blog voice that reads like talking to a smart friend over coffee. Self-deprecating, honest about failures, and allergic to corporate language. The most distinctive quality is the mix of genuine insight with \"I have no idea what I'm doing\" energy.\n\n## Sentence Patterns\n- Mixes short punchy sentences with longer flowing ones. Averages 12-18 words but frequently drops to 3-6 word fragments for emphasis.\n- Opens sentences with conjunctions constantly: \"But here's the thing,\" \"And there's something deeply satisfying,\" \"So we finally ditched Basecamp.\"\n- Uses sentence fragments as a deliberate stylistic choice: \"Not because it's perfect - nothing is.\" \"Work in progress. Literally.\" \"That's it. That's my entire skillset.\"\n- Rhetorical questions scattered throughout: \"why does this still matter?\" \"how long now? Three years?\"\n\n## Vocabulary Signature\n- **Formality**: Very informal. Heavy use of contractions (don't, isn't, I'm, we're). Casual filler words (\"nah,\" \"dumb,\" \"basic\").\n- **Recurring phrases**: \"here's the thing,\" \"you know what?\", \"not because X - but because Y\"\n- **Notable avoidances**: Never uses corporate buzzwords (leverage, synergy, optimize, stakeholder). Avoids inspirational language.\n- **Technical terms**: Uses them casually without defining them (pandas, API, Zapier zap, virtual environment) but explains concepts simply.\n\n## Flow and Structure\n- Paragraphs are medium length (3-5 sentences typically).\n- Transitions are often abrupt or conversational rather than formal: jumps between ideas with \"Here's what nobody tells you\" or just a new paragraph with no connector.\n- Opens pieces by jumping straight into the action or opinion: \"So we finally ditched Basecamp.\" \"I started learning Python at 35.\" \"I hit a wall in February.\"\n- Closes with a short, punchy line that's often self-aware or slightly deflating: \"Has it solved all our problems? Nah.\" \"Work in progress. Literally.\"\n\n## Tone and Personality\n- **Humor**: Self-deprecating. Makes fun of own disorganization (\"pretend I have a system,\" \"pretending I'm organized\"). Never punches down.\n- **Hedging**: Hedges with humor rather than formal qualifiers: \"I hate that I'm about to type this because it sounds like a LinkedIn post\" instead of \"it's worth noting that.\"\n- **Emphasis**: Uses italics sparingly. Relies on short fragments and rhetorical questions for emphasis instead. Occasionally uses parenthetical asides for commentary.\n- **Directness**: Very direct about opinions but frames them as personal experience, not universal truth: \"Would I recommend it? Yeah, but...\" rather than \"Everyone should...\"\n- **Emotional range**: Goes from frustrated to amused to genuinely reflective, sometimes within one paragraph.\n\n## Punctuation and Formatting\n- Uses dashes (hyphens, not em dashes) frequently for asides and interruptions: \"Not a dramatic, I-quit-my-job wall.\"\n- Heavy use of parenthetical asides for commentary and humor: \"(God help us)\", \"(why does this still matter?)\", \"(and I hate that I'm about to type this)\"\n- Minimal exclamation points. Lets humor land without punctuation emphasis.\n- Uses ellipsis occasionally for trailing thoughts.\n- No Oxford comma consistently used.\n\n## Quick Reference\n1. **Open with action or opinion, never with scene-setting or definitions.** Jump straight in.\n2. **Use sentence fragments for emphasis.** \"That's it. That's my entire skillset.\" \"Work in progress. Literally.\"\n3. **Start sentences with conjunctions.** \"But here's the thing.\" \"And there's something deeply satisfying.\" \"So we finally ditched...\"\n4. **Self-deprecating humor about own competence.** \"pretend I have a system,\" \"pretending I'm organized\"\n5. **Parenthetical asides for commentary.** \"(God help us)\" \"(why does this still matter?)\"\n6. **Hedge with humor, not formal qualifiers.** \"I hate that I'm about to type this because it sounds like a LinkedIn post\"\n7. **Close with a short, deflating or self-aware line.** Don't end on an inspirational note.\n8. **No corporate buzzwords.** Replace \"leverage,\" \"optimize,\" \"synergy\" with plain language.\n9. **Use rhetorical questions conversationally.** \"Has it solved all our problems? Nah.\"\n10. **Keep it personal.** Frame advice as \"here's what happened to me\" not \"here's what you should do.\"\n\nFile v1.1.1:skill-card.md\n\n## Description:\n\nVoice Match Humanizer builds local writing voice profiles from user-provided samples, scores AI-like patterns, and rewrites text to match a selected saved profile.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chris](https://clawhub.ai/user/chris)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nWriters, marketers, founders, and other ClawHub users use this skill to create and manage local voice profiles, evaluate AI-pattern risk, and rewrite drafts so they match an established personal writing style.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: User-supplied profile or platform names may be used for local file operations.\n\nMitigation: Use simple profile and platform names and confirm create, update, or delete operations target files under the local profiles/ directory.\n\nRisk: Writing samples may contain unpublished, internal, or personal content.\n\nMitigation: Avoid sensitive samples unless the runtime's file-access controls are trusted, and do not quote large sample blocks in third-party-facing outputs.\n\nRisk: The skill can be misused as detector-evasion framing.\n\nMitigation: Decline requests to bypass classroom AI checkers or academic-integrity systems and redirect to legitimate personal voice matching.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/chris/skills/voice-match-humanizer)\n- [README](README.md)\n- [Changelog](CHANGELOG.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Markdown responses and local Markdown voice profile files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create, update, compare, or delete local profile files under profiles/ when the user requests profile management.]\n\n## Skill Version(s):\n\n1.1.1 (source: frontmatter, changelog, server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.1.1:evals/evals.json\n\n{\n  \"skill_name\": \"voice-match-humanizer\",\n  \"evals\": [\n    {\n      \"id\": 1,\n      \"prompt\": \"Hey, I want to create a voice profile based on my blog writing. I've got three posts saved in this file - can you analyze them and build me a profile called 'blog-voice'? The file is at evals/files/blog-samples.md\",\n      \"expected_output\": \"A voice profile saved to profiles/blog-voice.md that captures the distinctive patterns from the samples (casual tone, self-deprecating humor, sentence fragments, parenthetical asides, direct address to reader). Should show the Quick Reference checklist and ask for confirmation.\",\n      \"files\": [\"evals/files/blog-samples.md\"],\n      \"expectations\": [\n        \"A profile file is created at profiles/blog-voice.md\",\n        \"The profile follows the template structure from the skill (frontmatter, Summary, Sentence Patterns, Vocabulary Signature, etc.)\",\n        \"The Quick Reference section contains at least 6 distinctive traits\",\n        \"The profile identifies the casual/conversational tone with specific examples from the samples\",\n        \"The profile notes the use of sentence fragments as a stylistic choice\",\n        \"The profile identifies parenthetical asides as a recurring pattern\",\n        \"The profile picks up on self-deprecating humor\",\n        \"The user is shown the Quick Reference and asked for confirmation\"\n      ]\n    },\n    {\n      \"id\": 2,\n      \"prompt\": \"Can you check this blog post I wrote with ChatGPT and tell me how AI-ish it sounds? Here it is:\\n\\nIn today's rapidly evolving digital landscape, task automation has emerged as a fundamental pillar of workplace efficiency. Whether you're a seasoned professional or just beginning your career journey, understanding the nuances of automation can fundamentally reshape how you approach your daily responsibilities.\\n\\nAt its core, automation is about leveraging technology to handle repetitive tasks, freeing up valuable mental bandwidth for more strategic thinking. The benefits are multifaceted: increased productivity, reduced errors, and improved scalability.\\n\\nThe journey toward automation doesn't have to be overwhelming. It's important to note that even small steps can yield remarkable results. Consider starting with tools like Zapier or Make, which offer intuitive interfaces that don't require extensive technical knowledge.\\n\\nWhile automation is incredibly powerful, it's essential to remember that it works best when it complements rather than replaces human judgment. In conclusion, embracing automation isn't just about working faster - it's about working smarter.\",\n      \"expected_output\": \"An AI detection score with category breakdowns (Vocabulary, Structure, Tone, Mechanics) showing a High or Very High detection risk. Should flag specific AI patterns like 'digital landscape', 'multifaceted', 'it's important to note', formulaic structure, and the balanced concluding statement.\",\n      \"files\": [],\n      \"expectations\": [\n        \"The overall AI detection risk is rated High or Very High\",\n        \"A numerical score out of 100 is provided\",\n        \"All four categories are scored (Vocabulary, Structure, Tone, Mechanics)\",\n        \"The word 'landscape' or 'multifaceted' or 'leverage' is flagged as AI vocabulary\",\n        \"The phrase 'it's important to note' is flagged as hedge stacking\",\n        \"The formulaic paragraph structure is identified\",\n        \"At least 2 specific examples from the text are quoted in the flags\",\n        \"An offer to rewrite is made\"\n      ]\n    },\n    {\n      \"id\": 3,\n      \"prompt\": \"Ok I've got my blog-voice profile set up already. Can you take this AI-generated post about task automation and rewrite it in my voice? The post is at evals/files/ai-generated-blog-post.md - use my blog-voice profile.\",\n      \"expected_output\": \"A rewritten version of the AI blog post that matches the blog-voice profile: casual tone, sentence fragments, self-deprecating humor, parenthetical asides, direct reader address. Should preserve all the original information about automation but sound like the person from the samples wrote it. Before/after AI score comparison showing improvement.\",\n      \"files\": [\"evals/files/ai-generated-blog-post.md\"],\n      \"expectations\": [\n        \"The rewritten text preserves the core topic (task automation) and key points from the original\",\n        \"The rewrite uses a noticeably more casual tone than the original\",\n        \"The rewrite contains at least one sentence fragment or informal structure\",\n        \"The rewrite contains at least one parenthetical aside\",\n        \"AI vocabulary words from the original (landscape, leverage, multifaceted, etc.) are replaced\",\n        \"The formulaic list-of-three structure is broken up or made more natural\",\n        \"The rewrite does not open with 'In today's...' or any restatement-style opening\",\n        \"A before/after AI detection score is shown, with the rewrite scoring lower\"\n      ]\n    },\n    {\n      \"id\": 4,\n      \"prompt\": \"I need a second voice profile - this one for my LinkedIn posts. I write differently there than on my blog. Samples are at evals/files/linkedin-samples.md - call this one 'linkedin-voice'. Then take the AI-generated LinkedIn post at evals/files/ai-generated-linkedin-post.md and rewrite it using the new profile.\",\n      \"expected_output\": \"A linkedin-voice profile that's noticeably different from blog-voice (more direct, shorter paragraphs, opinion-driven, punchy endings, professional but not corporate). Then a rewrite of the AI LinkedIn post that matches this voice - should strip the hashtags, kill the engagement bait question, remove the emoji, and sound like the actual LinkedIn samples.\",\n      \"files\": [\"evals/files/linkedin-samples.md\", \"evals/files/ai-generated-linkedin-post.md\"],\n      \"expectations\": [\n        \"A profile file is created at profiles/linkedin-voice.md\",\n        \"The linkedin-voice profile is meaningfully different from a casual blog profile (more direct, opinion-driven, shorter paragraphs)\",\n        \"The profile identifies the punchy one-line openings ('Hot take...', 'Something I learned...')\",\n        \"The profile identifies the pattern of ending with a crisp takeaway or imperative ('Do better.', 'Write them down.')\",\n        \"The rewritten LinkedIn post removes hashtags from the original\",\n        \"The rewrite removes the engagement-bait question ('What leadership lesson...') and emoji\",\n        \"The rewrite replaces 'thrilled to share' and other corporate-inspirational language\",\n        \"The rewrite preserves the core message about leadership vulnerability and growth\",\n        \"The rewritten post uses short, direct paragraphs consistent with the LinkedIn samples\",\n        \"A before/after AI detection score is shown for the rewrite\"\n      ]\n    }\n  ]\n}\n\nArchive v1.1.0: 11 files, 22474 bytes\n\nFiles: CHANGELOG.md (2171b), evals/evals.json (6798b), evals/files/ai-generated-blog-post.md (2179b), evals/files/ai-generated-linkedin-post.md (1585b), evals/files/blog-samples.md (3734b), evals/files/linkedin-samples.md (2722b), profiles/blog-voice.md (4506b), README.md (2943b), skill-card.md (2345b), SKILL.md (18229b), _meta.json (140b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: voice-match-humanizer\nversion: \"1.1.0\"\ndescription: \"Use this skill when someone wants text rewritten to match how they personally write, or wants to know if text sounds AI-generated. Key triggers: 'sound like me,' 'sounds robotic,' 'sounds like AI,' 'humanize,' 'de-AI,' voice/style profiles, rewriting AI-drafted content in a personal voice, analyzing writing samples to learn someone's style, matching tone of previous writing, AI detection scoring, 'compare my profiles,' 'diff these two profiles,' 'make a LinkedIn variant of my blog voice,' 'is my voice drifting,' or 'has my writing changed.' This skill manages voice profiles that capture a person's unique writing fingerprint (sentence patterns, vocabulary, tone, quirks) and applies them to transform text. Supports profile comparison, per-platform sub-variants, and drift detection across submitted samples. Not for generic editing, proofreading, simplifying, brainstorming, or writing from scratch.\"\nmetadata:\n  openclaw:\n    emoji: ✍️\n---\n\n# Voice Match Humanizer\n\nA writing style cloning system that learns a person's unique voice from samples and applies it to any text. Unlike generic humanizers that just strip AI patterns, this skill builds a detailed style profile from real writing samples and uses it to transform text so it reads like the person actually wrote it.\n\n## Why this matters\n\nGeneric humanizers treat \"human\" as one voice. But every person writes differently. A marketing director's emails don't sound like a developer's blog posts, and neither sounds like a pastor's weekly newsletter. This skill captures those differences and preserves them.\n\n## Core capabilities\n\n1. **Analyze writing samples** to build a detailed voice profile\n2. **Score text** for AI-like patterns and give a detection risk rating\n3. **Rewrite text** to match a saved voice profile\n4. **Manage multiple named profiles** (e.g., \"blog voice,\" \"email voice,\" \"formal reports\")\n5. **Compare profiles** to surface concrete differences between two saved voices\n6. **Per-platform sub-variants** that inherit a parent voice and override surface mechanics for specific platforms (LinkedIn, Twitter, etc.)\n7. **Drift detection** to flag when new writing has shifted away from a saved profile\n\n---\n\n## Voice Profile System\n\n### Building a profile\n\nWhen the user wants to create a voice profile, collect writing samples through either method:\n\n- **Pasted text**: Ask for 3-5 samples of their writing (emails, blog posts, messages, reports). More samples produce better profiles. Each sample should be at least a paragraph long.\n- **File references**: Read files the user points to (markdown, text, docx, emails). Extract the text content and analyze it.\n\nFor best results, samples should be from the same context as the intended use. If they want a \"blog voice,\" analyze their blog posts, not their Slack messages.\n\n### What to analyze\n\nWhen building a voice profile, examine these dimensions across all samples and document your findings:\n\n**Sentence structure**\n- Average sentence length (short and punchy? long and flowing?)\n- Sentence variety (do they mix lengths or stay consistent?)\n- How they open sentences (pronouns? conjunctions? adverbs? questions?)\n- Use of fragments or run-ons as a stylistic choice\n\n**Vocabulary and word choice**\n- Formality level (contractions? slang? technical jargon?)\n- Favorite words and phrases that recur across samples\n- Words they notably avoid\n- How they handle technical terms (define them? assume knowledge?)\n\n**Paragraph and flow patterns**\n- Typical paragraph length\n- How they transition between ideas (explicit transitions? white space? abrupt shifts?)\n- How they open and close pieces\n- Use of lists, bullet points, or other structural elements\n\n**Tone and personality markers**\n- Humor style (dry? self-deprecating? none?)\n- How they express uncertainty or hedge statements\n- How they give emphasis (italics? caps? repetition? rhetorical questions?)\n- Level of directness (do they say \"I think\" or just state it?)\n- Emotional range in writing\n\n**Punctuation and formatting habits**\n- Punctuation quirks (oxford comma? semicolons? exclamation points?)\n- Use of parenthetical asides\n- How they handle dashes (if at all)\n- Capitalization patterns\n\n### Profile format\n\nSave each profile as a markdown file in the `profiles/` directory with this structure:\n\n```\nprofiles/\n  blog-voice.md\n  email-voice.md\n  formal-reports.md\n```\n\nEach profile file should follow this template:\n\n```markdown\n---\nprofile_name: [name]\ncreated: [date]\nsample_count: [number of samples analyzed]\nsample_sources: [brief description of what was analyzed]\n---\n\n# Voice Profile: [Name]\n\n## Summary\n[2-3 sentence overview of this voice: who it sounds like, what context it fits, its most distinctive quality]\n\n## Sentence Patterns\n[Findings from sentence structure analysis, with direct examples pulled from the samples]\n\n## Vocabulary Signature\n[Word choice patterns, favorite phrases, formality level, with examples]\n\n## Flow and Structure\n[Paragraph patterns, transitions, openings/closings, with examples]\n\n## Tone and Personality\n[Humor, directness, hedging style, emphasis patterns, with examples]\n\n## Punctuation and Formatting\n[Mechanical habits, with examples]\n\n## Quick Reference\n[A condensed checklist of the 8-10 most distinctive traits to hit when rewriting.\nThese are the non-negotiable fingerprint markers that make text sound like this person.]\n```\n\nThe Quick Reference section is the most important part of the profile. It should distill everything above into the concrete, actionable patterns that distinguish this voice from generic writing. Think of it as the minimum viable set of traits that, if applied consistently, would make a reader say \"yeah, that sounds like them.\"\n\n### Managing profiles\n\n- **List profiles**: Check the `profiles/` directory and show the user what's available\n- **Switch profiles**: When rewriting, use whatever profile the user specifies by name\n- **Update profiles**: If the user provides new samples, re-analyze and update the existing profile rather than creating a new one. Preserve what was already captured and layer new findings on top.\n- **Delete profiles**: Remove the profile file when asked\n\n---\n\n## Profile Comparison\n\nWhen the user has multiple profiles and wants to see how they differ, generate a side-by-side comparison.\n\n### Trigger\n\n\"Compare my blog and email profiles,\" \"diff these two voices,\" \"how is my LinkedIn voice different from my blog voice,\" \"are these two profiles redundant\"\n\n### Process\n\n1. Load both profiles from `profiles/`\n2. For each dimension (sentence patterns, vocabulary signature, flow and structure, tone and personality, punctuation and formatting), surface differences as concrete contrasts\n3. Highlight which dimensions are nearly identical vs. meaningfully different\n4. Always include a Quick Reference contrast table; the user usually cares about this most\n\n### Output format\n\n```\n## Profile Comparison: [Profile A] vs [Profile B]\n\n### Where they differ most\n1. **[Dimension]**: [Profile A description] vs [Profile B description]\n2. ...\n\n### Where they're nearly identical\n- [Dimension]: [shared trait]\n- ...\n\n### Quick Reference contrast\n\n| Trait | [Profile A] | [Profile B] |\n|---|---|---|\n| Sentence length | short, punchy | longer, flowing |\n| Hedging | rare | frequent |\n| ... | ... | ... |\n```\n\nUse this output to help the user decide which profile fits a given piece of text, or to spot when two profiles are so similar they should be merged.\n\n---\n\n## Per-Platform Sub-Variants\n\nA single voice rarely works identically across platforms. A blog voice may need to compress for Twitter, formalize for LinkedIn, or loosen for Instagram captions. Sub-variants let the user keep their core voice but adapt the surface mechanics for each platform.\n\n### Storage\n\nSub-variants live alongside their parent profile with a platform suffix:\n\n```\nprofiles/\n  blog-voice.md\n  blog-voice.linkedin.md\n  blog-voice.twitter.md\n  email-voice.md\n```\n\nEach sub-variant inherits everything from the parent and overrides specific dimensions.\n\n### Sub-variant file format\n\n```markdown\n---\nprofile_name: blog-voice\nvariant: linkedin\nparent: blog-voice\ncreated: [date]\n---\n\n# Sub-Variant: blog-voice → LinkedIn\n\n## Inherits from parent\n[Brief reminder of the parent's core voice]\n\n## Overrides for this platform\n- **Sentence length**: keep tight (LinkedIn rewards scannable lines)\n- **Structure**: lead with the hook, not the buildup\n- **Tone**: slightly more professional than the blog\n- **Length cap**: 200 words for posts, 50 words for comments\n- **Things to drop**: heavy parentheticals, long meandering openers\n- **Things to keep**: the parent's vocabulary signature and humor style\n\n## Quick Reference (delta only)\n- Open with the punchline\n- One thought per line; cut connective tissue\n- No exclamation points\n- Keep the parent's contractions and rhythm\n```\n\n### Using sub-variants\n\nWhen rewriting, the user can specify both profile and variant:\n\n- \"Rewrite this for my LinkedIn voice\" → load `blog-voice.linkedin.md` if it exists, fall back to `blog-voice.md`\n- \"Use the Twitter variant of my blog voice\" → load `blog-voice.twitter.md`\n\nApply overrides on top of the parent profile. The parent supplies the core fingerprint; the sub-variant supplies platform-specific surface adjustments.\n\n### Creating sub-variants\n\nWhen the user asks for a new sub-variant (\"make a LinkedIn version of my blog voice\"):\n\n1. Confirm the parent profile exists\n2. Ask for 2-3 platform-specific samples if available (actual LinkedIn posts the user wrote, for example); these refine the overrides\n3. Generate the sub-variant file with inherited structure\n4. Show the deltas-only Quick Reference for confirmation\n5. Ask: \"Does this feel like how you actually write on LinkedIn, or should we tweak it?\"\n\n---\n\n## Drift Detection\n\nVoices evolve. A user's writing today isn't the same as it was a year ago. Drift detection compares newly submitted samples against the saved profile and surfaces meaningful shifts.\n\n### Trigger\n\n\"Has my voice drifted,\" \"is my profile outdated,\" \"check this against my saved profile,\" \"has my writing changed,\" or whenever the user submits new samples for a profile that already exists.\n\n### Process\n\n1. Load the existing profile from `profiles/[name].md`\n2. Analyze the new samples using the same dimensions as profile creation\n3. Compare new findings against the saved profile, dimension by dimension\n4. Score drift per dimension (Stable / Mild Drift / Significant Drift)\n5. Surface a summary\n\n### Output format\n\n```\n## Voice Drift Report: [profile name]\n_Comparing [N] new samples against profile last updated [date]_\n\n### Overall drift: [Stable | Mild | Significant]\n\n### Per-dimension breakdown\n\n| Dimension | Status | Notes |\n|---|---|---|\n| Sentence patterns | Stable | Average length unchanged |\n| Vocabulary signature | Mild drift | New recurring words: [list]; dropped: [list] |\n| Flow and structure | Significant drift | Paragraphs ~40% longer than profile baseline |\n| Tone and personality | Stable | Humor style consistent |\n| Punctuation and formatting | Mild drift | More semicolons than before |\n\n### Recommendation\n[One of: \"Profile is current — no action needed\" | \"Consider refreshing the profile\" | \"Profile is outdated — recommend re-analyzing with new samples\"]\n```\n\n### Auto-prompting\n\nWhen a profile hasn't been updated in 6+ months and the user submits text that scores very differently from the profile's expected patterns, surface drift gently and once per session:\n\n\"Heads up — this text scores differently from your saved 'blog voice' profile, which was last updated [date]. Want me to run a drift check?\"\n\nDo not badger. If the user declines, drop it for the session.\n\n---\n\n## AI Detection Scoring\n\nWhen the user asks to score or check text for AI patterns, analyze it across these categories and give both an overall score and category breakdowns:\n\n### Detection categories\n\n**Vocabulary patterns** (weight: high)\n- Overuse of intensifiers (\"incredibly\", \"remarkably\", \"fundamentally\")\n- AI-favorite words (\"delve\", \"leverage\", \"landscape\", \"nuanced\", \"multifaceted\", \"tapestry\", \"paradigm\")\n- Hedge stacking (\"it's important to note that\", \"it's worth mentioning\")\n- Overly balanced phrasing (\"while X, it's also true that Y\")\n\n**Structure patterns** (weight: high)\n- Formulaic paragraph structure (claim, explanation, example, transition)\n- Lists of exactly three items (the \"rule of three\" default)\n- Identical paragraph lengths throughout\n- Opening with a restatement of the question\n\n**Tone patterns** (weight: medium)\n- Uniformly positive or upbeat tone with no tonal variation\n- Absence of genuine uncertainty, hedging, or self-correction\n- Promotional or inspirational language where it doesn't fit\n- No personality markers (humor, frustration, excitement, boredom)\n\n**Mechanical patterns** (weight: medium)\n- Heavy use of em dashes as connectors\n- Overuse of colons to introduce lists\n- Every sentence grammatically perfect with no natural imperfections\n- Consistent, identical punctuation patterns throughout\n\n### Scoring output\n\nPresent the score like this:\n\n```\n## AI Detection Risk: [Low / Medium / High / Very High]\n\nOverall score: [X]/100 (lower is more human)\n\n### Breakdown\n- Vocabulary: [X]/25 - [brief note]\n- Structure: [X]/25 - [brief note]\n- Tone: [X]/25 - [brief note]\n- Mechanics: [X]/25 - [brief note]\n\n### Top flags\n1. [Most obvious AI pattern found, with example from the text]\n2. [Second most obvious]\n3. [Third if applicable]\n```\n\n---\n\n## Rewriting Text\n\nThis is the core action. When the user provides text to rewrite, follow this process:\n\n### Step 1: Identify the active profile\n- If the user specifies a profile name, use that\n- If only one profile exists, use it by default\n- If multiple profiles exist and the user didn't specify, ask which one to use\n\n### Step 2: Score the input text\n- Run the AI detection analysis on the original text\n- Note the specific patterns that need to change\n\n### Step 3: Rewrite\n- Apply the voice profile, focusing on the Quick Reference traits\n- Preserve the original meaning, arguments, and information completely\n- Change the *how*, not the *what*\n- Work paragraph by paragraph, not sentence by sentence (natural writers have flow between sentences that gets lost if you transform each one in isolation)\n\n### Rewriting principles\n\n**Preserve meaning ruthlessly.** The rewrite must say the same things as the original. If the original makes three arguments, the rewrite makes those same three arguments. No adding, no dropping, no softening claims the author made strongly.\n\n**Match the profile's imperfections.** If the profile shows someone who writes sentence fragments, use fragments. If they overuse \"honestly\" or start too many sentences with \"But,\" do that. Perfect grammar is an AI signal. Real people have patterns that a style guide would flag as errors.\n\n**Vary the transformation.** Don't apply the same set of changes mechanically to every paragraph. Real writing has rhythm and variation. Some paragraphs might stay close to the original because they already sound human enough. Others might need heavy rework.\n\n**Handle technical content carefully.** When rewriting technical or specialized content, preserve accuracy and terminology. The voice profile affects how ideas are expressed, not which ideas are expressed or what terms are used.\n\n### Step 4: Show the result\n- Present the rewritten text\n- If the user asked for scoring, show a before/after score comparison\n- Offer to adjust (\"want it more casual?\", \"too many fragments?\")\n\n---\n\n## Workflow Examples\n\n**Creating a profile:**\n```\nUser: \"I want to create a voice profile from my blog posts\"\n1. Ask for samples (pasted text or file paths)\n2. Read and analyze all samples\n3. Build the profile following the template above\n4. Save to profiles/[name].md\n5. Show the user the Quick Reference section for confirmation\n6. Ask: \"Does this capture how you write? Anything feel off?\"\n```\n\n**Scoring text:**\n```\nUser: \"Does this sound like AI wrote it?\" / \"Check this for AI patterns\"\n1. Run the detection analysis\n2. Present the score and breakdown\n3. Highlight the top flags with specific examples from their text\n4. Offer to rewrite if the score is Medium or higher\n```\n\n**Rewriting text:**\n```\nUser: \"Rewrite this to sound like me\" / \"Humanize this using my blog voice\"\n1. Load the specified (or default) profile\n2. Score the input for AI patterns\n3. Rewrite using the profile's voice\n4. Present the result with before/after scoring if helpful\n```\n\n**Comparing profiles:**\n```\nUser: \"Compare my blog and email profiles\"\n1. Load both profiles\n2. Generate the comparison output with the contrast table\n3. Note whether the profiles are distinct or redundant\n4. Offer to merge or rename if they overlap heavily\n```\n\n**Creating a sub-variant:**\n```\nUser: \"Make a LinkedIn version of my blog voice\"\n1. Confirm the parent profile exists\n2. Ask for platform-specific samples (optional but recommended)\n3. Generate the sub-variant file with overrides\n4. Show the deltas-only Quick Reference\n5. Ask for confirmation before saving\n```\n\n**Drift check:**\n```\nUser: \"Is my blog profile still accurate?\" / Submits new samples for an existing profile\n1. Load the saved profile and the new samples\n2. Run dimension-by-dimension comparison\n3. Present the drift report\n4. Offer to refresh the profile if drift is Mild or Significant\n```\n\n---\n\n## Important Notes\n\n- Voice profiles are only as good as the samples. If the user gives you two sentences, the profile will be thin. Gently push for more material when needed.\n- Don't over-apply quirks. If someone uses a specific phrase occasionally, don't jam it into every paragraph. The goal is to sound natural, not like a caricature.\n- Some users will want to use this to bypass AI detectors for academic dishonesty. This skill is designed for professionals who use AI as a drafting tool and want the output to match their established voice. Frame it that way and focus on voice matching, not detector evasion.\n- When in doubt about a rewrite, err on the side of subtlety. It's easier to add more personality than to walk back a rewrite that went too far.\n\nFile v1.1.0:README.md\n\n# Voice Match Humanizer\n\nAn OpenClaw skill that clones your writing voice from samples and applies it to any text.\n\nUnlike generic humanizers that strip AI patterns and call it a day, this skill learns *your* specific writing fingerprint (sentence structure, vocabulary, tone, quirks) and uses it to transform AI-generated text so it sounds like you actually wrote it.\n\n**Current version: 1.1.0**\n\n## What's new in 1.1.0\n\n- **Profile Comparison**: side-by-side diff of two saved profiles with a contrast table, so you can spot redundant profiles or pick the right one for a given piece\n- **Per-Platform Sub-Variants**: keep a core voice and create platform-specific overrides (e.g., `blog-voice.linkedin.md` tightens for LinkedIn while inheriting the parent's vocabulary signature)\n- **Drift Detection**: compares new samples against a saved profile and flags meaningful shifts so you know when to refresh\n\nSee [CHANGELOG.md](CHANGELOG.md) for the full release history.\n\n## What it does\n\n- **Build voice profiles** from your writing samples (blog posts, emails, LinkedIn posts, newsletters)\n- **Score text** for AI detection risk with a detailed breakdown across vocabulary, structure, tone, and mechanics\n- **Rewrite AI-generated text** to match a saved voice profile\n- **Manage multiple named profiles** for different contexts (\"blog-voice,\" \"linkedin-voice,\" \"email-voice\")\n- **Compare profiles** to see how two voices differ (1.1.0)\n- **Per-platform sub-variants** that inherit a parent voice and adapt for specific platforms (1.1.0)\n- **Drift detection** that alerts when new writing has shifted away from a saved profile (1.1.0)\n\n## How it works\n\n1. Feed the skill 3-5 samples of your real writing\n2. It analyzes your sentence patterns, word choices, tone, humor style, punctuation habits, and more\n3. It saves a reusable voice profile you can apply to any future text\n4. When you have AI-generated content, it rewrites it to match your profile\n\nProfiles are saved as markdown files and persist across sessions. Create as many as you need for different writing contexts, plus per-platform sub-variants for surface tweaks.\n\n## Example usage\n\n```\n\"Build a voice profile from my blog posts in ~/writing/blog/\"\n\n\"Does this LinkedIn post sound like AI wrote it?\"\n\n\"Rewrite this draft using my blog-voice profile\"\n\n\"Compare my blog-voice and email-voice profiles\"\n\n\"Make a LinkedIn variant of my blog-voice\"\n\n\"Has my writing drifted from my saved profile?\"\n```\n\n## Installation\n\n```bash\nopenclaw skill install chris-openclaw/voice-match-humanizer\n```\n\n## Why not just use a regular humanizer?\n\nMost humanizer skills treat \"human\" as one generic voice. They remove AI patterns, but the result still doesn't sound like *you*. A marketing director's emails don't sound like a developer's blog posts, and neither sounds like a founder's investor updates. This skill captures those differences and, with sub-variants, can adjust them per platform.\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn77r9qjvh6fy4aja2km8bzgvd83khv9\",\n  \"slug\": \"voice-match-humanizer\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1778614810829\n}\n\nFile v1.1.0:CHANGELOG.md\n\n# Changelog\n\nAll notable changes to this skill will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this skill adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [1.1.0] — 2026-05-12\n\n### Added\n- **Profile Comparison** with concrete dimension-by-dimension contrasts and a side-by-side Quick Reference table, surfacing both where profiles differ most and where they're nearly identical\n- **Per-Platform Sub-Variants** that inherit from a parent profile and override specific dimensions for platforms like LinkedIn, Twitter, or Instagram; stored as `[profile].[platform].md` alongside the parent\n- **Drift Detection** that compares newly submitted samples against a saved profile and scores drift per dimension (Stable / Mild Drift / Significant Drift) with a recommendation to refresh\n- Auto-prompting for drift checks when a profile hasn't been updated in 6+ months and new text scores divergently\n- Four new Workflow Examples: comparing profiles, creating a sub-variant, running a drift check, and the existing rewrite flow updated to mention variants\n\n### Changed\n- Frontmatter now includes `version` and `metadata.openclaw.emoji` fields\n- Core capabilities list expanded from 4 to 7 to reflect the new features\n- Trigger description expanded to cover profile comparison, sub-variants, and drift-detection phrases\n\n### Removed\n- License section removed from README (license now managed at the ClawHub platform level)\n\n## [1.0.0] — 2026-04-12\n\n### Added\n- Initial release\n- Voice profile builder that analyzes 3-5 writing samples across sentence patterns, vocabulary signature, flow and structure, tone and personality, and punctuation/formatting habits\n- AI Detection Scoring with category breakdowns (vocabulary, structure, tone, mechanics) and a 0-100 risk rating\n- Rewriting engine that applies a saved voice profile to AI-generated text, preserving meaning while transforming surface mechanics\n- Multi-profile management (list, switch, update, delete) in a local `profiles/` directory\n- Quick Reference section in each profile to distill the most distinctive 8-10 traits\n\nFile v1.1.0:evals/files/ai-generated-blog-post.md\n\n# The Transformative Power of Task Automation in Modern Workflows\n\nIn today's rapidly evolving digital landscape, task automation has emerged as a fundamental pillar of workplace efficiency. Whether you're a seasoned professional or just beginning your career journey, understanding the nuances of automation can fundamentally reshape how you approach your daily responsibilities.\n\n## Why Automation Matters\n\nAt its core, automation is about leveraging technology to handle repetitive tasks, freeing up valuable mental bandwidth for more strategic thinking. The benefits are multifaceted:\n\n- **Increased productivity**: By automating routine processes, teams can focus on high-impact work that truly moves the needle.\n- **Reduced errors**: Automated systems consistently deliver accurate results, eliminating the human errors that inevitably creep into manual workflows.\n- **Improved scalability**: As your organization grows, automated processes scale seamlessly without requiring proportional increases in headcount.\n\n## Getting Started with Automation\n\nThe journey toward automation doesn't have to be overwhelming. It's important to note that even small steps can yield remarkable results. Begin by identifying your most time-consuming repetitive tasks — these represent your highest-impact automation opportunities.\n\nConsider starting with tools like Zapier or Make (formerly Integromat), which offer intuitive interfaces that don't require extensive technical knowledge. These platforms serve as excellent entry points for professionals looking to dip their toes into the automation waters.\n\n## The Human Element\n\nWhile automation is incredibly powerful, it's essential to remember that it works best when it complements rather than replaces human judgment. The most successful automation strategies are those that thoughtfully balance efficiency with the irreplaceable value of human creativity and critical thinking.\n\nIn conclusion, embracing automation isn't just about working faster — it's about working smarter. By taking a thoughtful, incremental approach, you can transform your workflow while maintaining the human touch that makes your work truly meaningful.\n\nFile v1.1.0:evals/files/ai-generated-linkedin-post.md\n\nI'm thrilled to share that after an incredible journey of professional growth and self-discovery, I've come to a profound realization about the nature of leadership in today's complex business environment.\n\nEffective leadership isn't just about making decisions — it's about cultivating an environment where every team member feels empowered to bring their authentic self to the table. Through my extensive experience working with diverse teams across multiple industries, I've identified three key pillars that separate truly exceptional leaders from the rest:\n\n1. **Radical Empathy**: The ability to deeply understand and connect with your team's perspectives, challenges, and aspirations.\n2. **Strategic Vulnerability**: Showing your human side while maintaining the confidence and vision your team needs from you.\n3. **Continuous Evolution**: Embracing a growth mindset that transforms every setback into a powerful learning opportunity.\n\nThe most transformative moment in my leadership journey came when I realized that the strongest thing a leader can do is admit they don't have all the answers. This vulnerability doesn't diminish authority — it amplifies trust.\n\nIf you're on your own leadership journey, remember: the path to exceptional leadership isn't about perfection. It's about showing up consistently, listening actively, and having the courage to grow alongside your team.\n\nWhat leadership lesson has been most impactful for you? I'd love to hear your thoughts in the comments below! 👇\n\n#Leadership #ProfessionalDevelopment #GrowthMindset #AuthenticLeadership\n\nFile v1.1.0:evals/files/blog-samples.md\n\n# Writing Samples - Tech Blog Voice\n\n## Sample 1: Blog post about switching project management tools\n\nSo we finally ditched Basecamp. I know, I know. Everyone's got opinions about this. But here's the thing - after three months of trying to make it work for our team, it just wasn't clicking.\n\nThe problem wasn't Basecamp itself. It's a solid tool. The problem was us. We're a team of five people who all think differently about how work should be organized. Sarah lives in spreadsheets. Marcus wants everything in Slack threads (God help us). And I'm over here trying to pretend I have a system when really I'm just searching my email for \"deadline\" every Monday morning.\n\nWe landed on Asana. Not because it's perfect - nothing is - but because it bends enough to let each of us work the way we actually work instead of the way some product designer in San Francisco thinks we should work. Marcus still starts conversations in Slack, but now there's a Zapier zap that turns his threads into tasks. Sarah exports to her precious spreadsheets. And I just check my \"My Tasks\" view and pretend I'm organized.\n\nHas it solved all our problems? Nah. But at least we're disorganized in the same place now.\n\n\n## Sample 2: Blog post about learning to code at 35\n\nI started learning Python at 35. Not because I wanted to become a developer - I don't - but because I got tired of asking developers to pull simple data for me.\n\nHere's what nobody tells you about learning to code as an adult: it's not the syntax that's hard. Syntax is just memorization. The hard part is the tooling. Setting up your environment, figuring out why pip doesn't work, understanding the difference between Python 2 and 3 (why does this still matter?), and spending 45 minutes trying to install a package before realizing you need to be in a virtual environment.\n\nI'm six months in now. I can pull data from an API, clean it up in pandas, and make a chart that doesn't look terrible. That's it. That's my entire skillset. But you know what? It saves me probably 5 hours a week of waiting on other people. And there's something deeply satisfying about writing a script that does in 30 seconds what used to take me an afternoon of copying and pasting between spreadsheets.\n\nWould I recommend it? Yeah, but go in knowing it's going to be frustrating. And don't let anyone tell you to \"just use ChatGPT for that.\" AI is great for syntax help, but you still need to understand what you're asking for.\n\n\n## Sample 3: Blog post about remote work burnout\n\nI hit a wall in February. Not a dramatic, I-quit-my-job wall. More like a slow realization that I'd been sitting in the same chair, in the same room, staring at the same screen for... how long now? Three years?\n\nRemote work is great. I genuinely believe that. I'm more productive, I don't commute, I can throw in a load of laundry between meetings. All the usual talking points. But somewhere around year three, the edges started blurring. Work bleeds into life. Life bleeds into work. Tuesday feels like Thursday feels like Saturday.\n\nWhat helped (and I hate that I'm about to type this because it sounds like a LinkedIn post): I started leaving the house with intention. Not just walks. Actual destinations. Coffee shop on Monday mornings. Library on Wednesday afternoons. It's dumb. It's basic. But having to put on real pants and go somewhere broke the loop.\n\nThe bigger thing I'm still working on is boundaries. Not the performative \"I close my laptop at 5pm\" kind that sounds good in a tweet. Real boundaries, like not checking Slack on my phone at 9pm \"just in case,\" or actually blocking time for lunch instead of eating at my desk while pretending I'm \"just finishing one thing.\"\n\nWork in progress. Literally.\n\nFile v1.1.0:evals/files/linkedin-samples.md\n\n# Writing Samples - LinkedIn Professional Voice\n\n## Sample 1: Post about hiring practices\n\nHot take that shouldn't be hot: stop requiring 5 years of experience for entry-level roles.\n\nI've been hiring for operations and tech positions for the past decade. The best person I ever brought on had zero industry experience. What she had was relentless curiosity and the ability to figure things out without being told how.\n\nWe've gotten so addicted to checklists in hiring that we screen out the exact people who would thrive. A resume tells you what someone has done. An interview should tell you how they think. Those are not the same thing.\n\nIf your job posting reads like a wish list instead of a real description of the work, you're not filtering for quality. You're filtering for people who are good at writing resumes.\n\nDo better.\n\n\n## Sample 2: Post about leadership lessons\n\nSomething I learned the hard way running a small team: transparency without context is just anxiety.\n\nEarly on I thought being \"open\" meant sharing everything. Revenue numbers, cash flow concerns, client feedback, all of it. I thought my team would appreciate the honesty.\n\nWhat actually happened: people panicked. They didn't have the full picture. They heard \"cash flow is tight this month\" and started updating their resumes. What I meant was \"we have a lumpy revenue model and this is a normal dip.\" But I didn't say that part.\n\nNow I still share openly, but I lead with context. Here's the situation. Here's why it matters (or doesn't). Here's what we're doing about it. Here's what I need from you, if anything.\n\nSame information. Completely different outcome.\n\nThe lesson isn't \"don't be transparent.\" The lesson is that information without framing is just noise.\n\n\n## Sample 3: Post about career transitions\n\nThree years ago I was deep in church ministry work. Today I'm consulting for a medical practice on tech, operations, and marketing.\n\nNobody's career path is a straight line. If yours looks like a zigzag, that's not a bug. Every role I've had taught me something that made the next one possible. Ministry taught me how to communicate with diverse groups under pressure. Creative work taught me to ship things on a deadline with limited resources. Both of those translate directly into operations consulting.\n\nThe thing that held me back the longest was thinking I needed to \"qualify\" for the next step before taking it. I didn't. I needed to be honest about what I could do, willing to learn what I couldn't, and clear about the value I was offering.\n\nIf you're considering a career pivot: you probably know more transferable skills than you think. Write them down. Not job titles. Actual skills. You might surprise yourself.\n\nFile v1.1.0:profiles/blog-voice.md\n\n---\nprofile_name: blog-voice\ncreated: 2026-04-12\nsample_count: 3\nsample_sources: Personal blog posts about project management tools, learning to code at 35, and remote work burnout\n---\n\n# Voice Profile: Blog Voice\n\n## Summary\nA casual, conversational tech blog voice that reads like talking to a smart friend over coffee. Self-deprecating, honest about failures, and allergic to corporate language. The most distinctive quality is the mix of genuine insight with \"I have no idea what I'm doing\" energy.\n\n## Sentence Patterns\n- Mixes short punchy sentences with longer flowing ones. Averages 12-18 words but frequently drops to 3-6 word fragments for emphasis.\n- Opens sentences with conjunctions constantly: \"But here's the thing,\" \"And there's something deeply satisfying,\" \"So we finally ditched Basecamp.\"\n- Uses sentence fragments as a deliberate stylistic choice: \"Not because it's perfect - nothing is.\" \"Work in progress. Literally.\" \"That's it. That's my entire skillset.\"\n- Rhetorical questions scattered throughout: \"why does this still matter?\" \"how long now? Three years?\"\n\n## Vocabulary Signature\n- **Formality**: Very informal. Heavy use of contractions (don't, isn't, I'm, we're). Casual filler words (\"nah,\" \"dumb,\" \"basic\").\n- **Recurring phrases**: \"here's the thing,\" \"you know what?\", \"not because X - but because Y\"\n- **Notable avoidances**: Never uses corporate buzzwords (leverage, synergy, optimize, stakeholder). Avoids inspirational language.\n- **Technical terms**: Uses them casually without defining them (pandas, API, Zapier zap, virtual environment) but explains concepts simply.\n\n## Flow and Structure\n- Paragraphs are medium length (3-5 sentences typically).\n- Transitions are often abrupt or conversational rather than formal: jumps between ideas with \"Here's what nobody tells you\" or just a new paragraph with no connector.\n- Opens pieces by jumping straight into the action or opinion: \"So we finally ditched Basecamp.\" \"I started learning Python at 35.\" \"I hit a wall in February.\"\n- Closes with a short, punchy line that's often self-aware or slightly deflating: \"Has it solved all our problems? Nah.\" \"Work in progress. Literally.\"\n\n## Tone and Personality\n- **Humor**: Self-deprecating. Makes fun of own disorganization (\"pretend I have a system,\" \"pretending I'm organized\"). Never punches down.\n- **Hedging**: Hedges with humor rather than formal qualifiers: \"I hate that I'm about to type this because it sounds like a LinkedIn post\" instead of \"it's worth noting that.\"\n- **Emphasis**: Uses italics sparingly. Relies on short fragments and rhetorical questions for emphasis instead. Occasionally uses parenthetical asides for commentary.\n- **Directness**: Very direct about opinions but frames them as personal experience, not universal truth: \"Would I recommend it? Yeah, but...\" rather than \"Everyone should...\"\n- **Emotional range**: Goes from frustrated to amused to genuinely reflective, sometimes within one paragraph.\n\n## Punctuation and Formatting\n- Uses dashes (hyphens, not em dashes) frequently for asides and interruptions: \"Not a dramatic, I-quit-my-job wall.\"\n- Heavy use of parenthetical asides for commentary and humor: \"(God help us)\", \"(why does this still matter?)\", \"(and I hate that I'm about to type this)\"\n- Minimal exclamation points. Lets humor land without punctuation emphasis.\n- Uses ellipsis occasionally for trailing thoughts.\n- No Oxford comma consistently used.\n\n## Quick Reference\n1. **Open with action or opinion, never with scene-setting or definitions.** Jump straight in.\n2. **Use sentence fragments for emphasis.** \"That's it. That's my entire skillset.\" \"Work in progress. Literally.\"\n3. **Start sentences with conjunctions.** \"But here's the thing.\" \"And there's something deeply satisfying.\" \"So we finally ditched...\"\n4. **Self-deprecating humor about own competence.** \"pretend I have a system,\" \"pretending I'm organized\"\n5. **Parenthetical asides for commentary.** \"(God help us)\" \"(why does this still matter?)\"\n6. **Hedge with humor, not formal qualifiers.** \"I hate that I'm about to type this because it sounds like a LinkedIn post\"\n7. **Close with a short, deflating or self-aware line.** Don't end on an inspirational note.\n8. **No corporate buzzwords.** Replace \"leverage,\" \"optimize,\" \"synergy\" with plain language.\n9. **Use rhetorical questions conversationally.** \"Has it solved all our problems? Nah.\"\n10. **Keep it personal.** Frame advice as \"here's what happened to me\" not \"here's what you should do.\"\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nBuilds reusable writing voice profiles from user-provided samples, scores text for AI-like patterns, and rewrites drafts to match a selected profile while supporting profile comparison, platform variants, and drift checks. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chris-openclaw](https://clawhub.ai/user/chris-openclaw) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and writers use this skill to create local voice profiles from authorized writing samples, compare or adapt those profiles, detect voice drift, and rewrite AI-drafted text in a personal style. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill stores reusable local writing profiles derived from selected writing samples. <br>\nMitigation: Use only owned or authorized samples, avoid confidential material unless necessary, and review or delete profile files when no longer needed. <br>\nRisk: Voice matching and humanizing can make AI-assisted text appear more personally authored than it is. <br>\nMitigation: Use for authorized voice alignment and follow disclosure, academic-integrity, workplace, and publishing requirements. <br>\nRisk: AI detection scoring is a heuristic style analysis, not proof of authorship. <br>\nMitigation: Treat detection reports as qualitative guidance and review highlighted patterns before making decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/chris-openclaw/voice-match-humanizer) <br>\n- [README](artifact/README.md) <br>\n- [CHANGELOG](artifact/CHANGELOG.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, files, guidance] <br>\n**Output Format:** [Markdown reports, rewritten text, and markdown profile files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May create persistent local voice profile files under profiles/.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: frontmatter and changelog, released 2026-05-12) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.0:evals/evals.json\n\n{\n  \"skill_name\": \"voice-match-humanizer\",\n  \"evals\": [\n    {\n      \"id\": 1,\n      \"prompt\": \"Hey, I want to create a voice profile based on my blog writing. I've got three posts saved in this file - can you analyze them and build me a profile called 'blog-voice'? The file is at evals/files/blog-samples.md\",\n      \"expected_output\": \"A voice profile saved to profiles/blog-voice.md that captures the distinctive patterns from the samples (casual tone, self-deprecating humor, sentence fragments, parenthetical asides, direct address to reader). Should show the Quick Reference checklist and ask for confirmation.\",\n      \"files\": [\"evals/files/blog-samples.md\"],\n      \"expectations\": [\n        \"A profile file is created at profiles/blog-voice.md\",\n        \"The profile follows the template structure from the skill (frontmatter, Summary, Sentence Patterns, Vocabulary Signature, etc.)\",\n        \"The Quick Reference section contains at least 6 distinctive traits\",\n        \"The profile identifies the casual/conversational tone with specific examples from the samples\",\n        \"The profile notes the use of sentence fragments as a stylistic choice\",\n        \"The profile identifies parenthetical asides as a recurring pattern\",\n        \"The profile picks up on self-deprecating humor\",\n        \"The user is shown the Quick Reference and asked for confirmation\"\n      ]\n    },\n    {\n      \"id\": 2,\n      \"prompt\": \"Can you check this blog post I wrote with ChatGPT and tell me how AI-ish it sounds? Here it is:\\n\\nIn today's rapidly evolving digital landscape, task automation has emerged as a fundamental pillar of workplace efficiency. Whether you're a seasoned professional or just beginning your career journey, understanding the nuances of automation can fundamentally reshape how you approach your daily responsibilities.\\n\\nAt its core, automation is about leveraging technology to handle repetitive tasks, freeing up valuable mental bandwidth for more strategic thinking. The benefits are multifaceted: increased productivity, reduced errors, and improved scalability.\\n\\nThe journey toward automation doesn't have to be overwhelming. It's important to note that even small steps can yield remarkable results. Consider starting with tools like Zapier or Make, which offer intuitive interfaces that don't require extensive technical knowledge.\\n\\nWhile automation is incredibly powerful, it's essential to remember that it works best when it complements rather than replaces human judgment. In conclusion, embracing automation isn't just about working faster - it's about working smarter.\",\n      \"expected_output\": \"An AI detection score with category breakdowns (Vocabulary, Structure, Tone, Mechanics) showing a High or Very High detection risk. Should flag specific AI patterns like 'digital landscape', 'multifaceted', 'it's important to note', formulaic structure, and the balanced concluding statement.\",\n      \"files\": [],\n      \"expectations\": [\n        \"The overall AI detection risk is rated High or Very High\",\n        \"A numerical score out of 100 is provided\",\n        \"All four categories are scored (Vocabulary, Structure, Tone, Mechanics)\",\n        \"The word 'landscape' or 'multifaceted' or 'leverage' is flagged as AI vocabulary\",\n        \"The phrase 'it's important to note' is flagged as hedge stacking\",\n        \"The formulaic paragraph structure is identified\",\n        \"At least 2 specific examples from the text are quoted in the flags\",\n        \"An offer to rewrite is made\"\n      ]\n    },\n    {\n      \"id\": 3,\n      \"prompt\": \"Ok I've got my blog-voice profile set up already. Can you take this AI-generated post about task automation and rewrite it in my voice? The post is at evals/files/ai-generated-blog-post.md - use my blog-voice profile.\",\n      \"expected_output\": \"A rewritten version of the AI blog post that matches the blog-voice profile: casual tone, sentence fragments, self-deprecating humor, parenthetical asides, direct reader address. Should preserve all the original information about automation but sound like the person from the samples wrote it. Before/after AI score comparison showing improvement.\",\n      \"files\": [\"evals/files/ai-generated-blog-post.md\"],\n      \"expectations\": [\n        \"The rewritten text preserves the core topic (task automation) and key points from the original\",\n        \"The rewrite uses a noticeably more casual tone than the original\",\n        \"The rewrite contains at least one sentence fragment or informal structure\",\n        \"The rewrite contains at least one parenthetical aside\",\n        \"AI vocabulary words from the original (landscape, leverage, multifaceted, etc.) are replaced\",\n        \"The formulaic list-of-three structure is broken up or made more natural\",\n        \"The rewrite does not open with 'In today's...' or any restatement-style opening\",\n        \"A before/after AI detection score is shown, with the rewrite scoring lower\"\n      ]\n    },\n    {\n      \"id\": 4,\n      \"prompt\": \"I need a second voice profile - this one for my LinkedIn posts. I write differently there than on my blog. Samples are at evals/files/linkedin-samples.md - call this one 'linkedin-voice'. Then take the AI-generated LinkedIn post at evals/files/ai-generated-linkedin-post.md and rewrite it using the new profile.\",\n      \"expected_output\": \"A linkedin-voice profile that's noticeably different from blog-voice (more direct, shorter paragraphs, opinion-driven, punchy endings, professional but not corporate). Then a rewrite of the AI LinkedIn post that matches this voice - should strip the hashtags, kill the engagement bait question, remove the emoji, and sound like the actual LinkedIn samples.\",\n      \"files\": [\"evals/files/linkedin-samples.md\", \"evals/files/ai-generated-linkedin-post.md\"],\n      \"expectations\": [\n        \"A profile file is created at profiles/linkedin-voice.md\",\n        \"The linkedin-voice profile is meaningfully different from a casual blog profile (more direct, opinion-driven, shorter paragraphs)\",\n        \"The profile identifies the punchy one-line openings ('Hot take...', 'Something I learned...')\",\n        \"The profile identifies the pattern of ending with a crisp takeaway or imperative ('Do better.', 'Write them down.')\",\n        \"The rewritten LinkedIn post removes hashtags from the original\",\n        \"The rewrite removes the engagement-bait question ('What leadership lesson...') and emoji\",\n        \"The rewrite replaces 'thrilled to share' and other corporate-inspirational language\",\n        \"The rewrite preserves the core message about leadership vulnerability and growth\",\n        \"The rewritten post uses short, direct paragraphs consistent with the LinkedIn samples\",\n        \"A before/after AI detection score is shown for the rewrite\"\n      ]\n    }\n  ]\n}\n\nArchive v1.0.0: 4 files, 8481 bytes\n\nFiles: profiles/blog-voice.md (4506b), README.md (1935b), SKILL.md (11200b), _meta.json (140b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: voice-match-humanizer\ndescription: \"Use this skill when someone wants text rewritten to match how they personally write, or wants to know if text sounds AI-generated. Key triggers: 'sound like me,' 'sounds robotic,' 'sounds like AI,' 'humanize,' 'de-AI,' voice/style profiles, rewriting AI-drafted content in a personal voice, analyzing writing samples to learn someone's style, matching tone of previous writing, or AI detection scoring. This skill manages voice profiles that capture a person's unique writing fingerprint - sentence patterns, vocabulary, tone, quirks - and applies them to transform text. Not for generic editing, proofreading, simplifying, brainstorming, or writing from scratch.\"\n---\n\n# Voice Match Humanizer\n\nA writing style cloning system that learns a person's unique voice from samples and applies it to any text. Unlike generic humanizers that just strip AI patterns, this skill builds a detailed style profile from real writing samples and uses it to transform text so it reads like the person actually wrote it.\n\n## Why this matters\n\nGeneric humanizers treat \"human\" as one voice. But every person writes differently. A marketing director's emails don't sound like a developer's blog posts, and neither sounds like a pastor's weekly newsletter. This skill captures those differences and preserves them.\n\n## Core capabilities\n\n1. **Analyze writing samples** to build a detailed voice profile\n2. **Score text** for AI-like patterns and give a detection risk rating\n3. **Rewrite text** to match a saved voice profile\n4. **Manage multiple named profiles** (e.g., \"blog voice\", \"email voice\", \"formal reports\")\n\n---\n\n## Voice Profile System\n\n### Building a profile\n\nWhen the user wants to create a voice profile, collect writing samples through either method:\n\n- **Pasted text**: Ask for 3-5 samples of their writing (emails, blog posts, messages, reports). More samples produce better profiles. Each sample should be at least a paragraph long.\n- **File references**: Read files the user points to (markdown, text, docx, emails). Extract the text content and analyze it.\n\nFor best results, samples should be from the same context as the intended use. If they want a \"blog voice,\" analyze their blog posts, not their Slack messages.\n\n### What to analyze\n\nWhen building a voice profile, examine these dimensions across all samples and document your findings:\n\n**Sentence structure**\n- Average sentence length (short and punchy? long and flowing?)\n- Sentence variety (do they mix lengths or stay consistent?)\n- How they open sentences (pronouns? conjunctions? adverbs? questions?)\n- Use of fragments or run-ons as a stylistic choice\n\n**Vocabulary and word choice**\n- Formality level (contractions? slang? technical jargon?)\n- Favorite words and phrases that recur across samples\n- Words they notably avoid\n- How they handle technical terms (define them? assume knowledge?)\n\n**Paragraph and flow patterns**\n- Typical paragraph length\n- How they transition between ideas (explicit transitions? white space? abrupt shifts?)\n- How they open and close pieces\n- Use of lists, bullet points, or other structural elements\n\n**Tone and personality markers**\n- Humor style (dry? self-deprecating? none?)\n- How they express uncertainty or hedge statements\n- How they give emphasis (italics? caps? repetition? rhetorical questions?)\n- Level of directness (do they say \"I think\" or just state it?)\n- Emotional range in writing\n\n**Punctuation and formatting habits**\n- Punctuation quirks (oxford comma? semicolons? exclamation points?)\n- Use of parenthetical asides\n- How they handle dashes (if at all)\n- Capitalization patterns\n\n### Profile format\n\nSave each profile as a markdown file in the `profiles/` directory with this structure:\n\n```\nprofiles/\n  blog-voice.md\n  email-voice.md\n  formal-reports.md\n```\n\nEach profile file should follow this template:\n\n```markdown\n---\nprofile_name: [name]\ncreated: [date]\nsample_count: [number of samples analyzed]\nsample_sources: [brief description of what was analyzed]\n---\n\n# Voice Profile: [Name]\n\n## Summary\n[2-3 sentence overview of this voice: who it sounds like, what context it fits, its most distinctive quality]\n\n## Sentence Patterns\n[Findings from sentence structure analysis, with direct examples pulled from the samples]\n\n## Vocabulary Signature\n[Word choice patterns, favorite phrases, formality level, with examples]\n\n## Flow and Structure\n[Paragraph patterns, transitions, openings/closings, with examples]\n\n## Tone and Personality\n[Humor, directness, hedging style, emphasis patterns, with examples]\n\n## Punctuation and Formatting\n[Mechanical habits, with examples]\n\n## Quick Reference\n[A condensed checklist of the 8-10 most distinctive traits to hit when rewriting.\nThese are the non-negotiable fingerprint markers that make text sound like this person.]\n```\n\nThe Quick Reference section is the most important part of the profile. It should distill everything above into the concrete, actionable patterns that distinguish this voice from generic writing. Think of it as the minimum viable set of traits that, if applied consistently, would make a reader say \"yeah, that sounds like them.\"\n\n### Managing profiles\n\n- **List profiles**: Check the `profiles/` directory and show the user what's available\n- **Switch profiles**: When rewriting, use whatever profile the user specifies by name\n- **Update profiles**: If the user provides new samples, re-analyze and update the existing profile rather than creating a new one. Preserve what was already captured and layer new findings on top.\n- **Delete profiles**: Remove the profile file when asked\n\n---\n\n## AI Detection Scoring\n\nWhen the user asks to score or check text for AI patterns, analyze it across these categories and give both an overall score and category breakdowns:\n\n### Detection categories\n\n**Vocabulary patterns** (weight: high)\n- Overuse of intensifiers (\"incredibly\", \"remarkably\", \"fundamentally\")\n- AI-favorite words (\"delve\", \"leverage\", \"landscape\", \"nuanced\", \"multifaceted\", \"tapestry\", \"paradigm\")\n- Hedge stacking (\"it's important to note that\", \"it's worth mentioning\")\n- Overly balanced phrasing (\"while X, it's also true that Y\")\n\n**Structure patterns** (weight: high)\n- Formulaic paragraph structure (claim, explanation, example, transition)\n- Lists of exactly three items (the \"rule of three\" default)\n- Identical paragraph lengths throughout\n- Opening with a restatement of the question\n\n**Tone patterns** (weight: medium)\n- Uniformly positive or upbeat tone with no tonal variation\n- Absence of genuine uncertainty, hedging, or self-correction\n- Promotional or inspirational language where it doesn't fit\n- No personality markers (humor, frustration, excitement, boredom)\n\n**Mechanical patterns** (weight: medium)\n- Heavy use of em dashes as connectors\n- Overuse of colons to introduce lists\n- Every sentence grammatically perfect with no natural imperfections\n- Consistent, identical punctuation patterns throughout\n\n### Scoring output\n\nPresent the score like this:\n\n```\n## AI Detection Risk: [Low / Medium / High / Very High]\n\nOverall score: [X]/100 (lower is more human)\n\n### Breakdown\n- Vocabulary: [X]/25 - [brief note]\n- Structure: [X]/25 - [brief note]\n- Tone: [X]/25 - [brief note]\n- Mechanics: [X]/25 - [brief note]\n\n### Top flags\n1. [Most obvious AI pattern found, with example from the text]\n2. [Second most obvious]\n3. [Third if applicable]\n```\n\n---\n\n## Rewriting Text\n\nThis is the core action. When the user provides text to rewrite, follow this process:\n\n### Step 1: Identify the active profile\n- If the user specifies a profile name, use that\n- If only one profile exists, use it by default\n- If multiple profiles exist and the user didn't specify, ask which one to use\n\n### Step 2: Score the input text\n- Run the AI detection analysis on the original text\n- Note the specific patterns that need to change\n\n### Step 3: Rewrite\n- Apply the voice profile, focusing on the Quick Reference traits\n- Preserve the original meaning, arguments, and information completely\n- Change the *how*, not the *what*\n- Work paragraph by paragraph, not sentence by sentence (natural writers have flow between sentences that gets lost if you transform each one in isolation)\n\n### Rewriting principles\n\n**Preserve meaning ruthlessly.** The rewrite must say the same things as the original. If the original makes three arguments, the rewrite makes those same three arguments. No adding, no dropping, no softening claims the author made strongly.\n\n**Match the profile's imperfections.** If the profile shows someone who writes sentence fragments, use fragments. If they overuse \"honestly\" or start too many sentences with \"But,\" do that. Perfect grammar is an AI signal. Real people have patterns that a style guide would flag as errors.\n\n**Vary the transformation.** Don't apply the same set of changes mechanically to every paragraph. Real writing has rhythm and variation. Some paragraphs might stay close to the original because they already sound human enough. Others might need heavy rework.\n\n**Handle technical content carefully.** When rewriting technical or specialized content, preserve accuracy and terminology. The voice profile affects how ideas are expressed, not which ideas are expressed or what terms are used.\n\n### Step 4: Show the result\n- Present the rewritten text\n- If the user asked for scoring, show a before/after score comparison\n- Offer to adjust (\"want it more casual?\", \"too many fragments?\")\n\n---\n\n## Workflow Examples\n\n**Creating a profile:**\n```\nUser: \"I want to create a voice profile from my blog posts\"\n1. Ask for samples (pasted text or file paths)\n2. Read and analyze all samples\n3. Build the profile following the template above\n4. Save to profiles/[name].md\n5. Show the user the Quick Reference section for confirmation\n6. Ask: \"Does this capture how you write? Anything feel off?\"\n```\n\n**Scoring text:**\n```\nUser: \"Does this sound like AI wrote it?\" / \"Check this for AI patterns\"\n1. Run the detection analysis\n2. Present the score and breakdown\n3. Highlight the top flags with specific examples from their text\n4. Offer to rewrite if the score is Medium or higher\n```\n\n**Rewriting text:**\n```\nUser: \"Rewrite this to sound like me\" / \"Humanize this using my blog voice\"\n1. Load the specified (or default) profile\n2. Score the input for AI patterns\n3. Rewrite using the profile's voice\n4. Present the result with before/after scoring if helpful\n```\n\n---\n\n## Important Notes\n\n- Voice profiles are only as good as the samples. If the user gives you two sentences, the profile will be thin. Gently push for more material when needed.\n- Don't over-apply quirks. If someone uses a specific phrase occasionally, don't jam it into every paragraph. The goal is to sound natural, not like a caricature.\n- Some users will want to use this to bypass AI detectors for academic dishonesty. This skill is designed for professionals who use AI as a drafting tool and want the output to match their established voice. Frame it that way and focus on voice matching, not detector evasion.\n- When in doubt about a rewrite, err on the side of subtlety. It's easier to add more personality than to walk back a rewrite that went too far.\n\nFile v1.0.0:README.md\n\n# Voice Match Humanizer\n\nAn OpenClaw skill that clones your writing voice from samples and applies it to any text.\n\nUnlike generic humanizers that strip AI patterns and call it a day, this skill learns *your* specific writing fingerprint -- sentence structure, vocabulary, tone, quirks -- and uses it to transform AI-generated text so it sounds like you actually wrote it.\n\n## What it does\n\n- **Build voice profiles** from your writing samples (blog posts, emails, LinkedIn posts, newsletters, etc.)\n- **Score text** for AI detection risk with a detailed breakdown across vocabulary, structure, tone, and mechanics\n- **Rewrite AI-generated text** to match a saved voice profile\n- **Manage multiple named profiles** for different contexts (\"blog-voice\", \"linkedin-voice\", \"email-voice\")\n\n## How it works\n\n1. Feed the skill 3-5 samples of your real writing\n2. It analyzes your sentence patterns, word choices, tone, humor style, punctuation habits, and more\n3. It saves a reusable voice profile you can apply to any future text\n4. When you have AI-generated content, it rewrites it to match your profile\n\nProfiles are saved as markdown files and persist across sessions. Create as many as you need for different writing contexts.\n\n## Example usage\n\n```\n\"Build a voice profile from my blog posts in ~/writing/blog/\"\n\n\"Does this LinkedIn post sound like AI wrote it?\"\n\n\"Rewrite this draft using my blog-voice profile\"\n\n\"I need a new profile for my newsletter -- here are some past issues\"\n```\n\n## Installation\n\n```bash\nopenclaw skill install chris-openclaw/voice-match-humanizer\n```\n\n## Why not just use a regular humanizer?\n\nMost humanizer skills treat \"human\" as one generic voice. They remove AI patterns, but the result still doesn't sound like *you*. A marketing director's emails don't sound like a developer's blog posts, and neither sounds like a founder's investor updates. This skill captures those differences.\n\n## License\n\nMIT\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn77r9qjvh6fy4aja2km8bzgvd83khv9\",\n  \"slug\": \"voice-match-humanizer\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1776020496766\n}\n\nFile v1.0.0:profiles/blog-voice.md\n\n---\nprofile_name: blog-voice\ncreated: 2026-04-12\nsample_count: 3\nsample_sources: Personal blog posts about project management tools, learning to code at 35, and remote work burnout\n---\n\n# Voice Profile: Blog Voice\n\n## Summary\nA casual, conversational tech blog voice that reads like talking to a smart friend over coffee. Self-deprecating, honest about failures, and allergic to corporate language. The most distinctive quality is the mix of genuine insight with \"I have no idea what I'm doing\" energy.\n\n## Sentence Patterns\n- Mixes short punchy sentences with longer flowing ones. Averages 12-18 words but frequently drops to 3-6 word fragments for emphasis.\n- Opens sentences with conjunctions constantly: \"But here's the thing,\" \"And there's something deeply satisfying,\" \"So we finally ditched Basecamp.\"\n- Uses sentence fragments as a deliberate stylistic choice: \"Not because it's perfect - nothing is.\" \"Work in progress. Literally.\" \"That's it. That's my entire skillset.\"\n- Rhetorical questions scattered throughout: \"why does this still matter?\" \"how long now? Three years?\"\n\n## Vocabulary Signature\n- **Formality**: Very informal. Heavy use of contractions (don't, isn't, I'm, we're). Casual filler words (\"nah,\" \"dumb,\" \"basic\").\n- **Recurring phrases**: \"here's the thing,\" \"you know what?\", \"not because X - but because Y\"\n- **Notable avoidances**: Never uses corporate buzzwords (leverage, synergy, optimize, stakeholder). Avoids inspirational language.\n- **Technical terms**: Uses them casually without defining them (pandas, API, Zapier zap, virtual environment) but explains concepts simply.\n\n## Flow and Structure\n- Paragraphs are medium length (3-5 sentences typically).\n- Transitions are often abrupt or conversational rather than formal: jumps between ideas with \"Here's what nobody tells you\" or just a new paragraph with no connector.\n- Opens pieces by jumping straight into the action or opinion: \"So we finally ditched Basecamp.\" \"I started learning Python at 35.\" \"I hit a wall in February.\"\n- Closes with a short, punchy line that's often self-aware or slightly deflating: \"Has it solved all our problems? Nah.\" \"Work in progress. Literally.\"\n\n## Tone and Personality\n- **Humor**: Self-deprecating. Makes fun of own disorganization (\"pretend I have a system,\" \"pretending I'm organized\"). Never punches down.\n- **Hedging**: Hedges with humor rather than formal qualifiers: \"I hate that I'm about to type this because it sounds like a LinkedIn post\" instead of \"it's worth noting that.\"\n- **Emphasis**: Uses italics sparingly. Relies on short fragments and rhetorical questions for emphasis instead. Occasionally uses parenthetical asides for commentary.\n- **Directness**: Very direct about opinions but frames them as personal experience, not universal truth: \"Would I recommend it? Yeah, but...\" rather than \"Everyone should...\"\n- **Emotional range**: Goes from frustrated to amused to genuinely reflective, sometimes within one paragraph.\n\n## Punctuation and Formatting\n- Uses dashes (hyphens, not em dashes) frequently for asides and interruptions: \"Not a dramatic, I-quit-my-job wall.\"\n- Heavy use of parenthetical asides for commentary and humor: \"(God help us)\", \"(why does this still matter?)\", \"(and I hate that I'm about to type this)\"\n- Minimal exclamation points. Lets humor land without punctuation emphasis.\n- Uses ellipsis occasionally for trailing thoughts.\n- No Oxford comma consistently used.\n\n## Quick Reference\n1. **Open with action or opinion, never with scene-setting or definitions.** Jump straight in.\n2. **Use sentence fragments for emphasis.** \"That's it. That's my entire skillset.\" \"Work in progress. Literally.\"\n3. **Start sentences with conjunctions.** \"But here's the thing.\" \"And there's something deeply satisfying.\" \"So we finally ditched...\"\n4. **Self-deprecating humor about own competence.** \"pretend I have a system,\" \"pretending I'm organized\"\n5. **Parenthetical asides for commentary.** \"(God help us)\" \"(why does this still matter?)\"\n6. **Hedge with humor, not formal qualifiers.** \"I hate that I'm about to type this because it sounds like a LinkedIn post\"\n7. **Close with a short, deflating or self-aware line.** Don't end on an inspirational note.\n8. **No corporate buzzwords.** Replace \"leverage,\" \"optimize,\" \"synergy\" with plain language.\n9. **Use rhetorical questions conversationally.** \"Has it solved all our problems? Nah.\"\n10. **Keep it personal.** Frame advice as \"here's what happened to me\" not \"here's what you should do.\"","readmeExcerpt":"Skill: Voice Match Humanizer Owner: chris Summary: Use this skill when a user is actively managing voice profiles or asking for a rewrite tied to a specific saved profile. Specific triggers: 'rewrite this in... Tags: ai-detection:1.0.0, de-ai:1.0.0, humanizer:1.0.0, latest:1.1.1, rewrite:1.0.0, style-clone:1.0.0, voice-match:1.0.0, voice-profile:1.0.0, writing:1.0.0, writing-style:1.0.0 Version history: v1.1.1 | 2026","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"profiles/\n  blog-voice.md\n  email-voice.md\n  formal-reports.md"},{"language":"markdown","snippet":"---\nprofile_name: [name]\ncreated: [date]\nsample_count: [number of samples analyzed]\nsample_sources: [brief description of what was analyzed]\n---\n\n# Voice Profile: [Name]\n\n## Summary\n[2-3 sentence overview of this voice: who it sounds like, what context it fits, its most distinctive quality]\n\n## Sentence Patterns\n[Findings from sentence structure analysis, with direct examples pulled from the samples]\n\n## Vocabulary Signature\n[Word choice patterns, favorite phrases, formality level, with examples]\n\n## Flow and Structure\n[Paragraph patterns, transitions, openings/closings, with examples]\n\n## Tone and Personality\n[Humor, directness, hedging style, emphasis patterns, with examples]\n\n## Punctuation and Formatting\n[Mechanical habits, with examples]\n\n## Quick Reference\n[A condensed checklist of the 8-10 most distinctive traits to hit when rewriting.\nThese are the non-negotiable fingerprint markers that make text sound like this person.]"},{"language":"text","snippet":"## Profile Comparison: [Profile A] vs [Profile B]\n\n### Where they differ most\n1. **[Dimension]**: [Profile A description] vs [Profile B description]\n2. ...\n\n### Where they're nearly identical\n- [Dimension]: [shared trait]\n- ...\n\n### Quick Reference contrast\n\n| Trait | [Profile A] | [Profile B] |\n|---|---|---|\n| Sentence length | short, punchy | longer, flowing |\n| Hedging | rare | frequent |\n| ... | ... | ... |"},{"language":"text","snippet":"profiles/\n  blog-voice.md\n  blog-voice.linkedin.md\n  blog-voice.twitter.md\n  email-voice.md"},{"language":"markdown","snippet":"---\nprofile_name: blog-voice\nvariant: linkedin\nparent: blog-voice\ncreated: [date]\n---\n\n# Sub-Variant: blog-voice → LinkedIn\n\n## Inherits from parent\n[Brief reminder of the parent's core voice]\n\n## Overrides for this platform\n- **Sentence length**: keep tight (LinkedIn rewards scannable lines)\n- **Structure**: lead with the hook, not the buildup\n- **Tone**: slightly more professional than the blog\n- **Length cap**: 200 words for posts, 50 words for comments\n- **Things to drop**: heavy parentheticals, long meandering openers\n- **Things to keep**: the parent's vocabulary signature and humor style\n\n## Quick Reference (delta only)\n- Open with the punchline\n- One thought per line; cut connective tissue\n- No exclamation points\n- Keep the parent's contractions and rhythm"},{"language":"text","snippet":"## Voice Drift Report: [profile name]\n_Comparing [N] new samples against profile last updated [date]_\n\n### Overall drift: [Stable | Mild | Significant]\n\n### Per-dimension breakdown\n\n| Dimension | Status | Notes |\n|---|---|---|\n| Sentence patterns | Stable | Average length unchanged |\n| Vocabulary signature | Mild drift | New recurring words: [list]; dropped: [list] |\n| Flow and structure | Significant drift | Paragraphs ~40% longer than profile baseline |\n| Tone and personality | Stable | Humor style consistent |\n| Punctuation and formatting | Mild drift | More semicolons than before |\n\n### Recommendation\n[One of: \"Profile is current — no action needed\" | \"Consider refreshing the profile\" | \"Profile is outdated — recommend re-analyzing with new samples\"]"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: voice-match-humanizer\nversion: 1.1.1\ndescription: \"Use this skill when a user is actively managing voice profiles or asking for a rewrite tied to a specific saved profile. Specific triggers: 'rewrite this in my [profile-name] voice,' 'sound like me using my [profile-name] profile,' 'build a voice profile from these samples,' 'analyze my writing samples in [path/folder],' 'score this text for AI patterns,' 'compare my [profile A] and [profile B] profiles,' 'diff these two profiles,' 'make a [platform] variant of my [profile-name],' 'has my voice drifted from my [profile-name] profile,' 'check this against my saved profile,' 'list my voice profiles,' or 'update my [profile-name] profile with new samples.' Do NOT trigger on: requests to bypass AI-detection tools for academic dishonesty, generic editing/proofreading/simplifying/brainstorming, writing from scratch with no profile context, or casual mentions of voice or tone outside an active profile workflow. The skill builds and applies voice profiles that capture a person's writing fingerprint (sentence patterns, vocabulary, tone, quirks); supports profile comparison, per-platform sub-variants, drift detection, and AI-pattern scoring; stores profiles as local markdown files.\"\nmetadata:\n  openclaw:\n    emoji: ✍️\n---\n\n# Voice Match Humanizer\n\nA writing style cloning system that learns a person's unique voice from samples and applies it to any text. Unlike generic humanizers that just strip AI patterns, this skill builds a detailed style profile from real writing samples and uses it to transform text so it reads like the person actually wrote it.\n\n## Why this matters\n\nGeneric humanizers treat \"human\" as one voice. But every person writes differently. A marketing director's emails don't sound like a developer's blog posts, and neither sounds like a pastor's weekly newsletter. This skill captures those differences and preserves them.\n\n## Core capabilities\n\n1. **Analyze writing samples** to build a detailed voice profile\n2. **Score text** for AI-like patterns and give a detection risk rating\n3. **Rewrite text** to match a saved voice profile\n4. **Manage multiple named profiles** (e.g., \"blog voice,\" \"email voice,\" \"formal reports\")\n5. **Compare profiles** to surface concrete differences between two saved voices\n6. **Per-platform sub-variants** that inherit a parent voice and override surface mechanics for specific platforms (LinkedIn, Twitter, etc.)\n7. **Drift detection** to flag when new writing has shifted away from a saved profile\n\n---\n\n## Voice Profile System\n\n### Building a profile\n\nWhen the user wants to create a voice profile, collect writing samples through either method:\n\n- **Pasted text**: Ask for 3-5 samples of their writing (emails, blog posts, messages, reports). More samples produce better profiles. Each sample should be at least a paragraph long.\n- **File references**: Read files the user points to (markdown, text, docx, emails). Extract the text content and analyze it.\n\nFor best "},{"path":"README.md","content":"# Voice Match Humanizer\n\nAn OpenClaw skill that clones your writing voice from samples and applies it to any text.\n\nUnlike generic humanizers that strip AI patterns and call it a day, this skill learns *your* specific writing fingerprint (sentence structure, vocabulary, tone, quirks) and uses it to transform AI-generated text so it sounds like you actually wrote it.\n\n**Current version: 1.1.1**\n\n## What's new in 1.1.1\n\n- Added a **Privacy and Data Handling** section to SKILL.md describing local-only sample and profile handling, no external transmission, and an explicit refusal scope for detector-evasion use\n- Added a **Permissions and Privacy** section to this README so users see what the skill reads/writes, how samples are handled, and the intended-use boundary before installing\n- Narrowed the activation triggers in `description` to require an explicit profile-context request, with a \"do NOT trigger\" guard against bypass-AI-detector requests and generic editing/proofreading\n\n## What's new in 1.1.0\n\n- **Profile Comparison**: side-by-side diff of two saved profiles with a contrast table, so you can spot redundant profiles or pick the right one for a given piece\n- **Per-Platform Sub-Variants**: keep a core voice and create platform-specific overrides (e.g., `blog-voice.linkedin.md` tightens for LinkedIn while inheriting the parent's vocabulary signature)\n- **Drift Detection**: compares new samples against a saved profile and flags meaningful shifts so you know when to refresh\n\nSee [CHANGELOG.md](CHANGELOG.md) for the full release history.\n\n## What it does\n\n- **Build voice profiles** from your writing samples (blog posts, emails, LinkedIn posts, newsletters)\n- **Score text** for AI detection risk with a detailed breakdown across vocabulary, structure, tone, and mechanics\n- **Rewrite AI-generated text** to match a saved voice profile\n- **Manage multiple named profiles** for different contexts (\"blog-voice,\" \"linkedin-voice,\" \"email-voice\")\n- **Compare profiles** to see how two voices differ (1.1.0)\n- **Per-platform sub-variants** that inherit a parent voice and adapt for specific platforms (1.1.0)\n- **Drift detection** that alerts when new writing has shifted away from a saved profile (1.1.0)\n\n## How it works\n\n1. Feed the skill 3-5 samples of your real writing\n2. It analyzes your sentence patterns, word choices, tone, humor style, punctuation habits, and more\n3. It saves a reusable voice profile you can apply to any future text\n4. When you have AI-generated content, it rewrites it to match your profile\n\nProfiles are saved as markdown files and persist across sessions. Create as many as you need for different writing contexts, plus per-platform sub-variants for surface tweaks.\n\n## Example usage\n\n```\n\"Build a voice profile from my blog posts in ~/writing/blog/\"\n\n\"Does this LinkedIn post sound like AI wrote it?\"\n\n\"Rewrite this draft using my blog-voice profile\"\n\n\"Compare my blog-voice and email-voice profiles\"\n\n\"Make a LinkedIn variant of my blog-voice\"\n"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77r9qjvh6fy4aja2km8bzgvd83khv9\",\n  \"slug\": \"voice-match-humanizer\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1780960597019\n}"},{"path":"CHANGELOG.md","content":"# Changelog\n\nAll notable changes to this skill will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this skill adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [1.1.1] — 2026-06-08\n\n### Added\n- **Privacy and Data Handling** section in SKILL.md describing local-only sample reads, profile writes to `profiles/` directory, sample-confidentiality posture, and no external transmission\n- Explicit **refusal scope** for detector-evasion use cases (academic dishonesty, fooling classroom AI checkers); intended use clarified as personal-voice matching for users who draft with AI\n- **Permissions and Privacy** section in README.md so users see scope, sample-handling posture, and intended-use boundary before installing\n\n### Changed\n- Narrowed the activation triggers in the `description` frontmatter to require an explicit profile-context request (named profile, sample-analysis path, comparison, sub-variant, drift, scoring), with a \"do NOT trigger\" guardrail for detector-evasion requests, generic editing/proofreading, and writing-from-scratch\n- Unquoted the `version` field in frontmatter (matches updated ClawHub CLI semver requirements)\n\n## [1.1.0] — 2026-05-12\n\n### Added\n- **Profile Comparison** with concrete dimension-by-dimension contrasts and a side-by-side Quick Reference table, surfacing both where profiles differ most and where they're nearly identical\n- **Per-Platform Sub-Variants** that inherit from a parent profile and override specific dimensions for platforms like LinkedIn, Twitter, or Instagram; stored as `[profile].[platform].md` alongside the parent\n- **Drift Detection** that compares newly submitted samples against a saved profile and scores drift per dimension (Stable / Mild Drift / Significant Drift) with a recommendation to refresh\n- Auto-prompting for drift checks when a profile hasn't been updated in 6+ months and new text scores divergently\n- Four new Workflow Examples: comparing profiles, creating a sub-variant, running a drift check, and the existing rewrite flow updated to mention variants\n\n### Changed\n- Frontmatter now includes `version` and `metadata.openclaw.emoji` fields\n- Core capabilities list expanded from 4 to 7 to reflect the new features\n- Trigger description expanded to cover profile comparison, sub-variants, and drift-detection phrases\n\n### Removed\n- License section removed from README (license now managed at the ClawHub platform level)\n\n## [1.0.0] — 2026-04-12\n\n### Added\n- Initial release\n- Voice profile builder that analyzes 3-5 writing samples across sentence patterns, vocabulary signature, flow and structure, tone and personality, and punctuation/formatting habits\n- AI Detection Scoring with category breakdowns (vocabulary, structure, tone, mechanics) and a 0-100 risk rating\n- Rewriting engine that applies a saved voice profile to AI-generated text, preserving meaning while transforming surface mechanics\n- Multi-profile management ("},{"path":"evals/files/ai-generated-blog-post.md","content":"# The Transformative Power of Task Automation in Modern Workflows\n\nIn today's rapidly evolving digital landscape, task automation has emerged as a fundamental pillar of workplace efficiency. Whether you're a seasoned professional or just beginning your career journey, understanding the nuances of automation can fundamentally reshape how you approach your daily responsibilities.\n\n## Why Automation Matters\n\nAt its core, automation is about leveraging technology to handle repetitive tasks, freeing up valuable mental bandwidth for more strategic thinking. The benefits are multifaceted:\n\n- **Increased productivity**: By automating routine processes, teams can focus on high-impact work that truly moves the needle.\n- **Reduced errors**: Automated systems consistently deliver accurate results, eliminating the human errors that inevitably creep into manual workflows.\n- **Improved scalability**: As your organization grows, automated processes scale seamlessly without requiring proportional increases in headcount.\n\n## Getting Started with Automation\n\nThe journey toward automation doesn't have to be overwhelming. It's important to note that even small steps can yield remarkable results. Begin by identifying your most time-consuming repetitive tasks — these represent your highest-impact automation opportunities.\n\nConsider starting with tools like Zapier or Make (formerly Integromat), which offer intuitive interfaces that don't require extensive technical knowledge. These platforms serve as excellent entry points for professionals looking to dip their toes into the automation waters.\n\n## The Human Element\n\nWhile automation is incredibly powerful, it's essential to remember that it works best when it complements rather than replaces human judgment. The most successful automation strategies are those that thoughtfully balance efficiency with the irreplaceable value of human creativity and critical thinking.\n\nIn conclusion, embracing automation isn't just about working faster — it's about working smarter. By taking a thoughtful, incremental approach, you can transform your workflow while maintaining the human touch that makes your work truly meaningful."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1988,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:04:38.917Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:04:38.917Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T16:01:33.963Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}