voice-learn
Improves a voice profile by learning from manual edits. Use after editing generated text to refine registers and close voice drift over time Skill: voice-learn Owner: athola Summary: Improves a voice profile by learning from manual edits. Use after editing generated text to refine registers and close voice drift over time Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:22:35.086Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:42:28.143Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:59:18.245Z | user Release v1.9.16 v1.9.14 | 2026-06-30T18:06
Rank
62
Safety
84
Downloads
959
Updated
Oct 12, 2026
Version
1.9.19
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 959 downloads reported by the source. Last updated 10/12/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 12, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 12, 2026
- Adoption signal
- 959 downloadsadoption · observed Oct 12, 2026
- Latest release
- 1.9.19release · observed Aug 26, 2026
- Handshake status
- UNKNOWNsecurity
What changed
Newest first. Only changes that point at a source are listed.
Release 1.9.19release
Release v1.9.19
Observed Aug 26, 2026 · source
Install and run
Setup complexity: low.
clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-scribe-voice-learn- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scribe-voice-learn/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
81,361 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: voice-learn
description: |
Improves a voice profile by learning from manual edits. Use after editing generated text to refine registers and close voice drift over time
version: 1.9.8
triggers:
- voice
- learning
- improvement
- feedback
- iteration
metadata: {"openclaw": {"homepage": "https://github.com/athola/claude-night-market/tree/master/plugins/scribe", "emoji": "\u270d\ufe0f", "requires": {"config": ["night-market.scribe:voice-extract", "night-market.scribe:voice-generate", "night-market.scribe:voice-review"]}}}
source: claude-night-market
source_plugin: scribe
---
> **Night Market Skill** — ported from [claude-night-market/scribe](https://github.com/athola/claude-night-market/tree/master/plugins/scribe). For the full experience with agents, hooks, and commands, install the Claude Code plugin.
# Voice Learning Skill
Learn from user edits to improve the voice profile over time.
## Method: Three-Stage Comparison
Every piece flows through three stages:
1. **Pre-review**: Raw generation output (before review agents)
2. **Post-review**: After user accepts/rejects advisory fixes
3. **Post-edit**: User's manually edited final version
The learning agent compares stages 2 and 3 (post-review vs
post-edit) to identify patterns in what the user changed.
These patterns inform register and rule updates.
## Core Rules
1. **Sharpen, don't add**: Modify existing rules to cover new
patterns. Rule bloat degrades output.
2. **Tag specificity**: Register-specific patterns go to
registers. Universal patterns go to craft rules or agents.
3. **Flag contradictions**: Opposite patterns across pieces
require user resolution.
4. **Evidence threshold**: Patterns need 3+ instances (or 1-2
matching existing accumulator entries) before becoming rules.
5. **Detection surface**: Structural changes increase AI
detectability. Craft-level changes are neutral. Prefer
craft-level updates.
6. **Rule count check**: Suggest consolidation if any section
has 8+ rules.
## Required TodoWrite Items
1. `voice-learn:snapshots-loaded` - All three stages read
2. `voice-learn:diff-analyzed` - Changes categorized
3. `voice-learn:accumulator-checked` - Prior patterns reviewed
4. `voice-learn:proposals-generated` - Updates proposed
5. `voice-learn:user-approved` - Changes accepted by user
## Step 1: Load Snapshots
Load: `@modules/snapshot-management`
```bash
PROFILE_DIR="$HOME/.claude/voice-profiles/{name}"
SNAP_DIR="$PROFILE_DIR/learning/snapshots"
# Find the most recent snapshot set
# Format: {piece-name}-{timestamp}-{stage}.md
```
Read all three stages for the target piece.
## Step 2: Diff Analysis
Load: `@modules/pattern-analysis`
Compare post-review vs post-edit. Categorize every change:
| Category | Example |
|----------|---------|
| Tone adjustment | Softened a claim, added hedge |
| Voice insertion | Added parenthetical, aside, humor |
| Structure change | Broke paragraph, reordered |
| Precision edit | Replaced vague with s_meta.json
{
"ownerId": "kn7d107jg9jv602h9ytsegydq184a42s",
"slug": "nm-scribe-voice-learn",
"version": "1.9.19",
"publishedAt": 1787750555086
}modules/pattern-analysis.md
---
module: pattern-analysis
category: voice-learning
dependencies: [Read, Agent]
estimated_tokens: 500
---
# Pattern Analysis Module
Analyze diffs between post-review and post-edit snapshots
to extract recurring edit patterns.
## Diff Categories
| Category | Signal | Example |
|----------|--------|---------|
| tone_adjustment | Softened/strengthened claims | "This proves" -> "This suggests" |
| voice_insertion | Added writer-specific moves | Added parenthetical aside |
| structure_change | Reordered, split, merged | Broke long paragraph into two |
| precision_edit | Vague -> specific | "many people" -> "the 12 engineers" |
| deletion | Removed fluff | Cut "It's worth noting that" |
| addition | Added context | Added a concrete example |
| humor_or_irreverence | Added informal voice | Added "(fuck GPTZero)" |
| hedge_or_commit | Changed certainty level | "will" -> "should" or vice versa |
## Analysis Prompt
```
Compare these two versions of the same text:
VERSION A (post-review, before manual edits):
{post_review_text}
VERSION B (post-edit, after manual edits):
{post_edit_text}
For each change the writer made:
1. Identify the specific edit (what changed)
2. Categorize it (from the categories above)
3. Describe the pattern (what principle drove this edit?)
4. Assess specificity: is this a general writing preference
or specific to this voice?
Focus on RECURRING patterns, not one-off fixes. If the same
type of edit appears 2+ times, that's a voice signal.
Output as a list of patterns with evidence.
```
## Pattern Matching Against Accumulator
For each identified pattern, check the accumulator:
```python
def match_pattern(new_pattern, accumulator):
"""Match using category + semantic similarity."""
for existing in accumulator["patterns"]:
if existing["category"] == new_pattern["category"]:
# Semantic similarity check (same intent?)
if similar_description(existing, new_pattern):
return existing # Merge with this entry
return None # New pattern
```
## Evidence Requirements
| Action | Threshold |
|--------|-----------|
| Apply to register | 3+ instances across 2+ pieces |
| Apply with accumulator match | 1-2 new and 2 prior instances |
| Hold in accumulator | 1-2 instances, no prior match |
| Discard | Contradicts 3+ counter-examples |
## Output Format
```json
{
"patterns_found": [
{
"category": "tone_adjustment",
"description": "Softens confident claims about capabilities",
"instances": [
{"line": 12, "before": "...", "after": "..."},
{"line": 34, "before": "...", "after": "..."}
],
"recommendation": "apply|hold|discard",
"target": "register|craft-rules|prose-reviewer",
"proposed_edit": "..."
}
]
}
```modules/snapshot-management.md
---
module: snapshot-management
category: voice-learning
dependencies: [Bash, Write, Read]
estimated_tokens: 400
---
# Snapshot Management Module
Capture and organize text snapshots for the learning loop.
## Snapshot Stages
| Stage | When Captured | Purpose |
|-------|--------------|---------|
| pre-review | After generation, before review agents | Baseline output |
| post-review | After user accepts/rejects advisories | Review impact |
| post-edit | When user runs /voice-learn | Manual edit patterns |
## File Naming
```
{piece-name}-{YYYYMMDD-HHMMSS}-{stage}.md
```
Example:
```
blog-api-design-20260410-143022-pre-review.md
blog-api-design-20260410-143022-post-review.md
blog-api-design-20260410-145511-post-edit.md
```
## Capture Commands
### Pre-review (automatic)
Called by voice-generate after producing text:
```bash
SNAP_DIR="$HOME/.claude/voice-profiles/$PROFILE/learning/snapshots"
PIECE_NAME="$1"
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
cp "$OUTPUT_FILE" "$SNAP_DIR/${PIECE_NAME}-${TIMESTAMP}-pre-review.md"
```
### Post-review (automatic)
Called by voice-review after user completes advisory decisions:
```bash
cp "$REVIEWED_FILE" "$SNAP_DIR/${PIECE_NAME}-${TIMESTAMP}-post-review.md"
```
### Post-edit (user-triggered)
User runs `/voice-learn` after making manual edits:
```bash
cp "$EDITED_FILE" "$SNAP_DIR/${PIECE_NAME}-${TIMESTAMP}-post-edit.md"
```
## Snapshot Sets
A complete set has all three stages with matching piece-name
and timestamp prefix. Incomplete sets (missing post-edit) are
ignored by the learning agent until completed.
## Manifest Tracking
Update `manifest.json` learning section:
```json
{
"learning": {
"snapshot_count": 12,
"complete_sets": 4,
"last_capture": "2026-04-10",
"last_learning_pass": "2026-04-09"
}
}
```
## Cleanup
Snapshots older than 90 days with completed learning passes
can be archived or deleted. The accumulator retains the
pattern evidence independent of raw snapshots.skill-card.md
## Description: Improves a voice profile by learning from manual edits to refine registers and close voice drift over time. This skill is ready for commercial/non-commercial use. ## Publisher: [athola](https://clawhub.ai/user/athola) ### License/Terms of Use: MIT-0 ## Use Case: Developers and writers use this skill after manually editing generated text to compare review-stage and final drafts, extract recurring voice patterns, and propose updates to voice profile rules. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: The skill can persist edited content, review snapshots, and profile changes under a local voice profile directory. Mitigation: Use it only for voice-profile workflows where snapshot retention is acceptable, and avoid sensitive drafts unless local retention has been reviewed. Risk: Snapshot path handling is under-scoped for piece names used in snapshot commands. Mitigation: Constrain piece names to safe filename characters before any snapshot command runs. Risk: Learned patterns can introduce incorrect or unwanted voice rules if weak signals are applied too early. Mitigation: Require user approval for proposed updates and keep insufficient evidence in the accumulator until the documented threshold is met. ## Reference(s): - [ClawHub skill page](https://clawhub.ai/athola/skills/nm-scribe-voice-learn) - [ClawHub publisher profile](https://clawhub.ai/user/athola) - [Scribe plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/scribe) ## Skill Output: **Output Type(s):** [text, markdown, json, shell commands, configuration, guidance] **Output Format:** [Markdown guidance with JSON pattern summaries and shell command examples] **Output Parameters:** [1D] **Other Properties Related to Output:** [May propose edits to local voice profile files after user approval.] ## Skill Version(s): 1.9.19 (source: server release evidence) ## Ethical Considerations: Users 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.
AionUi
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!
activepieces
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
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
- Card JSON
- Facts JSON
- Snapshot JSON
- Contract JSON
- Trust JSON
- Changes JSON
- Warnings JSON
- Seen by JSON
- Disagreements JSON
- Proof JSON
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/athola/skills/nm-scribe-voice-learn",
"sourceUrl": "https://clawhub.ai/athola/skills/nm-scribe-voice-learn",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-12T01:49:12.724Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scribe-voice-learn/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scribe-voice-learn/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-12T01:49:12.724Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "959 downloads",
"href": "https://clawhub.ai/athola/nm-scribe-voice-learn",
"sourceUrl": "https://clawhub.ai/athola/nm-scribe-voice-learn",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-12T01:49:12.724Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.9.19",
"href": "https://clawhub.ai/athola/nm-scribe-voice-learn",
"sourceUrl": "https://clawhub.ai/athola/nm-scribe-voice-learn",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-26T13:22:35.086Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scribe-voice-learn/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scribe-voice-learn/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.9.19",
"description": "Release v1.9.19",
"href": "https://clawhub.ai/athola/nm-scribe-voice-learn",
"sourceUrl": "https://clawhub.ai/athola/nm-scribe-voice-learn",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-26T13:22:35.086Z",
"isPublic": true
}
]
}Record generated Oct 12, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust, changes, warnings, seen by, disagreements, proof.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-athola-nm-scribe-voice-learn/run-check
