← Back to Portfolio

UnboundProse — Manuscript Feedback With AI That Knows Its Place

Trust Boundary Design · AI Integration · Decomposition · Specification Precision · Evaluation

Authors are told two contradictory things about AI: that it will make them faster, and that it will flatten their voice into generic prose. UnboundProse is a manuscript feedback platform built around that tension. Writers share chapters with real readers who leave inline annotations and reactions, and — only when the author opts in — with AI editorial bots that are deliberately constrained to never touch the creative work.

The first bots are technical copy editors, not co-writers. The POV Consistency bot catches interiority slips, tense breaks, and voice-rule violations inside a chapter. The Chapter Opening & Ending bot scores the first and last paragraphs against a craft rubric and teaches the principle behind each score. Both run a two-phase pattern: first they echo back what they will and won't check (a single-chapter POV bot can't know what a character learned in an earlier chapter it can't see), the author confirms, then they scan and quote exact passages. They are explicitly forbidden from suggesting plot, rewriting prose, or critiquing style — AI as a meticulous copy editor that only speaks when it catches a genuine, objective issue.

The Workshop is the deliberate inverse: a manuscript-level open collaborator. The author chooses which chapters and metadata to put in context for each question, then asks anything — brainstorm a plot turn, pressure-test a scene, draft a passage. The hard part was the trust boundary. Every bot reads only the live, current text of the chapters the author selects; author-created snapshots are never sent to any model, and each turn records exactly what it saw. Authors bring their own Anthropic API key, encrypted at rest, so the cost and the data path stay theirs.

The platform was built the way the rest of this portfolio is: a written spec, an implementation plan, then fan-out to fresh AI subagents — each task gated by a two-stage review (does it match the spec, and is it well-built) before the next began. Production issues were fixed by tracing root cause, not symptoms: an expired-token 403 that only struck an auth-optional endpoint, and a 500 that turned out to be an unapplied database migration. The stack is a Hono + Drizzle + PostgreSQL API and a Next.js app, with Claude responses streamed to the browser over SSE.