launch-quickly

For agents

Every page here as raw Markdown, and how to point an agent at this codebase.

Raw Markdown

Append .md to any docs URL and you get the source, as text/plain:

curl https://www.launchquickly.io/docs/conventions.md

There is also an index of every page at /docs/llms.txt.

This exists because rendered HTML is a poor way to feed documentation to a model: navigation chrome, syntax-highlighting spans and card markup are most of the bytes and none of the meaning. The Markdown is what was written.

Pointing an agent at your project

Your generated project already contains everything an agent needs, and it is loaded automatically rather than pasted in:

  • CLAUDE.md — around 130 lines of hard rules. Deliberately short; adherence falls off a cliff past roughly 200 lines, so depth lives elsewhere.
  • AGENTS.md — the same content, for tools that look for that name.
  • .claude/skills/ — seventeen guides loaded on demand, one per topic, from the data layer and server actions through to designing a screen and writing the copy on it. Every one of them is published at Patterns — the pages are generated from the same files, so you can read exactly what your agent reads before you buy.
  • .claude/commands//new-feature and /fix-check, which run the generator and then tell the agent what to fill in.
  • .claude/hooks/ — a PostToolUse hook running lq check --changed after every edit.

That hook is the part that changes agent behaviour most. Feedback arriving in the same turn as the mistake gets fixed; feedback arriving at review time gets argued with.

What we measured

Five feature requests, five isolated applications each with its own database, given only CLAUDE.md and the skills — no hand-holding beyond that. All five landed lq check-clean with passing tests, including one requiring a hand-written many-to-many relationship.

The honest caveat, which matters more than the number: every one of those runs surfaced generator defects that had to be fixed to get there, and two of the worst passed both lq check and the generated tests. A required text field did not compile, and a date form silently blanked the field it was editing. Both are fixed with regression tests, but the lesson is the one worth carrying: the guardrails caught most things and were not sufficient on their own.

Writing rules of your own

Add them to CLAUDE.md only if you cannot put them lower on the ladder. Ask, in order: could a generator make this unnecessary? Could a type make it impossible? A database constraint? A lint rule? A structure check?

A rule that ends up in a document is a rule you have not really shipped — it will be followed while it is fresh and drifted from afterwards, and nothing will tell you when.

On this page