@zenspc/pi-pstack 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/package.json +1 -1
- package/skills/deslop/SKILL.md +22 -0
- package/skills/poteto-mode/SKILL.md +1 -1
- package/skills/poteto-mode/playbooks/autopilot-full.md +1 -1
- package/skills/poteto-mode/playbooks/autopilot-stack.md +1 -1
- package/skills/poteto-mode/playbooks/opening-a-pr.md +2 -2
- package/skills/poteto-mode/references/plan.md +1 -0
package/README.md
CHANGED
|
@@ -23,9 +23,9 @@ That is it. The other skills are situational; the mode skill uses them as needed
|
|
|
23
23
|
|
|
24
24
|
## What you get
|
|
25
25
|
|
|
26
|
-
- **
|
|
26
|
+
- **45 skills**, including:
|
|
27
27
|
- `poteto-mode`: the main entry point. Reads your request, matches one of 22 playbooks (bug fix, perf, feature, refactoring, investigation, shipping, orchestrate, autopilot, and more), copies its steps in verbatim, and routes to the other skills as steps fire.
|
|
28
|
-
- Workflow skills: `how`, `why`, `recall`, `blast-radius`, `architect`, `arena`, `swarm`, `interrogate`, `reflect`, `teach`, `tdd`, `no-comments`, `unslop`, `bro`, `figure-it-out`, `show-me-your-work`, `create-verification-skill`, `maintain-verification-skill`, `automate-me`, `technical-writing`, `typescript-best-practices`.
|
|
28
|
+
- Workflow skills: `how`, `why`, `recall`, `blast-radius`, `architect`, `arena`, `swarm`, `interrogate`, `reflect`, `teach`, `tdd`, `no-comments`, `unslop`, `deslop`, `bro`, `figure-it-out`, `show-me-your-work`, `create-verification-skill`, `maintain-verification-skill`, `automate-me`, `technical-writing`, `typescript-best-practices`.
|
|
29
29
|
- 21 principle skills (`principle-laziness-protocol`, `principle-model-the-domain`, `principle-prove-it-works`, ...), one rule each, indexed inline by `poteto-mode`.
|
|
30
30
|
- **2 subagents** (loaded by pi-subagents):
|
|
31
31
|
- `poteto-agent`: runs poteto's style end to end. Reads `poteto-mode` in full before any work.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenspc/pi-pstack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "pstack for Pi: rigorous agent workflows you can parallelize with confidence - poteto-mode playbooks, engineering principles, multi-model review panels, and subagents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deslop
|
|
3
|
+
description: Remove AI-generated code slop and clean up code style
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Remove AI code slop
|
|
7
|
+
|
|
8
|
+
Check the diff against main and remove AI-generated slop introduced in the branch.
|
|
9
|
+
|
|
10
|
+
## Focus Areas
|
|
11
|
+
|
|
12
|
+
- Extra comments that are unnecessary or inconsistent with local style
|
|
13
|
+
- Defensive checks or try/catch blocks that are abnormal for trusted code paths
|
|
14
|
+
- Casts to `any` used only to bypass type issues
|
|
15
|
+
- Deeply nested code that should be simplified with early returns
|
|
16
|
+
- Other patterns inconsistent with the file and surrounding codebase
|
|
17
|
+
|
|
18
|
+
## Guardrails
|
|
19
|
+
|
|
20
|
+
- Keep behavior unchanged unless fixing a clear bug.
|
|
21
|
+
- Prefer minimal, focused edits over broad rewrites.
|
|
22
|
+
- Keep the final summary concise (1-3 sentences).
|
|
@@ -25,7 +25,7 @@ Remaining triggers:
|
|
|
25
25
|
- Nontrivial multi-step → write the throughput checkpoint (Feature step 3).
|
|
26
26
|
- Any prose surface → the **unslop** skill. Your reply is a prose surface; write it per **Writing the reply**. Agent-facing prose follows `playbooks/authoring-a-skill.md` and `/skill:unslop`.
|
|
27
27
|
- Docs, RFCs, readmes, PR descriptions, or commit messages → the **technical-writing** skill (`/skill:technical-writing`).
|
|
28
|
-
- Before commit → the **
|
|
28
|
+
- Before commit → the **deslop** skill (`/skill:deslop`) over the branch diff.
|
|
29
29
|
- Before review → the **no-comments** skill (`/skill:no-comments`).
|
|
30
30
|
- Shipping UI / IDE / CLI → verify on the real surface: drive the browser or app through the project's verification skill or an automation harness. For bug fixes, reproduce first on the same surface yourself; hand to the user only under the narrow Bug fix step 1 exception.
|
|
31
31
|
- Any PR-status request → the **Babysit** playbook (`playbooks/babysit.md`), and not any generic review command whose description matches the same words. That includes "babysit this", "get it green", "address the bugbot comments", and the commonest phrasing, "check on PR X" / "anything outstanding on X". Never triggered by merely opening a PR. Declare its mode before polling; the playbook's step 1 owns the request-to-mode mapping. Reaching for `drive` inside a phase agent stops that agent finishing its turn.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**You own the verdicts, never the PRs. One owner runs each PR from build to merge, and nothing merges without your clean swarm verdict.** For "autopilot this queue", "full autopilot", and one-owner-per-PR programs. The job is a queue of independent PRs handed over to drive to merged with full autonomy. Orchestrate runs a standing program whose coordinator lands verified work itself and whose workers never merge; here each PR's owner carries the whole lifecycle through the merge, and the root keeps only verification, countersigns, and audits.
|
|
4
4
|
|
|
5
5
|
1. **Mark the operator's items and honor state-then-wait.** Items the operator names stay hers. She reviews and she clicks, and no owner merges one. When she asks for the protocol or the plan to be stated, deliver the statement and stop. Execution starts only on her explicit go. On that go, record the full program objective as a standing goal in the coordination store. It continues across turns until the queue is done.
|
|
6
|
-
2. **Spawn one owner per PR with the full lifecycle.** One async subagent per PR owns build, gt registration, self-proof on the real artifact (the **prove-it-works** principle skill), skeptical Bugbot triage per `../references/bugbot-triage.md`, a slop-strip (the **
|
|
6
|
+
2. **Spawn one owner per PR with the full lifecycle.** One async subagent per PR owns build, gt registration, self-proof on the real artifact (the **prove-it-works** principle skill), skeptical Bugbot triage per `../references/bugbot-triage.md`, a slop-strip (the **deslop** skill (`/skill:deslop`)), `/skill:no-comments` (the **no-comments** skill), a restack onto current trunk, the babysit loop to green (`playbooks/babysit.md`), and the merge itself. The restack always precedes babysit and never waits for drift or conflicts. Every owner keeps a decisions.tsv trail per the **show-me-your-work** skill, never committed, returned with its reports. The merge is the one step an owner may not take alone; step 4 gates it.
|
|
7
7
|
3. **Run owners in true parallel and never stack.** Many owners at once when PRs are self-contained: one writer per branch, disjoint files, cross-PR drift absorbed by rebase. Only genuinely overlapping work serializes. Self-contained PRs branch straight off main, and sequenced work is merge-then-branch. Every PR is still gt-registered; the Graphite-metadata rule is about the UI, not stacks. One exception: an owner that must split a genuinely dependent change may hold a short private stack.
|
|
8
8
|
4. **Swarm-verify every merge-ready head before its merge.** At the owner's merge-ready head SHA, fan out parallel independent verifiers per the **swarm** skill and aggregate to one verdict. The fan-out mechanics live there; do not restate them. The lanes: re-run the gates at that SHA; prove the load-bearing behavior live on the real surface the change touches (the project's verification harness as the change demands); audit the receipts and the diff, distrusting the PR body. The live lane is the floor, and a verdict without it is not clean. No merge without the root's clean verdict. Findings go back to the owner for fix-forward, and the new head gets a fresh swarm and a fresh verdict.
|
|
9
9
|
5. **On a clean verdict the owner merges and takes the next item.** The owner merges only from a head freshly restacked on trunk. The merge-ready report is made at a trunk-current head, and the swarm verdict pins that SHA. If trunk moves again before the merge, the patch-id rule in `playbooks/shipping.md` governs re-verification; a new head voids the verdict unless the patch-id is unchanged. The owner squash-merges its own PR and picks up its next self-contained item from the queue. The operator's full-autonomy grant plus the root's clean verdict is the merge authorization that babysitting alone never has. Operator-named items stop at merge-ready and wait for her click.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
If `gt` is on PATH, follow the Graphite steps below unchanged.
|
|
7
7
|
If it is not, follow **Without Graphite** and do not invent `gt` commands.
|
|
8
8
|
|
|
9
|
-
1. **Run the owner loop unchanged.** One async subagent per PR owns its change end to end: build, `gt` registration of its own PR, self-proof (gates, CI, receipts), skeptical Bugbot triage per `../references/bugbot-triage.md`, a slop-strip (the **
|
|
9
|
+
1. **Run the owner loop unchanged.** One async subagent per PR owns its change end to end: build, `gt` registration of its own PR, self-proof (gates, CI, receipts), skeptical Bugbot triage per `../references/bugbot-triage.md`, a slop-strip (the **deslop** skill (`/skill:deslop`), `/skill:no-comments` (the **no-comments** skill), and babysit to green per `playbooks/babysit.md`. Owners parallelize when the work is self-contained. Every owner keeps a `decisions.tsv` trail per the **show-me-your-work** skill, never committed, returned in its report.
|
|
10
10
|
2. **Audit on the wake chain.** The root runs an audit tick roughly every 30 minutes. An async root uses its scheduled wake instead. Never leave the cadence to memory or lossy completion notifications. At each tick, re-read this playbook from trunk with `git show origin/main:pstack/skills/poteto-mode/playbooks/autopilot-stack.md`, then re-read the standing goal. Audit the operation against both. Fix drift during that tick and treat it as urgent. Probe each owner with a generic liveness or status check. Count only side effects as progress: commits, pushes, PR or check deltas, and store reports. Treat a lane that passes its expected runtime without a side effect as stuck. Stand it down and dispatch a replacement at once. Do not wait for a polite return.
|
|
11
11
|
3. **Hold the operator gates.** State-then-wait, so a request to state the plan is not a go. On her explicit go, record the full program objective as a standing goal in the coordination store. The goal continues across turns until the chain is done. On her stop, every owner takes an immediate zero-writes hold.
|
|
12
12
|
4. **Verify at STACK-READY.** The owner reports STACK-READY with the exact head SHA. The root swarm-verifies that SHA, fan-out per the **swarm** skill: parallel independent verifiers re-running the gates at that SHA, a live runtime floor over the load-bearing behavior, and a receipts-and-diff audit that distrusts the PR body. The swarm aggregates to one verdict. Findings go back to the owner, and nothing enters the stack unverified.
|
|
@@ -6,7 +6,7 @@ Invoked at the end of every other playbook.
|
|
|
6
6
|
|
|
7
7
|
**Commits.** Commit liberally; rebase into small, ordered commits before opening PRs. Each commit is a future PR: landable, ordered to tell the story. Amend when the fix belongs in a just-made commit; new commit when separable.
|
|
8
8
|
|
|
9
|
-
**PRs.** Run `/skill:
|
|
9
|
+
**PRs.** Run `/skill:deslop` from over the diff before commit. Run `/skill:no-comments` before review. Write every PR title, PR description, and commit body with `/skill:technical-writing`, then apply `/skill:unslop`. Apply every technical-writing layer except Diátaxis. Use one word for each action, keep articles, and avoid `-ing` when a plain verb works.
|
|
10
10
|
|
|
11
11
|
**Titles.** Use Conventional Commits in the form `type(scope): subject`. Use `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, or `perf` as the type. Use the changed area, such as `pstack` or `poteto-mode`, as the scope. Keep the subject short and imperative. Apply the same `/skill:technical-writing` and `/skill:unslop` pass as the body. Name a real symbol when one carries the change. For example, `fix(pstack): retarget opening-a-pr babysit trigger`. Do not add a trailing period.
|
|
12
12
|
|
|
@@ -32,4 +32,4 @@ Rebase on `main` before substantial stack work.
|
|
|
32
32
|
|
|
33
33
|
**Babysit.** Opening a PR does not start a babysit. Post the URL and keep building. Finish the phase or stack first. Run a separate babysit pass only when the user asks for one after the whole stack exists. A babysit for each new PR stalls the build and spends checks on commits that later waves restart. Push back when feedback drifts from intent.
|
|
34
34
|
|
|
35
|
-
A subagent that opens a PR runs `interrogate`, `unslop`, and `no-comments`. It returns the URL and does not babysit. Return to the parent.
|
|
35
|
+
A subagent that opens a PR runs `interrogate`, `deslop`, `unslop`, and `no-comments`. It returns the URL and does not babysit. Return to the parent.
|
|
@@ -96,6 +96,7 @@ In the overview, name which poteto-mode non-negotiables the implementer must app
|
|
|
96
96
|
|
|
97
97
|
- the **how** skill over each unfamiliar subsystem before changing it.
|
|
98
98
|
- the **interrogate** skill for adversarial review on contested designs before shipping.
|
|
99
|
+
- the **deslop** skill over the branch diff before commit.
|
|
99
100
|
- The **unslop** skill over each diff's prose surface before commit.
|
|
100
101
|
- the **show-me-your-work** skill to keep a decision trail when the plan is large enough to need an auditable record.
|
|
101
102
|
- The **Babysit** playbook after opening the PR.
|