Skip to content

[M13 baseline] Pin the OSTW oracle and acquire the initial real-world corpus #115

Description

@Teakowa

Parent: #90
Depends on: #113

Goal

Turn the accepted OSTW investigation into reproducible evidence by pinning the initial OSTW reference/oracle, adding a deterministic headless oracle runner, acquiring the first licensed real-world corpus, and recording the observed S/D/N support surface before any Wright OSTW frontend implementation is decomposed.

This is the final evidence baseline before parser/type-system/emitter implementation planning.

Context

#113 established:

  • upstream reference candidate: ItsDeltin/Overwatch-Script-To-Workshop stable tag v3.4.0;
  • the rolling latest build is not a valid pin;
  • the compiler/wiki are treated as unlicensed for source-copying purposes, while observable reference behavior may be studied through the oracle boundary;
  • the default CLI compile path is interactive/clipboard-bound;
  • stdio --langserver is the viable deterministic headless S/D/N oracle path;
  • pharingWell/MOBAwatch (BSD-2-Clause) and GrandeurHammers/protect-ban (MIT) are the approved initial corpus candidates.

The accepted planning records are docs/compatibility/upstream-references.md and docs/ostw/compatibility-baseline.md.

Scope

  • Pin OSTW v3.4.0 by immutable content identity and record acquisition/integrity metadata consistent with Wright's ADR-0007 reference policy.
  • Add a reference-only OSTW oracle runner under the compatibility harness that communicates with upstream through stdio --langserver and can deterministically capture at least:
    • diagnostics / accept-reject status;
    • emitted Workshop text from the workshopCode notification;
    • element count where useful evidence exists.
  • Keep the upstream runtime/tooling entirely outside Wright's production Rust dependency graph and supported standalone runtime path.
  • Add a minimal oracle smoke check (--ping) and deterministic failure reporting for missing/incompatible reference artifacts.
  • Acquire the approved initial corpus at immutable commits:
    • MOBAwatch;
    • protect-ban.
  • Record repository/license/provenance, complete relevant source/include closures, per-file SHA-256, project settings (ds.toml) and source-kind metadata using the existing corpus tooling where practical.
  • Run the pinned oracle over the acquired projects/files and produce a machine-readable observed inventory of:
    • oracle accept/reject;
    • first diagnostic/failure where applicable;
    • emitted Workshop availability;
    • source constructs/categories exercised;
    • project/include relationships relevant to frontend planning.
  • Refresh docs/ostw/compatibility-baseline.md with measured corpus distribution and classify which semantic categories are actually required for the first Wright-owned frontend milestone.
  • Produce a PM-ready decomposition recommendation from the measured corpus, but do not implement or pre-create parser/type-system/emitter issues inside this task.

Licensing / provenance guardrails

  • Do not copy, mechanically translate, or import source/data from the unlicensed OSTW compiler/wiki into Wright core.
  • Do not import OSTW Elements.json, LobbySettings.json, Maps.json, or other game-derived data into Wright's catalog.
  • Only commit third-party corpus material whose license permits repository inclusion and whose provenance is recorded.
  • Reference artifacts may be downloaded/used by compatibility tooling under the documented oracle boundary; they are not shipped as Wright runtime dependencies.

Non-goals

  • Implementing wright-ostw, an OSTW parser, semantic/type system, emitter, decompiler, or language-service integration.
  • Supporting the entire OSTW language because upstream exposes it.
  • Byte-identical optimizer/compiler output.
  • Direct OPY <-> OSTW conversion.
  • E-level timing/runtime claims; upstream emulator limitations remain documented.
  • Multi-locale support.

Acceptance criteria

  • The OSTW reference is version-exact/content-pinned and reproducible; rolling latest is never used as evidence identity.
  • A deterministic headless oracle harness can obtain diagnostics and Workshop output through the upstream stdio language-server path without clipboard/X-server interaction.
  • MOBAwatch and protect-ban are acquired at immutable revisions with license/provenance and per-file integrity records.
  • The pinned oracle has been executed over the initial corpus and results are persisted in a reviewable machine-readable form.
  • The resulting inventory identifies the actual construct/category distribution and first blockers needed to define Wright's initial OSTW support matrix.
  • Production Wright remains independent of .NET/upstream OSTW runtime dependencies.
  • No unlicensed upstream implementation/data is copied into Wright core.
  • Current Wright CI remains green.
  • PM has enough measured corpus evidence to create the first bounded OSTW frontend implementation issues under [M13] Source-language interoperability and OSTW compatibility #90.

Relationships

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

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions