Repository navigation
Commit 4addbd4
committed
📝 Make the user's decision gate execution, and correct the result inventory
`<UserCheckpoint>` captured `elicitation.proceed` and then returned only
rendered prose, so a caller had nothing to branch on. `start.md` invoked
`Planning` and `Implementation` unconditionally and the two stages
branched on the planner verdict alone: a user answering `proceed: false`
could not stop anything. That contradicts the central user-authority
contract and #290's acceptance.
`<UserCheckpoint>` now declares `returns` and binds a schema-validated
decision — `proceed` plus the assessment fields a later prompt quotes.
One `decisionSchema` serves both paths: `<Elicit>` binds it when the
assessment reports a material choice, and an explicit `<Parse>` binds
`"proceed": true` with its reason when there is none, so continuation is
represented rather than inferred from absent elicitation data. Every
affected transition is gated — a declined handoff does not start
Planning, a declined authorization does not start Implementation, a
declined review neither revises nor accepts, and a declined acceptance
finishes as rejected rather than falling into the accepted branch.
Nesting is what the language supports; it is not stopping. The run still
expands to `<Output>` and completes, with no clean halt at a stage
boundary and no stop reason recorded for one. That is classified as
missing under #298 over #289 rather than described as enforcement.
Two engine limitations surfaced while proving this and are filed rather
than worked around silently. `<Content />` is substituted only at a body's
top level or directly inside `<Output>`, never nested inside a `<Prompt>`
(#328) — `Discovery` and `UserCheckpoint` used exactly that shape and
could not expand, so both now take the material as a prop. And a binding
made inside a Markdown component's projected content does not escape to
its caller, while the same binding inside a registered function component
does; the harness had to account for that to test the real components.
artifacts.md claimed every listed result was JSON declared inline. It is
corrected into three kinds: `PlannerHandoff` and `ImplementationPlan` are
prose with no schema and cannot gate anything; the four parsed results are
described using only fields their inline schemas declare; and
`UserDecision` is the checkpoint's declared return, with the actor and
timestamp that would make it auditable marked missing under #291.
Discrimination over the shipped subset, with a turn-recording stub agent:
a declined checkpoint records 1 agent turn and neither stage runs; the
authorized path records 2 and both run; a no-material-choice assessment
records 2 and proceeds on its explicit `<Parse>` branch while a declining
answer in scope is never consulted.1 parent eb76b16 commit 4addbd4
8 files changed
Lines changed: 421 additions & 192 deletions
File tree
- specs
- workflows/adversarial-implementation
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
45 | 56 | | |
46 | 57 | | |
47 | 58 | | |
| |||
212 | 223 | | |
213 | 224 | | |
214 | 225 | | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
215 | 229 | | |
216 | 230 | | |
217 | 231 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | | - | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
54 | | - | |
55 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
56 | 59 | | |
57 | 60 | | |
58 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
7 | 14 | | |
8 | 15 | | |
9 | 16 | | |
| |||
91 | 98 | | |
92 | 99 | | |
93 | 100 | | |
94 | | - | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
95 | 104 | | |
96 | 105 | | |
97 | 106 | | |
| |||
165 | 174 | | |
166 | 175 | | |
167 | 176 | | |
168 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
169 | 180 | | |
170 | 181 | | |
171 | 182 | | |
| |||
228 | 239 | | |
229 | 240 | | |
230 | 241 | | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
| 242 | + | |
236 | 243 | | |
237 | 244 | | |
238 | 245 | | |
| |||
254 | 261 | | |
255 | 262 | | |
256 | 263 | | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
263 | 277 | | |
264 | | - | |
| 278 | + | |
265 | 279 | | |
266 | | - | |
| 280 | + | |
267 | 281 | | |
268 | | - | |
| 282 | + | |
269 | 283 | | |
270 | | - | |
| 284 | + | |
271 | 285 | | |
272 | | - | |
273 | | - | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
274 | 294 | | |
275 | 295 | | |
276 | 296 | | |
277 | 297 | | |
278 | 298 | | |
279 | | - | |
| 299 | + | |
| 300 | + | |
280 | 301 | | |
281 | | - | |
| 302 | + | |
282 | 303 | | |
283 | | - | |
| 304 | + | |
284 | 305 | | |
285 | | - | |
| 306 | + | |
286 | 307 | | |
287 | | - | |
| 308 | + | |
288 | 309 | | |
289 | | - | |
| 310 | + | |
290 | 311 | | |
291 | | - | |
| 312 | + | |
292 | 313 | | |
293 | | - | |
294 | | - | |
| 314 | + | |
| 315 | + | |
295 | 316 | | |
296 | | - | |
| 317 | + | |
297 | 318 | | |
298 | | - | |
299 | | - | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
300 | 340 | | |
301 | 341 | | |
302 | 342 | | |
303 | 343 | | |
304 | 344 | | |
305 | 345 | | |
306 | 346 | | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
307 | 354 | | |
308 | 355 | | |
309 | 356 | | |
| |||
0 commit comments