@jwilger/pi-development-system 0.77.0 → 0.78.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
CHANGED
|
@@ -13,6 +13,18 @@ and adds per-spawn `model` and `thinkingLevel`. **Remove the original from the
|
|
|
13
13
|
entry), then `/reload`; otherwise both register `agent_spawn` and pi refuses the
|
|
14
14
|
duplicate.
|
|
15
15
|
|
|
16
|
+
## You do not need the slash commands
|
|
17
|
+
|
|
18
|
+
Everything the system offers is reachable without remembering a command. Describe the work in
|
|
19
|
+
plain words: when a prompt asks for new work, a fix or a review, the system adds a guideline
|
|
20
|
+
naming the tool to use (`devsys_intake`, `devsys_review_start`). A `devsys` tool always shows
|
|
21
|
+
what the current phase expects. When you say a slice is finished with no review round recorded,
|
|
22
|
+
it tells you to start one. The slash commands (`/devsys-start`, `/devsys-plan`, `/devsys-review`)
|
|
23
|
+
are shortcuts to the same tools.
|
|
24
|
+
|
|
25
|
+
With `codemode` enabled (`"defaultTools": ["+codemode"]` in pi settings), rarely used tools and
|
|
26
|
+
the `judge_*` Jev wrappers are reached through scripts; without it they are declared directly.
|
|
27
|
+
|
|
16
28
|
## Development
|
|
17
29
|
|
|
18
30
|
```sh
|
package/package.json
CHANGED
|
@@ -42,6 +42,11 @@ A warning is an error that has not been triaged yet. Before every commit:
|
|
|
42
42
|
is made type-clean and lint-clean, dropped from the list, and removed from the
|
|
43
43
|
`!src/subagents/...` exclusions in `biome.json`.
|
|
44
44
|
|
|
45
|
+
## Running all the checks at once
|
|
46
|
+
|
|
47
|
+
`references/verify.md` has a codemode script that runs the project's checks in parallel and
|
|
48
|
+
returns `{tool, exit, firstFailures}` for each. Prefer it to five separate calls.
|
|
49
|
+
|
|
45
50
|
## What the extension does
|
|
46
51
|
|
|
47
52
|
Editing a file so that it adds `#[allow(`, `#[expect(`, `// biome-ignore`,
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Verify script (codemode)
|
|
2
|
+
|
|
3
|
+
Run every check the project has in one go, in parallel, and get back only what failed.
|
|
4
|
+
Paste this into the `codemode` tool. Each nested `bash` call still passes through the
|
|
5
|
+
development-system guards, and the test-evidence tracker records each run, so a green result
|
|
6
|
+
here is evidence a later "all checks pass" claim can rest on.
|
|
7
|
+
|
|
8
|
+
Adjust `CHECKS` to the project profile (see the profile skill: TypeScript, Rust, ...).
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
const CHECKS = [
|
|
12
|
+
{ tool: "tsc", command: "npx tsc --noEmit" },
|
|
13
|
+
{ tool: "biome", command: "biome check --error-on-warnings ." },
|
|
14
|
+
{ tool: "tests", command: "npm test 2>&1 | tail -n 60" },
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
const results = await Promise.all(
|
|
18
|
+
CHECKS.map(async ({ tool, command }) => {
|
|
19
|
+
const r = await tools.bash({ command });
|
|
20
|
+
const lines = r.output.split("\n").filter((l) => l.trim() !== "");
|
|
21
|
+
return {
|
|
22
|
+
tool,
|
|
23
|
+
exit: r.exit_code,
|
|
24
|
+
firstFailures: r.exit_code === 0 ? [] : lines.slice(0, 15),
|
|
25
|
+
};
|
|
26
|
+
}),
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
return results;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Read the result before saying anything passed: every `exit` must be `0`. A non-zero `exit`
|
|
33
|
+
means fix `firstFailures` first, then run the script again.
|
|
34
|
+
|
|
35
|
+
Keep to checks that only read: a script may call any tool, and its nested calls are guarded
|
|
36
|
+
like direct ones, but a verify script that edits files hides the edit inside one tool call.
|