一键导入
bolta-review-approve-and-route
Approve inbox posts and route to Approved→Scheduled based on workspace governance. Handles bulk approvals with flexible scheduling.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Approve inbox posts and route to Approved→Scheduled based on workspace governance. Handles bulk approvals with flexible scheduling.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | bolta.review.approve_and_route |
| version | 2.0.0 |
| description | Approve inbox posts and route to Approved→Scheduled based on workspace governance. Handles bulk approvals with flexible scheduling. |
| category | review |
| roles_allowed | ["Editor","Admin"] |
| required_scopes | ["review:approve","workspace:read"] |
| tools_required | ["bolta.get_workspace_policy","bolta.get_my_capabilities","bolta.get_inbox_item","bolta.approve_post","bolta.schedule_post","bolta.update_post","bolta.add_comment"] |
| inputs_schema | {"type":"object","required":["workspace_id","post_ids"],"properties":{"workspace_id":{"type":"string"},"agent_id":{"type":"string","description":"Agent executing approval (optional, V2, for audit)"},"post_ids":{"type":"array","items":{"type":"string"},"description":"Posts to approve (can be bulk)"},"schedule_mode":{"type":"string","enum":["approve_only","use_suggested_time","set_fixed_time","use_agent_memory"],"default":"approve_only"},"fixed_time":{"type":"string","description":"ISO timestamp if schedule_mode is set_fixed_time"},"schedule_times":{"type":"array","items":{"type":"string"},"description":"Per-post schedule times (length must match post_ids)"}}} |
| outputs_schema | {"type":"object","properties":{"approved_ids":{"type":"array","items":{"type":"string"}},"scheduled_ids":{"type":"array","items":{"type":"string"}},"failed":{"type":"array","items":{"type":"object"}},"final_states":{"type":"object","description":"post_id → final_state map"}}} |
| organization | bolta.ai |
| author | Max Fritzhand |
Move posts from Inbox → Approved, optionally → Scheduled, based on workspace governance and scheduling preferences.
posts:schedule capability).approved or scheduled, NOT published.suggested_time in metadata, use it (unless overridden)do_not_schedule flag, skip scheduling even if requestedbolta.get_workspace_policy(workspace_id) → extract safe_modebolta.get_my_capabilities(workspace_id) → verify review:approve and posts:schedulereview:approve: fail immediately (unauthorized)post_id:
bolta.get_inbox_item(post_id) → fetch post content, current state, suggested_time, metadatainbox (can't approve what's not in inbox)suggested_time from metadata if presentbolta.approve_post(post_id)
approved stateapproved_idsbolta.add_comment(post_id, "Approved by {agent.name}")failed array with reasonIf schedule_mode == "approve_only":
approved state.final_states[post_id] = "approved"If schedule_mode == "use_suggested_time":
suggested_time in metadata:
bolta.schedule_post(post_id, suggested_time)scheduled_ids, final_states[post_id] = "scheduled"failed, post remains approvedfinal_states[post_id] = "approved"If schedule_mode == "set_fixed_time":
fixed_time parameterbolta.schedule_post(post_id, fixed_time)scheduled_idsfailed, post remains approvedIf schedule_mode == "use_agent_memory":
agent_idbolta.recall(agent_id, "best_posting_times") → get learned optimal timesbolta.schedule_post(post_id, calculated_time)scheduled_idsfailed, post remains approvedIf schedule_times array provided:
post_idsbolta.schedule_post(post_ids[i], schedule_times[i])scheduled_idsfailed, post remains approvedapproved statefailed with specific errorfailed with validation errorapprovedagent_id provided:
bolta.remember(agent_id, "last_approval_batch_size", post_ids.length)bolta.remember(agent_id, "approval_success_rate", success_count / total_count)bolta.remember(agent_id, "scheduled_times_used", schedule_times){
"approved_ids": ["uuid1", "uuid2", "uuid3"],
"scheduled_ids": ["uuid1", "uuid2"],
"failed": [
{
"post_id": "uuid3",
"reason": "Platform API error: Twitter rate limit exceeded",
"recoverable": true
}
],
"final_states": {
"uuid1": "scheduled",
"uuid2": "scheduled",
"uuid3": "approved"
}
}
When agents use this skill:
Reviewer agent reasoning:
"I triaged 8 inbox items and identified 5 as ready to approve. I'll approve them with schedule_mode=use_agent_memory to use the posting times I've learned perform best."
Key workflow:
bolta.inbox.triage → identify ready itemsbolta.review.approve_and_route → approve + schedulebolta.remember → store approval patterns{
"workspace_id": "uuid",
"post_ids": ["uuid1", "uuid2", "uuid3"],
"schedule_mode": "approve_only"
}
Result: 3 posts → approved state, human schedules them later
{
"workspace_id": "uuid",
"post_ids": ["uuid1", "uuid2", "uuid3"],
"schedule_mode": "use_suggested_time"
}
Result: 3 posts approved → scheduled using each post's suggested_time metadata
bolta.inbox.triageschedule_mode: use_agent_memoryschedule_mode: set_fixed_time, fixed_time: "2026-02-21T10:00:00Z"Activate a paused job after preview and voice validation - the explicit trust moment where user says "yes, start posting"
Modify an existing agent's configuration including persona, model tier, enabled skills, and job settings
Create and onboard a new AI agent teammate from marketplace presets with conversational discovery and preview generation.
Store and retrieve information across job runs - how agents learn and improve over time
Handle @mention interactions where users ask agents for quick feedback on posts and drafts
Bolta Skills Registry - canonical index and orchestration layer for all Bolta skills, organized by plane