From d52d95ebc81740c462de020041a8f74c8ed6ec75 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 3 Oct 2026 20:32:07 +0000 Subject: [PATCH 1/3] feat(pstack): judge architect candidates as an agent contributor would change them Co-authored-by: lauren --- pstack/skills/architect/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pstack/skills/architect/SKILL.md b/pstack/skills/architect/SKILL.md index afa6eead8..2bd58a7d4 100644 --- a/pstack/skills/architect/SKILL.md +++ b/pstack/skills/architect/SKILL.md @@ -34,7 +34,7 @@ Take the runners from the `architect runners` line in the `pstack-models.mdc` ru Design it twice. Require at least two structurally distinct candidates before synthesis, even when the first looks sufficient. This is the **exhaust-the-design-space** principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape. -Screen every candidate against [`references/design-red-flags.md`](references/design-red-flags.md) before synthesis. Reject or revise shallow modules, information leakage, temporal decomposition, and pass-through methods. +Screen every candidate against [`references/design-red-flags.md`](references/design-red-flags.md) before synthesis. Assume the next contributor is an agent that sees only the files it opened, copies the nearest example, and takes the shortest path that compiles. Prefer the design where a change that looks right from one file is right for the whole repo. Compare viable candidates on interface depth. Prefer the design that hides more complexity behind a smaller, simpler public surface. A rich interface can keep call chains short by concentrating capability instead of scattering it across layers. From 3827ebafb265307683bd5c936e8fe36fdd20b506 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 3 Oct 2026 20:32:07 +0000 Subject: [PATCH 2/3] feat(pstack): add split ownership, two ways, importable internals, and hand-synced list red flags Co-authored-by: lauren --- .../architect/references/design-red-flags.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pstack/skills/architect/references/design-red-flags.md b/pstack/skills/architect/references/design-red-flags.md index 32cb24083..f8503c959 100644 --- a/pstack/skills/architect/references/design-red-flags.md +++ b/pstack/skills/architect/references/design-red-flags.md @@ -31,3 +31,27 @@ Group code around domain knowledge and ownership. Methods that run at different A pass-through method forwards the same arguments to another method with the same shape. It adds a layer without hiding complexity. Remove it or move responsibility to the module that can complete the operation. Keep a forwarding boundary only when it adds policy, adaptation, or a distinct abstraction. + +## Split ownership + +More than one module writes the same state or keeps its own copy of it. An agent that edits one writer can't see the others, so their rules diverge. + +Give each piece of state one owner. Other modules read it or ask the owner to change it. + +## Two ways to do one task + +The design supports more than one way to do the same task. An agent copies whichever way it finds first, so every way keeps gaining callers. + +Keep one way. Move callers off the others and delete them in the same change. + +## Importable internals + +A caller can import a module's internals. An agent takes the shortest path that compiles, so it imports them directly and they become part of the interface. + +Make internals unreachable from outside the module, so an import from outside fails the build. + +## Hand-synced list + +Two or more places list the same items, and adding an item means editing every list. An agent that sees one list updates only that one. + +Keep one list and derive the others from it. If a list can't be derived, make the build fail when the lists disagree. From c3cecc603316174af73c89111b8de90016feeb7a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 3 Oct 2026 20:32:07 +0000 Subject: [PATCH 3/3] chore(pstack): bump to 0.15.8 Co-authored-by: lauren --- pstack/.cursor-plugin/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pstack/.cursor-plugin/plugin.json b/pstack/.cursor-plugin/plugin.json index 1d129c601..96bbd7972 100644 --- a/pstack/.cursor-plugin/plugin.json +++ b/pstack/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "pstack", "displayName": "pstack", - "version": "0.15.7", + "version": "0.15.8", "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.", "author": { "name": "Lauren Tan"