--- name: citation-manager description: 引用管理规范。规定 [src_xxx] 编号体系、sources.jsonl 字段标准、跨章节去重规则、参考文献列表生成格式(GB/T 7714)。 --- # 引用管理规范 ## 一、src_id 编号规则 ### 全局唯一编号 `src_id` 在整个项目内**全局唯一**,格式:`src_XXX`(3 位数字,不足补零)。 - 由 dr-analyst 在首次引用时分配 - 按发现顺序递增:`src_001`, `src_002`, ... - 跨章节引用同一来源时,使用**相同 ID** ### 分配流程 1. dr-analyst 发现一条新信源 2. 读取 `projects//phase2/sources.jsonl`,找当前最大 ID 3. 分配下一个 ID(如当前最大为 `src_023`,下一个为 `src_024`) 4. 写入 sources.jsonl ### 草稿中的引用格式 行内引用:`数据或观点 [src_042]` 多来源:`数据或观点 [src_042][src_058]` --- ## 二、sources.jsonl 字段标准 每行一个 JSON 对象(JSONL 格式): ```jsonl { "id": "src_001", "tier": 1, "score": 8.5, "type": "journal", "title": "论文标题", "authors": ["Zhang S", "Li M"], "year": 2024, "venue": "Nature Medicine", "impact_factor": 58.7, "url": "https://doi.org/10.1038/...", "doi": "10.1038/...", "accessed_at": "2026-04-20", "abstract": "2-3句摘要", "key_data": { "sample_size": 1200, "primary_endpoint": "OS 改善 23%" }, "used_in": ["ch02", "ch05.sec3"], "conflict_of_interest": null, "notes": "RCT 主要终点数据在 Table 2" } ``` ### type 字段枚举值 | 值 | 含义 | |---|---| | `journal` | 期刊论文(含综述) | | `trial` | 临床试验(ClinicalTrials.gov 注册信息) | | `regulatory` | 监管机构公告/审批文件 | | `patent` | 专利文件 | | `report` | 咨询/行业报告 | | `disclosure` | 上市公司披露(年报/招股书/SEC)| | `preprint` | 预印本(bioRxiv/medRxiv)| | `news` | 专业媒体报道(Tier 3 用) | ### 必填字段 `id`, `tier`, `score`, `type`, `title`, `year`, `url`(或 `doi`) --- ## 三、去重规则 dr-pm 在 Phase 2 结束时执行去重: ```python # 伪代码 seen_urls = {} seen_dois = {} unique_sources = [] for source in all_sources: key = source.get("doi") or source.get("url") if key not in seen_urls: seen_urls[key] = True unique_sources.append(source) else: # 合并 used_in 字段 existing = seen_urls[key] existing["used_in"] = list(set(existing["used_in"] + source["used_in"])) ``` 去重后,草稿文件里的 [src_xxx] 标注**不需要更改**,因为 ID 是全局分配的。 --- ## 四、参考文献列表生成(GB/T 7714-2015) dr-reporter 从 sources.jsonl 生成参考文献列表时,按以下格式: ### 期刊论文 ``` [src_001] ZHANG S, LI M. 论文标题[J]. Nature Medicine, 2024, 30(5): 1234-1245. DOI: 10.1038/... ``` ### 报告/白皮书 ``` [src_042] McKinsey & Company. 报告标题[R]. McKinsey Global Institute, 2024. ``` ### 监管文件 ``` [src_018] FDA. NDA 申请审批公告[EB/OL]. (2024-03-15)[2026-04-20]. https://www.fda.gov/... ``` ### 临床试验 ``` [src_055] ClinicalTrials.gov. 试验名称 (NCT12345678)[EB/OL]. (2023-01-01)[2026-04-20]. https://clinicaltrials.gov/... ``` ### 专利 ``` [src_067] 发明人. 专利名称[P]. 专利号, 申请日. ``` ### 排序规则 参考文献按在正文中**首次出现的顺序**排列,即 [src_001] 在最前,以此类推。 --- ## 五、脚注使用边界 脚注不是行内引用的替代品,也不用于重复输入材料中已经被正文自然承载的事实。脚注只在以下场景使用: - **法规原文或条款定位**:正文需要引用法规要求,但完整条款会打断叙事时,脚注写明法规名称、章节/条款和关键原文。 - **关键资料原文**:原文措辞本身会影响判断强度,且正文只保留管理结论时,脚注可放短摘录。 - **补充背景或术语解释**:正文读者可能需要额外背景,但展开会破坏行文节奏。 - **版权或使用限制说明**:图表、第三方材料、内部材料使用边界需要单独说明时。 禁止事项: - 不要把“某份输入材料说过什么”机械搬到脚注;这类事实应通过正文和数字引用解决。 - 不要为每个本地材料引用都加脚注;脚注应少而精,优先服务关键判断。 - 不要用脚注堆砌证据,核心证据仍应进入正文或证据表。 推荐格式: ```markdown 正文关键判断[12]。[^1] [^1]: ICH Q10《Pharmaceutical Quality System》第 4.1 节要求管理评审输入覆盖“results of regulatory inspections and findings, audits and commitments”,并纳入 CAPA、变更以及上次管理评审行动。 ``` --- ## 六、引用完整性检查(dr-chief-editor 用) 审校时检查: 1. 正文中所有 [src_xxx] 都在 sources.jsonl 里有对应记录 2. sources.jsonl 里所有 ID 在正文中都有引用(无孤立信源) 3. 所有 Tier 1 信源的 URL 或 DOI 格式正确 检查脚本(可用 bash 执行): ```bash # 提取正文中的所有 src_id grep -oE 'src_[0-9]+' projects//phase4/final.md | sort -u > /tmp/cited.txt # 提取 sources.jsonl 中的所有 id python3 -c " import json ids = [] with open('projects//phase2/sources.jsonl') as f: for line in f: d = json.loads(line) ids.append(d['id']) print('\n'.join(sorted(ids))) " > /tmp/registered.txt # 找差集 diff /tmp/cited.txt /tmp/registered.txt ```