{"id":24750,"plugin_id":"plugins~Plugin_7113e6f705948191bad2d24c30465361","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:18:36.533Z","digest":"4f2ce109d005b07fbce6636c89a4a57db349ed5fa16d7477f02223a84ed43257","against":null,"payload":{"name":"opentargets-skill","description":"Submit compact Open Targets Platform GraphQL requests for target, disease, drug, variant, study, and search data, including associated-disease datasource heatmap matrices. Use when a user wants concise Open Targets summaries or per-datasource evidence context","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":103},{"relative_path":"scripts/opentargets_disease_heatmap.py","size_in_bytes":12104},{"relative_path":"scripts/opentargets_graphql.py","size_in_bytes":5646}],"skill_md_contents":"---\nname: opentargets-skill\ndescription: Submit compact Open Targets Platform GraphQL requests for target, disease, drug, variant, study, and search data, including associated-disease datasource heatmap matrices. Use when a user wants concise Open Targets summaries or per-datasource evidence context\n---\n\n## Operating rules\n- Use `scripts/opentargets_graphql.py` for all Open Targets GraphQL work.\n- Use `scripts/opentargets_disease_heatmap.py` when the user wants the associated-disease bubble grid or a disease-by-datasource evidence matrix.\n- The script accepts `max_items`; for nested GraphQL results, start with `max_items=3` to `5`.\n- Keep GraphQL selection sets narrow and page connection-style fields conservatively.\n- Use `query_path` for long GraphQL documents instead of pasting large inline query strings.\n- Re-run requests in long conversations instead of relying on earlier tool output.\n- Treat displayed `...` in tool previews as UI truncation, not part of the real query.\n\n## Execution behavior\n- Return concise markdown summaries from the script JSON by default.\n- Return the JSON verbatim only if the user explicitly asks for machine-readable output.\n- Prefer targeted GraphQL queries that select only the fields needed for the user task.\n- Use schema introspection only when necessary; do not dump large schema payloads into chat.\n- For the associated-disease heatmap, treat `datasourceScores` as evidence-source breadth/context. Do not treat heatmap breadth alone as proof of causal target assignment, mechanism, or direction of effect.\n\n## Input\n- Read one JSON object from stdin.\n- Required field: `query` or `query_path`\n- Optional fields: `variables`, `max_items`, `max_depth`, `timeout_sec`, `save_raw`, `raw_output_path`\n- Common Open Targets patterns:\n  - `{\"query\":\"query { __typename }\"}`\n  - `{\"query\":\"query searchAny($q: String!) { search(queryString: $q) { total hits { entity score object { ... on Target { id approvedSymbol } } } } }\",\"variables\":{\"q\":\"MST1\"},\"max_items\":3}`\n\n## Output\n- Success returns `ok`, `source`, `top_keys`, a compact `summary`, and `raw_output_path` when `save_raw=true`.\n- Failure returns `ok=false` with `error.code` such as `invalid_json`, `invalid_input`, `network_error`, `invalid_response`, or `graphql_error`.\n\n## Execution\n```bash\necho '{\"query\":\"query { __typename }\"}' | python scripts/opentargets_graphql.py\n```\n\nAssociated-disease heatmap helper:\n\n```bash\necho '{\n  \"ensembl_id\":\"ENSG00000186868\",\n  \"page_size\":50,\n  \"max_pages\":4,\n  \"disease_name_filter\":\"alzh\"\n}' | python scripts/opentargets_disease_heatmap.py\n```\n\nThe helper paginates `associatedDiseases`, collects `datasourceScores`, and returns:\n\n- `matrix.columns`: datasource IDs plus display labels\n- `matrix.rows`: diseases with `datasource_scores`\n- `summary.rows_preview`: top datasource signals per disease\n\nUse the disease-name filter as a client-side substring filter similar to the UI. If you later need the overall association score column, inspect the GraphQL row type first before adding candidate fields such as `score` or `associationScore`.\n\n## References\n- No additional runtime references are required; keep the import package limited to this file and the bundled scripts in `scripts/`.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}