{
  "schemaVersion": "1.0",
  "item": {
    "slug": "chemistry-query",
    "name": "Chemistry Query",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Cheminem/chemistry-query",
    "canonicalUrl": "https://clawhub.ai/Cheminem/chemistry-query",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/chemistry-query",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=chemistry-query",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/chembl_query.py",
      "scripts/pubmed_search.py",
      "scripts/templates.json",
      "scripts/admet_predict.py",
      "scripts/rdkit_mol.py",
      "scripts/chain_entry.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/chemistry-query"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/chemistry-query",
    "agentPageUrl": "https://openagent3.xyz/skills/chemistry-query/agent",
    "manifestUrl": "https://openagent3.xyz/skills/chemistry-query/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/chemistry-query/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Overview",
        "body": "Full-stack chemistry toolkit combining PubChem data retrieval with RDKit molecule processing, visualization, analysis, retrosynthesis, and synthesis planning. All outputs are structured JSON for easy downstream chaining. Generates PNG/SVG images on demand.\n\nKey capabilities:\n\nPubChem compound lookup (info, structure, synthesis refs, similarity search)\nRDKit molecular properties (MW, logP, TPSA, HBD/HBA, rotatable bonds, aromatic rings)\n2D molecule visualization (PNG/SVG)\nBRICS retrosynthesis with recursive depth control\nMulti-step synthesis route planning\nForward reaction simulation with SMARTS templates\nMorgan fingerprints and similarity/substructure search\n21 named reaction templates (Suzuki, Heck, Grignard, Wittig, Diels-Alder, etc.)"
      },
      {
        "title": "Quick Start",
        "body": "# PubChem compound info\nexec python scripts/query_pubchem.py --compound \"aspirin\" --type info\n\n# Molecular properties from SMILES\nexec python scripts/rdkit_mol.py --smiles \"CC(=O)Oc1ccccc1C(=O)O\" --action props\n\n# Retrosynthesis\nexec python scripts/rdkit_mol.py --target \"CC(=O)Oc1ccccc1C(=O)O\" --action retro --depth 2\n\n# Full chain (name → props + draw + retro)\nexec python scripts/chain_entry.py --input-json '{\"name\": \"caffeine\", \"context\": \"user\"}'"
      },
      {
        "title": "scripts/query_pubchem.py",
        "body": "PubChem REST API queries with automatic name→CID resolution and timeout handling.\n\n--compound <name|CID> --type <info|structure|synthesis|similar> [--format smiles|inchi|image|json] [--threshold 80]\n\ninfo: Formula, MW, IUPAC name, InChIKey (JSON)\nstructure: SMILES, InChI, image URL, or full JSON\nsynthesis: Synonyms/references for a compound\nsimilar: Similar compounds by 2D fingerprint (top 20)"
      },
      {
        "title": "scripts/rdkit_mol.py",
        "body": "RDKit cheminformatics engine. Resolves names via PubChem automatically.\n\n--smiles <SMILES> --action <props|draw|fingerprint|similarity|substruct|xyz|react|retro|plan>\n\nActionDescriptionKey ArgspropsMW, logP, TPSA, HBD, HBA, rotB, aromRings--smilesdraw2D PNG/SVG (300×300)--smiles --output file.png --format png|svgretroBRICS recursive retrosynthesis--target <SMILES|name> --depth NplanMulti-step retro route--target <SMILES|name> --steps NreactForward reaction via SMARTS--reactants \"smi1 smi2\" --smarts \"<SMARTS>\"fingerprintMorgan fingerprint bitvector--smiles --radius 2similarityTanimoto similarity scoring--query_smiles --target_smiles \"smi1,smi2\"substructSubstructure matching--query_smiles --target_smiles \"smi1,smi2\"xyz3D coordinates (MMFF optimized)--smiles"
      },
      {
        "title": "scripts/chain_entry.py",
        "body": "Standard agent chain interface. Accepts {\"smiles\": \"...\", \"context\": \"...\"} or {\"name\": \"...\", \"context\": \"...\"}. Returns unified JSON with props, visualization, and retrosynthesis.\n\npython scripts/chain_entry.py --input-json '{\"name\": \"sotorasib\", \"context\": \"user\"}'\n\nOutput schema:\n\n{\n  \"agent\": \"chemistry-query\",\n  \"version\": \"1.4.0\",\n  \"smiles\": \"<canonical>\",\n  \"status\": \"success|error\",\n  \"report\": {\"props\": {...}, \"draw\": {...}, \"retro\": {...}},\n  \"risks\": [],\n  \"viz\": [\"path/to/image.png\"],\n  \"recommend_next\": [\"pharmacology\", \"toxicology\"],\n  \"confidence\": 0.95,\n  \"warnings\": [],\n  \"timestamp\": \"ISO8601\"\n}"
      },
      {
        "title": "scripts/templates.json",
        "body": "21 named reaction templates with SMARTS, expected yields, conditions, and references. Includes: Suzuki, Heck, Buchwald-Hartwig, Grignard, Wittig, Diels-Alder, Click, Sonogashira, Negishi, and more."
      },
      {
        "title": "Chaining",
        "body": "Name → Full Profile: chain_entry.py with {\"name\": \"ibuprofen\"} → props + draw + retro\nChemistry → Pharmacology: Output feeds directly into pharma-pharmacology-agent\nRetro + Viz: Get precursors, then draw each one\nSuzuki Test: --action react --reactants \"c1ccccc1Br c1ccccc1B(O)O\" --smarts \"[c:1][Br:2].[c:3][B]([c:4])(O)O>>[c:1][c:3]\""
      },
      {
        "title": "Tested With",
        "body": "All features verified end-to-end with RDKit 2024.03+:\n\nMoleculeSMILESTests PassedCaffeineCN1C=NC2=C1C(=O)N(C(=O)N2C)Cinfo, structure, props, draw, retro, plan, chainAspirinCC(=O)Oc1ccccc1C(=O)Oinfo, structure, props, draw, retro, plan, chainSotorasibPubChem name lookupinfo, structure, props, draw, retro, chainIbuprofenPubChem name lookupinfo, structure, props, chainInvalid SMILESXXXINVALIDGraceful JSON errorEmpty input{}Graceful JSON error"
      },
      {
        "title": "Resources",
        "body": "references/api_endpoints.md — PubChem API endpoint reference and rate limits\nscripts/rdkit_reaction.py — Legacy reaction module\nscripts/chembl_query.py, scripts/pubmed_search.py, scripts/admet_predict.py — Additional query modules"
      },
      {
        "title": "Changelog",
        "body": "v1.4.0 (2026-02-14)\n\nFixed PubChem SMILES/InChI endpoint (property/CanonicalSMILES/TXT)\nFixed chain_entry.py HTML entity corruption\nFixed brics_retro to handle BRICSDecompose string output correctly\nAdded request timeouts (15s) to all PubChem calls\nGraceful error handling for invalid SMILES and empty input\nUpdated chain output version and schema\nComprehensive end-to-end testing\n\nv1.3.0\n\nRDKit props NoneType fixes, invalid SMILES graceful errors\nReact fix: ReactionFromSmarts import\nName resolution via PubChem for all RDKit actions\n\nv1.2.0\n\nBRICS retrosynthesis + 21 reaction templates library\nMulti-step synthesis planning"
      }
    ],
    "body": "Chemistry Query Agent v1.4.0\nOverview\n\nFull-stack chemistry toolkit combining PubChem data retrieval with RDKit molecule processing, visualization, analysis, retrosynthesis, and synthesis planning. All outputs are structured JSON for easy downstream chaining. Generates PNG/SVG images on demand.\n\nKey capabilities:\n\nPubChem compound lookup (info, structure, synthesis refs, similarity search)\nRDKit molecular properties (MW, logP, TPSA, HBD/HBA, rotatable bonds, aromatic rings)\n2D molecule visualization (PNG/SVG)\nBRICS retrosynthesis with recursive depth control\nMulti-step synthesis route planning\nForward reaction simulation with SMARTS templates\nMorgan fingerprints and similarity/substructure search\n21 named reaction templates (Suzuki, Heck, Grignard, Wittig, Diels-Alder, etc.)\nQuick Start\n# PubChem compound info\nexec python scripts/query_pubchem.py --compound \"aspirin\" --type info\n\n# Molecular properties from SMILES\nexec python scripts/rdkit_mol.py --smiles \"CC(=O)Oc1ccccc1C(=O)O\" --action props\n\n# Retrosynthesis\nexec python scripts/rdkit_mol.py --target \"CC(=O)Oc1ccccc1C(=O)O\" --action retro --depth 2\n\n# Full chain (name → props + draw + retro)\nexec python scripts/chain_entry.py --input-json '{\"name\": \"caffeine\", \"context\": \"user\"}'\n\nScripts\nscripts/query_pubchem.py\n\nPubChem REST API queries with automatic name→CID resolution and timeout handling.\n\n--compound <name|CID> --type <info|structure|synthesis|similar> [--format smiles|inchi|image|json] [--threshold 80]\n\ninfo: Formula, MW, IUPAC name, InChIKey (JSON)\nstructure: SMILES, InChI, image URL, or full JSON\nsynthesis: Synonyms/references for a compound\nsimilar: Similar compounds by 2D fingerprint (top 20)\nscripts/rdkit_mol.py\n\nRDKit cheminformatics engine. Resolves names via PubChem automatically.\n\n--smiles <SMILES> --action <props|draw|fingerprint|similarity|substruct|xyz|react|retro|plan>\n\nAction\tDescription\tKey Args\nprops\tMW, logP, TPSA, HBD, HBA, rotB, aromRings\t--smiles\ndraw\t2D PNG/SVG (300×300)\t--smiles --output file.png --format png|svg\nretro\tBRICS recursive retrosynthesis\t--target <SMILES|name> --depth N\nplan\tMulti-step retro route\t--target <SMILES|name> --steps N\nreact\tForward reaction via SMARTS\t--reactants \"smi1 smi2\" --smarts \"<SMARTS>\"\nfingerprint\tMorgan fingerprint bitvector\t--smiles --radius 2\nsimilarity\tTanimoto similarity scoring\t--query_smiles --target_smiles \"smi1,smi2\"\nsubstruct\tSubstructure matching\t--query_smiles --target_smiles \"smi1,smi2\"\nxyz\t3D coordinates (MMFF optimized)\t--smiles\nscripts/chain_entry.py\n\nStandard agent chain interface. Accepts {\"smiles\": \"...\", \"context\": \"...\"} or {\"name\": \"...\", \"context\": \"...\"}. Returns unified JSON with props, visualization, and retrosynthesis.\n\npython scripts/chain_entry.py --input-json '{\"name\": \"sotorasib\", \"context\": \"user\"}'\n\n\nOutput schema:\n\n{\n  \"agent\": \"chemistry-query\",\n  \"version\": \"1.4.0\",\n  \"smiles\": \"<canonical>\",\n  \"status\": \"success|error\",\n  \"report\": {\"props\": {...}, \"draw\": {...}, \"retro\": {...}},\n  \"risks\": [],\n  \"viz\": [\"path/to/image.png\"],\n  \"recommend_next\": [\"pharmacology\", \"toxicology\"],\n  \"confidence\": 0.95,\n  \"warnings\": [],\n  \"timestamp\": \"ISO8601\"\n}\n\nscripts/templates.json\n\n21 named reaction templates with SMARTS, expected yields, conditions, and references. Includes: Suzuki, Heck, Buchwald-Hartwig, Grignard, Wittig, Diels-Alder, Click, Sonogashira, Negishi, and more.\n\nChaining\nName → Full Profile: chain_entry.py with {\"name\": \"ibuprofen\"} → props + draw + retro\nChemistry → Pharmacology: Output feeds directly into pharma-pharmacology-agent\nRetro + Viz: Get precursors, then draw each one\nSuzuki Test: --action react --reactants \"c1ccccc1Br c1ccccc1B(O)O\" --smarts \"[c:1][Br:2].[c:3][B]([c:4])(O)O>>[c:1][c:3]\"\nTested With\n\nAll features verified end-to-end with RDKit 2024.03+:\n\nMolecule\tSMILES\tTests Passed\nCaffeine\tCN1C=NC2=C1C(=O)N(C(=O)N2C)C\tinfo, structure, props, draw, retro, plan, chain\nAspirin\tCC(=O)Oc1ccccc1C(=O)O\tinfo, structure, props, draw, retro, plan, chain\nSotorasib\tPubChem name lookup\tinfo, structure, props, draw, retro, chain\nIbuprofen\tPubChem name lookup\tinfo, structure, props, chain\nInvalid SMILES\tXXXINVALID\tGraceful JSON error\nEmpty input\t{}\tGraceful JSON error\nResources\nreferences/api_endpoints.md — PubChem API endpoint reference and rate limits\nscripts/rdkit_reaction.py — Legacy reaction module\nscripts/chembl_query.py, scripts/pubmed_search.py, scripts/admet_predict.py — Additional query modules\nChangelog\n\nv1.4.0 (2026-02-14)\n\nFixed PubChem SMILES/InChI endpoint (property/CanonicalSMILES/TXT)\nFixed chain_entry.py HTML entity corruption\nFixed brics_retro to handle BRICSDecompose string output correctly\nAdded request timeouts (15s) to all PubChem calls\nGraceful error handling for invalid SMILES and empty input\nUpdated chain output version and schema\nComprehensive end-to-end testing\n\nv1.3.0\n\nRDKit props NoneType fixes, invalid SMILES graceful errors\nReact fix: ReactionFromSmarts import\nName resolution via PubChem for all RDKit actions\n\nv1.2.0\n\nBRICS retrosynthesis + 21 reaction templates library\nMulti-step synthesis planning"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Cheminem/chemistry-query",
    "publisherUrl": "https://clawhub.ai/Cheminem/chemistry-query",
    "owner": "Cheminem",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/chemistry-query",
    "downloadUrl": "https://openagent3.xyz/downloads/chemistry-query",
    "agentUrl": "https://openagent3.xyz/skills/chemistry-query/agent",
    "manifestUrl": "https://openagent3.xyz/skills/chemistry-query/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/chemistry-query/agent.md"
  }
}