Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Bbq

ASecurity

Run a grilling session in the browser instead of the terminal. Use when the user asks to grill with the UI, says "bbq", "barbecue" or "churrasco", or when a grilling session will be long and the bbq MCP tools are available.

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentsgo

Works with

terminalmcp

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add adesombergh/bbq --skill bbq --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bbq?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Bbq
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adesombergh-bbq/badge)](https://www.skillsdirectory.com/skills/adesombergh-bbq)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: bbq
description: Run a grilling session in the browser instead of the terminal. Use when the user asks to grill with the UI, says "bbq", "barbecue" or "churrasco", or when a grilling session will be long and the bbq MCP tools are available.
---

Run the `grilling` skill exactly as written (design tree, frontier, rounds, one recommendation per question), but the browser is the conversation surface, not the terminal.

## Step 0 — settle the session before opening it

Three settings decide how the session runs. Take whatever the invocation already
gave you (`/bbq with docs, max 20, fr`, or `/bbq-mcp:bbq …` from the plugin) and ask for the rest in **one**
`AskUserQuestion` in the terminal, before `open_session`. Skip the question
entirely when the args answered it. None of the three reaches the server: they
live here, in this file, and in your head for the length of the session.

- **Mode** — `grill-me` or `grill-with-docs` (default `grill-me`). With-docs
  means both halves: read `CONTEXT.md`, `docs/adr/` and `README.md` so the
  questions use the project's ubiquitous language and never re-litigate a
  settled ADR, **and** run the `domain-modeling` skill throughout — challenge
  terms, sharpen fuzzy language, and write `CONTEXT.md` entries the moment a
  term settles rather than batching them to the end. The glossary may lead the
  code: a word the session agrees on belongs in `CONTEXT.md` even when nothing
  implements it yet. Offer an ADR only when the three-part test passes.
- **Question budget** — a maximum number of questions, default **no maximum**.
  It counts questions **inside rounds** only. Asides are free (they are the same
  question, explained again) and so is the last round; a decision you genuinely
  reopen counts again. On reaching the cap, `post_note` every decision you did
  not get to with the answer you are assuming for each, then go straight to the
  last round.
- **Session language** — `english` or `french`, default `english`. Content only:
  questions, options, recommendations, notes and asides. The UI chrome,
  `CONTEXT.md`, ADRs, code and commit messages stay English. **The session
  language overrides any brief**, including the ones the tool results carry — an
  aside brief that prescribes Simplified Technical English is advice for the
  English case and does not apply to a French session.

## Protocol

1. `open_session({ title, shortTitle })` once. It opens the browser and returns `sessionId`. `title` is the descriptive one shown in the header; `shortTitle` is two to four words for the browser tab. Tell the user in one line that the session is open in the browser.
2. For each round, call `ask_round({ sessionId, intro?, questions })` instead of printing `❓ Q1 …`. One question object per frontier question:
   - `title`: the bold title. `body`: the full question, markdown, as many paragraphs as needed.
   - `options`: list `{ label, description? }` for closed questions; omit for open questions.
   - `recommendation`: your `➡️` line. If it is one of the options, also set `recommendedOptionId` (`a`, `b`, … by default).
3. Loop on `wait_for_answers({ sessionId, roundId })`:
   - `pending` → call it again. Say nothing in the terminal.
   - `aside_requested` → the user pressed **Wait what**, **Show me** or **ELI5** on a question. Do what the result says (invoke the named skill about that question, or follow the inline brief), then `post_aside({ sessionId, asideId, format, content })`, then wait again.
   - `answered` → the user's answers. Recompute the frontier and go to step 2.
4. Between rounds you may `post_note({ sessionId, markdown })` to say what got settled or that you are looking something up.
5. When the frontier is empty, run the last round — below.

## The last round

The last round confirms the shared understanding **and** chooses where the plan
goes. One press does both. It is an ordinary round in every respect: nothing
about a destination reaches the Store, the protocol or a snapshot.

1. `post_note` the **full shared understanding**. This is the long one — every
   settled decision, with the reasoning that is not obvious from the outcome.
2. `ask_round` with exactly **one** question. Keep the body short: the plan is
   in the note directly above it. Its four options are always these four, in
   this order, never more and never fewer:
   - **Just send to Claude**
   - **`/implement`**
   - **`/to-spec`**
   - **`/to-tickets`**
3. `wait_for_answers`. A **manual answer** means "not yet": it names what is
   wrong, so reopen that decision and carry on from step 2 of the protocol.
4. `close_session`, then act on the destination.

### Recommending a destination

Every question carries a recommendation, this one included. It comes from the
size of the plan you just built:

| The plan                                | Recommend                                     |
| --------------------------------------- | --------------------------------------------- |
| Fits one session                        | **`/implement`**                              |
| Spans several sessions                  | **`/to-spec`**, then `/to-tickets` per ticket |
| Is something the user wants to sit with | **Just send to Claude**                       |

Say in one line which rule you applied, so the user can tell you it got the size
wrong.

### Acting on a destination

You **cannot invoke** `/implement`, `/to-spec` or `/to-tickets`. All three ship
`disable-model-invocation: true`, so an answer never starts anything — it says
what to set the user up for. All three read the conversation they are typed in,
which is why printing the plan into the terminal is the whole handover: the
thread becomes the record. This session's record is not one — it dies with the
server process (`docs/adr/0009-sessions-live-in-process-memory.md`).

- **Just send to Claude** → write the shared understanding into the terminal in
  full, and **stop**. Do not start building. The ball is the user's.
- **`/implement`**, **`/to-spec`**, **`/to-tickets`** → write the shared
  understanding into the terminal in full, then end with the one line the user
  is meant to type.

The menu never varies with what is installed
(`docs/adr/0015-skill-availability-is-not-session-state.md`). If the chosen
destination needs a tracker or a skill the user has not got, say so in the
terminal, after the fact — never by dropping the option.

## Rules

- Facts are yours to find (sub-agents), decisions are the user's. Never put a lookup in a question.
- Never block waiting for the user in the terminal; `wait_for_answers` is the only wait and it is safe to loop.
- Keep terminal output to one line per round at most, until the last round. The user is reading the browser.
- Asides answer the _question as asked_; never add options or change the recommendation inside an aside.
- Pick the aside `format` that matches what you produced — the kind the user pressed does not fix it. Markdown renders as rich text; HTML renders in the sandboxed frame, so it must be a self-contained fragment with inline CSS, no scripts and no external resources. Never write a file or open one.

Attribution

adesomberghadesombergh
View sourceMore from adesombergh →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

1023331 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3331 votes

catchup

Recovers prior coding-agent session context by running `catchup <agent> --since-compact`, which extracts a clean summary of a previous Codex, Claude Code, Antigravity, OpenCode, or Pi Agent session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", or asks to recover/summarize a previous session before continuing. Do NOT use for the current conversation, git history, or any non-agent log.

611 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →