FREE ENGINEERING SKILLS · By Yabasha

Go deep.
Ship with proof.

Give your agent a deliberate way to plan, build, review, and verify. An unofficial port of Lauren Tan's pstack for ChatGPT and Codex.

Skills-only. Free to use. No plugin purchases.

01 / THE TASK BRIEFpoteto-mode

A goal. A boundary. A check.

Use poteto-mode to fix the
checkout regression.

Reproduce the failure.
Keep the change scoped.
Verify the affected journey.
51skills in the package
24engineering principles included
23task playbooks

Pinned to pstack v0.15.15.
Port candidate v0.1.3.

START WITH THE WORK

A prompt for the task in front of you.

These are illustrative prompts. Adapt the goal and constraints to your project; the host must expose the required tools.

poteto-help

Choose a workflow

You know the goal, but not which skill to start with.

Use poteto-help to choose a workflow for reviewing a Laravel API change. I need to check tenant isolation and identify the smallest useful verification step.

WHAT TO EXPECT

A recommended skill, a usable next prompt, and references to the relevant instructions.

Read the full skill ↗

DECISIONS, NOT SLOGANS

Principles you can apply to real code.

The 24 principles are included in the 51 skills. Here are six concrete ways to use them.

01Make invalid states harder to expressmodel-the-domain
THE SITUATION

A job has queued, running, and completed booleans that can contradict each other.

THE CHANGE IN APPROACH

Use explicit states with the data each state requires, such as a worker ID while running and a result after completion.

Read the principle ↗
Use principle-model-the-domain to replace the job status booleans with explicit states and allowed transitions. Inspect callers and verify that invalid combinations are rejected.
02Ask what the measurement provesexplain-the-number
THE SITUATION

A benchmark claims a speedup without stating which work finished.

THE CHANGE IN APPROACH

Define completed work, the limiting factor, and the measurement method before accepting the number.

Read the principle ↗
Use principle-explain-the-number to assess this benchmark. Identify completed work, warm-up, sample selection, and the limiting factor. Keep unsupported performance claims out of the conclusion.
03Remove the shared write firstseparate-before-serializing-shared-state
THE SITUATION

Two workers overwrite the same generated file.

THE CHANGE IN APPROACH

Give each worker its own output location and merge results at one explicit integration step.

Read the principle ↗
Use principle-separate-before-serializing-shared-state to inspect these concurrent writes. Separate independent outputs before proposing a lock, and verify how integration handles conflicts.
04Verify the actual resultprove-it-works
THE SITUATION

The code looks correct, but the affected user journey has not been exercised.

THE CHANGE IN APPROACH

Inspect the delivered artifact and run the check that observes the requested behavior.

Read the principle ↗
Use principle-prove-it-works to verify this change against the actual app. Report the checks run, their results, and anything that remains unverified.
05Remove the obsolete pathsubtract-before-you-add
THE SITUATION

A new implementation would leave two ways to perform the same operation.

THE CHANGE IN APPROACH

Find the old behavior that can be removed before adding the replacement.

Read the principle ↗
Use principle-subtract-before-you-add to plan this migration. Identify obsolete behavior and callers, remove redundancy within scope, and keep the final design coherent.
06Make the contract explicittype-system-discipline
THE SITUATION

A plain string can represent either a tenant ID or a document ID.

THE CHANGE IN APPROACH

Distinguish the identifiers and require complete handling of the states the application supports.

Read the principle ↗
Use principle-type-system-discipline to review these identifiers and result types. Distinguish semantic IDs, validate external input at the boundary, and verify callers without adding unsafe casts.

THE COMPLETE DIRECTORY

Find a skill. Read its contract.

Search every skill and principle. Each entry links to its full instructions and includes a copyable example.

51 entries

SKILL01

architect

Sketch caller usage, types, signatures and module boundaries before implementation, compare whole-shape alternatives and redesign when repeated implementation friction invalidates the sketch.

Usage example
Use architect. Design a stateful cache boundary, compare two ownership models, derive types from caller usage and implement the selected sketch within authorized scope.
SKILL02

arena

Compare isolated attempts at the same artifact, pick a maintainable base, graft the strongest rejected-candidate ideas coherently and verify the synthesis.

Usage example
Use arena. Compare two cache API designs in isolated directories, judge completed candidates, select the cleaner boundary and adapt one useful idea from the other design.
SKILL03

automate-me

Draft or revise a personal mode from scoped evidence and user preferences.

Usage example
Use automate-me. After baseline acceptance, update an existing jay-mode from newer workspace history, retain uncontradicted preferences and show the draft before an authorized local edit.
SKILL04

benchmark-checklist

Vet performance measurements before reporting or acting on a speedup or regression.

Usage example
Use benchmark-checklist. Vet export on a 60k-row dataset across revisions A and B using at least 5 alternating runs per side before reporting a speedup.
SKILL05

blast-radius

Find what a change can break outside the diff and prove the safety fact by running real code.

Usage example
Use blast-radius. Review cache invalidation and trace a caller outside the diff through teardown timing, then run the real pinned library to test the safety fact.
SKILL06

bro

Restate the previous assistant message in plain, coherent, concise language without jargon.

Usage example
Use bro. After an explanation about concurrent writes, invoke bro to get the same point in plain language.
SKILL07

correct

Find repeated repository mistake classes and prevent recurrence through architecture, types, lint or CI, tests, then judgment rules.

Usage example
Use correct. Use /correct to investigate two reverted changes that copied the same unsafe state owner, then propose one owner and prove the old mistake fails.
SKILL08

create-verification-skill

Generate a project-local verification skill grounded in the real app and prove one mapped user-facing feature.

Usage example
Use create-verification-skill. Inspect a notes app toolbar, keyboard shortcuts and CLI; generate its local verification skill and feature map, then exercise one feature and retain proof after cleanup.
SKILL09

figure-it-out

Design and execute an auditable playbook when no narrower workflow fits, with task-scaled rigor and hypothesis loops.

Usage example
Use figure-it-out. Use /figure-it-out for a large migration, capture the old behavior, verify atomic units and record an inconclusive measurement as an open limit.
SKILL10

how

Explain subsystem architecture and runtime flow for a senior engineer using inspected code.

Usage example
Use how. Trace an API request from its route through its service calls and storage layer, citing the files read.
SKILL11

interrogate

Adversarially review changes through competing reviewers and pragmatic lead judgment without automatically applying changes.

Usage example
Use interrogate. Challenge a branch diff with identical reviewer prompts, then trace a disputed null-input finding to its caller before categorizing it.
SKILL12

maintain-verification-skill

Keep a project verification skill and feature map honest through source review and live coverage of every feature.

Usage example
Use maintain-verification-skill. Audit a save feature that now requires entitlement and asynchronous completion; reconcile source and live proof, update confirmed doc drift, and report product regressions without changing product code.
SKILL13

make-bot-ui

Build a custom page whose local server wakes a bot routine over a webhook and optionally serves it on Tailscale.

Usage example
Use make-bot-ui. Design buttons that POST an agreed action to a local server, which wakes the configured bot routine without exposing its sender key.
SKILL14

no-comments

Spawn Comment Sicko, fix accepted findings, and offer encodings for claimed constraints.

Usage example
Use no-comments. Invoke no-comments on an authorized diff to remove redundant narration while retaining its license header and justified public API contract.
SKILL15

poteto-help

Answer pstack setup and workflow questions with one usable prompt and its source.

Usage example
Use poteto-help. For a question about reproducing an app bug, read the Bug fix playbook, provide its reproduction and verification recipe, and disclose missing app verification support without starting work.
SKILL16

poteto-mode

Apply poteto's deliberate worker routing, principle-grounded decisions, concise detailed prose, simple code and verified playbooks.

Usage example
Use poteto-mode. For a scoped feature, read the full mode and Feature playbook, name its data shape, write the checkpoint, assign an authorized fresh worker and inspect its resulting diff before reporting evidence.
PRINCIPLE17

attack-the-premise

Question a shared premise after repeated failed fixes, census actor imbalance and remove persistent role asymmetry.

Usage example
Use principle-attack-the-premise. After two balancing fixes fail, count which workers retain excess load across runs and trace the assignment that keeps selecting them.
PRINCIPLE18

boundary-discipline

Concentrate validation, type narrowing and error handling at system boundaries; trust internal types and keep business logic in pure functions.

Usage example
Use principle-boundary-discipline. Validate an incoming order quantity in an HTTP adapter, pass a typed order to pure pricing logic and remove redundant internal quantity checks.
PRINCIPLE19

build-the-lever

Build the smallest rerunnable tool that performs or proves nontrivial work, making its result reviewable.

Usage example
Use principle-build-the-lever. Migrate one file by hand, build an idempotent codemod, and rerun it on that file to compare the result before applying it to the remaining files.
PRINCIPLE20

encode-lessons-in-structure

Encode recurring corrections in enforceable structures and close the correction loop.

Usage example
Use principle-encode-lessons-in-structure. Require a source revision in the release-record schema and reject records that omit it, then remove the redundant reminder.
PRINCIPLE21

exhaust-the-design-space

Explore distinct alternatives before choosing a novel interaction or architectural approach.

Usage example
Use principle-exhaust-the-design-space. Compare a command palette, a direct manipulation canvas and a guided form for a novel editing interaction before choosing its implementation.
PRINCIPLE22

experience-first

Choose user delight over implementation convenience, justify scope and polish the central workflow.

Usage example
Use principle-experience-first. Choose three polished import controls over ten rough controls because users can finish and recover from the core import workflow with clear feedback.
PRINCIPLE23

explain-the-number

Check that a measured number describes completed work and has an evidenced limiting factor before trusting, reporting or acting on it.

Usage example
Use principle-explain-the-number. Before reporting a parser speedup, check completed requests, repeated-run spread, cache effects and the runtime limiter using benchmark-checklist.
PRINCIPLE24

fix-root-causes

Reproduce debugging symptoms, trace their root causes and fix the causes.

Usage example
Use principle-fix-root-causes. For a crash after restart, reproduce it and inspect stale serialized state before adding a nil-check guard.
PRINCIPLE25

foundational-thinking

Choose core data, access patterns and ownership before logic; sequence foundations so later work stays simple.

Usage example
Use principle-foundational-thinking. Before building a job queue, define job state and worker ownership, trace claim and status queries, and isolate concurrently mutable state.
PRINCIPLE26

guard-the-context-window

Protect the finite context window by isolating large payloads, keeping frequently used content inline and bounding phases.

Usage example
Use principle-guard-the-context-window. For a large repository corpus, assign authorized workers bounded document groups and inspect their summaries. Without workers, read narrower groups sequentially and label reduced capability.
PRINCIPLE27

laziness-protocol

Prefer deletion and the smallest change that preserves required behavior.

Usage example
Use principle-laziness-protocol. Remove a forwarding adapter that adds no behavior, preserving the service rounding and tax contract.
PRINCIPLE28

make-operations-idempotent

Make repeated and interrupted operations converge to the correct state through reconciliation.

Usage example
Use principle-make-operations-idempotent. After an interrupted payment job, inspect its action identity and destination outcome before authorized recovery with the same idempotency key.
PRINCIPLE29

migrate-callers-then-delete-legacy-apis

Migrate internal callers and delete the old API in the same refactor wave.

Usage example
Use principle-migrate-callers-then-delete-legacy-apis. Inventory callers of an internal request API, move them to the new contract, update contract tests and delete the old API in one reviewed unit.
PRINCIPLE30

minimize-reader-load

Reduce the layers readers trace and the hidden or mutable state they must hold to understand code.

Usage example
Use principle-minimize-reader-load. Trace an invoice total through two one-caller pass-through wrappers, collapse them where they hide no decisions, and derive total from rows instead of synchronizing a cached module value.
PRINCIPLE31

model-the-domain

Encode domain rules in concrete structures that remove invalid states, repeated assumptions and scattered branches.

Usage example
Use principle-model-the-domain. Replace queued, running and completed job booleans with states carrying worker IDs or results and explicit allowed transitions.
PRINCIPLE32

never-block-on-the-human

Proceed on authorized reversible work, present reviewable results and let the human course-correct asynchronously while preserving confirmation and explicit review gates.

Usage example
Use principle-never-block-on-the-human. Apply an authorized local code fix and present the diff; wait for required human review before merging, while continuing independent authorized work.
PRINCIPLE33

outcome-oriented-execution

Converge on the intended verifiable migration end state without retaining throwaway compatibility states.

Usage example
Use principle-outcome-oriented-execution. Migrate a module to the agreed interface in phases, declare temporary caller breakage, check touched code during migration and verify the completed target after removing temporary adapters.
PRINCIPLE34

prove-it-works

Verify task outputs against the real artifact before declaring completion.

Usage example
Use principle-prove-it-works. After a feature compiles, run the feature and read its actual stored value before declaring it complete.
PRINCIPLE35

redesign-from-first-principles

Integrate a requirement by redesigning the affected structure as if the requirement had been present from the start, preserving option value.

Usage example
Use principle-redesign-from-first-principles. When adding tenant ownership, rethink the data model and access paths with ownership as a foundational assumption, update references, and deliver coherent increments.
PRINCIPLE36

separate-before-serializing-shared-state

Eliminate shared mutable write targets before structurally serializing access to a required shared object.

Usage example
Use principle-separate-before-serializing-shared-state. Give an indexer and a metrics worker separate state files instead of separate fields in one state.json; combine their independent facts when reading the report.
PRINCIPLE37

sequence-verifiable-units

Sequence work and delivery into small units that each end in a verified state.

Usage example
Use principle-sequence-verifiable-units. Migrate one schema boundary, run its concrete migration check, then begin the next unit only after green; deliver the failing test before its fix.
PRINCIPLE38

subtract-before-you-add

Remove obsolete behavior and redundant complexity before adding its replacement, then build on the simpler base.

Usage example
Use principle-subtract-before-you-add. Inspect callers of an obsolete handler, remove that handler and its redundant validator, then add the specified replacement without speculative guards.
PRINCIPLE39

test-behavior-not-implementation

Keep tests that observe user-visible behavior and catch defects instead of asserting implementation details.

Usage example
Use principle-test-behavior-not-implementation. Call slugify with Hello, World! and assert hello-world; confirm that an empty function fails the assertion when execution is available.
PRINCIPLE40

type-system-discipline

Use types to exclude invalid states, distinguish semantic IDs and require complete handling of variants.

Usage example
Use principle-type-system-discipline. Replace completed plus optional completedAt with open and done variants, where done carries its timestamp.
SKILL41

recall

Reconstruct scoped recent working context from history, shared records and independently checked live state.

Usage example
Use recall. Recall seven days of cache work in the active workspace, use a complete supplied capsule first, sweep prior incidents and verify the current branch and PR state.
SKILL42

reflect

Mine an active session for durable learnings and route them into explicitly approved skill edits.

Usage example
Use reflect. Reflect on a debugging session, reject already-covered advice, route enforceable checks to Backlog and show proposed skill edits for approval.
SKILL43

setup-pstack

Configure pstack model choices per role and reasoning budget with confirmed availability and an explicit persistence gate.

Usage example
Use setup-pstack. Run /setup-pstack when model enumeration is unavailable; retain inherited choices, reject an unknown slug, and return a session-only table without writing personal configuration.
SKILL44

show-me-your-work

Keep a reviewable local decision trail for long-running or unattended work.

Usage example
Use show-me-your-work. Record a verified checkpoint and a reverted decision, resolve their evidence, audit this run and request an independent different-family reviewer.
SKILL45

swarm

Fan out N workers over slices, identical race briefs or a mixture, then return one evidenced report.

Usage example
Use swarm. Use /swarm to cover separate repository slices at an exact commit; reject a result missing its sampling method, retry it once and report any remaining coverage gap.
SKILL46

tdd

Make broken behavior executable before fixing a bug with a clear cheap test path, then prove the focused regression test passes.

Usage example
Use tdd. For an incorrect empty-input result with an existing local unit test, add the intended-behavior assertion, run it and observe the failure, fix the implementation, then run the same test and report the passing result.
SKILL47

teach

Explain what a body of work is, how it works and why it was built that way at the learner pace, grounded in inspected files.

Usage example
Use teach. Explain a supplied chat virtualization subsystem using its actual rendering and loading code, then layer in the reasons and edge cases as requested.
SKILL48

technical-writing

Write or review clear technical documents using Diátaxis, Google developer style, STE instruction rules, and Global English syntax.

Usage example
Use technical-writing. Rewrite a how-to about budget.mjs and budget.json while keeping the lower-only --write rule and CI failure condition.
SKILL49

typescript-best-practices

Apply the canonical concrete TypeScript typing, boundary validation, testing and telemetry practices when reading or editing TypeScript.

Usage example
Use typescript-best-practices. Replace a JSON.parse cast and optional-field state bag with schema parsing and a kind-discriminated union; keep number[] for a total sum and strengthen a partial newest-session input.
SKILL50

unslop

Remove AI writing patterns while preserving meaning and intended tone.

Usage example
Use unslop. Rewrite a supplied paragraph to remove chatbot praise, filler, jargon, and unnecessary passive voice without adding facts.
SKILL51

why

Investigate historical motivation, design rationale, regressions, postmortems and data-backed thresholds with cited confidence tiers.

Usage example
Use why. Trace a retry threshold through git history, PR discussion, a linked ticket and release telemetry, separating stated rationale from correlation.

CAPABILITIES NEED EVIDENCE

Know what the host can actually do.

