Project

ask-skills

0.0
The project is in a healthy, maintained state
Discovers, validates, and formats agent skills from project directories, user config, and installed gems. Ships built-in skills (codebase exploration, debugging methodology). Each skill is a markdown file with step-by-step instructions that the agent loads on demand.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 5.25
~> 3.1
~> 13.0

Runtime

>= 0.6.2
 Project Readme

ask-skills

Gem Version

Discover, validate, and load agent skills for the ask-rb ecosystem. A skill is a markdown file with step-by-step methodology for a domain task. Skills are listed in the agent's system prompt (name + description) and loaded on demand when the agent decides it needs domain guidance. Ships built-in skills (skill.design, skill.compose).

Installation

gem "ask-skills"

Quick Start

require "ask/skills"

# Discover skills from project, user config, gems, and built-ins
registry = Ask::Skills.discover
registry.names   # => ["skill.compose", "skill.design", ...]

# Get a skill by name
skill = registry["skill.design"]
skill.name         # => "skill.design"
skill.description  # => "How to design and write effective skills..."
skill.instructions # => markdown body with step-by-step methodology

# Include per-agent skills too
registry = Ask::Skills.discover(agent_dir: "agents/health_check")

Where Skills Live

Project skills live in agents/shared/skills/ (or app/agents/shared/skills/ in Rails), per-agent skills in agents/<name>/skills/, user skills in ~/.config/ask/skills/, and gems ship skills under ask/skills/*/SKILL.md.

agents/shared/skills/
└── db_debug/
    └── SKILL.md          # project-shared skill

agents/health_check/skills/
└── nginx_debug/
    ┗── SKILL.md          # per-agent skill

~/.config/ask/skills/
└── my_workflow/
    └── SKILL.md          # user-global skill

When the same skill name exists in multiple places, the first source wins: per-agent > shared project (Rails included) > user > gems > built-in. Place a skill with the same name in a higher-priority location to override it.

Skill Format

---
name: db_debug
description: Step-by-step methodology for debugging database issues
tags: database, debugging
version: 1
author: your-team
always: true
---

When investigating database performance issues, follow these steps...

always: true auto-injects the full instructions into the system prompt instead of listing the skill for on-demand loading.

Essential API

Entry point Purpose
Ask::Skills.discover(agent_dir: nil, sources: nil) Build a Registry from all sources in priority order
registry["name"] Look up a skill by name
registry.names List all skill names
registry.skills Hash of name to Skill
Ask::Skills::Skill Data object: name, description, instructions, source, metadata, siblings (references, scripts, assets)
askr skills <list|show|search> CLI (from ask-agent) for inspecting available skills

Full documentation

The full ask-rb documentation lives at https://ask-rb.github.io/ask-docs. https://ask-rb.github.io/ask-docs/core/skills covers ask-skills in depth, including custom sources, the validator, and formatting for system prompts. API reference: https://ask-rb.github.io/ask-docs/reference/api.

Development

bundle install bundle exec rake test

License

MIT