Observed
devague export (0.20.1) renders parked vagueness selectively: the exported
spec-md's ## Open / follow-up section carries follow_up and out_of_scope
parks, but omits every unknown_nonblocking park.
On a frame with eight parked items (five unknown_nonblocking, two
follow_up, one out_of_scope), the exported artifact lists exactly three —
the two follow_up entries and the one out_of_scope entry. The five
unknown_nonblocking parks exist only in .devague/frames/<slug>.json.
Why it matters
The exported spec-md is pitched as the durable, citable artifact — the thing
/spec-to-plan reads and the thing reviewers cite. A /challenge pass's
contract is that residual surprise risk survives the pass as first-class
record. When unknown_nonblocking parks don't render, the artifact silently
reads as more certain than the frame actually is: in our case the spec showed
no trace of parked unknowns around secrets handling, package installation,
resumable-session semantics, or an unverified host-support matrix — all of
which the frame holds.
unknown_blocking presumably never reaches export (it blocks convergence),
but unknown_nonblocking is precisely the kind that legitimately coexists
with a converged frame — which makes it the kind most worth rendering.
Expected
All parked vagueness on a converged frame renders in the exported spec,
ideally grouped or labeled by kind so unknown_nonblocking residual risk is
distinguishable from follow_up work and out_of_scope statements.
Repro sketch
devague new "x" --title x
# ...converge a minimal frame...
devague park "residual risk" --kind unknown_nonblocking
devague park "later work" --kind follow_up
devague converge && devague export
# exported spec-md: "later work" present, "residual risk" absent
Environment
devague 0.20.1 (uv tool install), observed on frame
headspace-on-docker in agentculture/headspace-cli.
Observed
devague export(0.20.1) renders parked vagueness selectively: the exportedspec-md's
## Open / follow-upsection carriesfollow_upandout_of_scopeparks, but omits every
unknown_nonblockingpark.On a frame with eight parked items (five
unknown_nonblocking, twofollow_up, oneout_of_scope), the exported artifact lists exactly three —the two
follow_upentries and the oneout_of_scopeentry. The fiveunknown_nonblockingparks exist only in.devague/frames/<slug>.json.Why it matters
The exported spec-md is pitched as the durable, citable artifact — the thing
/spec-to-planreads and the thing reviewers cite. A/challengepass'scontract is that residual surprise risk survives the pass as first-class
record. When
unknown_nonblockingparks don't render, the artifact silentlyreads as more certain than the frame actually is: in our case the spec showed
no trace of parked unknowns around secrets handling, package installation,
resumable-session semantics, or an unverified host-support matrix — all of
which the frame holds.
unknown_blockingpresumably never reaches export (it blocks convergence),but
unknown_nonblockingis precisely the kind that legitimately coexistswith a converged frame — which makes it the kind most worth rendering.
Expected
All parked vagueness on a converged frame renders in the exported spec,
ideally grouped or labeled by kind so
unknown_nonblockingresidual risk isdistinguishable from
follow_upwork andout_of_scopestatements.Repro sketch
Environment
devague 0.20.1 (
uv tool install), observed on frameheadspace-on-dockerin agentculture/headspace-cli.