Sangeetha-Grantha

Metadata Value
Status Active
Version 1.0.0
Last Updated 2026-09-10
Author Principal Data & AI Engineering review (for Seshadri)
Document Type Design reference
Companion doc sangeetha-grantha-state-of-nation-july-2026.md
Scope Re-prioritised task list factoring open Conductor tracks against the uplift findings. Gemma 4 deliberately excluded per your call.

Sangeetha Grantha — Uplift Task List


[!NOTE] Design/reference material: this page may include proposals or earlier implementation assumptions. Use current feature map for implemented behavior and current operating steps.

[!NOTE] U7 (semantic search) is done — TRACK-108, Gemini Embedding 2 + pgvector, Curator Console hybrid mode. This June 2026 sequencing document is otherwise historical.

This takes the findings from the State-of-Nation review (F1–F8) and collides them with what’s actually open in Conductor. The priority order in the companion doc assumed a clean slate; it isn’t one. Once you factor in the in-flight Trinity import and the payload-convergence cleanup, the ordering tightens — because the AI breakage sits directly underneath the content work you’ve already started. The headline: you cannot safely resume the Trinity import until the AI layer is fixed, so that moves to the front regardless of how “infrastructural” it felt in the abstract.


1. Why the priority changed once tracks were factored in

The State-of-Nation doc ranked the AI-availability fixes (F1/F3) first on correctness grounds, but treated them as standalone platform hygiene. They are not standalone. The open tracks reveal the coupling:

So the re-hash is less “new work” and more “sequence the work you already have so the foundation is sound before you pour content on it.”


2. Open tracks snapshot (the only ones that matter here)

Track Title Status Relevance to uplift
TRACK-093 Trinity Krithi Bulk Import (1,245 krithis) In Progress Blocked by AI fixes (F1/F3); prime candidate for Batch Mode (F5)
TRACK-096 Payload Format Convergence (deprecate ScrapedKrithiMetadata) In Progress Phase 4 cleanup pending; aligns with F4
TRACK-099 Backend Compiler Warning Cleanup (zero-warning target) Not Started (registry) / file says “staged” — discrepancy, see §6 Coupled to TRACK-096 Phase 4
TRACK-065 Python Extraction Module Promotion & Rename Deferred Bundle the rename with the SDK migration (F3) — same module, one disturbance
TRACK-035 Frontend E2E Testing (Playwright) Deferred Playwright pinned at 1.40.0 (old); revive alongside frontend patch bumps
TRACK-014 Bulk Import Testing & QA Deferred Regression safety net for the re-enabled enrichment path
TRACK-042 MCP Database Tooling Optimization Deferred Low priority; unrelated to uplift
TRACK-002 Doc Header Standardizations Deferred Housekeeping; do opportunistically

3. The task list (priority-ordered)

Tasks are tagged with the finding (F#) and track they serve. Effort is engineer-days for one person. “Blocked by” is hard sequencing.

P0 — Unblock the pipeline (availability & correctness; do before any more content import)

U1 — Migrate the extraction worker off the deprecated google.generativeai SDK → google-genai F3 · serves TRACK-093, TRACK-065 · ~1 day · blocks: U2, U3, TRACK-093 resume

U2 — Repoint the model string off retired gemini-2.0-flashgemini-3.5-flash, behind config F1,F2 · serves TRACK-093 · ~1 day incl. eval · blocked by: U1

U3 — Formalise structured output with a Pydantic response_schema F4 · serves TRACK-096 · ~1 day (reduced — partial adoption already exists) · blocked by: U1

P1 — Finish in-flight work, now de-risked

U4 — Resume and complete TRACK-093 (Trinity import, 1,245 krithis) serves TRACK-093 · ~2–3 days · blocked by: U1, U2, U3

U5 — Run the Trinity backfill through Batch Mode F5 · serves TRACK-093 · ~1 day (fold into U4) · blocked by: U1

U6 — Complete TRACK-096 Phase 4 + TRACK-099 together (DTO convergence + zero-warning build) F4 · serves TRACK-096, TRACK-099 · ~2 days · best done after U3

P2 — New capability worth pulling forward

U7 — Semantic search v1: gemini-embedding-001 + pgvector F6 · new track · ~1 week · blocked by: U1 (new SDK)

P3 — Housekeeping & reviving deferred tracks (any time; one PR each)

U8 — Bundle the Python module rename (TRACK-065) into the U1 SDK migration serves TRACK-065 · ~0.5 day · do with U1

U9 — Backend minor bumps: Kotlin 2.4 / Ktor 3.5; evaluate Ktor OpenAPI generation F7 · ~1 day

U10 — Frontend + Python patch roll-up; revive TRACK-035 (Playwright E2E) F8 · serves TRACK-035 · ~1–2 days

U11 — Revive TRACK-014 (Bulk Import Testing & QA) as the regression net for U4/U6 serves TRACK-014 · ~2 days

U12 — Opportunistic: TRACK-002 (doc headers), TRACK-042 (MCP DB tooling)


4. Dependency graph

U1 (SDK migration) ──┬──> U2 (model repoint) ──┐
                     ├──> U3 (structured out) ──┼──> U4 (resume Trinity import) ──> U5 (batch backfill)
                     ├──> U5 (Batch Mode)        │
                     ├──> U7 (embeddings)        │
                     └──> U8 (module rename)     │
                                                 │
U3 ───────────────────────> U6 (convergence + zero-warning) [TRACK-096 P4 + TRACK-099]
                                                 │
U9 / U10 / U11 / U12 — independent, schedule around the above

U1 is the keystone: it unblocks the model swap, structured output, Batch, embeddings, and the rename. Do it first.


5. Suggested sequencing (two short sprints)

Sprint 1 — “Make the foundation sound” (P0 + start P1): U1 → U2 → U3 (the AI keystone, ~3 days), then U6 (convergence + zero-warning, ~2 days). End state: pipeline runs on a supported SDK + live model, payloads are schema-true, build is warning-free. Now it’s safe to import content.

Sprint 2 — “Pour content + one new capability”: U4 + U5 (Trinity import via Batch, ~3 days), then U7 (semantic search v1, ~1 week) if appetite allows. Slot U8/U9/U10/U11 housekeeping around them.

This ordering means the 1,245-krithi import (U4) only runs after the SDK, model, and schema are fixed — which is the whole reason the priority was re-hashed.


6. Data-integrity note (action required)

TRACK-099 status is inconsistent. The registry (conductor/tracks.md) lists it as Not Started, but the track file’s own header says Status: Completed with a progress log entry “2026-03-17: … Staged for commit.” “Staged but not committed” is the most likely reality — i.e. the work was done in a working tree that was never merged. Before starting U6, verify whether that change actually landed (git log/git status on the listed files); if it was lost, U6 absorbs it; if it merged, update the registry to Completed. Don’t trust either source until you’ve checked the build for the 53 warnings yourself.


7. New Conductor tracks to register

Per your 09-ai/README.md convention, register these before starting (each needs a TRACK-XXX row + detail file):

Remember the project commit rule: every commit needs a Ref: application_documentation/... line, and version changes must sync current-versions.md, 02-architecture/tech-stack.md, and 00-onboarding/getting-started.md.


8. The one-line version

Fix the AI keystone (U1–U3) and clear the convergence/warning debt (U6) before you resume the Trinity import (U4) — because the import you’ve already started is quietly sitting on a retired model and a deprecated SDK. Everything else is cheap follow-on.


References


Section index · Documentation home · Feature status