application blueprints for coding agents
GUIDE

Turn your app into a blueprint

You already built the app. A blueprint is the spec that rebuilds it: workflows, data model, rules, edge cases, the judgment a prompt cannot carry. You do not write it by hand. Point a coding agent at your finished codebase with the prompt below and it produces the blueprint for you.

1

Open your finished project in Claude Code, Codex, or another coding agent.

2

Paste the prompt below. It tells the agent it is producing a regeneration spec, not documentation, and to be exhaustive.

3

Review the result, especially the non-obvious decisions. That section is what makes it worth more than a one-line prompt. Then upload it here.

the prompt
You are writing an APPLICATION BLUEPRINT for this codebase.

Read this whole instruction first, then read the entire codebase before
you write anything.

WHAT A BLUEPRINT IS

A blueprint is not documentation, not a README, and not a summary of the
code. It is a complete, self-contained specification from which a
competent coding agent could rebuild this entire application from
scratch, in any reasonable technology stack, WITHOUT ever seeing the
current source.

Treat the source code as disposable output. The blueprint is the durable
artifact. Every decision that matters must live in the blueprint, because
the code it came from will not be there. If a rule, a constraint, or a
piece of reasoning exists only in the code and you do not write it down,
it is lost, and the rebuild will get it wrong.

Your task is to extract the ENGINEERING JUDGMENT, not to narrate the
files. Capture the things that took real work to get right and that a
one-line prompt like "build me an app that does X" would never recover:
the exact workflows, the edge cases, the shape of the data and the reason
it is shaped that way, the permission rules, the domain terminology, the
validation, and the failure handling.

The test of a good blueprint: two independent agents, each given only
this document and no access to each other or to the original code, would
build functionally equivalent applications.

WHAT TO COVER

Cover all of the following, in depth. Add sections if the application
needs them. Do not drop a section because it seems obvious; state it.

1. PURPOSE AND SCOPE
   What the application does, who it is for, the problem it solves, and
   explicitly what is OUT of scope. State the core value in one paragraph
   a non-expert could follow, then the precise scope boundaries.

2. USERS AND ROLES
   Every role or user type. For each: what they can do, what they cannot
   do, and how the system decides which role a request has. Include
   anonymous or unauthenticated access if it exists.

3. CORE WORKFLOWS
   This is the heart of the blueprint. Every significant user journey,
   step by step, from entry to completion. For each step, state what the
   user does, what the system does in response, what is validated, and
   what happens when the step fails, is cancelled, or is left incomplete.
   Be exhaustive. A rebuilder should be able to follow these like a
   script.

4. DATA MODEL
   Every entity: its fields, their types, defaults, and constraints; the
   relationships between entities; uniqueness and referential rules; and
   the REASONING behind any non-obvious modelling choice. Where a field
   encodes a rule (a status enum, a soft-delete flag, an ordering
   column), say what the rule is.

5. BUSINESS RULES AND EDGE CASES
   The awkward parts, stated precisely. Concurrency and conflicting
   edits, partial or inconsistent state, empty and boundary conditions,
   limits, rounding, time zones, ordering, anything you had to think
   about twice. Give the exact rule and, where useful, a concrete
   example.

6. INTERFACE AND INTERACTION
   Screen by screen or view by view. What is on each, what every control
   does, the states each view can be in (loading, empty, error, success),
   keyboard shortcuts, and any interaction that is not obvious from a
   static description. Describe behaviour and intent, not exact pixels or
   colours, unless a specific measurement is load-bearing.

7. AUTHENTICATION, AUTHORISATION AND SECURITY
   How users authenticate, how access is granted and checked, what is
   protected and from whom, how input is validated and sanitised, and any
   security property a rebuild must not lose. Be explicit about anything
   that would be a vulnerability if done naively.

8. EXTERNAL INTERFACES AND CONTRACTS
   Any API the app exposes or consumes, file formats it reads or writes,
   imports and exports, webhooks, background jobs, scheduled tasks, and
   third-party integrations. Give exact request and response shapes,
   field names, formats, and error behaviour. These are contracts; a
   rebuild must match them byte for byte where other systems depend on
   them.

9. TECHNOLOGY STACK
   What THIS build used: language, framework, database, key libraries,
   runtime. Mark this clearly as INFORMATIONAL. A rebuilder may retarget
   it, and should be able to. Call out separately anything that is a genuine
   hard requirement (a specific format, protocol, or algorithm the app
   must implement) versus a free choice (which web framework, which CSS
   approach).

10. NON-OBVIOUS DECISIONS
    A dedicated section for the judgment calls that would otherwise be
    invisible in a rebuild: where you chose this approach over the obvious
    alternative, and why. This section is the difference between a
    blueprint and a generic prompt. Be generous with it.

RULES FOR WRITING IT

- Be precise and complete over concise. This document must be VERY
  detailed. Length is expected; vagueness is the failure mode.
- Prefer explicit rules, exact values, and concrete examples over prose.
  State field names, formats, limits, and defaults literally.
- Where a choice was deliberate, state the choice AND the reason.
- Do NOT paste source code or dump whole files. Specify behaviour and
  contracts so the code can be regenerated, not copied. Short snippets
  are fine only where a format or algorithm needs to be exact.
- Where something in the current code is genuinely arbitrary, say so, so
  the rebuilder knows they have freedom there and does not preserve an
  accident as if it were a decision.
- Write for an agent that is competent but has zero prior knowledge of
  this project or its domain. Define the domain terms.

PORTAL LISTING METADATA (include this)

Begin app.md with a YAML frontmatter block, before the title and before
any prose. Athena Lab reads it to prefill the upload form, so the author
does not retype the stack, category, licence and so on.

This block is metadata for the portal, NOT part of the blueprint. A
coding agent rebuilding the application should ignore it. The leading and
trailing --- fences are the standard signal to skip a frontmatter block,
and the comment states it outright.

Use exactly these keys. Omit any key you genuinely cannot determine
rather than guessing. `category` must be one of the portal categories and
each `platforms` entry must be from the portal platform list, both listed
below; if nothing fits, omit that key.

  Portal categories: Booking & Scheduling, Inventory & Stock, E-commerce & Payments, Finance & Invoicing, CRM & Client Management, Support & Helpdesk, Marketing & Outreach, Projects & Task Management, Learning & Education, Dashboards & Reporting, Content & Publishing, Marketplaces & Multi-vendor, Internal Tools & Admin, Media & File Processing, Developer & Technical Tools
  Portal platforms: Web, Mobile, Desktop, Server, CLI

Emit it in exactly this shape:

---
# Athena Lab listing metadata. Not part of the blueprint; ignore when building.
title: <the application name>
summary: <one line, under 300 characters, shown on listing cards>
description: "<a short paragraph on one line, no line breaks>"
version: 1.0.0
category: <one of the portal categories above>
platforms: [<one or more of the portal platforms above>]
licence: <an SPDX id such as MIT, Apache-2.0, or Proprietary>
stack: [<languages, frameworks and libraries this build used>]
tested_with: [<coding tools you verified the build with, e.g. Claude Code>]
tags: [<capability keywords: what it does and its key features>]
---

The blueprint itself begins after the closing fence.

OUTPUT

Produce one markdown file named app.md, opening with the metadata block
above and then the full specification.

If the specification is large enough that a single file harms clarity,
use app.md as the root entry point that describes the whole application
and links out to additional markdown files for detailed sections. Keep
app.md as the front door either way, and keep the frontmatter on app.md.

Do not summarise. Specify.

Prefer plain text? Fetch it at /guide/prompt.txt

Got your blueprint back?

Submit a blueprint