thermos

Reviews your code for correctness and how easy it is to maintain, then combines the results.

Installation
Run `npx skills add "https://github.com/christofferbergj/agent-skills" --skill "thermos"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md
---
name: thermos
description: "Run parallel correctness and maintainability reviews of a change, then combine the findings. Use only when the user names /thermos or picks an option naming it, not for a general review request."
---

# Thermos

Run two independent reviews of the same changes and synthesize their findings, or only the maintainability review when /review-loop has already covered correctness. This workflow explicitly delegates to a subagent per review when the host supports them.

## Prepare

1. Resolve the review scope from the user's branch, PR, commit range, or working changes. Read repository guidance and record the repository path, base and head revisions, and included working changes. For a branch review, use the merge-base with the requested or verified base branch; do not assume `main`. Include untracked files only when they belong to the requested scope. Preparation is complete when every reviewer can identify the same changes.
2. Check whether /review-loop already covered correctness. When its last round, in this session or quoted in the PR, reads Clean at the head you resolved, and its round 1 completed a /thermo-nuclear-review pass on this scope, either its same-model correctness critic or its Codex correctness pass, run only the maintainability reviewer, unless the user asked for both. That loop already applied the correctness rubric, and its later rounds reviewed every fix. A commit after that head, or a wider scope, needs both reviewers. The check is complete when the reviewers to run are known: both, or maintainability alone with the covering verdict line and its head.
3. Resolve the installed rubric for each reviewer step 2 kept: `/thermo-nuclear-review` for correctness and `/thermo-nuclear-code-quality-review` for maintainability. Each kept rubric is a required dependency. Supply each reviewer its rubric's absolute `SKILL.md` path and have it read that file, or include the full rubric text when child contexts cannot access the skill. Child agents may not inherit skill discovery or parent context. If a dependency is missing, identify it and stop before presenting a Thermos verdict. Resolution is complete when each reviewer has its rubric's absolute path or full text.
4. Gather the diff, changed-file list, relevant full-file contents, and known constraints. Give every reviewer the same scope and evidence, with repository access for tracing callers and related code. For a large diff, provide accessible artifact paths instead of truncated excerpts. List the repository guidance files already read and the rules from them that bear on the scope, so reviewers read further guidance only for paths that list does not cover. Finish preparation when the evidence and guidance list are accessible to every reviewer.

## Delegate

Choose the branch matching the tools exposed in this session. Use the actual tool schema; tool names and parameters can vary between host versions. Use built-in agents without requiring custom agent registration, a plugin, a particular model, or an agent team.

### Codex

Use the native `spawn_agent` tool, possibly exposed under a collaboration namespace, to launch the reviewers. Set `fork_turns` to `"none"`, or `fork_context` to false in a schema that has it instead, so each reviewer starts with only its rubric and scope: a full-history fork, `spawn_agent`'s default, inherits the parent's context, model, and effort and accepts no overrides. Put the rubric and scope in each task message. Use separate task names when supported. Launch them all before waiting for any. Collect every result with the host's native wait or completion mechanism, then close the completed agents if that host exposes a close tool.

### Claude Code

Use the native `Agent` tool, called `Task` in older versions, with the built-in `subagent_type: "general-purpose"`. Submit the calls together with `run_in_background: true` when supported. Otherwise use the tool's supported concurrent dispatch. Omit model overrides to inherit the session's choice. Collect every result through completion notifications or the tool's returned output/task handles before synthesizing.

### Unavailable delegation

If subagent tools are unavailable, blocked, or lack a slot for each reviewer, report the limitation. Complete each assigned rubric as a separate sequential pass when permitted, and label the result as sequential without independent subagents. If one dispatched reviewer fails, retry that reviewer once when the failure is recoverable; otherwise report the missing pass or complete it locally with that limitation stated. Never claim two independent reviews when only one completed.

## Reviewer tasks

Assign these tasks, only Maintainability when Prepare step 2 found correctness covered, supplying the prepared scope and evidence with each:

- **Correctness and security:** Invoke `/thermo-nuclear-review` using the supplied rubric. Trace bugs, breaking behavior, security risks, developer-experience regressions, and feature-gate leaks introduced by the diff. Finish the independent audit before checking existing PR discussion when the rubric calls for it.
- **Maintainability:** Invoke `/thermo-nuclear-code-quality-review` using the supplied rubric. Evaluate structural simplification, branching complexity, abstractions, type and ownership boundaries, canonical helpers, and file growth introduced by the diff.

Each reviewer works directly without further delegation, edits, commits, or posting comments. Read surrounding code to verify impact, but report only issues introduced by the scoped changes. Return prioritized findings with file and line references, evidence, impact, and an actionable remedy. Distinguish verified findings from limitations that prevented verification. If no supported findings remain, say so. Keep the reviews independent until all finish.

## Synthesize

Wait for every pass you started to finish or explicitly account for a failed pass. Check overlapping findings against the code, merge duplicates, and resolve disagreements using evidence. Agreement alone does not raise severity. Keep correctness defects distinct from maintainability recommendations and preserve the rubric's rationale for structural blockers.

Return findings first, ordered by impact, followed by a brief verdict and material limitations. State which passes completed and whether they ran as independent parallel subagents. For a correctness pass Prepare step 2 skipped, quote the /review-loop verdict line and the head that covered it. If the review scope changed while the reviewers were running, reconcile the affected findings before giving a verdict. If individual reviewer summaries are already visible to the user, do not restate them wholesale; surface the unified verdict, the highest-signal findings, and any remaining uncertainty.

Ships with 5 supporting files:

  • agents/openai.yaml
  • LICENSE
  • MAINTENANCE.md
  • README.md
  • UPSTREAM.md

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us