tsl-devkit/AGENT_RULES.local.md

3.3 KiB
Raw Blame History

AGENT_RULES.local

目的:记录 tsl-devkit 项目私有约束,只补充 AGENT_RULES.md.agents/ 没有覆盖的仓库事实。

进入任务前

  • 先读 memory-bank/project-brief.mdmemory-bank/tech-context.mdmemory-bank/system-patterns.md
  • 处理 C++ 代码前,再读 .agents/cpp/index.md
  • 做 playbook 对齐时,只改 playbook 管理的规则与上下文文件; README.mdlsp-server/README.mdvscode/README.mdvim/README.md 不在本任务范围内

架构边界

  • LSP 对外兼容性优先:method 字符串、JSON 字段名、响应结构 不得无依据改动
  • core/ 负责协议入口、生命周期与路由; 具体能力实现放在 provider/
  • provider/ 负责把 LSP 请求编排到项目能力, 共享状态统一通过 manager/ 获取
  • language/ 承载 AST、语义、符号分析 bridge/ 只封装第三方库,不放业务规则
  • 新增能力优先沿现有分层扩展,不跨层直接耦合

Tree-sitter / AST 同步规则

新增或修改语法、解析、AST 链路时:

  1. 先更新语法源、生成物和解析入口,再补 AST / semantic 适配
  2. lsp-server/src/tree-sitter/lsp-server/test/test_tree_sitter/src/ 下同名 parser / scanner 文件必须同步
  3. AST 节点结构变化时,同步检查 language/ast、 反序列化、debug printer 和对应测试
  4. 汇报中明确归因:语法层 / AST 层 / 语义层

构建与验证

默认 Linux 构建目录:lsp-server/build/clang-linux/Release

  • 构建前置:
CONAN_HOME=/tmp/conan-home conan install lsp-server \
  -pr:h=lsp-server/conan/profiles/linux-x86_64-clang \
  -pr:b=lsp-server/conan/profiles/linux-x86_64-clang \
  -of lsp-server/build/clang-linux/Release \
  --build=missing

cmake -S lsp-server -B lsp-server/build/clang-linux/Release -G Ninja \
  -DCMAKE_TOOLCHAIN_FILE=$PWD/lsp-server/build/clang-linux/Release/generators/conan_toolchain.cmake \
  -DBUILD_TESTS=ON
  • AST / 解析改动至少执行: ctest --test-dir lsp-server/build/clang-linux/Release -R 'test_ast|test_tree_sitter' --output-on-failure
  • Provider / 协议改动至少执行: ctest --test-dir lsp-server/build/clang-linux/Release -R 'test_provider|test_lsp_any|request_json' --output-on-failure
  • 语义 / 符号改动至少执行: ctest --test-dir lsp-server/build/clang-linux/Release -R 'test_semantic|test_symbol' --output-on-failure

Playbook 对齐规则

  • docs/standards/playbook/ 是 vendored 快照; 升级必须优先使用 git subtree pull --prefix docs/standards/playbook ... --squash
  • subtree 更新后,统一执行 python docs/standards/playbook/scripts/playbook.py -config playbook.toml 同步规则、提示词和 .agents/
  • 项目自维护文件是 AGENT_RULES.local.mdmemory-bank/*.mddocs/superpowers/**
  • playbook 对齐不改产品 README也不把 playbook 细节写入产品介绍文档

工作区注意事项

  • 该仓库常位于 CIFS 共享目录,git statusgit diff-index 可能出现假脏或卡住
  • 遇到索引异常时,优先使用: git -c core.trustctime=false -c core.checkStat=minimal ...
  • 必要时执行 git update-index --refresh 或先给受影响目录补 u+w 权限后再做 subtree / stash / clean

最后更新2026-05-24