@rmrdeveloper/sideroom-pi 7.1.0 → 8.0.1

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
@@ -37,7 +37,7 @@ Sideroom answers each one with a small, opinionated surface:
37
37
  | Silent guessing | `sideroom_ask` — questions with an opinion, one batch at a time |
38
38
  | Invisible work | `sideroom_todo` — a live board above the editor, always one step in focus |
39
39
  | Repo pollution | Session-branch state — the board and history die with the session, never with a commit |
40
- | Style drift | A one-line reminder + the on-demand `sideroom-guidelines` skill |
40
+ | Style drift | A pre-edit gate + the on-demand `sideroom-guidelines` skill |
41
41
  | Vague plans | `sideroom-grill` — an interview that settles the words before the work |
42
42
 
43
43
  ## What it feels like
@@ -59,11 +59,12 @@ wall of tool calls, it:
59
59
  clickable `file://` links. `F8` opens the full session history; `R` clears
60
60
  it. Only successful Pi `write`/`edit` calls are tracked — no guesses from
61
61
  shell output, Git, or subagents.
62
- - **Writes code that reads the same every time.** Before every edit, the
63
- agent is nudged toward one shared checklist: guard clauses, braced
64
- conditionals, fail fast, one responsibility per unit, no speculative
65
- layers. Language-specific deltas for Java, PHP/Laravel, TypeScript,
66
- Python, Go, and Rust load on demand — never dumped into the prompt.
62
+ - **Writes code that reads the same every time.** Before the first edit in
63
+ each agent run, the agent must read the shared contract and the one complete
64
+ guide matching the target language. Premature `write`/`edit` calls are
65
+ blocked. The guides cover guard clauses, braced conditionals, fail-fast
66
+ errors, focused units, and all 19 canonical rules without dumping them into
67
+ the system prompt.
67
68
 
68
69
  ## What's inside
69
70
 
@@ -108,13 +109,15 @@ one to interview at all, `sideroom-domain-scaffold` reads the central
108
109
  domain code as source of truth, builds or completes `CONTEXT.md` on its
109
110
  own, and grills the conflicting terms once, at the end.
110
111
 
111
- ### Guidelines — a nudge, not a novel
112
+ ### Guidelines — a gate, not a novel
112
113
 
113
- A short system-prompt reminder points at the packaged
114
- `sideroom-guidelines` skill. The skill body holds the shared Do/Don't table;
115
- one matching file under `skills/sideroom-guidelines/references/languages/`
116
- covers the language being edited. The canonical seed,
117
- `assets/artifacts/GUIDELINES_TEMPLATE.md`, is never pasted into the prompt.
114
+ A short system-prompt contract points at the packaged
115
+ `sideroom-guidelines` skill. Before `write` or `edit`, a guard requires a
116
+ full read of the packaged skill and, for supported targets, the one complete
117
+ language guide under `skills/sideroom-guidelines/references/languages/`.
118
+ Each guide mirrors all 19 rules in the canonical seed with idiomatic examples.
119
+ The seed, `assets/artifacts/GUIDELINES_TEMPLATE.md`, is never pasted into the
120
+ system prompt.
118
121
 
119
122
  ## Quick path
120
123
 
@@ -146,6 +149,11 @@ pi update --extension npm:@rmrdeveloper/sideroom-pi
146
149
 
147
150
  ### Questionnaire contract
148
151
 
152
+ Each batch accepts one to four questions, with two to four caller-provided
153
+ options per question. Tab labels accept at most 16 characters and option
154
+ labels at most 60. Inputs that exceed a limit are rejected rather than
155
+ truncated.
156
+
149
157
  Write prompts, tab labels, and option copy in the language the user is
150
158
  speaking; keep ids, option values, and TUI chrome in English. Do not send
151
159
  *Out of scope* or custom-answer rows yourself — the UI always adds them.
@@ -157,6 +165,10 @@ Items have stable string ids, short content, and one of `pending`,
157
165
  start the next one in the same `update` call. Snapshots live in the active
158
166
  session branch and are rebuilt after navigation and compaction.
159
167
 
168
+ A forked session inherits the board visible at its fork point. Later board
169
+ updates are reconstructed from each session's active branch, so the fork and
170
+ the original session evolve independently.
171
+
160
172
  ### Edited-files contract
161
173
 
162
174
  - Trigger: only successful Pi `write`/`edit` results.
@@ -166,9 +178,14 @@ session branch and are rebuilt after navigation and compaction.
166
178
 
167
179
  ### Guidelines contract
168
180
 
169
- Read the skill before `write`/`edit`. Read at most one language delta per
170
- change — the one matching the path. Other languages follow the shared table
171
- only.
181
+ In each agent run, fully read the exact packaged skill path before the first
182
+ `write`/`edit`. For Java, PHP/Laravel, TypeScript/TSX, Python, Go, or Rust,
183
+ also fully read the packaged guide matching the target path. Reads with
184
+ `offset` or `limit`, failed reads, and same-named files elsewhere do not count.
185
+ The extension blocks the mutation until the required reads succeed; unsupported
186
+ languages use the shared table. Do not route around
187
+ the gate through Bash or another file-mutation path. Before finishing, review
188
+ the diff against the loaded guide and run the relevant project checks.
172
189
 
173
190
  ### Grill contract
174
191