Context
目前 PickFix 的元素点选能力主要基于 HTML 标签、class、id、selector、rect、htmlHint 等运行时 DOM 信息。
这对简单 UI 修改已经有帮助,但在真实项目中,仅靠 HTML 信息并不总是足够。为了让 AI agent 更精准地修改代码,PickFix 需要知道被点选元素对应的源码位置,例如组件文件、行列信息、组件名等。
Next.js 和 Nuxt 是当前项目已有示例支持的两个框架,因此可以优先探索对应插件能力。
Goals and non-goals
Goals:
- 提供 Next.js 插件,增强元素到源码文件的映射能力。
- 提供 Nuxt 插件,增强元素到源码文件的映射能力。
- 在点选元素时,为 agent 提供更精准上下文:
- source file
- line / column
- component name
- framework metadata
- 保持 PickFix 对目标项目尽量低侵入。
Non-goals:
- 本 Issue 不要求一次性支持所有框架。
- 本 Issue 不要求完美覆盖所有构建模式。
- 本 Issue 不直接实现 Vite / Astro 插件。
Proposed design
初步方向:
- 为 Next.js 提供 PickFix 插件或开发期增强能力。
- 为 Nuxt 提供 PickFix module/plugin。
- 在开发模式下给 DOM 注入额外 metadata,例如:
data-pf-source-file
data-pf-source-line
data-pf-component
- bridge 在点选元素时读取这些 metadata。
- web UI 和 agent prompt 使用这些源码信息生成更精准上下文。
Trade-offs and risks
- 不同框架、构建工具、React/Vue 编译链路差异较大。
- Source mapping 可能受开发模式、生产构建、minify、HMR 影响。
- 插件会增加目标项目集成成本。
- 需要避免泄露敏感源码路径到不可信环境。
Affected packages
Rollout plan
- 先调研 Next.js dev overlay / source metadata 可行性。
- 设计统一 metadata schema。
- 实现 Next.js prototype。
- 实现 Nuxt prototype。
- 更新 bridge element metadata。
- 更新 agent prompt,让源码位置进入上下文。
- 增加 examples 和文档。
Context
目前 PickFix 的元素点选能力主要基于 HTML 标签、class、id、selector、rect、htmlHint 等运行时 DOM 信息。
这对简单 UI 修改已经有帮助,但在真实项目中,仅靠 HTML 信息并不总是足够。为了让 AI agent 更精准地修改代码,PickFix 需要知道被点选元素对应的源码位置,例如组件文件、行列信息、组件名等。
Next.js 和 Nuxt 是当前项目已有示例支持的两个框架,因此可以优先探索对应插件能力。
Goals and non-goals
Goals:
Non-goals:
Proposed design
初步方向:
data-pf-source-filedata-pf-source-linedata-pf-componentTrade-offs and risks
Affected packages
Rollout plan