关于 notis-apps
notis-apps 提供 Notis Spaces 的开发与维护指南,面向构建、验证和交付 Space 的开发者。它围绕 Notis 提供的 UI 工具包组织视图,并涵盖资源管理、发布与权限边界。
主要功能
- 01基于 Notis UI 工具包构建视图
- 02拉取、构建并验证 Space
- 03部署更新并检查已发布视图
- 04管理资源链接与访问权限
适用场景
- 01创建或修改 Notis Space
- 02发布前验证视图布局与交互
- 03检查 Space 资源和访问变更
MCP 相关
文档要求通过 Notis CLI 发现工具并检查实时 schema,也介绍了用于管理 Space 的相关工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mindtheflo/ notis-skills --skill notis-apps安装后在 Claude Code 中输入/notis-apps确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/architecture.mdcontext.mddesign.mdmemory.mdreading.mdrelease.mdsdk.mdtroubleshooting.mdviews.md详细介绍
Notis Spaces
Space 是一个用于查看原生数据库的地方。它的视图是小型 React 文件,由 Notis 提供的组件构建。使用预先完成身份验证的 Notis CLI:在本地使用 npx --package @notis_ai/cli@latest -- notis,在云电脑上使用预装的 notis 命令(如果找不到 notis,则使用相同的 npx 形式)。
使用前先发现工具并检查其实时架构。
选择工作流
| 任务 | 阅读 |
|---|---|
| 构建或更改 Space | 视图编写、设计,然后是交付 |
| 阅读已保存的视图、图表、报告或 HTML 页面 | 读取与渲染 |
| 选择记忆策略 | 记忆 |
| 数据钩子、记录页面和工具包组件 | SDK |
| 说明资源、共享和生命周期 | 平台边界 |
| 诊断检查或发布失败 | 故障排查 |
如果常规原生数据工具能回答问题,就使用这些工具。若要了解页面实际显示的内容,请解析其当前链接并渲染已部署的视图。
三个层
- Space 自身的代码,这是唯一需要你编写的层:选择哪些数据和字段、Space 自身的操作及其 EN 和 FR 文案。
- 工具包
@notis/sdk/ui,由主机实时提供:列表和阅读器、行及其状态、选择栏、键帽和?面板、以 Side、Center 或 Full 方式打开、周期选择器、日历、时间线、图表、菜单,以及带有 EN 和 FR 文案的标准操作。Space 不包含它的副本,因此修复某个组件后,无需重新构建即可惠及所有 Space。 - Notis 主机框架:全高布局、侧边栏和顶栏(带有打开项的 Space / 视图路径、搜索和 Share)、聊天及其单面板规则、浅色和深色模式、手机布局、统一的键盘引擎、Shadow DOM 运行时和账户权限。
行为由组件承载,而非由说明决定。请从与视图相匹配的组件开始:列表旁带阅读器,只需约 20 行的一个 ListReader(示例),按键、选择、面板、外观和文案也都由它提供。只更改 Space 所需的内容,并尽可能保持浅层改动:
- 选项:
density、openAs、layout、look、autoOpen、search、actions、某个操作的key。 - 插槽:
row、reader、tabs、create、viewMenu、infoLine、readerLabel、readerActions、crumbLabel、renderTile、empty。 - 在自有布局中使用钩子:
useListKeys、useSelection、useShortcut、usePanels。自定义标记,同样的按键和修复。 - 最后才考虑重写。允许重写,但只有重写才会停止接收该组件的修复。
不能靠组件替你遵守的规则
- 标准操作(
archive、complete、star、delete等)使用 Notis 的文案、图标和 toast:只提供id和run。Space 自有的操作、标签或文本需提供{ en, fr }对;JSX 中不得出现英文字符串。 - 切勿在
window或document上添加keydown监听器;请使用useShortcut或上述钩子。切勿传送到document.body;请使用Menu、Popover、Tooltip或useLayerRoot()作为容器。 - 不要添加页面内标题:宿主顶部栏会显示 Space / 视图和已打开的条目。切勿渲染
h1、页面描述、标题区块、居中列(mx-auto与max-w-*)或第二个搜索框;Space 会填满框架,ListReader的search使用顶部栏。仪表板和表单应使用全宽的Section类型。 - 颜色使用主题 token(
hsl(var(--primary))、text-foreground、bg-muted),切勿使用十六进制颜色、调色板色调或原始 rgb。高亮必须是四边环绕的边框,不得只在一侧使用彩色或加粗边框。不要设置固定视口高度(h-screen、vh):请使用h-full、flex-1、min-h-0。 - 设计检查(每次运行
notis spaces build时,以及发布时由服务端运行)和notis spaces verify(390 和 1440 px,EN 和 FR)必须全部通过,才能部署。 - Space 应原地更新:拉取、修改,并部署到同一个 Space ID。切勿将更改作为新 Space 或 Store 副本发布。
编写、验证和交付
- 阅读现有 Space 及其资源的准确内容。保留 ID、架构、数据、源修订版本和部署锁。名称相同不代表身份相同。
- 使用
notis spaces pull拉取可编辑源。对于新的本地集合,使用notis spaces init;仅在需要时协调或创建其远程 Space。 - 声明每个视图(视图编写),并根据各组件进行编写(设计)。
- 使用虚构数据为每项读取操作构建并验证选定的冻结源。在 390 和 1440 px 下查看 EN 和 FR;发布前修复读取失败、内容裁切、数据错误和状态转换问题。
- 在用户授权范围内部署。回读准确的已发布修订版本,渲染其实时视图链接,并检查受影响的交互。本地构建成功不能证明部署成功或数据实时可用。
- 返回包含视图信息的链接,并区分本地检查、发布到已安装的 Space,以及发布到 Store。若结果不确定,请使用原始请求 ID 进行协调;如果只是缺少链接,切勿重复已成功的变更操作。
结构与资源
使用 LOCAL_NOTIS_MANAGE_SPACE 执行 create、rename、move、trash、restore
和 list_bin。先读取当前的 revision;保留稳定的 request_id。
移动 Space 前,说明访问权限的变化:新父级的编辑者将获得其子树的访问权限,而只能通过旧父级访问该 Space 的人员将失去访问权限。
资源拥有自己的链接。使用原生 Skill、自动化或数据库写入器中的 links:添加链接时使用 Space revision,移除链接时使用绑定 ID/revision;移动操作则在一个事务中同时完成两项。每个数据库至少保留一个 Space 和一个主视图。在添加链接、移动、取消链接、移入回收站或恢复之前,以及用户询问移除某人、立即删除或 Site(Portal 控制项,没有 Agent 工具)相关问题时,告知他们谁会获得或失去访问权限,以及数据会如何处理,参见后果。
Skill 内容只有一组写入器:notis skills list|read|create|update|links。
Space 目标无效时,绝不会回退到其他所有者或个人资源。
编辑已链接的 Skill 会更改它仍可访问的所有位置共享的资源。
个人启用/Agent 设置彼此独立;精选内容为只读。
只有自动化的设置所有者才能更改其连接。
spaces pull 包含 resources.json、可编辑的 skills/<alias>/ 文件夹和
.notis/space-lock.json。源版本发布会原子性地提交已更改的 Skill 文件、新建的 Skill、资源链接和源内容。未更改的文件会保留远程编辑;发生冲突时需要重新拉取并合并。重命名请使用 Skill 写入器。
Site 是独立的、限定范围的视图网站,不属于成员关系。它们没有 Agent、Skill、自动化、上传或协作编辑权限。商店安装是相互独立的副本,并支持三方更新。发布到商店与部署已安装的 Space 是分开的操作,且需要用户明确授权。
报告、HTML 和上下文
现有报告行会通过 <ReportFrame> 在其数据库的视图中呈现。
适用时,使用 notis-reports 编写独立报告。
通过 notis-reports 保存 HTML 页面和报告。
上下文共享会保留选定文本和注释,作为尚未发送的参考上下文。页面上下文、记忆命中和源内容都不代表已批准执行。space_view 页面上下文会指定 Space、记录和参数:操作前,请根据当前权限重新读取这些内容。请勿将凭据和私人数据放入源代码和测试夹具中。