bibimbap/.atp/work-session/20260617-110836/artifacts/gchunk1.json

115 lines
27 KiB
JSON

{"nodes":[
{"id":"recruitpostsddl_recruit_posts_table","label":"recruit_posts Table (DDL)","file_type":"sql","source_file":"docs/recruit-posts-ddl.sql","source_location":"6-99","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"recruitpostsddl_role_check","label":"recruit_posts_role_check (기획/아트/프로그래머)","file_type":"sql","source_file":"docs/recruit-posts-ddl.sql","source_location":"44-54","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"recruitpostsddl_participation_type_check","label":"recruit_posts_participation_type_check (취미/수익쉐어/유급/게임잼)","file_type":"sql","source_file":"docs/recruit-posts-ddl.sql","source_location":"56-66","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"recruitpostsddl_user_id_fkey","label":"recruit_posts.user_id FK -> users.id","file_type":"sql","source_file":"docs/recruit-posts-ddl.sql","source_location":"32-42","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securityhardeningddl_ux_provider_user_id_unique","label":"Unique Index ux_user_auth_identities_provider_user_id_active","file_type":"sql","source_file":"docs/security-hardening-ddl.sql","source_location":"14-17","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securityhardeningddl_duplicate_identity_check","label":"Duplicate Login Identity Detection Query","file_type":"sql","source_file":"docs/security-hardening-ddl.sql","source_location":"4-12","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securityhardeningddl_table","label":"Security Hardening DDL","file_type":"sql","source_file":"docs/security-hardening-ddl.sql","source_location":"1-55","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_doc","label":"회원가입 정보 구조 (User Signup Schema)","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_users_table","label":"users Table Concept","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"14","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_user_auth_identities","label":"user_auth_identities Table Concept","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"16-18","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_provider","label":"Login Provider (guest/google/email/kakao/naver/github/apple)","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"39","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_guest_signup","label":"게스트 회원가입 (Guest Signup)","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"45-79","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_social_signup","label":"소셜 회원가입 (Social Signup)","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"81-110","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_canonical_email","label":"canonical_email 처리 / 계정 병합 주의","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"112-122","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_dedup_judgment","label":"중복 가입 판단 (provider + provider_user_id 조회)","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"124-137","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_account_linking","label":"계정 연결 (Account Linking)","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"139-156","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"usersignupschema_token_verification_rationale","label":"providerUserId 서버 토큰 검증 권장 근거","file_type":"document","source_file":"docs/user-signup-schema.md","source_location":"190","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"docsindex_doc","label":"문서 인덱스 (Docs Index)","file_type":"document","source_file":"docs/index.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"docsindex_docs_first_workflow","label":"docs-first 워크플로우","file_type":"document","source_file":"docs/index.md","source_location":"3","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"dbupdatequerygenerator_doc","label":"DB 업데이트 쿼리 생성기 사용법","file_type":"document","source_file":"docs/db-update-query-generator.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"dbupdatequerygenerator_tool","label":"DbUpdateQueryGeneratorTest (dev->live schema diff 도구)","file_type":"document","source_file":"docs/db-update-query-generator.md","source_location":"3","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"dbupdatequerygenerator_schema_only_rationale","label":"스키마 구조 전용·데이터 복제 미생성 근거","file_type":"document","source_file":"docs/db-update-query-generator.md","source_location":"54-66","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"profilemanagement_doc","label":"Profile Management Prompt (Maven/Spring 프로파일 관리)","file_type":"document","source_file":"docs/profile-management-prompt.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"adrindex_doc","label":"ADR 인덱스","file_type":"document","source_file":"docs/adr/index.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"projectanalysis_doc","label":"bibimbap 종합 코드 분석 (D1~D4)","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":null,"source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_d1_architecture","label":"D1 아키텍처/구조 (서비스 레이어 부재·fat controller)","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"43-86","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_d2_security","label":"D2 보안 (SQLi 0·PBKDF2·CSRF 더블서밋·업로드 방어)","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"89-122","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_d3_quality","label":"D3 코드 품질/기술부채 (dead code·테스트 전무·SNAPSHOT)","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"126-151","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_d4_domain","label":"D4 도메인/기능 (기능 인벤토리·데이터 모델)","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"154-189","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_login_signup_csrf_gap","label":"POST /login,/signup CSRF 미검증 (Top#3)","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"32","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_abstracts_dead_code","label":"abstracts 패키지 dead code (인증 우회 함정)","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"33","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_game_comments_likes_unwired","label":"게임 댓글/좋아요 스키마·매퍼 존재하나 미연결","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"36-37","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"projectanalysis_pbkdf2","label":"PBKDF2-SHA256 210k iter 비밀번호 해싱","file_type":"document","source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"31","source_url":null,"captured_at":"2026-06-16","author":"art","contributor":null},
{"id":"analysisindex_doc","label":"Analysis 카테고리 인덱스","file_type":"document","source_file":"docs/analysis/index.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"worklogindex_doc","label":"Work Log 카테고리 인덱스","file_type":"document","source_file":"docs/work-log/index.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securitychecklist_doc","label":"보안 개선 체크리스트","file_type":"document","source_file":"docs/security/security-remediation-checklist.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securitychecklist_b1_csrf","label":"B1 login/signup CSRF 검증 추가 (완료)","file_type":"document","source_file":"docs/security/security-remediation-checklist.md","source_location":"21-57","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securitychecklist_b2_dead_code","label":"B2 프로토타입 dead code 제거","file_type":"document","source_file":"docs/security/security-remediation-checklist.md","source_location":"59-82","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securitychecklist_b3_likes_comments","label":"B3 좋아요/댓글 서버 영속화 연결","file_type":"document","source_file":"docs/security/security-remediation-checklist.md","source_location":"84-117","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securitychecklist_b4_hardening","label":"B4 의존성/세션/운영 하드닝","file_type":"document","source_file":"docs/security/security-remediation-checklist.md","source_location":"119-146","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"securityindex_doc","label":"Security 카테고리 인덱스","file_type":"document","source_file":"docs/security/index.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"verificationstrategies_doc","label":"Verification Strategies Registry","file_type":"document","source_file":"docs/development/verification-strategies.md","source_location":null,"source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"verificationstrategies_ladder","label":"검증 사다리 L1/L2/L3","file_type":"document","source_file":"docs/development/verification-strategies.md","source_location":"5-27","source_url":null,"captured_at":null,"author":null,"contributor":null},
{"id":"verificationstrategies_regression_mandate","label":"회귀 테스트 의무 (버그 수정 시 재현 테스트 동반)","file_type":"document","source_file":"docs/development/verification-strategies.md","source_location":"27","source_url":null,"captured_at":null,"author":null,"contributor":null}
],
"edges":[
{"source":"recruitpostsddl_recruit_posts_table","target":"recruitpostsddl_role_check","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/recruit-posts-ddl.sql","source_location":"44-54","weight":1.0},
{"source":"recruitpostsddl_recruit_posts_table","target":"recruitpostsddl_participation_type_check","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/recruit-posts-ddl.sql","source_location":"56-66","weight":1.0},
{"source":"recruitpostsddl_recruit_posts_table","target":"recruitpostsddl_user_id_fkey","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/recruit-posts-ddl.sql","source_location":"32-42","weight":1.0},
{"source":"recruitpostsddl_user_id_fkey","target":"usersignupschema_users_table","relation":"references","confidence":"INFERRED","confidence_score":0.85,"source_file":"docs/recruit-posts-ddl.sql","source_location":"39","weight":1.0},
{"source":"securityhardeningddl_table","target":"securityhardeningddl_ux_provider_user_id_unique","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security-hardening-ddl.sql","source_location":"14-17","weight":1.0},
{"source":"securityhardeningddl_table","target":"securityhardeningddl_duplicate_identity_check","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security-hardening-ddl.sql","source_location":"4-12","weight":1.0},
{"source":"securityhardeningddl_duplicate_identity_check","target":"securityhardeningddl_ux_provider_user_id_unique","relation":"rationale_for","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security-hardening-ddl.sql","source_location":"2-4","weight":1.0},
{"source":"securityhardeningddl_ux_provider_user_id_unique","target":"usersignupschema_user_auth_identities","relation":"references","confidence":"INFERRED","confidence_score":0.85,"source_file":"docs/security-hardening-ddl.sql","source_location":"15","weight":1.0},
{"source":"securityhardeningddl_table","target":"recruitpostsddl_recruit_posts_table","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security-hardening-ddl.sql","source_location":"19","weight":1.0},
{"source":"securityhardeningddl_ux_provider_user_id_unique","target":"usersignupschema_dedup_judgment","relation":"semantically_similar_to","confidence":"INFERRED","confidence_score":0.8,"source_file":"docs/security-hardening-ddl.sql","source_location":"14-17","weight":1.0},
{"source":"usersignupschema_doc","target":"docsindex_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"7","weight":1.0},
{"source":"usersignupschema_doc","target":"projectanalysis_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"8","weight":1.0},
{"source":"usersignupschema_doc","target":"securitychecklist_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"9","weight":1.0},
{"source":"usersignupschema_doc","target":"dbupdatequerygenerator_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"10","weight":1.0},
{"source":"usersignupschema_doc","target":"projectanalysis_d4_domain","relation":"cites","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"194","weight":1.0},
{"source":"usersignupschema_user_auth_identities","target":"usersignupschema_users_table","relation":"conceptually_related_to","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"18","weight":1.0},
{"source":"usersignupschema_provider","target":"usersignupschema_user_auth_identities","relation":"conceptually_related_to","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"39","weight":1.0},
{"source":"usersignupschema_guest_signup","target":"usersignupschema_provider","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"67","weight":1.0},
{"source":"usersignupschema_social_signup","target":"usersignupschema_provider","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"106","weight":1.0},
{"source":"usersignupschema_dedup_judgment","target":"usersignupschema_user_auth_identities","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"126","weight":1.0},
{"source":"usersignupschema_account_linking","target":"usersignupschema_user_auth_identities","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"143","weight":1.0},
{"source":"usersignupschema_canonical_email","target":"usersignupschema_users_table","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"114","weight":1.0},
{"source":"usersignupschema_token_verification_rationale","target":"usersignupschema_social_signup","relation":"rationale_for","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/user-signup-schema.md","source_location":"190","weight":1.0},
{"source":"dbupdatequerygenerator_doc","target":"docsindex_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/db-update-query-generator.md","source_location":"7","weight":1.0},
{"source":"dbupdatequerygenerator_doc","target":"projectanalysis_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/db-update-query-generator.md","source_location":"8","weight":1.0},
{"source":"dbupdatequerygenerator_doc","target":"securitychecklist_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/db-update-query-generator.md","source_location":"9","weight":1.0},
{"source":"dbupdatequerygenerator_doc","target":"usersignupschema_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/db-update-query-generator.md","source_location":"10","weight":1.0},
{"source":"dbupdatequerygenerator_doc","target":"projectanalysis_d3_quality","relation":"cites","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/db-update-query-generator.md","source_location":"108","weight":1.0},
{"source":"dbupdatequerygenerator_doc","target":"dbupdatequerygenerator_tool","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/db-update-query-generator.md","source_location":"3","weight":1.0},
{"source":"dbupdatequerygenerator_schema_only_rationale","target":"dbupdatequerygenerator_tool","relation":"rationale_for","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/db-update-query-generator.md","source_location":"66","weight":1.0},
{"source":"projectanalysis_doc","target":"dbupdatequerygenerator_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"216","weight":1.0},
{"source":"projectanalysis_doc","target":"usersignupschema_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"217","weight":1.0},
{"source":"projectanalysis_doc","target":"projectanalysis_d1_architecture","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"43","weight":1.0},
{"source":"projectanalysis_doc","target":"projectanalysis_d2_security","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"89","weight":1.0},
{"source":"projectanalysis_doc","target":"projectanalysis_d3_quality","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"126","weight":1.0},
{"source":"projectanalysis_doc","target":"projectanalysis_d4_domain","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"154","weight":1.0},
{"source":"projectanalysis_d2_security","target":"projectanalysis_login_signup_csrf_gap","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"110","weight":1.0},
{"source":"projectanalysis_d2_security","target":"projectanalysis_pbkdf2","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"99","weight":1.0},
{"source":"projectanalysis_d3_quality","target":"projectanalysis_abstracts_dead_code","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"130","weight":1.0},
{"source":"projectanalysis_d4_domain","target":"projectanalysis_game_comments_likes_unwired","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"171-172","weight":1.0},
{"source":"projectanalysis_d4_domain","target":"recruitpostsddl_recruit_posts_table","relation":"references","confidence":"INFERRED","confidence_score":0.8,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"179","weight":1.0},
{"source":"projectanalysis_d4_domain","target":"usersignupschema_user_auth_identities","relation":"references","confidence":"INFERRED","confidence_score":0.85,"source_file":"docs/analysis/2026-06-16-project-analysis.md","source_location":"177","weight":1.0},
{"source":"analysisindex_doc","target":"projectanalysis_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/analysis/index.md","source_location":"7","weight":1.0},
{"source":"docsindex_doc","target":"adrindex_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/index.md","source_location":"11","weight":1.0},
{"source":"docsindex_doc","target":"analysisindex_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/index.md","source_location":"12","weight":1.0},
{"source":"docsindex_doc","target":"securityindex_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/index.md","source_location":"21","weight":1.0},
{"source":"docsindex_doc","target":"worklogindex_doc","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/index.md","source_location":"23","weight":1.0},
{"source":"securityindex_doc","target":"securitychecklist_doc","relation":"conceptually_related_to","confidence":"INFERRED","confidence_score":0.7,"source_file":"docs/security/index.md","source_location":"1","weight":1.0},
{"source":"securitychecklist_doc","target":"projectanalysis_doc","relation":"cites","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security/security-remediation-checklist.md","source_location":"3","weight":1.0},
{"source":"securitychecklist_doc","target":"securitychecklist_b1_csrf","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security/security-remediation-checklist.md","source_location":"21","weight":1.0},
{"source":"securitychecklist_doc","target":"securitychecklist_b2_dead_code","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security/security-remediation-checklist.md","source_location":"59","weight":1.0},
{"source":"securitychecklist_doc","target":"securitychecklist_b3_likes_comments","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security/security-remediation-checklist.md","source_location":"84","weight":1.0},
{"source":"securitychecklist_doc","target":"securitychecklist_b4_hardening","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/security/security-remediation-checklist.md","source_location":"119","weight":1.0},
{"source":"securitychecklist_b1_csrf","target":"projectanalysis_login_signup_csrf_gap","relation":"rationale_for","confidence":"INFERRED","confidence_score":0.9,"source_file":"docs/security/security-remediation-checklist.md","source_location":"23-28","weight":1.0},
{"source":"securitychecklist_b2_dead_code","target":"projectanalysis_abstracts_dead_code","relation":"rationale_for","confidence":"INFERRED","confidence_score":0.9,"source_file":"docs/security/security-remediation-checklist.md","source_location":"61-67","weight":1.0},
{"source":"securitychecklist_b3_likes_comments","target":"projectanalysis_game_comments_likes_unwired","relation":"rationale_for","confidence":"INFERRED","confidence_score":0.9,"source_file":"docs/security/security-remediation-checklist.md","source_location":"86-91","weight":1.0},
{"source":"securitychecklist_b3_likes_comments","target":"recruitpostsddl_recruit_posts_table","relation":"semantically_similar_to","confidence":"INFERRED","confidence_score":0.65,"source_file":"docs/security/security-remediation-checklist.md","source_location":"100-104","weight":1.0},
{"source":"verificationstrategies_doc","target":"verificationstrategies_ladder","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/development/verification-strategies.md","source_location":"5","weight":1.0},
{"source":"verificationstrategies_doc","target":"verificationstrategies_regression_mandate","relation":"references","confidence":"EXTRACTED","confidence_score":1.0,"source_file":"docs/development/verification-strategies.md","source_location":"27","weight":1.0},
{"source":"verificationstrategies_regression_mandate","target":"securitychecklist_b1_csrf","relation":"semantically_similar_to","confidence":"INFERRED","confidence_score":0.7,"source_file":"docs/development/verification-strategies.md","source_location":"27","weight":1.0},
{"source":"verificationstrategies_ladder","target":"securitychecklist_b1_csrf","relation":"semantically_similar_to","confidence":"INFERRED","confidence_score":0.6,"source_file":"docs/development/verification-strategies.md","source_location":"23","weight":1.0}
],
"hyperedges":[
{"nodes":["usersignupschema_user_auth_identities","securityhardeningddl_ux_provider_user_id_unique","usersignupschema_dedup_judgment","usersignupschema_account_linking"],"relation":"conceptually_related_to","concept":"provider + provider_user_id 유일성 기반 로그인 신원 식별·중복 방지","confidence":"INFERRED","confidence_score":0.85,"source_file":"docs/user-signup-schema.md"},
{"nodes":["securitychecklist_doc","projectanalysis_doc","usersignupschema_doc","dbupdatequerygenerator_doc"],"relation":"conceptually_related_to","concept":"2026-06-16 프로젝트 분석을 허브로 한 docs 상호 참조 네트워크","confidence":"INFERRED","confidence_score":0.8,"source_file":"docs/index.md"}
],
"input_tokens":0,"output_tokens":0}