一键导入
check-inbox
Check the project inbox for new agent messages and process them. Single-pass processor — use recurring polling for continuous monitoring.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Check the project inbox for new agent messages and process them. Single-pass processor — use recurring polling for continuous monitoring.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Run the author side of the review loop: request review, poll for feedback, optionally delegate triage or isolated fixes to Codex subagents, address findings, and report progress through inbox plus PR comments.
Run the author side of the review loop — address findings and drive to LGTM. Single-pass by default (exits after sending messages); use --poll for in-session polling. Hybrid split — leader handles Bash I/O, subagent does code fixes only.
Run the reviewer side of the review loop: gather PR context, optionally delegate read-only review analysis to a Codex subagent, write findings packets, and send feedback or LGTM.
Run the reviewer side of the review loop — review PR diffs, produce findings, and evaluate quality gate. Single-pass by default (exits after verdict); use --poll for in-session round 2 polling. Hybrid split — leader handles Bash I/O, subagent does analysis only.
Synthesize org-memory — fold new events into recent.md, promote cross-repo patterns to decisions.md and rules.md, and audit for staleness, cross-file conflicts, and drift. Invoke whenever the user asks "synthesize org-memory", "fold events", "is recent.md stale", "audit org-memory", or any phrasing like "did we synthesize org-memory" — even if they do not explicitly type the slash command.
Synthesize org-memory — fold new events into recent.md, promote cross-repo patterns to decisions.md and rules.md, and audit for staleness, cross-file conflicts, and drift. Invoke whenever the user asks "synthesize org-memory", "fold events", "is recent.md stale", "audit org-memory", or any phrasing like "did we synthesize org-memory" — even if they don't explicitly type the slash command.
| name | check-inbox |
| description | Check the project inbox for new agent messages and process them. Single-pass processor — use recurring polling for continuous monitoring. |
| runtime | claude-code |
Check a project's agent inbox for new messages and automatically act on them based on message type. Single-pass: processes all pending messages and exits.
/check-inbox [--project <name>] [--autonomous]
--project <name> — Which project inbox to check. Auto-detected from .oacp project marker if omitted.--autonomous — Skip human confirmation for review lifecycle messages (review_request, review_feedback, review_lgtm, review_addressed) and informational completions (handoff_complete). Auto-dispatches to reviewer/author skills and deletes processed messages. Task requests and questions still require human confirmation.For continuous inbox monitoring, use a recurring scheduler instead of running /check-inbox manually. In Claude Code:
/loop 2m /check-inbox
This fires every 2 minutes when the REPL is idle.
When the user runs /check-inbox, do the following:
Extract from the user's command:
PROJECT — optional --project flag (auto-detected in step 2 if omitted)AUTONOMOUS — optional --autonomous flagSet AGENT_NAME to the current agent's identity (e.g., "claude").
If --project was provided, use it directly. Otherwise auto-detect from the workspace config:
PROJECT=$(python3 -c "import json; print(json.load(open('.oacp'))['project_name'])" 2>/dev/null || echo "")
If empty, ask the user which project to watch.
Set the inbox path:
INBOX_DIR="${OACP_HOME}/projects/${PROJECT}/agents/${AGENT_NAME}/inbox"
Verify the inbox directory exists. If not, error with: "Inbox not found at ${INBOX_DIR}. Check project name."
List YAML files in the inbox and process each one.
Note: The inbox directory is outside the project working directory. Ensure your runtime has read/write access to
$OACP_HOME.
List files:
command ls -1 "${INBOX_DIR}/" 2>/dev/null | command grep '\.yaml$' | sort
If none found, report "Inbox empty." and stop
For each file:
a. Read the YAML file
b. Extract: id, from, type, priority, subject, body, related_pr, parent_message_id
c. Apply the auto-execute rules in Step 4
After processing all messages, report a summary:
Processed <N> messages from <PROJECT> inbox.
<type>: <count> (list actions taken)
Shell compatibility: Avoid
ls dir/*.yaml— some shells (zsh) raise errors when no files match the glob. Pipe throughgrepinstead. Usecommand lsto bypass shell aliases. Always use the-1flag for single-column output.
Act on each message based on its type field. Always tell the user what action you're taking before executing it.
| Message type | Action |
|---|---|
notification | Summarize to the user. Delete the message file from inbox. |
task_request | Evaluate the scope. If small (<5 min estimated work): execute immediately and reply with a notification. If large: ask the user before proceeding. Delete after processing. |
question | Answer the question and send a reply (type: notification, referencing parent_message_id). Delete after processing. |
review_request | Tell the user a review was requested. Trigger /review-loop-reviewer for the referenced PR. Delete after processing. |
review_feedback | Tell the user feedback was received. Trigger /review-loop-author to address findings. Delete after processing. |
review_lgtm | Report LGTM to the user. Delete from inbox. |
review_addressed | Informational — feedback was addressed. Summarize to user (commit SHA, changes summary, round). Delete after processing. |
handoff | Read context from the message body. Send a handoff_complete reply. Delete after processing. |
handoff_complete | Handoff target completed. Summarize to user. Delete after processing. |
| Unknown type | Report the full message to the user and ask how to handle it. Do NOT delete. |
Deleting messages — remove the file from the inbox directory:
rm "${INBOX_DIR}/<filename>"
Sending replies — use the OACP send script:
python3 ${OACP_HOME}/scripts/send_inbox_message.py ${PROJECT} \
--from ${AGENT_NAME} --to <original_sender> --type notification \
--subject "Re: <original_subject>" \
--body "<reply_body>" \
--parent-message-id <original_message_id> \
--oacp-dir ${OACP_HOME}
Post-send verification: After sending, verify the file landed in the recipient's inbox. The send script can report success (writing the outbox copy) while the inbox write silently fails.
task_request with large scope (>5 min estimated work): ask the user before proceedingreview_request / review_feedback: confirm with the user before triggering review-loop skills, since they spawn subagents — unless --autonomous is active, in which case auto-dispatch without confirmation${AGENT_NAME}'s inbox--autonomous safety boundary: even in autonomous mode, task_request and question types always require human confirmation. Only review lifecycle messages, informational completions, and notifications are auto-dispatchedprocessed/ subdirectory — just delete them