Files
content-factory/tasks/003-postgres-schema-and-seed-data.md
T

2.4 KiB

Task 003: Postgres Schema And Seed Data

Development description: Create the initial relational schema, migrations, indexes, and seed data for articles, sites, workflow state, jobs, research manifests, publishing versions, and audit events.

Implementation Details

  • Add migration tooling for the FastAPI backend, such as Alembic.
  • Create tables:
    • users
    • target_sites
    • script_config_versions
    • articles
    • boundary_questions
    • article_plans
    • plan_sections
    • evidence_items
    • claims
    • article_drafts
    • assets
    • workflow_events
    • agent_jobs
    • research_run_manifests
    • publish_commits
    • prompt_versions
  • Store article/domain status in domain tables as authoritative state.
  • Store LangGraph checkpoints separately from domain tables if checkpointing is implemented in this task.
  • Seed:
    • One Admin user.
    • One Editor user.
    • One Git-backed Next target site.
    • One active publishing YAML/script config version.
  • Add indexes for article dashboard queries, job queues, workflow timeline, and site lookup by slug.

Public Interface

  • alembic upgrade head creates the schema.
  • Backend repository methods can create/read seeded target sites and users.

Acceptance Criteria

  • TDD pre-requirement: before implementing migrations, write one failing integration test through repository/public backend interfaces for seeded site lookup; add further tests one behavior at a time and record red-green evidence in Result.
  • Migrations run cleanly on an empty Postgres database.
  • Seed data is idempotent.
  • Article/domain tables hold authoritative article statuses.
  • Script/config versions store author, timestamp, diff, rollback target, activation timestamp, YAML, and transform script.
  • Research manifests store S3 prefixes, source URLs, object keys, content hashes, artifact types, and metadata references.
  • Publish commits store repository URL, branch, commit SHA, content bundle manifest, and status.

Verification

  • Run migration tests against a disposable Postgres database.
  • Run seed command twice and verify no duplicates.
  • Run repository integration tests.

Result

  • Status: Pending execution.
  • TDD plan: To be filled during execution.
  • Red evidence: To be filled during execution.
  • Green evidence: To be filled during execution.
  • Refactor notes: To be filled during execution.
  • Verification output: To be filled during execution.