edda61ae6a14ef02ca8eb3f0a51db5e7679bc90ea1ae58ad010b46eac41d6295.json 29 KB

1
  1. {"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_07_crm_name_pinyin_abbr_md", "label": "2026-08-07-crm-name-pinyin-abbr.md", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L1"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_crm_implementation_plan", "label": "CRM \u4ea7\u54c1/\u5ba2\u6237\u62fc\u97f3\u9996\u5b57\u6bcd\u68c0\u7d22 Implementation Plan", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L1"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "label": "File map", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L15"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_1_tdd", "label": "Task 1: \u62fc\u97f3\u5de5\u5177\u51fd\u6570\uff08TDD\uff09", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L44"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_1", "label": "code:python (# backend/tests/test_pinyin_abbr.py)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L53"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_2", "label": "code:bash (cd backend && source venv/bin/activate)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L79"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_3", "label": "code:python (# backend/app/utils/pinyin_abbr.py)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L90"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_4", "label": "code:bash (cd backend && pytest tests/test_pinyin_abbr.py -v)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L154"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_5", "label": "code:bash (git add backend/requirements.txt backend/app/utils/pinyin_ab)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L162"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_2_ddl_orm", "label": "Task 2: DDL + ORM \u6a21\u578b", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L169"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_6", "label": "code:sql (-- docs/sql/migrations/2026-08-07-crm-name-pinyin-abbr.sql)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L178"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_7", "label": "code:sql (`name_pinyin_abbr` varchar(100) DEFAULT NULL COMMENT '\u4ea7\u54c1\u540d\u79f0\u62fc\u97f3)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L195"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_8", "label": "code:python (name_pinyin_abbr = Column(String(100), nullable=True, commen)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L205"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_9", "label": "code:python (name_pinyin_abbr = Column(String(100), nullable=True, commen)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L211"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_10", "label": "code:bash (git add docs/sql/migrations/2026-08-07-crm-name-pinyin-abbr.)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L217"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "label": "Task 3: \u4ea7\u54c1 CRUD + \u68c0\u7d22", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L224"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_11", "label": "code:python (name_pinyin_abbr: Optional[str] = Field()", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L236"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_12", "label": "code:python (\"namePinyinAbbr\": getattr(row, \"name_pinyin_abbr\", None) or )", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L246"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_13", "label": "code:python (from app.utils.pinyin_abbr import resolve_name_pinyin_abbr)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L254"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_14", "label": "code:python (name_keys = (\"name_pinyin_abbr\", \"namePinyinAbbr\"))", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L276"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_15", "label": "code:python (from sqlalchemy import func, or_)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L296"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_16", "label": "code:python (q = q.filter()", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L315"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_17", "label": "code:bash (cd backend && pytest tests/test_pinyin_abbr.py tests/test_cr)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L330"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_18", "label": "code:bash (git add backend/app/schemas/crm/product.py backend/app/crud/)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L338"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "label": "Task 4: \u5ba2\u6237 CRUD + \u68c0\u7d22", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L346"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_19", "label": "code:python (name_pinyin_abbr: Optional[str] = Field()", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L357"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_20", "label": "code:python (\"namePinyinAbbr\": getattr(row, \"name_pinyin_abbr\", None) or )", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L367"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_21", "label": "code:python (func.lower(func.coalesce(CrmCustomer.name_pinyin_abbr, \"\")).)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L379"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_22", "label": "code:python (if customer_name:)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L385"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_23", "label": "code:bash (cd backend && pytest tests/test_crm_name_pinyin_search.py -v)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L405"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_24", "label": "code:bash (git add backend/app/schemas/crm/customer.py backend/app/crud)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L411"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_5", "label": "Task 5: \u5b58\u91cf\u56de\u586b\u811a\u672c", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L418"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_25", "label": "code:python (#!/usr/bin/env python3)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L425"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_26", "label": "code:bash (cd backend && venv/bin/python scripts/backfill_name_pinyin_a)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L523"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_27", "label": "code:bash (git add backend/scripts/backfill_name_pinyin_abbr.py)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L529"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_6", "label": "Task 6: \u524d\u7aef\u4ea7\u54c1\u8868\u5355 / \u5217\u8868 / \u9009\u62e9\u5668", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L536"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_28", "label": "code:ts (namePinyinAbbr?: string)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L549"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_29", "label": "code:vue (<el-form-item label=\"\u62fc\u97f3\u9996\u5b57\u6bcd\">)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L557"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_30", "label": "code:bash (git add web-admin/src/api/crm/product.ts \\)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L599"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_7", "label": "Task 7: \u524d\u7aef\u5ba2\u6237\u8868\u5355 / \u5217\u8868 / \u9009\u62e9\u5668", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L610"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_31", "label": "code:ts ({ label: '\u62fc\u97f3\u9996\u5b57\u6bcd', value: c.namePinyinAbbr })", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L626"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_32", "label": "code:bash (git add web-admin/src/views/crm/customer/CustomerFormDialog.)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L642"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_task_8", "label": "Task 8: \u4e0a\u7ebf\u6838\u5bf9\u6e05\u5355\uff08\u6267\u884c\u73af\u5883\uff09", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L653"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr", "label": "\u751f\u4ea7\u4e0a\u7ebf\u547d\u4ee4\u6458\u8981", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L661"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_33", "label": "code:bash (# 1) DDL\uff08\u5e42\u7b49\uff09)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L663"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_spec", "label": "Spec \u8986\u76d6\u81ea\u68c0", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L681"}, {"id": "plans_2026_08_07_crm_name_pinyin_abbr_placeholder", "label": "Placeholder \u626b\u63cf", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L694"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_07_crm_name_pinyin_abbr_md", "target": "plans_2026_08_07_crm_name_pinyin_abbr_crm_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L1", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_crm_implementation_plan", "target": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L15", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_1_tdd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L44", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_1_tdd", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L53", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_1_tdd", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L79", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_1_tdd", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L90", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_1_tdd", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L154", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_1_tdd", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L162", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_2_ddl_orm", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L169", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_2_ddl_orm", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_6", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L178", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_2_ddl_orm", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_7", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L195", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_2_ddl_orm", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L205", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_2_ddl_orm", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L211", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_2_ddl_orm", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_10", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L217", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L224", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_11", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L236", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_12", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L246", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_13", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L254", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L276", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_15", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L296", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_16", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L315", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_17", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L330", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_3_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_18", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L338", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L346", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_19", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L357", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_20", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L367", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_21", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L379", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_22", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L385", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_23", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L405", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_4_crud", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_24", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L411", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L418", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_5", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_25", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L425", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_5", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_26", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L523", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_5", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_27", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L529", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_6", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L536", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_6", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_28", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L549", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_6", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_29", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L557", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_6", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_30", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L599", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_7", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L610", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_7", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_31", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L626", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_7", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_32", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L642", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_file_map", "target": "plans_2026_08_07_crm_name_pinyin_abbr_task_8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L653", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_task_8", "target": "plans_2026_08_07_crm_name_pinyin_abbr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L661", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr", "target": "plans_2026_08_07_crm_name_pinyin_abbr_codeblock_33", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L663", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_crm_implementation_plan", "target": "plans_2026_08_07_crm_name_pinyin_abbr_spec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L681", "weight": 1.0}, {"source": "plans_2026_08_07_crm_name_pinyin_abbr_crm_implementation_plan", "target": "plans_2026_08_07_crm_name_pinyin_abbr_placeholder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-08-07-crm-name-pinyin-abbr.md", "source_location": "L694", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}