← Life Science ResearchCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Life Science Research
Snapshot Sep 30, 2026 · 23:18 UTC · version 1.0.3
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "ncbi-blast-skill",
"description": "Submit, poll, and summarize NCBI BLAST Common URL API jobs (Blast.cgi) for nucleotide or protein sequences. Use when a user wants RID status, BLAST results, or compact top-hit summaries; fetch raw Text/JSON2 only on request.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 97
},
{
"relative_path": "references/blast-common-url-api.txt",
"size_in_bytes": 2588
},
{
"relative_path": "references/intent-notes.txt",
"size_in_bytes": 488
},
{
"relative_path": "scripts/ncbi_blast.py",
"size_in_bytes": 26089
},
{
"relative_path": "scripts/test_ncbi_blast.py",
"size_in_bytes": 16869
}
],
"skill_md_contents": "---\nname: ncbi-blast-skill\ndescription: Submit, poll, and summarize NCBI BLAST Common URL API jobs (Blast.cgi) for nucleotide or protein sequences. Use when a user wants RID status, BLAST results, or compact top-hit summaries; fetch raw Text/JSON2 only on request.\n---\n\n## Operating rules\n\n- Use `scripts/ncbi_blast.py` for all concrete BLAST work.\n- Honor NCBI limits: `>=10s` between requests and `>=60s` between polls for the same RID.\n- Always surface the `RID` in the response so the job can be resumed or refetched later.\n- If the conversation is long or multiple tool calls have occurred, refetch from the `RID` instead of trusting older context.\n- If a prior turn saved raw output to disk, do not read it back into context unless the user asks for a specific follow-up.\n\n## Execution behavior\n\n- Return compact BLAST summaries first.\n- Do not paste full `JSON2` or long Text alignments into chat by default.\n- Default to `max_hits=5` and `max_queries=5`.\n- If the user asks for raw output, write it to a file and report the path.\n- Only provide Python code when the user explicitly asks for code or execution is unavailable.\n- For normal user-facing answers, summarize the script JSON in markdown; if the user explicitly asks for machine-readable output, return the JSON verbatim.\n\n## Input\n\n- The script reads one JSON object from stdin.\n- `action` must be one of `submit`, `status`, `fetch`, or `run`.\n- `submit` and `run` require `program`, `database`, `query_fasta`, and `email` (or `NCBI_EMAIL`).\n- `status` and `fetch` require `rid`.\n- `program` must be one of `blastn`, `blastp`, `blastx`, `tblastn`, or `tblastx`.\n- `result_format` defaults to `json2` for `run` and `fetch`.\n- `tool` defaults to `NCBI_TOOL`, then `ncbi-blast-skill`.\n- `max_hits` defaults to `5`; `max_queries` defaults to `5`.\n- `hitlist_size` defaults to `50`; `descriptions` and `alignments` default to `5`.\n- `wait_timeout_sec` defaults to `900`.\n- `save_raw` defaults to `false`.\n- If `save_raw=true` and `raw_output_path` is omitted, the script writes to `/tmp/ncbi-blast-<rid>.<json|txt>`.\n- `query_fasta` may contain multi-FASTA input; compact summaries still cap per-query output with `max_hits` and `max_queries`.\n\n## Output\n\n- Common success fields: `ok`, `source`, `action`, `warnings`.\n- `submit` returns `rid`, `rtoe_seconds`, and `status=\"SUBMITTED\"`.\n- `status` returns `rid`, normalized `status`, and `has_hits`.\n- `run` and `fetch` with `result_format=json2` return `rid`, `status`, `has_hits`, `result_format`, `query_count_returned`, `query_count_available`, `query_summaries_truncated`, `query_summaries`, and `raw_output_path`.\n- Each `query_summary` contains `query_title`, `hit_count_returned`, `hit_count_available`, `truncated`, and `top_hits`.\n- Each `top_hit` contains `rank`, `accession`, `title`, `evalue`, and `bit_score`.\n- `fetch` with `result_format=text` returns `text_head` capped at 800 characters unless `save_raw=true`; when `save_raw=true`, it returns only the artifact path.\n- Failures return `ok=false`, `error.code`, `error.message`, and `warnings`.\n\n## Execution\n\n- Run `python scripts/ncbi_blast.py`.\n- If `requests` is missing, install it once before first use with `python -m pip install requests`.\n\n```bash\necho '{\"action\":\"run\",\"program\":\"blastp\",\"database\":\"swissprot\",\"query_fasta\":\">q1\\nMTEYK...\",\"email\":\"you@example.com\"}' | python scripts/ncbi_blast.py\n```\n\n## References\n\n- Load `references/blast-common-url-api.txt` only for parameter details or uncommon BLAST options.\n- Do not load `references/intent-notes.txt` during normal skill execution; it is not runtime guidance.\n"
}SHA-256: 986e695c8f31cce5d338e981e56ca4f1063f59c02fb2fabec21259c7fe406da3