<?xml version="1.0" encoding="UTF-8"?><database name="blogrhythm" schema="public" type="PostgreSQL - 18.4 (Ubuntu 18.4-1.pgdg24.04+1)">
   <sequences>
      <sequence increment="1" name="blog_critiques_id_seq" startValue="1"/>
      <sequence increment="1" name="drafts_id_seq" startValue="1"/>
      <sequence increment="1" name="editorial_briefs_id_seq" startValue="1"/>
      <sequence increment="1" name="keywords_id_seq" startValue="1"/>
      <sequence increment="1" name="news_packs_id_seq" startValue="1"/>
      <sequence increment="1" name="pipeline_jobs_id_seq" startValue="1"/>
      <sequence increment="1" name="post_sources_id_seq" startValue="1"/>
      <sequence increment="1" name="post_tags_id_seq" startValue="1"/>
      <sequence increment="1" name="post_topics_id_seq" startValue="1"/>
      <sequence increment="1" name="published_posts_id_seq" startValue="1"/>
      <sequence increment="1" name="quality_scores_id_seq" startValue="1"/>
      <sequence increment="1" name="serp_analyses_id_seq" startValue="1"/>
   </sequences>
   <tables>
      <table name="blog_critiques" remarks="{&quot;what&quot;:&quot;A single critique run over a set of blog posts, with metadata and results.&quot;,&quot;why&quot;:&quot;Without it, results from different runs would be indistinguishable.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.699225761+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('blog_critiques_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer identifier for each critique run.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be referenced or updated individually.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.725452807+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="1" name="run_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the critique run started; defaults to current time.&quot;,&quot;why&quot;:&quot;Without it, the recency or ordering of runs is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.743473653+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="post_count" nullable="true" remarks="{&quot;what&quot;:&quot;Number of blog posts analyzed in this run.&quot;,&quot;why&quot;:&quot;Without it, the scale of the run is unknown, affecting result interpretation.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.769983018+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="model" nullable="true" remarks="{&quot;what&quot;:&quot;Name or identifier of the model/algorithm used for critique.&quot;,&quot;why&quot;:&quot;Without it, results cannot be compared across different models.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.785574914+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="redundancies" nullable="true" remarks="{&quot;what&quot;:&quot;JSONB structure holding redundancy analysis results (e.g., repeated phrases).&quot;,&quot;why&quot;:&quot;Without it, redundancy issues are not captured for review.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.817312041+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="quality" nullable="true" remarks="{&quot;what&quot;:&quot;JSONB structure holding quality scores or assessments.&quot;,&quot;why&quot;:&quot;Without it, quality metrics are missing, making evaluation impossible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.835246113+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="diversity" nullable="true" remarks="{&quot;what&quot;:&quot;JSONB structure holding diversity metrics across posts.&quot;,&quot;why&quot;:&quot;Without it, diversity of content cannot be measured.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.856493276+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="report_md" nullable="true" remarks="{&quot;what&quot;:&quot;Markdown-formatted full report of the critique run.&quot;,&quot;why&quot;:&quot;Without it, there is no human-readable summary of findings.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:50.881660502+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="blog_critiques_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
      </table>
      <table name="drafts" remarks="{&quot;what&quot;:&quot;A single revision of generated content for a job, with markdown and HTML.&quot;,&quot;why&quot;:&quot;Without it, previous versions of job content cannot be compared or restored.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.797315855+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('drafts_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer identifier for this draft row.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be referenced or updated individually.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.823781093+00:00&quot;}" size="10" type="serial" typeCode="4">
            <child column="draft_id" foreignKey="published_posts_draft_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="published_posts"/>
            <child column="draft_id" foreignKey="quality_scores_draft_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="quality_scores"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="job_id" nullable="false" remarks="{&quot;what&quot;:&quot;Identifier of the job this draft belongs to.&quot;,&quot;why&quot;:&quot;Without it, drafts cannot be linked to their parent job.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.862101963+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="drafts_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="pipeline_jobs"/>
         </column>
         <column autoUpdated="false" defaultValue="1" digits="0" id="2" name="revision" nullable="false" remarks="{&quot;what&quot;:&quot;Sequential version number for this draft within its job, starting at 1.&quot;,&quot;why&quot;:&quot;Without it, ordering and uniqueness of drafts per job is ambiguous.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.887905679+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="content_md" nullable="false" remarks="{&quot;what&quot;:&quot;Full draft content in Markdown format.&quot;,&quot;why&quot;:&quot;Without it, the draft's source text is unavailable for editing or re-rendering.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.897274405+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="content_html" nullable="false" remarks="{&quot;what&quot;:&quot;Full draft content rendered as HTML.&quot;,&quot;why&quot;:&quot;Without it, the rendered version cannot be displayed without re-rendering.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.909493646+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="word_count" nullable="false" remarks="{&quot;what&quot;:&quot;Number of words in the draft content.&quot;,&quot;why&quot;:&quot;Without it, length-based decisions (e.g., pricing, quotas) are impossible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.922410340+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="'gemma4-26b-a4b'::text" digits="0" id="6" name="model" nullable="false" remarks="{&quot;what&quot;:&quot;Name of the language model that generated this draft, e.g., 'gemma4-26b-a4b'.&quot;,&quot;why&quot;:&quot;Without it, the generation source is unknown, affecting reproducibility and cost analysis.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.934517876+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="prompt_tokens" nullable="true" remarks="{&quot;what&quot;:&quot;Number of tokens sent in the prompt to the model.&quot;,&quot;why&quot;:&quot;Without it, prompt cost and usage cannot be calculated.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.958533893+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="completion_tokens" nullable="true" remarks="{&quot;what&quot;:&quot;Number of tokens generated by the model in the completion.&quot;,&quot;why&quot;:&quot;Without it, generation cost and usage cannot be calculated.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:01.984844494+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="9" name="created_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when this draft was created, in UTC.&quot;,&quot;why&quot;:&quot;Without it, the chronological order of drafts is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:02.013901294+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="drafts_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="idx_drafts_job" unique="false">
            <column ascending="true" name="job_id"/>
         </index>
      </table>
      <table name="editorial_briefs" remarks="{&quot;what&quot;:&quot;A brief that guides content generation for a job.&quot;,&quot;why&quot;:&quot;Without it, content generation lacks a structured specification.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.048773666+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('editorial_briefs_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer identifier for each brief.&quot;,&quot;why&quot;:&quot;Needed to reference a brief from other tables.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.291959740+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="job_id" nullable="false" remarks="{&quot;what&quot;:&quot;Foreign key to the job this brief belongs to.&quot;,&quot;why&quot;:&quot;Links the brief to its parent job; without it, briefs are orphaned.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.311753755+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="editorial_briefs_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="pipeline_jobs"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="title" nullable="false" remarks="{&quot;what&quot;:&quot;Human-readable title of the brief.&quot;,&quot;why&quot;:&quot;Identifies the brief in lists and reports.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.330907389+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="slug" nullable="false" remarks="{&quot;what&quot;:&quot;URL-friendly version of the title, used in paths.&quot;,&quot;why&quot;:&quot;Provides a stable, readable identifier for routing and lookups.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.352947179+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="outline" nullable="false" remarks="{&quot;what&quot;:&quot;Structured outline of the content, e.g., sections and headings.&quot;,&quot;why&quot;:&quot;Defines the content structure that the model must follow.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.391701549+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="target_keywords" nullable="false" remarks="{&quot;what&quot;:&quot;List of keywords the content should target.&quot;,&quot;why&quot;:&quot;Guides SEO and ensures content covers required terms.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.440615246+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="target_word_count" nullable="false" remarks="{&quot;what&quot;:&quot;Desired length of the content in words.&quot;,&quot;why&quot;:&quot;Sets a length constraint for the generated content.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.470771769+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="content_gaps_to_fill" nullable="true" remarks="{&quot;what&quot;:&quot;Specific gaps in existing content that this brief addresses.&quot;,&quot;why&quot;:&quot;Ensures the generated content covers missing information.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.504719927+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="'gemma4-26b-a4b'::text" digits="0" id="8" name="model" nullable="false" remarks="{&quot;what&quot;:&quot;Name of the language model used for generation.&quot;,&quot;why&quot;:&quot;Records which model produced the content; affects reproducibility.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.590683651+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="9" name="created_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the brief was created.&quot;,&quot;why&quot;:&quot;Tracks when the brief was added; useful for auditing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.651119606+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="10" name="style_spec" nullable="true" remarks="{&quot;what&quot;:&quot;JSON object describing tone, voice, and formatting rules.&quot;,&quot;why&quot;:&quot;Ensures generated content matches the desired style.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:17.740695982+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="editorial_briefs_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
      </table>
      <table name="keywords" remarks="{&quot;what&quot;:&quot;A keyword record with search volume, difficulty, and optional post link.&quot;,&quot;why&quot;:&quot;Without it, keyword metrics and their post associations are lost, preventing SEO analysis.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:11.780073615+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('keywords_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer identifier for each keyword row.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be uniquely referenced or updated.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:11.791341624+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="keyword" nullable="false" remarks="{&quot;what&quot;:&quot;Exact keyword phrase, e.g., 'postgres indexing'.&quot;,&quot;why&quot;:&quot;Without it, the term being measured is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:11.812154997+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="search_volume" nullable="true" remarks="{&quot;what&quot;:&quot;Average monthly search count for the keyword, if known.&quot;,&quot;why&quot;:&quot;Without it, keyword popularity is unknown, hindering prioritization.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:11.833594192+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="3" name="difficulty" nullable="true" remarks="{&quot;what&quot;:&quot;Numeric difficulty score for ranking, higher means harder.&quot;,&quot;why&quot;:&quot;Without it, competition for the keyword cannot be assessed.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:11.847681498+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="4" name="last_generated_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the metrics were last fetched or generated.&quot;,&quot;why&quot;:&quot;Without it, data staleness is unknown, delaying refresh decisions.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:11.858440888+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="post_id" nullable="true" remarks="{&quot;what&quot;:&quot;Foreign key to the associated post, if any.&quot;,&quot;why&quot;:&quot;Without it, keywords cannot be linked to posts for content mapping.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:11.869321221+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="keywords_post_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="published_posts"/>
         </column>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="keywords_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="keywords_keyword_key" unique="true">
            <column ascending="true" name="keyword"/>
         </index>
      </table>
      <table name="news_packs" remarks="{&quot;what&quot;:&quot;A collection of news articles and derived metrics for a single topic.&quot;,&quot;why&quot;:&quot;Groups all news data and metadata for one topic so it can be cached and served as a unit.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:58.950324948+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('news_packs_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer identifier for each news pack.&quot;,&quot;why&quot;:&quot;Uniquely identifies a pack for updates, deletion, and references from other tables.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:58.962707292+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="topic" nullable="false" remarks="{&quot;what&quot;:&quot;The subject or keyword the news pack is about, e.g. 'AI'.&quot;,&quot;why&quot;:&quot;Determines which news pack to retrieve for a given topic; without it packs are indistinguishable.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:58.976083419+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="news_data" nullable="false" remarks="{&quot;what&quot;:&quot;JSON payload containing the news articles and their metadata.&quot;,&quot;why&quot;:&quot;Holds the actual news content; without it the pack has no data to serve.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:58.990120078+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="'manual'::text" digits="0" id="3" name="source_mode" nullable="false" remarks="{&quot;what&quot;:&quot;Source selection mode: 'manual' or other allowed values.&quot;,&quot;why&quot;:&quot;Indicates whether sources were manually curated or automatically chosen; affects trust and refresh logic.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:59.003924346+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="false" digits="0" id="4" name="sources_verified" nullable="true" remarks="{&quot;what&quot;:&quot;Flag indicating whether the news sources have been verified as reliable.&quot;,&quot;why&quot;:&quot;Distinguishes verified packs from unverified ones; unverified packs may be excluded from production use.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:59.018169704+00:00&quot;}" size="1" type="bool" typeCode="-7"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="entity_count" nullable="true" remarks="{&quot;what&quot;:&quot;Number of distinct entities (e.g., people, orgs) extracted from the news.&quot;,&quot;why&quot;:&quot;Provides a quick metric for pack size without parsing JSON; used for filtering or display.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:59.036565927+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="stat_count" nullable="true" remarks="{&quot;what&quot;:&quot;Number of statistics or data points referenced in the news.&quot;,&quot;why&quot;:&quot;Summarizes the pack's statistical content; helps compare packs or decide if more data is needed.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:59.049228589+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="case_ref_count" nullable="true" remarks="{&quot;what&quot;:&quot;Number of case references (e.g., legal cases) mentioned in the news.&quot;,&quot;why&quot;:&quot;Indicates legal relevance; used to prioritize packs for legal research.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:59.063277678+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="8" name="created_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the pack was created, in UTC.&quot;,&quot;why&quot;:&quot;Tracks pack age; used for sorting and auditing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:59.077110700+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="(now() + '90 days'::interval)" digits="6" id="9" name="expires_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the pack becomes stale and should be refreshed, in UTC.&quot;,&quot;why&quot;:&quot;Defines cache lifetime; without it packs would be served indefinitely with outdated news.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:09:59.100701119+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="news_packs_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="idx_news_topic" unique="false">
            <column ascending="true" name="topic"/>
         </index>
         <checkConstraint constraint="(source_mode = ANY (ARRAY['serp'::text, 'internal'::text, 'manual'::text]))" name="news_packs_source_mode_check"/>
      </table>
      <table name="pipeline_jobs" remarks="{&quot;what&quot;:&quot;A job in the content generation pipeline, tracking a single keyword-to-article workflow.&quot;,&quot;why&quot;:&quot;Without it, there is no record of each content request's progress and state.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:29.868963545+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('pipeline_jobs_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer identifier for each pipeline job.&quot;,&quot;why&quot;:&quot;Without it, jobs cannot be referenced or updated individually.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:29.898654932+00:00&quot;}" size="10" type="serial" typeCode="4">
            <child column="job_id" foreignKey="drafts_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="drafts"/>
            <child column="job_id" foreignKey="editorial_briefs_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="editorial_briefs"/>
            <child column="job_id" foreignKey="published_posts_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="published_posts"/>
            <child column="job_id" foreignKey="quality_scores_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="quality_scores"/>
            <child column="job_id" foreignKey="serp_analyses_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="serp_analyses"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="keyword" nullable="false" remarks="{&quot;what&quot;:&quot;The search keyword or topic phrase that the job will produce content for.&quot;,&quot;why&quot;:&quot;Without it, the job has no subject to generate content about.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:29.920274569+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="'how_to'::text" digits="0" id="2" name="content_type" nullable="false" remarks="{&quot;what&quot;:&quot;Content format type, e.g., 'how_to', 'listicle', 'guide'.&quot;,&quot;why&quot;:&quot;Without it, the output format is unknown, so the generation template cannot be chosen.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:29.931987812+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="'educational'::text" digits="0" id="3" name="tone" nullable="false" remarks="{&quot;what&quot;:&quot;Writing tone for the content, e.g., 'educational', 'casual', 'professional'.&quot;,&quot;why&quot;:&quot;Without it, the style of the generated article is unspecified, affecting audience fit.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:29.963787404+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="2000" digits="0" id="4" name="target_word_count" nullable="true" remarks="{&quot;what&quot;:&quot;Desired length of the final article in words.&quot;,&quot;why&quot;:&quot;Without it, the generation process has no length target, leading to inconsistent output sizes.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:29.980847394+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="'keyword_submitted'::text" digits="0" id="5" name="current_step" nullable="false" remarks="{&quot;what&quot;:&quot;Current stage in the pipeline, e.g., 'keyword_submitted', 'outline_created', 'draft_written'.&quot;,&quot;why&quot;:&quot;Without it, the job's progress is unknown, so resuming or error recovery is impossible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:30.006730047+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="6" name="revision_count" nullable="true" remarks="{&quot;what&quot;:&quot;Number of revision cycles the job has undergone.&quot;,&quot;why&quot;:&quot;Without it, there is no limit or history of how many times the content was revised.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:30.047172342+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="error" nullable="true" remarks="{&quot;what&quot;:&quot;Error message if the job failed, otherwise NULL.&quot;,&quot;why&quot;:&quot;Without it, failed jobs have no diagnostic information for debugging.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:30.121266864+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="8" name="created_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the job was created, in UTC.&quot;,&quot;why&quot;:&quot;Without it, job age and ordering cannot be determined.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:30.162693670+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="9" name="updated_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp of the last update to the job, in UTC.&quot;,&quot;why&quot;:&quot;Without it, stale jobs cannot be identified for cleanup or monitoring.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:30.199402264+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="10" name="news_pack_id" nullable="true" remarks="{&quot;what&quot;:&quot;Foreign key to a news pack, if this job is part of a batch.&quot;,&quot;why&quot;:&quot;Without it, jobs cannot be grouped into a news pack for coordinated processing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:30.244521789+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="pipeline_jobs_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="idx_jobs_status" unique="false">
            <column ascending="true" name="current_step"/>
         </index>
         <checkConstraint constraint="(current_step = ANY (ARRAY['keyword_submitted'::text, 'serp_researched'::text, 'content_extracted'::text, 'brief_created'::text, 'draft_generated'::text, 'quality_scored'::text, 'revision_complete'::text, 'published'::text, 'failed'::text]))" name="pipeline_jobs_current_step_check"/>
      </table>
      <table name="post_brief" remarks="{&quot;what&quot;:&quot;A row per post brief, linking a post to its generated content and metadata.&quot;,&quot;why&quot;:&quot;Without it, generated briefs cannot be persisted or retrieved per post.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:54.736704953+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="post_slug" nullable="false" remarks="{&quot;what&quot;:&quot;URL-friendly identifier for a post, e.g., 'my-post-title'.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be uniquely identified, breaking all references to a post.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:54.990730762+00:00&quot;}" size="2147483647" type="text" typeCode="12">
            <child column="post_slug" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" schema="public" table="post_sources"/>
            <child column="post_slug" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" schema="public" table="post_tags"/>
            <child column="post_slug" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" schema="public" table="post_topics"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="facts" nullable="true" remarks="{&quot;what&quot;:&quot;Arbitrary JSON data of facts extracted from the post.&quot;,&quot;why&quot;:&quot;Without it, the post's factual content is lost, preventing automated fact-based analysis.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:55.215404028+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="meaning_ref" nullable="true" remarks="{&quot;what&quot;:&quot;Identifier or path to the meaning definition for this post.&quot;,&quot;why&quot;:&quot;Without it, the meaning behind the post is not linked, making it impossible to verify interpretation.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:55.433878065+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="verbatim_ref" nullable="true" remarks="{&quot;what&quot;:&quot;Reference to the verbatim source text, e.g., a URL or ID.&quot;,&quot;why&quot;:&quot;Without it, the original text cannot be located for comparison.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:55.668079175+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="brief_ref" nullable="true" remarks="{&quot;what&quot;:&quot;Reference to the brief document, e.g., a file path or ID.&quot;,&quot;why&quot;:&quot;Without it, the associated brief cannot be retrieved.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:55.966736529+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="angle_slug" nullable="true" remarks="{&quot;what&quot;:&quot;Slug identifying the angle or perspective used for this brief.&quot;,&quot;why&quot;:&quot;Without it, the angle of the brief is unknown, making it hard to group or filter by perspective.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:56.015646192+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="persona" nullable="true" remarks="{&quot;what&quot;:&quot;JSON object describing the target persona, e.g., age, role.&quot;,&quot;why&quot;:&quot;Without it, the intended audience is not defined, affecting content tone and relevance.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:56.108856403+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="content_mode" nullable="true" remarks="{&quot;what&quot;:&quot;Mode of content, e.g., 'draft' or 'final'.&quot;,&quot;why&quot;:&quot;Without it, the status of the content is ambiguous, risking publishing incomplete work.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:56.810273439+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="source_urls" nullable="true" remarks="{&quot;what&quot;:&quot;List of source URLs used for the post.&quot;,&quot;why&quot;:&quot;Without it, the provenance of the content is unknown, making fact-checking impossible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:56.856600840+00:00&quot;}" size="2147483647" type="_text" typeCode="2003"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="word_count" nullable="true" remarks="{&quot;what&quot;:&quot;Number of words in the post.&quot;,&quot;why&quot;:&quot;Without it, content length cannot be measured for SEO or readability.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:56.985421438+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="false" digits="0" id="10" name="complete" nullable="true" remarks="{&quot;what&quot;:&quot;Flag indicating whether the brief is complete (true) or not (false).&quot;,&quot;why&quot;:&quot;Without it, incomplete briefs cannot be filtered out, risking use of unfinished content.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:57.142881317+00:00&quot;}" size="1" type="bool" typeCode="-7"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="11" name="generated_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp with time zone of generation.&quot;,&quot;why&quot;:&quot;Without it, the freshness of the brief cannot be determined, leading to stale content.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:58.320684795+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="12" name="brief_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp with time zone of last update, defaults to current time.&quot;,&quot;why&quot;:&quot;Without it, the last modification time is unknown, making it hard to track changes.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:58.416708877+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="13" name="primary_keyword" nullable="true" remarks="{&quot;what&quot;:&quot;Main keyword targeted by the post.&quot;,&quot;why&quot;:&quot;Without it, SEO focus is unclear, affecting search ranking decisions.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:58.436948559+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="14" name="meaning_md" nullable="true" remarks="{&quot;what&quot;:&quot;Markdown text of the meaning section.&quot;,&quot;why&quot;:&quot;Without it, the meaning content is not available for rendering.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:58.454615547+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="15" name="verbatim_md" nullable="true" remarks="{&quot;what&quot;:&quot;Markdown text of the verbatim section.&quot;,&quot;why&quot;:&quot;Without it, the verbatim content is missing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:58.472269730+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="16" name="brief_md" nullable="true" remarks="{&quot;what&quot;:&quot;Markdown text of the brief content.&quot;,&quot;why&quot;:&quot;Without it, the brief body is absent.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:58.515720739+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <primaryKey column="post_slug" sequenceNumberInPK="1"/>
         <index name="post_brief_pkey" unique="true">
            <column ascending="true" name="post_slug"/>
         </index>
      </table>
      <table name="post_sources" remarks="{&quot;what&quot;:&quot;Associates a post (by slug) with an external source; one row per source.&quot;,&quot;why&quot;:&quot;Without it, the post's citations and source links are missing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.114337780+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('post_sources_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique numeric identifier for each source row.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be uniquely referenced or updated.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.140372302+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="post_slug" nullable="false" remarks="{&quot;what&quot;:&quot;Slug of the post this source is attached to.&quot;,&quot;why&quot;:&quot;Without it, sources cannot be associated with a specific post.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.273427667+00:00&quot;}" size="2147483647" type="text" typeCode="12">
            <parent column="post_slug" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" schema="public" table="post_brief"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="ref_n" nullable="true" remarks="{&quot;what&quot;:&quot;Optional numeric label (e.g., footnote number) for the source.&quot;,&quot;why&quot;:&quot;Without it, the source's position or citation number in the post is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.454394818+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="publisher" nullable="true" remarks="{&quot;what&quot;:&quot;Name of the organization or site that published the source.&quot;,&quot;why&quot;:&quot;Without it, the source's origin and credibility cannot be assessed.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.497498871+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="title" nullable="true" remarks="{&quot;what&quot;:&quot;Title of the source document or page.&quot;,&quot;why&quot;:&quot;Without it, the source cannot be identified or displayed in citations.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.512892047+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="year" nullable="true" remarks="{&quot;what&quot;:&quot;Publication year of the source, as a four-digit number.&quot;,&quot;why&quot;:&quot;Without it, the source's age and context are missing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.576310857+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="source_url" nullable="false" remarks="{&quot;what&quot;:&quot;URL where the source was originally found.&quot;,&quot;why&quot;:&quot;Without it, the source cannot be retrieved or verified.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.810476670+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="canonical_url" nullable="false" remarks="{&quot;what&quot;:&quot;Preferred permanent URL for the source, if different from source_url.&quot;,&quot;why&quot;:&quot;Without it, link rot or redirects make the source unreachable.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.834542891+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="8" name="first_seen_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp (with time zone) of when the source was first recorded.&quot;,&quot;why&quot;:&quot;Without it, the age of the source record and its discovery time are unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:49.856486851+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="post_sources_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="idx_post_sources_canon" unique="false">
            <column ascending="true" name="canonical_url"/>
         </index>
         <index name="post_sources_post_slug_canonical_url_key" unique="true">
            <column ascending="true" name="post_slug"/>
            <column ascending="true" name="canonical_url"/>
         </index>
      </table>
      <table name="post_tags" remarks="{&quot;what&quot;:&quot;One row per tag applied to a post, identified by post_slug.&quot;,&quot;why&quot;:&quot;Without it, tag assignments for posts are unknown, making tag-based queries and weighting impossible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:12.485539407+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('post_tags_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique numeric identifier for each tag assignment.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be uniquely referenced for updates or deletions.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:12.513933252+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="post_slug" nullable="false" remarks="{&quot;what&quot;:&quot;Slug of the post this tag is attached to.&quot;,&quot;why&quot;:&quot;Without it, the tag cannot be linked to a specific post, making the assignment meaningless.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:12.531705637+00:00&quot;}" size="2147483647" type="text" typeCode="12">
            <parent column="post_slug" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" schema="public" table="post_brief"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="tag" nullable="false" remarks="{&quot;what&quot;:&quot;Tag text applied to the post; e.g., 'database'.&quot;,&quot;why&quot;:&quot;Without it, the actual tag value is missing, so no tag-based filtering or grouping is possible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:12.565243848+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="'llm'::text" digits="0" id="3" name="source" nullable="false" remarks="{&quot;what&quot;:&quot;Origin of the tag assignment; default 'llm' for machine-generated.&quot;,&quot;why&quot;:&quot;Without it, you cannot distinguish human-curated tags from automated ones, affecting trust or filtering.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:12.578706822+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="1.0" digits="8" id="4" name="weight" nullable="true" remarks="{&quot;what&quot;:&quot;Numeric weight of the tag assignment; default 1.0, higher means stronger association.&quot;,&quot;why&quot;:&quot;Without it, all tags are equally important, so ranking or scoring of tags is impossible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:12.603157331+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="5" name="created_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the tag assignment was created, in UTC.&quot;,&quot;why&quot;:&quot;Without it, the age of the assignment is unknown, so time-based decay or auditing is impossible.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:12.621624284+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="post_tags_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="post_tags_post_slug_tag_key" unique="true">
            <column ascending="true" name="post_slug"/>
            <column ascending="true" name="tag"/>
         </index>
      </table>
      <table name="post_topics" remarks="{&quot;what&quot;:&quot;One row per post-topic assignment, linking a post slug to a topic angle and its vector.&quot;,&quot;why&quot;:&quot;Without it, post-topic relationships and their vector representations are unknown, breaking topic-based filtering and recommendation.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:54.227650060+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('post_topics_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer assigned by sequence; primary key for this row.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be uniquely referenced for updates or deletions.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:54.389541134+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="post_slug" nullable="false" remarks="{&quot;what&quot;:&quot;Slug of the post this topic assignment belongs to; matches a post's slug.&quot;,&quot;why&quot;:&quot;Without it, the assignment cannot be linked to a specific post, making the row meaningless.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:54.632671587+00:00&quot;}" size="2147483647" type="text" typeCode="12">
            <parent column="post_slug" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" schema="public" table="post_brief"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="primary_keyword" nullable="true" remarks="{&quot;what&quot;:&quot;Main keyword or phrase that characterizes the topic for this post.&quot;,&quot;why&quot;:&quot;Without it, the main searchable term for this topic assignment is missing, breaking keyword-based lookups.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:54.844136446+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="angle_slug" nullable="true" remarks="{&quot;what&quot;:&quot;Slug identifying the specific angle or perspective of the topic.&quot;,&quot;why&quot;:&quot;Without it, the nuance of the topic is lost, making it impossible to distinguish different angles on the same keyword.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:55.053613897+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="topic_vector" nullable="true" remarks="{&quot;what&quot;:&quot;JSON array of numeric values representing the topic embedding vector.&quot;,&quot;why&quot;:&quot;Without it, similarity calculations for recommendations or clustering cannot be performed.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:55.320149784+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="5" name="created_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when this topic assignment was created, in UTC.&quot;,&quot;why&quot;:&quot;Without it, the age of the assignment is unknown, affecting time-based filtering or audits.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T04:17:55.630096778+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="post_topics_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="post_topics_post_slug_key" unique="true">
            <column ascending="true" name="post_slug"/>
         </index>
      </table>
      <table name="published_posts" remarks="{&quot;what&quot;:&quot;A published blog post with rendered content and SEO metadata.&quot;,&quot;why&quot;:&quot;Serves as the canonical record for live posts, separating them from drafts and enabling retrieval by slug.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.059488340+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('published_posts_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer identifier for each published post.&quot;,&quot;why&quot;:&quot;Needed to reference a post from other tables without ambiguity.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.070513942+00:00&quot;}" size="10" type="serial" typeCode="4">
            <child column="post_id" foreignKey="keywords_post_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="keywords"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="job_id" nullable="false" remarks="{&quot;what&quot;:&quot;Identifier of the job that produced this post.&quot;,&quot;why&quot;:&quot;Ties the post to its generation job for auditing and reprocessing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.087376946+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="published_posts_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="pipeline_jobs"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="draft_id" nullable="false" remarks="{&quot;what&quot;:&quot;Identifier of the source draft this post was published from.&quot;,&quot;why&quot;:&quot;Links the published version to its draft for version history and rollback.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.100723990+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="published_posts_draft_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="drafts"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="slug" nullable="false" remarks="{&quot;what&quot;:&quot;URL-friendly unique string used in the post's web address.&quot;,&quot;why&quot;:&quot;Enables human-readable and SEO-friendly URLs; without it, posts would need numeric IDs.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.113935018+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="title" nullable="false" remarks="{&quot;what&quot;:&quot;Human-readable headline of the post.&quot;,&quot;why&quot;:&quot;Needed for display in lists, search results, and social sharing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.139421228+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="keyword" nullable="false" remarks="{&quot;what&quot;:&quot;Primary search keyword the post targets.&quot;,&quot;why&quot;:&quot;Used for SEO analysis and to group posts by topic.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.162247758+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="content_md" nullable="false" remarks="{&quot;what&quot;:&quot;Full post body in Markdown format.&quot;,&quot;why&quot;:&quot;Source content for editing and re-rendering; without it, the original text is lost.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.174552599+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="content_html" nullable="false" remarks="{&quot;what&quot;:&quot;Pre-rendered HTML version of the post body.&quot;,&quot;why&quot;:&quot;Served directly to readers to avoid rendering on each request; without it, pages would be slow.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.193546218+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="meta_description" nullable="true" remarks="{&quot;what&quot;:&quot;Short SEO description for search engine snippets.&quot;,&quot;why&quot;:&quot;Controls the snippet text in search results; without it, search engines may pick arbitrary text.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.213765082+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="meta_keywords" nullable="true" remarks="{&quot;what&quot;:&quot;JSON array of additional SEO keywords.&quot;,&quot;why&quot;:&quot;Provides extra keyword signals for search engines and content analysis.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.225871461+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="10" name="headings" nullable="true" remarks="{&quot;what&quot;:&quot;JSON structure of the post's headings (e.g., h1, h2) with hierarchy.&quot;,&quot;why&quot;:&quot;Used for table of contents generation and SEO heading analysis.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.237312760+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="11" name="word_count" nullable="false" remarks="{&quot;what&quot;:&quot;Number of words in the post body.&quot;,&quot;why&quot;:&quot;Used for content length metrics and reading time estimation.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.252106515+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="12" name="reading_time_minutes" nullable="true" remarks="{&quot;what&quot;:&quot;Estimated minutes to read the post, derived from word count.&quot;,&quot;why&quot;:&quot;Shown to readers to set expectations; without it, readers cannot gauge length.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.264771217+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="13" name="quality_score" nullable="false" remarks="{&quot;what&quot;:&quot;Numeric quality score (likely 0-1) assigned by an algorithm.&quot;,&quot;why&quot;:&quot;Used to filter or rank posts; without it, content quality cannot be compared.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.280633264+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="14" name="serp_snapshot_id" nullable="true" remarks="{&quot;what&quot;:&quot;Identifier of the search engine results page snapshot taken for this post.&quot;,&quot;why&quot;:&quot;Links to historical SERP data for tracking ranking changes.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.296387529+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="15" name="published_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when the post was published, in UTC.&quot;,&quot;why&quot;:&quot;Needed for chronological ordering and to know when the post went live.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:17.313880176+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="published_posts_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
         <index name="idx_published_keyword" unique="false">
            <column ascending="true" name="keyword"/>
         </index>
         <index name="idx_published_slug" unique="false">
            <column ascending="true" name="slug"/>
         </index>
         <index name="published_posts_slug_key" unique="true">
            <column ascending="true" name="slug"/>
         </index>
      </table>
      <table name="quality_scores" remarks="{&quot;what&quot;:&quot;Per-draft quality metrics and analysis results from a scoring job.&quot;,&quot;why&quot;:&quot;Without it, there is no record linking drafts to their quality scores and job context.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.052476990+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('quality_scores_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique row identifier, auto-incrementing integer.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be uniquely referenced or updated.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.074228943+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="draft_id" nullable="false" remarks="{&quot;what&quot;:&quot;ID of the draft being scored.&quot;,&quot;why&quot;:&quot;Without it, scores cannot be tied to a specific draft.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.101538931+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="quality_scores_draft_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="drafts"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="job_id" nullable="false" remarks="{&quot;what&quot;:&quot;ID of the scoring job that produced these scores.&quot;,&quot;why&quot;:&quot;Without it, cannot trace which job run generated the scores.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.138721676+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="quality_scores_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="pipeline_jobs"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="8" id="3" name="readability_grade" nullable="true" remarks="{&quot;what&quot;:&quot;Numeric readability grade from the scoring algorithm.&quot;,&quot;why&quot;:&quot;Without it, readability quality is unknown for this draft.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.150447111+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="4" name="keyword_density" nullable="true" remarks="{&quot;what&quot;:&quot;Keyword density as a real number, likely a ratio.&quot;,&quot;why&quot;:&quot;Without it, keyword usage cannot be evaluated.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.175541662+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="5" name="heading_structure_score" nullable="true" remarks="{&quot;what&quot;:&quot;Score for heading hierarchy and structure.&quot;,&quot;why&quot;:&quot;Without it, heading quality is not measured.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.198590719+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="6" name="content_coverage_score" nullable="true" remarks="{&quot;what&quot;:&quot;Score for how well content covers expected topics.&quot;,&quot;why&quot;:&quot;Without it, content completeness is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.212928462+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="7" name="originality_score" nullable="true" remarks="{&quot;what&quot;:&quot;Score for originality or uniqueness of the draft.&quot;,&quot;why&quot;:&quot;Without it, plagiarism risk cannot be assessed.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.228093448+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="8" name="overall_score" nullable="false" remarks="{&quot;what&quot;:&quot;Composite quality score, required for every record.&quot;,&quot;why&quot;:&quot;Without it, there is no single quality metric to compare drafts.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.325053902+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="issues" nullable="true" remarks="{&quot;what&quot;:&quot;JSON array of issues found during scoring.&quot;,&quot;why&quot;:&quot;Without it, specific problems are not recorded for review.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.381592936+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="10" name="pass" nullable="false" remarks="{&quot;what&quot;:&quot;Boolean indicating whether the draft passed quality threshold.&quot;,&quot;why&quot;:&quot;Without it, pass/fail status is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.436042234+00:00&quot;}" size="1" type="bool" typeCode="-7"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="11" name="scored_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp when scoring was performed, default now.&quot;,&quot;why&quot;:&quot;Without it, timing of score generation is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.451584711+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="12" name="humanrhythm_score" nullable="true" remarks="{&quot;what&quot;:&quot;Score from human rhythm analysis.&quot;,&quot;why&quot;:&quot;Without it, rhythm quality is not captured.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.477243846+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="13" name="humanrhythm_flags" nullable="true" remarks="{&quot;what&quot;:&quot;JSON flags from human rhythm analysis.&quot;,&quot;why&quot;:&quot;Without it, specific rhythm issues are not recorded.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.512919975+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="14" name="tension_arc_type" nullable="true" remarks="{&quot;what&quot;:&quot;Text label for narrative tension arc type.&quot;,&quot;why&quot;:&quot;Without it, arc type is unknown for analysis.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.552880592+00:00&quot;}" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="15" name="tension_arc_fit" nullable="true" remarks="{&quot;what&quot;:&quot;Real number measuring fit of the tension arc.&quot;,&quot;why&quot;:&quot;Without it, arc quality cannot be quantified.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.629027792+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="16" name="tension_inversions" nullable="true" remarks="{&quot;what&quot;:&quot;Integer count of tension inversions.&quot;,&quot;why&quot;:&quot;Without it, inversion count is missing.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.655726371+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="17" name="tension_rhythm_sync" nullable="true" remarks="{&quot;what&quot;:&quot;Real number measuring sync between tension and rhythm.&quot;,&quot;why&quot;:&quot;Without it, rhythm-tension alignment is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.674425701+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="18" name="tension_range" nullable="true" remarks="{&quot;what&quot;:&quot;Real number for tension range.&quot;,&quot;why&quot;:&quot;Without it, tension variability is not measured.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.691650515+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="19" name="emotion_ratio" nullable="true" remarks="{&quot;what&quot;:&quot;Real number ratio of emotional content.&quot;,&quot;why&quot;:&quot;Without it, emotional balance is unknown.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.703500666+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="8" id="20" name="news_coverage" nullable="true" remarks="{&quot;what&quot;:&quot;Real number for news coverage score.&quot;,&quot;why&quot;:&quot;Without it, news coverage is not evaluated.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.720311893+00:00&quot;}" size="8" type="float4" typeCode="7"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="21" name="news_missing" nullable="true" remarks="{&quot;what&quot;:&quot;JSON list of missing news items.&quot;,&quot;why&quot;:&quot;Without it, gaps in news coverage are not recorded.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.748536864+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="22" name="deviation_report" nullable="true" remarks="{&quot;what&quot;:&quot;JSON report of deviations from expected content.&quot;,&quot;why&quot;:&quot;Without it, deviations are not documented.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:11:33.778729416+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="quality_scores_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
      </table>
      <table name="serp_analyses" remarks="{&quot;what&quot;:&quot;One row per SERP analysis run for a job and snapshot.&quot;,&quot;why&quot;:&quot;Without it, extracted insights from a SERP snapshot are lost, so downstream decisions lack evidence.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.465971623+00:00&quot;}" schema="public" type="TABLE">
         <column autoUpdated="true" defaultValue="nextval('serp_analyses_id_seq'::regclass)" digits="0" id="0" name="id" nullable="false" remarks="{&quot;what&quot;:&quot;Unique integer ID, auto-generated from sequence.&quot;,&quot;why&quot;:&quot;Without it, rows cannot be uniquely referenced for updates or joins.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.493941064+00:00&quot;}" size="10" type="serial" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="job_id" nullable="false" remarks="{&quot;what&quot;:&quot;ID of the job that triggered this analysis.&quot;,&quot;why&quot;:&quot;Without it, analyses cannot be linked to the originating job, making it impossible to track per-job outcomes.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.540920969+00:00&quot;}" size="10" type="int4" typeCode="4">
            <parent column="id" foreignKey="serp_analyses_job_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="pipeline_jobs"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="serp_snapshot_id" nullable="false" remarks="{&quot;what&quot;:&quot;ID of the SERP snapshot that was analyzed.&quot;,&quot;why&quot;:&quot;Without it, you cannot know which search results page the analysis refers to, so the analysis is meaningless.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.557930857+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="top_results" nullable="false" remarks="{&quot;what&quot;:&quot;JSON array of the top search results with their metadata.&quot;,&quot;why&quot;:&quot;Without it, the actual results that were analyzed are missing, so the analysis cannot be verified or reproduced.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.573895532+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="common_themes" nullable="true" remarks="{&quot;what&quot;:&quot;JSON object listing themes shared across the top results.&quot;,&quot;why&quot;:&quot;Without it, the identified commonalities are unknown, so the analysis loses its main insight.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.585922244+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="content_gaps" nullable="true" remarks="{&quot;what&quot;:&quot;JSON object describing missing or underrepresented content in the results.&quot;,&quot;why&quot;:&quot;Without it, opportunities for new content are not captured, so the analysis cannot guide content strategy.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.607174605+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="avg_word_count" nullable="true" remarks="{&quot;what&quot;:&quot;Average word count of the analyzed top results, as an integer.&quot;,&quot;why&quot;:&quot;Without it, the typical length of competing content is unknown, so you cannot benchmark your own content.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.633467336+00:00&quot;}" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="7" name="analyzed_at" nullable="true" remarks="{&quot;what&quot;:&quot;Timestamp (with time zone) when the analysis was completed; defaults to current time.&quot;,&quot;why&quot;:&quot;Without it, you cannot know how fresh the analysis is, so decisions may rely on outdated data.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.648562188+00:00&quot;}" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="news_data" nullable="true" remarks="{&quot;what&quot;:&quot;JSON object containing news-specific results or metadata from the SERP.&quot;,&quot;why&quot;:&quot;Without it, news-related insights are missing, so the analysis cannot cover news-driven SERPs.&quot;,&quot;by&quot;:&quot;fleet-annotator-worker&quot;,&quot;at&quot;:&quot;2026-09-23T00:10:24.673806811+00:00&quot;}" size="2147483647" type="jsonb" typeCode="1111"/>
         <primaryKey column="id" sequenceNumberInPK="1"/>
         <index name="serp_analyses_pkey" unique="true">
            <column ascending="true" name="id"/>
         </index>
      </table>
   </tables>
</database>
