Skip to content

Alpha gate F: package three real-world case studies (bad → fixed → what others miss → how Own reports it) #194

Description

@PhysShell

Agent brief — tier: basic. One PR for all three studies (Closes #<this>); branch from main. House rules: AGENTS.md.

Goal

Gate F of docs/notes/alpha-readiness.md: the raw material for three case studies exists, the packaged studies don't. Write three one-page studies in the format bad → fixed → what others miss → how Own reports it.

The three studies (material already on record)

  1. ScreenToGif VideoSource — the flagship view→view-model subscription leak.
  2. ScreenToGif SystemEvents leaks (×2) — incl. the corpus/wpf/systemevents-region-escape reduction (OWN014 / region escape).
  3. The Dispose-leak cross-tool Agree case — where Own.NET and CodeQL's dedicated query agree on the fixture (dispose-not-called-on-throw).

Sources of truth (cite, do not re-run or invent)

  • docs/notes/real-world-mining.md — the findings, reduced code, and honest framing.
  • docs/notes/oracle.md (+ oracle-known-fps.md) — every cross-tool claim (CodeQL / Infer# / NetAnalyzers) must trace to what is recorded there.
  • corpus/ reductions where they exist — use them to show Own's actual diagnostic output.

Deliverable

  • docs/case-studies/<slug>.md × 3, each: the bad code (reduced), the fix, what CodeQL/Infer# say (recorded results only), Own's actual report (diagnostic code + evidence).
  • Single-line links added to the README "Case studies" placeholder section (do not restructure README — the front-door issue owns its structure).

Guardrails

  • Honest claims only: "CodeQL/Infer# have no event-subscription query, so they stay silent" is fine; "we would have prevented X" is banned.
  • Reproduce Own's output via the corpus reductions (python -m ownlang ... / scripts/own-check.sh) rather than paraphrasing it.

Done when

Three pages exist, each self-contained and honest, linked from README; ruff check . clean.

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

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions