parallel-issues
Work several GitHub issues in parallel with unattended coding agents, one Herdr workspace and git worktree per group of issues, each group delivered as a…
Skill by jmfontaine
Chalk Labs
Need help deploying parallel-issues?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jmfontaine-parallel-issues
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/parallel-issues
What's inside
- Skill name
parallel-issues- Description
- Work several GitHub issues in parallel with unattended coding agents, one Herdr workspace and git worktree per group of issues, each group delivered as a stack of signed, reviewed pull requests. Use when the user wants to fix a batch, list, or milestone of issues at once, run agents overnight or while away, fan issues out to parallel agents, or check on, review, merge, or clean up such a run. Use it even for short requests such as "work on
- License
- Apache-2.0
- Compatibility
- Written for omp. Agents start as omp by default, and the agent reviews run as omp task subagents. Requires Herdr (run from a Herdr pane), gh with the github/gh-stack extension and the workflow scope, the 1Password CLI (op), git with SSH commit signing, Python 3.10+, and the github-workflow, git-branch and git-commit skills, which the agents follow.
- Instructions
- 349 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- files: referenced but missing: references/repository-setup.md
Files (3)
- SKILL.md
- prompt.md · assets/
- parallel_issues.py · scripts/
SKILL.md (first lines)
# Parallel Issues
Plan a batch of GitHub issues with the user, then launch one coding agent per group of
issues that depend on each other or touch the same files. Each agent works unattended
in its own worktree and delivers its group as a stack of pull requests, one per issue,
each signed, checked, and reviewed locally before it is committed. The maintainer
review and the merge are the user's, once they are back.
The point of a batch is that the user starts it and goes off to do something else. So
ask for everything the run will need while the user is still there, and always tell
them plainly whether they can leave now and what will call them back.
The launcher is `scripts/parallel_issues.py` (path relative to this skill directory).
Run it from the repository's main checkout. The agents follow `assets/prompt.md`, the
`github-workflow` and `git-commit` skills, and the repository's agent instruction files
(AGENTS.md, CLAUDE.md). Keep repository-specific rules, such as tests that must not
run concurrently, in those instruction files rather than in the prompt.
## Terms
A **batch** is the issues the user approves in one planning session, taken from a
milestone or from a list the user gives. A **wave** is the groups launched together;
the user merges between waves, so in practice one wave runs per night. Waves are
numbered 1 to n. A **group** is the issues one agent delivers in one worktree as one
stack, one pull request per issue, bottom first. A **layer** is one branch and pull
request of a stack. A group is named after its issues, never with a letter: `#185`
for one issue, `#185/#187/#180` for three.
## When the user is needed
Gather every question before the first unattended step, ask them together, and start
only once all are answered. A question that surfaces after the user has left blocks
the work until they return, which defeats the batch.
- **Planning and launch: needed.** Approving the plan, labels or exclusions to fix,
and the 1Password prompt that reads the signing key, once per 24 hours (see Signing
key).
- **While the agents run: not needed.** Agents never ask; they take the conservative
option and note it in the pull request.
- **After the run: needed only for decisions.** Merging, approving the rejected-layer
procedure (the only force push the workflow allows), pushing a change only the user
may push, and anything a `keep` or `leftover` line from `clean` asks them to resolve.
Ask these together as well, before a long merge, release, or cleanup sequence.
End every turn with one of these, stated in so many words:
- "I need you for: …", listing each item and why; or
- "You can go AFK now. Nothing needs you until …", naming what will need them next
(the agents finishing, a merge decision, the next 1Password prompt), or "until I
report back" when nothing will.
Say it right after the launch prints every group as started, and again whenever a
step that needed the user is done.
Notifications come from this session only, and only when the user is needed. Whenever
a turn ends with "I need you for: …" while the user may be away, also send that list:
`parallel_issues.py notify "<short title>"` with the list on standard input. Never let
the watcher or the agents ping the user: the watcher runs with `--no-notify` (see
While it runs), and the agents' own notifications are off through `agent.ompConfig`.
Ask the user to send decisions for an agent through this session, not by typing in
the agent's Herdr pane: this session cannot see those messages, and an agent's pane is
removed by `clean`.
## Before the first run
Check each item and fix what is missing with the user; the launcher refuses to start
otherwise.
- The repository works through branches and pull requests. When its agent instruction
files allow or require committing straight to the default branch, do not launch:
the agents only open pull requests, and commits on the default branch land as they
are. Tell the user why and work those issues in an interactive session. The launcher
does not check this one.
- This session runs in a Herdr pane (`HERDR_ENV=1`). For agent status to be accurate,
Herdr's integration for the agent must be installed (`herdr integration status`).
- `gh extension list` shows `github/gh-stack`.
- `gh auth status` lists the `workflow` scope: agents push changes under
`.github/workflows/` like any other, and GitHub rejects such a push without it
(`gh auth refresh -h github.com -s workflow` adds it). The launcher does not check
this one.
- Agents sign every commit with their own key, never the user's:
- `git config commit.gpgsign` is `true` in the repository.
- `git config agent.signingKey` holds a 1Password reference to the agent's SSH
private key, such as `op://Private/Agent signing/private key`. It can differ per
directory tree through `includeIf`.
- The agent's public key is in `gpg.ssh.allowedSignersFile` for the repository's
`user.email`, and is added to the user's GitHub account as a **Signing** key.
- The user is present when the key is read from 1Password (see Signing key).
- The default branch should require signed commits (a ruleset), so an unverified
commit fails the push instead of landing.
- Optional, through git config:
- `agent.ompConfig`: an omp config overlay that the launcher passes to every omp
agent with `--config`, for settings only unattended agents should get, such as a
model from another family for their local reviewer, so that review does not share
the author's blind spots. It should also set `completion.notify`, `ask.notify` and
`error.notify` to `"off"` (quoted), or every agent notifies the user at the end of
each turn.
- `agent.notifyCommand`: a command that sends the user a notification, with a title
as its argument and the message on standard input, for example a script that
sends a phone notification. `parallel_issues.py notify` runs it, and so does
`status --wait` when no session supervises the run.
- `agent.sshProgram`: the program agents sign with, in place of `ssh-keygen`. It
takes `ssh-keygen`'s arguments, so it can be a wrapper that runs an extra check
before signing. The agents and `env` get it as `gpg.ssh.program`.
## Plan the batch
Planning happens with the user, before anything runs.
1. Collect the candidate issues: a milestone's open issues (`gh issue list --milestone
<name>`, a milestone being one release) or the list the user gives. Read each one.
Check its labels as well. Each issue needs exactly one change-type label from the
repository's baseline: the launcher takes the branch type from it, following the
`git-branch` skill's label table (see Launch), and falls back to `fix` when there
is none. Fix a missing or misleading label with the user. Never create a label
outside the repository's baseline; ask instead. The baseline, and the rule for
deviations, are in the `github-workflow` skill's `references/repository-setup.md`
(if installed).From jmfontaine/agent-skills, Apache-2.0.
More from jmfontaine/agent-skills
- 0.570score
github-workflow
jmfontaine
Track work in GitHub issues and deliver it through pull requests and reviews.
SkillAFreshness: AClaude Code +9 - 0.570score
product-development-system
jmfontaine
Guide product development from manifesto and product map through releases, optional briefs, and release review.
SkillAFreshness: AClaude Code +9 - 0.570score
python-codebase-review
jmfontaine
Deep, whole-codebase review of a Python project that writes a new REVIEW.md, a verified and prioritized list of fixes and improvements.
SkillAFreshness: AClaude Code +9 - 0.565score
project-review
jmfontaine
Review project files for consistency, completeness, correctness, and simplicity.
SkillAFreshness: AClaude Code +9 - 0.565score
git-commit
jmfontaine
Git commit guidelines, including which branch a commit goes on, the first commit, and GitHub stacked pull requests.
SkillAFreshness: AClaude Code +9 - 0.565score
review-verification
jmfontaine
Check every finding in an existing review or plan file (REVIEW.md or similar) against the current code or a named dependency version, mark each confirmed…
SkillAFreshness: AClaude Code +9 - 0.565score
git-branch
jmfontaine
Git branch naming guidelines, including the label to branch-type table.
SkillAFreshness: AClaude Code +9 - 0.558score
uv
jmfontaine
Python package management with uv.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 24, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/jmfontaine/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jmfontaine
- 0.570score
github-workflow
jmfontaine
Track work in GitHub issues and deliver it through pull requests and reviews.
SkillAFreshness: AClaude Code +9 - 0.570score
product-development-system
jmfontaine
Guide product development from manifesto and product map through releases, optional briefs, and release review.
SkillAFreshness: AClaude Code +9 - 0.570score
python-codebase-review
jmfontaine
Deep, whole-codebase review of a Python project that writes a new REVIEW.md, a verified and prioritized list of fixes and improvements.
SkillAFreshness: AClaude Code +9 - 0.565score
project-review
jmfontaine
Review project files for consistency, completeness, correctness, and simplicity.
SkillAFreshness: AClaude Code +9 - 0.565score
git-commit
jmfontaine
Git commit guidelines, including which branch a commit goes on, the first commit, and GitHub stacked pull requests.
SkillAFreshness: AClaude Code +9 - 0.565score
review-verification
jmfontaine
Check every finding in an existing review or plan file (REVIEW.md or similar) against the current code or a named dependency version, mark each confirmed…
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get parallel-issues running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
parallel-issues skill. Agent Mart. https://agentmart.dev/skills/jmfontaine-parallel-issues (last updated 2026-10-24)