Skip to content

Read skills from .agents/skills and improve configurability #423

@zikajk

Description

@zikajk

To upvote this issue, give it a thumbs up. See this list for the most upvoted issues.

  1. Codex, opencode, pi, copilot read the skills from .agents/skills (it is somewhat standard, see https://agentskills.io/home).

  2. Current state

Feature Config key Accepts Recursive directory?
Rules rules: [{path: "..."}] Single file only
Commands commands: [{path: "..."}] Single file only
Skills Not configurable

Rules and commands in config.json only accept paths to individual files. There is no way to point them at a directory and have all files loaded recursively. This is inconsistent with how the file-based sources work (~/.config/eca/rules/** and .eca/rules/** both glob directories recursively).

Skills have no config.json representation at all — the only way to add skills from custom paths is via the plugin system (which populates an internal :pluginSkillDirs).

Proposal

  1. Add skills: [{path: "..."}] to config.json, consistent with the existing rules and commands shape.
  2. Support both files and directories in path for rules, commands, and skills:
    • If path points to a file → load it (current behavior)
    • If path points to a directory → recursively load all files matching the expected pattern (e.g. **/*.md for commands, **/SKILL.md for skills, ** for rules)

This gives users a uniform, simple way to point at a folder of rules/skills/commands from anywhere on disk without having to enumerate each file individually.

I initially thought it would be nice to have something like :extra-paths {:commands ..., :rules ..., :skills ...}, but that would be inconsistent and break backward compatibility, so I dropped the idea.

What do you think @ericdallo ?
I would work on this over the weekend.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions