mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
0.7.6.3
This commit is contained in:
76
docs/ARCHITECTURE.md
Normal file
76
docs/ARCHITECTURE.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 架构文档 / Architecture
|
||||
|
||||
## 中文
|
||||
|
||||
### 仓库结构
|
||||
|
||||
| 路径 | 角色 |
|
||||
| --- | --- |
|
||||
| `LanMountainDesktop/` | 主桌面宿主应用,包含 UI、服务、组件系统、插件运行时接入 |
|
||||
| `LanMountainDesktop.PluginSdk/` | 官方插件 SDK,定义插件可依赖的公开接口与打包行为 |
|
||||
| `LanMountainDesktop.Shared.Contracts/` | 宿主与插件共享的稳定契约类型 |
|
||||
| `LanMountainDesktop.Appearance/` | 主题、圆角、外观资源相关基础设施 |
|
||||
| `LanMountainDesktop.Settings.Core/` | 设置域、持久化和设置基础抽象 |
|
||||
| `LanMountainDesktop.DesktopHost/` | 桌面宿主流程与生命周期相关逻辑 |
|
||||
| `LanMountainDesktop.DesktopComponents.Runtime/` | 组件运行时支撑能力 |
|
||||
| `LanMountainDesktop.Host.Abstractions/` | 宿主侧抽象接口 |
|
||||
| `LanMountainDesktop.PluginsInstallHelper/` | 插件安装辅助程序与发布输出配套 |
|
||||
| `LanMountainDesktop.PluginTemplate/` | `dotnet new lmd-plugin` 官方模板 |
|
||||
| `LanMountainDesktop.Tests/` | 宿主与 SDK 的测试项目 |
|
||||
|
||||
### 宿主启动主线
|
||||
|
||||
启动入口在 `LanMountainDesktop/Program.cs`:
|
||||
|
||||
1. 初始化日志、单实例锁和启动诊断
|
||||
2. 初始化遥测身份、崩溃遥测与使用遥测
|
||||
3. 构建 Avalonia `AppBuilder`
|
||||
4. 进入 `LanMountainDesktop/App.axaml.cs`
|
||||
5. 初始化主题、语言、设置窗口服务、天气定位刷新
|
||||
6. 初始化桌面壳层、主窗口、托盘、插件运行时
|
||||
|
||||
### 运行时主数据流
|
||||
|
||||
- 设置流:`Settings.Core` 提供基础设置能力,宿主通过 facade 读取和监听设置变化
|
||||
- 外观流:`Appearance` 提供主题和圆角资源,宿主在 `App.axaml.cs` 中应用到资源字典
|
||||
- 组件流:`LanMountainDesktop/ComponentSystem/` 维护内置组件定义、注册和扩展接入
|
||||
- 插件流:宿主侧 `plugins/` 负责 `.laapp` 的发现、安装、替换、激活与共享契约装配
|
||||
- 设置页流:插件运行时可把自己的设置页注册进宿主设置窗口
|
||||
|
||||
### 关键目录落点
|
||||
|
||||
`LanMountainDesktop/` 内高频目录:
|
||||
|
||||
- `Views/`:窗口、页面、组件视图
|
||||
- `ViewModels/`:视图模型
|
||||
- `Services/`:业务服务、持久化、启动、遥测等
|
||||
- `ComponentSystem/`:组件定义、注册、扩展加载
|
||||
- `plugins/`:宿主侧插件运行时
|
||||
- `Theme/` 与 `Styles/`:主题资源、样式、外观应用
|
||||
- `DesktopEditing/`:桌面布局编辑相关逻辑
|
||||
- `Localization/`:本地化资源
|
||||
|
||||
### 插件边界
|
||||
|
||||
- 插件 SDK 权威定义在 `LanMountainDesktop.PluginSdk/`
|
||||
- 宿主与插件共享的稳定通信类型在 `LanMountainDesktop.Shared.Contracts/`
|
||||
- 插件市场和开发者生态资料不在本仓库维护
|
||||
- 本地 market 调试从兄弟仓库 `..\\LanAirApp` 读取数据
|
||||
|
||||
### 测试边界
|
||||
|
||||
`LanMountainDesktop.Tests/` 当前主要覆盖:
|
||||
|
||||
- 圆角与外观相关基线
|
||||
- 组件放置与编辑数学
|
||||
- 组件设置服务
|
||||
- UI 异常防护
|
||||
- 白板笔记持久化
|
||||
|
||||
涉及宿主行为、SDK 契约、布局计算或设置持久化的改动,应优先补对应测试。
|
||||
|
||||
## English
|
||||
|
||||
This repository is organized around a desktop host app plus a host-side plugin ecosystem. `LanMountainDesktop/` contains the application entry points, UI, services, component system, and plugin runtime integration. The surrounding projects provide the public SDK, shared contracts, appearance infrastructure, settings primitives, host abstractions, runtime support, and tests.
|
||||
|
||||
The runtime flow starts in `Program.cs`, proceeds into `App.axaml.cs`, initializes settings/theme/localization services, then boots the desktop shell, tray, windows, and plugin runtime. The most important behavior boundaries are component registration, plugin activation, appearance resources, and settings persistence.
|
||||
63
docs/CONTRIBUTING.md
Normal file
63
docs/CONTRIBUTING.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# 协作文档 / Contributing
|
||||
|
||||
## 中文
|
||||
|
||||
### 适用范围
|
||||
|
||||
本文件适用于本仓库内的代码、文档、规格与测试协作。
|
||||
|
||||
### 基本流程
|
||||
|
||||
1. 先阅读 `README.md`、`docs/ARCHITECTURE.md` 和 `docs/DEVELOPMENT.md`
|
||||
2. 如果是新功能、行为变更或跨模块调整,先检查是否需要补 `.trae/specs/`
|
||||
3. 实现代码改动时,尽量同时补测试和必要文档
|
||||
4. 提交 PR 前,至少确认构建、测试和相关文档链接可用
|
||||
|
||||
### 什么时候必须更新 spec
|
||||
|
||||
以下改动默认要补或更新 `.trae/specs/<feature>/`:
|
||||
|
||||
- 新增用户可见功能
|
||||
- 修改已有功能行为、交互或规则
|
||||
- 调整设置页信息架构或主要视觉结构
|
||||
- 修改插件宿主集成方式、共享契约或 SDK 使用模式
|
||||
|
||||
如果只是小范围重构、纯修复拼写、或不改变行为的内部清理,可以不新增 spec,但仍要补必要测试。
|
||||
|
||||
### 什么时候必须更新文档
|
||||
|
||||
- 产品定位、版本阶段、生态边界变化:更新 `docs/PRODUCT.md`
|
||||
- 仓库结构、模块职责、运行时边界变化:更新 `docs/ARCHITECTURE.md`
|
||||
- 构建、运行、测试、打包步骤变化:更新 `docs/DEVELOPMENT.md`
|
||||
- AI 协作入口、代码地图、执行约束变化:更新 `AGENTS.md` 或 `docs/ai/`
|
||||
- 视觉或圆角规则变化:更新对应专题文档
|
||||
|
||||
### PR 预期
|
||||
|
||||
PR 说明至少要覆盖:
|
||||
|
||||
- 改了什么
|
||||
- 为什么要改
|
||||
- 如何验证
|
||||
- 是否影响文档、spec 或迁移说明
|
||||
|
||||
如果改动涉及 UI、插件、设置页、打包或共享契约,建议明确列出受影响区域。
|
||||
|
||||
### 测试预期
|
||||
|
||||
默认至少执行与改动相关的验证:
|
||||
|
||||
- `dotnet build LanMountainDesktop.slnx -c Debug`
|
||||
- `dotnet test LanMountainDesktop.slnx -c Debug`
|
||||
|
||||
无法运行的检查要在 PR 里说明原因。
|
||||
|
||||
### 文档原则
|
||||
|
||||
- 每类事实只保留一个权威来源
|
||||
- 根目录 `README.md` 面向人类入口,`AGENTS.md` 面向 AI 入口
|
||||
- 不要在多个文件里复制同一段说明,只保留索引和跳转
|
||||
|
||||
## English
|
||||
|
||||
Keep the documentation model simple: `README.md` is the human entry point, `AGENTS.md` is the AI entry point, `docs/` stores durable project docs, and `.trae/specs/` stores feature-level specs. If a change affects behavior, boundaries, or workflows, update the corresponding source-of-truth document in the same PR.
|
||||
81
docs/DEVELOPMENT.md
Normal file
81
docs/DEVELOPMENT.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# 开发文档 / Development
|
||||
|
||||
## 中文
|
||||
|
||||
### 环境准备
|
||||
|
||||
- 安装 `.NET SDK 10`
|
||||
- 桌面端建议优先在 Windows 上开发和验证
|
||||
- 仓库主入口解决方案文件为 `LanMountainDesktop.slnx`
|
||||
- SDK 版本由仓库根目录 `global.json` 锁定
|
||||
|
||||
### 常用命令
|
||||
|
||||
#### 还原与构建
|
||||
|
||||
```bash
|
||||
dotnet restore
|
||||
dotnet build LanMountainDesktop.slnx -c Debug
|
||||
```
|
||||
|
||||
#### 运行桌面宿主
|
||||
|
||||
```bash
|
||||
dotnet run --project LanMountainDesktop/LanMountainDesktop.csproj
|
||||
```
|
||||
|
||||
#### 运行测试
|
||||
|
||||
```bash
|
||||
dotnet test LanMountainDesktop.slnx -c Debug
|
||||
```
|
||||
|
||||
### 常见工作区域
|
||||
|
||||
- 宿主应用:`LanMountainDesktop/`
|
||||
- Plugin SDK:`LanMountainDesktop.PluginSdk/`
|
||||
- 共享契约:`LanMountainDesktop.Shared.Contracts/`
|
||||
- 测试:`LanMountainDesktop.Tests/`
|
||||
- 插件打包脚本:`scripts/Pack-PluginPackages.ps1`
|
||||
|
||||
### 调试建议
|
||||
|
||||
- 启动问题优先看 `LanMountainDesktop/Program.cs` 和 `LanMountainDesktop/App.axaml.cs`
|
||||
- 设置窗口和设置页问题优先看 `LanMountainDesktop/Views/`、`ViewModels/` 与相关 `Services/`
|
||||
- 插件加载与安装问题优先看 `LanMountainDesktop/plugins/`
|
||||
- 组件元数据或可放置规则问题优先看 `LanMountainDesktop/ComponentSystem/`
|
||||
|
||||
### 常见问题
|
||||
|
||||
- 如果提示 SDK 版本不匹配,先检查 `dotnet --info`
|
||||
- 如果视频或 WebView 能力异常,优先在 Windows 环境验证
|
||||
- 如果需要重置本地配置,可删除 `%LOCALAPPDATA%\\LanMountainDesktop\\settings.json` 后重启
|
||||
- 如果需要验证插件打包或本地 feed,使用 `scripts/Pack-PluginPackages.ps1`
|
||||
|
||||
### Linux 录音依赖
|
||||
|
||||
如果在 Linux 上使用录音机或自习监测相关能力,需要安装音频库:
|
||||
|
||||
- Debian/Ubuntu:`sudo apt install libportaudio2 libasound2`
|
||||
- Fedora/RHEL:`sudo dnf install portaudio-libs alsa-lib`
|
||||
- Arch Linux:`sudo pacman -S portaudio alsa-lib`
|
||||
- Alpine Linux:`sudo apk add portaudio alsa-lib`
|
||||
|
||||
### 打包入口
|
||||
|
||||
- 桌面宿主打包说明:`LanMountainDesktop/PACKAGING.md`
|
||||
- 插件相关本地包生成:`scripts/Pack-PluginPackages.ps1`
|
||||
- CI 和工作流说明:`.github/README.md` 与相关 workflow 文档
|
||||
|
||||
### 文档协作约定
|
||||
|
||||
- 产品信息更新到 `docs/PRODUCT.md`
|
||||
- 架构边界更新到 `docs/ARCHITECTURE.md`
|
||||
- 需求与实施拆解更新到 `.trae/specs/`
|
||||
- AI 协作入口和代码地图更新到 `AGENTS.md` 与 `docs/ai/`
|
||||
|
||||
## English
|
||||
|
||||
Use `LanMountainDesktop.slnx` as the workspace entry point. The standard loop is `dotnet restore`, `dotnet build LanMountainDesktop.slnx -c Debug`, `dotnet run --project LanMountainDesktop/LanMountainDesktop.csproj`, and `dotnet test LanMountainDesktop.slnx -c Debug`.
|
||||
|
||||
For packaging, see `LanMountainDesktop/PACKAGING.md`. For plugin package generation or local feed workflows, use `scripts/Pack-PluginPackages.ps1`.
|
||||
62
docs/PRODUCT.md
Normal file
62
docs/PRODUCT.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# 产品文档 / Product
|
||||
|
||||
## 中文
|
||||
|
||||
### 产品一句话
|
||||
|
||||
阑山桌面是一个可编排的桌面信息与交互空间,面向需要高频查看信息、追求桌面效率与个性化体验的用户。
|
||||
|
||||
### 产品定位
|
||||
|
||||
- 产品类型:跨平台桌面环境增强工具
|
||||
- 技术基线:Avalonia UI + .NET 10
|
||||
- 支持平台:Windows、Linux、macOS
|
||||
- 仓库角色:本仓库是桌面宿主、插件运行时、Plugin SDK 与共享契约的权威来源
|
||||
|
||||
### 目标用户
|
||||
|
||||
- 学生用户:课程表、自习监测、计时、天气和日常信息聚合
|
||||
- 办公用户:日历、资讯、最近文档、常用工具入口
|
||||
- 效率和美化爱好者:自由布局、主题切换、插件扩展
|
||||
- 中文用户:本地化界面、农历和节假日等本地语境支持
|
||||
|
||||
### 核心使用场景
|
||||
|
||||
- 学习辅助:课程表、自习环境监测、计时与知识卡片
|
||||
- 信息聚合:天气、新闻、日历、热搜等信息集中展示
|
||||
- 效率提升:最近文档、浏览器、工具组件与桌面快捷访问
|
||||
- 个性化桌面:自由布局、多页桌面、主题与视觉风格配置
|
||||
- 插件扩展:通过 `.laapp` 插件补充新的组件、设置页和集成功能
|
||||
|
||||
### 核心能力
|
||||
|
||||
- 桌面组件系统:内置组件与扩展组件统一注册、统一放置约束
|
||||
- 插件系统:宿主加载插件、整合设置页、组件与市场安装流
|
||||
- 外观系统:主题、玻璃层级、圆角与颜色资源统一管理
|
||||
- 设置系统:独立设置窗口、设置页注册与分域持久化
|
||||
- 跨平台运行:基于 Avalonia 的桌面宿主运行在 Windows、Linux、macOS
|
||||
|
||||
### 当前阶段
|
||||
|
||||
- 产品版本:`1.0.0`
|
||||
- Plugin SDK API 基线:`4.0.0`
|
||||
- 当前重点:持续完善宿主体验、设置页体验、组件能力与插件生态
|
||||
- 近期需求入口:以 `.trae/specs/` 中的 feature spec 为准
|
||||
|
||||
### 生态边界
|
||||
|
||||
- 本仓库负责:宿主代码、插件运行时、SDK、共享契约、主题与设置基础设施
|
||||
- `LanAirApp` 负责:插件市场元数据、开发者生态材料
|
||||
- `LanMountainDesktop.SamplePlugin` 负责:官方示例插件实现
|
||||
|
||||
### 维护原则
|
||||
|
||||
- 产品事实只在本文件沉淀,不在多个根目录文档重复维护
|
||||
- 代码结构和运行方式分别以 `docs/ARCHITECTURE.md` 与 `docs/DEVELOPMENT.md` 为准
|
||||
- 专题规范以 `docs/VISUAL_SPEC.md`、`docs/CORNER_RADIUS_SPEC.md` 等专题文档为准
|
||||
|
||||
## English
|
||||
|
||||
LanMountainDesktop is a cross-platform desktop enhancement product built with Avalonia UI and .NET 10. It targets students, office users, and customization-focused users who want a programmable desktop surface for information, tools, and plugin-driven extensions.
|
||||
|
||||
This repository is the source of truth for the desktop host, plugin runtime, Plugin SDK, shared contracts, and core appearance/settings infrastructure. The current product version is `1.0.0`, and the active Plugin SDK baseline in this repository is `4.0.0`.
|
||||
76
docs/SPECS.md
Normal file
76
docs/SPECS.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 规格文档说明 / Specs
|
||||
|
||||
## 中文
|
||||
|
||||
### 目的
|
||||
|
||||
`.trae/specs/` 用来存放“一个需求从意图到落地”的协作文档,而不是长期产品说明。它适合记录功能变更、交互改造、重要修复和跨模块调整。
|
||||
|
||||
### 目录结构
|
||||
|
||||
每个功能目录建议使用:
|
||||
|
||||
```text
|
||||
.trae/specs/<feature-name>/
|
||||
spec.md
|
||||
tasks.md
|
||||
checklist.md
|
||||
```
|
||||
|
||||
### 每个文件的职责
|
||||
|
||||
#### `spec.md`
|
||||
|
||||
用于描述这次变更的意图和行为要求,建议包含:
|
||||
|
||||
- `Why`:为什么要做
|
||||
- `What Changes`:会改什么
|
||||
- `Impact`:影响哪些规范或代码区域
|
||||
- Requirements / Scenarios:可验证的行为要求
|
||||
|
||||
#### `tasks.md`
|
||||
|
||||
用于把实现拆成可执行任务,建议包含:
|
||||
|
||||
- 分阶段任务或模块任务
|
||||
- 依赖关系
|
||||
- 可并行项
|
||||
- 完成状态
|
||||
|
||||
#### `checklist.md`
|
||||
|
||||
用于验收与回归检查,建议包含:
|
||||
|
||||
- 关键 UI 或行为检查点
|
||||
- 构建、运行、测试检查点
|
||||
- 手工验证项
|
||||
|
||||
### 什么时候新建 spec
|
||||
|
||||
- 新增功能
|
||||
- 已有功能行为发生变化
|
||||
- 设置页、主界面、组件系统出现结构性调整
|
||||
- 插件系统、共享契约、SDK 接入方式发生变化
|
||||
|
||||
### 什么时候只更新现有 spec
|
||||
|
||||
- 同一 feature 的后续迭代仍属于原目标范围
|
||||
- 原 spec 仍是当前实现的权威描述
|
||||
- 只是补充场景、任务拆解或验收项
|
||||
|
||||
### 什么时候可以不写 spec
|
||||
|
||||
- 纯拼写修复
|
||||
- 纯内部重构且不改变行为
|
||||
- 只改注释、日志、文档索引等非行为项
|
||||
|
||||
### 与其他文档的关系
|
||||
|
||||
- 长期产品说明看 `docs/PRODUCT.md`
|
||||
- 长期架构说明看 `docs/ARCHITECTURE.md`
|
||||
- 开发运行方式看 `docs/DEVELOPMENT.md`
|
||||
- feature 级变更过程看 `.trae/specs/`
|
||||
|
||||
## English
|
||||
|
||||
Use `.trae/specs/` for feature-level change tracking, not for long-lived product or architecture documentation. `spec.md` defines intent and requirements, `tasks.md` breaks implementation into actionable work, and `checklist.md` captures validation and regression checks.
|
||||
60
docs/ai/CHANGE_WORKFLOW.md
Normal file
60
docs/ai/CHANGE_WORKFLOW.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Change Workflow
|
||||
|
||||
## 目标
|
||||
|
||||
给 AI 一个稳定的执行顺序,避免直接跳到编码而漏掉规格、文档和回归验证。
|
||||
|
||||
## 推荐流程
|
||||
|
||||
1. 读取 `AGENTS.md`
|
||||
2. 读取 `docs/ai/DOC_SOURCES.md`,确认这次需求涉及哪些权威文档
|
||||
3. 按需读取 `docs/ARCHITECTURE.md`、专题规范和相关目录内 README
|
||||
4. 检查 `.trae/specs/` 是否已有对应 feature
|
||||
5. 如果是新功能或行为变化,先补或更新 `spec.md / tasks.md / checklist.md`
|
||||
6. 再改代码
|
||||
7. 补测试或复用已有测试文件
|
||||
8. 运行最小必要验证
|
||||
9. 回写文档入口和迁移说明
|
||||
|
||||
## 什么时候必须先更新 `.trae/specs/`
|
||||
|
||||
- 用户可见行为变化
|
||||
- 设置页或主界面结构变化
|
||||
- 组件系统规则变化
|
||||
- 插件宿主集成、共享契约、SDK 使用模式变化
|
||||
|
||||
## 什么时候可以直接改代码
|
||||
|
||||
- 纯文档修复
|
||||
- 不改变行为的内部重构
|
||||
- 小范围 bugfix 且现有 spec 已完整覆盖该功能意图
|
||||
|
||||
## 最小验证清单
|
||||
|
||||
默认优先:
|
||||
|
||||
```bash
|
||||
dotnet build LanMountainDesktop.slnx -c Debug
|
||||
dotnet test LanMountainDesktop.slnx -c Debug
|
||||
```
|
||||
|
||||
按需增加:
|
||||
|
||||
- 运行桌面宿主验证 UI 或启动行为
|
||||
- 检查插件打包或 market 调试路径
|
||||
- 手工验证设置页、主题切换、组件布局等高风险交互
|
||||
|
||||
## 回写要求
|
||||
|
||||
出现以下变化时,AI 应同步回写文档:
|
||||
|
||||
- 命令变化:更新 `docs/DEVELOPMENT.md`
|
||||
- 模块职责变化:更新 `docs/ARCHITECTURE.md`
|
||||
- 产品定位或阶段变化:更新 `docs/PRODUCT.md`
|
||||
- AI 入口或权威来源变化:更新 `AGENTS.md` 或 `docs/ai/DOC_SOURCES.md`
|
||||
|
||||
## 不要做的事
|
||||
|
||||
- 不要把根目录 `README.md` 写成 feature 详细设计文档
|
||||
- 不要在多份文档里重复维护同一条事实
|
||||
- 不要把 `LanAirApp` 的资料误写成本仓库权威来源
|
||||
59
docs/ai/CODEBASE_MAP.md
Normal file
59
docs/ai/CODEBASE_MAP.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Codebase Map
|
||||
|
||||
## 目标
|
||||
|
||||
本文件帮助 AI 在最短时间内定位“需求应该落到哪一层”,减少把改动打到错误项目或错误目录的概率。
|
||||
|
||||
## 顶层项目地图
|
||||
|
||||
| 路径 | 主要职责 | 典型改动 |
|
||||
| --- | --- | --- |
|
||||
| `LanMountainDesktop/` | 桌面宿主应用 | UI、服务、主流程、组件系统、插件接入 |
|
||||
| `LanMountainDesktop.PluginSdk/` | 插件 SDK | 公共接口、扩展方法、默认打包行为 |
|
||||
| `LanMountainDesktop.Shared.Contracts/` | 共享契约 | 宿主与插件共享记录、模型、边界类型 |
|
||||
| `LanMountainDesktop.Appearance/` | 外观基础设施 | 主题、圆角、外观资源相关逻辑 |
|
||||
| `LanMountainDesktop.Settings.Core/` | 设置基础设施 | 设置 scope、存储抽象、设置 facade 支撑 |
|
||||
| `LanMountainDesktop.DesktopHost/` | 桌面宿主流程 | 生命周期、宿主流程支撑 |
|
||||
| `LanMountainDesktop.DesktopComponents.Runtime/` | 组件运行时 | 组件宿主运行时支撑 |
|
||||
| `LanMountainDesktop.Host.Abstractions/` | 宿主抽象 | 宿主接口与抽象层 |
|
||||
| `LanMountainDesktop.PluginsInstallHelper/` | 插件安装辅助 | 发布输出和插件安装辅助程序 |
|
||||
| `LanMountainDesktop.PluginTemplate/` | 插件模板 | `dotnet new lmd-plugin` 模板内容 |
|
||||
| `LanMountainDesktop.Tests/` | 测试 | 行为回归、契约验证、基础能力校验 |
|
||||
|
||||
## 主宿主工程内的高频落点
|
||||
|
||||
| 路径 | 用途 | 常见需求 |
|
||||
| --- | --- | --- |
|
||||
| `LanMountainDesktop/Program.cs` | 进程启动主线 | 启动诊断、单实例、启动配置 |
|
||||
| `LanMountainDesktop/App.axaml.cs` | 应用初始化 | 主题、语言、托盘、插件运行时、主窗口 |
|
||||
| `LanMountainDesktop/Views/` | 界面视图 | 设置页、主窗口、组件 UI |
|
||||
| `LanMountainDesktop/ViewModels/` | 视图模型 | 页面状态、命令、交互行为 |
|
||||
| `LanMountainDesktop/Services/` | 服务层 | 设置、存储、遥测、业务能力 |
|
||||
| `LanMountainDesktop/ComponentSystem/` | 组件系统 | 组件定义、注册、放置规则、扩展清单 |
|
||||
| `LanMountainDesktop/plugins/` | 插件运行时 | 插件发现、安装、替换、market 集成 |
|
||||
| `LanMountainDesktop/Theme/` and `Styles/` | 主题和样式 | 视觉资源、主题行为、样式规则 |
|
||||
| `LanMountainDesktop/Localization/` | 本地化 | 语言资源、语言切换 |
|
||||
| `LanMountainDesktop/DesktopEditing/` | 布局编辑 | 组件摆放、数学计算、编辑状态 |
|
||||
|
||||
## 需求到目录的快速映射
|
||||
|
||||
- 设置页改造:优先看 `Views/`, `ViewModels/`, `Services/`, `.trae/specs/`
|
||||
- 组件注册或元数据变化:优先看 `ComponentSystem/`
|
||||
- 插件安装、market、插件加载:优先看 `plugins/`
|
||||
- 主题、颜色、圆角:优先看 `Theme/`, `Styles/`, `LanMountainDesktop.Appearance/`
|
||||
- 设置持久化:优先看 `LanMountainDesktop.Settings.Core/` 与宿主设置 facade
|
||||
- SDK 接口调整:优先看 `LanMountainDesktop.PluginSdk/` 和 `LanMountainDesktop.Shared.Contracts/`
|
||||
- 桌面壳层或生命周期:优先看 `Program.cs`, `App.axaml.cs`, `LanMountainDesktop.DesktopHost/`
|
||||
|
||||
## 测试对照
|
||||
|
||||
当前测试工程 `LanMountainDesktop.Tests/` 内的典型覆盖包括:
|
||||
|
||||
- `CornerRadiusScaleTests.cs`: 圆角和外观缩放相关
|
||||
- `DesktopPlacementMathTests.cs`: 桌面布局数学
|
||||
- `DesktopEditCommitMathTests.cs`: 桌面编辑提交计算
|
||||
- `ComponentSettingsServiceTests.cs`: 组件设置服务
|
||||
- `UiExceptionGuardTests.cs`: UI 异常保护
|
||||
- `WhiteboardNotePersistenceServiceTests.cs`: 白板笔记持久化
|
||||
|
||||
如果改动落在这些行为附近,优先扩展已有测试而不是新建无关测试入口。
|
||||
39
docs/ai/DOC_SOURCES.md
Normal file
39
docs/ai/DOC_SOURCES.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Documentation Sources
|
||||
|
||||
## 目标
|
||||
|
||||
当多个文档都提到同一主题时,AI 必须知道“到底信哪一份”。本文件定义权威来源,避免引用旧文档或重复维护的文本。
|
||||
|
||||
## 权威来源表
|
||||
|
||||
| 主题 | 权威文档 | 备注 |
|
||||
| --- | --- | --- |
|
||||
| 项目总入口 | `README.md` | 面向人类,提供索引而不展开细节 |
|
||||
| AI 协作入口 | `AGENTS.md` | 面向 AI 的首读文件 |
|
||||
| 产品定位与阶段 | `docs/PRODUCT.md` | 不再使用旧根目录产品文档 |
|
||||
| 架构与模块职责 | `docs/ARCHITECTURE.md` | 包含仓库结构和运行时主线 |
|
||||
| 构建、运行、测试、打包 | `docs/DEVELOPMENT.md` | 命令以这里为准 |
|
||||
| 贡献和文档更新规则 | `docs/CONTRIBUTING.md` | PR、spec、文档协作规则 |
|
||||
| feature 级规格 | `.trae/specs/<feature>/spec.md` | 行为意图和需求场景 |
|
||||
| feature 任务拆解 | `.trae/specs/<feature>/tasks.md` | 实施步骤与依赖 |
|
||||
| feature 验收 | `.trae/specs/<feature>/checklist.md` | 回归与验收项 |
|
||||
| 视觉规范 | `docs/VISUAL_SPEC.md` | 颜色、语义资源、玻璃层级 |
|
||||
| 圆角规范 | `docs/CORNER_RADIUS_SPEC.md` | 圆角层级与动态规则 |
|
||||
| 插件生态边界 | `docs/ECOSYSTEM_BOUNDARIES.md` | 仓库边界和 market 所属 |
|
||||
| SDK v4 迁移 | `docs/PLUGIN_SDK_V4_MIGRATION.md` | Plugin SDK breaking changes |
|
||||
|
||||
## 已废弃来源
|
||||
|
||||
以下文件内容已迁移,不应继续作为权威来源引用:
|
||||
|
||||
- `PRODUCT_BRIEF.md`
|
||||
- `PRODUCT_DOCUMENT.md`
|
||||
- `run.md`
|
||||
|
||||
## 冲突处理规则
|
||||
|
||||
如果发现多个文档内容冲突,按以下优先级处理:
|
||||
|
||||
1. 先看本表中的权威来源
|
||||
2. 再看相关项目内源码、`csproj`、目录 README
|
||||
3. 如果仍有冲突,以当前仓库源码和项目配置为准,并回写文档
|
||||
Reference in New Issue
Block a user