Coding-agent skills for pull-request work and orchestration: an adversarial multi-pass PR reviewer, PR description and title writing, answering review comments, CI failure triage and PR nursing, a DAG orchestrator that delegates to cheaper subagents, and file-channel coordination between agents. Supports GitHub and GitLab.
95%
Does it follow best practices?
Impact
98%
1.88xAverage score across 10 eval scenarios
Low
Low-risk findings worth noting
Reusable AI agent skills for software development workflows.
| Skill | Purpose | Trigger phrases |
|---|---|---|
| ci-detective | Investigate CI failures by cross-referencing against other recent runs to determine if failures are pre-existing or introduced by the PR | "investigate CI failure", "is this test flaky", "why is this test failing", "ci detective" |
| coordinating-agents | Coordinate one task between two or more agents on the same machine (e.g. Claude Code and Codex) through a file channel under .git: single-writer numbered messages, a watcher loop, and terminal markers, with the helpers run in a 2.4 MB busybox container on any host, so the user stops relaying between windows | "coordinate the task with ", "coordinate with Astra", "talk to the other agent", "hand this off to Codex" |
| pr-lawyer | Address PR review comments by fixing valid feedback or challenging debatable ones with a reasoned argument | "address PR comments", "respond to review", "challenge this comment", "fight back on review", "pr lawyer" |
| pr-nurse | Monitor CI builds and merge conflicts for a PR, diagnose failures, merge main, and push fixes | "nurse this PR", "check CI", "fix the build", "why is CI failing", "resolve conflicts" |
| pr-reviewer | Staged adversarial review pinned to an exact PR revision: three independent reviewers, an assessor that steel-mans every finding, a summary agent, and a convergence loop that restarts when the PR moves | "review this PR", "adversarial review", "deep PR review", "audit this pull request", "pr reviewer" |
| pr-scribe | Generate a concise PR description from a GitHub pull request diff | "describe this PR", "add PR description", "fill in PR body", "summarize PR changes" |
| the-mister | Plan an implementation as a DAG and dispatch every node to a cheaper subagent by difficulty (Opus/Sol, Sonnet/Terra, Haiku/Luna), with all git operations always on Haiku/Luna; the mister only orchestrates and verifies | "orchestrate this", "plan and delegate", "use the squad", "mister", "ask the mister", "delegate to cheaper models" |
These skills work with multiple AI coding agents. The repo includes symlinks for automatic discovery:
| Platform | Discovery path | How to install |
|---|---|---|
| Claude Code | .claude/skills/ | Clone repo, or install as plugin |
| GitHub Copilot | .github/skills/ | Clone repo into your project |
| OpenAI Codex | .agents/skills/ | Clone repo into your project |
| Gemini CLI | .gemini/skills/ or .agents/skills/ | Clone repo, or install as extension |
All four paths are symlinks to the canonical skills/ directory, so skills stay in sync.
git clone https://github.com/mdelapenya/coding-skills.gitThe symlinks inside the repo handle platform discovery automatically.
macOS / Linux:
# For Claude Code
cp -r skills/* ~/.claude/skills/
# For Copilot
cp -r skills/* .github/skills/
# For Codex
cp -r skills/* .agents/skills/
# For Gemini CLI
cp -r skills/* .gemini/skills/Windows (PowerShell):
Copy-Item -Recurse skills\* "$env:USERPROFILE\.claude\skills\"macOS / Linux:
REPO=/path/to/coding-skills/skills
# Claude Code (user-global)
ln -s $REPO/ci-detective ~/.claude/skills/ci-detective
ln -s $REPO/coordinating-agents ~/.claude/skills/coordinating-agents
ln -s $REPO/pr-lawyer ~/.claude/skills/pr-lawyer
ln -s $REPO/pr-nurse ~/.claude/skills/pr-nurse
ln -s $REPO/pr-reviewer ~/.claude/skills/pr-reviewer
ln -s $REPO/pr-scribe ~/.claude/skills/pr-scribe
ln -s $REPO/the-mister ~/.claude/skills/the-mister
# Agents used by the-mister (Claude Code reads ~/.claude/agents/ at session start)
mkdir -p ~/.claude/agents
ln -s $REPO/the-mister/agents/engineer.md ~/.claude/agents/engineer.md
ln -s $REPO/the-mister/agents/git-operator.md ~/.claude/agents/git-operator.md
ln -s $REPO/the-mister/agents/reviewer.md ~/.claude/agents/reviewer.md
ln -s $REPO/the-mister/agents/mechanic.md ~/.claude/agents/mechanic.md
ln -s $REPO/the-mister/agents/inspector.md ~/.claude/agents/inspector.md
ln -s $REPO/the-mister/agents/the-mister.md ~/.claude/agents/the-mister.mdWindows (PowerShell):
True symlinks require admin rights or Developer Mode. Use directory junctions instead — they don't need admin and the harness follows them transparently:
$repo = "C:\path\to\coding-skills\skills"
$home_skills = "$env:USERPROFILE\.claude\skills"
foreach ($n in 'ci-detective','coordinating-agents','pr-lawyer','pr-nurse','pr-reviewer','pr-scribe','the-mister') {
New-Item -ItemType Junction -Path (Join-Path $home_skills $n) -Target (Join-Path $repo $n)
}The skills are published to the Tessl registry as the plugin mdelapenya/coding-skills. Tessl installs them for every agent it finds in the project (Claude Code, Codex, Cursor, Gemini CLI, Copilot):
# All skills, from the registry
tessl install mdelapenya/coding-skills
# Only some skills, straight from GitHub
tessl install github:mdelapenya/coding-skills --skill the-mister --skill pr-reviewerA few things to know:
tessl install in a repository also runs tessl init, which writes tessl.json and agent configuration files (AGENTS.md, CLAUDE.md, MCP settings for each agent).tessl__ prefix, for example .claude/skills/tessl__the-mister.the-mister/agents/, but Tessl does not install agents. Without them the skill falls back to general-purpose subagents, so its role fences become instructions only. To get the shipped agents, link them as in Option 3 from .tessl/plugins/mdelapenya/coding-skills/skills/the-mister/agents/, or install the repository as a Claude Code plugin.coding-skills/
├── skills/ # Canonical skill files
│ ├── ci-detective/
│ │ ├── SKILL.md
│ │ └── references/
│ │ ├── github-actions.md
│ │ └── gitlab-ci.md
│ ├── coordinating-agents/
│ │ ├── SKILL.md
│ │ └── scripts/ # post, watch, ack, lock (POSIX sh, run in busybox via Docker)
│ ├── pr-lawyer/
│ │ ├── SKILL.md
│ │ └── references/
│ │ ├── github.md
│ │ └── gitlab.md
│ ├── pr-nurse/
│ │ ├── SKILL.md
│ │ └── references/
│ │ ├── github.md
│ │ └── gitlab.md
│ ├── pr-reviewer/
│ │ ├── SKILL.md
│ │ └── references/
│ │ ├── design.md
│ │ ├── passes.md
│ │ ├── publication.md
│ │ ├── report.md
│ │ ├── state.md
│ │ └── agents/
│ │ ├── claude-code.md
│ │ ├── codex.md
│ │ ├── copilot.md
│ │ ├── gemini.md
│ │ └── generic.md
│ ├── pr-scribe/
│ │ ├── SKILL.md
│ │ └── references/
│ │ ├── biomelab.md
│ │ ├── github.md
│ │ └── gitlab.md
│ └── the-mister/
│ ├── SKILL.md
│ ├── agents/ # Claude Code agent definitions, listed in .claude-plugin/plugin.json
│ │ ├── engineer.md # Hard and Medium nodes
│ │ ├── git-operator.md # every Git node
│ │ ├── mechanic.md # Easy nodes
│ │ ├── inspector.md # independent acceptance checks
│ │ ├── reviewer.md # read-only whole-change review (step 7)
│ │ └── the-mister.md # optional no-Bash orchestrator (context: fork)
│ └── references/
│ ├── evidence.md
│ ├── peers.md
│ ├── review.md
│ ├── plan-and-orders.md
│ └── agents/
│ ├── claude-code.md
│ ├── codex.md
│ └── generic.md
├── .agents/skills -> ../skills # Codex + Gemini CLI
├── .claude/skills -> ../skills # Claude Code
├── .github/skills -> ../skills # Copilot
├── .gemini/skills -> ../skills # Gemini CLI
├── .claude-plugin/
│ └── plugin.json # Claude Code plugin manifest
├── .tessl-plugin/
│ └── plugin.json # Tessl plugin manifest (content: skills/)
├── tessl.json # links the repository to its Tessl project
├── evals/ # Tessl eval scenarios: task, inputs, weighted rubric
├── scripts/ # repository tooling (agent preamble sync)
├── tests/ # tooling tests and the-mister A/B cases
├── gemini-extension.json # Gemini CLI extension manifest
└── README.mdMIT