<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Concepts on Slidura</title><link>https://slidura.com/docs/concepts/</link><description>Recent content in Concepts on Slidura</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://slidura.com/docs/concepts/index.xml" rel="self" type="application/rss+xml"/><item><title>Templates and versions</title><link>https://slidura.com/docs/concepts/templates-and-versions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://slidura.com/docs/concepts/templates-and-versions/</guid><description>&lt;h1 id="templates-and-versions"&gt;Templates and versions&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ This page is a stub — full write-up coming soon.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A named handle and the immutable &lt;code&gt;.pptx&lt;/code&gt; blobs under it.&lt;/p&gt;</description></item><item><title>The catalog</title><link>https://slidura.com/docs/concepts/the-catalog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://slidura.com/docs/concepts/the-catalog/</guid><description>&lt;h1 id="the-catalog"&gt;The catalog&lt;/h1&gt;
&lt;p&gt;A &lt;strong&gt;catalog&lt;/strong&gt; is Slidura&amp;rsquo;s machine-readable view of a &lt;code&gt;.pptx&lt;/code&gt;: every slide,
every fillable field, in reading order. It&amp;rsquo;s produced once per template
version by a background &lt;code&gt;catalog&lt;/code&gt; job and stored as JSON.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(TODO: full write-up — full vs compact, what counts as a field, how
&lt;code&gt;pptx_field_id&lt;/code&gt; differs from the editable &lt;code&gt;field_id&lt;/code&gt;, where the JSON lives.)&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Annotations as the agent brief</title><link>https://slidura.com/docs/concepts/annotations-as-the-agent-brief/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://slidura.com/docs/concepts/annotations-as-the-agent-brief/</guid><description>&lt;h1 id="annotations-as-the-agent-brief"&gt;Annotations as the agent brief&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ This page is a stub — full write-up coming soon.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The human-in-the-loop quality step that turns auto-named fields into a clear brief for your agent.&lt;/p&gt;</description></item><item><title>The fill.json schema</title><link>https://slidura.com/docs/concepts/the-fill-json-schema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://slidura.com/docs/concepts/the-fill-json-schema/</guid><description>&lt;h1 id="the-filljson-schema"&gt;The fill.json schema&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ This page is a stub — full write-up coming soon.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The shape your agent produces to fill a template.&lt;/p&gt;</description></item><item><title>Builds and credits</title><link>https://slidura.com/docs/concepts/builds-and-credits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://slidura.com/docs/concepts/builds-and-credits/</guid><description>&lt;h1 id="builds-and-credits"&gt;Builds and credits&lt;/h1&gt;
&lt;p&gt;A &lt;strong&gt;build&lt;/strong&gt; is the act of running the fill engine against a template: it reads
a &lt;code&gt;fill.json&lt;/code&gt;, resolves every field and variable, and produces a finished
&lt;code&gt;.pptx&lt;/code&gt;. Each successful build consumes one credit.&lt;/p&gt;
&lt;h2 id="what-costs-a-credit"&gt;What costs a credit&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;One successful build = one credit.&lt;/strong&gt; Credits are spent when a build moves
to &lt;code&gt;started&lt;/code&gt; (i.e., when you press &lt;em&gt;Build deck&lt;/em&gt; in the web UI or call
&lt;code&gt;POST /builds/{id}/start&lt;/code&gt; via the API).&lt;/li&gt;
&lt;li&gt;If the build &lt;strong&gt;fails&lt;/strong&gt;, the credit is automatically refunded — you only pay
for what you receive.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-is-free"&gt;What is free&lt;/h2&gt;
&lt;p&gt;Uploading templates, running the catalog scan, annotating fields, editing the
working fill, and creating draft builds are all free. You can iterate on a
fill as many times as you like before pressing &lt;em&gt;Build deck&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>The build lifecycle</title><link>https://slidura.com/docs/concepts/the-build-lifecycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://slidura.com/docs/concepts/the-build-lifecycle/</guid><description>&lt;h1 id="the-build-lifecycle"&gt;The build lifecycle&lt;/h1&gt;
&lt;p&gt;A build is the durable working object that carries both the fill you are
composing and the resulting &lt;code&gt;.pptx&lt;/code&gt;. It moves through a defined set of states
and is never silently deleted.&lt;/p&gt;
&lt;h2 id="states"&gt;States&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;State&lt;/th&gt;
 &lt;th&gt;What it means&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;created&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The fill is editable. The fill builder (or an API/MCP agent) can read and write the working fill. No credit has been spent.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;started&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The build engine is running. One credit has been reserved. The fill is now read-only.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;built&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The build succeeded. The &lt;code&gt;.pptx&lt;/code&gt; is available for download.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;failed&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The build engine returned an error. The credit was automatically refunded. The build can be reopened.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;archived&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The build&amp;rsquo;s output file has been cleaned up; the fill is still kept. An archived build can be reopened or copied.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="transitions"&gt;Transitions&lt;/h2&gt;
&lt;div class="code-block"&gt;&lt;div class="code-wrap"&gt;
 &lt;button class="code-copy" type="button" aria-label="Copy" title="Copy"&gt;&lt;svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"&gt;&lt;rect width="14" height="14" x="8" y="8" rx="2"/&gt;&lt;path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/&gt;&lt;/svg&gt;&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;created ──start──► started ──success──► built ──archive──► archived
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ └──failure──► failed ──►──────►─┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── edit fill (PATCH /builds/{id}) — stays in created&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start&lt;/strong&gt;: validates the fill, spends the credit, enqueues the job.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reopen&lt;/strong&gt;: moves a &lt;code&gt;built&lt;/code&gt;, &lt;code&gt;failed&lt;/code&gt;, or &lt;code&gt;archived&lt;/code&gt; build back to &lt;code&gt;created&lt;/code&gt;
with its fill intact so you can edit and re-run it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy&lt;/strong&gt;: creates a new &lt;code&gt;created&lt;/code&gt; build pre-seeded with the source build&amp;rsquo;s
fill — useful for branching variations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Archive&lt;/strong&gt;: explicit archival any time from &lt;code&gt;built&lt;/code&gt; or &lt;code&gt;failed&lt;/code&gt;; also
triggered automatically by the scheduler after 7 days. The fill is always
kept; only the output file is removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-buildsid-view"&gt;The &lt;code&gt;/builds/{id}&lt;/code&gt; view&lt;/h2&gt;
&lt;p&gt;The build view at &lt;code&gt;/builds/{id}&lt;/code&gt; switches its layout based on the current
state:&lt;/p&gt;</description></item></channel></rss>