AGENT SKILL

add-skill

Author a new playbook under skills/ to specialise the agent for a new domain or task without changing Go code. Use whenever the user wants the agent to do something new (k8s triage, sql review, release notes, ...). Mention triggers - new skill, SKILL.md, specialise the agent, add domain knowledge, playbook.

License 许可
MIT
所属仓库
blouargant/omnis
最近更新
2026-11-10
Stars
★ 0
Forks
0

01 前言 Front Matter

name
add-skill
description
Author a new playbook under skills/ to specialise the agent for a new domain or task without changing Go code. Use whenever the user wants the agent to do something new (k8s triage, sql review, release notes, ...). Mention triggers - new skill, SKILL.md, specialise the agent, add domain knowledge, playbook.

03 SKILL.md 正文

Add a project skill

A project skill lives under skills/<name>/SKILL.md and is loaded on demand by the agent at runtime. This is the primary specialisation mechanism — prefer it over writing Go.

Distinguish: skills/ (loaded by the running agent) vs .agents/ (loaded by your development session). This skill is about skills/.

Format

Follow the Agent Skills spec. Required frontmatter: name and description.

---
name: my-domain
description: One sentence. Begin with a verb. Include the trigger keywords explicitly so the lead picks it when the user mentions them.
---

# Title

## When to use it
Disambiguate from neighbouring skills.

## Procedure
1. Always start with a read-only confirmation step.
2. Snapshot state with one batch of read-only calls.
3. Classify the situation into N categories.
4. Propose ONE next action — smallest reversible step first.

## Hard rules
- Never <destructive verb> without explicit confirmation.
- Never retry on permission denial.

## Output rule
End every run with `Result: ok | needs-attention | blocked`.

Authoring rules

  1. Description is a matchable trigger. The lead matches the user's prompt against description. Write it like a search query: include the verbs and nouns the user is likely to type.

    ✅ "Diagnose unhealthy Kubernetes workloads — pods crash-looping, deployments not ready. Use whenever the user mentions kubernetes, k8s, kubectl, pods, deployments, namespaces."

    ❌ "Helps with Kubernetes."

  2. Procedure is a checklist, not a tutorial. One verb per step. Cite the tool by name (bash, kubernetes/get_pods, read, …).

  3. Always include "Hard rules". Spell out the destructive verbs the skill must never invoke without consent. The agent self-restricts before even reaching the permissions plugin.

  4. End with an output rule. A single closing token (ok, needs-changes, blocked, clean, …) makes the result machine-readable.

  5. Stay under ~150 lines. Beyond that, split into a second skill the lead can chain.

Wiring

No code change required. The skill loader (internal/skills) walks ./skills/ at startup and registers every folder with a valid SKILL.md. The lead's system prompt instructs it to prefer load_skill over ad-hoc reasoning.

Examples shipped

Read these before authoring your own:

Optional bundled assets

Following the spec, you can bundle:

  • skills/<name>/scripts/ — executable helpers the agent can run.
  • skills/<name>/references/ — additional Markdown loaded only on demand.
  • skills/<name>/assets/ — templates, schemas, lookup tables.

Keep SKILL.md slim; push detail into references/.

Verify

PATH=$HOME/.local/go/bin:$PATH go build ./... && \
PATH=$HOME/.local/go/bin:$PATH go run . console
> list available skills    # the new one should appear
> <a typical user prompt>  # the lead should call load_skill on it

Adjust the description if the wrong skill (or no skill) is selected.

Don'ts

  • ❌ Don't restate the universal operating method (restate → plan → …). The lead already does that.
  • ❌ Don't hard-code paths or hostnames; pass them via tool args / env.
  • ❌ Don't write a skill that needs a tool that isn't mounted. Either add the MCP server / tool first, or include the requirement in compatibility:.

04 同仓库更多 Skills

blouargant
blouargant/omnis

skill-creator

Create or update a skill playbook (SKILL.md) for the agent. Use when the user wants to create a new skill, add a skill, define a new agent capability, update an existing skill, edit a skill, refine a skill playbook, or specialise the agent for a new domain.

Skill与智能体开发
★ 0
blouargant
blouargant/omnis

review

Review a body of work (source code, configuration, documents, infra manifests, …) for correctness, clarity, and obvious risks. Use this skill whenever the user asks for a review, audit or critique.

★ 0
blouargant
blouargant/omnis

pdf

Fallback PDF text extractor using pdftotext (poppler). Use ONLY when the preferred `liteparse` skill is unavailable or for a quick plain-text dump of a simple text PDF — for the best PDF parsing (scanned, multi-column, layout-heavy, or non-PDF formats) prefer the `liteparse` skill.

文档处理
★ 0
blouargant
blouargant/omnis

pandoc

This skill should be used when converting documents between formats (Markdown, DOCX, PDF, HTML, LaTeX, etc.) using pandoc. Use for format conversion, document generation, and preparing markdown for Google Docs or other word processors.

文档处理Skill与智能体开发
★ 0
blouargant
blouargant/omnis

liteparse

Preferred local parser for extracting text from PDFs, images, and scanned/layout-heavy documents (OCR, screenshots, complex PDFs) — far better than pdftotext. Use this FIRST for any PDF, image, or OCR text-extraction or conversion task. NOTE for Office documents (DOCX, PPTX, XLSX, ODT) — for plain text extraction prefer the `pandoc` skill, which needs no LibreOffice; only use LiteParse for Office docs when you need its layout/OCR/screenshot output. The `pdf` skill (pdftotext) is only a fallback for when LiteParse cannot be installed.

行政与办公人员文档处理演示文稿
★ 0
blouargant
blouargant/omnis

linux-admin

Safely make a change to a Linux workstation — install/remove packages, manage systemd services and timers, edit and validate configuration files, manage users/permissions and networking. Detect the distro and package manager, determine whether the target is package-managed or hand-maintained, preview or simulate every change, back up configs before editing, and prefer the package manager and drop-in overrides so the host stays consistent and secure. Use whenever a change to the local Linux host is required (install, remove, enable, disable, start, stop, edit a config, add a user, change permissions or networking).

★ 0