CSV Clinic
shippedDrop in a messy CSV and watch it get auto-diagnosed, cleaned, and clustered entirely in your browser, no upload, no account, no model call.
Approach
A single index.html with inline CSS/JS, no build step, no dependencies. On load, a hardcoded messy CSV string (28 rows of plausible retail order data: order id, customer, item, quantity, unit_price, order_date, region) is parsed by a small hand-rolled CSV parser and rendered into a table. The seed data plants its own problems on purpose: several blank/'N/A' cells, two rows that are exact duplicates of each other, a handful of quantity or price values far outside the rest (outliers), and a couple of malformed dates — enough that the diagnosis pass has real things to find, not a clean table with a decoration bolted on. A diagnosis pass infers each column's type by sampling its non-null values, counts nulls, and flags outliers per numeric column with the IQR method (Q1/Q3 computed from that column's own values); flagged cells get a `.flag-null` or `.flag-outlier` class, duplicate rows get `.flag-duplicate`, and a per-column summary panel shows the inferred type as a `.col-type` badge plus null/outlier counts. A from-scratch k-means (k=3, Euclidean distance on z-scored quantity and unit_price, a fixed 10 iterations, deterministic seeding by sorting on the first feature) assigns every row a `data-cluster` attribute and a colored dot, so the clustering claim is a real computation over the visible numbers, not a prop. A file input (#csv-upload) lets a visitor drop their own CSV through FileReader and reruns the identical parse-diagnose-cluster pipeline against it client-side — nothing ever leaves the page, no fetch, no key. An export button (#export-btn) serializes the deduplicated table (duplicates removed, a `#clean-count` span showing the resulting row count) back to CSV via a Blob and a hidden `<a download>`, so the 'clean' claim is checkable by opening the downloaded file.
The source post
https://x.com/smaaaaliy/status/2112687219202814022
Scoring
Pick
| surprise | 3 |
|---|---|
| demonstrability | 4 |
| self_containedness | 5 |
| honesty | 4 |
Better Analyst's demo is an 'autonomous AI workspace' that ingests raw CSVs, auto-diagnoses and fixes errors, clusters rows, and exports clean tables — but as described it leans on a live backend LLM to do the diagnosing, which this pipeline can't ship honestly (no outbound network at build time, and a client-exposed key just to narrate what the CSV already contains would be a prop, not a feature). The part of the idea that's actually real and demonstrable without any service is the data work itself: type/null/outlier detection and k-means-style clustering are deterministic algorithms that run fine in plain JS. Rebuilding it as a static, client-side CSV analyzer keeps the one-sentence pitch intact (drop a dirty spreadsheet, get a diagnosis and clusters back), works with zero signup or network dependency, and every claim it makes about the data is something a stranger can verify by opening the file themselves. It's the only candidate in tonight's list that reduces to a single static artifact without faking its core trick. Everything else needed either a model host, a desktop agent, or a live third-party API to be the thing that's actually interesting about it.
Review
| shipped | 5 |
|---|---|
| honest | 5 |
| worth_it | 2 |
| efficient | 5 |
No change: the gate passed on the first attempt, NOTES.md reports nothing blocked and nothing omitted, and the one real weakness (an AI-sourced idea that shipped with zero AI in it) is the correct consequence of the honesty rule working as designed, not a mechanical failure in a scout query, pick rubric, build lesson, or executor routing I could point at. The closest recurring pattern — scout surfacing candidates that need a live LLM backend this static-only pipeline can't ship (6 of 7 tonight, plus the 2026-10-11 storefront-clerk refusal) — has only two dated instances in view, short of the three-night bar for a confident scout.md query change, and tonight it cost nothing since pick filtered correctly and still shipped.
Cost
| total | $0.1436 |
|---|---|
| xai | $0.1436 |
What it looked at
Overwatch** live simulated server telemetry monitor built with decision models and Kev 9B/27B at a Toronto hackathon—real-time agentic monitoring with public repo promised.
ai-memory** GitHub repo lets you pause one coding agent mid-task and resume in another without re-explaining context.
Open WebUI + ComfyUI + Aider + Continue** fully local/browser-run stack replacing ChatGPT, image gen, and coding agents with zero API keys or signups.
OpenBot / OpenDots / OpenMuse** open-sourced self-hostable AI coworker bots that control their own computers and work with any agent harness.
Better Analyst** autonomous AI workspace demo that ingests raw CSVs, auto-diagnoses/fixes errors, clusters 57 counties, and exports clean tables.
AXLR** agent execution runtime demo connecting a Grok bot to tools over MCP for real tool-calling.
Mercury 3** (Inception diffusion LLM) now live on Antseed for 1000+ tok/s parallel text generation usable in agents/coding.
Gate
| pass | project directory exists — /Users/artax/code/builds/2026-10-21/project |
|---|---|
| pass | no build step needed — static project |
| pass | build output with index.html — /Users/artax/code/builds/2026-10-21/project |
| pass | index.html is a document — 17589 bytes |
| pass | local asset references resolve |
| pass | page loads without console errors |
Stages
| scout | grok · ok · 25.9s |
|---|---|
| pick | claude · ok · 53.2s |
| plan | claude · ok · 42.8s |
| build | codex · ok · 193.3s |
| gate | local · ok · 2.8s |
| publish | local · ok · 13.9s |
| review | claude · ok · 156.3s |
Notes
Omitted for lack of
None. All planned functionality runs locally without a service.