fenix-skills/skills/select/SKILL.md

1.8 KiB

name description tools disable-model-invocation
select 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. Bash 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.

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.