| Metadata | Value |
|---|---|
| Status | Active |
| Version | 1.1.0 |
| Last Updated | 2026-09-10 |
| Author | Sangeetha Grantha Team |
| Document Type | Evidence record |
[!NOTE] Historical evidence: results, counts, commands, and observations below belong to the original work described here. The editorial update date is not a new test or corpus verification. For present behavior, use current feature map.
This comprehensive audit reviews the documentation across the Sangita Grantha project to identify areas needing updates, archival candidates, broken links, version inconsistencies, and opportunities to achieve best-in-class software engineering documentation practices.
Overall Assessment: B+ (85/100)
The documentation demonstrates strong foundations with a recent quality improvement initiative (TRACK-028) that brought the score from 7.5/10 to 9.0/10. The most critical issue identified was version duplication across 14+ files.
Centralized Version Management has been implemented as a Rust CLI command:
sangita-cli docs sync-versions - extracts versions from source filescurrent-versions.md - single source of truth for documentationsangita-cli toolchain (part of mise-managed development environment)Currently, version numbers are duplicated across 14+ files, leading to:
The project already has three canonical sources for version information:
| Domain | Source of Truth | Location |
|---|---|---|
| Backend/Mobile (Kotlin/JVM) | Gradle Version Catalog | gradle/libs.versions.toml |
| Frontend (React/Node) | Package manifest | modules/frontend/sangita-admin-web/package.json |
| Development Toolchain | Mise configuration | .mise.toml |
gradle/libs.versions.toml:kotlin = "2.3.0"
ktor = "3.4.0"
exposed = "1.0.0"
kotlinxCoroutinesCore = "1.10.2"
kotlinxDatetime = "0.7.1"
kotlinxSerializationJson = "1.10.0"
compose = "1.10.0"
agp = "9.0.0"
postgresql = "42.7.9"
hikaricp = "7.0.2"
logback = "1.5.25"
jwt = "4.5.0"
koin = "3.5.6"
shadow = "9.2.2"
package.json:"react": "^19.2.3"
"react-dom": "^19.2.3"
"react-router-dom": "^7.11.0"
"typescript": "~5.8.2"
"vite": "^6.2.0"
"tailwindcss": "^4.1.18"
"@tanstack/react-query": "^5.90.20"
.mise.toml:java = "temurin-25"
rust = "1.93.0"
bun = "1.3.6"
docker-compose = "latest"
Instead of duplicating versions, documentation should reference the source files.
Replace hardcoded versions with references:
## Tech Stack
### Backend
- **Kotlin**: See `gradle/libs.versions.toml` → `kotlin`
- **Ktor**: See `gradle/libs.versions.toml` → `ktor`
- **Exposed**: See `gradle/libs.versions.toml` → `exposed`
### Frontend
- **React**: See `package.json` → `dependencies.react`
- **Vite**: See `package.json` → `devDependencies.vite`
### Toolchain
- **Java**: See `.mise.toml` → `tools.java`
- **Rust**: See `.mise.toml` → `tools.rust`
Create a single auto-generated file that extracts versions:
application_documentation/00-meta/current-versions.md (auto-generated)
<!-- AUTO-GENERATED: Do not edit manually. Run `./scripts/sync-versions.sh` -->
| Component | Version | Source |
|-----------|---------|--------|
| Kotlin | 2.3.0 | gradle/libs.versions.toml |
| Ktor | 3.4.0 | gradle/libs.versions.toml |
| React | 19.2.3 | package.json |
| Java | temurin-25 | .mise.toml |
...
All other documentation files then link to this single file.
Add a GitHub Action that:
current-versions.mdThese files currently hardcode versions and should be refactored to reference current-versions.md:
| File | Current Issue | Action Required |
|---|---|---|
CLAUDE.md |
Hardcodes Java 25, Rust 1.92.0, Bun 1.3.0 | Add link: “See Current Versions” |
.claude-context.md |
Hardcodes 15+ versions (many outdated) | Replace version section with link to current-versions.md |
.goose-context.md |
Hardcodes 15+ versions (many outdated) | Replace version section with link to current-versions.md |
.cursorrules |
Hardcodes 10+ versions | Replace version section with link to current-versions.md |
.ai-quick-reference.md |
Hardcodes all versions | Replace with link to current-versions.md |
02-architecture/tech-stack.md |
Hardcodes all versions | Replace with link to current-versions.md |
README.md |
Hardcodes toolchain versions | Add link to current-versions.md |
00-onboarding/getting-started.md |
Hardcodes versions | Add link to current-versions.md |
The version sync has been implemented as a Rust CLI command in sangita-cli, consistent with the project’s tooling architecture:
sangita-cli docs sync-versions - Rust command that:
gradle/libs.versions.toml (Backend/Mobile)modules/frontend/sangita-admin-web/package.json (Frontend).mise.toml (Development Toolchain)application_documentation/00-meta/current-versions.md--check flag for CI validation (exits with error if out of sync)tools/sangita-cli/src/commands/docs.rs - Main implementationserde for TOML and JSON parsingchrono for timestamp generationapplication_documentation/00-meta/current-versions.md - Auto-generated file containing:
# Generate/update current-versions.md
sangita-cli docs sync-versions
# Check if versions are in sync (for CI)
sangita-cli docs sync-versions --check
sangita-cli docs validate-links (placeholder for link validation)| Dependency | Source of Truth | Wrong Values Found In |
|---|---|---|
| Ktor | 3.4.0 |
.claude-context.md (3.3.1), .goose-context.md (3.3.1), .ai-quick-reference.md (3.3.1) |
| Exposed | 1.0.0 |
.claude-context.md (1.0.0-rc-2), .goose-context.md (1.0.0-rc-2), .ai-quick-reference.md (1.0.0-rc-2) |
| kotlinx-datetime | 0.7.1 |
02-architecture/tech-stack.md (0.6.1) |
| Dependency | Source of Truth (package.json) |
Wrong Values Found In |
|---|---|---|
| React | 19.2.3 |
Multiple docs say 19.2.0 |
| Vite | 6.2.0 |
02-architecture/tech-stack.md (7.1.7), .cursorrules (6.2.0 - actually correct!) |
| Tailwind CSS | 4.1.18 |
02-architecture/tech-stack.md (3.4.13) |
| TypeScript | 5.8.2 |
Some docs say 5.8.3 |
| react-router-dom | 7.11.0 |
.claude-context.md says 6.28.0 |
| Tool | Source of Truth (.mise.toml) |
Wrong Values Found In |
|---|---|---|
| Java | temurin-25 |
00-onboarding/getting-started.md says “21+” |
| Rust | 1.93.0 |
CLAUDE.md says 1.92.0, README.md says 1.92.0 |
| Bun | 1.3.6 |
CLAUDE.md says 1.3.0, README.md says 1.3.0 |
| File | Issue | Severity |
|---|---|---|
CLAUDE.md:95 |
References application_documentation/00-onboarding/development-setup.md which does not exist |
🔴 Critical |
.claude-context.md |
References application_documentation/backend/architecture.md - wrong path |
🔴 Critical |
.claude-context.md |
References application_documentation/database/migrations-runner-rust.md - doesn’t exist |
🔴 Critical |
.cursorrules |
References database/rust/ but actual path is tools/sangita-cli/ |
🟡 High |
| File | Incorrect Path | Correct Path |
|---|---|---|
.claude-context.md |
application_documentation/backend/architecture.md |
application_documentation/02-architecture/backend-system-design.md |
.claude-context.md |
application_documentation/requirements/prd/admin-web-prd.md |
application_documentation/01-requirements/admin-web/prd.md |
.cursorrules |
database/rust/ |
tools/sangita-cli/ |
.cursorrules |
database/rust/migrations/ |
database/migrations/ |
| File | Reason | Action |
|---|---|---|
07-quality/bulk-import-tracks-technical-review-2026-01-23.md |
Point-in-time review | Move to archive/quality-reports/ |
07-quality/implementation-summary-2026-01-23.md |
Historical summary | Move to archive/quality-reports/ |
07-quality/implementation-summary-remaining-work-2026-01-23.md |
Historical summary | Move to archive/quality-reports/ |
07-quality/track-008-013-implementation-summary-2026-01-23.md |
Historical summary | Move to archive/quality-reports/ |
07-quality/track-010-implementation-summary-2026-01-23.md |
Historical summary | Move to archive/quality-reports/ |
01-requirements/features/bulk-import/CONSOLIDATION-SUMMARY.md |
Complete | Move to archive |
01-requirements/features/bulk-import/CONSOLIDATION-SUMMARY-goose.md |
Duplicate | Move to archive |
01-requirements/features/bulk-import/bulk-import-orchestration-ops-plan-goose.md |
Superseded | Move to archive |
01-requirements/features/bulk-import/archive/*.md (12 files) ✅archive/graph-explorer/*.md (6 files) ✅archive/database-archive/*.md ✅archive/requirements-spec/*.md ✅archive/ui-ux/*.md ✅The main application_documentation/README.md is missing links to documents created in TRACK-028:
| Missing Document | Path |
|---|---|
| API Examples | 03-api/api-examples.md |
| OpenAPI Sync | 03-api/openapi-sync.md |
| C4 Model | 02-architecture/diagrams/c4-model.md |
| E2E Testing | 07-quality/qa/e2e-testing.md |
| Performance Testing | 07-quality/qa/performance-testing.md |
| Deployment | 08-operations/deployment.md |
| Monitoring | 08-operations/monitoring.md |
| Incident Response | 08-operations/runbooks/incident-response.md |
| Database Runbook | 08-operations/runbooks/database-runbook.md |
| IDE Setup | 00-onboarding/ide-setup.md |
| Troubleshooting | 00-onboarding/troubleshooting.md |
| File | Purpose | Status |
|---|---|---|
CLAUDE.md |
Claude Code instructions | ⚠️ Broken reference, outdated toolchain versions |
.claude-context.md |
Detailed Claude context | 🔴 Wrong versions, wrong paths, dated Dec 2025 |
.goose-context.md |
Goose AI context | 🔴 Wrong versions |
.cursorrules |
Cursor AI rules | 🔴 Wrong versions, wrong paths |
.ai-quick-reference.md |
Quick reference | 🔴 Wrong versions |
.chatgpt-config.md |
ChatGPT config | ⚠️ Review needed |
.gemini-context.md |
Gemini context | ⚠️ Review needed |
CODEX.md |
Codex entrypoint | ⚠️ Review needed |
AGENTS.md |
Agent index | ✅ OK (meta-reference) |
Proposed Structure:
project/
├── CLAUDE.md # Primary agent instructions (canonical)
├── .agent-versions.md # Auto-generated version summary (referenced by all)
└── .agents/
├── rules/ # Shared rules
├── skills/ # Agent skills
└── workflows/ # Workflows
Eliminate or auto-generate:
.claude-context.md → Merge into CLAUDE.md.goose-context.md → Auto-generate from CLAUDE.md template.cursorrules → Auto-generate from CLAUDE.md template.ai-quick-reference.md → Auto-generate from source filestools/sangita-cli/src/commands/docs.rssangita-cli docs sync-versionsgradle/libs.versions.toml, package.json, .mise.tomlapplication_documentation/00-meta/current-versions.mdcurrent-versions.md
02-architecture/tech-stack.md to link to current-versions.md.claude-context.md, .goose-context.md, etc.)CLAUDE.md toolchain sectionREADME.md toolchain section00-onboarding/getting-started.mdCLAUDE.md reference to non-existent file.claude-context.md.cursorrulesCLAUDE.md the canonical agent instructionsStop duplicating versions. Create a single auto-generated version summary file and have all documentation reference it. This eliminates drift and reduces maintenance burden.
| Category | Count |
|---|---|
| Documentation files analyzed | 232 |
| Files with version issues | 14 |
| Files needing path fixes | 4 |
| Files to archive | 8 |
| Index entries to add | 11 |
gradle/libs.versions.toml, package.json, .mise.toml