Skip to content

Run real OPY check and compile workflows through the first-party provider #245

Description

@Teakowa

Parent: #242
Depends on: #243, #244, wrightkit/opy-rs#170, #259, wrightkit/opy-rs#188

Goal

Make wright check and wright compile use the first-party OPY provider for real OverPy projects, preserving owner diagnostics/project behavior and producing CI-ready Wright results without a static semantic fallback.

Context

check and compile are the first direct product slice of the provider milestone. They should prove that a clean Wright installation can acquire/use the OPY provider and process the same real projects that currently rely on the upstream OverPy compile gate.

Bastion and Overwatch-AI-PVE are validation targets, not sources of Wright-specific compatibility hacks.

Scope

  • Route OPY wright check through the explicit provider boundary from Converge source-language workflows on an explicit provider boundary #243 and the resolved provider from Bootstrap and resolve the first-party OPY provider #244.
  • Route OPY wright compile through the same provider/project model.
  • Preserve project root, reachable source identities, owner diagnostics, and relevant locale/options from the CLI input through the provider request/result.
  • Map provider/process failures into existing Wright structured result/exit contracts without parsing human messages.
  • Render successful compile output through the documented Wright stdout/output-file contract.
  • Keep CI/non-TTY/JSON behavior deterministic and free of interactive progress noise.
  • Verify behavior on pinned revisions of OWBastion/Bastion and Teakowa/Overwatch-AI-PVE using their real project entry points and roots/options.
  • When a real-project failure belongs to OPY source/compiler semantics, file/fix it in opy-rs; when it belongs to canonical Workshop semantics, route it to workshop-rs.

Non-goals

  • Implementing OPY parsing, preprocessing, project loading, semantics, or lowering in Wright.
  • Falling back silently to the current static OPY adapter when provider execution is unavailable or refused.
  • Requiring byte/text identity with upstream OverPy output when the declared compatibility contract only requires observable/canonical semantic equivalence.
  • Implementing Wright lint/analyze provenance; that is tracked separately.
  • Migrating Bastion/Overwatch-AI-PVE CI before Make Wright CLI CI-ready for real Workshop and OverPy projects #242 final verification.
  • Adding unrelated compile options or CLI polish.

Acceptance criteria

  • wright check on the pinned Bastion and Overwatch-AI-PVE project revisions executes through the first-party OPY provider and reports owner diagnostics against the correct project source identities.
  • wright compile on the same revisions executes through the provider and produces valid Workshop output for the declared supported surface.
  • Project root/includes/preprocessing behavior is supplied by opy-rs; Wright does not recreate an OPY project loader.
  • A provider source error produces Wright failure output with the preserved source diagnostic rather than a provider/process error.
  • Missing provider, provider refusal, protocol/capability mismatch, process failure, and owner source/compiler diagnostics remain machine-distinguishable.
  • No provider failure silently falls back to static Wright OPY semantics.
  • --format json, plain/generic CI, and GitHub Actions rendering preserve the existing deterministic Wright contracts.
  • Raw Workshop check / compile behavior remains regression-green and does not require OPY provider activity.
  • Real-project failures discovered in this work are fixed in the owning repository and rerun through this Wright workflow before being considered resolved.
  • Independent verification reruns both real projects after implementation.
  • Implementation ablation that removes/bypasses the provider-backed OPY path causes the pinned real-project regression evidence to fail again.

Dependencies / ownership

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions