@hobin/developer 0.1.5 → 0.1.6
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 +35 -11
- package/extensions/developer.ts +381 -92
- package/extensions/state.ts +120 -8
- package/extensions/tui.ts +341 -37
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -129,12 +129,20 @@ Developer uses different Pi surfaces for different information:
|
|
|
129
129
|
|
|
130
130
|
- The footer contains only global mode, protocol state, and current route target.
|
|
131
131
|
- A compact widget appears only while a route or unresolved question exists.
|
|
132
|
-
- `/develop` uses a `SelectList` action menu.
|
|
132
|
+
- `/develop` uses a `SelectList` action menu that exposes pending questions directly instead of hiding them behind a second question menu.
|
|
133
133
|
- `/develop status` opens a branch-grounded, read-only status panel with recent
|
|
134
134
|
route/judgment history and the alternatives recorded for consecutive direct work.
|
|
135
|
-
- `/develop questions` uses stable internal question IDs.
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
- `/develop questions` uses stable internal question IDs. A sole question opens
|
|
136
|
+
directly; multiple questions use one selector before the answer/evidence editor.
|
|
137
|
+
Editor Escape returns to the previous root or multi-question selector; a sole
|
|
138
|
+
direct editor closes because it has no parent selector. Cancelling leaves
|
|
139
|
+
protocol state unchanged, while submitting sends the resolution request to Pi.
|
|
140
|
+
- A newly opened, answerable user question that gates direct work is pushed to the
|
|
141
|
+
TUI immediately. The user can answer now or leave it open. When the question
|
|
142
|
+
supplies a `choice-form` `responseSpec`, Answer now renders every required
|
|
143
|
+
decision as an individual option control, collects option-specific detail, and
|
|
144
|
+
provides a review/edit step before submission. The answer still requires a
|
|
145
|
+
focused judgment and explicit `question_updates` resolution.
|
|
138
146
|
- Selection and status overlays use most of the terminal, keep a stable rendered
|
|
139
147
|
height while navigating or scrolling, and remain bounded on small terminals.
|
|
140
148
|
They support mouse-wheel/trackpad scrolling, arrow keys, Page Up/Down, and
|
|
@@ -170,13 +178,24 @@ question records:
|
|
|
170
178
|
|
|
171
179
|
- `resolutionOwner`: `agent`, `user`, or `environment`;
|
|
172
180
|
- `gate`: `none`, `before-direct`, or `before-completion`;
|
|
173
|
-
- `resolutionCriteria`: the observable evidence or answer that closes it
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
181
|
+
- `resolutionCriteria`: the observable evidence or answer that closes it;
|
|
182
|
+
- optional `context`: detailed Markdown choices, examples, or constraints shown
|
|
183
|
+
when the question is revisited without repeating that detail in every protocol prompt;
|
|
184
|
+
- optional user-owned `responseSpec`: a bounded `choice-form` with required
|
|
185
|
+
single-choice fields and optional per-option detail prompts.
|
|
186
|
+
|
|
187
|
+
A producer should use `response_spec` when a user must answer finite decisions
|
|
188
|
+
such as A, B1–B4, C, and so on. Each decision becomes one field; the TUI does not
|
|
189
|
+
infer controls by parsing Markdown. Options such as A3 or G3 that need additional
|
|
190
|
+
input declare `detail_prompt`. Missing or malformed replay data falls back to the
|
|
191
|
+
freeform editor without dropping the pending question.
|
|
192
|
+
|
|
193
|
+
Selecting `/develop questions` opens structured controls when a valid user
|
|
194
|
+
`responseSpec` exists. Otherwise it opens the owner-specific editor: user
|
|
195
|
+
questions ask for the required decision, agent questions ask Pi to investigate,
|
|
196
|
+
and environment questions request access or an external observation. Submitting
|
|
197
|
+
focuses the question in branch state; an explicit ID, focus, or exact question
|
|
198
|
+
match associates the next route. Selection alone never closes it.
|
|
180
199
|
|
|
181
200
|
Every judgment rechecks all pending questions. `question_updates` can resolve an
|
|
182
201
|
unfocused question when implementation, tests, inspection, user input, or an
|
|
@@ -190,6 +209,11 @@ routes and Pi built-in mutation tools even in adaptive mode. A
|
|
|
190
209
|
the protocol non-idle and prevents verification debt from being cleared as a
|
|
191
210
|
completion claim.
|
|
192
211
|
|
|
212
|
+
A resolved or not-applicable judgment may preserve a distinct follow-up question:
|
|
213
|
+
finishing the routed judgment does not imply that no later work was discovered.
|
|
214
|
+
It may not reopen its own normalized question under a resolved status; that route
|
|
215
|
+
must remain needs-evidence/blocked or explicitly refine a focused parent instead.
|
|
216
|
+
|
|
193
217
|
When a judgment replaces a broad unresolved question with more specific evidence
|
|
194
218
|
questions, only the actionable children remain. Equivalent question wording is
|
|
195
219
|
deduplicated while preserving the existing identity.
|