AI spec authoring — every edit human-approved

Turn intent into
crystal-clear specs.

Describe what you're building in plain language. CrystalSpec crystallizes it into a versioned, structured spec — flows, data models, roles, test cases — and its AI proposes edits that you approve before anything changes.

Free 14-day trial. No credit card. Cancel in two clicks.

app.crystalspec.com / acme / onboarding / F-0007-user-sign-in
Flow · F-0007
User Sign-In
✎ Editing draft
1
Enter email & passwordUSER
2
Validate credentialsSYS
3
Suspicious sign-in?DECISIONSYS
4
Verify via magic linkSUB-FLOWSYS
5
Land on the dashboardUSER
4 Test Cases2 Roles2 TriggersAI Assist
AI Proposal
Add a "Rate-limit failed attempts" step — blocks brute-force sign-ins.
Approve Reject
Revision v4 · draft
Every AI edit needs your approval
Versioned & revertible by default
Permissions enforced server-side
Pushes tasks to GitHub, Linear & ClickUp

Your spec shouldn't die in a wiki.

Most products are built from stale documents, lost threads, and tribal memory. Then the build diverges from the intent — and the most expensive bugs are the ones that were never bugs at all, just features nobody agreed on.

Specs today

  • Wiki pages start rotting the day they're written
  • Nobody can say which version is the current one
  • AI coding tools guess at your product intent
  • Spec-driven tools generate a spec, then throw it away once code ships
  • Decisions vanish into chat scrollback and memory

With CrystalSpec

  • One living spec, versioned and diffed like code
  • A published revision is always the source of truth
  • Agents read the same spec your team does, via MCP
  • A durable spec that outlives every feature, agent, and sprint
  • Every decision proposed, approved, and recorded

The expensive part was never the spec you didn't write. It's the sprint you shipped, then quietly rebuilt — because no one could point to the version that was true.

From a fuzzy sentence to a versioned spec, in four moves.

CrystalSpec keeps a human hand on every decision while the AI does the heavy structuring. That's the whole philosophy: AI proposes, you decide.

01

Describe

Tell the assistant what you're building, in plain language. It chats with your entire project as context — every flow, model, role, and glossary term.

02

Review & approve

The AI never edits silently. It returns concrete proposals — create this flow, update that step — each validated for appliability. You approve or reject, row by row.

03

Analyze

Run the inconsistency analyzer on a project, flow, or step. Contradictions, gaps, and unused terms surface as findings — and "Fix with AI" hands them straight back to the assistant.

04

Publish

Publishing cuts a versioned revision with an AI-drafted change summary. Share it read-only, export a PDF, fire a signed webhook — and revert any time.

AI proposes. You decide.

Chat with an assistant that knows your whole project. When it suggests changes, they arrive as structured proposals — create this flow, update that field, delete that role — each pre-validated so a broken change can never be submitted.

  • Approve or reject proposals row by row, or all at once
  • Appliability checks catch missing fields and broken references before anything is written
  • Every decision is recorded — nothing is ever silently applied
AI Proposed Changes3 pending
CREATE
Flows › Refund request
New flow with 6 steps, USER trigger, 2 test cases
appliable
UPDATE
Data Models › Order › status
Add REFUNDED to the status enum
appliable
DELETE
Roles › Billing Clerk
Superseded by the Finance Manager role
appliable
Reviewing never consumes AI credits.
Reject (1)Approve (2)

Find the holes before they cost a sprint.

One click scans a project, flow, or step for contradictions, gaps, and dead glossary terms. Findings come back graded by severity — and "Fix all with AI" turns the report into proposals you review like any other change.

  • Whole-project, per-flow, or per-step analysis with an optional goal
  • Findings graded as contradictions, warnings, and notes
  • A browsable history of past analyses, with jumps straight to the flow
Inconsistency analysis — Whole project3 findings
CONTRADICTIONCheckout
Checkout flow has no payment step
The Checkout flow ends before the customer is charged.
WARNINGRefunds
Refund flow has no test cases
Every other top-level flow defines at least one.
NOTEGlossary
Glossary term 'SKU' is never used
Defined in the glossary but not referenced by any flow or step.
Previous analyses Fix all with AI

Git-style history for product decisions.

Editing forks a draft revision locked to one editor, so the published spec stays stable while you work. Publishing cuts a new version with an AI-drafted change summary and a field-level changeset — and any version can be reverted.

  • One active editor per draft — no trampled edits, ever
  • Field-level "View changes" diffs between revisions
  • Revert with full lineage, plus a per-project activity timeline
Revision history — Acme Onboardingv4
v4Editing draftin progress
Locked by Maria — refining the refund epic
v3Publishedby Maria · 2 days ago
Refunds epic: 2 new flows, Order model gains REFUNDED status
+2 flows~1 data model−1 roleView changes Revert
v2Publishedby Alex · last week
Checkout hardening after the inconsistency report
+4 test cases~2 flowsView changes Revert

Your agents query the spec — not just read it.

Because the spec is typed data, not prose, your agents can query and reason over it — pull a flow, list revisions, diff what changed, ask the project a question — over a hosted MCP server, a scoped GraphQL API, and signed webhooks on every publish. A markdown PRD can't answer those questions; a structured spec can.

  • MCP tools for Claude Code, Claude Desktop, and Cursor
  • Query the typed graph: flows, models, revisions, glossary terms
  • HMAC-signed revision.published webhooks, plus read-only public links
