Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions harness/pstack/claude-code/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

73 changes: 73 additions & 0 deletions harness/pstack/claude-code/skills/digest/SKILL.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion harness/pstack/claude-code/skills/poteto-help/SKILL.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pstack/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ to keep [`/poteto-mode`](./skills/poteto-mode/SKILL.md) on across turns, pick it
| [`/recall`](./skills/recall/SKILL.md) | you're starting or resuming work and want your recent context on a topic rebuilt from your own chat history and the shared record, handed back as a tight current-state brief. |
| [`/ketchup`](./skills/ketchup/SKILL.md) | you want what changed in this chat since your last message, in plain words and small visuals, with every item waiting on you listed and decidable from the reply alone, even when that makes the reply long. |
| [`/ketchup-video`](./skills/ketchup-video/SKILL.md) | you want the `/ketchup` catch-up as a short subtitled video of slides, with the calls waiting on you as text under it. |
| [`/digest`](./skills/digest/SKILL.md) | you run a Grok Bot team and want one chat that gathers every bot's asks, sorted urgent first, with your answers relayed verbatim to the right bot. |
| [`/blast-radius`](./skills/blast-radius/SKILL.md) | you have a small-looking change and want to know what else it could break, with the one fact it's safe because of proven by running code, not asserted. |
| [`/architect`](./skills/architect/SKILL.md) | you're about to write code that crosses a function boundary and want the caller's usage, types, and module shape settled first. |
| [`/arena`](./skills/arena/SKILL.md) | you want N parallel attempts at the same thing, then to grab the best parts of each. |
Expand Down
73 changes: 73 additions & 0 deletions pstack/skills/digest/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
name: digest
description: "Gather every teammate bot's asks into one chat, sorted urgent first, with verbatim relay back to the right bot. Use on a schedule or for 'what needs me?'. Grok Bot teams with a conductor. Use for /digest."
disable-model-invocation: true
---

# Digest

You are the user's single reply surface for a Grok Bot team. The conductor spreads work across bots. You gather what every bot needs from the user into this chat, and forward the user's answers back verbatim. [`/ketchup`](../ketchup/SKILL.md) catches the user up in one chat. `/digest` covers the whole team and adds relay.

Use [`/bro`](../bro/SKILL.md)'s voice: plain words, short sentences, no jargon. Never paraphrase a decision into something softer or different.

## When to run

Run on a schedule the user sets, such as 9am, 1pm, and 6pm local, at most once per hour. Run when the user asks "what needs me?" or invokes `/digest`.

Gathering stays read-only. Do not change code, post, merge, deploy, or write to GitHub.

## Gather

Since your last successful run, read every teammate bot's chat transcript. List PRs waiting on the user's review. Remember what you already reported. Include an item only if it is new, changed, or aged enough that the user should see it again. Never invent an item.

For each ask, quote the bot's exact words. If the bot showed a card with options, quote those options too. Link to that bot's chat or the PR.

## Write the digest

If nothing needs the user, send nothing. No "all clear" filler.

Otherwise sort into three sections, urgent first. Number every item across the whole digest.

**Needs you now.** Decisions, approvals, blockers, errors, account or security problems.

**Waiting on you.** Unanswered questions, prompts, cards or drafts. Say how long each has waited.

**FYI.** Short list of finished results worth knowing.

Example shape (fake bots):

```
Needs you now
1. **deploy-bot** — "Approve prod deploy for api v2.3.1?" Options: Approve / Hold. [chat](https://example.invalid/deploy-bot)
2. **security-bot** — "Rotate the leaked test key now?" [chat](https://example.invalid/security-bot)

Waiting on you
3. **docs-bot** — "Which title: 'Guide' or 'Reference'?" waiting 2d. [chat](https://example.invalid/docs-bot)

FYI
4. **test-bot** — Finished the flake hunt; no repro. [chat](https://example.invalid/test-bot)
```

## Relay

The user answers here by item number or in plain words. Match the reply to one item. If it could fit more than one, ask one short question. Never guess on an approval.

Send the user's exact words to the receiving bot in this form:

```
Relayed from the user via digest, verbatim: "<user words>".
Source: the user's message <address> in digest's chat.
Answers your ask: "<quoted ask>".
```

The receiving bot must read that source message in this transcript before acting on any approval, so you never approve on the user's behalf.

One user reply covering several items becomes one message per bot. Split by destination.

New work that spans multiple bots goes to the conductor. Single-bot tasks go straight to that bot.

Tell the user in one line where each reply went. When a bot answers back, surface that answer here.

## Anti-jobs

Never answer, approve, decide, or reply for the user. Never claim the user agreed to something they did not write. Never chase bots. The conductor does that. Never do the work inside an item. No posting, merging, deploying, or GitHub writes. Never invent an item.
3 changes: 2 additions & 1 deletion pstack/skills/poteto-help/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ The default answer is `/poteto-mode`, which runs most of the others when its ste
| Catch up on their own recent work on a topic | [`/recall`](../recall/SKILL.md) |
| Catch up on what changed in this chat since their last message, in plain words and small visuals, with every item waiting on them listed and decidable from the reply alone | [`/ketchup`](../ketchup/SKILL.md) |
| Catch up like `/ketchup`, in a short subtitled video of slides, with the waiting calls as text under it | [`/ketchup-video`](../ketchup-video/SKILL.md) |
| Gather every teammate bot's asks into one chat on a Grok Bot team, sorted urgent first, and relay the user's answers verbatim to the right bot | [`/digest`](../digest/SKILL.md) |
| Know what a small diff could break outside itself | [`/blast-radius`](../blast-radius/SKILL.md) |
| Settle types and module shape before code that crosses a function boundary | [`/architect`](../architect/SKILL.md) |
| Get several attempts at one brief, merged into the best one | [`/arena`](../arena/SKILL.md) |
Expand Down Expand Up @@ -108,7 +109,7 @@ Close calls:
- `/arena` gives every worker the same brief and merges the best parts. `/swarm` splits work into slices or a race and returns one report.
- `/architect` implements right after it settles the design. Add "with checkpoint" to review the design before it writes code.
- `/interrogate` reviews the diff. `/blast-radius` looks for breakage outside the diff and proves the one fact that makes the change safe.
- `/recall` rebuilds context across recent chats. `/ketchup` covers only this chat since the user's last message. Resuming one specific chat or branch is the Session pickup playbook.
- `/recall` rebuilds context across recent chats. `/ketchup` covers only this chat since the user's last message. `/digest` covers the whole Grok Bot team and adds relay. Resuming one specific chat or branch is the Session pickup playbook.
- `/figure-it-out` designs one rigorous run. The Orchestrate playbook runs a program that spans days and many PRs. The Autonomous run playbook drives one task to a finish condition.

Not in pstack:
Expand Down
1 change: 1 addition & 0 deletions pstack/skills/poteto-help/references/recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ Swap in the real paths, skills, and done checks. Informal wording works.
- `/poteto-mode im going to bed. <goal> in a fresh worktree off <base>. done means <checks>. keep a decision log. don't ask me before committing. /loop until done. if you're truly stuck after a few hours, stop and write up why.`
- `/show-me-your-work catch me up on what you did last night.` Read its Attention section first.
- `/ketchup` catches you up on this chat since your last message and lists every call that waits on you.
- `/digest` on a Grok Bot team gathers every bot's asks into one chat and relays your answers verbatim to the right bot.
- `/poteto-mode full autopilot on this queue. each item is independent.`
- `/poteto-mode autopilot these changes, but don't merge. i'll land them.`
- `/reflect capture what we learned so the next run doesn't repeat it.` Approve only edits that change a future decision.
Expand Down