CI: emit provisional vNext conformance evidence slices - #123
CI: emit provisional vNext conformance evidence slices#123mark-e-deyoung wants to merge 6 commits into
Conversation
Blocking result: stale WinInspect acquisition pin prevents classified conformance executionCI run Do not weaken or bypass integrity verification. Existing Foundry evidence provides the adopt-first replacement fixture:
This is a real upstream blocker to #114 evidence generation, independent of the PR's diagnostic workflow changes. Required repair: replace the stale v0.4.0 Docker pin with the exact v0.4.4 release/hash, preserve checksum verification, then rerun cloud CI. No Linux/Wine result may be interpreted as native-Windows acceptance. |
Classified run result: acquisition blocker resolved; portable core is cleanRun Exact evidence binding:
Decision-changing result by provisional classification:
The remaining failures are concentrated in window/focus/inspect response shape, lifecycle shutdown mechanics, screenshot state, and the unresolved The raw v1 run remains 54/71 and red. Preserve it as current-v1 compatibility evidence; do not reinterpret it as vNext architecture acceptance. This PR should remain draft while current-v1 gate policy and the versioned migration remain distinct. |
|
Classification authority advanced after this run: |
|
Post-#19 classified evidence is now complete on run Results:
Artifact This validates the #19 taxonomy split: WineBot satisfying |
Evidence-quality finding: classified slices are not yet state-isolatedRun The legacy v1 suite runs first against the same live WineBot service and exercises destructive lifecycle behavior including shutdown. The subsequent classified slices then reuse that mutated runtime. In this run the full v1 screenshot tests passed, while a later capability-extension screenshot assertion observed HTTP 500 after the preceding lifecycle activity. That discrepancy is evidence of cross-slice runtime-state contamination, not sufficient evidence of a stable screenshot capability defect. Decision consequence:
The legacy v1 gate remains unchanged. This is an evidence-harness qualification issue, not a vNext semantic change, and no native-Windows acceptance is claimed. |
|
Cloud-ready repair applied for the state-isolation finding: commit |
Isolated classified-slice rerun resolves screenshot evidence contaminationRun Current isolated cloud/Wine results at WineBot
Decision-changing result: the screenshot assertion now passes in the isolated capability-extension slice. The prior screenshot failure was therefore cross-slice runtime-state contamination, not sufficient evidence of a stable screenshot capability defect. Remaining isolated extension failures now cluster around window response shape/focus/inspect semantics and lifecycle shutdown behavior; the unresolved failure is the health-memory response shape ( Disposition consequence:
Artifact No native-Windows acceptance is claimed. |
mark-e-deyoung
left a comment
There was a problem hiding this comment.
Red/blue-team lessons-learned qualification from the classified WineBot reps:
Promote only the following narrowed program-level invariants:
-
Classify before architectural repair. Before adding compatibility behavior, changing an abstraction, or changing preserve/replace/retire disposition, classify the observed failure as portable semantic defect, capability-qualified behavior, implementation-specific assertion, contract defect/obsolete requirement, or unresolved. Exception: obvious low-risk deterministic repairs may proceed without ceremony when they cannot change architecture or contract meaning.
-
Control state before attributing failure. Evidence used to change architecture, contract, or disposition must either come from an adequately isolated/reset experiment or explicitly carry contamination/state-dependence as a limitation. This is narrower than requiring fresh instances for every test; the requirement is sufficient state control for the claim being made. The screenshot reversal after service restart is the concrete falsification case.
-
Scope every acceptance claim to the evidence envelope. Record at minimum artifact/revision, capability or contract slice, executor/substrate, relevant environment, and evidence result. Generalize only when an additional argument/evidence supports generalization. Linux+Wine/cloud conformance therefore cannot establish native-Windows acceptance.
Supporting heuristics, not invariants:
- prefer capability claims over embodiment-name gating where the capability can be stated independently;
- treat legacy/raw aggregate conformance scores as evidence sources rather than architecture objectives;
- prefer the smallest experiment that can falsify an architectural hypothesis before adding new machinery;
- negative evidence may legitimately support PRESERVE/no-change.
Red-team cautions retained:
- classification can become ceremony/confirmation bias if categories harden prematurely; keep an unresolved bucket and allow taxonomy revision;
- isolation can destroy realism for genuinely stateful/lifecycle behavior; isolate only enough to support the intended causal claim, and separately test stateful sequences when state is itself the subject;
- evidence envelopes can become so specific that nothing generalizes; qualification should distinguish direct acceptance from evidence-backed generalization rather than prohibit generalization;
- capability declarations can lie or drift, so claimed capability must remain testable rather than trusted metadata.
This is a methodology refinement only; it does not change WineBot runtime behavior or native-Windows acceptance status.
Reconciliation: state-isolation blocker is repaired in the cloud laneLatest head Decision consequence:
Durable run evidence: workflow |
Consumes the canonical provisional classification markers from
mark-e-deyoung/winebot-contractswithout changing WineBot runtime behavior or the existing legacy full-suite gate.Adds a non-gating diagnostic CI step that, after the ordinary conformance run, executes the currently classified subsets separately:
Each subset writes its own machine-readable result file and all result files are uploaded with the existing conformance artifact. The diagnostic step preserves all five slices even when one subset fails, and records exit codes in the workflow summary.
Boundaries:
Tracks #114 and consumes winebot-contracts#11 / merged PRs #16-#19.