The pstack Collection
Table of Contents
1. Summary
pstack is an upstream collection of 52 skills, installed as a Claude Code plugin. This page states how the compass framework relates to it: the collection is referenced, not copied, and each skill we adopt is classified by the regulatory function it supplies.
The classification is the framework's model of pstack. It is what makes the relationship checkable, and it is deliberately the only artefact we maintain. No upstream skill is forked.
2. Detail
2.1. Why Reference Rather Than Fork
Forking severs a feedback path. The Cybernetic Skills Framework requires a second loop that changes the regulator when it fails; a forked copy stops tracking the moment upstream improves, so the framework would hold regulation it could not update. A stale fork also fails silently, where a broken reference fails loudly.
The good regulator theorem does not require ownership. A regulator must model what it regulates, not author it. The classification below is that model.
MASD gives the same answer from the other side. A forked skill is a hand-maintained copy that varies predictably from its original, and the prescribed response to that shape is never to copy it but to expose the variability. Where an upstream skill is right in shape and wrong in local detail, we write a thin local skill holding only the difference.
2.2. The Adoption Criterion
The boundary rule governs which upstream skills we adopt at all. The framework regulates where the unaided agent would act wrongly for this project, and treats the rest as a black box. An upstream principle stating something a competent agent already does adds variety the agent has absorbed, and importing it is what the rule forbids.
Four dispositions follow.
| Disposition | Meaning |
|---|---|
| Adopt | Reference upstream unchanged and cite it from our catalogue |
| Bind | Write a thin local skill citing upstream, supplying only the project detail |
| Conflict | Overlaps a skill we already hold; resolve before adopting either |
| Skip | Variety the agent already commands, or not applicable here |
2.3. Principles
All 21 supply citation: each is cited at a judgement call and never run. The adoption column records whether the unaided agent fails at that point in this project.
| Skill | Disposition | Reason |
|---|---|---|
| build-the-lever | Adopt | Scripts the work instead of hand-editing it; observed failure here |
| fix-root-causes | Adopt | Patches symptoms unless constrained |
| guard-the-context-window | Adopt | Carries our attenuation argument into a session |
| laziness-protocol | Adopt | Over-builds; observed failure here |
| prove-it-works | Adopt | Declares done without checking; observed failure here |
| redesign-from-first-principles | Adopt | Bolts on rather than redesigning |
| sequence-verifiable-units | Adopt | Matches our task sizing rule |
| subtract-before-you-add | Adopt | Adds without removing overlap |
| separate-before-serializing-shared-state | Adopt | Worktrees share a stash stack and a build lock here |
| model-the-domain | Adopt | We already require domain grounding; this states the code side |
| type-system-discipline | Adopt | C++ project; illegal states are representable by default |
| encode-lessons-in-structure | Adopt | Sharpens the memory contract; see below |
| never-block-on-the-human | Adopt | Sound, and paired with recording; see below |
| boundary-discipline | Skip | General practice the agent already applies |
| exhaust-the-design-space | Skip | Cost exceeds the failure rate observed here |
| experience-first | Skip | Product judgement; ours is held by S5 |
| foundational-thinking | Skip | Subsumed by model-the-domain for our purposes |
| make-operations-idempotent | Skip | Compass commands already are |
| migrate-callers-then-delete-legacy-apis | Skip | Already our practice |
| minimize-reader-load | Skip | Already absorbed |
| outcome-oriented-execution | Skip | Already our practice |
Thirteen of 21 are adopted. The skipped ones are not judged wrong; they are judged already absorbed, which is the same verdict the rule reaches for a compiler.
Principles groups the thirteen for citation, records the two that needed a local binding, and lists the ones a check carries instead of prose.
2.4. Playbooks and Workflow Skills
| Skill | Function | Disposition | Reason |
|---|---|---|---|
| reflect | recording | Adopt | Runs our second loop; we have no equivalent |
| show-me-your-work | recording | Adopt | Decision trail for unattended runs; we have none |
| arena | convening | Adopt | Design bakeoff; council does not do base-and-graft |
| interrogate | convening | Adopt | Stronger variety than coun |
| swarm | convening | Adopt | Parallel coverage; we have no fan-out primitive |
| blast-radius | execution | Adopt | Proves a change is safe by running code |
| architect | sequencing | Adopt | Design before code; we have no equivalent |
| figure-it-out | sequencing | Adopt | Bespoke playbook when none fits |
| poteto-mode | mode | Adopt | A mode in our exact sense |
| recall | loading | Bind | Nearest thing pstack has to loading; must cite compass bearings |
| babysit | sequencing | Bind | Generic PR flow; ours needs compass pr and the @claude comment |
| fix-ci | execution | Bind | Must read our CI targets |
| get-pr-comments | execution | Bind | compass review list already does this |
| make-pr-easy-to-review | execution | Bind | Must respect our commit conventions |
| fix-merge-conflicts | execution | Bind | Worktree rules apply here |
| how | execution | Bind | Must consult knowledge and recipes first |
| why | execution | Bind | Our rationale lives in decisions and tasks |
| teach | execution | Skip | Wraps how and why |
| technical-writing | execution | Adopt | Subsumes compass-doc-review-ste100; ours become |
| unslop | execution | Adopt | Same surface as technical- |
| deslop | execution | Adopt | Enforces the rule code-review |
| no-comments | execution | Adopt | Enforces the rule code-review |
| thermo-nuclear-code-quality-review | execution | Bind | Ours files stories against com |
| tdd | sequencing | Skip | compass-code-add-tests binds Catch2 and our convent |
| create-verification-skill | declaration | Adopt | Builds the driver; our ladder st |
| maintain-verification-skill | recording | Adopt | Keep |
| typescript-best-practices | execution | Skip | No TypeScript here |
| automate-me | execution | Skip | Authors a personal mode; not a project concern |
| setup-pstack | execution | Skip | Plugin configuration |
| bro | execution | Skip | Restates a reply |
| what-did-i-get-done | recording | Skip | compass journal and timeline cover it |
2.5. Coverage
pstack implements five of the seven regulatory functions. It carries no
loading and no declaration: nothing in the 52 supplies a knowledge base, a
domain model, or a durable statement of intended behaviour. recall comes
closest to loading and reconstructs session context rather than domain fact.
Those two absences are where this framework is strongest, with knowledge documents, recipes, memories and Allium specifications. The two functions where our catalogue is thinnest, sequencing and convening, are where pstack is richest. The collections are complementary over the same seven functions, which is why one classification serves both.
2.6. Overlaps with Our Catalogue
Ten upstream skills cover ground our catalogue already holds. Eight of the ten are not competitors.
2.6.1. Most Overlaps Are a Rule and Its Enforcer
Classifying both sides by regulatory function dissolves them. Ours state rules
and standards, which is citation and declaration. The upstream ones run checks,
which is execution. compass-code-review-comments states where a comment belongs;
no-comments spawns a reviewer that finds violations of exactly that. A rule and
the instrument that enforces it are not competitors, and holding both is the
normal case rather than duplication.
The same reading resolves deslop, create-verification-skill and
maintain-verification-skill. Our verification ladder states what must be
verified at each rung; theirs builds and maintains the driver that does the
verifying.
encode-lessons-in-structure is a third case. It does not duplicate the memory
contract, it constrains it: when the same correction is written twice, prefer a
lint or a check to more prose. Our memories are prose, so the principle supplies
a test our contract lacked, and a memory earns its place only where no structure
can carry the rule.
Two conflicts were real.
2.6.2. never-block-on-the-human and grounding
The principle directs an agent to proceed on reversible work rather than ask. The grounding obligation directs it to stop when a concept resolves to no document. The two look opposed and are not. The principle's condition is reversibility, and the obligation's subject is one of the things that decides whether a choice is reversible.
Both are adopted, and the recording function reconciles them. An agent that
proceeds on an unresolved concept states the assumption it proceeded on, and
that record is what makes the choice reversible rather than merely undeclared.
show-me-your-work supplies the mechanism, which is why it and the principle
are adopted together.
Blocking is then reserved for what a record cannot repair. That is the irreversible: a destructive command, a message sent outside the project, a decision whose cost is paid before anyone reads the trail.
2.6.3. The prose standards
technical-writing carries Diataxis structure, Google style, STE instruction
rules and Global English. That subsumes compass-doc-review-ste100, whose content is
one of those four layers.
Ours is retired as a standard and kept as a binding. What survives is the part
upstream cannot know: which of the three writing standards this project applies
where. STE governs an agent's replies to a person, thesis prose governs the
org-roam documentation, and writing for agents governs skills, memories and
specifications (Skills in the
Compass Skill Framework). The binding names the standard and cites
technical-writing and unslop for how to meet it.
2.6.4. Convening: interrogate and council
Both amplify variety, and they do not amplify the same amount.
interrogate runs a claim past several models. council runs it past several
personas within one model. Personas share the base model's priors, so the
variety a council adds is bounded by what one model already commands, while
independent models are not so bounded.
Under the convening function that is a difference in kind, and interrogate is
the stronger instrument wherever model diversity is available. Council is
retained for deliberation that wants a reasoned verdict rather than a defect
list, which is the use it has served in this project. The weaker amplification
is recorded here so the choice is made knowingly.
2.7. Tracking Upstream
Pinned at pstack 0.9.18. This table states what we adopted and why; it does not mirror upstream content, so an upstream change invalidates a row only when it changes what that skill supplies or whether the agent still fails without it.
A new upstream release is a disturbance in the sense the framework gives the word, and the response is to re-run the adoption criterion over the diff rather than to re-import.
3. See also
- The Cybernetic Skills Framework — the seven functions and the boundary rule.
- Regulatory Functions — each function in detail.
- Skills in the Compass Skill Framework — the review of practitioner collections.
- Grounding — the obligation that never-block-on-the-human is paired with.