chore: graphify!
Docker Build & Publish / build (push) Successful in 39s
Docker Build & Publish / push (push) Failing after 5s
Docker Build & Publish / Prune old image versions (push) Has been skipped

This commit is contained in:
Senko-san
2026-07-11 16:21:07 +03:00
parent 89cf66f28a
commit 28920d08bd
96 changed files with 23741 additions and 0 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_webui_dockerfiles_30_runtime_config_sh", "label": "30-runtime-config.sh", "file_type": "code", "source_file": "dockerfiles/30-runtime-config.sh", "source_location": "L1", "metadata": {"language": "bash", "kind": "file"}}, {"id": "users_senko_work_mcma_compose_mcma_webui_dockerfiles_30_runtime_config_sh__entry", "label": "30-runtime-config.sh script", "file_type": "code", "source_file": "dockerfiles/30-runtime-config.sh", "source_location": "L1", "metadata": {"language": "bash", "kind": "bash_entrypoint"}}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_webui_dockerfiles_30_runtime_config_sh", "target": "users_senko_work_mcma_compose_mcma_webui_dockerfiles_30_runtime_config_sh__entry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "dockerfiles/30-runtime-config.sh", "source_location": "L1", "weight": 1.0}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_json", "label": "tsconfig.json", "file_type": "code", "source_file": "tests/tsconfig.json", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_extends", "label": "extends", "file_type": "code", "source_file": "tests/tsconfig.json", "source_location": "L2"}, {"id": "ref_tsconfig_json", "label": "../tsconfig.json", "file_type": "concept", "source_file": "tests/tsconfig.json", "source_location": "L2"}, {"id": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_compileroptions", "label": "compilerOptions", "file_type": "code", "source_file": "tests/tsconfig.json", "source_location": "L3"}, {"id": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_compileroptions_types", "label": "types", "file_type": "code", "source_file": "tests/tsconfig.json", "source_location": "L4"}, {"id": "ref_testing_library_jest_dom", "label": "@testing-library/jest-dom", "file_type": "concept", "source_file": "tests/tsconfig.json", "source_location": "L4"}, {"id": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_include", "label": "include", "file_type": "code", "source_file": "tests/tsconfig.json", "source_location": "L6"}, {"id": "ref", "label": "./", "file_type": "concept", "source_file": "tests/tsconfig.json", "source_location": "L6"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_json", "target": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_extends", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/tsconfig.json", "source_location": "L2", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_json", "target": "ref_tsconfig_json", "relation": "extends", "confidence": "EXTRACTED", "source_file": "tests/tsconfig.json", "source_location": "L2", "weight": 1.0, "context": "import"}, {"source": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_json", "target": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_compileroptions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/tsconfig.json", "source_location": "L3", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_compileroptions", "target": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_compileroptions_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/tsconfig.json", "source_location": "L4", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_compileroptions_types", "target": "ref_testing_library_jest_dom", "relation": "extends", "confidence": "EXTRACTED", "source_file": "tests/tsconfig.json", "source_location": "L4", "weight": 1.0, "context": "import"}, {"source": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_json", "target": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_include", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/tsconfig.json", "source_location": "L6", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_webui_tests_tsconfig_include", "target": "ref", "relation": "extends", "confidence": "EXTRACTED", "source_file": "tests/tsconfig.json", "source_location": "L6", "weight": 1.0, "context": "import"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_content_visibility", "label": "CSS content-visibility for Long Lists", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_content_visibility", "target": "rendering_activity", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.55, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_cache_storage", "label": "Cache Storage API Calls", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-cache-storage.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_cache_storage", "target": "client_localstorage_schema", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-cache-storage.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_lazy_state_init", "label": "Use Lazy State Initialization", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rerender_lazy_state_init", "target": "rerender_functional_setstate", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_rsbuild_best_practices_skill", "label": "Rsbuild Best Practices Skill", "file_type": "document", "source_file": ".agents/skills/rsbuild-best-practices/SKILL.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_rsbuild_best_practices_skill", "target": "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_rule", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/rsbuild-best-practices/SKILL.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_serialization", "label": "Minimize Serialization at RSC Boundaries", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-serialization.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": [{"id": "hyperedge_rsc_data_fetching_serialization", "label": "RSC data-fetching and serialization patterns", "nodes": ["agents_skills_vercel_react_best_practices_rules_server_dedup_props", "agents_skills_vercel_react_best_practices_rules_server_serialization", "agents_skills_vercel_react_best_practices_rules_server_parallel_fetching", "agents_skills_vercel_react_best_practices_rules_server_parallel_nested_fetching"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-serialization.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "public_favicon_png", "label": "favicon.png (cartoon mascot icon)", "file_type": "image", "source_file": "public/favicon.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_favicon_png", "target": "claude_md_mcma_control_center", "relation": "conceptually_related_to", "confidence": "AMBIGUOUS", "confidence_score": 0.2, "source_file": "public/favicon.png", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_hoist_jsx", "label": "Hoist Static JSX Elements", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "react_compiler", "label": "React Compiler (babel-plugin-react-compiler)", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_hoist_jsx", "target": "react_compiler", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md", "source_location": null, "weight": 1.0}, {"source": "rendering_hoist_jsx", "target": "rerender_memo", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "react_compiler_obsoletes_manual_memoization", "label": "React Compiler Reduces Need for Manual Memoization", "nodes": ["react_compiler", "rendering_hoist_jsx", "rerender_memo", "rerender_functional_setstate"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_svg_precision", "label": "Optimize SVG Precision", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "svgo_tool", "label": "SVGO (SVG Optimizer)", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_svg_precision", "target": "svgo_tool", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md", "source_location": null, "weight": 1.0}, {"source": "rendering_svg_precision", "target": "rendering_animate_svg_wrapper", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_async_parallel_rule", "label": "Promise.all() for Independent Operations", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/async-parallel.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_async_parallel_rule", "target": "agents_skills_vercel_react_best_practices_rules_async_dependencies_rule", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/async-parallel.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_index_maps", "label": "Build Index Maps for Repeated Lookups", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-index-maps.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_index_maps", "target": "js_set_map_lookups", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.9, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-index-maps.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_dedup_props", "label": "Avoid Duplicate Serialization in RSC Props", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-dedup-props.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_server_dedup_props", "target": "agents_skills_vercel_react_best_practices_rules_server_serialization", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.9, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-dedup-props.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_cache_lru", "label": "Cross-Request LRU Caching", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-cache-lru.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_server_cache_lru", "target": "agents_skills_vercel_react_best_practices_rules_server_cache_react", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-cache-lru.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_rules_server_cache_lru", "target": "agents_skills_vercel_react_best_practices_rules_server_hoist_static_io", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.7, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-cache-lru.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "hyperedge_server_caching_state_safety", "label": "Server-side caching and request-state-safety patterns", "nodes": ["agents_skills_vercel_react_best_practices_rules_server_cache_react", "agents_skills_vercel_react_best_practices_rules_server_cache_lru", "agents_skills_vercel_react_best_practices_rules_server_hoist_static_io", "agents_skills_vercel_react_best_practices_rules_server_no_shared_module_state"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-cache-lru.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "client_swr_dedup", "label": "Use SWR for Automatic Deduplication", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_activity", "label": "Use Activity Component for Show/Hide", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-activity.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "react_activity_component", "label": "React Activity Component API", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-activity.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_activity", "target": "react_activity_component", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-activity.md", "source_location": null, "weight": 1.0}, {"source": "rendering_activity", "target": "rerender_memo", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-activity.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_advanced_init_once_rule", "label": "Initialize App Once, Not Per Mount", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-init-once.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_tosorted_immutable", "label": "Use toSorted() Instead of sort() for Immutability", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_tosorted_immutable", "target": "js_min_max_loop", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_rerender_split_combined_hooks", "label": "Split Combined Hook Computations", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_rerender_split_combined_hooks", "target": "claude_md_react_compiler", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_rerender_use_ref_transient_values", "label": "Use useRef for Transient Values", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_cache_property_access", "label": "Cache Property Access in Loops", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_bundle_analyzable_paths_rule", "label": "Prefer Statically Analyzable Paths", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_bundle_analyzable_paths_rule", "target": "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_rule", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_rule", "label": "Do Not Put Effect Events in Dependency Arrays", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_useeffectevent", "label": "useEffectEvent (React Hook)", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_rule", "target": "agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_useeffectevent", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "useeffectevent_pattern_group", "label": "useEffectEvent Stable-Callback Pattern Group", "nodes": ["agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_rule", "agents_skills_vercel_react_best_practices_rules_advanced_event_handler_refs_rule", "agents_skills_vercel_react_best_practices_rules_advanced_use_latest_rule", "agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_useeffectevent"], "relation": "implement", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_memo_with_default_value", "label": "Extract Default Non-primitive Parameter Value from Memoized Component to Constant", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rerender_memo_with_default_value", "target": "rerender_memo", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_async_api_routes_rule", "label": "Prevent Waterfall Chains in API Routes", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/async-api-routes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_async_api_routes_rule", "target": "agents_skills_vercel_react_best_practices_rules_async_dependencies_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/async-api-routes.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_rules_async_api_routes_rule", "target": "agents_skills_vercel_react_best_practices_rules_async_dependencies_betterall", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/async-api-routes.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_parallel_nested_fetching", "label": "Parallel Nested Data Fetching", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_async_dependencies_rule", "label": "Dependency-Based Parallelization", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/async-dependencies.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "agents_skills_vercel_react_best_practices_rules_async_dependencies_betterall", "label": "better-all Library", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/async-dependencies.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_async_dependencies_rule", "target": "agents_skills_vercel_react_best_practices_rules_async_dependencies_betterall", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/async-dependencies.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_combine_iterations", "label": "Combine Multiple Array Iterations", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "gitea_workflows_docker_publish_yml", "label": "Docker Build & Publish Workflow (Gitea CI)", "file_type": "code", "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "gitea_workflows_docker_publish_yml_build_job", "label": "build job (docker image build)", "file_type": "concept", "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "gitea_workflows_docker_publish_yml_push_job", "label": "push job (registry push)", "file_type": "concept", "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "gitea_workflows_docker_publish_yml_cleanup_job", "label": "cleanup job (prune old image versions)", "file_type": "concept", "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "gitea_workflows_docker_publish_yml", "target": "gitea_workflows_docker_publish_yml_build_job", "relation": "conceptually_related_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "weight": 1.0}, {"source": "gitea_workflows_docker_publish_yml", "target": "gitea_workflows_docker_publish_yml_push_job", "relation": "conceptually_related_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "weight": 1.0}, {"source": "gitea_workflows_docker_publish_yml", "target": "gitea_workflows_docker_publish_yml_cleanup_job", "relation": "conceptually_related_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "weight": 1.0}, {"source": "gitea_workflows_docker_publish_yml_build_job", "target": "gitea_workflows_docker_publish_yml_push_job", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "weight": 1.0}, {"source": "gitea_workflows_docker_publish_yml_push_job", "target": "gitea_workflows_docker_publish_yml_cleanup_job", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "weight": 1.0}, {"source": "gitea_workflows_docker_publish_yml_build_job", "target": "claude_md_base_url_resolution", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".gitea/workflows/docker-publish.yml", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_memo", "label": "Extract to Memoized Components", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-memo.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rerender_memo", "target": "react_compiler", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-memo.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_async_defer_await_rule", "label": "Defer Await Until Needed", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/async-defer-await.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_async_defer_await_rule", "target": "agents_skills_vercel_react_best_practices_rules_async_cheap_condition_before_await_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/async-defer-await.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_parallel_fetching", "label": "Parallel Data Fetching with Component Composition", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_server_parallel_fetching", "target": "agents_skills_vercel_react_best_practices_rules_server_parallel_nested_fetching", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules__template", "label": "Rule File Template", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/rules/_template.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "readme_md", "label": "README.md (rsbuild scaffold readme)", "file_type": "document", "source_file": "README.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_readme", "label": "Vercel React Best Practices README", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/README.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_readme", "target": "agents_skills_vercel_react_best_practices_agents", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/README.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_readme", "target": "agents_skills_vercel_react_best_practices_rules__template", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/README.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_readme", "target": "agents_skills_vercel_react_best_practices_rules__sections", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/README.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_advanced_use_latest_rule", "label": "useEffectEvent for Stable Callback Refs", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_advanced_use_latest_rule", "target": "agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_useeffectevent", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_rerender_simple_expression_in_memo", "label": "Avoid useMemo for Simple Primitive Expressions", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_rerender_simple_expression_in_memo", "target": "agents_skills_vercel_react_best_practices_rules_rerender_split_combined_hooks", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_hydration_no_flicker", "label": "Prevent Hydration Mismatch Without Flickering", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_hydration_no_flicker", "target": "rendering_hydration_suppress_warning", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_flatmap_filter", "label": "Use flatMap to Map and Filter in One Pass", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_flatmap_filter", "target": "js_combine_iterations", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "hyperedge_array_iteration_optimization", "label": "Single-pass array iteration optimizations", "nodes": ["js_flatmap_filter", "js_combine_iterations", "js_index_maps", "js_set_map_lookups"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_usetransition_loading", "label": "Use useTransition Over Manual Loading States", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "react_usetransition_api", "label": "React useTransition API", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "react_usetransition_reference_doc", "label": "useTransition Reference (React docs)", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md", "source_location": null, "source_url": "https://react.dev/reference/react/useTransition", "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_usetransition_loading", "target": "react_usetransition_api", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md", "source_location": null, "weight": 1.0}, {"source": "rendering_usetransition_loading", "target": "react_usetransition_reference_doc", "relation": "cites", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md", "source_location": null, "weight": 1.0}, {"source": "rendering_usetransition_loading", "target": "rerender_derived_state_no_effect", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.55, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_cache_function_results", "label": "Cache Repeated Function Calls", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_cache_function_results", "target": "js_cache_property_access", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md", "source_location": null, "weight": 1.0}, {"source": "js_cache_function_results", "target": "js_cache_storage", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.9, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "hyperedge_caching_patterns", "label": "In-memory caching of expensive computations/IO", "nodes": ["js_cache_function_results", "js_cache_property_access", "js_cache_storage"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_length_check_first", "label": "Early Length Check for Array Comparisons", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-length-check-first.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules__sections", "label": "Rule Sections Metadata", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/rules/_sections.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules__sections", "target": "agents_skills_vercel_react_best_practices_agents", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/_sections.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "waterfall_elimination_rules", "label": "Eliminating Waterfalls Rule Group (Section 1, CRITICAL impact)", "nodes": ["agents_skills_vercel_react_best_practices_rules_async_cheap_condition_before_await_rule", "agents_skills_vercel_react_best_practices_rules_async_defer_await_rule", "agents_skills_vercel_react_best_practices_rules_async_dependencies_rule", "agents_skills_vercel_react_best_practices_rules_async_parallel_rule", "agents_skills_vercel_react_best_practices_rules_async_api_routes_rule", "agents_skills_vercel_react_best_practices_rules_async_suspense_boundaries_rule"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/_sections.md"}, {"id": "bundle_size_optimization_rules", "label": "Bundle Size Optimization Rule Group (Section 2, CRITICAL impact)", "nodes": ["agents_skills_vercel_react_best_practices_rules_bundle_analyzable_paths_rule", "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_rule", "agents_skills_vercel_react_best_practices_rules_bundle_conditional_rule", "agents_skills_vercel_react_best_practices_rules_bundle_defer_third_party_rule"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/_sections.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "client_localstorage_schema", "label": "Version and Minimize localStorage Data", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "bundle_preload", "label": "Preload Based on User Intent", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-preload.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "bundle_preload", "target": "bundle_dynamic_imports", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-preload.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_functional_setstate", "label": "Use Functional setState Updates", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rerender_functional_setstate", "target": "react_compiler", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_request_idle_callback", "label": "Defer Non-Critical Work with requestIdleCallback", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-request-idle-callback.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_request_idle_callback", "target": "bundle_preload", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-request-idle-callback.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_conditional_render", "label": "Use Explicit Conditional Rendering", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_derived_state", "label": "Subscribe to Derived State", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_resource_hints", "label": "Use React DOM Resource Hints", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "react_dom_resource_preloading_apis_doc", "label": "React DOM Resource Preloading APIs (reference)", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md", "source_location": null, "source_url": "https://react.dev/reference/react-dom#resource-preloading-apis", "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_resource_hints", "target": "react_dom_resource_preloading_apis_doc", "relation": "cites", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_rerender_use_deferred_value", "label": "Use useDeferredValue for Expensive Derived Renders", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_rerender_transitions", "target": "agents_skills_vercel_react_best_practices_rules_rerender_use_deferred_value", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_rules_rerender_use_deferred_value", "target": "agents_skills_vercel_react_best_practices_rules_rerender_simple_expression_in_memo", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_async_cheap_condition_before_await_rule", "label": "Check Cheap Conditions Before Async Flags", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_async_cheap_condition_before_await_rule", "target": "agents_skills_vercel_react_best_practices_rules_async_defer_await_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_rerender_transitions", "label": "Use Transitions for Non-Urgent Updates", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-transitions.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_rule", "label": "Avoid Barrel File Imports", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_barrelfile", "label": "Barrel File (bundling concept)", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_rule", "target": "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_barrelfile", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_dependencies", "label": "Narrow Effect Dependencies", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_min_max_loop", "label": "Use Loop for Min/Max Instead of Sort", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_min_max_loop", "target": "js_length_check_first", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.65, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_rerender_no_inline_components", "label": "Don't Define Components Inside Components", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": [{"id": "hyperedge_rerender_optimization_patterns", "label": "React re-render optimization patterns", "nodes": ["agents_skills_vercel_react_best_practices_rules_rerender_no_inline_components", "agents_skills_vercel_react_best_practices_rules_rerender_simple_expression_in_memo", "agents_skills_vercel_react_best_practices_rules_rerender_split_combined_hooks", "agents_skills_vercel_react_best_practices_rules_rerender_use_ref_transient_values"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_agents", "label": "Vercel React Best Practices - AGENTS.md (Compiled Document)", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "source_url": null, "captured_at": null, "author": "Vercel Engineering", "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_async_cheap_condition_before_await_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_async_defer_await_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_async_dependencies_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_async_api_routes_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_async_parallel_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_async_suspense_boundaries_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_bundle_analyzable_paths_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_bundle_barrel_imports_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_bundle_conditional_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}, {"source": "agents_skills_vercel_react_best_practices_agents", "target": "agents_skills_vercel_react_best_practices_rules_bundle_defer_third_party_rule", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/AGENTS.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_defer_reads", "label": "Defer State Reads to Usage Point", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_early_exit", "label": "Early Return from Functions", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-early-exit.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_early_exit", "target": "js_length_check_first", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-early-exit.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_bundle_defer_third_party_rule", "label": "Defer Non-Critical Third-Party Libraries", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_set_map_lookups", "label": "Use Set/Map for O(1) Lookups", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_auth_actions", "label": "Authenticate Server Actions Like API Routes", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-auth-actions.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_server_auth_actions", "target": "agents_skills_vercel_react_best_practices_rules_server_no_shared_module_state", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.6, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-auth-actions.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_batch_dom_css", "label": "Avoid Layout Thrashing", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_batch_dom_css", "target": "js_cache_property_access", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.55, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "bundle_dynamic_imports", "label": "Dynamic Imports for Heavy Components", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_move_effect_to_event", "label": "Put Interaction Logic in Event Handlers", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "react_removing_effect_dependencies_event_handler", "label": "Should this code move to an event handler? (React docs)", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md", "source_location": null, "source_url": "https://react.dev/learn/removing-effect-dependencies#should-this-code-move-to-an-event-handler", "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rerender_move_effect_to_event", "target": "react_removing_effect_dependencies_event_handler", "relation": "cites", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_no_shared_module_state", "label": "Avoid Shared Module State for Request Data", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_server_no_shared_module_state", "target": "agents_skills_vercel_react_best_practices_rules_server_hoist_static_io", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "js_hoist_regexp", "label": "Hoist RegExp Creation", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "js_hoist_regexp", "target": "js_cache_function_results", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_hoist_static_io", "label": "Hoist Static I/O to Module Level", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_hydration_suppress_warning", "label": "Suppress Expected Hydration Mismatches", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_cache_react", "label": "Per-Request Deduplication with React.cache()", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-cache-react.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "client_event_listeners", "label": "Deduplicate Global Event Listeners", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/client-event-listeners.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "client_event_listeners", "target": "client_swr_dedup", "relation": "shares_data_with", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/client-event-listeners.md", "source_location": null, "weight": 1.0}, {"source": "client_event_listeners", "target": "client_passive_event_listeners", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": ".agents/skills/vercel-react-best-practices/rules/client-event-listeners.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "hyperedge_event_listener_best_practices", "label": "Event listener management and dedup patterns", "nodes": ["client_event_listeners", "client_passive_event_listeners", "client_swr_dedup"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": ".agents/skills/vercel-react-best-practices/rules/client-event-listeners.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_md", "label": "AGENTS.md (agent instructions for rsbuild JS project)", "file_type": "document", "source_file": "AGENTS.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_md", "target": "readme_md", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "AGENTS.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_script_defer_async", "label": "Use defer or async on Script Tags", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "mdn_script_element_defer_doc", "label": "MDN Script element defer/async reference", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md", "source_location": null, "source_url": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#defer", "captured_at": null, "author": null, "contributor": null}, {"id": "nextjs_script_component", "label": "next/script Component", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rendering_script_defer_async", "target": "mdn_script_element_defer_doc", "relation": "cites", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md", "source_location": null, "weight": 1.0}, {"source": "rendering_script_defer_async", "target": "nextjs_script_component", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "client_passive_event_listeners", "label": "Use Passive Event Listeners for Scrolling Performance", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "rerender_derived_state_no_effect", "label": "Calculate Derived State During Rendering", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "react_you_might_not_need_an_effect", "label": "You Might Not Need an Effect (React docs)", "file_type": "document", "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md", "source_location": null, "source_url": "https://react.dev/learn/you-might-not-need-an-effect", "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "rerender_derived_state_no_effect", "target": "react_you_might_not_need_an_effect", "relation": "cites", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md", "source_location": null, "weight": 1.0}, {"source": "rerender_derived_state_no_effect", "target": "rerender_derived_state", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md", "source_location": null, "weight": 1.0}, {"source": "rerender_derived_state_no_effect", "target": "rerender_move_effect_to_event", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.7, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md", "source_location": null, "weight": 1.0}, {"source": "rerender_derived_state_no_effect", "target": "rerender_dependencies", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "effect_avoidance_pattern", "label": "Minimizing useEffect Usage Pattern", "nodes": ["rerender_derived_state_no_effect", "rerender_move_effect_to_event", "rerender_dependencies"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": ".agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "rendering_animate_svg_wrapper", "label": "Animate SVG Wrapper Instead of SVG Element", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_server_after_nonblocking", "label": "Use after() for Non-Blocking Operations", "file_type": "concept", "source_file": ".agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_advanced_event_handler_refs_rule", "label": "Store Event Handlers in Refs", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_advanced_event_handler_refs_rule", "target": "agents_skills_vercel_react_best_practices_rules_advanced_effect_event_deps_useeffectevent", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_bundle_conditional_rule", "label": "Conditional Module Loading", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-conditional.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "agents_skills_vercel_react_best_practices_rules_bundle_conditional_rule", "target": "agents_skills_vercel_react_best_practices_rules_bundle_defer_third_party_rule", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": ".agents/skills/vercel-react-best-practices/rules/bundle-conditional.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "agents_skills_vercel_react_best_practices_rules_async_suspense_boundaries_rule", "label": "Strategic Suspense Boundaries", "file_type": "rationale", "source_file": ".agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
File diff suppressed because one or more lines are too long