name: pi-processes-testing description: Test workflows for the pi-processes extension. Use when validating /ps UI/UX changes, preparing reproducible test prompts, or running manual QA with test scripts while ensuring process start is done by the LLM (not the user).
pi-processes-testing
Rules
- Treat process start as LLM-only.
- Do not ask the user to run shell commands to start background processes.
- For UI tests, either:
- provide a prompt the user sends to the agent, or
- run automation via tmux.
Northwind Test Environment
All process testing uses the Northwind fixture -- a fake Node.js project with shell scripts that simulate real behavior. See the demo-setup skill for the full Northwind reference.
Setting up a test environment
test_dir="$HOME/tmp/$(date +%Y-%m-%d)-processes-test"
mkdir -p "$test_dir/northwind/.pi/prompts"
mkdir -p "$test_dir/northwind/scripts"
Register the extension in northwind/.pi/settings.json:
{
"packages": [
"/Users/alioudiallo/code/src/pi.dev/pi-processes"
],
"defaultThinkingLevel": "off"
}
Key scripts for testing
Copy from an existing Northwind fixture or create these:
| Script | Behavior | Tests |
|---|---|---|
server.sh |
Long-running with periodic stdout | Background process, dock logs, output action |
dev.sh |
Long-running with HMR output | Multiple concurrent processes, dock interleaving |
test.sh |
Stateful: fail/fail/pass cycle | alertOnFailure, output inspection, re-run |
build.sh |
Finite, exits 0 | alertOnSuccess, process completion |
migrate.sh |
Exits 0, creates marker file | Foreground execution |
lint.sh |
Exits 1 with errors | Failure display, stderr |
reset.sh |
Clears /tmp/northwind-* markers |
Idempotent re-runs |
Stateful test flow
The test script checks marker files to determine behavior:
- No
/tmp/northwind-migrated-> fails with missing table error - No
/tmp/northwind-seeded-> fails with missing seed data - Both present -> all tests pass
Always run npm run reset before a test session.
Prompt workflow
- Create a prompt file in
northwind/.pi/prompts/:- Name it after the scenario:
test-shipping-feature.md,concurrent-processes.md - Body: only the actionable steps, no headers or meta
- Name it after the scenario:
- Prompt must instruct the agent to use npm scripts (not raw shell commands)
- Prompt should tell the agent to not wait for confirmation between steps
Example test prompts
Testing the shipping feature workflow
Tests: process start, foreground execution, output reading, failure handling, re-runs.
---
description: Test the shipping feature workflow
---
Run through all steps without waiting for confirmation. Keep messages short.
## 1. Start the server
Start `npm run server` (name: "api-server") as a background process.
## 2. Run tests
Run `npm run test` in the foreground. Note the error.
## 3. Run migrations
Run `npm run migrate` in the foreground. Check server logs to confirm restart.
## 4. Run tests again
Run `npm run test` in the foreground. Note the different error.
## 5. Fix and re-run
Run `npm run seed`, then `npm run test`. Tests should pass.
## 6. Clean up
Kill all processes and clear.
Testing concurrent processes
Tests: multiple background processes, dock log interleaving, list action.
---
description: Test concurrent background processes
---
Run through all steps without waiting for confirmation.
## 1. Start services
Start `npm run server` (name: "api-server") and `npm run dev` (name: "dev-server") as background processes.
## 2. Run build and tests
Start `npm run build` (name: "build", alertOnSuccess) and `npm run test` (name: "tests", alertOnFailure).
## 3. React to alerts
Handle each alert as it comes in.
## 4. List processes
Show all processes.
## 5. Clean up
Kill all and clear.
Manual QA checklist
Dock
- Dock appears when processes start (follow mode)
Ctrl+Shift+Ptoggles dock visibilityh/lswitches focused processftoggles focus mode (single process filter)Shift+Ftoggles follow modexkills focused processqcloses/unfocuses dock
/ps overlay
/psopens full panelj/kselects processJ/Kscrolls logsenterfocuses selected processxkills selected processcclears finished processesqquits
/ps:logs overlay
/ps:logsopens overlay directlyTab/Shift-Tabswitches tabsj/kscrollsftoggles follow mode- Search:
/enters search,Enteractivates,n/Ncycles,Escclears - Current match highlight is stronger than non-current matches
Reporting format
When reporting test results:
- Prompt file used
- Pass/fail per checklist item
- Exact reproduction steps for failures
- Expected vs actual behavior