Skip to content
Back to skills

Claude Review

ASecurity

Use Claude as an independent reviewer for Shannon issue designs, code diffs, experiment results, and architectural decisions. The review is advisory. Codex remains responsible for deciding whether Claude's feedback is correct, acting on valid findings, and explaining any rejected findings. Do not rely on Claude session memory alone. Session IDs are useful for grouping related reviews and may help continuity, but every important review prompt must include the essential issue, diff, log, and qu...

  • 11 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
toolspythongoshellbashcode-reviewgitapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add shannonshell/shannon --skill claude-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Claude Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Claude Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shannonshell-claude-review/badge)](https://www.skillsdirectory.com/skills/shannonshell-claude-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: claude-review
description:
  "Ask Claude to review Shannon work. Use when the user requests Claude review
  or during large/risky experiments before acting on conclusions."
---

# Claude Review

Use Claude as an independent reviewer for Shannon issue designs, code diffs,
experiment results, and architectural decisions.

The review is advisory. Codex remains responsible for deciding whether Claude's
feedback is correct, acting on valid findings, and explaining any rejected
findings.

Do not rely on Claude session memory alone. Session IDs are useful for grouping
related reviews and may help continuity, but every important review prompt must
include the essential issue, diff, log, and question context explicitly.

## When This Skill Applies

Use this skill when:

- the user asks for "claude review", "ask Claude", or similar;
- an experiment is large, risky, or touches the Nushell/Reedline fork surface;
- an experiment has already failed once and the next design needs review;
- a code change affects architecture, shell state synchronization, process
  handling, signal handling, config loading, terminal behavior, or persistent
  state;
- before closing an issue after a complex series of experiments.

## Review Timeout

Every Claude review has a hard timeout of 15 minutes.

Use the helper script in this skill instead of calling `claude` directly. The
script enforces the timeout with Python's subprocess API and terminates Claude's
process group on timeout because macOS does not provide a portable `timeout`
command by default.

## Files and Logs

All review state and output lives under:

```text
logs/claude-review/
```

The helper script maintains:

| Path                                         | Purpose                         |
| -------------------------------------------- | ------------------------------- |
| `logs/claude-review/current-session-id`      | reusable Claude session UUID    |
| `logs/claude-review/<timestamp>-prompt.md`   | exact prompt sent to Claude     |
| `logs/claude-review/<timestamp>-stdout.json` | raw Claude JSON output          |
| `logs/claude-review/<timestamp>-stderr.log`  | Claude stderr / timeout details |

These logs are intentionally under `logs/`, which is gitignored. They may still
contain sensitive diffs or local paths. Keep context narrow and do not write
secrets into review prompts.

## Process

1. **Prepare the review context.** Include only the context Claude needs. Prefer
   concrete artifacts:
   - the user's current request;
   - the issue file and experiment section;
   - relevant `git diff` or `git diff --staged`;
   - test commands and observed outputs;
   - screenshots/log paths when those are part of the evidence.

2. **Ask specific questions.** The prompt should tell Claude what kind of review
   to perform. Examples:
   - "Audit this experiment design for contradictions, missing verification, and
     architectural risks."
   - "Review this diff for correctness, regressions, and missing tests."
   - "Given these logs, identify what failed and what experiment should come
     next."

3. **Run the helper script.**

   ```bash
   python3 skills/claude-review/scripts/claude_review.py \
     --context issues/0776-pdf-not-loading/README.md \
     "Audit Experiment 4. Focus on whether the scope is right and whether the verification would prove the result."
   ```

   For a staged diff review:

   ```bash
   git diff --staged | python3 skills/claude-review/scripts/claude_review.py \
     "Review this staged diff for bugs, regressions, and missing tests."
   ```

   For a fresh thread:

   ```bash
   python3 skills/claude-review/scripts/claude_review.py --new-session \
     "Start a new review thread. Reply with the review session status."
   ```

4. **Read the result.** The helper prints:
   - the session ID;
   - the prompt path;
   - the raw JSON output path;
   - the extracted Claude text if it can parse it.

5. **Act on valid findings.** If Claude finds a real issue and the user asked
   for implementation, fix it. If Claude is wrong or speculative, do not make
   the change; briefly document why.

6. **Report high-signal results.** Summarize Claude's actionable findings to the
   user. Do not paste long raw output unless the user asks for it.

## Session Handling

The helper script uses `claude -p --session-id <uuid>` for a new review thread
and `claude -p --resume <uuid>` for follow-up turns.

**Default policy: maintain one continuous review session.** The helper resumes
the stored session id on every run. Keep doing that — review after review goes
into the same thread.

- **Do NOT pass `--new-session` on your own judgment.** Not for a "different
  topic," not for a new experiment, not for a new issue. The user decides when
  to start a new thread. Only pass `--new-session` when the user explicitly asks
  for a fresh/new review session.
- If `logs/claude-review/current-session-id` exists, the script resumes it. If
  no session exists, the script creates a UUID and stores it.
- **Automatic self-heal.** If resuming the stored session fails because the id
  stopped working (expired/unknown), the helper retries once with a fresh UUID,
  adopts it, and prints a `note: stored session could not be resumed...` line.
  You do not need to do anything — continuity is restored automatically going
  forward.
- `--new-session` (explicit user request only) creates and stores a new UUID.
- Always include the essential context again on every review. The smoke test
  proved the CLI can resume the same session ID, but model-visible history
  should not be treated as guaranteed.

## Claude Command Shape

The helper invokes Claude like this:

```bash
claude -p \
  --output-format json \
  --session-id <uuid> \
  --add-dir /Users/astrohacker/dev/shannon \
  --permission-mode dontAsk \
  --tools "Read,Grep,Glob" \
  "<prompt>"
```

For follow-up turns, the helper replaces `--session-id <uuid>` with
`--resume <uuid>`.

The default tool set is review-oriented. Claude may inspect files using
Read/Grep/Glob. Bash is disabled by default because Bash is not read-only when
paired with `--permission-mode dontAsk`.

If a review truly needs Bash, opt in explicitly and include the reason in the
user-facing summary:

```bash
python3 skills/claude-review/scripts/claude_review.py --allow-bash ...
```

If a review should use only supplied context, run with:

```bash
python3 skills/claude-review/scripts/claude_review.py --no-tools ...
```

## Prompt Template

Use this structure for substantial reviews:

```text
You are reviewing Shannon work. Take a code-review stance: findings first,
ordered by severity, with file/line references where possible.

Task:
<what Claude should review>

Context:
<issue, experiment, diff, logs, screenshots, test output>

Questions:
1. Is the design/implementation correct?
2. What are the concrete risks or missed cases?
3. What should be changed before implementation/commit?
4. If nothing should change, say that clearly.
```

## Automatic Use in Large Experiments

For large experiments, run Claude review at one or both checkpoints:

1. **After designing the experiment, before implementation.** Ask Claude to
   audit the design for contradictions, missing verification, and scope creep.

2. **After implementation, before final result or commit.** Ask Claude to review
   the diff, logs, and result language.

Do not block forever waiting for Claude. The 15-minute timeout is the maximum.
If Claude times out, record that and continue with normal engineering judgment.

## Smoke Test

After creating or changing this skill, test the helper without giving Claude
repo-changing authority:

```bash
python3 skills/claude-review/scripts/claude_review.py --new-session --no-tools \
  "Smoke test: reply with OK and one sentence describing what session continuity means."
```

Then run a second call without `--new-session`:

```bash
python3 skills/claude-review/scripts/claude_review.py --no-tools \
  "In one sentence, say whether this is the same review session."
```

Both outputs should be saved under `logs/claude-review/`. The printed
`session_id` should match between the two runs. The second answer does not need
to prove memory of the first prompt; the important smoke-test properties are
exit code 0, saved artifacts, and stable session ID reuse.

Files in this skill

  • SKILL.md8.1 KB
  • scripts/claude_review.py8.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…