Issue files · local dev

The issue folder is the protocol.

Many coding agents share one local dev checkout. There is no daemon and no wcp binary. The files under .wcp/issues/ are the whole protocol.

The queue

An agent moves an issue from open/ to in-progress/, lists the files it touches, and moves it to done/ when the writing is finished. A quiet run pushes origin/dev and moves those issues to deployed-dev/. A later run moves them to deployed-main/ only after that commit is on origin/main.

.wcp/issuesdevno daemon
in-progress 2

open

  • 0125—
    Read current session

in-progress

  • 0123auth-1
    Rotate refresh token
    src/auth/session.ts
  • 0124ui-2
    Dashboard empty state
    src/routes/dashboard.tsx

done

  • empty

deployed-dev

  • empty

deployed-main

  • empty

Side doors

blocked

Still wanted. Do not pick it up.

empty

canceled

Will not be done.

empty

in-review is retired. A file left there means the writing is finished. The next agent moves it to done/.

$read .wcp/issues/in-progress/

Solo, several agents

Worktrees isolate the wrong thing.

A worktree gives each agent its own checkout so they cannot step on each other. That helps until you are the person who has to put the pieces back. You are one developer. The agents are writing the same product, on the same machine, toward the same dev branch. The isolation is a merge you will do tonight.

  • They cannot see the other write

    Worktree

    A worktree’s uncommitted files are invisible to the next agent. The overlap shows up at merge, after both have finished and neither is still in the file.

    wcp

    One tree. If a path already has changes, the agent reads the issue that lists it, and the other paths in files, and keeps that acceptance. The edit builds on those bytes. It does not revert them.

  • The lock is a second checkout

    Worktree

    Each agent gets a directory, an index, and usually its own install. git worktree list names folders. It does not name the issue or the paths.

    wcp

    in-progress/ is the only lock. An open issue whose files overlap a live one is not taken. Everything else proceeds in the checkout you already have open.

  • You become the integrator

    Worktree

    Five agents means five branches to rebase, five copies of the repo, and a dev server that is not the tree you will push.

    wcp

    The tree stays dirty while anyone is in in-progress/. The last agent, with nothing left to do, commits once and pushes origin/dev.

Use a worktree for a branch you might delete. Use this when the work is supposed to land together. There is still no daemon. The folder is the lock, and agents have to read it.

Seven live statuses

The folder is the status.

The main chain is five folders. Two side doors sit beside it. in-review is retired.

Main chain

  • open
    open/

    Backlog. Nobody is editing it. Does not block a commit.

  • in-progress
    in-progress/

    An agent is editing this issue on this machine. This is the only lock.

  • done
    done/YYYY/MM/DD/

    Writing matches acceptance. The code is in the tree and has not been pushed.

  • deployed-dev
    deployed-dev/YYYY/MM/DD/

    That commit is on origin/dev. The sha is in dev.

  • deployed-main
    deployed-main/YYYY/MM/DD/

    That commit is on origin/main. The sha is in main.

Side doors

  • blocked
    blocked/

    Still wanted. Do not pick it up. reason is required.

  • canceled
    canceled/YYYY/MM/DD/

    Will not be done. reason is required.

open/, in-progress/, and blocked/ stay flat. done/, deployed-dev/, deployed-main/, and canceled/ are filed by the issue’s created day. The filename never changes when the status moves.

A file left in in-review/ means the writing is finished. The next agent moves it to done/.

One issue at a time

The run

  1. 01
    look

    If a done issue’s commit is already on origin/dev or origin/main, move it and write the sha.

  2. 02
    take

    One open issue whose files do not overlap in-progress. Write your name. Read it back.

  3. 03
    files

    Add each path as you write it. Other agents read in-progress and work around those paths.

  4. 04
    done

    When the writing matches acceptance, move the issue to done/.

  5. 05
    quiet

    If in-progress still has anything, stop. Do not commit. Do not push. Leave the tree dirty.

  6. 06
    push

    If in-progress is empty and you have no further task, commit, push origin/dev, move those issues to deployed-dev/.

A later run moves an issue to deployed-main/ only after that commit is on origin/main. A crashed agent leaves an issue in in-progress/. The next agent moves it back to open/ when the work has stopped, and clears assignee.

Issue file

The filename is YYYYMMDDThhmmZ-<id>-<slug>.md. The body under the frontmatter is the spec. dev and main stay empty until those commits exist.

---
id: 0123
title: Rotate refresh token on session mint
status: open
assignee:
files: []
acceptance:
reason:
dev:
main:
created: 2026-10-01T12:02:00Z
session: 2026-10-01T12:00:00Z
---

Tracker

wcp issues are always managed here. .wcp/tracker.md may name notion, linear, jira, another tool, or none. A missing file means this folder is the only queue.

---
tracker: none
url:
---

What this is not

  • Not a daemon

    There is no wcp binary, no socket, and no lease command. The issue files are the protocol. Agents edit them.

  • Not a second queue

    Notion, Linear, or Jira can mirror the same updates. The file is written first. A failed mirror does not undo it.

  • Not a rewind

    Do not reset, checkout, or stash. Another agent’s uncommitted work stays. Your edit builds on it.

  • Not a chat system

    The folder is who is editing what. Occupancy is the issue’s path, not a thread.

Paste into the app

AGENTS.md

Load the skill water-cooler-protocol. The spec and the skill stay in agreement.

## wcp

This checkout may have many coding agents on one local dev working tree.
The issue files are the protocol. There is no daemon.

- in-progress/ means an agent is editing that issue on this machine
- Do not commit while any issue is in in-progress/
- When in-progress/ is empty and you have no further task, commit and push origin/dev
- Commit .wcp/issues/ and .wcp/tracker.md. Nothing else under .wcp/
Full protocol