Sangeetha-Grantha

Metadata Value
Status Active
Version 1.1.1
Last Updated 2026-09-10
Author Sangeetha Grantha Team
Document Type Design reference
Parent Document quality-strategy.md
Related Tracks TRACK-039, TRACK-040, TRACK-041

Implementation Checklist — Krithi Data Sourcing & Quality Strategy


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

This checklist provides a detailed, actionable breakdown of every task required to implement the strategy defined in the parent document. Tasks are organised by phase and sprint, with dependencies, acceptance criteria, and the responsible codebase area clearly identified.


Legend


Phase 0: Foundation & Quality Baseline

Goal: Establish quality baseline, formalise schemas, and set up infrastructure for multi-format ingestion. Timeline: Sprints 1–2 (~2 weeks)

0.1 TRACK-039: Structural Quality Audit (TRACK-039)

0.2 Canonical Extraction Schema

0.3 Database Schema Extensions

0.4 Source Registry Population


Phase 1: PDF Ingestion — Skeleton Extraction

Goal: Build the Python PDF extraction service and integrate it into the Kotlin orchestration pipeline. Timeline: Sprints 1–4 (~4 weeks)

1.1 Python PDF Extraction Service — Setup

1.2 PDF Extraction — Core (guruguha.org mdskt.pdf)

1.3 PDF Extraction — English Edition (mdeng.pdf)

1.4 PDF Extraction — OCR Fallback

1.5 PDF Extraction — LLM Refinement

1.6 Kotlin Integration — DB Queue Producer

The Kotlin backend writes extraction requests to the extraction_queue table. The Python container (running independently) picks up and processes these tasks. The Kotlin backend then reads completed results.

1.7 Source Adapter Interface


Phase 2: Structural Validation & Voting

Goal: Implement cross-source structural voting to establish verified canonical structures. Timeline: Sprints 5–6 (~2 weeks) Dependency: Phase 1 complete (multiple sources ingested for overlapping Krithis)

2.1 Structural Voting Engine (TRACK-041)

2.2 ComposerSourcePriority Map (TRACK-041)

2.3 Source Evidence Tracking


Phase 3: Lyric Enrichment

Goal: Systematically source lyric variants in multiple scripts and align to canonical section structure. Timeline: Sprints 7–8 (~2 weeks)

3.1 Multi-Script Source Ingestion

3.2 Lyric Variant Alignment

3.3 Transliteration Service


Phase 4: Metadata Enrichment

Goal: Populate deity, temple/Kshetra, tags, and Sampradaya metadata. Timeline: Sprints 9–10 (~2 weeks)

4.1 Deity Enrichment

4.2 Temple/Kshetra Enrichment

4.3 Tag Classification

4.4 TRACK-040: Remediation Pipeline


Phase 5: Notation Ingestion

Goal: Ingest Swara notation from practitioner sources into the notation tables. Timeline: Sprints 11–12 (~2 weeks)

5.1 Notation Parser

5.2 Shivkumar.org Ingestion

5.3 Notation Quality Checks


Phase 6: Continuous Curation & Operations

Goal: Establish ongoing quality monitoring, automated audits, and editorial governance. Timeline: Ongoing from Sprint 9

6.1 Automated Quality Audits

6.2 Quality Dashboard

6.3 Re-Harvesting Pipeline

6.4 Auto-Approval Enhancement

6.5 Admin UI Enhancements


Cross-Cutting Concerns

Docker & Container Infrastructure

Kubernetes / GCP Production Deployment

Observability & Operations

Testing

Documentation

Governance & Change Control


Dependency Graph

Phase 0 (Foundation)
  ├── 0.1 TRACK-039 Audits
  ├── 0.2 Canonical Schema ──────────────────────────────┐
  ├── 0.3 DB Migrations (incl. extraction_queue) ────────┤
  └── 0.4 Source Registry ───────────────────────────────┤
                                                          │
Cross-Cutting: Docker & Container Infrastructure ─────────┤
  ├── Dockerfile for krithi-extract-enrich-worker                        │
  ├── compose.yaml extension ◄── 0.3 (extraction_queue)  │
  └── K8s manifests (can be deferred to production)       │
                                                          │
