plugins/ai-resources/skills/shama-add-context/SKILL.md
Add terms, context, or instructions to Shama voice-to-text files for clipboard mode (Ctrl+Opt+Space) or shell-command mode (Ctrl+Opt+S), at project or global level.
npx skillsauth add amhuppert/my-ai-resources shama-add-contextInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Add new entries to Shama's vocabulary, context, or instructions files when the transcriber misrecognizes words, the cleanup step formats text incorrectly, or shell-mode generates the wrong command.
Shama is the resident macOS voice-to-text app. It reads a per-project voice.json plus an optional global voice.json; the file keys below point at the markdown files that feed its pipelines.
Two context levels: project-level (default) — files specific to the current project, stored alongside the project's voice.json — and global-level — files shared across all projects, stored alongside ~/.voice/voice.json. For each file key, Shama takes the union of global then project values: global file-list entries come first, project entries are appended (duplicates by resolved path removed). A project-level entry adds to — it does not replace — the global one.
Two modes, each with its own trio of files:
contextFile, vocabularyFile, instructionsFileshellContextFile, shellVocabularyFile, shellInstructionsFileEach pipeline consumes different files:
contextFile (project knowledge) and instructionsFile (how-to formatting rules). Affects how transcribed text is corrected and structured.shellContextFile (background for command generation) and shellInstructionsFile (rules for command output). Affects what shell command is produced.Identify which stage is failing:
Use global-level if the user explicitly mentions "global", "global context", "global config", "global Shama context", or ~/.voice/. Otherwise default to project-level.
~/.voice/voice.json to find any of the six file keys above~/.voice/~/.voice/voice.json does not exist or has none of these keys configured, inform the user that global Shama config has no context files yet and offer to create one — see "Creating a missing file" in Step 3voice.json in the current directory to find any of the six file keysvoice.json does not exist, check for the conventional filenames in the current directory:
voice-context.md, voice-vocabulary.md, voice-instructions.mdvoice-shell-context.md, voice-shell-vocabulary.md, voice-shell-instructions.md/shama-init-config first. Stop here.Default to clipboard mode. Use shell-command mode when the user mentions "shell", "shell mode", "shell command", "terminal", "Control+Option+S", or shell-mode dictation.
If the user's request is too vague to act on, ask for:
Then pick the file(s) for the scenario:
| Scenario | Vocabulary file | Context file | Instructions file | |---|---|---|---| | Misheard term | Add correct term | Add term with description and common mishearings | — | | New terminology | Add correct term | Add term with description | — | | Naming convention | — | Add to Naming Conventions section | — | | Project context | — | Add to appropriate section | — | | Cleanup formatting / style rule | — | — | Add rule |
| Scenario | Shell vocabulary file | Shell context file | Shell instructions file |
|---|---|---|---|
| Misheard term in shell request | Add correct term | Add term with description | — |
| Tool or binary name | Add correct term | Add binary description if non-obvious | — |
| Preferred tool / style (e.g., "prefer rg over grep") | — | — | Add rule |
| OS-specific behavior | — | — | Add rule |
| Project shell context (paths, common workflows) | — | Add to appropriate section | — |
One term per line — no markdown formatting, no descriptions, just the bare term with correct spelling and capitalization:
Zod
CLAUDE.md
ResolvedFileRef
Add to the appropriate section, following the existing format:
- {Name} ({brief description})- **{Term}** - {brief definition or correction note}- {convention description}When adding a misheard word correction, include the common misheard form in the definition to help Claude recognize and correct it:
- **Zod** - Runtime validation library (not "god", "sod", or "zawed")
- **lgit** - Git wrapper for .local directory (not "legit" or "l-git")
The instructions file controls how cleanup is performed. Add formatting rules, style preferences, or behavioral overrides — not project knowledge:
- Always preserve fenced code blocks verbatim — do not edit, reformat, or summarize their contents
- Prefer hyphen-style bullet points (`-`) over asterisks (`*`)
- When listing steps, use numbered lists; when listing options, use bullets
Background information for the shell-command generator: project paths, repo layout, preferred tools, common workflows. Same structural format as the clipboard-mode context file but oriented toward shell usage.
Rules for shell-command output:
- Prefer `rg` (ripgrep) over `grep` for content searches
- Prefer `fd` over `find` when available
- Quote paths that may contain spaces using double quotes
If the target file does not yet exist:
~/.voice/ for global): voice-instructions.md, voice-shell-context.md, voice-shell-vocabulary.md, voice-shell-instructions.mdvoice.json — the project's for project-level, ~/.voice/voice.json for global (create the voice.json if it does not exist)After editing, display:
voice.json (~/.voice/voice.json for global) was updated to register a new file, mention thatdevelopment
Debug a running web app via the web-debugger SDK: app logs, application state, runtime snapshots, React state, query cache.
development
Thoroughly understand a software development objective before implementation: research, identify ambiguities, ask clarifying questions. Use before starting implementation of a non-trivial or ambiguously specified feature, or when requirements leave open design decisions.
development
Locate the on-disk Claude Code transcript file (.jsonl under ~/.claude/projects/) for the current or a specified conversation.
development
Reflect on codebase navigation effectiveness at end of conversation. Surfaces dead ends, inefficiencies, missing context. Does not write files — pair with /kiro:steering-custom to persist.