Harness Bench
ruvnet/ruflo
Manage @metaharness/darwin bench suites — bench create {repo} scaffolds a JSON suite from a repo's test corpus; bench verify {suite.json} checks suite well-formedness.
Redlamp Bench, the way an agent asks the owner to do a step in another app and gets the results back without anyone moving files.
$ npx skills add pdcgomes/redlamp --skill redlamp-bench -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pdcgomes/redlamp redlamp-bench --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pdcgomes/redlamp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/redlamp-bench .claude/skills/redlamp-bench && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "redlamp-bench" agent skill from https://github.com/pdcgomes/redlamp/tree/main/.cursor/skills/redlamp-bench into .claude/skills/redlamp-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "redlamp-bench", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pdcgomes/redlamp/tree/main/.cursor/skills/redlamp-benchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pdcgomes/redlamp --skill redlamp-bench -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pdcgomes/redlamp redlamp-bench --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pdcgomes/redlamp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/redlamp-bench .agents/skills/redlamp-bench && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "redlamp-bench" agent skill from https://github.com/pdcgomes/redlamp/tree/main/.cursor/skills/redlamp-bench into .agents/skills/redlamp-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "redlamp-bench", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pdcgomes/redlamp --skill redlamp-bench -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pdcgomes/redlamp redlamp-bench --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pdcgomes/redlamp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/redlamp-bench .cursor/skills/redlamp-bench && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "redlamp-bench" agent skill from https://github.com/pdcgomes/redlamp/tree/main/.cursor/skills/redlamp-bench into .cursor/skills/redlamp-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "redlamp-bench", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pdcgomes/redlamp.git --path .cursor/skills/redlamp-bench--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pdcgomes/redlamp --skill redlamp-bench -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pdcgomes/redlamp redlamp-bench --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pdcgomes/redlamp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/redlamp-bench .gemini/skills/redlamp-bench && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "redlamp-bench" agent skill from https://github.com/pdcgomes/redlamp/tree/main/.cursor/skills/redlamp-bench into .gemini/skills/redlamp-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "redlamp-bench", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pdcgomes/redlamp redlamp-benchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pdcgomes/redlamp --skill redlamp-bench -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pdcgomes/redlamp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/redlamp-bench .github/skills/redlamp-bench && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "redlamp-bench" agent skill from https://github.com/pdcgomes/redlamp/tree/main/.cursor/skills/redlamp-bench into .github/skills/redlamp-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "redlamp-bench", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pdcgomes/redlamp --skill redlamp-bench -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pdcgomes/redlamp redlamp-bench --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pdcgomes/redlamp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/redlamp-bench .opencode/skills/redlamp-bench && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "redlamp-bench" agent skill from https://github.com/pdcgomes/redlamp/tree/main/.cursor/skills/redlamp-bench into .opencode/skills/redlamp-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "redlamp-bench", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
redlamp-benchRedlamp Bench, the way an agent asks the owner to do a step in another app and gets the results back without anyone moving files.
Redlamp Bench is an agent skill from pdcgomes/redlamp. Redlamp Bench, the way an agent asks the owner to do a step in another app and gets the results back without anyone moving files. The agent writes a bench task (a folder with a manifest, one-screen steps and reference images) with redlamp task new; the owner's iPhone pulls it from the Recipe Lab's hub, he follows the steps in Lightroom (or Prequel, Photos, another app) and shares the exports back, and the phone sends the task to Done once every result is paired. Use whenever you need the owner to check, measure…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `examples/dec-08/draft.json`).
The repository describes itself as: A native, open-source RAW photo editor for Mac, iPad and iPhone that feels immediately familiar to Lightroom users. The licence is MPL-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bc52683. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Swift), which the agent can run.
Shell commands in SKILL.md call:
miseFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Redlamp Bench loads about 2.1k tokens when it runs. Until then it costs about 201 tokens; SKILL.md has 1,153 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pdcgomes/redlamp at commit bc52683, republished under its MPL-2.0 licence (© pdcgomes). 1,153 words, ~2,137 tokens.
.claude/skills/redlamp-bench/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.When work needs Lightroom's own answer, such as how its masks combine, what a slider does to a ramp or what a preset renders, don't ask the owner to move photos around. Make a bench task. It reaches his phone by itself, opens on its steps one at a time, and comes back to a folder you can read, with each result paired with the photo it came from. docs/bench-tasks.md has the format, the hub and the app in full.
Use it for: anything only the owner can do in another app, with files going in and coming out: Lightroom checks (masks, sliders, profiles, presets, exports), and a phone app's output on given images.
Don't use it for:
redlamp task new. The task lands in ~/Library/Application Support/Redlamp/Bench/Outbox/<id>/, outside every checkout, so it doesn't matter which worktree you're in..../Bench/Done/<id>/, and it leaves the outbox.Build the CLI once (SCHEME=redlamp mise run build), then use build/DerivedData/Build/Products/Debug/redlamp. It's written redlamp below.
Quick form, for a few photos and plain steps:
redlamp task new --title "Sky masks on the coverage set" --app "Lightroom" \
--workstream masking --tracker MSK-16 --issue 52 \
--step "Select Sky on each | Masking › Create New Mask › Select Sky, nothing else." \
--step "Show the mask | Set the mask's Exposure to −2.00, nothing else." \
--step "Export | JPG, quality 100, full size, sRGB, no output sharpening, original file names." \
--question "edge | Did Select Sky miss any sky at the trees? | Yes, No, Partly" \
photos/*.dngWithout --no-auto-steps, it adds a first step that shares the photos to the app and a last one that waits for the results. Add --manual when the number of results isn't one per photo; the owner then marks the task done.
Draft form, when steps need actions, pictures or their own pairing: write a draft as task.json's fields, with each asset as {"source": "path", "id", "label", "counts"} and step pictures listed in "pictures" (copied into pictures/, named in steps as pictures/<name>). Then run redlamp task new --draft draft.json. examples/dec-08 is a complete one, with the script that made its photos.
Then run redlamp task check <id>, and fix every error and warning.
The app shows one step at a time, full screen, while the owner switches between it and Lightroom:
check warns when a step's detail won't fit one screen (over 320 characters) or its title is over 60.share and save put the photos one tap away; results waits for the exports and ticks itself; answer asks a question."picture": "pictures/where.png") when a setting is hard to find.1-gradient-a.tif, exposure-plus-50.jpg): with original file names on export, each result pairs by name.Lightroom only gives back rendered images, so design the task so that the export answers the question:
exposure-minus-100, …, exposure-plus-100), each with its own step, so each result pairs by name and its value is known.build/app-looks/kit) or a fixture. For a phone app's filter to rebuild as a look, see the owner's look references instead.Results are references only: never commit them or ship them, and never convert or ship Adobe's files (AGENTS.md).
Add a Needs you item on your workstream canvas (.cursor/skills/workstream-canvas/SKILL.md):
<task title> task in Lightroom".blocking when your work waits on it.mise run harness -- --scene recipe-lab --lab-tab bench.Then carry on with other work; don't wait in a loop for hours.
redlamp task show <id>: each asset's result, how it paired (file name, barcode, similarity with its score, or by hand), the answers and the owner's note. Add --json for the manifest and results.json together.redlamp task wait <id> --timeout 60: returns once the task is in Done and complete; exit 2 means it isn't yet.Done/<id>/results/, byte for byte as the other app exported them. results.json names each one's asset. An unpaired result (asset absent) is one the phone couldn't place: compare it with the assets yourself, or ask the owner.redlamp task check again.redlamp task withdraw <id>. The phone drops it unless it already has results. Then make a new task with a new ID. Never reuse an ID.© pdcgomes, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in .cursor/skills/redlamp-bench of pdcgomes/redlamp.
Open the folder on GitHubat commit bc52683
Redlamp Bench next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Redlamp Bench this skillpdcgomes/redlamp | 222 | — | ~2.1k | Automated safety check: Pass | MPL-2.0 | |
| Harness Benchruvnet/ruflo | 74k | — | ~586 | Automated safety check: Notes | MIT | |
| Sandbox Benchvercel/next.js | 143k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Bench Readgithub/awesome-copilot | 40k | — | ~747 | Automated safety check: Pass | MIT | |
| Benchddalcu/mlx-serve | 1.8k | 1 repos | ~1.1k | Automated safety check: Pass | Custom licence | |
| Terminal Bench Looppaperclipai/paperclip | 99k | — | ~6.3k | Automated safety check: Pass | MIT |
ruvnet/ruflo
Manage @metaharness/darwin bench suites — bench create {repo} scaffolds a JSON suite from a repo's test corpus; bench verify {suite.json} checks suite well-formedness.
vercel/next.js
Benchmark React or Next.js changes on Vercel Sandbox VMs with paired A/B statistics: react PR/commit vs base, or Next.js PR/commit vs base, measured end-to-end through the bench/render-pipeline app…
github/awesome-copilot
Read artifacts from the shared bench — the workspace where desks leave findings, verdicts, and work products for each other and the operator.
ddalcu/mlx-serve
mlx-serve benchmarking methodology — bench.sh/llmprobe usage, comparison-trap rules (same-methodology cells only, spec-decode variance, thermal lies, engine naming), perf-claim etiquette.
paperclipai/paperclip
Run one Terminal-Bench task through a bounded Paperclip smoke/diagnosis/fix loop.
ruvnet/ruflo
Run @metaharness/darwin security bench (upstream "Darwin Shield" / ADR-155) — evolves a champion security-detection harness against a 10-vuln / 9-decoy corpus and grades it on…
pdcgomes/redlamp
The Redlamp User Manual (docs/manual), a dense, book-style PDF for photographers, typeset from Markdown and a print style sheet by Chrome, with its ranges, defaults and shortcuts generated from the…
pdcgomes/redlamp
The promo studio, which makes Redlamp's short promotional videos for social feeds the way a small creative agency does - a brief, hooks and copy, a script on a music grid, visuals from the promo…
pdcgomes/redlamp
Map of redlamp.app, the Next.js website in web/: its stack and commands, its pages, the home page's sections with their anchors, components and content sources, the brand's Tailwind tokens and…
pdcgomes/redlamp
The blog room, where every redlamp.app blog post is tracked from idea to announcement in a canvas the owner marks as they post.
pdcgomes/redlamp
The press room, where every outlet Redlamp is pitched to (newsletters, Mac and photography sites, developer and open-source communities, lists and directories) is tracked from finding it to its…
pdcgomes/redlamp
The release room, where every Redlamp release is prepared, checked, approved and shipped.
Redlamp Bench, the way an agent asks the owner to do a step in another app and gets the results back without anyone moving files. Redlamp Bench is an agent skill from pdcgomes/redlamp. Redlamp Bench, the way an agent asks the owner to do a step in another app and gets the results back without anyone moving files.
Redlamp Bench fits situations like: you need the owner to check; produce something in Lightroom; another app (Lightrooms masks; exports against Redlamps).
Run `npx skills add pdcgomes/redlamp --skill redlamp-bench -a claude-code`. Or copy the skill folder (.cursor/skills/redlamp-bench in pdcgomes/redlamp) into .claude/skills/redlamp-bench in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pdcgomes/redlamp --skill redlamp-bench -a codex`. Or copy the skill folder (.cursor/skills/redlamp-bench in pdcgomes/redlamp) into .agents/skills/redlamp-bench in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pdcgomes/redlamp --skill redlamp-bench -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/redlamp-bench, .gemini/skills/redlamp-bench, .github/skills/redlamp-bench and .opencode/skills/redlamp-bench in your project.
Going by SKILL.md and its folder, Redlamp Bench needs Swift for the scripts in its folder and the command-line tools its instructions call (mise).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Redlamp Bench is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Redlamp Bench: Harness Bench (ruvnet/ruflo, 74k stars), Sandbox Bench (vercel/next.js, 143k stars), Bench Read (github/awesome-copilot, 40k stars) and Bench (ddalcu/mlx-serve, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pdcgomes (a GitHub user) maintains it in pdcgomes/redlamp, which has 222 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 10, 2026.
Source: pdcgomes/redlamp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.