Files
tianmo f558a4e4aa 把确认的映射写进表 + 技能补一条立即生效的规矩
- anchors.tsv 增补 ScrollPane(含踩坑确认的 B(ZZ)V=setScrollingDisabled,不是 setForceScroll),
  names.tsv 同步为 220 条;
- 混淆名对照表.md 新增第七节(ScrollPane 方法映射 + 教训);
- .codex/skills/scope-discipline 增补『结论必须落进映射表(立即生效)』:新确认的映射/字段语义
  当场写进 anchors.tsv 并同步 names.tsv / src-named,不许只留在对话里。
2026-10-16 16:13:54 +08:00

59 lines
3.1 KiB
Markdown
Raw Permalink 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.
---
name: scope-discipline
description: 在本仓库(Spine 3.8.99 编辑器"面板加功能")里动手改代码前必读:只做用户明确要求的那一件事,严禁擅自换设计、绕开问题、顺手加功能;改完必须自己重启编辑器并确认进程活着。当用户说"我没让你做这个""只修 X""重启一下"时也适用。
---
# 只做被要求的事(本仓库纪律)
用户明确要求过:**严禁做没说过的事**。这条优先于"顺手改进""更优雅的实现""顺便修一下"。
## 动手前先划范围
1. **只改被点名的那一个问题**。例:用户说"列表不能滚动" —— 就只修滚动,
不允许改成分页、换控件、重构布局来绕开。
2. **不加用户没要的 UI / 功能 / 入口 / 自动化**。想加先问。
3. **不改已确认的约定**:面板文字一律英文;`skeleton` 可删、`root` 不可删;动作只作用于当前选择。
4. 修 bug 时不顺手改相邻行为;确需动到时保持最小改动,并在回复里点明"我动了 X,因为 Y"。
5. 用户没要求重构 / 改名 / 整理时,不做。
## 改完必做
1. 编译:`JAVA_HOME=/tmp/jdk-17.0.20.1+1/Contents/Home ./viewpanel/build.sh`
2. 重启并**确认活着**(不要只杀不启,也不要让用户自己点):
```bash
./viewpanel/run.sh
sleep 20; pgrep -f com.spineview.Launcher | wc -l # 期望是 1
```
启动必须用 `python subprocess.Popen(..., start_new_session=True)`(`run.sh` 里已这么做);
**不要用 `nohup … &`**:进程会挂在会话下,会话一结束就被收掉(踩过)。
3. 单独提交,提交信息写清"做了什么、为什么"。
## 报告方式
- 先给结果(进程 pid、日志关键行、能不能跑),再讲原因。
- 不确定就写"未定",不要猜;给结论要带出处(`file:line` 或 `javap -c` 证据)。
- 用户要自己手测时,只给入口/按钮,不替他下结论。
## 相关文件
- 调研结论与 API 对照:`编辑器交互与数据API.md`、`混淆名对照表.md`
- 重启入口:`viewpanel/run.sh`、`viewpanel/重启编辑器.command`
## 结论必须落进映射表(立即生效)
任何**新确认**的东西都要当场写进文件,不要只留在对话里:
1. 混淆名 → 真名的映射(方法/字段,含**描述符**):追加到 `tools/deobf/anchors.tsv`
(一行:`owner<TAB>name<TAB>desc<TAB>真名`,上面用 `#` 写清依据,例如
`ScrollPane B (ZZ)V setScrollingDisabled` —— 这条是踩坑确认的:传 `(false,true)` 等于关掉纵向滚动)。
2. 场景对象字段的语义(x/y/rotation/scale/…):同样进 `anchors.tsv`,依据写"用户实测:改了什么值 → 哪个字段动了"。
3. 然后跑一次合并 + 重命名,保证产物同步:
```bash
python3 - <<'PY' # 合并 anchors-libgdx.tsv + anchors.tsv -> names.tsv
...
PY
java -cp "tools/deobf/build:$ASM" com.spineview.deobf.Renamer \
/tmp/spinework/payload-public.zip tools/deobf/names.tsv /tmp/spinework/payload-named.zip
```
4. `混淆名对照表.md` 里同步补一行(混淆名 → 真名 → 依据),并写清"已确认 / 未定"。