with one click
deliver-mail
RETIRED 2026-06-19 (post-migration,
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
RETIRED 2026-06-19 (post-migration,
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Execute one autonomous duty-cycle fire (START / WATCH / WORK / STOP) for a cycling agent. Invoked by the thin cron prompt on each fire. Use when a "DUTY CYCLE TICK" prompt fires, or to run a cycle fire manually. Holds the durable procedure so the cron prompt stays one-line.
Draft the Piper Morgan Weekly Ship newsletter from collected workstream memos. Use when PM says "draft the Ship", "draft Ship
Publish a finished blog post from this repo to the pipermorgan.ai website repo. Use when PM says "publish this post", "push to the blog", or when a draft is marked ready in the editorial calendar. Bridges piper-morgan → piper-morgan-website.
Update the editorial calendar CSV when PM reports a publication, new draft, status change, or URL. Use when PM says "published X on Medium", "add Y to the calendar", "update the URL for Z", or provides syndication URLs after a publish.
Delete a dead/fabricated module (or module family) without stranding importers, tests, CI jobs, or docs. Use for any fix-or-delete execution, Tier-3-style dead-code removal, or retiring a superseded subsystem. Encodes the Finish-the-Unfinished sprint's deletion lessons (Families 1-3, 2026-07-18/19).
Read GitHub Projects-v2 boards and issue state WITHOUT silent truncation or stale claims. Use whenever summarizing sprint/board state for PM, counting open items, or making any "N of M" claim about issues. Companion to assign-sprint-safely (which covers WRITES; this covers READS).
| name | deliver-mail |
| description | RETIRED 2026-06-19 (post-migration, |
| scope | cross-role |
| status | retired |
| version | 2 |
| created | "2026-01-21T00:00:00.000Z" |
| retired | "2026-06-19T00:00:00.000Z" |
| superseded-by | check-mailbox (receive); CLAUDE.md "The mailbox workflow (most-frequent case)" + scripts/mail-send.sh (send) |
This skill is retired. It does not describe how mail works anymore. It is kept as a redirect so old invocations of
/deliver-mailland somewhere useful instead of a dead end.
deliver-mail automated the chat-era web↔code PM-shuttle: a human PM downloaded memos that "web agents"
(roles running on claude.ai) had written, dropped them in mailboxes/incoming/, and this skill routed them
into code-side inboxes (Phase 1 Ingest); then it walked the PM through hand-delivering code-side memos back
to web agents (Phase 2 Outbound Audit).
After the June 2026 migration wave the whole cohort runs on Claude Code. There are no web agents and no
PM-download shuttle, so Phases 1 and 2 have no referent. The old skill also claimed "Mailboxes are gitignored:
…Nothing is committed to git" — that is now flatly wrong: mailboxes are git-tracked and every mail op
lands on origin/main (see below).
The mail lifecycle is fully covered by two current surfaces. Use these directly:
check-mailbox skillCheck mailboxes/{your-slug}/inbox/, read each memo, move it to read/, respond where
Response-Requested: yes, and note action items in your session log. (The recipient also owns regenerating
their own inbox MANIFEST.md.)
scripts/mail-send.shCanonical procedure: CLAUDE.md → "The mailbox workflow (most-frequent case) — push-to-ref via mail-send.sh"
(updated 2026-06-19, #1259). In short, from your own worktree:
Write the memo + any CC copies + your sent/ mirror, and do any inbox/ → read/ moves — just
write/mv the files at their mailboxes/… paths. Do not git add/commit them by hand.
Send, passing every changed path explicitly (new files and the inbox side of a move):
scripts/mail-send.sh "mail({role}): {subject}" \
mailboxes/{recipient}/inbox/{memo}.md \
"mailboxes/xian (ceo)/inbox/{memo}.md" \
mailboxes/{you}/sent/{memo}.md
mail-send.sh (v3) builds the commit as a git object on top of origin/main (commit-tree via a throwaway
index) and pushes it straight to main. It never touches a shared working tree or the local main ref, so
concurrent agents can't sweep or strand each other. On a non-fast-forward it rebuilds on the new tip and retries
automatically. After sending, the files sit uncommitted on your worktree branch and reconcile on your next
sync — that's expected.
The old bridge dance (stash → checkout main → git add mailboxes/ → push → switch back) is also retired —
do not do it. The check-branch.sh PreToolUse hook remains as the backstop for any interactive mail commit
on a non-main branch (commit-tree isn't git commit, so mail-send.sh doesn't trip it).
CLAUDE.md → "The mailbox workflow (most-frequent case) — push-to-ref via mail-send.sh"check-mailbox skilldocs/internal/operations/branch-worktree-mailbox-discipline.mddocs/internal/operations/mailbox-bridge-transparency-design-2026-06-16.md (#1259)mailboxes/DIRECTORY.md (canonical slug → role map)(This skill may be hard-deleted once the cohort is confident no workflow still invokes /deliver-mail.)