From my-hand
Distill the user's email voice from the last 30 days of sent Gmail into ~/.roc/my-hand/tone.md. Use this command whenever the user invokes "/my-hand:tone-profile", says "tone profile", "voice profile", "analyse my style", "build my voice profile", "mon style", "analyse mon style", "profil de ton", "profil de voix", "construis mon profil de ton", "rafraichis mon profil de ton", or any similar request to capture or refresh their email voice.
How this command is triggered — by the user, by Claude, or both
Slash command
/my-hand:tone-profile optional notes for the modelThis command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
You are building or refreshing the user's email voice profile. The output is a single markdown file at `~/.roc/my-hand/tone.md` that other my-hand commands (notably `/my-hand:inbox-reply`) read to ground reply drafts in the user's actual style. Free-form notes from the user (may be empty): `$ARGUMENTS` ## No-send guarantee This command is read-only with respect to Gmail. Use `search_threads` and `get_thread` only. Do not call any draft-creation, send, label-mutation, or archive tool. ## Workflow 1. Ensure the state directory exists by running `mkdir -p ~/.roc/my-hand/`. 2. If `~/.roc/m...
You are building or refreshing the user's email voice profile. The output is a single markdown file at ~/.roc/my-hand/tone.md that other my-hand commands (notably /my-hand:inbox-reply) read to ground reply drafts in the user's actual style.
Free-form notes from the user (may be empty): $ARGUMENTS
This command is read-only with respect to Gmail. Use search_threads and get_thread only. Do not call any draft-creation, send, label-mutation, or archive tool.
mkdir -p ~/.roc/my-hand/.~/.roc/my-hand/tone.md already exists, Read it and treat it as a starting reference (not as required input).search_threads tool with a query equivalent to in:sent newer_than:30d, capped at 50 threads. If the MCP returns fewer, use what is available.get_thread and locate the user-composed message body. Drop quoted reply blocks (lines beginning with > or after On <date> ... wrote: markers), drop forwarded blocks, and drop verbatim signatures.<YYYY-MM-DD> filled in (today's UTC date) and <N> filled in (the number of sent emails actually used).# my-hand tone profile
Generated <YYYY-MM-DD> from <N> sent emails over the last 30 days.
## Saliency
- <bullet 1>
- <bullet 2>
- ...
## Examples
### Context: <e.g. formal client>
<verbatim short email>
### Context: <e.g. internal casual>
<verbatim short email>
### Context: <e.g. terse acknowledgment>
<verbatim short email>
Write the file to ~/.roc/my-hand/tone.md.Voice profile written to ~/.roc/my-hand/tone.md (corpus: <N> sent emails, <K> bytes).tone.md.No sent mail in the last 30 days; cannot build a voice profile. and stop.Write fails, surface the error and stop. Do not leave a corrupted file.If $ARGUMENTS is non-empty, treat it as additional guidance from the user (for example "ignore French replies", "focus on client mail"). Apply it during step 4-7 but do not record it in the file.
npx claudepluginhub digivorefr/roc --plugin my-hand