Inspiration

Vague feature requests are expensive. "Can we just add a simple dashboard?" often hides actors, permissions, rollout scope, support burden, and launch pressure. Case Closed was inspired by the idea that AI should not magically guess the requirement. It should generate useful, directionally wrong evidence so humans can investigate the real request.

What it does

Case Closed turns a vague feature ask into a visual investigation board. AI proposes concrete future artifacts, such as UI mockups, alert panels, audit logs, and operational consequences. Stakeholders can move them around, annotate them with sticky notes, reject bad directions, connect related ideas with string, and generate a final Case Closed report.

How we built it

We built it as a standards-native web app using XHTML, SVG, CSS, and ECMAScript, with no React, Vite, TypeScript, or build step. The board is an SVG workspace, rich artifacts render through foreignObject, and a separate MASS Simulator app runs inside an iframe as the target product under investigation. A small Python server serves XHTML correctly and proxies OpenAI Responses API calls.

Challenges we ran into

The hardest parts were browser standards and interaction details: mixing XHTML and SVG cleanly, embedding a live app inside an SVG board, keeping drag/zoom/pan behavior usable, and making AI output concrete SVG/XHTML instead of generic prose. We also had to tune latency, parallel requests, and response shape so the demo felt interactive.

Accomplishments that we're proud of

The project now has a working AI loop, draggable/resizable evidence artifacts, sticky notes, cancelled-but-preserved directions, red string provenance, a live embedded target app, parallel AI requests, and an exportable Case Closed report. The best part is that the board remembers not only what survived, but also what the team explicitly ruled out.

What we learned

We learned that "wrong but pointable" is a powerful design pattern for AI dev tools. Concrete artifacts create better stakeholder conversations than abstract recommendations. We also learned a lot about modern XHTML/SVG interop, especially how useful SVG foreignObject can be for building rich standards-native interfaces.

What's next for Case Closed

Next we would improve artifact editing, add stronger case-history controls, support richer report exports, and make the board state more structured so final conclusions can cite accepted, rejected, and unresolved evidence more precisely. Longer term, Case Closed could become a pre-build investigation layer for product teams before work becomes tickets, specs, or code.

Built With

  • chatgpt-api
  • ecmascript
  • svg
  • xhtml
Share this project:

Updates