| name | Search Query Generator |
| description | 把科学问题翻译为多数据库检索式。 Use when: 候选问题已确认. Do not use when: search_plan.json 已批准. |
Identity
- Skill ID: S03
- Slug: search-query-generator
- Directory: .agents/skills/S03-search-query-generator/
- Name: Search Query Generator
- 中文角色: 多数据库检索式生成
- Stage: A_scoping_search
- Skill Type: business
- Human Gate: G1
- Required QA Hooks: - Q03
Mission
把科学问题翻译为多数据库检索式。
此 skill 在综述生产流水线中的角色:多数据库检索式生成。它在"A_scoping_search"阶段运行,
生成结构化产物供下游 skill 消费,并在 G1 处接受人工审核。
Scientific Role in the Workflow
- 所处阶段: 检索准备阶段——将科学问题翻译为数据库可执行的检索式
- 产出形式: search_plan.json + db_queries/*.txt (各数据库独立查询文件)
- 人机协同点: 产物在 G1 处需人工审签;关键决策记录在 decision_log.md 中
- 对下游的价值: 为 S04 提供可执行的检索指令,为 Gate 1 审核提供检索策略
Scope of Responsibility
- 本 skill 仅负责 关键词树构建、多数据库语法适配、敏感度/特异度平衡、检索式输出
- 不负责 实际执行检索(那是 S04 的职责)
- 不负责 去重与筛选(那是 S05 的职责)
Trigger When
候选问题已确认
Do Not Trigger When
search_plan.json 已批准
Required Inputs
- project_brief.json
- candidate_questions.csv
Optional Inputs
- 用户提供的已知检索式模板
- 领域专家建议的额外关键词
Output Contract
- 所有输出文件写入
/artifacts/run-<ts>/stage-1/ 目录下
- 结构化输出(.json / .csv)优先于叙述性输出(.md),必须通过 schemas/ 下对应 JSON Schema 校验
- 每个输出产物在 artifact registry 中注册时,须记录其上游依赖、生成时间、生成器和版本号
- 产物格式优先级:结构化数据 (.json) > 表格 (.csv) > 叙述性 Markdown (.md) > 自由文本
- 产物路径和命名遵循
configs/artifact_registry_rules.json 中定义的规范
Expected Outputs
- search_plan.json
- db_queries/
Operational Steps
- 验证所有 Required Inputs 存在且可读,缺失则立即停止并报告
- 加载相关 Schema 和契约文件(schemas/ 目录下)
- 仅执行 Purpose 与 Scope of Responsibility 中定义的任务,不漂移到相邻 skill 的职责
- 先产出结构化数据(.json / .csv),再生成叙述性说明(.md)
- 记录所有假设、未解决的歧义和失败追踪信息
- 若置信度不足(如关键数据缺失导致无法做出科学判断),停止执行并升级给人工,不得猜测或编造
Decision / Writing / Validation Principles
- 结构化字段优先:先填满 schema 的 required 字段,再补充 optional 字段
- 证据三元组:每个科学论断必须包含 (source_id, finding_direction, evidence_strength)
- 冲突分类:如发现证据方向矛盾,标记为 direction_conflict 而非强行选边
- 术语一致性:同一实体在全文中使用统一的 canonical term(参见 configs/ontology/)
- 保守推断:不在证据不足时声称"clearly" "definitively" "proves"
Hard Constraints
- 不得编造 DOI、PMID、样本量、统计值、期刊身份或研究结论
- 不得静默覆盖已有高版本 artifact(必须 version incrementally,参见 AGENTS.md)
- 不得删除上游可审计痕迹(raw exports、screening decisions、extraction logs 必须保留)
- 不得绕过 Gate 或把 QA 结论写成"已人工确认"(除非真正通过了人工审核)
- 不能对数据库特有的语法字段做跨库复制粘贴
- 不能以'太复杂'为由跳过某个数据库
- 不在检索式中使用品牌名或未定义的缩写
QA Hooks
Human-in-the-Loop Checkpoint
- 产出物完成后,进入 G1 等待人工审核
- 审核通过前,下游 skill 不得启动
- 若人工审核要求修订,返回上游 skill(参见
orchestrator/state_machine/transitions.yaml)
Acceptance Checklist (Self-Verification Before Declaring Done)
Failure Handling
- 缺少输入: 发出 blocking error,立即停止,不继续执行
- Schema 校验失败: 重试一次(带错误上下文修正);若第二次仍失败,升级给 checkpoint manager
- 下游污染风险: 如果当前产物可能影响下游 skill 的正确性,标记为
status: blocked,阻止流水线继续
- 领域特定失败: 若所有数据库的预估返回均 <20 条,停止并提示问题范围可能过窄
- 重试耗尽: 若达到 orchestrator/retry_policies/ 中定义的最大重试次数,升级给人工
Logging and Observability
每个 skill 必须产出以下日志文件(写入 /artifacts/run-<ts>/logs/S03/):
input_manifest.json — 所有输入的路径和校验和
output_manifest.json — 所有输出的路径和校验和
validation_result.json — Schema 校验结果
decision_log.md — 关键决策及其理由
failure_trace.md — 失败时的错误堆栈(如有)
Collaboration Notes for Codex / Orchestrator
- 执行前先读取
AGENTS.md 获取项目级非协商规则
- 执行前先读取
configs/skills_manifest.json 确认本 skill 的上下游依赖
- 产物注册使用
orchestrator/artifact_registry/registry_v2.py 的统一接口
Definition of Done
- 所有 Expected Outputs 已写入磁盘并通过 Schema 校验
- 所有 Required QA Hooks 已触发并获得非 blocking 结果
- 产物已在 artifact registry 中注册,具备完整的 provenance 记录
Examples
Examples
db_queries/pubmed.txt
# PubMed Search Query
# Generated: 2026-06-24 | Project: NCRNA-VSMC-ATH-2026
(
("RNA, Untranslated"[Mesh] OR "RNA, Long Noncoding"[Mesh] OR "MicroRNAs"[Mesh] OR
"RNA, Circular"[Mesh] OR lncRNA[TIAB] OR miRNA[TIAB] OR circRNA[TIAB] OR
"non-coding RNA"[TIAB] OR ncRNA[TIAB])
AND
("Muscle, Smooth, Vascular"[Mesh] OR "vascular smooth muscle"[TIAB] OR
VSMC[TIAB] OR "smooth muscle cell"[TIAB])
AND
("phenotypic switching"[TIAB] OR "phenotype switch"[TIAB] OR
"phenotypic modulation"[TIAB] OR "contractile"[TIAB] OR "synthetic"[TIAB])
AND
("Atherosclerosis"[Mesh] OR atheroscleros*[TIAB] OR atherogen*[TIAB])
)
NOT ("cancer"[TIAB] OR "tumor"[TIAB] OR "neoplasm"[TIAB])
Filters: 2019-2026, English