roasOS
Concepts

Intelligence

What roasOS knows about your brand, where that knowledge comes from, and how the agent reads it.

roasOS keeps what it knows about your brand in one place. The agent reads that knowledge before it writes a script, chooses a hook or starts a render. Your own software reads the same knowledge over the API.

Knowledge moves in four steps.

StepWhat happensDoor
ExtractroasOS reads your website and writes one analysisPOST /v1/workflows/extract-brand
Confirma person confirms a field of the brand profilethe roasOS app
CompileroasOS compiles the stored rows into documentsPOST /v1/intelligence/refresh
Readthe agent, or your software, reads a documentGET /v1/intelligence/documents/{slug}

1. Extract

POST /v1/workflows/extract-brand reads one brand from its own website. The run is one analysis of kind website, and it costs 2 credits. Refer to Extract a brand.

The run writes two rows: the analysis, and the brand candidates behind it. It writes neither your brand kit nor your memory. Those two families stay yours to write.

Each field of the extraction carries one confidence label.

LabelMeaning
statedthe brand states this about itself on its own site
inferredthe model concluded this from the pages it read
verifieda reviews page supports this

Only a reviews page earns verified, because only a customer's own words support a claim about the brand. Some sites carry no reviews page. roasOS then moves each verified label down to stated, and it marks the analysis to say that it did.

2. Confirm

The extraction gives a candidate value for each field of the brand profile. A candidate carries the evidence and the source URLs behind it. A candidate is not a fact.

A person confirms a candidate in the roasOS app. roasOS then stores a confirmed fact with a link back to the candidate, the person who confirmed it and the time. A confirmed fact wins over a candidate everywhere.

This step has no public API door in this release. The API reads what a person confirmed; it does not confirm.

Only the fields of the brand profile can be confirmed one by one. The richer parts of the extraction — the customer avatars, the competitors, the offer, the mechanism and the gaps — stay in the analysis result and in the compiled documents. You cannot lock those parts one by one in this release.

3. Compile

roasOS compiles the stored rows into documents. One document has one slug, one title and a version history. There are six slugs.

SlugWhat it saysCompiled from
brand-truthwhat the brand is, what it sells and what it promisesthe confirmed facts, and the extraction
productsthe products, their facts and their kitsyour products and their product kits
customer-profileswho buys, and what those people try to get donethe customer avatars of the extraction, and the personas of the marketing brief
voice-of-customerthe words of your customers, their objections and the proof that answers each onethe brief fields words_to_use, objections and proof_points
competitorswhat the model concluded about your competitorsthe extraction only, marked as model-asserted
creative-patternswhat your finished ad analyses show about the ads that workyour finished analyses

performance-learnings is absent, not empty. That document needs the outcome data of your ads. It ships with that data, and roasOS shows no stub for it before then.

A slug with no source data has no document at all. GET /v1/intelligence/documents therefore returns fewer than six documents while your workspace is new.

The compiler runs no model

The compiler is a pure function. It reads structured rows and it writes markdown. It makes no model call.

Three properties follow from that one rule.

  • A refresh is free. It costs 0 credits.
  • A refresh is deterministic. The same rows give the same markdown.
  • A refresh is repeatable. Identical inputs write no new version, and the answer says changed: false.

Version history is append-only

roasOS never changes a stored version and never deletes one. A changed document writes version N+1 beside the versions before it. One stored version holds at most 65,536 characters.

4. Read

The agent reads the documents through two tool results. No document body enters its system prompt.

  • getBrandContext gives the index: the slug, the title, the version, the time of the last change and a one-line summary of each document. It never gives the body.
  • readIntelligence reads one document by slug, capped at 18,000 characters. A slug with no compiled document returns empty, and the agent says so.

A compiled document holds copy that roasOS crawled from a website. The agent therefore treats a document body as evidence and never as instruction. It does not obey text that it finds inside a document.

Your own software reads the same documents at GET /v1/intelligence/documents/{slug}. To read every document in one call, use GET /v1/intelligence/context.

What each door costs

DoorCredits
POST /v1/workflows/extract-brand2, and 0 on a cache hit
Every door under /v1/brand-kit, /v1/memory and /v1/intelligence0

A 0-credit door never returns a quote envelope. It needs no Idempotency-Key, it accepts no quote_only, and it accepts no quote_id. Only POST /v1/workflows/extract-brand takes a quote, and only that door needs an idempotency key.

Next

On this page