{"nodes": [{"id": "ads_backend_plugin_infrastructure_audit", "label": "Plugin Infrastructure Audit", "file_type": "document", "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "ads_backend_plugin_infrastructure_audit_moduleregistry", "label": "ModuleRegistry collection (admin-visible, read by zero runtime hooks)", "file_type": "concept", "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "ads_backend_plugin_infrastructure_audit_levion_seo", "label": "@levion/seo (scoreContent, coreSeoRules, seo group on posts/pages)", "file_type": "concept", "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "ads_backend_plugin_infrastructure_audit_publish_precheck_registry", "label": "Publish precheck registry (registerPublishPrecheck, runPublishPrechecks)", "file_type": "concept", "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "ads_backend_plugin_infrastructure_audit_proto_plugin_pattern", "label": "First-party packages as proto-plugins (hardcoded in payload.config.ts)", "file_type": "concept", "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "ads_backend_plugin_infrastructure_audit_path_c", "label": "Path C: ship SEO fields now, build plugin system later", "file_type": "rationale", "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null, "rationale": "No real plugins exist yet; ModuleRegistry is a stub, not a gate; plugin boilerplate only pays off at 3+ modules; SEO is core enough to wire directly."}, {"id": "ads_backend_plugin_infrastructure_audit_paths_a_b", "label": "Path A (extend @levion/seo) / Path B (plugin system with SEO as first plugin)", "file_type": "concept", "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ads_backend_plugin_infrastructure_audit", "target": "ads_backend_plugin_infrastructure_audit_moduleregistry", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit", "target": "ads_backend_plugin_infrastructure_audit_levion_seo", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit", "target": "ads_backend_plugin_infrastructure_audit_publish_precheck_registry", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit", "target": "ads_backend_plugin_infrastructure_audit_proto_plugin_pattern", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit", "target": "ads_backend_plugin_infrastructure_audit_path_c", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit", "target": "ads_backend_plugin_infrastructure_audit_paths_a_b", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit_path_c", "target": "ads_backend_plugin_infrastructure_audit_paths_a_b", "relation": "conceptually_related_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit_path_c", "target": "ads_backend_plugin_infrastructure_audit_levion_seo", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}, {"source": "ads_backend_plugin_infrastructure_audit_moduleregistry", "target": "ads_backend_levion_cms_admin_pages__2__modules_section", "relation": "implements", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "levion_deferred_plugin_architecture", "label": "Deferred plugin architecture (Path C)", "nodes": ["ads_backend_plugin_infrastructure_audit_path_c", "ads_backend_plugin_infrastructure_audit_moduleregistry", "ads_backend_pnpm_workspace_modules_glob", "ads_backend_plugin_infrastructure_audit_levion_seo", "ads_backend_plugin_infrastructure_audit_proto_plugin_pattern"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "ads-backend/PLUGIN_INFRASTRUCTURE_AUDIT.md"}]}