OriginAIProduct specs for Claude Code, Cursor, and Codex

Publish a release

Snapshot your product context into an immutable release that coding agents can implement.

Publishing a release freezes your current specs into an immutable, versioned snapshot. That's what makes handoff reliable: coding agents implement from a fixed point, not from a workspace that keeps changing under them. Before you publish, make sure your specs are in a state you'd hand to an engineer, and that you're the project owner.

What a release actually is

  • An immutable snapshot of the project's file tree, identified by a content hash.
  • The default source for agent read commands — the latest release is what they see unless told otherwise.
  • Optionally, a public HTML preview (published when the pipeline succeeds) at: https://spec.getoriginai.com/{projectId}/{hash}/
  • Accompanied by agent-readable plain text, published next to the HTML and requiring no login:
    • An index / file list at …/{hash}/llm.txt
    • The full sources at …/{hash}/llm-full.txt

Publish a release

  1. Open the project in the workbench.
  2. Open Releases.
  3. Review the summary or notes if the UI prompts you for them.
  4. Click Publish.
  5. Confirm a new row (with a new hash) appears in the history.
  6. Optionally, open the public preview link.
  7. Hand it off to a coding agent by copying a prompt from the Releases panel:
    • Implement — a hash-based prompt for the CLI or MCP.
    • Markdown — points the agent at llm-full.txt (a public fetch, no login).
    • Visit URL, CLI, hash, or get-diff — other handoff shapes for different situations.

You've succeeded when…

  • A release row exists with a stable hash.
  • Agents listing documents see the snapshot, not your mid-edit workspace.
  • The preview URL loads (assuming the HTML step succeeded).
  • llm.txt and llm-full.txt are fetchable for agents that prefer HTTP over the CLI.

Troubleshooting

SymptomWhat it means
Publish reports "unchanged"The content hash matches the previous release, so the HTML step was skipped — nothing changed.
An agent still sees old filesThe agent needs to run get-diff or re-read the latest release; check the release_hash in .origin.json.
An agent can no longer write the workspace directlyExpected after the first release — the write stages a change request.
The preview is missingHTML upload is a separate step after the database snapshot; check for publish errors.

How the pipeline works (for operators)

Under the hood, publishing runs three stages:

  1. A frontend mutation calls the publish_release RPC, which writes the immutable release row.
  2. On success, the publish-release-html Edge Function renders the HTML and uploads it to R2.
  3. The origin-preview Worker serves that HTML at spec.getoriginai.com.

On this page