The frozen 0.1.3 revision has reviewed discovery and workflow evidence for both hosts. Reduced capability and blocked cases remain visible. These historical results do not automatically qualify a later package.

Read the compatibility details ↗
104 reviewed workflow cases per host
HostPassedReducedBlocked
Codex335021
ChatGPT215627

Workers, model selection, history, and persistence depend on exposed host controls. Parallel workflows can consume more tokens. The plugin does not grant broader permissions.

PACKAGE DOCUMENTATION

The README, in full.

View on GitHub ↗
Read setup, skills, compatibility, and credits

pstack-openai

Engineering workflows for planning, implementation, review, and verification in ChatGPT and Codex.

An unofficial, skills-only port of pstack, created by Lauren Tan. yabasha maintains and publishes this port. It includes 51 skills, including 24 engineering principles, and 23 task playbooks from the pinned pstack v0.15.15 baseline.

Website and examples · Get started · Choose a skill · Compatibility · Documentation

Free to use, with no plugin purchases. Availability is intended for all countries supported by the distribution platform. The existing upstream icon is retained.

What it does

  • Routes engineering tasks through a playbook with poteto-mode.
  • Compares alternative implementations with arena, or divides independent work with swarm when the host supports workers.
  • Explains code and design decisions with how, why, and teach.
  • Reviews changes with interrogate and checks affected code with blast-radius.
  • Adds verification workflows and removes formulaic wording with unslop.

The plugin provides instructions and bundled helper source. It does not provision models, register an MCP server, or enable integrations. Worker execution, model selection, history access, and persistence depend on the host and the permissions available in the current chat.

Get started

  1. Install the package through your host's supported plugin controls. Follow the Codex setup guide or ChatGPT setup guide. Directory publication is still pending; do not assume a public listing exists.
  2. Start a fresh chat with the plugin enabled and confirm its skills are available.
  3. Invoke a skill with a concrete goal and a check for completion. For example:
Use poteto-help to choose a workflow for reviewing a pull request.
Use poteto-mode to fix the failing checkout flow. Reproduce the bug,
keep the change scoped, and verify the affected user journey.
Use how to explain the authentication flow, citing the relevant files.

Slash-command availability depends on the host. If a command is absent, ask for the skill by name. If the host has not loaded the plugin, a name alone does not make its instructions available.

Reading skills requires no helper dependency installation. Some development helpers need Bun and their pinned dependencies. See helper setup before using those helpers.

Choose a skill

GoalStart with
Find the right workflowpoteto-help
Implement or fix somethingpoteto-mode
Sketch types and module boundariesarchitect
Compare competing solutionsarena
Divide independent workswarm
Review a change and its consequencesinterrogate, blast-radius
Understand code or its rationalehow, why, teach
Build a project verification workflowcreate-verification-skill
Improve proseunslop

Browse all 51 skills, all 24 principles, or the workflow selection guide.

Compatibility

Version 0.1.3 has retained discovery and workflow evidence for both hosts at frozen revision 51f209daf83cd97d64f89881d66533bb59dc57db. The reviewed results cover 104 workflow cases per host:

HostPassedReduced capabilityBlocked
Codex335021
ChatGPT215627

Package discovery is recorded separately. Reduced results do not establish full behavior or independent workers. Blocked cases remain unsupported in their recorded environment. See the reviewed results, Codex case index, and ChatGPT case index.

These results qualify the named frozen revision. The README and listing changes in this publication candidate need a new frozen revision and fresh discovery checks before release. See compatibility details and the publication checklist.

Documentation

TopicGuide
InstallationCodex, ChatGPT
Workflow walkthroughsPoteto mode, Arena, Swarm
Original guide and port notesGuide index
TroubleshootingTroubleshooting, host test matrix
Optional helpersDependency setup, Benny readiness
MaintenanceUpstream updates, customization boundary, rollback
PublicationReadiness checklist and packaging command, changelog

Permissions

Invoking a skill does not authorize installation, changes to settings, external messages, publishing, integrations, or recurring schedules. Workflows must respect the user's scope and the host's permissions. Model and worker claims require observed execution.

Credits and license

Lauren Tan created pstack and its skills and principles. yabasha maintains this unofficial port and its host adaptations, documentation, and packaging. The original MIT copyright and permission notice remain in LICENSE.

Read NOTICE.md for attribution and UPSTREAM.md for source pins, hashes, and adaptation provenance. This port is not affiliated with or endorsed by the upstream project or its author.

A BETTER STARTING POINT

Bring the goal.
Make the checks explicit.

Choose your first prompt ↑