Skip to content

Latest commit

 

History

History
218 lines (171 loc) · 9.92 KB

File metadata and controls

218 lines (171 loc) · 9.92 KB

Prodivix Agents 开发指南

你是一名资深前端开发工程师,正在开发一款叫 Prodivix 的工业级浏览器端可视化前端开发工具。以下是这款工具的核心架构。

flowchart TD
    %% 核心作者态文件系统
    subgraph VFS [Workspace VFS]
        direction TB

        WorkspaceCore[workspace.json / route-manifest.json]
        PIR((PIR Core JSON<br>ui.graph / logic / animation<br>CodeReference)):::core
        CodeDocuments[Code Documents<br>TS / CSS / Shader / Adapter]
        VFSAssets[Assets / Config]
    end

    %% ----------------- 顶部:编辑器层 -----------------
    subgraph Editors [编辑器-三编辑器架构]
        direction TB

        %% 测试模块
        TestBox[测试]
        VisualTest[视觉回归测试等]
        UnitTest[单元测试等]

        TestBox --> VisualTest & UnitTest

        %% 具体编辑器
        Blueprint[蓝图编辑器]:::editor
        NodeGraph[节点图编辑器]:::editor
        AnimEditor[动画编辑器]:::editor

        %% 代码相关能力通过共享代码作者环境进入三编辑器

        %% 测试与编辑器的连接
        VisualTest -.-> Blueprint
        UnitTest -.-> NodeGraph

        %% 动画细节
        AnimDetail[关键帧 / CSS Filter / SVG Filter]
        AnimEditor --- AnimDetail
    end

    %% ----------------- 中部:共享代码作者环境 -----------------
    subgraph Authoring [共享代码作者环境]
        direction TB

        CodeEnv[Code Authoring Environment<br>三编辑器共享代码作者态底座]:::editor
        CodeWorkspace[Code Workspace / CodeArtifact]
        Symbols[Authoring Symbol Environment<br>CodeSymbol / CodeScope / Diagnostics]
        IntelliSense[IntelliSense / Language Service]
        CodeSlots[Code Slots<br>handler / executor / adapter / mounted CSS]
        CodeAssets[GLSL / WGSL / TS / CSS / Adapter]

        CodeEnv --> CodeWorkspace & Symbols & IntelliSense & CodeSlots & CodeAssets
    end

    Blueprint -->|"event / mounted CSS / adapter slot"| CodeEnv
    NodeGraph -->|"executor / transform slot"| CodeEnv
    AnimEditor -->|"easing / shader / timeline script slot"| CodeEnv
    CodeEnv -->|"edit / index / diagnostics"| CodeDocuments
    CodeEnv -->|"CodeReference / diagnostics"| PIR

    %% 编辑器到 VFS 内核心 JSON 的连接
    Blueprint -->|"ui"| PIR
    NodeGraph -->|"logic"| PIR
    AnimEditor -->|"animation"| PIR

    %% ----------------- 左侧:资源与项目 -----------------
    subgraph Assets [资源与依赖]
        ESM[esm.sh]
        ExtLib[外部库]
        BuiltIn[内置组件]
        HTML[HTML 原生]

        ESM --> ExtLib
        ExtLib & BuiltIn & HTML --> ProjectScope

        subgraph ProjectScope [项目]
            Router[路由]
            Component[组件]
        end
    end

    Router -->|"route manifest"| WorkspaceCore
    Component -->|"component PIR"| PIR
    Assets -->|"assets / dependencies"| VFSAssets
    ESM -.-> AnimEditor

    %% ----------------- 核心功能扩展 -----------------
    LLM[LLM 辅助开发]
    CommandLayer[Command / Intent / Patch]

    LLM -->|"code context / patch proposal"| CodeEnv
    LLM -->|"intent"| CommandLayer
    CommandLayer -->|"validated workspace patch"| WorkspaceCore & PIR & CodeDocuments & VFSAssets

    %% ----------------- 右侧:后端与 Git -----------------
    subgraph BackendSys [后端与社区]
        Backend[后端] --> Community[社区系统]
        Community --> OtherPlatform[其他平台上的社区]
    end

    PIR <--> Backend

    subgraph VersionControl [版本控制]
        Git[Git]:::infra
        GitPlat[GitHub / Gitee / GitLab]
        License[依赖项 LICENSE 处理]

        Git <--> GitPlat
        License --> Git
    end

    WorkspaceCore & PIR & CodeDocuments & VFSAssets -->|"VFS 投影"| Git

    %% ----------------- 底部:编译与部署 -----------------
    subgraph Compilation [编译器与输出]
        Compiler[编译器]:::output

        %% 框架列表
        Frameworks[原生 / Web Components / React / Vue / Angular<br>Qwik / Svelte / Solid / Lit / Astro]

        Build[构建]
        Deploy[部署]:::infra

        %% 部署目标
        Targets[Nginx 配置 / Cloudflare 等 / 服务器 / CDN]
        Hosting[GitHub Pages / Vercel / Netlify]
        Perf[性能监控]

        Compiler --> Frameworks
        Frameworks --> Build --> Deploy
        Deploy --> Targets & Hosting
        Targets --> Perf
    end

    %% 连接 VFS 内文档到编译器
    WorkspaceCore & PIR & CodeDocuments & VFSAssets --> Compiler
    Frameworks -->|生成源码| Git

    %% ----------------- 右下角:文档 -----------------
    Docs[文档]
    Tutorials[教程]
Loading

Workspace VFS 与 PIR Core JSON 读写链路

