Skip to content
Agentmart
Submit a tool

request

Ask another project's agents for a change instead of editing their repo.

Skill by joewalnes

IndexedMIT★ 3
Write a review

Chalk Labs

Need help deploying request?

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.

Book a call

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/joewalnes-request

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.

We use your email only for this newsletter. Privacy

About

Ask another project's agents for a change instead of editing their repo. Use when a fix belongs in another repository.

Use cases: writing

No 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/request

What's inside

Skill name
request
Description
Ask another project's agents for a change instead of editing their repo. Use when a fix belongs in another repository.
License
MIT
Instructions
63 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (3)

  • SKILL.md
  • guard_foreign_repo.py · scripts/
  • request.py · scripts/

SKILL.md (first lines)

# Request: work across projects without stomping

Projects depend on each other: zepto needs a fix in hangon; a sidebrain retro finds skill improvements for the skills repo. The old way — jump into `../otherproject` and fix it yourself — puts you in someone else's checkout with no knowledge of their in-flight branches, leases, or conventions, and their agents in yours. Agents stomped on each other.

This is the mailbox pattern real teams use: **you never edit another project's repository.** You file a request; their agents triage it under their own rules, in their own worktrees, and tell you when it's done.

## Where requests live, and why

`~/.claude/requests/<target-project>/<id>.md` — one file per request, **outside every checkout.**

- No git conflicts and no writes into anyone's working tree, however dirty or mid-merge it is.
- Worktree-independent: the target may have thirty worktrees or no session running; the request waits.
- A project is identified by the basename of its *main* checkout (`git rev-parse --git-common-dir`), so a request filed from a worktree still says `zepto`, and one addressed to `sidebrain` is found from any of its worktrees.
- The transport is the file; **the record is the target's own tracker.** When the target accepts, its agent copies the request into its `ASKS.md`/`TODO.md` with provenance and commits — the git-tracked event is made by the owner, in their repo.

Override the location with `$CLAUDE_REQUESTS_DIR`, the project name with `--project` or `$CLAUDE_REQUESTS_PROJECT`. Two repos with the same basename would share an inbox; rename one or set the override.

## Sending

```bash
python3 ~/.claude/skills/request/scripts/request.py send <project> "<title>" \
  --body "<what you observed (measured), and what you need>" \
  [--repro "<how to see it>"] [--hunch "<your guess at the cause>"] [--priority blocking|normal|low]
```

Write the request the way a good brief is written, because it *is* one:

- **Observation and goal first.** What you saw, marked as measured where it is; what you need to be true afterwards. Not a diagnosis.
- **Your hunch goes last, labelled.** A diagnosis at the top tells a capable agent where to look, and they look there — two rounds were once spent fixing a normaliser when the data was stored elsewhere. The target forms its own view first, then checks yours.
- **Repro if you have one.** The target can't see your screen.
- **Priority `blocking`** only if your work is actually stopped. It sorts their inbox.

The script prints two follow-ups: a one-line `SendMessage` ping to use **only if** the target has a live session (check `ListAgents`; the ping carries the id and title, never the content — the file is the record), and a reminder to note the dependency in your own tracker ("Waiting on hangon 20260903-…: title") so it shows up in your `/sitrep`.

Then get on with something else. Do not go and fix it yourself.

## Receiving

```bash
python3 ~/.claude/skills/request/scripts/request.py inbox          # open + accepted, blocking first
python3 ~/.claude/skills/request/scripts/request.py show <id>      # ids prefix-match, like git SHAs
python3 ~/.claude/skills/request/scripts/request.py accept <id> --note "reproduced; scheduling"
python3 ~/.claude/skills/request/scripts/request.py decline <id> --reason "..."
python3 ~/.claude/skills/request/scripts/request.py done <id> --ref <sha|branch|PR>
```

`/sitrep` shows the inbox. `/go-team` dispatches from it — **after** the human's own `ASKS.md`, **before** the project's self-generated backlog: a blocked peer is external demand, not work the fleet invented for itself. On accept, copy the request into your tracker with its id; on done, record the ref so the requester can pull it. Decline with a reason rather than letting it rot — the requester is waiting on an answer either way.

## Checking on what you sent

```bash
python3 ~/.claude/skills/request/scripts/request.py sent [--all]
```

`/sitrep` includes this. When one turns `done`, the ref tells you what to pull or bump.

## The rule, and the mechanism that enforces it

**Never edit a repository other than the one you were dispatched into.** Written down, that's an intention. The mechanism is `scripts/guard_foreign_repo.py`, a `PreToolUse` hook on `Edit|Write|MultiEdit|NotebookEdit` that denies a write whose target is inside a *different* git repository and replies with the `request.py send` line to use instead. Same-repo worktrees, `~/.claude`, and temp directories are allowed. `/project-setup` installs it (by reference, so it never goes stale).

It does not police `Bash` — `cd ../other && …` is unguardable in general — so the rule still has to be in every dispatch brief. But the common case, an agent reaching for Edit on a sibling repo's file, is refused before it happens.

From joewalnes/skills, MIT.

More from joewalnes/skills

Signals

Stars
3
Forks
3
Open issues
0
Last commit (this folder)
Sep 7, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from joewalnes

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 request 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.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying request?

CallGet help
Cite this page

request skill. Agent Mart. https://agentmart.dev/skills/joewalnes-request (last updated 2026-10-24)