Skip to content

/cverify skips advancing done -> verified, wrongly believing it's an invalid transition #194

Description

@joshft

Summary

/cverify mis-classifies the done -> verified workflow transition as invalid, so it skips advancing the phase after writing the verification report. The orchestrator (or human) then has to call workflow-advance.sh verified manually.

Where / what happened

During a /cauto run, after /ctdd completed the workflow was in phase done (correct — /ctdd ends at done). /cverify ran, wrote a passing verification report, and then reported:

"Workflow phase is already done — the /cauto pipeline advanced the state machine past verify during its run, so I did NOT call workflow-advance.sh verified (invalid transition from done)."

This reasoning is wrong on two counts:

  1. done -> verified IS a valid transition. workflow-advance.sh usage explicitly lists verified: done -> verified (requires /cverify report file exists). The report existed.
  2. done is the normal phase /cverify runs in (the documented order is done -> /cverify -> verified -> /cdocs -> documented). /cverify treated its own expected starting phase as "past verify."

Running bash .correctless/hooks/workflow-advance.sh verified immediately afterward succeeded ("Phase: verified"), confirming the transition was valid the whole time.

Impact

/cverify silently does not advance the state machine. In a /cauto pipeline the orchestrator may compensate (as happened here), but a human running /cverify standalone is left stuck in done with no indication that the advance was skipped due to a false "invalid transition" belief — they'd have to know to run workflow-advance.sh verified themselves.

Likely cause

A prompt-level reasoning gap in skills/cverify/SKILL.md around the final "advance workflow" step — the skill appears to treat phase done as "verification already happened" rather than "ready to verify". Worth pinning the expected start phase (done) and the expected transition (verified) explicitly, and asserting the advance actually fired (read back the phase) rather than reasoning about validity.

Severity

Low/medium — not a data-correctness bug, but a workflow-stall papercut that defeats the skill's own final step; recurs whenever /cverify runs from its normal done start phase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions