BOHICA-LABS / BOHICA-LABS/vsdd-factory

process-gap(orchestrator): task marked complete without downstream verification that declared delivery scope landed — Task-33/STORY-014 origin of the spec-text-only convergence loop

Open
#441 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2
Forks
1
Avg merge
6h 43m
Merged PRs (30d)
29

Description

## Symptom

STORY-014's spec-text-only convergence loop (see #440) had a proximate cause upstream: an earlier orchestrator task (\"Task #33 — config plumbing complete\") was closed without any verification that the plumbing had landed. The half that shipped was AkeyConfig parsing; the halves that did NOT ship were (a) config-file loading via `load_config` / `load_config_strict` and (b) `AutoRejectTimer` daemon wiring under `tokio::select!` supervision. STORY-014 was then authored against a scope that assumed the missing halves were present, and the adversary loop iterated the spec-text without ever touching shipped code.

## Root cause

Orchestrator task closure has no mandatory post-condition check that the task's declared deliverables are grep-findable in the shipped tree. Task completion is currently a status flip; it should be a verification event.

## Proposed remediation

Extend the orchestrator task-close workflow with a `deliverables:` field parseable at close time. Before marking complete:

1. For each entry in `deliverables:` (module, symbol, file path, CLI flag), run a grep against the target directories.
2. If any deliverable is missing, block close and surface as `CLOSE_BLOCKED: deliverable-missing` — force the task to remain open with a note listing the missing surface.
3. Only allow close override with an explicit `--defer-deliverables ` flag that files follow-on tickets automatically.

## Related

- #440 (adversary loop cannot detect this — the loop is the *downstream* failure, this is the *upstream* one)
- #322 (remediation diffs get no targeted re-review)
- #389 (preflight tuple can embed inaccurate symbol path)

## Evidence

- Task #33 close record.
- STORY-014 authored against absent scope.
- 10 spec versions + 7 partial-fix regressions before the loop broke.
- Full recovery via manual stub-architect → test-writer → implementer → pr-manager cascade.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.