{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"biociao-dsh-science","slug":"biociao-dsh-science","rank":159,"url":"https://github.com/biociao/dsh-science","name":"biociao/dsh-science","category":"workflow","description":{"zh":"面向 DSH 的 Claude Science 式科研工作台：ReAct 研究循环引擎（research_* 工具）、带溯源的版本化工件（artifact_* 工具）与面向基因组/病原体/生物信息的 10 个科研技能。","en":"Claude Science-style research workbench: ReAct research-loop engine (research_* tools), versioned artifacts with provenance (artifact_* tools), and 10 science skills for genomics/pathogens/bioinformatics."},"stars":24,"starsCheckedAt":"2026-08-21","repository":{"owner":"biociao","repo":"dsh-science","requestedRef":null,"subpath":""},"npm":"dsh-science","downloads":647,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-science","tarball":null,"added":"2026-08-14","page":"https://awesome-dsh-plugin.com/p/biociao/dsh-science/","screenshots":["https://raw.githubusercontent.com/biociao/dsh-science/main/assets/screenshots/research-loop.png","https://raw.githubusercontent.com/biociao/dsh-science/main/assets/screenshots/artifact-provenance.png","https://raw.githubusercontent.com/biociao/dsh-science/main/assets/screenshots/research-report.png","https://raw.githubusercontent.com/biociao/dsh-science/main/assets/screenshots/remote-compute.png"],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"biociao-dsh-science","slug":"biociao-dsh-science","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-21T13:16:34.388Z","scanStatus":"static-complete","verdict":"caution","score":89,"commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","commitDate":"2026-08-18T17:50:02+08:00","artifactDigest":"sha256:9276163044b649d09dc26ef77b8fe62101ca56f13c6c9d7fadfc2c967dcb1073","downloadUrl":"https://github.com/biociao/dsh-science/archive/23767ab2f8d7bcf84a0820daa4c6ae79549da000.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-science","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-science","packageVersion":"0.2.0","bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings"]},"lifecycleScripts":{},"peerDependencies":[]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-science","manifestName":"dsh-science","nameMatch":true,"npm":{"name":"dsh-science","latestVersion":"0.2.0","publishedAt":"2026-08-18T09:51:32.296Z","createdAt":"2026-08-14T03:14:11.420Z","versionCount":3,"maintainers":1,"repository":"git+https://github.com/biociao/dsh-science.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"science-research-loop","name":"dsh-science/engines/research-loop.mjs","path":"cordis.patch.yml","disabled":false},{"id":"science-artifact-registry","name":"dsh-science/engines/artifact-registry.mjs","path":"cordis.patch.yml","disabled":false},{"id":"science-remote-compute","name":"dsh-science/engines/remote-compute.mjs","path":"cordis.patch.yml","disabled":false},{"id":"science-remote-hosts-ui","name":"dsh-science","path":"cordis.patch.yml","disabled":false},{"id":"model-tier","name":"dsh-model-tier","path":"cordis.patch.yml","disabled":false},{"id":"model-tier-ui","name":"dsh-model-tier/engines/model-tier-ui.mjs","path":"cordis.patch.yml","disabled":false},{"id":"model-tier","name":"dsh-model-tier","path":"packages/dsh-model-tier/cordis.patch.yml","disabled":false},{"id":"model-tier-ui","name":"dsh-model-tier/engines/model-tier-ui.mjs","path":"packages/dsh-model-tier/cordis.patch.yml","disabled":false}],"overrides":[{"id":"persona","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-persona","keys":["text"],"path":"preset/agent.cordis.yml"},{"id":"agent-instructions","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-agent-instructions","keys":["maxBytes"],"path":"preset/agent.cordis.yml"},{"id":"science-research-loop","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"./engines/research-loop.mjs","keys":[],"path":"preset/agent.cordis.yml"},{"id":"science-artifact-registry","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"./engines/artifact-registry.mjs","keys":[],"path":"preset/agent.cordis.yml"},{"id":"science-remote-compute","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"./engines/remote-compute.mjs","keys":["requireApproval","requireHostAccess"],"path":"preset/agent.cordis.yml"},{"id":"tool-bash","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-bash","keys":[],"path":"preset/agent.cordis.yml"},{"id":"tool-pwsh","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-pwsh","keys":[],"path":"preset/agent.cordis.yml"},{"id":"tool-fs","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-fs","keys":[],"path":"preset/agent.cordis.yml"},{"id":"tool-fs-search","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-fs-search","keys":["sampleOverCapGlobResults"],"path":"preset/agent.cordis.yml"},{"id":"tool-jobs","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-jobs","keys":[],"path":"preset/agent.cordis.yml"},{"id":"skill-filesystem","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-skill-filesystem","keys":[],"path":"preset/agent.cordis.yml"},{"id":"tool-skill","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-skill","keys":[],"path":"preset/agent.cordis.yml"},{"id":"tool-goal","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-goal","keys":[],"path":"preset/agent.cordis.yml"},{"id":"planning","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"cordis:group","keys":["0"],"path":"preset/agent.cordis.yml"},{"id":"compaction","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"cordis:group","keys":["0","1","2"],"path":"preset/agent.cordis.yml"},{"id":"delegation","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"cordis:group","keys":["0","1","2","3","4","5","6","7","8"],"path":"preset/agent.cordis.yml"},{"id":"tool-ask-user","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-ask-user","keys":[],"path":"preset/agent.cordis.yml"},{"id":"tool-todo","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-todo","keys":["allowParallelInProgress"],"path":"preset/agent.cordis.yml"},{"id":"tool-web","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-web","keys":["fetch","searchTimeoutMs"],"path":"preset/agent.cordis.yml"}],"jsExpressions":2,"clientPlatform":"web","parseErrors":[]},"capabilities":["agent-control","browser-ui","credentials","environment","filesystem","host-bundle","network","subprocess"],"outboundHosts":[],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"engines/remote-compute.mjs","pathClass":"source","line":36,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"1622b6cc132d7af1d2796662"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"engines/remote-hosts-ui.mjs","pathClass":"source","line":17,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"c7c882e4ccdadbcec4f8d5c9"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"preset/agent.cordis.yml","pathClass":"cordis","line":134,"evidence":"!!js process.platform === 'win32'","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"541a3bc7aefc4264ec0cefea"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"preset/agent.cordis.yml","pathClass":"cordis","line":138,"evidence":"!!js process.platform !== 'win32'","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"772fe3b8a0fae772caef4d8c"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"preset/engines/remote-compute.mjs","pathClass":"source","line":36,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"cdc04999a5c87cc624dca08d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/patch-session-isolation.mjs","pathClass":"source","line":38,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"e75a0d55d0b522cb5cbcf700"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/patch-session-isolation.mjs","pathClass":"source","line":38,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"b19197771ac2ba1eff3f7fbc"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":96,"evidence":"override: id=agent-instructions name=@deepseek-ai/dsh-agent-instructions config[maxBytes]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 Agent 指令（agent-instructions）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"72f47d4d87a3820c0ce8e5ac"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":131,"evidence":"override: id=tool-bash name=@deepseek-ai/dsh-tool-bash","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 Bash 工具（tool-bash）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"271ef2b59543daa5ab3cc455"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":135,"evidence":"override: id=tool-pwsh name=@deepseek-ai/dsh-tool-pwsh","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 tool-pwsh；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"b33a19c7febd811333ba5718"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":141,"evidence":"override: id=tool-fs name=@deepseek-ai/dsh-tool-fs","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 文件工具（tool-fs）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"a7c02b38d06620ea9a350679"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":144,"evidence":"override: id=tool-fs-search name=@deepseek-ai/dsh-tool-fs-search config[sampleOverCapGlobResults]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 tool-fs-search；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"348cbdfba96311fb5925d8da"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":151,"evidence":"override: id=tool-jobs name=@deepseek-ai/dsh-tool-jobs","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 tool-jobs；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"807886482b00feb899ac7bee"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":160,"evidence":"override: id=skill-filesystem name=@deepseek-ai/dsh-skill-filesystem","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 skill-filesystem；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"eee1ad252028cdb22ed6f98a"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"preset/agent.cordis.yml","line":162,"evidence":"override: id=tool-skill name=@deepseek-ai/dsh-tool-skill","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 tool-skill；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"cea32e5319d254e0ee2870ca"}],"counts":{"critical":0,"high":0,"medium":10,"low":5},"rawCounts":{"critical":0,"high":0,"medium":10,"low":5},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-missing","vulnerabilities":"lockfile-missing","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":59,"bytesScanned":762462,"truncated":false,"lockfiles":[],"pathClasses":{"test-example-docs":4,"markdown":23,"source":21,"cordis":3,"manifest":2,"script":5,"yaml":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-21T13:16:34.388Z","commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T13:16:15.282Z","commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:21:09.476Z","commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:49:08.577Z","commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","policyVersion":"HT-DSH-0.2.2","at":"2026-08-21T13:16:15.282Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:21:09.476Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"23767ab2f8d7bcf84a0820daa4c6ae79549da000","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:49:08.577Z"}]}