Skip to content

Command semantics: /opencode:review uses the adversarial prompt; setup reports logged-in with no connected provider #32

Description

@TheRealDinghyDog

Normal review is adversarial in disguise; setup gives a false ready signal (M-04 + M-05)

Surfaced by the gpt-5.6-sol final review, verified locally.

M-04: both review and adversarial-review handlers call executeReviewRun(), which always builds buildAdversarialReviewPrompt() ("break confidence in the change", default to skepticism). The only difference is the result label. /opencode:review also silently accepts positional focus text although the README says it is not steerable. This regresses the documented normal-vs-adversarial distinction.

M-05: getAuthStatus() (opencode.mjs) sets loggedIn: true whenever /config or /provider is merely readable; it never checks the provider response's connected array. A server with {"all": [], "connected": []} is reported as logged in, /opencode:setup marks the plugin ready and omits the provider-configuration next step, and the first real task fails later.

Fix:

  • Add a neutral normal-review template selected by review; keep the adversarial template for adversarial-review; reject positional focus text for normal review (or update the contract).
  • Assert on the generated prompt per command, not just routing.
  • Require a non-empty connected-provider set (ideally with a resolvable default model) for loggedIn; add empty/malformed/configured-but-disconnected/connected tests.

Source: gpt-5.6-sol final review M-04 and M-05 (opencode-plugin-cc-analysis.md).

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