Skip to content

Skill Sets

Skill sets let you customize RaiSE's built-in skills for your specific tech stack without forking the framework. You create a named collection of overlay files that replace only the sections that differ from the defaults.

Managing Skill Sets with /rai-skillset-manage

The primary way to work with skill sets is through the /rai-skillset-manage skill. It guides you through the full lifecycle — create, inspect, compare, and maintain — conversationally.

/rai-skillset-manage

The skill detects your existing skill sets, presents your options, and runs the right CLI operations for you. Use it when:

  • Setting up a skill set for a new stack or team
  • Checking what changed after a RaiSE upgrade (rai skill set diff)
  • Onboarding a new team member to an existing set

For creating or editing an individual skill, use /rai-skill-create instead.


How It Works

Base skills use a manifest-first pattern: they read tool commands from .raise/manifest.yaml, fall back to language detection, then to hardcoded defaults. Skill set overlays short-circuit this detection chain — they provide explicit commands for your stack.

Base skill (language-agnostic)
  └── reads manifest → detects language → defaults

Skill set overlay (stack-specific)
  └── explicit commands, no detection needed

Writing an Overlay

An overlay is a SKILL.md file inside your skill set directory that replaces a specific section of a base skill.

1. Create the skill set

/rai-skillset-manage

Select "Create a new skill set" and follow the prompts. Or directly via CLI:

rai skill set create my-stack --empty

2. Add overlay files

Create a subdirectory for each skill you want to customize, with a SKILL.md inside:

.raise/skills/my-stack/
  rai-story-implement/SKILL.md
  rai-story-plan/SKILL.md

3. Write the overlay

Each overlay requires frontmatter that identifies what it overrides:

---
name: rai-story-implement
overlay: my-stack
replaces: Step 3 (Verify Task)
description: Stack-specific verification for TypeScript.
---

## Verification Commands

After each RED-GREEN-REFACTOR cycle, run:

​```bash
npx vitest run
npx eslint src/
npx tsc --noEmit
​```

4. Activate the skill set

rai init --skill-set my-stack

This writes skill_set: my-stack to .raise/manifest.yaml. All subsequent skill invocations load your overlays instead of the base sections.

Built-in Skill Sets

RaiSE ships two reference skill sets you can examine and extend:

Name Stack Purpose
raise-dev Python (uv + pytest + ruff + pyright) Used internally by the RaiSE project
raise-dev-ts TypeScript (vitest + eslint + tsc) Reference for TypeScript projects

These are installed under .raise/skills/ when you run rai init.

When to Use What

Need Solution
Change test/lint/type commands Set project.*_command in manifest.yaml
Stack-specific workflow guidance /rai-skillset-manage → create + overlays
Team conventions beyond tool commands Skill set + /rai-skill-create
Project-internal private skills Dedicated project skill set

CLI Reference

The rai skill set commands are what /rai-skillset-manage uses internally. Use them directly if you prefer to script or automate skill set operations.

rai skill set create

rai skill set create <name> [--empty]
Flag Description
<name> Skill set name, used as the directory under .raise/skills/
--empty Create an empty set (no builtins copied) — start from scratch

Default: copies all built-in skills as a starting base. With --empty: creates an empty directory for minimal overlays only.

rai skill set list

rai skill set list
          Skill Sets
┏━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name         ┃ Skills ┃ Path                    ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ my-stack     │     42 │ .raise/skills/my-stack  │
│ raise-dev    │      5 │ .raise/skills/raise-dev │
└──────────────┴────────┴─────────────────────────┘

rai skill set diff

rai skill set diff <name>

Shows which skills are added (in your set, not in builtins), modified (content differs), or unchanged (identical to builtins). Run after a RaiSE upgrade to see what base skills changed under your overlays.

Skill set: my-stack

Modified (3):
  ~ rai-story-implement
  ~ rai-story-plan
  ~ rai-gate

Unchanged (37):
  = rai-session-start
  ...

See Also