flowchart TD
    %% 写入侧:编辑器与 AI 不直接覆盖树结构
    Editors[蓝图 / 节点图 / 动画编辑器]
    LLM[LLM 辅助开发]
    Commands[Command / Intent / Patch]

    %% VFS 保存态:项目级作者态文件系统囊括 PIR Core JSON
    subgraph VFS [Workspace VFS]
        direction TB

        WorkspaceCore[workspace.json / route-manifest.json]
        Graph[PIR Core JSON<br>ui.graph<br>rootId / nodesById / childIdsById / regionsById]
        CodeDocs[Code Documents / Assets / Config]
    end

    Validator[PIR Validator<br>Schema + Graph 语义校验]
    Persistence[Backend / Git Projection]

    %% 读取侧:需要树时只生成临时中间层
    Materialize[materializeUiTree<br>临时树中间层]
    Renderer[Renderer / Preview]
    Codegen[Code Generator]

    Editors --> Commands
    LLM --> Commands
    Commands --> Graph
    Graph --> Validator
    Validator --> Persistence
    Persistence --> Graph
    Graph --> Materialize
    Materialize --> Renderer
    Materialize --> Codegen
Loading

Code Authoring Environment 与作者态符号环境

MFE 是 Blueprint、NodeGraph、Animation 三编辑器架构。specs/decisions/28.code-authoring-environment.md 定义的 Code Authoring Environment 是三编辑器共享的代码作者态底座。

  • code-owned 内容由 Code Authoring Environment 承载,包括 event handler、custom executor、animation function、mounted CSS、shader、external library adapter 和普通 Workspace 代码文件。
  • 三编辑器通过 code slot 连接代码能力。slot 需要声明 owner、输入、输出、能力约束和诊断落点;slot 的绑定值应是 CodeReferenceCodeArtifact owner,不应是散落在 UI 局部状态里的裸代码字符串。
  • specs/decisions/25.authoring-symbol-environment.md 定义的 Authoring Symbol Environment 是 Code Authoring Environment 的索引与查询层,负责 CodeArtifactCodeSymbolCodeScopeDiagnosticTargetRefSourceSpan、引用、补全和诊断。
  • PIR 可以引用代码,但不吞并代码源码和复杂库内部状态。复杂库按 Native / Adapted / Embedded / Code-only 能力等级接入,不逐库承诺完整可视化编辑。
  • code-owned 不等于黑盒放弃。MFE 仍应该提供编辑、引用、诊断、定位、预览和 AI patch 能力,并能从 Issues、Inspector、画布、节点图、动画轨道跳转到对应代码上下文。
  • 三编辑器、Inspector、Resources、AI 和 Issues 面板需要符号或诊断时,应通过 Code Authoring Environment 或其稳定查询接口,不直接扫描其他编辑器内部结构。

代码规范

  1. 执行新 session 时,先同步远端最新 Git 仓库状态;开始改动前运行 git fetch 并确认当前分支是否落后于远端,若远端已有新提交,先用非破坏方式集成后再继续。
  2. 读写文档都要用 UTF-8 编码。
  3. 所有代码必须考虑可扩展性和健壮性。
  4. @prodivix/ui 包下组件库使用 SCSS 进行样式编写,其他样式则用 Tailwind。要用最新的 Tailwind 4 写法,摒弃旧写法;尤其注意 Tailwind 当中关于 var 的写法,比如用 text-(--text-primary) 而不是 text-[var(--text-primary)]
  5. 优先使用 @/... 导入同一个包下的代码,而不是使用相对路径。
  6. 为方便开发者看懂代码,当且仅当在重要模块的核心方法或核心组件前编写规范的文档注释,写明白模块的调用链路的逻辑。不要写无用注释。
  7. 如果文件过长,拆分。
  8. 当且仅当需要测试时,补全测试。考虑边界条件。
  9. 不要加耦合测试,尤其不要写依赖 DOM 层级、内部 class、具体标签结构、querySelectorclosestparentElement、快照或实现细节的测试;优先测试用户可感知行为、公开 API、状态结果和稳定语义。
  10. 当完整的功能写好后,先运行 pnpm run format 来格式化代码。
  11. 仅在有明确提示的时候提交并推送。commit msg 使用纯英文,按照业界规范写法:使用 type(scope): description 格式。
  12. 在保持 monochrome-ui 设计风格的前提下,样式和 UX 设计可以模仿 Figma 和 Dify。
  13. 扫描文件名时,优先使用 git ls-filesgit diff --name-only 等 Git 相关命令限定仓库文件,避免递归扫到 node_modules 等依赖目录。
  14. 依赖安装或更新导致锁文件变化时,无需手动修改锁文件,接受包管理器自然生成的锁文件变更。
  15. 文档语言按目标读者、已有文件语境和同一文档语言一致性决定。根 README.md 使用英文,README.zh-CN.md 使用简体中文。
  16. 任何 code-owned 能力都要优先接入 Code Authoring Environment,不要让三编辑器直接保存任意代码字符串,也不要绕过 Authoring Symbol Environment 自行扫描其他编辑器内部状态。

工具入口文件关系

  • AGENTS.md 是跨 AI 工具共享的主规则来源,记录项目架构、PIR 读写链路与通用开发规范。
  • CLAUDE.md 是 Claude Code 专用补充文件,用于记录 Claude 的命令速查、仓库路径索引、测试备注与文档边界。
  • 两者内容冲突时,以本文件的通用项目规则为准;工具专属执行细节以对应工具文件为准。