@rmrdeveloper/sideroom-pi 5.0.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/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/pi-extension.js +1175 -0
- package/package.json +70 -0
- package/skills/sideroom-critic/SKILL.md +32 -0
- package/skills/sideroom-grilling/SKILL.md +81 -0
- package/skills/sideroom-spec/SKILL.md +38 -0
- package/skills/sideroom-transcribe-audio/SKILL.md +38 -0
- package/skills/sideroom-transcribe-audio/scripts/transcribe.py +40 -0
- package/src/assets/agents/sideroom-code-reviewer.md +30 -0
- package/src/assets/agents/sideroom-fixer.md +37 -0
- package/src/assets/agents/sideroom-implementer.md +39 -0
- package/src/assets/agents/sideroom-planner.md +31 -0
- package/src/assets/agents/sideroom-verifier.md +32 -0
- package/src/assets/artifacts/GUIDELINES_TEMPLATE.md +463 -0
- package/src/assets/artifacts/guidelines/java.md +211 -0
- package/src/assets/artifacts/guidelines/javascript.md +235 -0
- package/src/assets/artifacts/guidelines/php-laravel.md +210 -0
- package/src/assets/artifacts/guidelines/python.md +227 -0
- package/src/assets/artifacts/guidelines/typescript.md +231 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ronald Moreno Rodríguez
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Sideroom Pi
|
|
2
|
+
|
|
3
|
+
Sideroom Pi is a global [Pi package](https://pi.dev/docs/latest/packages). It
|
|
4
|
+
registers the `/sideroom` command inside Pi and runs planner, implementer,
|
|
5
|
+
reviewer, verifier, and fixer as isolated Pi SDK sessions.
|
|
6
|
+
|
|
7
|
+
It creates no `.pi` configuration, task graph, harness state, or other files
|
|
8
|
+
in the repository being changed.
|
|
9
|
+
|
|
10
|
+
## Install globally in Pi
|
|
11
|
+
|
|
12
|
+
Build the package, then let Pi install it globally. Do not use `-l`: that
|
|
13
|
+
would create project-local configuration.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install
|
|
17
|
+
npm run build
|
|
18
|
+
pi install /absolute/path/to/sideroom-pi
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
For a published release:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pi install npm:@rmrdeveloper/sideroom-pi@5.0.0
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Start Pi from the repository you want to work in, then invoke the extension:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
/sideroom "Add a health endpoint"
|
|
31
|
+
/sideroom --language php-laravel "Add invoice export"
|
|
32
|
+
/sideroom --read-only "Review the retry behavior"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Pi extension commands are necessarily slash commands, so `/sideroom` is the
|
|
36
|
+
single command; there is no subcommand or separate binary to run. When the
|
|
37
|
+
request is omitted, Pi asks for it using its own UI.
|
|
38
|
+
|
|
39
|
+
Supported guideline variants are `typescript` (default), `javascript`,
|
|
40
|
+
`php-laravel`, `python`, and `java`. `--read-only` removes write-capable tools
|
|
41
|
+
from every role. `--max-fix-passes <number>` changes the default limit of two
|
|
42
|
+
repair passes.
|
|
43
|
+
|
|
44
|
+
## Provenance and isolation
|
|
45
|
+
|
|
46
|
+
`/sideroom` is dispatched to the extension before Pi expands skills or sends
|
|
47
|
+
the command to the interactive agent. The extension then creates direct,
|
|
48
|
+
in-memory SDK sessions for the five Sideroom roles. Those child sessions load
|
|
49
|
+
only this package's skills and explicit policy; global Pi skills, extensions,
|
|
50
|
+
prompt templates, and global context files are excluded.
|
|
51
|
+
|
|
52
|
+
At the end of every run, Pi displays a `Sideroom completed` or `Sideroom
|
|
53
|
+
failed` message with its provenance and the completed roles. It also records
|
|
54
|
+
the same trace in Pi's session history as `sideroom:run`; this is Pi session
|
|
55
|
+
metadata, never a file in the target repository.
|
|
56
|
+
|
|
57
|
+
The packaged `sideroom-grilling` skill runs as the design-decision gate. Its
|
|
58
|
+
questions use Pi's native decision UI. During a run, a persistent Pi widget
|
|
59
|
+
shows the active phase, the waiting-for-answer state, and the direct-SDK
|
|
60
|
+
provenance. Selecting a recommendation accepts it; selecting the alternate
|
|
61
|
+
option opens a custom-answer field. The widget is removed automatically when a
|
|
62
|
+
run completes or fails; the final Pi session message remains as the durable
|
|
63
|
+
record. It is not a request to any global skill with the same name.
|
|
64
|
+
|
|
65
|
+
## Content and guidelines
|
|
66
|
+
|
|
67
|
+
The five role prompts are in `src/assets/agents/`. The shared policy is
|
|
68
|
+
`src/assets/artifacts/GUIDELINES_TEMPLATE.md`; the language layers live in
|
|
69
|
+
`src/assets/artifacts/guidelines/`. Implementer and fixer receive those
|
|
70
|
+
policies before their write gate and must read them before every code-writing
|
|
71
|
+
tool call.
|
|
72
|
+
|
|
73
|
+
Reusable Pi skills ship in `skills/`: `sideroom-grilling`, `sideroom-critic`,
|
|
74
|
+
`sideroom-spec`, and `sideroom-transcribe-audio`. Pi loads them directly through
|
|
75
|
+
the package manifest.
|
|
76
|
+
The transcription skill needs `uv`, Python, and `ffmpeg` only when explicitly
|
|
77
|
+
used.
|
|
78
|
+
|
|
79
|
+
## Development
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npm install
|
|
83
|
+
npm run check
|
|
84
|
+
npm run build
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Biome is the sole formatter and linter. Runtime code uses Pi's SDK only; Pi
|
|
88
|
+
provides `@earendil-works/pi-coding-agent` as a peer dependency.
|
|
89
|
+
|
|
90
|
+
## Releases and commits
|
|
91
|
+
|
|
92
|
+
Commit messages must follow the Conventional Commits format. The existing
|
|
93
|
+
Husky `commit-msg` hook validates each local commit with Commitlint, for
|
|
94
|
+
example `feat: add a pipeline summary` or `fix: validate malformed findings`.
|
|
95
|
+
|
|
96
|
+
Every user-visible package change needs a Changeset. Create one with:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npm run changeset
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Review pending release work with `npm run changeset:status`. On the release
|
|
103
|
+
branch, run `npm run version-packages`, review and commit the updated
|
|
104
|
+
`package.json`, `package-lock.json`, and `CHANGELOG.md`, then publish
|
|
105
|
+
deliberately with `npm run release`. The repository does not publish
|
|
106
|
+
automatically from CI.
|
|
107
|
+
|
|
108
|
+
## Layout
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
src/
|
|
112
|
+
pi-extension.ts Pi extension entry point for /sideroom
|
|
113
|
+
pi-command.ts slash-command parsing
|
|
114
|
+
app.ts Pi pipeline assembly
|
|
115
|
+
core/ orchestration, roles, contracts, and content catalog
|
|
116
|
+
runtimes/pi.ts direct Pi SDK adapter for isolated child sessions
|
|
117
|
+
assets/ role prompts and coding guidelines
|
|
118
|
+
skills/ package-provided Pi skills
|
|
119
|
+
```
|