🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

插件家族官网 PlayForm/Site-DeepSeek

DeepSeek Harness
PlayForm9 天前有提交已提供中文文档扫描:含敏感能力

PlayForm ☁️ 的 DeepSeek 🐳 Harness 插件家族站点

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PlayForm/Site-DeepSeek
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · tool
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@playform/dsh-family-site(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/8 17:41:22

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 41 处,展示前 30 条)
  • 读取本地文件
    Source/Library/Config.server.ts:70
    if (!existsSync(Path)) {
  • 读取本地文件
    Source/Library/Config.server.ts:74
    const Tree = fromMarkdown(readFileSync(Path, "utf8"), {
  • 读取本地文件
    Source/Library/Design.server.ts:117
    for (const Entry of readdirSync(Directory).sort()) {
  • 读取本地文件
    Source/Library/Design.server.ts:120
    if (statSync(Path).isDirectory()) {
  • 读取本地文件
    Source/Library/Design.server.ts:131
    const Source = Strip(readFileSync(Path, "utf8"));
  • 读取本地文件
    Source/Library/Design.server.ts:170
    if (existsSync(Module)) {
  • 读取本地文件
    Source/Library/Design.server.ts:174
    if (existsSync(Beside)) {
  • 读取本地文件
    Source/Library/Design.server.ts:195
    if (!existsSync(Directory)) {
  • 读取本地文件
    Source/Library/Marketplace.server.ts:51
    if (!existsSync(Path)) {
  • 读取本地文件
    Source/Library/Marketplace.server.ts:55
    const Index = JSON.parse(readFileSync(Path, "utf8")) as Manifest;
  • 读取本地文件
    Source/Library/Package.server.ts:74
    existsSync(join(Directory, "Classic", "packages")) &&
  • 读取本地文件
    Source/Library/Package.server.ts:75
    existsSync(join(Directory, "EffectTS", "packages"))
  • 读取本地文件
    Source/Library/Package.server.ts:140
    if (!existsSync(Base)) {
  • 读取本地文件
    Source/Library/Package.server.ts:146
    for (const Entry of readdirSync(Base, { recursive: true, withFileTypes: true })) {
  • 读取本地文件
    Source/Library/Package.server.ts:158
    if (!existsSync(Base)) {
  • 读取本地文件
    Source/Library/Package.server.ts:162
    return readdirSync(Base).filter((Entry) => statSync(join(Base, Entry)).isFile()).length;
  • 读取本地文件
    Source/Library/Release.server.ts:19
    if (!existsSync(Path)) {
  • 读取本地文件
    Source/Library/Release.server.ts:23
    return readFileSync(Path, "utf8")
  • 读取本地文件
    Source/Library/Session.server.ts:67
    if (!existsSync(Root)) return undefined;
  • 读取本地文件
    Source/Library/Session.server.ts:71
    for (const Directory of readdirSync(Root)) {
  • 读取本地文件
    Source/Library/Session.server.ts:74
    if (!statSync(Session).isDirectory()) continue;
  • 读取本地文件
    Source/Library/Session.server.ts:76
    for (const Entry of readdirSync(Session)) {
  • 读取本地文件
    Source/Library/Session.server.ts:79
    if (!existsSync(Path)) continue;
  • 读取本地文件
    Source/Library/Session.server.ts:81
    const Time = statSync(Path).mtimeMs;
  • 执行外部命令固定命令
    Source/Library/Session.server.ts:104
    Text = execFileSync("zstd", ["-dc", Path], { maxBuffer: 256 * 1024 * 1024 }).toString(
  • 读取本地文件
    Source/Library/Surface.server.ts:125
    if (!existsSync(Path)) {
  • 读取本地文件
    Source/Library/Surface.server.ts:129
    const Tree = fromMarkdown(readFileSync(Path, "utf8"), {
  • 发起网络请求
    Target/_astro/ClientRouter.astro_astro_type_script_index_0_lang.BulL7Ou2.js:1
    import{n as t,t as e}from"./prefetch.B7ra_jLX.js";var n="data-astro-transition-persist",o=["data-astro-transition","data-astro-transition-fallback"],r
  • 写入剪贴板
    Target/_astro/CopyButton.QsjrqZiy.js:1
    import{E as t,a,c as e,f as o,n as s,t as c,w as i}from"./web.DyFOflNw.js";var r=o("<button type=button class=copy-button aria-live=polite>"),l=o=>{co
  • 发起网络请求
    Target/_astro/prefetch.B7ra_jLX.js:1
    var e,t={},n=new Set,o=new WeakSet,r=!0,s="hover",a=!1;function c(e){a||(a=!0,r??=e?.prefetchAll??!1,s??=e?.defaultStrategy??"hover",function(){for(co
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 插件家族站点

README

由 DeepSeek 最新模型翻译生成
@playform / DSH Family - Site DeepSeek Harness Plugin Family for PlayForm 的网站——一个 Astro 静态站点,采用「Technical Minimalist Harness」设计:只用蓝白两色,字体 Inter + IBM Plex Mono,标题干净,零立体感(1px 细线,无阴影,无渐变)。 页面 | 路由 | 内容 | | / | 落地页:eyebrow 徽章、hero(使命)、终端安装、操作行、插件网格、版本卡片、flavor 条、模型无关性、记号说明 | | /plugins/ | 十五个插件及其 @ 句式身份、安装片段(npm install 形式,锁定在 v0.1.0 发布版)、可筛选的注册表、pipeline manifest 表、harness 接缝、smoke 基线,以及架构实战卡片 | | /plugins/<name>/ | 十五个插件详情页(每个包一页),内容取自各包的真实文档:安装栏、harness 接缝、Where It Fits、Problem、How It Works、Config、In Action(原样字符)和 Ledger |
展开完整文档(README 剩余 1 节)
@playform / DSH Family - Site

DeepSeek Harness Plugin Family for PlayForm 的网站——一个 Astro 静态站点,采用「Technical Minimalist Harness」设计:只用蓝白两色,字体 Inter + IBM Plex Mono,标题干净,零立体感(1px 细线,无阴影,无渐变)。

页面

| 路由 | 内容 |
| / | 落地页:eyebrow 徽章、hero(使命)、终端安装、操作行、插件网格、版本卡片、flavor 条、模型无关性、记号说明 |
| /plugins/ | 十五个插件及其 @ 句式身份、安装片段(npm install 形式,锁定在 v0.1.0 发布版)、可筛选的注册表、pipeline manifest 表、harness 接缝、smoke 基线,以及架构实战卡片 |
| /plugins/<name>/ | 十五个插件详情页(每个包一页),内容取自各包的真实文档:安装栏、harness 接缝、Where It Fits、Problem、How It Works、Config、In Action(原样字符)和 Ledger |
| /setup/ | 四步配置档设置(bundles 列表、cordis.patch.yml 条目、重启、ledger 校验)、可配置面,以及默认关闭的可选性 |
| /versions/ | 双引擎分发:CLASSIC(纯 TypeScript)vs EFFECT-TS(services & layers),两者均为 0.1.0,共享不变量和 smoke 基线 |
| /flavors/ | 七种 normalize flavor(dash、quotes、ellipsis、spaces、invisible、fullwidth、file)、两种治理角色,以及 11 枚徽章 sprite |
| /models/ | 模型无关的故事:这套家族会归一化任何 LLM 的输出;已在 DeepSeek V4 Flash 和 GLM 5.3 Flash 上实战验证 |
| /workbench/ | 交互式 Stream Gate & Normalization Workbench:实时 raw-vs-clean 终端、flavor 钩子切换台、遥测指标、trace 丝带 |
| /matrix/ | 交互式 Matrix Stream Inspector:原始模型输出与归一化输出对比、flavor 复选框,以及支撑演示规则的 smoke 套件 |

旧的 /products/ 路由已移除(重命名为 /plugins/);失效链接会落到带样式的 /404 页面,该页面列出当前导航。

结构

Source/
Layout/ 布局外壳(Base:页头、页脚、字体、meta) Component/ UI 组件(Badge、Card、SectionHeader、PageHero、Terminal) pages/ Astro 页面(index、plugins、versions、flavors、models、workbench、matrix、plugins/<15 个详情页>) Script/ 客户端脚本 Stylesheet/ 设计系统(Base.css:Tailwind;Global.css:token + 布局) Public/ 原样复制的静态资源(404.html、_headers、Manifest.json、robots.txt、assets/) Target/ 构建出的静态站点(部署产物)

components.json 声明组件别名(./Source/Component、./Source/Layout、 ./Source/pages、./Source/Stylesheet);prettier.config.js 承载格式规范(制表符、宽度 100),安装后会自动检测可选的 Astro/Tailwind 插件。

Source/Stylesheet/Global.css 里的设计 token 和组件样式改编自 Reference 设计系统:--color-primary #003ec7、--color-primary-container #0052ff、白色/近白色表面、--radius-* 刻度、8pt 间距节奏,以及精确的 Inter / IBM Plex Mono 字号阶梯。每个表面边界都是 1px 的 outline-variant 细线。

坑(构建站点时)

构建本站点踩过的工程教训,以及它们在哪里咬人——修正后的结论保留。

- 幽灵图标间距类。 正文旁的行内图标从不依赖源码空白:Astro 的表达式间空白不属于布局契约(表达式内的图标渲染时紧贴相邻单词;行内块盒子旁的源码空格渲染成宽度不可预测的间隙)。图标到文字的间距始终用 CSS token(--gap-icon、.brand-icon 上的 margin-right),绝不用源码空格。
- mermaid 标签限制。 图表流水线(Source/Content/Mermaid/Render.mjs)有硬性限制,.mmd 源文件必须遵守:
- 换行预算——Mermaid 会把每个标签按单词拆成多个 tspan 片段;超出预算的标签会换行(允许作为换行符),而标签存在性法则比较的是单空格形式,所以标签换行后必须保住它的空格。
- 列表标记——以语法形状字符开头的标签会被解析成流程图语法;带引号的形式(["..."] / {"..."})是安全的载体。
- <>/引号限制——标签内的 <、> 和引号必须做实体转义(<、>、");渲染器会解码实体,供存在性法则使用。
- 空格规则。 当 htmlLabels: false 时,Mermaid 把每个换行后的词写成一个 tspan 片段,片段之间用前导空格连接——而 SVG 的空白规则会把前导空格折叠掉,导致单词粘连(“Hook@DSH@Core”),并让测量出的标签框变小。渲染器在渲染时把连接用的空格改写成不换行空格(U+00A0);.mmd 源文件保持纯 ASCII。

- 包含规则。 每个标签的边界框必须完全落在 viewBox 内;如果某个标签超出边界,流水线会让这次渲染失败,而不是交付一张被裁切的图。

- 构建是最终裁判。 每次改动后都跑 pnpm run prepublishOnly(astro build,24 页);开发服务器(pnpm run Run,:9999)提供同一棵目录树。

构建

pnpm install
pnpm run prepublishOnly # astro build → Target/
pnpm run Run # astro dev on :9999

部署 - Cloudflare Pages

站点完全静态(output: "static",outDir: "./Target")。要部署,把 Cloudflare Pages 指向这个仓库:

- 构建命令: pnpm run prepublishOnly
- 构建输出目录: Target/
- 框架预设: 无——这是静态站点。

Git 连接的 Pages 项目无需额外配置即可工作:上面的构建命令和输出目录就是 Pages 需要的全部内容。

Public/_headers 为带内容哈希的 _astro/ 资源提供缓存规则,Public/404.html 提供带样式的未找到页面,Cloudflare Pages 会自动提供它。

路由以目录形式生成(plugins/index.html),Pages 原生支持这种形式。
预览分享卡片长什么样 ↓PlayForm/Site-DeepSeek
分享 · DeepSeek Harness Hub
PlayForm/Site-DeepSeek

PlayForm ☁️ 的 DeepSeek 🐳 Harness 插件家族站点

这是你的仓库?认领条目

回到顶部