if/claude.md

3.5 KiB
Raw Permalink Blame History

Claude Project Memory

1. 项目定位(长期不变)

  • 项目类型魔塔Like固定地图探索 + 数值驱动 + 剧情导向 + 解谜)。
  • 目标体量:按原定体量推进,不主动缩减世界观与章节目标。
  • 开发模式:代码主力由 AI 完成;人工主要负责美工、地图、剧情、体验验收与方向裁决。
  • 当前基础:塔的基础结构已完成,支持正常战斗与可视化地图修改。

2. 当前开发优先级(默认顺序)

  1. 地图回合时轴Map Turn剩余接线与稳定性。
  2. 回档系统(状态继承、存读档一致性)。
  3. 敌人可相互战斗与伤害。
  4. 玩家多角色(队友/阵容)系统。

未经明确指令,不要跳级并行实现高风险模块。

3. 规则来源与冲突处理

  • 机制规则唯一口径:docs/map-turn-spec.md
  • 代码落地状态台账:docs/map-turn-implementation-status.md
  • 协作与开发边界:本文件 claude.md
  • 若规则冲突:先列出冲突点与影响,不擅自改规则,等待用户裁决。

4. 开发硬约束(来自 DEVELOPMENT_RULES 共识)

  1. 新功能默认写在 project/plugins.js
  2. 优先使用 _docs/api.md 中的样板接口实现需求。
  3. 所有绘制基于 core.createCanvas 体系。
  4. 所有异步流程基于 core.insertAction(含 function/async 事件流)。
  5. 使用非样板接口时,必须就地注释:用途、原因、风险。
  6. 不直接改动 libs/main.js 等核心底层文件,除非用户明确授权。
  7. 不直接破坏核心运行态结构(如整体替换 core.status / core.material)。

5. Map Turn 专项原则(必须遵守)

  • 单一时间总线:时间推进统一走 consumeTime(deltaTime, reason)
  • 单 tick 语义:deltaTime = n 必须触发恰好 nadvanceMapTurnOne
  • 规则优先级:死亡流程优先、战后成功再扣层、状态技能 timeCost=0 不推进时间。
  • 耗时规则:battleFinalTimeCost = max(baseBattleTimeCost, statusBattleTimeCostMax)
  • 性能底线:每 tick 禁止全图扫描;敌方调度仅遍历 activeEnemiesByFloor 缓存。
  • 存档一致:flags.mapTurnStateflags.skillState 保持可序列化并可恢复。
  • 缓存策略:activeEnemiesByFloor 作为派生缓存,读档或换层后允许重建。

6. AI 输出与执行格式

每次任务默认按以下顺序输出:

  1. 先给结论(本次做什么/不做什么)。
  2. 给改动范围(文件与模块)。
  3. 对齐到规则(引用 map-turn-spec.md / 台账条目)。
  4. 给最小验证步骤(可复现、可回归)。
  5. 若有风险,给 1-2 条可选方案并标出推荐项。

7. 验收偏好

  • 优先级:正确性与可验证性 > 写法优雅。
  • 关键机制必须可回归验证(如 consumeTime(3) 的 3 tick 断言、战后扣层、读档连续、timeCost=0 过滤)。
  • 遇到不确定行为,先加可观测日志/断言,再做进一步改动。

8. Git 与协作习惯

  • 已使用 Git改动应保持小步、可读、可回退。
  • 未经明确要求,不做破坏性历史操作(如强推、硬重置)。
  • 不覆盖与当前任务无关的既有改动。

9. 调用短语约定

当用户说“按 claude 执行”时AI 必须默认执行:

  1. 先复述目标与当前阶段优先级。
  2. 明确本次任务对应哪个优先级模块。
  3. 检查是否违反第 4、5 节约束。
  4. 输出最小可执行步骤,再开始实现。

当用户说“先讨论不改代码”时AI 只给方案,不做实现。