MCPGraphQLWebhooksPDF
# Point your agent at your spec
claude mcp add crystalspec \
https://app.crystalspec.com/mcp \
--header "Authorization: Bearer csk_…"
# Tools your agent can call
get_spec_overviewlist_revisionsask_projectget_quota+6 more
# Signed webhook on every publish
revision.published → X-CrystalSpec-Signature: sha256=…

Ship the spec straight into GitHub, Linear, or ClickUp.

Publish a revision and CrystalSpec decomposes the changes into atomic tasks, pushed into the tracker your team already lives in. CrystalSpec sits above your tracker, not against it — one source of truth, with every issue linking back to the revision it came from.

  • AI-decomposed atomic tasks from any published revision
  • Push to GitHub, Linear, or ClickUp — your tracker, not ours
  • Idempotent: re-running never creates a task twice
  • Every pushed task back-links to its source revision
GitHubLinearClickUpfrom revision #3
Build the Refund request flow (6 steps)
F-0012 · USER trigger
Add REFUNDED to the Order.status enum
DM-Order · data model
Add 2 test cases to Refund request
TC-0012 · QA
Retire the Billing Clerk role
ROLE · cleanup
Re-running skips tasks already pushed. Push 4 tasks

Bring a messy doc. Leave with a spec.

Paste what you already have — the assistant proposes the structure, flow by flow, and you approve what's right. Your monthly AI allowance is included with every seat.

Start free

Everything a serious spec needs.

Built for product, engineering, and design teams done with wiki pages that rot. Your spec is typed, queryable data — not prose — so people and agents reason over the same structure, with the guardrails of a real product platform.

Flows that actually branch

Steps can be plain, nested sub-flows, or decision points with labelled branches — and every flow renders as a live diagram you can click into.

Data models, drawn or generated

Typed fields, enums, arrays, and model references — built by hand or generated from your project's context with one AI click.

Test cases on every flow

Each flow carries how-to-verify cases with codes and rich descriptions, so QA starts from the spec instead of guessing at it.

Discussions where the work is

Threads anchored to flows and projects, with @mentions and an AI teammate that answers when you mention @cs. A global inbox keeps unread state honest.

Share without an account

Publish a read-only link to any project. Visitors browse the live spec — and signed-in viewers can ask the AI questions about it.

The full anatomy of a spec

Roles, phases, epics, glossary terms, and reference resources — typed and cross-referenced, so every flow and model shares one vocabulary that tools can resolve, not just humans.

Cmd+K everything

A command palette searches every entity in your project — flows, steps, models, terms — and lands you there with the editor open.

Access control that holds

Owners, admins, and contributors with per-project read/write overrides — enforced server-side on every operation, not just hidden in the UI.

Boardroom-ready PDF export

Stream a polished, server-rendered PDF of the entire specification whenever a stakeholder asks for "the document."

One price. No tier puzzle.

Try everything free, then pay $10 per member, per month — each member's monthly AI allowance included. A five-person team runs $50 a month: less than the hour you'd lose to one meeting about whose doc is current.

Free Trial

Every feature unlocked while you evaluate. No tiers to decode.

$0to start

Upgrade only when you're ready to commit.

  • Full spec authoring & AI assistant
  • 5,000 AI credits per member, monthly
  • Versioned revisions & publishing
  • Read-only public sharing
Start free trial
No credit card to start5,000 AI credits per member, refreshed monthlyShared one-time top-ups for busy weeksAdd or remove seats anytimeCancel whenever

Fair questions, straight answers.

No — that's the core design decision. The assistant only ever produces proposals: structured create/update/delete suggestions that wait for your explicit approval. Each one is validated for appliability before you can even approve it, every decision is recorded, and rejected proposals are kept so you can see what was suggested and who declined it.

Every team member gets a personal allowance of 5,000 AI credits each month — roughly $5 of AI usage — included with their seat and refreshed automatically. When someone runs out, usage draws from a shared team top-up balance you can buy once and keep. Reviewing proposals never costs credits; only generation does.

Editing forks a draft revision that's locked to a single active editor, while everyone else keeps seeing the stable published version. Publishing promotes the draft to a new version with a change summary and a field-level diff. Discussions live outside the lock, so the conversation never stops while someone is editing.

Yes. Any project can publish a read-only share link that requires no account — visitors browse the live published spec, and signed-in viewers can even ask the AI questions about it (billed to their own workspace, never yours). Rotate or disable the link at any time and old URLs stop resolving immediately.

That's a first-class feature. CrystalSpec hosts an MCP server that Claude Code, Claude Desktop, and Cursor can connect to with a scoped personal token, plus a GraphQL API, HMAC-signed webhooks that fire when a revision is published, and PDF export for the humans in the room.

You can create an account and start a free trial with every feature unlocked, including your monthly AI allowance. When you're ready, the paid plan is a single per-seat price — $10 per member per month — with no feature tiers to decode.

Still wondering? The trial answers faster than we can. Start free →

Ready to crystallize
your next project?

Describe it in a sentence. Review what the AI proposes. By tomorrow, your whole team — and their agents — could be reading the same spec, from the same source of truth.

Free trial — no credit cardEvery AI edit human-approvedCancel in two clicks