3.5 KiB
3.5 KiB
Claude Project Memory
1. 项目定位(长期不变)
- 项目类型:魔塔Like(固定地图探索 + 数值驱动 + 剧情导向 + 解谜)。
- 目标体量:按原定体量推进,不主动缩减世界观与章节目标。
- 开发模式:代码主力由 AI 完成;人工主要负责美工、地图、剧情、体验验收与方向裁决。
- 当前基础:塔的基础结构已完成,支持正常战斗与可视化地图修改。
2. 当前开发优先级(默认顺序)
- 地图回合时轴(Map Turn)剩余接线与稳定性。
- 回档系统(状态继承、存读档一致性)。
- 敌人可相互战斗与伤害。
- 玩家多角色(队友/阵容)系统。
未经明确指令,不要跳级并行实现高风险模块。
3. 规则来源与冲突处理
- 机制规则唯一口径:
docs/map-turn-spec.md - 代码落地状态台账:
docs/map-turn-implementation-status.md - 协作与开发边界:本文件
claude.md - 若规则冲突:先列出冲突点与影响,不擅自改规则,等待用户裁决。
4. 开发硬约束(来自 DEVELOPMENT_RULES 共识)
- 新功能默认写在
project/plugins.js。 - 优先使用
_docs/api.md中的样板接口实现需求。 - 所有绘制基于
core.createCanvas体系。 - 所有异步流程基于
core.insertAction(含 function/async 事件流)。 - 使用非样板接口时,必须就地注释:用途、原因、风险。
- 不直接改动
libs/与main.js等核心底层文件,除非用户明确授权。 - 不直接破坏核心运行态结构(如整体替换
core.status/core.material)。
5. Map Turn 专项原则(必须遵守)
- 单一时间总线:时间推进统一走
consumeTime(deltaTime, reason)。 - 单 tick 语义:
deltaTime = n必须触发恰好n次advanceMapTurnOne。 - 规则优先级:死亡流程优先、战后成功再扣层、状态技能
timeCost=0不推进时间。 - 耗时规则:
battleFinalTimeCost = max(baseBattleTimeCost, statusBattleTimeCostMax)。 - 性能底线:每 tick 禁止全图扫描;敌方调度仅遍历
activeEnemiesByFloor缓存。 - 存档一致:
flags.mapTurnState与flags.skillState保持可序列化并可恢复。 - 缓存策略:
activeEnemiesByFloor作为派生缓存,读档或换层后允许重建。
6. AI 输出与执行格式
每次任务默认按以下顺序输出:
- 先给结论(本次做什么/不做什么)。
- 给改动范围(文件与模块)。
- 对齐到规则(引用
map-turn-spec.md/ 台账条目)。 - 给最小验证步骤(可复现、可回归)。
- 若有风险,给 1-2 条可选方案并标出推荐项。
7. 验收偏好
- 优先级:正确性与可验证性 > 写法优雅。
- 关键机制必须可回归验证(如
consumeTime(3)的 3 tick 断言、战后扣层、读档连续、timeCost=0过滤)。 - 遇到不确定行为,先加可观测日志/断言,再做进一步改动。
8. Git 与协作习惯
- 已使用 Git;改动应保持小步、可读、可回退。
- 未经明确要求,不做破坏性历史操作(如强推、硬重置)。
- 不覆盖与当前任务无关的既有改动。
9. 调用短语约定
当用户说“按 claude 执行”时,AI 必须默认执行:
- 先复述目标与当前阶段优先级。
- 明确本次任务对应哪个优先级模块。
- 检查是否违反第 4、5 节约束。
- 输出最小可执行步骤,再开始实现。
当用户说“先讨论不改代码”时,AI 只给方案,不做实现。