aimarketplace

Skill index

Every skill in the marketplace, who may invoke it, and what makes it fire

A skill is the unit of capability here. One directory, one SKILL.md, and frontmatter that declares who may reach for it.

SkillInvoked byWhat it does
openspec:adrmodel + userRecord an Architecture Decision Record (ADR) under docs/adr/ - proactively, when a decision made during other work clears the bar (a new external dependency, a technology/pattern choice with long-term consequences, a boundary expensive to move later), not only when explicitly asked via the `adr` skill.
openspec:inituser onlyApply the personal engineering standard to this project - OpenSpec (with ADRs formalized at archive time) + LikeC4 architecture diagrams.
git:commitmodel + userCommit (and push) changes using Conventional Commits.
git:prmodel + userOpen, name and describe a pull/merge request (GitHub PR, GitLab MR) and its branch.
tui:recordmodel + userRecord a terminal UI as a demo video worth publishing - an asciinema cast driven by a scripted, verified take, then cut and rendered to a GIF.

The invocation policy

The invoke: block in a skill's frontmatter is its portable semantics: the part UZE translates into whatever each harness calls native.

---
name: init
description: Apply the personal engineering standard to this project…
invoke:
  model: false
  user: true
---
DeclarationReads asThe agentA person
(no invoke: block)the defaultdiscovers and uses itcalls it by name
model: false, user: truean explicit actionnever triggers itcalls it by name
model: true, user: falsebackground-onlyuses ithas nothing to type

Absent is the default on purpose. A skill that only fires when someone remembers to ask is documentation with extra steps. The whole reason to write a capability as a skill is that the agent finds it when the work matches.

Narrowing is the exception, and it needs a reason. openspec:init is narrowed because it restructures a repository, and "the user mentioned specs" is not consent to do that.

This is ADR-030 in UZE. There is no commands/ directory in an Agent Plugins 1.0 package. A slash command is a user-invocable skill, and each vendor's surface is derived from the policy rather than duplicated as a separate file.

What fires when

The description field is not a summary. It is the trigger. It is what an agent matches against when deciding whether this skill is the right tool, so it names the phrasings, the situations and the symptoms, and it says what the skill is not for.

  • git:commit: asked to commit, push, save or check in. And on its own initiative, once a coherent unit of work builds, passes its fast tests, and is not tangled with unrelated in-progress changes.
  • git:pr: asked to open a PR/MR, or when finished work on a branch needs to reach the default branch through review. Also before publishing a branch, to name it right.
  • openspec:adr: proactively, when a decision made during other work clears the bar: a new external dependency, a technology choice with long-term consequences, a boundary expensive to move later. Also to backfill decisions that predate the convention.
  • openspec:init: never on its own. A person invokes it, once, to adopt the standard in a project.
  • tui:record: asked to record, film, capture or demo a TUI or CLI; to produce a README hero, a docs landing animation, a release clip or a bug repro; or to redo a recording that is too long, too slow, robotic, or that leaked personal data.

Skills that carry more than prose

Two things a SKILL.md can bring with it, both loaded only when needed:

  • references/: long material the skill reads on demand rather than carrying in context. tui:record keeps its driver vocabulary and post-production notes here.
  • scripts/: executables the skill drives instead of reimplementing. tui:record ships tui-record (the whole pipeline) and driver-lib.sh (what a take sources).

A plugin-level resources/ directory holds files a skill installs into a project rather than reads. See anatomy.

On this page