peer-review
Skill0 starsChanged 33 days agoMITView on GitHub
Request a second opinion or cross-check from another AI agent running in a different tmux pane (opencode, kiro, another Claude Code instance, etc.). Writes context to a reviews/ subdirectory of the skill's base directory, discovers available panes, and injects a review prompt into the target pane via tmux send-keys.
- Deletes or force-pushes
47 other projects use a version of this.
Adopted by
Most recently taken up by
- BrightGold70/skillstheir own version, first seen Nov 8, 2026
- QSOLKCB/CLAUDE-SKILLS-AGItheir own version, first seen Nov 8, 2026
- pietz/skillstheir own version, first seen Nov 8, 2026
- K-Dense-AI/claude-scientific-writertheir own version, first seen Nov 7, 2026
- jerryctt/hostrunner-mcptheir own version, first seen Nov 1, 2026
- science-works/benchsidetheir own version, first seen Nov 1, 2026
Used with
Projects with it also use usfiscaldata, research-grants and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
yf8578Skillusfiscaldata
Query the U.S. Treasury Fiscal Data API for federal financial data including national debt, government spending, revenue, interest rates, exchange rates, and savings bonds. Access 54 datasets and 182 data tables with no API key required. Use when working with U.S. federal fiscal data, national debt tracking (Debt to the Penny), Daily Treasury Statements, Monthly Treasury Statements, Treasury securities auctions, interest rates on Treasury securities, foreign exchange rates, savings bonds, or any U.S. government financial statistics.
Also in 7 projects that use this
garri333Skillresearch-grants
Write competitive research proposals for NSF, NIH, DOE, DARPA, and Taiwan NSTC. Agency-specific formatting, review criteria, budget preparation, broader impacts, significance statements, innovation narratives, and compliance with submission requirements.
Also in 11 projects that use this
garri333Skillarboreto
Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.
Also in 10 projects that use this
SoljournerSkillget-available-resources
Enumerate installed packages, databases, and tools for engineering workflows
Also in 10 projects that use this
- +8 more from garri333
Other versions47 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 47
- Norman-bury/research-writing-skill★ 3.4ksame name
- Norman-bury/articlewriting-skill★ 3.4ksame name
- K-Dense-AI/claude-scientific-writer★ 2.6ksame name
- wu-yc/LabClaw★ 1.1ksame name
- LeonChaoX/qinyan-academic-skills★ 910same name
- poemswe/co-researcher★ 135same name
- qinyan-ai/qinyan-academic-skills★ 80same name
- Barrios88/barrios-skills★ 63same name
- richard-kim-79/archora-skills★ 49same name
- a-lottes/aSPARK★ 25same name
37 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- 1on1Skill
- context-reviewSkill
- gmail-inboxSkill
- lamport-problem-statementSkill
- learning-labSkill
- logseq-db-querySkill
- nix-sandboxSkill
- obsidian-zettelkastenSkill
- portkey-statusSkill
- proton-inboxSkill
- teams-extractorSkill
- theory-of-constraintsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. 0 are common, 10 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 38 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 50
If the user requests multiple formats, write to each and send a reviewer prompt per format.
- Very specific: line 64
Use this as {reviews_dir} in all subsequent steps.
- Very specific: line 68
If a session parameter was provided, use it.
- Distinctive: line 84
Run this command and present the output to the user so they can identify the target pane:
- Very specific: line 92
Do not choose or default a pane yourself — the user knows which agent they want and may have specific reasons for their choice.
- Very specific: line 106
Use its output as {timestamp} below.
- Distinctive: line 111
Read that file — it contains write instructions and a reviewer prompt template
- Distinctive: line 116
If every format fails, report to the user and stop.
- Distinctive: line 118
Multi-format broadcast: If the user explicitly asks for multiple formats, write to each specified format (don't stop at first success) and …
- Very specific: line 124
Use the reviewer prompt template from the format file chosen in Step 3.
- Very specific: line 145
Do NOT poll or loop waiting for response.md.
- Distinctive: line 148
Proactive cleanup check: After confirming the review is sent, run:
- Distinctive: line 152
If the count is 10 or more, mention it briefly — e.g.
- Very specific: line 158
When the user asks you to read the review, use the Response Location specified in the format file that was used (see its ## Response …
- Distinctive: line 164
After reading and summarizing the review, ask: "Would you like to clean up this session?"
- Very specific: line 173
Never use rm -rf or wildcards.
- Distinctive: line 177
When invoked with "clean up comms" or "clean peer review files" (without starting a new review):
- Distinctive: line 184
Ask which session(s) to remove.
- Very specific: line 190
If both agents are Claude Code instances in the same session, consider using native Claude Code Teams instead …
“Common” is measured: kept by at least 6 in 10 of the 38 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
peer-review skill
Purpose
Bridge between agent harnesses running in separate tmux panes. Use when you want to: check your own work, get a second opinion on a design decision, have another agent verify a refactor, or collaborate on a multi-step task.
Also handles cleanup of comms files — trigger with: "clean up comms", "clean peer review files".
Data Exchange Formats
Try each format in order. Stop at first success. Each linked file specifies where to write, success/failure detection, reviewer prompt, and cleanup for that format. Request content schema is identical across all formats — only the destination varies.
- Local Markdown
- Obsidian
- Logseq
If the user requests multiple formats, write to each and send a reviewer prompt per format.
Step-by-step instructions
Step 0 — Resolve the reviews directory
The skill loader injects a line at the bottom of this skill content:
Base directory for this skill: file:///path/to/peer-reviewExtract the path by removing the file:// scheme prefix from the URL. For example, file:///Users/foo/.config/opencode/skills/peer-review becomes /Users/foo/.config/opencode/skills/peer-review. Then append /reviews to get the reviews directory.
Use this as {reviews_dir} in all subsequent steps. This is not a user-supplied parameter — it is derived from the skill loader. Do not hardcode any path.
Step 1 — Establish session name
If a session parameter was provided, use it. Otherwise derive one from the
current date and the subject being reviewed:
date +%Y%m%dCombine that date with a 2-3 word kebab-case slug you infer from what's being
reviewed — e.g. 20260304-jwt-refactor, 20260304-rate-limiter,
20260304-email-fix. Prefer concrete nouns over generic terms like "code" or
"review". If two sessions might collide, append -2 etc.
This format sorts chronologically in ls output while staying readable.
Step 2 — Discover available panes (if no target provided)
Run this command and present the output to the user so they can identify the target pane:
tmux list-panes -a -F '#{pane_id} #{session_name}:#{window_name}.#{pane_index} cmd=#{pane_current_command} path=#{pane_current_path}'Present the list to the user and wait for them to pick a target pane.
Do not choose or default a pane yourself — the user knows which agent
they want and may have specific reasons for their choice.
Accept either session:window.pane or pane ID (%N) — both work with
tmux send-keys -t.
Note: kiro panes may show fish as the command due to a known bug. Use the
session:window.pane format (matches the tmux status bar) to identify them.
Step 3 — Write context using the first available format
First, capture the current UTC timestamp:
date -u +%Y-%m-%dT%H:%M:%SZUse its output as {timestamp} below.
Iterate through the Data Exchange Formats list (above). For each format in order:
- Extract the relative path from the markdown link (e.g.
[Local Markdown](./resources/formats/local-markdown.md)→./resources/formats/local-markdown.md), then resolve it against{base_dir}to get an absolute path (e.g.{base_dir}/resources/formats/local-markdown.md) - Read that file — it contains write instructions and a reviewer prompt template
- Attempt to write the request using the
## Writeinstructions in that file - On success: record which format was used, load its
## Reviewer Prompt Templatefor Step 4, and stop - On failure: tell the user (e.g. "Logseq unavailable, trying next format...") and continue to the next format
If every format fails, report to the user and stop.
Multi-format broadcast: If the user explicitly asks for multiple formats, write to each specified format (don't stop at first success) and send a reviewer prompt per format.
Request schema: see {base_dir}/resources/schema.md — read it before writing the request content.
Step 4 — Inject prompt into target pane
Use the reviewer prompt template from the format file chosen in Step 3. Each format file has a ## Reviewer Prompt Template section — substitute actual values (no placeholders) before sending.
The prompt must be self-contained — the reviewing agent has no other context. Every template should make explicit:
- exactly where to read the request and where to write the response (tool name, page name, or absolute path)
Send with:
tmux send-keys -t '{target}' '{filled-in prompt from format file}' EnterWhere {session-slug} is the human-readable part of the session name (e.g. nix-config-conundrum, jwt-refactor) — not the full session ID with date prefix.
Step 5 — Confirm and wait
Tell the user:
- The format used (e.g. "Written via Logseq" or "Fell back to local markdown")
- Where the request was written (page name, vault path, or file path)
- The prompt has been sent to the target pane
- Where the response will appear when the reviewer is done (per the format file's "Response location" section)
- How to read the review when ready (tool and location)
Do NOT poll or loop waiting for response.md. The human will come back and ask
you to read it when the reviewing agent has finished.
Proactive cleanup check: After confirming the review is sent, run:
ls {reviews_dir}/*.md 2>/dev/null | wc -lIf the count is 10 or more, mention it briefly — e.g. "By the way, there are N review files in the reviews directory — want me to help clean up old ones when we're done here?" Don't block on it; just flag it and move on.
Reading a review (follow-up)
When the user asks you to read the review, use the Response Location specified in the format file that was used (see its ## Response Location section). For local markdown (the current default): Read {reviews_dir}/{session}-response.md
Then summarize the reviewer's feedback and suggest next steps.
Step 6 — Cleanup (optional)
After reading and summarizing the review, ask: "Would you like to clean up this session?"
Cleanup is format-dependent — follow the ## Cleanup section in the format file used. For local markdown, check each file and delete only those that exist using exact fully-qualified paths:
test -f {reviews_dir}/{session}-request.md && rm {reviews_dir}/{session}-request.md
test -f {reviews_dir}/{session}-response.md && rm {reviews_dir}/{session}-response.mdNever use rm -rf or wildcards.
Cleanup trigger
When invoked with "clean up comms" or "clean peer review files" (without starting a new review):
- List all
.mdfiles in{reviews_dir}/:ls {reviews_dir}/*.md - Group by session prefix and present to the user.
- Ask which session(s) to remove.
- For each confirmed session, delete its files individually by exact path (see Step 6 above).
Notes
- Context files are ephemeral scratch space. Don't rely on them persisting across days.
- If both agents are Claude Code instances in the same session, consider using
native Claude Code Teams instead (
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1). This skill is primarily for cross-harness coordination (Claude Code ↔ opencode, etc.). - For multi-step collaboration (not just review), use
{session}-request.mdand{session}-response.mdas a back-and-forth scratch pad, incrementally appending.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

