Files
gplan-2/.claude/docs/technical-preferences.md
T
DKChan 6c2dbc37c1 docs: ADR 体系废除 + architecture.md 确立为架构唯一事实源(2026-10-15 用户令:决策记录归 git commit log,不另存决策文档)
- 删除 design/dev/architecture/adr-0001~0007 共 7 份文件(内容留 git 历史可查)
- architecture.md:删「ADR 审计」「ADR 立项清单」两节;清除全文 ADR-000X 注记、QQ 表/S 表 ADR 引用;未决表关闭已落定项(QQ-01/02/03),立项清单在途事项转登记 QQ-11~14;补 A1 生成姿态事实、autoload 四件清单、board_generator 性能姿态;文档状态立「事实源地位」条
- CLAUDE.md:恢复 RNG 单点硬性红线(去 ADR-0007 引用);新增「架构事实唯一源」红线;规范导航架构行标注唯一事实源
- doc-conventions:§5 增「架构事实唯一源」行;§11 活文档清单补架构文档
- registry:architecture.yaml 删 18 处 adr 字段、autoload_set 补 SaveManager/MetaProgression、board_rending 更新为 Node2D 已落地事实;entities.yaml 12 处引用清除
- game/ 代码注释约 60 处清 ADR-000X 引用(事实与日期保留);豁免标记 ADR-0007-exempt → rng-seed-exempt(main.gd/static_scan.sh/architecture.md/06/iter27 五处同步)
- GDD/qa 实现报告/research 卡片/roadmap/tests README 引用全清;死链校验 1206 链接 0 死链、gdd_lint 0 不通过
- 代码中 adr/adr5 等为 adventure_runner 既有局部变量名(非 ADR 引用),未动
2026-10-15 23:52:30 +08:00

72 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Technical Preferences
## Engine & Language
- **Engine**: Godot 4.7.2-stable(2026-09-07 锁定;4.7 分支最新维护版)
- **Language**: GDScript(唯一项目语言——与 `design/gdd/d2-data-config.md` 实现级规约一致:二补数回绕语义、`--headless --script` 冒烟、autoload/.tres 体系)
- **Renderer**: 2D 项目;Forward+ / gl_compatibility 的选择已定(gl_compatibility,2026-09-12)
- **Headless 约束**: Core 层玩法逻辑必须 `godot --headless --script` 可完整运行(D2 Rule 7 工程债)
## Naming Conventions (GDScript)
- Classes: PascalCase(`PlayerController`)
- Variables/functions: snake_case(`move_speed`)
- Signals: snake_case 过去式(`health_changed`)
- Files: snake_case 对应类名(`player_controller.gd`)
- Scenes: PascalCase 对应根节点(`PlayerController.tscn`)
- Constants: UPPER_SNAKE_CASE(`MAX_HEALTH`)
- Autoload 单例: PascalCase——**`ConfigDB`、`RngService` 已由 D2 GDD 定名,勿改**
## Input & Platform
- **Target Platforms**: PC (Steam)
- **Input Methods**: Keyboard/Mouse(主——挖/旗/移动为鼠标驱动),Gamepad(Partial)
- **Primary Input**: Keyboard/Mouse
- **Gamepad Support**: Partial(Steam 上架建议支持,非 MVP 门禁)
- **Touch Support**: None
- **Platform Notes**: 回合制可全点击驱动,无 hover-only 交互;UI 需兼容纯鼠标完成全部操作
## Performance Budgets(2D 回合制默认值,实现期可调)
- Target FPS: 60
- Frame Budget: 16.6 ms
- Draw Calls: < 200(棋盘格子 + 数字标签同屏;超出再谈合批)
- Memory: < 500 MB
- Headless 冒烟全套: < 30 s
## Testing
- **现行载体**: `godot --headless --script` 冒烟框架——脚本 extends SceneTree 以获得 `quit(code)`;该模式下 autoload 须由脚本显式实例化(D2 GDD 决策,AC 套件执行前提)
- **gdUnit4**: 是否引入并迁移冒烟用例 → Technical Setup 阶段决策(d2-data-config.md OQ1,未决)
- **测试通道**: `load_tables(root, collect_only=true)` + `--data-root=` 夹具注入(仅 debug 构建);致命类用例按独立进程"调用 → 期望退出码"枚举
## Forbidden Patterns
[TO BE CONFIGURED]
## Allowed Libraries
[TO BE CONFIGURED——仅在实际集成时登记,不预填]
(gdUnit4 若在 Technical Setup 引入,届时登记于此。)
## Engine Specialists
- **Primary**: godot-specialist
- **Language/Code Specialist**: godot-gdscript-specialist(全部 .gd 文件)
- **Shader Specialist**: godot-shader-specialist(.gdshader、VisualShader)
- **UI Specialist**: godot-specialist(无专职 UI specialist)
- **Additional Specialists**: godot-gdextension-specialist(仅 GDExtension/原生插件)
- **Routing Notes**: 架构审查/跨切面审查走 primary;.gd 代码质量、信号架构、静态类型、GDScript 惯用法走 GDScript 审查;材质/着色器走 shader specialist。
- **本工具链映射**: 上述 specialist 以 general-purpose 子 agent + `godot-master` 技能承载(无独立 agent 类型注册)。
### File Extension Routing
| 文件类型 | Specialist |
|---|---|
| 游戏代码(.gd) | godot-gdscript-specialist |
| 着色器(.gdshader / VisualShader) | godot-shader-specialist |
| UI(Control / CanvasLayer) | godot-specialist |
| 场景/资源(.tscn / .tres) | godot-specialist |
| 原生扩展(.gdextension / C++) | godot-gdextension-specialist |
| 架构审查 | godot-specialist |