diff --git a/plugins/life-science-research/skills/clinicaltrials-skill/SKILL.md b/plugins/life-science-research/skills/clinicaltrials-skill/SKILL.md index 7f1911d47..fef690610 100644 --- a/plugins/life-science-research/skills/clinicaltrials-skill/SKILL.md +++ b/plugins/life-science-research/skills/clinicaltrials-skill/SKILL.md @@ -1,8 +1,41 @@ --- name: clinicaltrials-skill -description: Submit compact ClinicalTrials.gov API v2 requests for study search, metadata, enums, search areas, and field statistics. Use when a user wants concise ClinicalTrials.gov summaries +description: Submit compact ClinicalTrials.gov API v2 requests for study search, metadata, enums, search areas, and field statistics. Use for concise registry summaries and bounded target-program research paired with PubMed. --- +## Target-program workflow +When asked for target biology, prior programs, and safety, especially when this +skill is paired with `ncbi-entrez-skill`: + +1. Run one `action=studies` wrapper call per target with `max_pages=1` and no + more than ten compact records. Set `save_raw=true` with a unique temporary + output path on this first call. +2. Search target names and aliases in interventional studies. Keep completed + and terminated programs rather than filtering to currently recruiting + studies. +3. Rank records by evidence value: posted results or mature outcome-bearing + programs first, then a negative or inconclusive program, then active + no-results programs. +4. Retain at most five distinct programs per target. Do not treat termination + for business, accrual, or reprioritization as evidence of toxicity or target + failure. +5. Extract intervention names, aliases, NCT IDs, phase, enrollment, status, + outcome signal, and safety signal. Feed intervention aliases into the + companion PubMed clinical-program search. +6. Do not rerun the same registry query with a larger `max_depth` or a + different output projection. When compact output lacks a needed field, + reshape the saved response locally in one pass. Project only NCT ID, title, + status, stop reason, phase, enrollment, intervention names, `hasResults`, + primary outcome values, and compact serious-adverse-event terms or counts. +7. Do not make direct-study follow-up requests in this bounded pass. Mark a + field unavailable when the saved response cannot support it. +8. Stop when the mature positive, negative or inconclusive, and observed-safety + slots are covered or explicitly unavailable. + +Do not inspect wrapper source, probe Python environments, or use web search to +re-verify registry results unless the documented invocation fails, records +conflict, or the user explicitly requests current regulatory status. + ## Operating rules - Use `scripts/clinicaltrials_client.py` for all ClinicalTrials.gov v2 calls. - Study searches are better with `max_items=10` and `max_pages=1`; only increase pages when the user explicitly wants more than the first page. diff --git a/plugins/life-science-research/skills/ncbi-entrez-skill/SKILL.md b/plugins/life-science-research/skills/ncbi-entrez-skill/SKILL.md index 7f99e45ec..8e19ed05a 100644 --- a/plugins/life-science-research/skills/ncbi-entrez-skill/SKILL.md +++ b/plugins/life-science-research/skills/ncbi-entrez-skill/SKILL.md @@ -1,8 +1,50 @@ --- name: ncbi-entrez-skill -description: Submit compact NCBI Entrez E-Utilities requests for PubMed, Gene, Protein, Nucleotide, PMC metadata, and GEO metadata workflows. Use when a user wants concise Entrez search, fetch, summary, or link results; save raw JSON or XML only on request. +description: Submit compact NCBI Entrez E-Utilities requests for PubMed, Gene, Protein, Nucleotide, PMC metadata, and GEO metadata workflows. Use for concise Entrez search, fetch, summary, or link results and for bounded target-evidence research paired with ClinicalTrials.gov. --- +## Target-evidence workflow +When asked for target biology, prior programs, and safety, especially when this +skill is paired with `clinicaltrials-skill`: + +1. Plan the complete cross-source retrieval before invoking either wrapper. +2. Create these evidence slots for each target: + - human biology or pharmacodynamic target validation; + - normal adult-tissue expression or translational safety; + - the most mature positive clinical program; + - one negative, terminated, or inconclusive program with outcome evidence + when available; + - observed human safety; + - preclinical mechanism, efficacy, or safety. +3. Run the bounded ClinicalTrials.gov search first and reuse its intervention + names and aliases in the PubMed clinical-program query. +4. Run at most two PubMed `esearch` calls per target: one for biology, + expression, normal tissue, and preclinical safety; one for named clinical + programs, efficacy, pharmacodynamics, and observed safety. +5. Prefer primary studies with outcomes. Exclude editorials and comments from + the clinical query when possible. +6. Select at most six papers per target. Across all targets, fetch selected + PMIDs in one batched `efetch`; do not add `esummary` when `efetch` supplies + the needed citation metadata. +7. Keep NCBI calls sequential. Use compact `retmax`, `max_items`, and + `max_depth` values and avoid returning full objects or large abstract sets. +8. Stop when every available evidence slot is filled. State unavailable slots + explicitly instead of expanding into open-ended searches. + +For one target, budget one ClinicalTrials.gov wrapper call, two PubMed +`esearch` calls, and one batched `efetch`. For multiple targets, add one +registry call and two searches per target but keep one shared `efetch`. Do not +rerun an identical request to change formatting or selected fields. If fuller +local inspection is needed, set `save_raw=true` on the first call and inspect +the saved response without calling the network wrapper again. Wrapper failure +is the only exception. + +For PubMed XML fetches, pair `retmode=xml` with `response_format=xml`, set +`save_raw=true`, and parse the saved XML in one local pass. Do not inspect +wrapper source, probe Python environments, or use web search to re-verify +PubMed results unless the documented invocation fails, records conflict, or +the user explicitly requests current regulatory status. + ## Operating rules - Use `scripts/ncbi_entrez.py` for all Entrez calls in this package. - Use explicit `endpoint` values such as `esearch`, `esummary`, `efetch`, `elink`, or `einfo`.