Agent skill

Feature Delivery

by LanternOps in LanternOps/breeze

A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…

AGPL-3.0Auto-check passedBackend & APIs

Install Feature Delivery

skills CLI
$ npx skills add LanternOps/breeze --skill feature-delivery -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LanternOps/breeze feature-delivery --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/feature-delivery .claude/skills/feature-delivery && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
feature-delivery
GitHub stars
130
Token cost
~2.8k tokens
SKILL.md length
1,493 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
AGPL-3.0

At a glance

A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…

  • Works in 6 steps: mcpfeature-lifecycleget_feature_status… → claude agents and claude-dispatch ls —… → claude-dispatch pick — which account… → …
  • Orchestrating Breeze implementation work from this seat — dispatching waves
  • SKILL.md covers Overview, Preflight (before every…, Dispatch and Watch, plus 4 more sections
  • Calls gh, claude and git

What it does

Feature Delivery is an agent skill from LanternOps/breeze. Use when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a fixer that died or stalled, choosing the next wave, or ending a run. Triggers on "continue the run", "merge on green", "dispatch the next wave", "process the board", "what's next", a task-notification that a fixer finished or hit a rate limit, or any moment you are about to ask Todd "merge?".

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Rate limiting. The repository describes itself as: The open-source IT platform that comes with the workers. RMM + PSA in one system, with a governed AI operator built in. The licence is AGPL-3.0.

When your agent uses it

  • Orchestrating Breeze implementation work from this seat — dispatching waves
  • Issue fixes to background sessions
  • Deciding whether an open PR gets merged
  • Handling a fixer that died

Example prompts

  • “continue the run”
  • “merge on green”
  • “dispatch the next wave”
  • “/feature-delivery”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. mcpfeature-lifecycleget_feature_status for each feature: which waves are
  2. claude agents and claude-dispatch ls — other orchestrators' sessions count
  3. claude-dispatch pick — which account profile auto will choose (a breezermm,
  4. Re-verify the item is still open, unclaimed, and has no PR (`gh pr list --search
  5. Parallel fixers that add migrations each get a distinct migration slot in the
  6. Public roadmap label. The feature parent (and the issue, for a standalone

What it can do on your machine

Read from SKILL.md and the folder at commit 1f72bb7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • claude
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Feature Delivery loads about 2.8k tokens when it runs. Until then it costs about 122 tokens; SKILL.md has 1,493 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~122
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LanternOps/breeze at commit 1f72bb7, republished under its AGPL-3.0 licence (© LanternOps). 1,493 words, ~2,839 tokens.

Download SKILL.mdSave it as .claude/skills/feature-delivery/SKILL.md (or your agent's skills folder).
name
feature-delivery
description
Use when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a fixer that died or stalled, choosing the next wave, or ending a run. Triggers on "continue the run", "merge on green", "dispatch the next wave", "process the board", "what's next", a task-notification that a fixer finished or hit a rate limit, or any moment you are about to ask Todd "merge?".

Feature Delivery

Overview

One loop, two entry points. An issue enters as a fixer brief; a feature enters through feature-pipeline (spec → Gate A → plan → Gate B → register_feature) and comes out as wave sub-issues. From dispatch onward the loop is identical:

preflight → dispatch → watch → land → record → next wave

The orchestrator (this session) owns preflight, landing, and recording. Workers own the code. The merge is the orchestrator's call, not a question for Todd (Todd, 2026-09-04): once the land gate below passes, merge.

Related skills, not repeated here: feature-pipeline (intake and gates), feature-lifecycle (GitHub wave state), issue-to-pr (what a worker does), delegating-to-codex (quorum), gh-queue (backlog).

Preflight (before every dispatch batch)

  1. mcp__feature-lifecycle__get_feature_status for each feature: which waves are open, which are Todd-gated (prod preflight SQL, real hardware, ops steps). Never improvise around a Todd gate. Then read each candidate wave's section of the plan doc: its dependencies (only file-disjoint, dependency-free waves run in parallel), whether it adds a migration, and what it touches (sets the model tier).
  2. claude agents and claude-dispatch ls — other orchestrators' sessions count against the host. Cap ~8 heavy fixers machine-wide (13 sonnet fixers → load 66; 36 parallel tsc → load 48 + 6 GB swap). Load 2.5 with 3 live sessions = room for 5.
  3. claude-dispatch pick — which account profile auto will choose (a breezermm, b lanternops, c olivetech, d pressless; skips ≥80% 5h). If it prints nothing, pass --account <letter> explicitly; do not fall back to in-session Agent for waves.
  4. Re-verify the item is still open, unclaimed, and has no PR (gh pr list --search "<N> in:title"). Pools decay ~25% per 60 merges.
  5. Parallel fixers that add migrations each get a distinct migration slot in the brief (2026-10-0X-100300, 100500, 100700…); same prefix ties sort by slug. PRs that CREATE OR REPLACE a shared trigger function merge one at a time.
  6. Public roadmap label. The feature parent (and the issue, for a standalone customer-facing fix) carries p before its first wave is dispatched. See "Public roadmap (p)" below.

Dispatch

bash
claude-dispatch run --slug wave-<sub#> --prompt-file <brief.md> --agent issue-fixer --model <tier> --account auto
# issue: same, slug fix-<issue#>

Default mode is claude --bg -w <slug>: the worktree is claude-managed and --branch is ignored there, so the brief must name the branch the fixer creates — feature/<parent#>-<slug>/wave-<sub#> for a wave, fix/<issue#>-<slug> for an issue. Launch from a git repo cwd. claude-dispatch stop <slug> removes the worktree when done.

mcp__feature-lifecycle__start_wave before launching a wave. Model tier by blast radius: opus for tenancy/RLS, auth, billing, agent-shipped Go, permission gating; sonnet for everything else; never Fable for workers. Under an Opus outage, run sonnet with pre-decided design points and an abort clause (round 4, 09-03: 11/11).

A brief is self-contained: absolute paths, the plan doc path, the wave's file ownership (parallel waves must be file-disjoint), the migration slot, the exact test commands, Closes #<sub-issue> in the PR body, and these three lines verbatim:

  • "Open the PR, run /pr-review-toolkit:review-pr, post the review summary, STOP. Do not merge, do not close the issue."
  • "If the premise does not hold, ABORT and report — do not improvise."
  • "Do not start background CI pollers and never pkill -f; watching CI is the orchestrator's job."

Watch

claude-dispatch ls flips a slug to done when dispatch/<slug>.result.md lands. claude logs <id> for a live screen, claude attach <id> to steer.

EventAction
Fixer died on session limit 429Its branch and transcript persist. Resume: claude-dispatch run --resume <sid> … or SendMessage to the same agent with "resume where you stopped + remaining steps". Re-dispatch fresh only if the transcript is gone. If only the review step is missing and the code is pushed, run /pr-review-toolkit:review-pr on the PR yourself and post the summary.
Fixer idle with nothing committedIt backgrounded codex or a poller and "waited". Resume with "run it in the foreground".
PR CONFLICTING with a huge conflict countStacked on a squash-merged parent. git rebase --onto origin/main <last-parent-commit>, never hand-resolve.
Fixer reports "done"Verify: branch pushed, PR exists, commits on the right branch, review comment posted, CI actually ran. A PR based on a sibling branch gets NO CI (ci.yml triggers on main only); dispatch it: gh workflow run CI --ref <branch>.

Land — the merge gate

Merge yourself when all of these hold. No board ask, no second review round.

  1. /pr-review-toolkit:review-pr ran on the final head: read the comment and spot-check each claimed fix against the diff (gh pr diff <N>). Findings fixed or explicitly dismissed with a reason.
  2. Head-SHA CI is green by the aggregate, not by per-job colour:
    bash
    gh run list --repo LanternOps/breeze --commit $(gh pr view <N> --json headRefOid -q .headRefOid) \
      --json workflowName,conclusion -q '.[]|select(.workflowName=="CI")|.conclusion'   # must be "success"
    Cancelled ≠ green. gh pr checks and mergeStateStatus are not the signal (admin bypass makes them meaningless). Trivy exemptions apply to Security Scanning only, never to CI.
  3. Base is main (stacked PR → retarget or merge the parent first; its green was never CI).
  4. Not on the hold list.

Hold and put on the board instead when: an unresolved review finding touches tenancy/RLS, auth, billing, migrations, or agent-shipped code; the wave is marked as a Todd gate in the plan; the PR belongs to another session; or the change needs a prod preflight before it is safe on main.

Then, in order:

bash
gh pr merge <N> --repo LanternOps/breeze        # enqueues; NEVER --admin, no strategy flag

main is behind GitHub's merge queue (since 2026-09-07). A bare gh pr merge <N> enqueues the PR (the queue owns the squash strategy; --squash only prints a warning); the queue rebuilds it on top of whatever is ahead, runs the full CI Success gate under merge_group (no path filters, smoke jobs blocking), and lands it serially. --admin bypasses the queue and is what caused the 09-06/09-07 pile-ups (59 of 80 main runs cancelled, siblings CONFLICTING mid-sweep) — emergency only, and say so on the PR. If the queue run fails the PR is dequeued with a comment: fix and re-enqueue. Watch for the merge (gh pr view <N> --json state), then mcp__feature-lifecycle__complete_wave → dispatch the next unblocked wave (no need to wait for the post-merge main run yourself any more; the queue already evaluated that ref) → when every wave is merged, mcp__feature-lifecycle__close_feature with the not-verified list. Closing a p-labelled feature is what moves it to "Recently shipped" — confirm the label is still on the parent (not only on the roadmap item it came from) before closing.

Show full SKILL.md (491 more words)Show less

Public roadmap (p)

breezermm.com/roadmap/ renders exactly the LanternOps/breeze issues carrying the label p (marketing repo src/lib/roadmap.ts). The label is deliberately one character so it reads as noise on a public issue. Column is derived, not chosen:

Issue shapeColumn
roadmap + p, open, status:idea / status:consideringExploring
roadmap + p, open, status:readyPlanned
feature + p, openIn progress
feature + p, closedRecently shipped (latest 8 by close date)
enhancement only, even with pnot rendered — needs roadmap + status:* too

Grouping uses the first category:* label (ranked Security → Remote Access → Patching → … → Platform); an item with none lands in "Other areas", so every p item gets at least one category:.

Rules while delivering:

  • Tag on register. When register_feature creates the parent, add p plus a category: if the feature is something a buyer would recognise (a capability, integration, or workflow). Skip it for plumbing: RLS retrofits, redaction contracts, relay alerting, attestation, abuse detectors, CI/infra.
  • Move, don't duplicate. promote_to_feature leaves the roadmap parent open with its own p, so the same item shows in Planned and In progress. Remove p from the roadmap item when the feature parent takes it. Same when a standalone enhancement issue is superseded by a feature.
  • Wave sub-issues never get p. Only the parent renders.
  • Standalone issue fixes that are customer-facing and feature-sized get p,roadmap,status:considering,category:<area> when dispatched, and are closed by their PR as usual. Bug fixes and one-line enhancements stay unlabelled.
  • Nothing is live until the marketing site redeploys; no action needed here.
bash
gh issue edit <parent#> -R LanternOps/breeze --add-label "p,category:<area>"
gh issue edit <roadmap#> -R LanternOps/breeze --remove-label p

Record

At the end of a run, or whenever you would end a turn with open items, append ONE entry to ~/.claude/breeze-handoff/BOARD.md using the template in its README.md: what merged (PR → SHA), waves completed, what is dispatched and where, Todd gates still open, exact resume commands. Memory gets state only when it is reusable across sessions (account health, a new trap), never the procedure.

Rationalizations

ThoughtReality
"Tenancy PR, I'll add one more review to be safe"One review round per change. review-pr ran and CI is green → merge. Hold only on an unresolved finding.
"I'll ask Todd whether to merge"Todd delegated the merge. Asking costs six hours. Merge or hold per the gate.
"gh pr checks is all green"Per-job colour merged two red PRs on 08-28. Use the head-SHA CI workflow conclusion.
"Two at a time to be careful"Host cap is ~8 heavy fixers; under-dispatching wastes the day. Read the load.
"I'll use in-session Agent for the waves"Waves run as claude-dispatch --bg issue-fixers in their own worktrees and account profiles; Agent inherits one account and one context.
"The fixer died, dispatch a fresh one"Its branch and transcript persist. Resume first.
"I'll tag p in a batch later"Batch passes miss shipped items (7 closed features were unlabelled on 09-05 and never appeared in Shipped). Tag at register, move at promote.
"Fixer said done"Verify branch, PR, review comment, CI on a main-targeted PR. Subagents have reported success with uncommitted or off-branch work.

© LanternOps, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/feature-delivery of LanternOps/breeze.

Open the folder on GitHubat commit 1f72bb7

Compare with similar skills

Feature Delivery next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Feature Delivery compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Feature Delivery this skillLanternOps/breeze130—~2.8kAutomated safety check: PassAGPL-3.0
Upstash Ratelimit TSupstash/ratelimit-js2.1k1 repos~313Automated safety check: PassMIT
API Gatewayitsmostafa/aws-agent-skills1.2k1 repos~2.2kAutomated safety check: PassMIT
Add Hosted Keysimstudioai/sim30k—~3.4kAutomated safety check: PassApache-2.0
Repo2skillzhangyanxs/repo2skill246—~3.6kAutomated safety check: PassNone
Better Auth Security Best PracticesEpicenterHQ/epicenter4.8k—~896Automated safety check: PassCustom licence

Similar skills

  • Upstash Ratelimit TS

    upstash/ratelimit-js

    Official

    Lightweight guidance for using the Redis Rate Limit TypeScript SDK, including setup steps, basic usage, and pointers to advanced algorithm, features, pricing, and traffic‑protection docs.

    2.1k GitHub starsUsed in 1 repo~313 tokens
    Backend & APIsAuto-check passed
  • API Gateway

    itsmostafa/aws-agent-skills

    AWS API Gateway for REST and HTTP API management. An agent skill from itsmostafa/aws-agent-skills.

    1.2k GitHub starsUsed in 1 repo~2.2k tokens
    Backend & APIsAuto-check passed
  • Add Hosted Key

    simstudioai/sim

    Add hosted API key support to a tool so Sim provides the key (metered and billed to the workspace) when a user has not brought their own.

    30k GitHub stars~3.4k tokensUpdated today
    Backend & APIsAuto-check passed
  • Repo2skill

    zhangyanxs/repo2skill

    Convert GitHub/GitLab/Gitee repositories into comprehensive OpenCode Skills using embedded LLM calls with multiple mirrors and rate limit handling

    246 GitHub stars~3.6k tokensUpdated 7 mo ago
    Backend & APIsAuto-check passed
  • Better Auth security hardening: rate limits, secrets, CSRF, trusted origins, cookies, sessions, OAuth tokens, and audit logging.

    4.8k GitHub stars~896 tokensUpdated today
    Backend & APIsAuto-check passed
  • Dload Fetch Tool

    php-internal/dload

    Get a CLI tool — native binary or PHAR — from a GitHub release into a project folder with dload (vendor/bin/dload).

    105 GitHub stars~1.1k tokensUpdated yesterday
    Backend & APIsAuto-check passed

More from LanternOps/breeze

All 14 skills in this repo
  • Agent Info

    LanternOps/breeze

    Quick reference for the Breeze RMM Go agent architecture, commands, configuration, build process, and data flows.

    130 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check: notes
  • Agent Log Debugging

    LanternOps/breeze

    A skill your agent uses when debugging agent issues, investigating agent errors, checking agent connectivity, or reviewing agent diagnostic logs.

    130 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check: notes
  • AI Agent

    LanternOps/breeze

    Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.

    130 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Breeze Helper

    LanternOps/breeze

    Quick reference for the Breeze Helper Tauri desktop app — architecture, Rust backend commands, React frontend, config files, IPC with the Go agent, helper chat API routes, tool approval flow, and…

    130 GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • E2E Coverage

    LanternOps/breeze

    A skill your agent uses when running a broad manual/AI-driven end-to-end verification of Breeze RMM across many merged PRs or commits — "test everything since the last release", release-readiness…

    130 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Gh Queue

    LanternOps/breeze

    A skill your agent uses when reviewing, triaging, or managing the incoming GitHub backlog on the Breeze repo — PRs, Discussions, AND Issues.

    130 GitHub stars~5k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Feature Delivery

What does Feature Delivery do?

A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…. Feature Delivery is an agent skill from LanternOps/breeze. Use when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a fixer that died or stalled, choosing the next wave, or ending a run.

When should I use Feature Delivery?

Feature Delivery fits situations like: orchestrating Breeze implementation work from this seat — dispatching waves; issue fixes to background sessions; deciding whether an open PR gets merged; handling a fixer that died.

How do I install Feature Delivery in Claude Code?

Run `npx skills add LanternOps/breeze --skill feature-delivery -a claude-code`. Or copy the skill folder (.claude/skills/feature-delivery in LanternOps/breeze) into .claude/skills/feature-delivery in your project. Claude Code loads it when a task matches its description.

How do I install Feature Delivery in Codex?

Run `npx skills add LanternOps/breeze --skill feature-delivery -a codex`. Or copy the skill folder (.claude/skills/feature-delivery in LanternOps/breeze) into .agents/skills/feature-delivery in your project. Codex loads it when a task matches its description.

Can I use Feature Delivery in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LanternOps/breeze --skill feature-delivery -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/feature-delivery, .gemini/skills/feature-delivery, .github/skills/feature-delivery and .opencode/skills/feature-delivery in your project.

What does Feature Delivery need to run?

Going by SKILL.md and its folder, Feature Delivery needs the command-line tools its instructions call (gh, claude and git).

Does Feature Delivery access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Feature Delivery safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Feature Delivery use?

Feature Delivery is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Feature Delivery use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Feature Delivery?

Skills that share tags, products or a category with Feature Delivery: Upstash Ratelimit TS (upstash/ratelimit-js, 2.1k stars), API Gateway (itsmostafa/aws-agent-skills, 1.2k stars), Add Hosted Key (simstudioai/sim, 30k stars) and Repo2skill (zhangyanxs/repo2skill, 246 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Feature Delivery?

LanternOps (a GitHub organization) maintains it in LanternOps/breeze, which has 130 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.

Source: LanternOps/breeze on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.