{"nodes": [{"id": "readme_development_plan", "label": "Development plan (Fase 0-6 roadmap)", "file_type": "document", "source_file": "README.md", "source_location": "top", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_tdd_methodology", "label": "TDD methodology per phase (X.0 tests first)", "file_type": "document", "source_file": "README.md", "source_location": "Metodologia por fase", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_sveltekit", "label": "Stack: SvelteKit 2 frontend/PWA", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_supabase_selfhosted", "label": "Stack: Supabase self-hosted BaaS", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_keycloak", "label": "Stack: Keycloak self-hosted IdP", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_postgres_15", "label": "Stack: PostgreSQL 15", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_realtime_websocket", "label": "Stack: Supabase Realtime (WebSocket)", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_idb_offline", "label": "Stack: IndexedDB via idb", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_vite_pwa", "label": "Stack: @vite-pwa/sveltekit + Workbox", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_docker_compose", "label": "Stack: Docker Compose dev + prod", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_github_actions", "label": "Stack: GitHub Actions CI/CD", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_resend_smtp", "label": "Stack: Resend SMTP", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_stack_backblaze_backups", "label": "Stack: pg_dump -> Backblaze B2 backups", "file_type": "document", "source_file": "README.md", "source_location": "Stack Tecnologico", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_repo_layout", "label": "Repo layout (apps/web, packages, supabase, keycloak, infra)", "file_type": "document", "source_file": "README.md", "source_location": "Estructura del Repositorio", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_justfile_reference", "label": "Justfile command reference", "file_type": "document", "source_file": "README.md", "source_location": "Justfile", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_local_endpoints_credentials", "label": "Local endpoints + dev credentials", "file_type": "document", "source_file": "README.md", "source_location": "Endpoints", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_decision_option_b_gotrue_proxy", "label": "Decision: Option B \u2014 GoTrue as OIDC proxy", "file_type": "document", "source_file": "README.md", "source_location": "Decisiones", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_decision_selfregistration_keycloak", "label": "Decision: self-registration in Keycloak", "file_type": "document", "source_file": "README.md", "source_location": "Decisiones", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_decision_invitations_link_only", "label": "Decision: invitations link-only", "file_type": "document", "source_file": "README.md", "source_location": "Decisiones", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_warning_keycloak_supabase_rls", "label": "Warning: Keycloak JWT + Supabase RLS via GoTrue proxy", "file_type": "document", "source_file": "README.md", "source_location": "Advertencias", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_warning_keycloak_prod_requirements", "label": "Warning: Keycloak prod: 512MB+, public discovery, SSL external", "file_type": "document", "source_file": "README.md", "source_location": "Advertencias", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_warning_ios_safari_pwa", "label": "Warning: iOS Safari / PWA caveats (no Background Sync, push iOS 16.4+)", "file_type": "document", "source_file": "README.md", "source_location": "Advertencias", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_warning_realtime_selfhosted", "label": "Warning: Realtime MAX_REPLICATION_SLOTS / presence cost", "file_type": "document", "source_file": "README.md", "source_location": "Advertencias", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_warning_last_write_wins_no_crdt", "label": "Warning: last-write-wins, no CRDT in MVP", "file_type": "document", "source_file": "README.md", "source_location": "Advertencias", "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "readme_warning_last_write_wins_no_crdt", "target": "claudemd_offline_first", "relation": "rationale_for", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "Advertencias", "weight": 1.0}, {"source": "readme_stack_sveltekit", "target": "apphtml_shell", "relation": "implements", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "Stack Tecnologico", "weight": 1.0}, {"source": "readme_warning_ios_safari_pwa", "target": "apphtml_ios_pwa_meta_tags", "relation": "rationale_for", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "Advertencias", "weight": 1.0}, {"source": "readme_local_endpoints_credentials", "target": "claudemd_dev_test_users", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "Endpoints", "weight": 1.0}, {"source": "readme_justfile_reference", "target": "readme_repo_layout", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "Justfile", "weight": 1.0}, {"source": "readme_tdd_methodology", "target": "readme_development_plan", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "Metodologia por fase", "weight": 1.0}, {"source": "readme_warning_realtime_selfhosted", "target": "claudemd_platform_realtime_selfhosted", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "Advertencias", "weight": 1.0}], "hyperedges": []}