🔧 chore(playbook): align repo with latest workflow
lsp-server ci / build-and-test (push) Failing after 0s

sync playbook-managed rules and prompts.
migrate memory-bank to the new structure and move plans to docs/superpowers/plans.
keep product README files untouched.
This commit is contained in:
csh
2026-05-24 13:34:07 +08:00
parent 696920df73
commit 7838f3ec3d
27 changed files with 1063 additions and 901 deletions
+77
View File
@@ -0,0 +1,77 @@
# 系统模式与约束
## 模块边界
### Core / Protocol
- **职责**:处理 stdio 生命周期、LSP 消息路由、协议类型定义与序列化入口
- **输入**:编辑器发来的原始 LSP 请求、通知、初始化参数
- **输出**:分发后的 provider 调用、协议响应和服务端事件
- **不应负责**:语义分析、符号计算、解析缓存管理
### Provider / Manager
- **职责**Provider 负责 capability 级编排;
Manager 负责文档、解析结果、符号等共享状态
- **输入**:已解析的协议请求、文档状态、语言分析结果
- **输出**LSP 返回值、workspace edit、内部状态更新
- **不应负责**:跨层直接操作第三方库细节,或绕过 manager 持久化共享状态
### Language / Bridge
- **职责**Language 负责 AST、语义、符号逻辑;
Bridge 负责 Tree-sitter、Glaze、Taskflow、spdlog 等第三方封装
- **输入**:语法树、节点访问请求、共享分析上下文
- **输出**:AST 结构、语义结论、符号信息、桥接后的库接口
- **不应负责**:LSP 协议路由、编辑器生命周期管理
## 关键数据流
1. 编辑器请求进入 `core/server.cppm`,由 `dispatcher.cppm`
解析 method 并路由到对应 provider
2. Provider 通过 `manager/` 获取文档、语法树和符号状态,
需要深入分析时再调用 `language/` 能力
3. 结果经 `protocol/``codec/` 序列化后返回客户端;
异步任务由 `scheduler/async_executor.cppm` 承载
## 核心不变量
- LSP 线协议必须稳定,能力扩展优先新增 provider 而不是改现有报文结构
- 文档和解析缓存由 manager 统一持有,其他层不各自维护第二份真相
- Tree-sitter 生成物、AST 访问逻辑和测试夹具必须同步演进
- Bridge 模块只做库封装,不夹带 TSL 业务分支
## 常见实现模式
### 新增 LSP 能力
- **适用场景**:新增 `textDocument/*``workspace/*`
`callHierarchy/*` 等协议能力
- **推荐做法**:先补 protocol 类型,再在 `src/provider/`
新增或扩展对应 provider,最后在 dispatcher 注册并补测试
- **避免事项**:把协议分发、共享状态和语义逻辑揉进一个模块里
### 调整语法或 AST
- **适用场景**:关键字、表达式、声明、节点结构发生变化
- **推荐做法**:先改 Tree-sitter 与 parser/scanner,同步 AST /
semantic / symbol 访问点,再补 `test_tree_sitter`
`test_ast`、相关 provider 测试
- **避免事项**:只改生成物不改测试,或只改 AST 不回溯语法源
## 扩展路径
1. 协议功能扩展优先从 `src/protocol/``src/provider/`
`src/core/dispatcher.cppm` 这一条链路进入
2. 语言分析扩展优先从 `src/language/` 进入,
需要共享缓存时再通过 `src/manager/` 暴露给 provider
## 禁止破坏的约束
- 不破坏现有分层边界,不跨层绕过 manager 直接操作底层解析状态
- 不引入与现有 C++23 Modules 组织方式冲突的头文件式拼装
- 不在 playbook 对齐任务里修改产品 README 或业务实现
---
**最后更新**2026-05-24