AI Experiment · 2026

Requirements to Backlog

Paste the messy version of what stakeholders actually send: half sentences, Slack fragments, three priorities competing in one paragraph. Claude turns it into a structured epic with user stories and acceptance criteria you can drop straight into a backlog.

AI / LLMs Product Craft User Stories Prompt Engineering JavaScript Anthropic

Overview

What I Built

Most requirements do not arrive as requirements. They arrive as a Slack thread, a half-finished doc, and a stakeholder saying 'we just need it to work like the old system, but faster.' The skilled part of business analysis is not writing user stories. It is imposing structure on that mess without losing what people actually meant.

This demo encodes the structure I use for that work. You paste the raw material, and Claude returns a strict JSON object: one epic with a title and summary, a set of user stories in As a / I want / So that form, Given / When / Then acceptance criteria for each story, plus the assumptions it made and the open questions it could not answer. Asking for JSON instead of nicely formatted text matters: the page renders real story cards from the data, and the same object generates the Markdown export.

Assumptions and open questions are first-class output on purpose. When the input is thin, a useful tool says what it guessed and what it still needs. A backlog generator that always sounds certain is one that invents scope.

Try It

Live Demo

Paste raw requirements below, add a line of context if it helps, and generate a starter backlog. Use the example if you want to see the shape of input that works well.

Requests are routed through a Cloudflare Worker proxy. The Anthropic API key is stored as a Worker secret and never exposed client-side. Your text is sent to Claude for processing and is not stored or logged by this site.
Paste some requirements above and generate a backlog to see the structure.

The idea

Messy input is the job. Structure is the deliverable.

Every requirements document I have ever received arrived as fragments. The craft is turning fragments into work a team can estimate, build, and test.

Architecture

How It Works

The page sends your text to Claude through the same proxy the other demos use, with a prompt that specifies an exact JSON schema. The response is parsed in the browser, rendered as story cards, and converted to Markdown locally. If the model ever returns something that is not valid JSON, the page falls back to showing the raw text instead of failing.

Why JSON? A schema is a contract. It makes the model's output checkable, renderable, and reusable, and it fails loudly when the output drifts, which is exactly what you want from anything headed for a real backlog.

Reflection

What I Learned

Built and written from the perspective of a Business Analyst turned Product Manager.

Tools Used

Tech Stack

A single HTML file with vanilla JavaScript. The only network call is the proxied request to Claude.

Claude Sonnet Anthropic Messages API Structured JSON Output Prompt Engineering Markdown Export Vanilla JavaScript HTML / CSS

Keep exploring

Head back to the projects page or take a look at the source on GitHub.