# Approve

> Applies a queued patina proposal to the live skill library.

- Skill: `aurelioochoa/approve` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aurelioochoa/approve`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aurelioochoa/approve/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aurelioochoa (https://skillmd.com/u/aurelioochoa)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aurelioochoa/approve

---


Approve the pending entry named in `$ARGUMENTS`.

**With no arguments**, do not guess. Run `patina pending list` and ask which one.

**Before approving a single entry**, run `patina pending show <id>` and put the
case in front of the user: what it claims to have learned, the evidence, and any
check warnings. An approved skill's description enters the system prompt of every
later session, so this is the moment where that gets decided.

Then run `patina pending approve <id>`.

**`--all` deserves a pause.** Say how many entries it covers and confirm before
running it. Approving a queue unread is the failure this queue exists to prevent.

If approval is refused because the skill is malformed, report the blocking
findings and stop. Do not reach for `--force` on your own — the user has to ask
for it, and the honest options are usually to reject the entry and let the loop
propose something better, or to fix the file by hand after approving with
`--force`.

## `--refine`: work on the draft before it lands

What the loop files is a draft. The pass that wrote it had no user to ask, no
way to test whether the skill actually fires, and a spend ceiling — so the
wording, the trigger phrase, and whether the thing works at all are exactly the
questions it could not answer. This session can.

When the user asks to refine an entry, or when reading one together turns up
something worth fixing rather than rejecting:

1. Run `patina pending refine <id>`. It stages an editable copy and prints the
   path, the claims behind the draft, and whether skill-creator is installed.
2. If it reports a skill-creator path, invoke that skill and work on the staged
   copy with it. The draft is already written, so the useful part of its loop is
   the second half: test prompts, does it trigger, does the output improve,
   iterate on the description. Skip the interview — the claims printed in step 1
   are what the interview would have been asking about.
3. If it reports skill-creator missing, either edit the staged copy directly or
   pass on the install command it printed. Do not install a plugin without
   asking.
4. Finish with `patina pending approve <id> --from <staged path>`. The refined
   copy is re-checked before it is applied, so a refinement that breaks the
   frontmatter is refused like any other malformed skill.

The queue entry stays untouched until that last command, so an abandoned
refinement costs nothing.

