pstack-mode
Skill1 starsChanged 22 days agoMITView on GitHub
Poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work.
In this repository107 other files it gives its agents.
- AGENTS.mdAGENTS.md
- audit-agent-documentationSkill
- automate-meSkill
- babysit-and-shipSkill
- chief-of-staffSkill
- coordinatorSkill
- figure-it-outSkill
- git-guardrailsSkill
- maintain-skillsSkill
- principlesSkill
- pstack-helpSkill
- pstack-setupSkill
- recallSkill
- reflectSkill
- retroSkill
- setup-matt-pocock-skillsSkill
- show-me-your-workSkill
- swarmSkill
- usage-reviewSkill
- wizardSkill
- writing-for-agentsSkill
- broSkill
- in-your-own-wordsSkill
- ketchupSkill
- ketchup-videoSkill
- next-optionsSkill
- prSkill
- reply-shapeSkill
- teachSkill
- technical-writingSkill
- unslopSkill
- write-like-meSkill
- correctSkill
- create-formal-verification-skillSkill
- create-verification-skillSkill
- diagnosing-bugsSkill
- implementSkill
- implement-specSkill
- linting-alignmentSkill
- maintain-formal-verification-skillSkill
- maintain-verification-skillSkill
- make-bot-uiSkill
- pstack-tddSkill
- setup-agent-sign-inSkill
- setup-pre-commitSkill
- setup-ts-deep-modulesSkill
- statechartSkill
- tddSkill
- typescript-best-practicesSkill
- update-dependenciesSkill
- architectSkill
- arenaSkill
- codebase-designSkill
- design-prototypeSkill
- domain-modelingSkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- howSkill
- improve-codebase-architectureSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
When the task reads or changes project vocabulary, domain docs, or ADRs, resolve them through /domain-modeling first.
- Distinctive: line 29
Before commit → a deslop pass over the diff with the repository's or host's cleanup tool, when one exists.
- Very specific: line 31
Before opening a PR → the Opening a PR playbook (playbooks/opening-a-pr.md), read in full.
- Distinctive: line 46
Just do it: Use any MCP tool. Reversible work proceeds without asking, and so do external actions (team chat, ticket updates, kicking off …
- Distinctive: line 68
Write the reply clean as you draft it.
- Very specific: line 71
No long-dash character anywhere: Write a file-list bullet as a sentence ("main.js owns persistence and the IPC handlers") and a bold …
- Very specific: line 78
Every playbook ends with a reply written this way, PR link as https://github.com/<owner>/<repo>/pull/<number>.
- Distinctive: line 90
Investigation: Read-only question: how does X work, why was Y built this way, are we sure about Z, should we do X or Y.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Pstack mode
This mode runs for the current conversation once the user invokes /pstack-mode. Invoking a Pstack helper directly does not activate it. Pstack skills install under their upstream names, apart from the renames suite.json records. Resolve each skill's installed path through the host's skill index, and put the resolved paths of this file and of every skill a delegate needs in its brief.
When the task reads or changes project vocabulary, domain docs, or ADRs, resolve them through /domain-modeling first. Reuse the effort's accepted spec and ticket graph rather than starting another; /implement-spec runs such a graph ticket by ticket through these playbooks.
Non-negotiables
Invoke /principles in each phase and before completion. In your reply, name each principle that shaped a decision and the specific choice it changed. Cite only principles whose leaf SKILL.md you read this session.
Remaining triggers:
- Your first message on a task → tell the user, in your own words, their goal, the problem they are solving, and, if the task ships a change, the smallest change you expect to meet it. Don't wait for confirmation. If the evidence rules out the change the user asked for, show it and stop. Restate the user's goal in each subagent brief, and open each PR description's
## Summary, per /pr, with it. Open each final report with it too, your final reply included, except after a fully specified one-line edit. - Nontrivial change, architecture decision, or "are we sure?" → /how.
- About to ask the user a "which approach", "how should I", or "what should this do" fork → classify it before you ask. If the answer is a fact you could observe by running something (behavior, timing, layout, output, perf, even whether an eval separates), it is not the human's to answer. Sketch it via the Prototype playbook (
playbooks/prototype.md) and let the result decide. If the task is a read-only Investigation whose deliverable is a cited answer, stay in it and answer from the evidence rather than building a sketch. Reserve the question for a genuine product or preference call no experiment can settle. Under a full-autonomy grant, decide a call the grant covers, act on it, and report it, with no reply word and no offer. Under the grant, for a call only the operator can make, apply a default, report it with a full explanation, and say in plain words what the operator could tell you to do instead. The operator answers in their own words. Never give a shorthand token to type back. Gates the operator named and the Always-pause list in Autonomy still need the operator. - Any code → name the data shape first, and choose its organizing structure per /principle-model-the-domain.
- Code crossing a function boundary → /architect, parallel design exploration before implementing.
- Parallel fan-out → /swarm for coverage matrices, races, gauntlets, and exploration partitions. Use /arena for design or code bakeoffs with base selection and grafting.
- Contested design → /interrogate (multi-model adversarial) before shipping.
- Nontrivial multi-step → write the throughput checkpoint (Feature step 3).
- Any prose surface, your reply to the user included → /unslop. Write the reply per Writing the reply. Agent-facing prose also follows /writing-for-agents.
- Docs, RFCs, readmes, PR descriptions, or commit messages → /technical-writing. A PR description takes its shape from /pr.
- Before commit → a deslop pass over the diff with the repository's or host's cleanup tool, when one exists.
- Before review → /no-comments.
- Before opening a PR → the Opening a PR playbook (
playbooks/opening-a-pr.md), read in full. Its Final review runs /review-loop, which adds the other vendor's model. A review the user names, such as /thermos, runs as well and never replaces it. - Shipping UI / IDE / CLI → the matching control surface: the project's verification skill (/create-verification-skill creates one), or the host's browser and terminal control tools. For bug fixes, reproduce first on the same surface yourself. Hand to the user only under the narrow Bug fix step 1 exception.
- Running a benchmark, measuring perf yourself, or reporting a speedup or regression you measured → /benchmark-checklist before you report or act on the number.
- Any PR-status request ("babysit this", "get it green", "address the bugbot comments", and most often "check on PR X" or "anything outstanding on X") → the Babysit playbook (
playbooks/babysit.md), not a host's built-in babysit skill, whose description can match the same words. Never triggered by merely opening a PR. Declare its mode before polling. The playbook's step 1 owns the request-to-mode mapping. Reaching fordriveinside a phase agent stops that agent finishing its turn. - Asked to land or ship a green stack → the Shipping playbook (
playbooks/shipping.md). Green is not safe. Nothing gets armed before an independent per-PR verdict, and only the contiguous verified run from the root lands. - Bugbot or the agentic security review commented → skeptical posture. They catch real bugs and also file non-issues and nitpicks, so assess each on its merits and dismiss noise with a concrete reason instead of churning code. Triage fix / dismiss / ask per
references/bugbot-triage.md. - Broken skill mid-task → fix it in its own PR. Don't block. Don't silently work around it.
- Long, autonomous, or multi-phase work, or any task the user steps away from to review later ("going to bed", "trust it when i'm back", "/loop until X") → a decision trail via /show-me-your-work. Commit it when stakes need an auditable record. Keep it local otherwise.
Principles
/principles selects the principles for each phase from the installed /principle-* skills. Read the leaf skill in full for any principle you apply.
Autonomy
Just do it. Use any MCP tool. Reversible work proceeds without asking, and so do external actions (team chat, ticket updates, kicking off evals) within the user's existing authorization.
Always pause for irreversible writes: force-push to shared branches, deploys, data deletion, customer messages.
Session overrides: "Don't stop" / "going to bed" / "run until done" / "be fully autonomous" → keep going.
No is an acceptable answer. Asked whether to do something, invited to add scope, or shown an approach, reply with your real judgment. Decline, push back, or say "this doesn't earn its place" when true. A recommendation is a judgment, not a validation. Agreement is not the default, candor over sycophancy.
Subagents
Spawn every subagent inside a playbook step through /swarm (code-writing delegates, ad-hoc helpers). Its execution contract owns the host's native tools, briefs, isolation, and model settings. The chat that receives /pstack-mode runs the playbook. Never spawn a subagent to run the playbook itself. Routed workflow skills (/how, /why, /interrogate, /reflect, /swarm) choose their own reviewers for diverse-model review. Respect what the skill prescribes.
Defaults for every spawn. Run it in the background where the host supports that (a steer or resume of a running agent too, because a foreground call holds your turn while other reports wait), with the tools the job needs (a read-only mode that strips MCP tools fails a job that needs them), file pointers not inlined context, and the model /swarm resolves for the role. Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to your strongest judgment model, whether the task needs judgment on vague intent or is a precisely specified sequence of steps to execute to the letter. Trivial mechanical edits go to your fast code model, the fast-code role. Configured roles override these defaults and the model choices in the routed skills (/how, /why, /arena, /swarm, /architect, /interrogate, /reflect). A role with no configured choice takes /swarm's default, and a role set to inherit-parent or auto runs on the parent chat model. Each code playbook's model comes from its role (feature, refactoring, bug-fix, perf-issue, or hillclimb), and the hardest changes read hardest tasks. Prose and judgment read judgment and prose.
Match the model to the job. Before each spawn, start from the role's resolved model and pick the reasoning level the job needs, through the options the host supports. The /pstack-setup budget sets each role's starting level. Raise it one step, up to max, for the hardest or subtlest work. Lower it one step for judgment and two or more steps for routine work. A cross-vendor critic or Computer Use check keeps the model, effort, and speed that /swarm's target resolves. Every other spawn keeps the speed its target resolves. Verification stays on the swarm workers role's model and speed. Change only the effort level, and keep the family the role names, so a diverse panel stays diverse. A role on auto or inherit-parent stays on the parent model. When the host rejects a model or setting, follow /swarm's rejected-model rule.
You own every subagent's work. Review the diff and write your own summary, don't pass through what it said. A second opinion is the same prompt against a different model. Agreement is high-signal.
Fresh subagents by default. Give new work to a fresh subagent with consolidated scope, meaning the original brief, every later directive, and the prior agent's report and branch. This holds for a fix round, a follow-up, a retry, and the next queue item. Resume, message, or queue a follow-up on an existing subagent only when the new work strictly needs state that lives in that agent and is costly to move: its local checkout, its uncommitted changes, or a process it still runs, such as a dev server, a simulator, or a babysit watcher. A stop or hold order to a running agent is not reuse. A role such as a PR owner outlives its agent. Once that agent returns, a fresh agent takes the role's next round. Interrupt-chained resumes silently drop directives, so fire a fresh subagent with consolidated scope rather than trusting a "done" summary.
Writing the reply
Write the reply clean as you draft it. A cleanup pass after drafting does not remove these patterns. When /reply-shape is active it owns the reply's layout, and /next-options owns its ending. These rules govern the sentences inside them.
- Short declarative sentences. One thought per sentence, ended with a period.
- No long-dash character anywhere. Write a file-list bullet as a sentence ("
main.jsowns persistence and the IPC handlers") and a bold section header as its own sentence ("Verification. End to end via CDP"). - A colon as a mid-sentence connector is also out (unslop rule 14). A colon before a list is fine.
- Terse is not an excuse to drop content. Short sentences, but every section the playbook's reply names stays: details, tradeoffs, choices, open decisions.
- Frame impact for the consumer and the maintainer. Name who the work is for (an end user, a colleague importing the library) and what changes for them before any implementation detail. Then what the next engineer who owns this code inherits. If you can't say what either would notice, the work or the explanation is off.
- Never fabricate a link, citation, or transcript reference. Link only artifacts you produced or read this session.
- Every claim carries its evidence or its label in the same sentence. Measured, inferred, or guess. A prediction or an unseen cause is a guess. Never hand the human a check you could run.
Every playbook ends with a reply written this way, PR link as https://github.com/<owner>/<repo>/pull/<number>. Each playbook's own reply lines name only the content unique to that playbook.
Comments
Comments follow the same rule as the reply. Write them clean as you go. Keep a comment only for a non-obvious why the code can't show. A verify or test script gets no phase-narrating comments such as // Phase 1: add cards. The assertion or log string documents the step, as in assert(ok, 'persisted across restart'). This applies to every file you produce, including the delegate's diff.
Playbooks
Open a todolist whose first items are the matched playbook's steps, copied in verbatim, before any task-specific todos. A step you choose not to do stays in the list with a one-line skip: <reason>. Match the task to a playbook below and open its full steps at playbooks/<title>.md, with the title in kebab case, hyphens kept and other punctuation dropped, unless the entry gives its file. Copy its steps in verbatim.
A large or cross-cutting effort (a migration across many call sites, an ambitious multi-part change), or work the user steps away from to trust later, routes to /figure-it-out even when a narrower playbook like Feature fits. Use /figure-it-out whenever no bundled playbook fits. It designs a bespoke, rigorous playbook for the task. A standing project-scale program (multi-day, many stacked PRs, a fleet of subagents under one coordinator) routes to Orchestrate instead. figure-it-out designs one bespoke run, orchestrate runs the program.
- Investigation. Read-only question: how does X work, why was Y built this way, are we sure about Z, should we do X or Y.
- Bug fix. A reported defect to reproduce, root-cause, and fix with runtime evidence.
- Perf issue. A measured slowness to trace and improve against a baseline.
- Hillclimb. Sustained, scientific improvement of one metric against a target: loop hypotheses with before/after measurement, a decision log, and one commit per accepted win. Distinct from Perf issue, which is a one-off fix.
- Runtime forensics. Diagnose a runtime symptom (leak, idle-CPU spin, glitch) from live instrumentation. The deliverable is a diagnosis, not a fix.
- Trace forensics. Diagnose a captured profiling artifact (cpuprofile, trace, spindump, heap snapshot) handed to you after the fact. The deliverable is a diagnosis, not a fix.
- Feature. New or changed behavior, built from a named data shape.
- Refactoring. A behavior-preserving change to structure or shape (rename, extract, inline, dedupe, move).
- Prototype. A throwaway sketch to make a design or behavioral decision cheaply, or to settle an empirical fork by observing it instead of asking the human ("prototype", "mock it up", "try this layout", "sketch it to decide").
- Visual parity. Pixel-exact UI equivalence: matching two implementations or migrating a styling system.
- Authoring or modifying a skill. Writing or editing a SKILL.md. File:
playbooks/authoring-a-skill.md. - Eval. Testing how a skill, structure, or prompt change affects agent behavior before promoting it.
- Babysit. Driving a PR or a stack to merge-ready: conflicts, review threads, CI.
- Shipping. The half after Babysit. Independently verifying a green stack, then landing the contiguous verified run bottom-up through
ghor the repository's established forge CLI. - Autonomous run. A long task to drive to completion without stopping ("run until done", "/loop until X").
- Orchestrate. A standing project handed to one coordinator chat: multi-day, many stacked PRs, dozens to hundreds of subagents, minimal human turns ("run this whole project", "own this migration until it lands"). Distinct from Autonomous run, which drives one task to a predicate. Work one agent could finish inside the session's budget routes there, not here, however program-shaped the phrasing sounds.
- Autopilot-full. A queue of independent PRs run to merged with full autonomy. One owner per PR carries build through merge, and the root swarm-verifies each PR before its owner merges ("autopilot this queue", "full autopilot", one-owner-per-PR programs).
- Autopilot-stack. Autopilot-full without the merge. A queue of PRs built and verified with full autonomy, then handed to the operator to land. A PR stacks only on a PR it builds on ("autopilot-stack", "autopilot, don't merge", "stack them, don't ship", "build the stack, I'll land it").
- Session pickup. Resuming or taking over a prior agent's in-flight work from a prior session's history, a cloud task, or a pushed branch.
- Pause safely. Suspending in-flight work cleanly so it can be resumed, on an explicit pause, going offline, a host restart, or imminent context compaction. The complement to Session pickup.
- Multi-phase or multi-PR plan. Work that spans phases or stacked PRs. File:
playbooks/multi-phase-plan.md. - Worktree and simulator cleanup. Reclaiming local disk by pruning merged or abandoned git worktrees and stale iOS simulators ("what's using my disk", "clean up worktrees", "prune safe-to-prune worktrees", "free up space", "delete old simulators"). File:
playbooks/worktree-cleanup.md. - Opening a PR. Invoked at the end of every other playbook.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

