tomascupr/sous-chef/taste

Claude Code and agent skill by tomascupr/sous-chef

Trust tier 2
  • community
  • ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Cross-model code review - Codex reviews the diff read-only, then Claude validates every finding against the code before presenting it. Use when the user asks for a review, a second opinion, or a cross-model check. Offer it for large or risky diffs; invoke it directly only when the routing policy is autonomous.

Install

npx vskill@latest install tomascupr/sous-chef/taste

Semi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard

SKILL.md

Taste - the chef tastes every plate before it leaves the kitchen

A reviewer from a different training lineage doesn't share your blind spots - cross-model review reliably catches edge-case bugs that self-review misses. But raw Codex findings over-flag, so nothing reaches the user unvalidated: the deliverable of a taste is the CONFIRMED set, written to disk where a refire can pick it up.

If codex is missing or ~/.codex/sous-chef.config.toml doesn't exist, stop and offer /sous-chef:mise (Codex silently ignores a missing profile - check with test -f, don't rely on an error).

1. Scope the diff

bash
git status --short --untracked-files=all
git diff --shortstat && git diff --shortstat --cached
  • Working-tree review (default): staged + unstaged + untracked count as reviewable.
  • Branch review (user said "review this branch/PR"): scope with git diff <base>...HEAD.
  • Post-fire review (a pre-fire baseline exists - inside /sous-chef:serve, or tasting

a fire's result on a tree that was dirty before the fire): the change under review is the delta since that baseline, never the whole tree. Scope the prompt to it - name the files the run touched, and point at the baseline patch for files that mix fired changes with prior WIP. Findings against pre-existing WIP would send a refire rewriting the user's own uncommitted work; say in the report that WIP was excluded.

  • Empty scope → say there's nothing to review; don't run Codex on nothing.
  • Large diffs review shallow. If the scope exceeds ~1,500 changed lines, split into per-area passes or agree a focus with the user - and say that's why.

2. Run the review - read-only, in the background

Mint a job dir (JOB=$(mktemp -d "$SCRATCHPAD/taste-XXXXXX"), where $SCRATCHPAD is your session scratchpad directory - substitute its absolute path). Build the review prompt from references/review-prompt.md, filling in the diff scope and any focus the user gave, then:

Bash (run_in_background: true), cwd = repo root:
env -u CODEX_API_KEY -u CODEX_ACCESS_TOKEN codex exec --profile sous-chef --sandbox read-only \
--output-last-message "$JOB/result.md" \
- < "$JOB/review-prompt.md" > "$JOB/job.log" 2>&1

Same backgrounding rule as fire: do not put &, nohup, or disown inside the command, or the harness can report false completion while Codex is still running.

--sandbox read-only overrides the profile's workspace-write - CLI flags beat profile settings. The reviewer must not be able to "fix" anything; review and implementation stay separate roles.

Tell the user the review is running, that it can take several minutes on a real diff, and where the log lives. Do not poll while it runs.

For production-critical code (auth, payments, data storage, external APIs), add the adversarial framing from the reference file - but only there. Adversarial mode over-flags small codebases with enterprise-pattern findings.

3. Validate before presenting - this step is the point

First check the run itself: if the job exited non-zero, or $JOB/result.md is missing, empty, or has no VERDICT: line, the review failed - show the user the tail of the log verbatim and offer a rerun or reviewing it yourself. Never present a missing or malformed review as "no findings - ship". (Silent review failures are a documented Codex failure mode.)

Then, for EACH finding:

  1. Open the cited file/line and check the claim against the actual code.
  2. Label it CONFIRMED (you verified the failure scenario is real) or REFUTED (state why - guard exists upstream, dead path, intentional per repo conventions, wrong about the API).
  3. Drop REFUTED findings from the main report; mention only their count - except a

refuted blocker/major, which the report names with its refutation reason: a wrong refutation on a serious finding must be visible enough for the user to overrule.

Then write the CONFIRMED set to $JOB/findings.md: a header line (verdict, scope, refuted count), then one block per finding - severity, file:line, the defect in one sentence, the quoted evidence, the prescribed fix. After the confirmed blocks, add a ## Refuted (audit trail - not refire input) section: one line per refuted finding - severity, file:line, the claim, and why it fell. A REFUTED verdict is an unreviewed judgment call; persisting the reasoning is what makes it auditable later instead of dying with the session. Add a tree anchor to the header - tree: $(git rev-parse --short HEAD)+$(idx=$(mktemp -u); GIT_INDEX_FILE=$idx git add -A && GIT_INDEX_FILE=$idx git write-tree | cut -c1-12) (the temp-index write-tree makes untracked files count - a fire's newly created files are exactly what findings cite) - so a later refire can tell whether these file:line citations still describe the tree it is about to fire into. Write the file even when clean (CONFIRMED: none) so a clean taste is distinguishable from no taste. This file is the handoff to /sous-chef:refire - validated once, carried on disk, never reconstructed from memory.

4. Report

Lead with the verdict (ship / fix first), then confirmed findings ordered by severity, each with file:line, the failure scenario in one sentence, and the fix. Close with "N findings refuted on validation" if any, plus the run's token usage from the log's closing summary - and add the run to the tab per fire's plating (same ~/.sous-chef/ledger.jsonl line, with "skill":"taste"). Name the absolute $JOB/findings.md path in the report. Do not apply fixes unless the user asked for that - the deliverable of a review is the assessment. If the user wants the confirmed findings fixed, that is /sous-chef:refire, and the findings file is its input.

Notes

  • If OpenAI's official codex plugin is installed, /codex:review also exists. /sous-chef:taste differs on purpose: pinned read-only sandbox, scale-calibrated prompt, and the mandatory validation pass that filters false positives.
  • Two models agreeing after independent review is a strong ship signal; divergence means design a discriminating test, not a longer argument.
  • Inside /sous-chef:serve, taste runs as a pipeline stage the user ordered up front - deliberate, budgeted scope, not an unbounded stop-time or pre-commit review gate.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Extension points

  • hookPre/post lifecycle hooks

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/tomascupr/sous-chef/taste/badge)](https://verified-skill.com/skills/tomascupr/sous-chef/taste)

Something wrong with this skill or its page? Tell us.