dsh-landscape

by cyanseek

2 工作流与自动化github 检测到 manifest package.json#dsh收录于 08-16

以代理为中心的DeepSeek Harness插件智能:验证现有插件,识别缺失功能,生成可构建概要。

Agent-first DeepSeek Harness plugin intelligence: verify existing plugins, identify missing capabilities, and generate build-ready briefs.

安装

dsh plugin --profile web add github:cyanseek/dsh-landscape

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English · 网站 · 路线图 · 参与贡献

CI Node.js >= 22 License: MIT

给 DeepSeek Harness 加能力之前,先问 Landscape。

DSH Landscape 是一个只读的能力变更前置检查:用一句自然语言描述变更,在安装、替换、升级、组合或开发之前,先得到有证据支持的决策。

可以直接这样问:

  • “我该安装浏览器自动化,还是现有能力已经覆盖?”
  • “比较一下适合当前 DSH 的 GitHub 集成。”
  • “替换现在的搜索插件会不会丢能力?”
  • “准备开发 Linear 集成前,先告诉我哪些部分不要重复做。”

不需要 Landscape 账号,不需要 API Key,不需要初始化,也没有必填配置。即使运行环境检查或在线发现不可用,Landscape 仍会使用内置快照继续分析,并明确说明哪些信息没有核实。

快速开始

把固定 revision、可复现的 DSH bundle 安装到已有 Profile:

dsh plugin --profile web add github:cyanseek/dsh-landscape#2d3570aadbbd291dbfc58e2484e287bd14fa92e0

然后像平常一样直接问 DSH:

添加浏览器自动化之前,先检查当前环境和生态。告诉我该用什么、哪些不要重复开发,以及最安全的下一步。

原生工具名称是 dsh_landscape。Landscape 自身不需要 Profile 路径或设置;--profile web 只属于 DSH 的插件安装命令,请换成你已经在使用的 Profile。

一次 Preflight 会给出什么

下面是基于内置生态快照的精简示例:

DSH 能力变更前置检查

需求
给我的 DSH 添加浏览器自动化。

当前环境
UNAVAILABLE — 没有运行时清单,但生态分析继续完成

现有覆盖
证据结论:CROWDED
- titanwings/dsh-automation — installable
- titanwings/dsh-better-browser — prototype

风险
- UNKNOWN:当前入口看不到已安装状态和兼容性。

决策
INSTALL

不要重复开发
- 已有成熟实现覆盖的自动化部分。

仅需新建
- 无。

下一步
先审阅领先项目的证据与安装说明;只有范围匹配时才执行变更。

结果是建议,不是自动操作。Landscape 不会安装、启用、禁用、升级、卸载、修改 Profile 或创建仓库。

为什么要先运行?

  • 在投入实现前看到相关 DSH 插件和可移植能力。
  • 区分占位项目、原型、可安装项目和有测试证据的实现。
  • 当宿主安全提供信息时,检查当前运行时清单。
  • 如实呈现重复项、兼容性未知、证据过期和发现不完整,不编造确定性。
  • 给出一个直接动作:USE、INSTALL、COMPOSE、EXTEND、BUILD、WAIT、DISABLE 或 INVESTIGATE。
  • 为下一位 Agent 或开发者保留清楚的 Do Not Build 和 Build Only 边界。

其他使用方式

Agent Skill

无需永久安装,单次使用:

npx -y skills use cyanseek/dsh-landscape --skill dsh-landscape --agent codex

也可以安装可移植 Skill:

npx -y skills add cyanseek/dsh-landscape --skill dsh-landscape -g -a codex -y

Skill 会在 DSH 能力变更或开发之前先执行 Preflight,并复用宿主 Agent 做语义复核。

CLI

直接传入需求,不需要选择模式:

npx -y github:cyanseek/dsh-landscape "Should I install browser automation for DSH?"

兼容的显式工作流继续保留:

