name: edit-in-emacs description: "Open a draft in emacsclient (blocking) so the user can review or edit it before further action. Triggers: /edit-in-emacs, 'open in emacs', 'open in emacsclient', 'let me edit', 'edit before submitting', 'open it in emacs and let me edit'" user_invocable: true
Edit in Emacs
Use this skill when the user wants to manually review or edit a draft (commit message, PR body, Jira description, prompt, etc.) before it is submitted or used downstream.
Workflow
Write the draft to a temp file under
/tmp/.- Pick a descriptive filename, e.g.
/tmp/jira-<topic>.md,/tmp/pr-body.md,/tmp/commit-msg.txt. - If the draft has multiple structured parts (e.g. summary + body), separate them with a clear marker like a line
SUMMARY: ...followed by---, and tell the user about the convention.
- Pick a descriptive filename, e.g.
Open the file with blocking
emacsclient:emacsclient /tmp/<file>- Do not use
-n— blocking is the whole point. The Bash call returns only after the user doesC-x #(server-edit) in Emacs. - Pass
timeout: 600000(10 min) on the Bash tool call so it does not abort while the user is editing. - Always use
dangerouslyDisableSandbox: true—emacsclientconnects to a Unix socket and the sandbox blocks it.
- Do not use
After the Bash call returns, the edited file is on disk.
- The harness usually emits a system-reminder showing the diff of any changes — use that if it is present.
- If no diff was shown (e.g. user did not modify the file, or the change is large), Read the file to get the current contents.
Use the edited contents in the downstream action (jira create, gh pr create, commit, etc.). Do not re-prompt the user for the same content; trust their edits.
Notes
- The user must have
emacs --daemon(or a running GUI Emacs server) foremacsclientto attach. Ifemacsclientreportscan't find socket, fall back to telling the user and offer$EDITORinstead. - Keep the temp file under
/tmp/, never in the repo root. - If the user explicitly asks for a different editor, honour that and skip this skill.
- The skill is for interactive editing of a draft, not for opening existing source files — for those, just
Readthem.