BOHICA-LABS / BOHICA-LABS/vsdd-factory
process-gap(hooks/pr-manager): pr-manager-completion-guard demands step-9 merge-confirmation at SubagentStop before the merge exists — completion pressure on an unmet external fact (fabrication risk; inverse of #707)
- Dominant language
- Rust
- Stars
- 2
- Forks
- 1
- Avg merge
- 6h 43m
- Merged PRs (30d)
- 29
Description
During a per-story PR delivery (single-identity factory, rc.23), the `pr-manager` agent stopped mid-flow before the merge had landed, and the `pr-manager-completion-guard` SubagentStop hook applied completion pressure for step-9 (merge confirmation) — a step whose truth condition depends on an external fact the agent could not yet observe as satisfied. The agent correctly refused to record step-9 as complete, but the pressure pattern is a fabrication hazard: a less-careful agent complying would write a false merge-completion claim into the delivery record, and merge-completion claims are exactly the kind of record that downstream state and audit artifacts trust without re-derivation.
This is the correctness-relevant inverse of #707, which documents the same guard failing to *recognise* genuinely-completed steps due to per-stop-event marker accounting; #673 is the parent class (blocking-hook pressure induces literal compliance with false text). Requested behaviour: the guard must not emit step-9 completion pressure until the merge is independently observable — e.g. gate the step-9 branch of the guard on `gh pr view --json state,mergeStateStatus,mergedAt` reporting a merged state, and treat a stop-event during a legitimate in-progress phase (waiting on CI, awaiting review convergence) as "flow in progress", not "steps missing". Confidence note: the root-cause attribution is behavioural inference from one observation — the guard ships as a WASM binary, so its firing condition was not read from source. If maintainers consider this the same surface as #707, please link/dedupe.
Origin: wirerust wave-084 cycle-close (PG-W84-006 / L-W84-007); validated per DF-VALIDATION-001 on 2026-07-25.
Contributor guide
Research direction
The issue is in the `pr-manager-completion-guard` SubagentStop hook, likely a WASM binary. First, locate the hook's source or binary in the repository. Understand the PR flow steps, particularly step-9 (merge confirmation). The guard must be modified to check the PR's merged state via `gh pr view --json state,mergeStateStatus,mergedAt` before applying completion pressure. Test by simulating a stop-event before a merge exists and verifying no false pressure is emitted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100