npx -y github:cyanseek/dsh-landscape find "browser automation"
npx -y github:cyanseek/dsh-landscape analyze "Linear integration for DSH"
npx -y github:cyanseek/dsh-landscape brief "Linear integration for DSH" --format agent
npx -y github:cyanseek/dsh-landscape status --json

analyze、find、brief 及其现有参数,以及诊断用的 status 都继续支持。项目目前不宣传已发布到 npm;以上命令运行的是经过验证的 GitHub 源码。

正常 Preflight 不需要这些配置。只有独立 CLI 调用者明确需要 provider 语义分析时,才需要选择兼容端点:

export DSH_LANDSCAPE_API_KEY="your-key"
export DSH_LANDSCAPE_BASE_URL="https://your-provider.example/v1"
export DSH_LANDSCAPE_MODEL="your-model"
npx -y github:cyanseek/dsh-landscape analyze "Linear integration for DSH"

凭据值绝不会进入 Landscape 输出。

验证或移除 DSH 插件

dsh --profile web --dump-config
dsh plugin --profile web remove dsh-landscape

稳定结果约定

Preflight 只增加字段,不删除 v1 证据合同:

  • intent:从自然语言需求自动推断;
  • environment:状态为 detected、partial、unavailable 或 not-applicable;
  • decision、risks、doNotBuild、buildOnly、nextAction 和 limitations;
  • 原有 verdict、recommendation、confidence、matches、已覆盖/缺失能力、证据、新鲜度、intelligence 和 provisional 标记。

旧 consumer 可以直接忽略新字段。否定结论仍然保守:发现不完整、快照过期、现场核验失败或 search-only 不确定性都不能确认真实 GAP。

使用入口

入口 最适合 环境视图
DSH 插件 Harness 会话中的原生 Preflight 尽力提供只读运行时摘要
Agent Skill Agent 变更或开发能力前的检查 由宿主决定,失败时安全降级
CLI 自然语言检查、自动化、JSON 与 brief 没有宿主输入时只分析生态
Node API 应用集成 调用方提供,否则 unavailable
静态站/API 浏览器安全的快照探索 not-applicable

Node API

import { analyzeNeed, loadAliases, loadSnapshot } from 'dsh-landscape'

const [{ snapshot }, aliasData] = await Promise.all([loadSnapshot(), loadAliases()])
const result = await analyzeNeed('Should we build browser automation?', {
  snapshot,
  aliasData,
})

console.log(result.decision, result.nextAction)

版本化静态数据 API 生成在 site/api/v1 下。

可信与安全边界

  • 发现过程只读取有来源标记的公开元数据,不执行发现到的仓库代码。
  • 成熟度标签需要可观察证据;仓库名称和 README 自述本身不能证明能力可用。
  • 运行环境检查尽力而为且只读;宿主信息缺失会成为 limitation,不会变成配置提示。
  • 环境输出排除本机绝对路径、凭据值、插件配置和原始检查错误。
  • 默认不把 archived 项目计入活跃竞争;fork 会被标记并降低排序。

当前限制

  • DeepSeek Harness 仍是 developer preview,可能引入破坏性变化。
  • 公共发现无法覆盖所有 GitHub、npm、私有或本地项目。
  • 当前公共运行时入口可能不提供活动 Profile、DSH 版本、bundle 来源或 peer compatibility;Landscape 会把这些信息标为 unknown。
  • 基于 metadata 的成熟度判断刻意保守,不能代替运行时验收。
  • 静态网站是 search-only 入口;需要宿主感知的判断时请使用 DSH 或 Agent Skill。

开发

需要 Node.js 22 或更高版本。项目没有运行时依赖,GitHub 插件安装也不会运行生命周期构建脚本。

npm run release:check
npm pack --dry-run

提交事实修改前请阅读 参与贡献、安全策略 和 issue forms。

许可证

MIT © 2026 cyanseek

原始 README: https://github.com/cyanseek/dsh-landscape/blob/main/README.zh-CN.md ↗