Files
deep_research/.opencode/skills/citation-manager/SKILL.md
T

5.4 KiB
Raw Blame History

name, description
name description
citation-manager 引用管理规范。规定 [src_xxx] 编号体系、sources.jsonl 字段标准、跨章节去重规则、参考文献列表生成格式(GB/T 7714)。

引用管理规范

一、src_id 编号规则

全局唯一编号

src_id 在整个项目内全局唯一,格式:src_XXX3 位数字,不足补零)。

  • 由 dr-analyst 在首次引用时分配
  • 按发现顺序递增:src_001, src_002, ...
  • 跨章节引用同一来源时,使用相同 ID

分配流程

  1. dr-analyst 发现一条新信源
  2. 读取 projects/<slug>/phase2/sources.jsonl,找当前最大 ID
  3. 分配下一个 ID(如当前最大为 src_023,下一个为 src_024
  4. 写入 sources.jsonl

草稿中的引用格式

行内引用:数据或观点 [src_042]

多来源:数据或观点 [src_042][src_058]


二、sources.jsonl 字段标准

每行一个 JSON 对象(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 结束时执行去重:

# 伪代码
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] 在最前,以此类推。


五、脚注使用边界

脚注不是行内引用的替代品,也不用于重复输入材料中已经被正文自然承载的事实。脚注只在以下场景使用:

  • 法规原文或条款定位:正文需要引用法规要求,但完整条款会打断叙事时,脚注写明法规名称、章节/条款和关键原文。
  • 关键资料原文:原文措辞本身会影响判断强度,且正文只保留管理结论时,脚注可放短摘录。
  • 补充背景或术语解释:正文读者可能需要额外背景,但展开会破坏行文节奏。
  • 版权或使用限制说明:图表、第三方材料、内部材料使用边界需要单独说明时。

禁止事项:

  • 不要把“某份输入材料说过什么”机械搬到脚注;这类事实应通过正文和数字引用解决。
  • 不要为每个本地材料引用都加脚注;脚注应少而精,优先服务关键判断。
  • 不要用脚注堆砌证据,核心证据仍应进入正文或证据表。

推荐格式:

正文关键判断<sup>[12]</sup>。[^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 执行):

# 提取正文中的所有 src_id
grep -oE 'src_[0-9]+' projects/<slug>/phase4/final.md | sort -u > /tmp/cited.txt

# 提取 sources.jsonl 中的所有 id
python3 -c "
import json
ids = []
with open('projects/<slug>/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