haze.
Docs / Guide

Skills guide.

If you do something for the second time, make it a skill. Skills are Markdown workflows that become slash commands — created inside haze, stored as plain files, versioned with your repo.

Create a skill

Run /skills, choose add skill, and answer three prompts. haze uses the model to draft the SKILL.md for you.

inside haze · the wizard
/skills
# picker → add skill

step 1/3 · name      › deploy-check
step 2/3 · scope     › this project
step 3/3 · description › Run lint, typecheck, tests, and build in one call.
                        Report each step pass/fail with the exact failing
                        output; do not stop at the first failure.

✓ created .haze/skills/deploy-check/SKILL.md — invoke with /deploy-check

Edit the generated Markdown freely afterwards — it is the source of truth, and haze rereads it whenever its content changes.

Anatomy of a skill

A skill is Markdown with YAML frontmatter: a name, a description that doubles as the match condition, and the instructions the model follows.

.haze/skills/code-review/SKILL.md
---
name: code-review
description: Use when the user asks for a review of their branch or diff.
---

You are a focused senior code reviewer.

Workflow:
1. Diff the current branch against main.
2. Review for bugs, missing tests, and unclear naming.
3. Prefer DRY and KISS; flag duplication worth extracting.
4. Cite every finding as file:line with a severity.
5. End with a three-bullet summary: risks, test gaps, suggested next step.

Skills never execute code themselves — they are instructions that shape what the agent does with its normal tools. They can also list reference files the model reads on demand.

Scope & precedence

  • Project skills live in .haze/skills/<name>/SKILL.md — commit them and share the team's workflows with the repo.
  • Global skills live in ~/.haze/skills/<name>/SKILL.md — personal workflows that follow you across projects.
  • A project skill overrides a same-named global skill in that workspace unless you disable the project scope.
  • Project skills are repository content: haze labels their provenance visibly and treats them as untrusted input.

Invoking skills

  • Directly: type the skill name as a slash command — /code-review, /deploy-check. Tab completion works.
  • Automatically: the model can load a matching skill on its own when your request matches its description.
  • From the picker: /skills lists every skill with its source (project/global) and state.

Starter recipes

Run /skills → add skill, and paste these descriptions:

/code-review
roleYou are a focused code reviewer.
descriptionReview the diff between the current branch and main, focusing on bugs, tests, DRY and KISS. Cite file:line for every finding.
/deploy-check
roleYou are a release-readiness verifier.
descriptionRun lint, typecheck, tests, and build in one call. Report each step pass/fail with the exact failing output; do not stop at the first failure.
/release-prep
roleYou are a commit-crafting assistant.
descriptionInspect uncommitted changes, group them into clean conventional commits, and write the commit messages. Do not commit; show me the proposed commands.
/security-review
roleYou are an application security auditor.
descriptionAudit auth flows, secret handling, and injection surface (SQL, command, XSS, SSRF) in the current branch diff. Cite file:line for every finding with severity.
/bugfix
roleYou are a methodical debugger.
descriptionReproduce the reported bug with a failing test first, then fix the root cause, and rerun the affected suites. Summarize the root cause in one paragraph.
/ship-feature
roleYou are a pragmatic feature engineer.
descriptionImplement the requested feature with tests and no speculative abstraction. Run typecheck, tests, and lint; end with a concise summary of changed files.

Manage skills

The /skills picker shows each skill's scope and lets you enable, disable, validate, or remove it. Disabled skills disappear from slash completion and model loading, without deleting the file.

Tip. Keep skills small and single-purpose — compose larger routines by calling several skills or by giving one skill a clear step list.