agentsclimarketplace

Cds second opinion

Skill crown-dev-studios/skill-issue/skills/cds-second-opinion

Get a second opinion on your current conversation from a different AI model. Routes to Claude from Codex and Codex from Claude using a fresh local shell session.From its SKILL.md

Install
npx -y skills add crown-dev-studios/skill-issue --skill cds-second-opinion

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.1 KB, as published. Nobody here has run it

Second Opinion

Get a second opinion on the current conversation from a different AI model by invoking the other CLI with a pointer to this session's transcript on disk.

When to use

Invoke with /second-opinion mid-conversation when you want another model to review the current conversation's accuracy, approach, or any specific concern.

Usage

/second-opinion [optional review focus]

Examples

/second-opinion
/second-opinion is this database schema correct?
/second-opinion check the security implications
/second-opinion are there edge cases I'm missing?

Instructions

When this skill is invoked:

Step 1: Parse Arguments

If the user provided text after /second-opinion, use it as the review focus. If no arguments, the default focus is accuracy, approach, and completeness. If the user asked for the reviewer to see the reasoning/chain-of-thought, note that for Step 4.

Step 2: Identify the Current Session

The transcript must be the current thread — never guess the session from file modification times.

  • Inside Claude Code: the session ID is ${CLAUDE_SESSION_ID}.
  • Inside Codex: the session ID is ${CODEX_THREAD_ID}.

If the variable for the current environment is unavailable, stop and explain that deterministic transcript selection is not possible here.

Step 3: Resolve the Transcript Path

  • Claude Code session: ~/.claude/projects/<encoded-cwd>/<session-id>.jsonl, where <encoded-cwd> is the absolute working directory with / replaced by -. If that exact path does not exist, search ~/.claude/projects/*/<session-id>.jsonl.
  • Codex session: search ~/.codex/sessions/ (dated subdirectories) for rollout-*<session-id>*.jsonl.

Verify the file exists before proceeding; if it cannot be found, stop and report the paths checked.

Step 4: Render the Reviewer Prompt

Create a scratch directory (mktemp -d). Render reviewer.md into <scratch>/prompt.md, filling every placeholder:

  • {{REVIEWER_NAME}} — the reviewing model's CLI (Codex when running from Claude Code, Claude when running from Codex)
  • {{SOURCE_TOOL}} — Claude Code or Codex
  • {{TRANSCRIPT_PATH}} — absolute path from Step 3
  • {{REVIEW_FOCUS}} — from Step 1
  • {{OUTPUT_PATH}} — absolute path to <scratch>/review.md

By default the template tells the reviewer to skip reasoning/thinking content so the opinion stays independent; if the user explicitly asked for reasoning to be included, remove that instruction from the rendered prompt.

Step 5: Invoke the Other CLI

Run the opposite CLI in the background (a review can take several minutes):

  • From Claude Code:

    codex exec --dangerously-bypass-approvals-and-sandbox \
      --output-last-message "<scratch>/last-message.txt" \
      "$(cat "<scratch>/prompt.md")" > "<scratch>/reviewer.log" 2>&1
    
  • From Codex:

    claude --dangerously-skip-permissions -p \
      "$(cat "<scratch>/prompt.md")" > "<scratch>/reviewer.log" 2>&1
    

If the reviewer CLI is not on PATH, stop and tell the user which CLI is required.

Poll for <scratch>/review.md roughly every 30 seconds rather than blocking indefinitely. If the process is still running with no review after ~15 minutes, tell the user and let them decide whether to keep waiting — do not kill the reviewer and do not retry silently.

The run succeeded when <scratch>/review.md exists; reviewer.log is diagnostic only. If the process exits without writing review.md, fall back to the reviewer's own final message before declaring failure:

  • From Claude Code: use <scratch>/last-message.txt if it is non-empty — --output-last-message is Codex's designed handoff artifact and carries the complete final message. The non-empty check matters: codex exec has a known regression class of exiting 0 with empty output in detached contexts, so an empty file means the run failed, not that the review was empty.
  • From Codex: reviewer.log itself is the fallback — claude -p prints exactly the final message to stdout.

If the fallback is also empty, report the failure with the tail of reviewer.log — do not retry silently.

Step 6: Present the Review

Relay review.md to the user, noting which model produced it and printing the file's absolute path. The scratch directory is temporary — if the review is worth keeping, offer to copy it somewhere durable (e.g. docs/reviews/second-opinion-<date>.md, matching where cds-review-council writes its runs). Do not soften or re-adjudicate the reviewer's opinion — disagreements are signal.

How It Works

  • The harness provides the current session ID; this skill only turns it into a transcript path.
  • The reviewer is a full agent with its own file tools: it reads the on-disk transcript itself (unaffected by context compaction) and selectively, instead of receiving a pre-truncated export.
  • There is no companion CLI or build step. The only subprocess is the other vendor's CLI, spawned directly.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.