codex-plan-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited codex-plan-review (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Run qq scripts as${CLAUDE_PLUGIN_ROOT}/bin/<name>: they are not on PATH, so a bareplan-review.shexits 127.
Respond in the user's preferred language (detect from their recent messages, or fall back to the language setting in CLAUDE.md).
Workflow: take--workflow <name>from$ARGUMENTSif present, else runqq-config.py field workflow. Onprototype-loop, run one round only and verify the findings yourself (shared/prototype-loop.md§Plan), then hand off to/qq:execute; onheavy-review(the default), follow this file as written.
Arguments: $ARGUMENTS
Try in order of priority:
Docs/ or similar), use the most recent oneDocs/qq/<branch-name>/tmp-review-spec_<YYYYMMDD-HHmm>.md, timestamped). Get branch name with: git branch --show-current | tr '/' '_'ls -t Docs/**/*.md | grep -v '/qq/' | grep -vE '(_review|-review_[^/]*)\.md$' | head -1 to find the most recently modified design document (excluding qq-generated artifacts and review reports: <doc>_review.md, <doc>_claude_review.md, codex-code-review_<timestamp>.md, including ones older qq versions left in Docs/<branch>/)Loops automatically without prompting the user each round. Stop when either is met:
[Critical] issues in the Codex review resultEach round:
#### 2a. Send to Codex for Review Run in the background (Bash tool, run_in_background: true):
${CLAUDE_PLUGIN_ROOT}/bin/plan-review.sh <file_path>The script calls codex exec --sandbox read-only and writes results to stdout and <filename>_review.md (same directory as the document). It always points Codex at the project root's CLAUDE.md and adds a provenance check, even with a custom prompt; don't repeat them in your round-2 prompt. A review takes 5-10 minutes and you are notified when it finishes; meanwhile you can keep talking with the user.
Round 2 onward: If the previous round had findings marked as over-engineered, append a custom prompt with context:
${CLAUDE_PLUGIN_ROOT}/bin/plan-review.sh <file_path> "Review the updated document using the same review criteria as the first round (architecture, correctness, completeness, feasibility). Additional context: the following suggestions from the previous round were judged as over-engineered and replaced with simpler alternatives: <list items and rationale>. Do not re-suggest more complex approaches unless the simpler version introduces a real defect. Grade by severity: [Critical] [Moderate] [Suggestion]."#### 2b. Read and Summarize Review Results Read <filename>_review.md and summarize the findings for the user by severity ([Critical], [Moderate], [Suggestion]).
#### 2c. Independent Verification Verify every critical and moderate finding with a subagent, not with a quick look of your own.
For a Provenance: finding, first check this conversation yourself for the user's words on each item: note the ones you find (quote them into the document in 2d), and send the verifier only the items still unbacked. If that leaves no finding to verify, run the Clean Up Gate command (step 3) before 2d: a gate expecting 0 verifiers blocks Docs/*.md edits.
Dispatch the verifiers with the Agent tool (subagent_type: "general-purpose", model: "opus"). By default hand all of this round's findings to one verifier, which gives a verdict for each; split them into a few groups verified in parallel only when there are too many for one agent to check properly. Each prompt must include the original findings (verbatim), relevant file paths, and the instructions from ../../shared/verification-prompt.md.
The review script leaves a gate: Edit/Write on .cs and Docs/*.md files stays blocked until you write the number of verifiers to it and that many have returned. Write it right after dispatching them:
source "${CLAUDE_PLUGIN_ROOT}/scripts/platform/detect.sh"
if qq_session_id && [[ -f "$QQ_TEMP_DIR/review-gate-$QQ_SESSION_ID" ]]; then
IFS=: read -r ts count _ < "$QQ_TEMP_DIR/review-gate-$QQ_SESSION_ID"
echo "${ts}:${count}:N" > "$QQ_TEMP_DIR/review-gate-$QQ_SESSION_ID"
fi(N = the number of verification subagents dispatched. The gate file is per session; if this session has none, there is nothing to write.)
Consolidation: After all subagents return, present each finding's verdict and evidence (citing file paths and key code) to the user.
#### 2d. Revise the Design Document
shared/user-decisions.md. Quote the user's words if they exist; if the user wrote the document themselves, reject the finding; otherwise put the item on the "Needs the user's decision" list and write the body with the normal rule (no protection, no added restriction, a cut item back in scope). Never mark it as your own call. Moved items count as fixed#### 2e. Decide Whether to Continue
[Critical] issues that were confirmed and fixed → automatically start the next round (back to 2a)[Critical] this round was rejected and nothing was fixed → end the loop and report the rejections with their reasons[Critical] issues → output "Review passed" and end the loopOutput === Round N/5 === at the start of each round.
After the review loop ends (for any reason), clean up the gate marker:
source "${CLAUDE_PLUGIN_ROOT}/scripts/platform/detect.sh"
if qq_session_id; then rm -f "$QQ_TEMP_DIR/review-gate-$QQ_SESSION_ID"; fiAfter the review loop ends, recommend the next step, and list every "Needs the user's decision" entry this run added (also in --auto mode; don't wait for answers):
/qq:execute <path> to start implementing?"/qq:execute <path>, or another review round?"`--auto` mode: run qq-execute-checkpoint.py pipeline-advance --project . --completed-skill "/qq:codex-plan-review" --next-skill "/qq:execute", then invoke /qq:execute <path> --auto.
plan-review.sh needs a configured Codex CLI.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.