Monorepo 布局
目录职责与本机映射契约
按职责划边界
已证实:仓库已包含 AI Video Editor 的 SkillPack 文本基线;运行目录独立存在。目录边界用于审查与追溯,不构成 Frevana 官方安装或同步协议。
| 路径 | 职责 | 维护规则 |
|---|---|---|
apps/<app-id>/skillpack/ | 经审查的 App 源码与配置候选 | 一个 App 一个边界,范围见 IMPORT;不混入运行状态 |
specs/<app-id>/<change-id>/ | 需求、方案、任务、盘点与验证 | 每项能力须指向对应证据,不按站点路由复制规格 |
HANDOFF/<app-id>.md | 持续交接与当前状态 | 稳定 App ID 对应同一个文件,保留历史并明确后续校正 |
docs/ | 入门、架构与交付工作流 | 权威正文,先改这里再生成站点投影 |
docs-site/ | 展示、导航与 Mermaid 渲染 | 不建立第二套事实;生成物与依赖不提交 |
registry.json | 稳定 App 索引 | 仓库内部 schema,不存运行实例路径 |
apps.local.json.example | 本机映射示例 | 实际 apps.local.json 被忽略,人工核对实例与路径 |
tooling/ | 后续校验与交付工具约定 | 未验证:目前无 App 同步命令或配置加载器 |
../agent-app/ | 仓库外原始资料区 | 保留原样;引用时区分先验与当前结论 |
前端规划目录(尚未落地)
以下是目标,不代表已有包或可执行命令;首轮只做独立 host-hello。ai-video-editor 保留为测试基线,不迁移、不维护。
| 规划路径 | 职责 |
|---|---|
| 根 package.json / package-lock.json | 私有 npm workspaces 与统一锁;docs-site 保持独立安装边界 |
packages/ui/ | @frevana/ui,shadcn Base UI 组件与样式 |
packages/host-sdk/ | @frevana/host-sdk,Host 类型、能力检测与薄封装 |
apps/<app-id>/web/ | App 独立 React 源码、Vite/TS 配置;首轮 host-hello |
tooling/app-build/ | 公共构建、产物集合与资源清单检查;单文件打包可选 |
.build/<app-id>/ | 临时产物与凭据;实现时加入忽略规则,不交付 |
apps/<app-id>/skillpack/ 内的 UI 产物与资源清单 | 经审查的 HTML/CSS/JS 与资产集合,可按需 chunk/懒加载;按清单逐文件提升,不清空 SkillPack,不覆盖 data/app-files/会话等状态 |
当前精简目录
agent-apps/
apps/ai-video-editor/skillpack/ # 文本基线与 IMPORT.md
specs/ai-video-editor/001-delivery-baseline/
HANDOFF/ai-video-editor.md
docs/ # 权威设计正文
docs-site/content/docs/ # MDX 投影与导航
tooling/
registry.json
apps.local.json.example索引与本机映射契约
registry.json 的 schemaVersion、project、apps 是本仓约定;App 的 id 唯一,path、handoff、specs 指向仓库记录。当前 status: scaffold 是尚未更新的索引值,不能据此否认已导入文本基线,也不能用它判断交付验收。
映射示例以稳定 ID 为键,通过 runtimeType、runtimeId、runtimeRoot 人工定位实例。未知:跨机器或 Vibe 转 Team 的自动迁移规则;换目标必须重新核验,不能凭名称推断身份。忽略规则只减少误提交,不替代逐文件审查。
共享包已按 前端栈拍板,尚未实现;编排系统仍按实际需要另议。共享仅在构建期,交付到 App 的资源须落在其自包含边界内。系统关系见 系统架构。