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)
- ScreenToGif
VideoSource — the flagship view→view-model subscription leak.
- ScreenToGif
SystemEvents leaks (×2) — incl. the corpus/wpf/systemevents-region-escape reduction (OWN014 / region escape).
- 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.
Agent brief — tier: basic. One PR for all three studies (
Closes #<this>); branch frommain. 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)
VideoSource— the flagship view→view-model subscription leak.SystemEventsleaks (×2) — incl. thecorpus/wpf/systemevents-region-escapereduction (OWN014 / region escape).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).Guardrails
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.