A vendor-agnostic port of pstack by Lauren Tan (poteto) for OpenCode.
pstack is a set of engineering skills and principles that turn your coding agent into a disciplined engineering team. This port adapts pstack for OpenCode's tool system, removing Cursor-specific dependencies.
Component
Count
Description
poteto-mode
1
Main routing skill
principles/
21
Engineering principle skills
unslop
1
Auto-loading writing cleanup skill
Option 1: Copy to global skills
cp -r poteto-mode ~ /.config/opencode/skills/
cp -r principles ~ /.config/opencode/skills/
cp -r unslop ~ /.config/opencode/skills/
Option 2: Copy to project skills
mkdir -p .opencode/skills
cp -r poteto-mode .opencode/skills/
cp -r principles .opencode/skills/
cp -r unslop .opencode/skills/
Option 3: Clone and symlink
git clone https://github.com/dsam/pstack-opencode.git ~ /.config/opencode/skills/pstack-opencode
ln -s ~ /.config/opencode/skills/pstack-opencode/poteto-mode ~ /.config/opencode/skills/poteto-mode
ln -s ~ /.config/opencode/skills/pstack-opencode/principles ~ /.config/opencode/skills/principles
ln -s ~ /.config/opencode/skills/pstack-opencode/unslop ~ /.config/opencode/skills/unslop
The unslop skill has alwaysApply: true, so it should auto-load at session start. If it doesn't, explicitly load it:
The main routing skill:
skill(name="poteto-mode")
Using individual principles
Each principle is a standalone skill:
skill(name="principle-laziness-protocol")
skill(name="principle-model-the-domain")
skill(name="principle-prove-it-works")
Principle
When to apply
Laziness Protocol
Refactoring, sizing diffs, tempted to add abstractions
Foundational Thinking
Before writing logic
Redesign from First Principles
Integrating new requirements
Subtract Before You Add
Sequencing additions or refactors
Minimize Reader Load
Reviewing hard-to-trace code
Outcome-Oriented Execution
Planned rewrites and migrations
Experience First
Product/UX tradeoffs
Exhaust the Design Space
Novel decisions with no precedent
Build the Lever
Non-trivial work
Principle
When to apply
Model the Domain
Stateful logic, branching code
Boundary Discipline
Validation, error handling, adapters
Type System Discipline
Designing types or signatures
Make Operations Idempotent
Commands, lifecycle steps, retries
Migrate Callers Then Delete
Introducing new internal APIs
Separate Before Serializing
Concurrent actors on shared state
Principle
When to apply
Prove It Works
After completing a task
Fix Root Causes
Debugging
Sequence Work into Verifiable Units
Multi-step work, stacking commits
Principle
When to apply
Guard the Context Window
Large outputs, long files
Never Block on the Human
Reversible decisions
Principle
When to apply
Encode Lessons in Structure
Writing same instruction repeatedly
pstack (Cursor)
OpenCode
AskQuestion
question tool
apply_patch
write / edit tools
poteto-agent
task(subagent_type="general")
Cursor models
OpenCode categories
cursor-team-kit
OpenCode built-in skills
pstack's core philosophy translates to any coding agent:
Write less, but higher quality code
Fearless parallelism — trust agents to write good, verifiable code
Rigorous engineering principles — not suggestions, but mandatory workflows
Verified work — prove it works before declaring done