* fix(workspace): treat hidden output paths as working state
get_changed_output_paths counted every regular file under outputs as a
produced artifact, so a finished run that left a cursor/state JSON or a .work/
scratch tree there was recorded as delivery incomplete. Skip paths with a
hidden segment below outputs; visible files still count. Part of #8239.
* fix(workspace): share the outputs prefix and document the hidden-path rule
The delivery filter partitioned on a hardcoded /outputs/ while the scanner
built the same prefix in recorder.py, so a future prefix change would silently
stop filtering working state. Export one OUTPUTS_VIRTUAL_PREFIX used by both,
and record the hidden-path exclusion in the runtime guidance contract.