From 05fe11a4df83dd49826aef8fa5c35bc0aa6514e8 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Mon, 6 Apr 2026 23:23:07 +0300 Subject: [PATCH] fix: permissions, temp file prefix, session ID extraction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix recommended permissions: add missing Write(/tmp/codex-prompt-*), remove overbroad rm rule (cleanup is best-effort) - Rename claude-plan-* → codex-plan-* so all temp files share codex-* prefix - Extract session ID via Read tool instead of grep (no extra permission needed) - Add UUID format spec for session ID validation Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 6 ++---- SKILL.md | 14 +++++--------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 1162cda..422a6de 100644 --- a/README.md +++ b/README.md @@ -98,10 +98,8 @@ permission prompts. To avoid repeated confirmations, add these to your "Bash(git symbolic-ref*)", "Bash(git rev-parse*)", "Bash(timeout 600 codex exec *)", - "Bash(rm -f /tmp/claude-plan-*)", - "Bash(rm -f /tmp/codex-review-*)", - "Write(/tmp/claude-plan-*)", - "Write(/tmp/codex-review-*)" + "Write(/tmp/codex-plan-*)", + "Write(/tmp/codex-prompt-*)" ] } } diff --git a/SKILL.md b/SKILL.md index 7b8e7c7..945077f 100644 --- a/SKILL.md +++ b/SKILL.md @@ -75,7 +75,7 @@ Save the result as `BASE_BRANCH` — used in `git diff ${BASE_BRANCH}...HEAD` be **Plan review:** - If the plan already exists as a file (in `project/`, plan file from Plan Mode, memory, or somewhere in the repo) — use the path directly. Do NOT copy. In Claude Code Plan Mode the plan is always a file. -- If the plan is only in the conversation context (outside Plan Mode) — write via **Write tool** to `/tmp/claude-plan-${REVIEW_ID}.md`. +- If the plan is only in the conversation context (outside Plan Mode) — write via **Write tool** to `/tmp/codex-plan-${REVIEW_ID}.md`. - **Always print the plan file path for the user** so they can open it in their IDE: `Plan for review: ` @@ -314,13 +314,9 @@ timeout 600 codex exec \ - If exit code = 124 (timeout) — inform the user and offer to retry. - stderr is redirected to a temp file for session ID capture and error diagnostics. -**After launch:** extract the session ID from the stderr file: +**After launch:** extract the session ID from the stderr file using **Read tool** on `/tmp/codex-stderr-${REVIEW_ID}.txt`. Find the line `session id: ` (format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`) and extract the UUID value. -```bash -grep -o 'session id: [a-f0-9-]*' /tmp/codex-stderr-${REVIEW_ID}.txt | head -1 | sed 's/session id: //' -``` - -Save the result as `CODEX_SESSION_ID` — needed for `resume` in subsequent rounds. If grep returns empty — session ID not available, resume will not work (fallback to fresh exec). +Save the result as `CODEX_SESSION_ID` — needed for `resume` in subsequent rounds. If the session ID is not found or does not match UUID format — resume will not work (fallback to fresh exec). **Notes:** - Default model: `gpt-5.4` with `model_reasoning_effort=high`. User can override via arguments. @@ -445,8 +441,8 @@ Return to **Step 5**. **Outside Plan Mode:** ```bash -rm -f /tmp/claude-plan-${REVIEW_ID}.md /tmp/codex-review-${REVIEW_ID}.md \ - /tmp/codex-prompt-${REVIEW_ID}.md /tmp/codex-stderr-${REVIEW_ID}.txt +rm -f /tmp/codex-prompt-${REVIEW_ID}.md /tmp/codex-review-${REVIEW_ID}.md \ + /tmp/codex-stderr-${REVIEW_ID}.txt /tmp/codex-plan-${REVIEW_ID}.md ``` If the user declined rm — continue without error.