fenix-skills/skills/select/SKILL.md

43 lines
1.8 KiB
Markdown

---
name: select
description: 'This skill should be used when the user invokes "/select" to open one or more files in Emacs and select a region relevant to the current discussion via emacsclient.'
tools: Bash
disable-model-invocation: true
---
# Select region in Emacs
Open one or more files in Emacs and select (activate the region around) the code or text most relevant to the current discussion using `emacsclient --eval`. This allows the user to immediately act on the selection: narrow, copy, refactor, comment, etc.
Determine the relevant files and line ranges from the most recent interaction context.
## How to select
First, locate `agent-skill-select.el` which lives alongside this skill file at `skills/select/agent-skill-select.el` in the emacs-skills plugin directory.
```sh
emacsclient --eval '
(progn
(load "/path/to/skills/select/agent-skill-select.el" nil t)
(agent-skill-select
:selections (quote (("/path/to/file1.el"
:start 10
:end 25)
("/path/to/file2.el"
:start 5
:end 12)))))'
```
- `:start` is the 1-indexed start line.
- `:end` is the 1-indexed end line.
- The last file visited will have the visually active region. Other files have mark and point set (use `C-x C-x` to reactivate when switching to them).
## Rules
- Use absolute paths for files.
- Choose the region most relevant to the current discussion (e.g., a function just modified, a block with an error, code just generated).
- If no specific region is apparent, select the entire relevant function or block.
- Locate `agent-skill-select.el` relative to this skill file's directory.
- If no relevant files or regions exist in the recent interaction, inform the user.
- Run the `emacsclient --eval` command via the Bash tool.