跳到正文

CLI 与部署

Silen 提供一组精简 CLI。通过项目包管理器运行,命令实现与 Agent Contract 就会始终匹配当前安装版本。

主要命令

sh
pnpm silen init docs
pnpm silen dev docs --host 127.0.0.1 --port 5173
pnpm silen build docs
pnpm silen preview docs --port 4173

init <root> 写入起始配置与首页,不替换已有目标;dev [root] 启动基于 Vite 的开发服务;build [root] 校验并生成静态产物;preview [root] 提供包含路由与语言感知 404 的预览。服务命令支持 --host--port,构建命令不会自动部署。

AI 工作区使用独立命令:

sh
pnpm silen ai init docs
pnpm silen ai index docs
pnpm silen ai audit docs
pnpm silen ai eval docs
pnpm silen ai skills ./agent-skills
pnpm silen mcp docs

ai skills 必须指定父目录,只创建 silen-docs-readonly 且绝不覆盖;可选的 MCP Resource 暴露使用 pnpm silen mcp docs --experimental-skills-over-mcp,仍是实验能力 并默认关闭。

MCP 默认只读,只有可信用户显式加入 --allow-write 才会注册写工具。无模型的 ai eval 只读取 .silen/ai-evals.json.silen/dist/search-index.json, CI 使用 --json;它不需要模型、API key、端点、向量服务或网络。

套件 "schemaVersion": 1 保持完整 topK 匹配;版本 2 支持逐案例 expected.maxRank,省略时默认等于 topK,并在保留完整诊断结果的同时 报告 matchedRank

静态部署

docs/.silen/dist 的内容发布到任意静态托管,并让托管平台按生成结果提供 index.html 与资源。例如项目地址为 https://example.github.io/handbook/

ts
export default defineConfig({
  siteUrl: 'https://example.github.io',
  base: '/handbook/',
})

不要在 siteUrl 中重复 /handbook/。构建会组合 origin 与 base,用于 canonical、hreflangx-default 语言替代、站点地图和基础 Open Graph/Twitter 元数据。Markdown 与 Agent Contract URL 仍是 base 相对路径。

上线前检查

仓库维护者只运行一个规范命令:

sh
pnpm site:ai-check

它依次且只执行一次 site:build -> ai audit -> ai eval -> check:no-mapspnpm site:check 只是兼容别名。Core CI、GitHub Pages 与 npm 发布都使用规范命令,audit 或评测失败会阻断部署和发布。

正式 .silen/ai-evals.json 使用 "schemaVersion": 3、显式 maxRank,以及必需的 acceptableforbidden 目标数组。报告保留诊断 topK、稳定的 matchedRank 与禁止命中证据。只要评测器产出了有效 JSON, 每条工作流都会用 always 条件上传 artifacts/ai-eval/site-ai-eval.json,包括检索失败或后续 source map 检查失败的情况。

随后直接预览一个嵌套路由和一个不存在的路由,并检查 llms.txt.well-known/silen/manifest.json。构建成功只证明文件已生成;直接访问才能 证明托管平台按预期 base 提供了它们。

Ask AI 仍然只通过端点接入;未配置端点时,不会出现控件或对应 bundle。

命令语法与排错见参考手册