Skip to content

Agent Skills

A steering file shapes the agent for this project, and a hook fires at a moment in the loop. But some knowledge is neither project-specific nor lifecycle-bound. It’s a reusable workflow you want everywhere: how you review a PR, how you cut a release, how your team writes commit messages. A steering file is the wrong home for it. Even with fileMatch, steering keys off which files are in your project, and it doesn’t travel beyond this repo. You want something that loads based on what you’re asking for and that you can carry between projects and tools.

A skill is that workflow packaged up so the agent can pull it in only when it’s relevant. Skills follow the open Agent Skills standard, so the same package works across Kiro and other compatible tools, and you can install ones other people have already written.

A skill is a folder with a SKILL.md file at its root. The frontmatter advertises when to use it; the body holds the instructions.

pr-review/SKILL.md
---
name: pr-review
description: Review pull requests for code quality, security issues, and test coverage. Use when reviewing PRs or preparing code for review.
---
## Review checklist
1. Check for vulnerabilities, injection risks, exposed secrets
2. Verify edge cases and failure modes are handled
3. Confirm new code has appropriate tests
4. Ensure variables and functions have clear names

Skills use progressive disclosure: at startup Kiro reads only each skill’s name and description, a cheap summary that’s always present. When your request matches a description, and only then, it loads the full body. So the agent knows the skill exists on every turn but pays for the detailed instructions only when they’re relevant.

This is the principle to hold onto, and it’s worth contrasting with steering’s fileMatch from the previous lesson. Both avoid loading context you aren’t using, but they’re not the same mechanism:

  • A steering fileMatch loads the whole file in one stage, triggered by which files are in your context. It’s a scoping rule keyed on your file tree.
  • A skill’s progressive disclosure is two stages (summary always on, body on demand), triggered by what you’re asking for. The agent itself judges the match against the description.

A skill named pr-review also becomes the /pr-review slash command, letting you invoke it explicitly.

Skills follow the same project-vs-global split as the rest of the .kiro directory: .kiro/skills/ for this project, or ~/.kiro/skills/ for every project on your machine, with the project copy winning a name clash. The default agent loads skills from both automatically. Custom agents must opt in via their resources field (covered in Custom Agents).

You rarely write skills from scratch. Most of the time you install one someone published. The open-standard skills CLI does it from any Git repository:

Terminal window
npx skills@latest add <owner/repo> -a kiro-cli

Two flags decide where it lands:

  • -a kiro-cli is the target agent. Don’t omit this. Run non-interactively, the CLI defaults to a different agent (GitHub Copilot), and the files go where Kiro never sees them. (-a is short for --agent.)
  • -g installs globally, into ~/.kiro/skills/ (available in every project), instead of the workspace’s .kiro/skills/. Use it for personal workflows you want everywhere.

If a repo bundles several skills, add --skill <name> to pick one; omit it to install the whole set. To browse without leaving the terminal: npx skills find <query>.

Your turn: install the skill you’ll use in Act 3

Section titled “Your turn: install the skill you’ll use in Act 3”

You’ll install grill-me-with-docs (part of Matt Pocock’s skill set) now, and use it for real in Act 3 to plan a change to the budget tracker.

  1. Install the set into this project, targeting Kiro:

    Terminal window
    npx skills@latest add mattpocock/skills -a kiro-cli

    With no -g, it installs into this project’s .kiro/skills/ rather than ~/.kiro/skills/ — scoped to the budget tracker, and part of the repo, so it’s right here when you reach Act 3:

    • Directory.kiro/
      • Directoryskills/
        • Directorygrill-me-with-docs/
          • SKILL.md
        • …other skills in the set
  2. Confirm Kiro picked it up. In a chat session:

    Terminal window
    > /context show

    grill-me-with-docs should appear by name, at roughly 0.1% context, because only its description is loaded until you actually call it. The /grill-me-with-docs slash command is now available. Don’t run it yet. That’s Act 3.

You can install a skill with npx skills@latest add <owner/repo> -a kiro-cli, explain why -a kiro-cli matters and what -g would change, and confirm grill-me-with-docs is live with /context show. That rounds out the primitives: steering shapes the agent per project, hooks fire on lifecycle events, and skills bring in reusable workflows on demand. And you’ve got the one Act 3 needs.