Phase 1 (PDF Ingestion) ◄────────────────────────────────┘
  ├── 1.1 Python Setup (incl. worker.py, db.py) ◄── Docker infra, 0.3
  ├── 1.2 Core PDF Extraction (mdskt.pdf) ◄── 1.1
  ├── 1.3 English PDF (mdeng.pdf) ◄── 1.2
  ├── 1.4 OCR Fallback ◄── 1.2
  ├── 1.5 LLM Refinement ◄── 1.2
  ├── 1.6 Kotlin DB Queue Integration ◄── 1.2, 0.2, 0.3
  │        (ExtractionQueueRepo, ExtractionQueueService,
  │         ExtractionResultProcessor)
  └── 1.7 Source Adapter Interface ◄── 1.6
                                          │
Phase 2 (Structural Voting) ◄────────────┘
  ├── 2.1 Voting Engine ◄── 0.3 (new tables)
  ├── 2.2 ComposerSourcePriority + field-level authority ◄── 0.4
  └── 2.3 Source Evidence Tracking ◄── 0.3, 1.6
                                          │
Phase 3 (Lyric Enrichment) ◄─────────────┘
  ├── 3.1 Swathi Thirunal Ingestion ◄── 1.7 (adapter interface)
  ├── 3.2 Lyric Variant Alignment ◄── 2.1 (canonical structure)
  └── 3.3 Transliteration Service ◄── 1.1 (Python container)
                                          │
Phase 4 (Metadata) ◄─────────────────────┘
  ├── 4.1 Deity Enrichment ◄── Phase 1 output
  ├── 4.2 Temple Enrichment ◄── Phase 1 output
  ├── 4.3 Tag Classification
  └── 4.4 TRACK-040 Remediation ◄── 0.1 (audit baseline), 2.1
                                          │
Phase 5 (Notation) ◄─────────────────────┘
  ├── 5.1 Notation Parser
  ├── 5.2 Shivkumar.org Ingestion ◄── 5.1, 1.7
  └── 5.3 Notation Quality Checks ◄── 5.2
                                          │
Phase 6 (Operations) ◄───────────────────┘
  ├── 6.1 Automated Audits ◄── 0.1
  ├── 6.2 Quality Dashboard ◄── all phases
  ├── 6.3 Re-Harvesting ◄── 1.7
  ├── 6.4 Auto-Approval Enhancement ◄── 2.1
  ├── 6.5 Admin UI ◄── 2.3, 6.2
  └── K8s Production Deployment ◄── Docker infra, all phases

Sprint Allocation Summary

Sprint Phases Key Deliverables Estimated Effort
S1–S2 Phase 0, Docker infra, Phase 1.1–1.2 Quality baseline, canonical schema, DB migrations (incl. extraction_queue), Dockerfile, Docker Compose, PDF PoC (10 Krithis), Python worker polling extraction_queue 2 weeks
S3–S4 Phase 1.3–1.7 Full PDF pipeline, Kotlin DB queue integration (ExtractionQueueService + ExtractionResultProcessor), 484 Dikshitar Krithis in staging, three-container stack validated 2 weeks
S5–S6 Phase 2 Structural Voting Engine, field-level authority, source evidence tracking, multi-source validation 2 weeks
S7–S8 Phase 3 Swathi Thirunal ingestion, English PDF variants, transliteration via Python container 2 weeks
S9–S10 Phase 4 Deity/temple enrichment, TRACK-040 remediation, metadata cleanup 2 weeks
S11–S12 Phase 5, K8s prod Notation parser, shivkumar.org ingestion, K8s deployment manifests, HPA configuration, production rollout 2 weeks
Ongoing Phase 6 Automated audits, quality dashboard, re-harvesting, admin UI, operational monitoring Continuous

90-Day Delivery Milestones

Aligned with the sprint allocation above, these milestones map to the 90-day delivery roadmap:

Window Days Milestone Key Validation
Window 1 1–20 Docker container running, extraction_queue operational, 10 Dikshitar Krithis extracted from mdskt.pdf Kotlin submits → Python extracts → result in DB
Window 2 21–45 Full Dikshitar batch (484) in staging, structural voting MVP, review UI shows source evidence Cross-source voting for 50 Krithis with 2+ sources
Window 3 46–70 Swathi Thirunal ingestion, enrichment phases gated, quality scoring upgraded 400 Swathi Thirunal + multi-script Dikshitar variants
Window 4 71–90 Dikshitar remediation pilot complete, KPIs measured, K8s production deployment, runbook published Quality score improvement, zero section drift, production-ready

Section index · Documentation home · Feature status