Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/boltaai-bolta-review-queue
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, data, writing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/bolta-review-queue
What's inside
- Skill name
bolta-review-queue- Description
- Work the Bolta review and approval queues. Use this skill when the user asks "what needs my review", "show the approval queue", "approve pending posts", "review my content", "what's waiting for approval", "clear my review queue", "anything to approve", "approve the agent drafts", "any replies to send", "send that reply", or wants to triage, approve, reject, edit-and-send, or push content into review. Handles ALL inbox sources: the standard review queue, the agent-produced recurring queue, hunter reply drafts (edit + send), and agent reports. This skill is the standing inbox — triage whatever is already waiting. To trigger a run and then review its output in one loop, run the routine first with bolta-setup's routine flow. Not for writing new content (use bolta-draft-post) or reading analytics (use bolta-analytics-report).
- License
- MIT
- Instructions
- 147 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Bolta Review Queue
Triage and clear what's waiting for a human decision. **Prefer `list-inbox-items`** —
the unified inbox that returns everything pending review in one call (each item is
labeled with its `source`: `team`, `recurring`, `hunter`, or `report`). Hunter rows
carry the mention/lead context they respond to and are fully actionable here —
edit the draft (`update-hunter-reply`) and send it (`send-hunter-reply`). Report rows
carry the agent report and its download link. Pass `agent_id` to scope the inbox to
one agent's output. The two per-queue tools remain available when you need one queue
in isolation: the **standard review queue** (`list-reviews`) and the **agent-produced
recurring queue** (`list-recurring-reviews`). Show what's waiting and act — approving,
rejecting, or sending each item, with rejection reasons that feed Bolta's voice
learning.
## When to use
Any time the user wants to see, triage, or clear pending approvals — or to push their own
drafts into review for someone else to approve. If the user wants to *trigger a run first*
and then review what it produced, kick the routine off with `run-routine-now` and come back
here — this skill works the queue as it stands.
## Tools this skill uses
| Tool | Why |
|-|-|
| `list-workspaces` | Resolve `workspace_id` if unknown. |
| `list-inbox-items` | **Preferred**: unified inbox of everything pending (team + recurring + hunter + report), filterable by `source`/`status`, scopable to one agent via `agent_id`. |
| `list-reviews` | Review queue — **defaults to BOTH workflows** (team + recurring). Pass `workflow_type="team"` for the standard queue in isolation. |
| `list-recurring-reviews` | Automation-produced pending drafts (the routine → human queue); scope to one producer via `agent_creator_id` (the id is echoed on inbox rows). |
| `get-post` | Optional — pull full detail for a queued item before deciding. |
| `approve-post` | Approve a standard-queue post (optionally schedule at approval). Echo the row's `content_fingerprint` as `expected_fingerprint`. |
| `approve-recurring-review` | Approve an agent draft (optionally schedule at suggested time). |
| `reject-recurring-review` | Reject an agent draft with a reason (feeds voice learning). |
| `update-hunter-reply` | Edit a hunter reply draft without sending it (already-sent replies 409). |
| `send-hunter-reply` | Approve + send a hunter reply; optional `content` overrides the draft in the same call. Double-send prevented server-side. |
| `submit-for-review` | Push the user's own drafts into the review queue. |
## Prerequisites
- `workspace_id` — resolve once via `list-workspaces`, reuse for every call. Auth is automatic
via the Bolta connector's OAuth grant — never ask for an API key. Default new content to
Draft; confirm before publish/delete.
- Approving/rejecting requires an **owner/admin/creator** role (viewers are read-only;
workspace roles are owner/admin/creator/viewer). If a call returns a permission error,
run `get-my-capabilities` and explain the missing role plainly rather than retrying.
## Workflow
### 1. Resolve the workspace
Call `list-workspaces` and use the active workspace's `id`. Never guess a UUID.
### 2. Pull the inbox
Prefer one call: `list-inbox-items(workspace_id)` — the unified inbox. Each item carries a
`source` (`team`, `recurring`, `hunter`, `report`); filter with `source`/`status` when asked
for one slice, and pass `agent_id` when the user asks about ONE agent's output ("what did
Hunter produce that needs me?"). Fall back to the per-queue tools only when you need
queue-specific filters:
- `list-reviews(workspace_id, workflow_type="team")` — standard queue (`reviewer_id` filter
also available). **Without `workflow_type`, list-reviews returns BOTH workflows** (team +
recurring), so calling it bare alongside `list-recurring-reviews` double-counts the agent
drafts. Always pass `workflow_type="team"` when segmenting the two queues.
- `list-recurring-reviews(workspace_id)` — agent drafts (`status`, `template_id` filters;
pass `agent_creator_id` — the producer id echoed on the inbox row — to triage one
producer's drafts).
Present a single combined summary: how many from each source, and a one-line preview per item
(content snippet, target account/platform, for agent items the suggested schedule time, and
for hunter items the mention/lead being replied to). For `report` items, surface the report
summary and its download link — reports are read-and-download, not approve/reject. Make clear
which source each item belongs to, since they're actioned through different tools.
Two extra fields on team rows matter:
- **`workflow_run_id`** — items sharing one came from the same run; group them as a batch
("3 drafts from your launch routine"). For the run's overall status, use
`list-routine-runs` on the routine that produced them.
- **Status `autonomous`** — the post was **scheduled by the autonomy policy, not approved by
a human**. Never describe an autonomous row as human-approved; say it was auto-scheduled
under the workspace's autonomy settings.
### 3. Inspect (optional)
For any item the user wants to see in full before deciding, call `get-post(post_id)` for the
complete content, media, and target accounts. Do this when a snippet isn't enough to judge.
### 4. Act on each item
- **Standard-queue item** → `approve-post(workspace_id, post_id)`. **Always pass the item's
`content_fingerprint` (from the inbox/workflow-run read) as `expected_fingerprint`** — it
guarantees you approve exactly the revision the user just saw, not whatever the post
contains now. Optionally pass `schedule_mode` / `fixed_time` to schedule it on approval,
and `comments` for approver notes.
- **Agent (recurring) item, approve** → `approve-recurring-review(review_id)`. Pass
`approveWithSchedule` + `useSuggestedTime` to schedule at the agent's suggested time, and
`approvalComments` for notes.
- **Agent (recurring) item, reject** → `reject-recurring-review(review_id, rejectionReason, rejectionCategories)`. ALWAYS also pass `rejectionCategories` when the objection fits a code — structured categories train the voice far better than free text. Valid codes: too_casual, too_formal, wrong_tone, off_brand, too_long, too_short, wrong_format, factual_error, spelling_grammar, missing_cta, wrong_cta, wrong_emoji, wrong_hashtag, not_engaging, platform_mismatch, too_salesy, off_topic, repetitive, other (anything else is silently dropped).
Always include a concrete reason — rejections and edits are what teach Bolta the brand's
voice, so a specific reason ("too hypey", "wrong CTA") improves future drafts more than a
bare reject.
- **Hunter reply draft** (source=`hunter`; `reply_id` from the inbox row) → show the draft
alongside the mention/lead it responds to, then:
- Send as-is → `send-hunter-reply(workspace_id, reply_id)`.
- Send with a tweak → `send-hunter-reply(workspace_id, reply_id, content=<revised text>)` —
one call edits and sends.
- Edit but hold → `update-hunter-reply(workspace_id, reply_id, content)` (only unsent drafts;
already-sent replies 409). Confirm the final text with the user before sending — replies go
out publicly on the platform. Double-send is prevented server-side, so a retry is safe.
- **Report item** (source=`report`) → nothing to approve; present the summary and download link.
Approving finalizes content toward publishing. Confirm the batch with the user before mass
approvals, and never publish outside these approve paths without an explicit ask.
### 5. Push drafts into review (when asked)
If the user wants their own drafts routed for someone else to approve, call
`submit-for-review(workspace_id, post_ids, note)` with the draft ids and an optional note.
This lands them in the standard queue.
### 6. Report
Summarize what was approved, scheduled, rejected (with reasons), and what remains in each
queue. Note that rejection reasons feed the voice-learning loop.
## Failure handling
- `approve-post` returns **409 `stale_review`** → the post changed (content, media,
destination, or scheduled time) after the user last saw it. **NEVER blindly retry** — the
409 deliberately carries no fingerprint, so a blind retry cannot succeed. Recovery flow:
re-read the item (`list-inbox-items` or `get-post`), SHOW the user the current content,
get a fresh explicit decision, then approveFrom boltaai/bolta-skills, MIT.
More from boltaai/bolta-skills
- 0.557score
bolta-platform-tailoring
boltaai
Set per-platform options on a Bolta post — polls, flair, titles, privacy, boards.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-publishing
boltaai
Write, schedule and publish the brand's own social content — one post or many, one platform or several.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-setup
boltaai
Get a Bolta workspace from zero to automation-ready, and recover from setup/entitlement errors.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
lucia-test
boltaai
The end-to-end acceptance run: understand the brand, inspect its presence, publish something useful, discover third-party conversations, reply to them, work…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
analytics-review
boltaai
Read what actually happened — reach, engagement, follower movement, which posts worked — and say what to do about it.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
reddit-engagement
boltaai
Find Reddit threads this brand can genuinely help with, read them, draft native replies, publish them after approval, and verify the canonical URL.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-inbox
boltaai
Work the inbound side — comments and mentions on the brand's own content across every connected platform — and reply to them.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
cross-platform-engagement
boltaai
Run one outbound engagement pass across Threads, Bluesky, Mastodon, X and LinkedIn — discover conversations where discovery exists, read them, draft native…
SkillBFreshness: B★ 2Claude Code +9 - 0.548score
wordpress-blog
boltaai
Research, write, visually art-direct, QA, and publish a genuinely high-quality long-form SEO article to the WordPress account connected through Bolta.
SkillBFreshness: B★ 2Claude Code +9 - 0.512score
brand-voice-enforce
boltaai
Transform and produce content in the brand's established voice.
SkillCFreshness: C★ 2Claude Code +9 - 0.512score
brand-voice-generate
boltaai
Synthesize a discovery report into a finished, enforceable Bolta Brand Voice Guideline.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
bolta-winners-to-ads
boltaai
Turn a brand's best organic posts into voice-true Meta ad creative.
SkillCFreshness: C★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 1, 2026 (1 month ago)
- Last release
- Feb 16, 2026 (8 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/boltaai/bolta-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from boltaai
- 0.557score
social-publishing
boltaai
Write, schedule and publish the brand's own social content — one post or many, one platform or several.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
reddit-engagement
boltaai
Find Reddit threads this brand can genuinely help with, read them, draft native replies, publish them after approval, and verify the canonical URL.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
lucia-test
boltaai
The end-to-end acceptance run: understand the brand, inspect its presence, publish something useful, discover third-party conversations, reply to them, work…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
analytics-review
boltaai
Read what actually happened — reach, engagement, follower movement, which posts worked — and say what to do about it.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-setup
boltaai
Get a Bolta workspace from zero to automation-ready, and recover from setup/entitlement errors.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-platform-tailoring
boltaai
Set per-platform options on a Bolta post — polls, flair, titles, privacy, boards.
SkillBFreshness: B★ 2Claude Code +9
Cite this page
bolta-review-queue skill. Agent Mart. https://agentmart.dev/skills/boltaai-bolta-review-queue (last updated 2026-10-24)