summaryrefslogtreecommitdiff
path: root/docs/evidence/p64-verification.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/evidence/p64-verification.txt')
-rw-r--r--docs/evidence/p64-verification.txt61
1 files changed, 61 insertions, 0 deletions
diff --git a/docs/evidence/p64-verification.txt b/docs/evidence/p64-verification.txt
new file mode 100644
index 0000000..690ea31
--- /dev/null
+++ b/docs/evidence/p64-verification.txt
@@ -0,0 +1,61 @@
+P64(A3 成熟度:样板三处视觉缺口)验证记录
+commit 前置:HEAD=128164d(docs tick)
+
+变更(仅限现有江南样板,不扩展全村)
+1. 好处:村庄俯瞰上半部空旷
+ - `VillageArt.sampleRenderPlan` 在 local y0..6 / x0..19 补种(复用既有 RenderPropKind 与低饱和配色):
+ 4 菜畦(2格) + 2 竹丛(3格) + 2 灌木 + 2 花丛,并铺北侧田埂石径 x0..19 y0。
+ - 无新增几何占位:全部走既有 GardenSprite/BambooSprite/ShrubSprite/FlowerSprite 与 StonePath。
+2. 桥梁可读性
+ - `scripts/make-jiangnan-art.py` 重绘 slot5:栈板桥面 + 两侧通长木栏杆 + 望柱 + 石缘(单格 32px,尺寸不变)。
+ - `VillageArt.drawBridge` 在桥两侧水线补 4 块护岸石(`bridgeAbutmentOffsets`,仅江南图集;cc0 不变);
+ 桥位置与通行逻辑零改动。
+3. 民居内景下半家具
+ - `InteriorElementKind` 增 Chair/Stool/BedFoot/Teapot;图集在 392x96 自由区新增 4 个绘制单元,
+ `interiorSourceRectangle`/`elementDestination` 同步;`sampleRenderPlan.Interior` 4 → 8 件。
+ - 进门流程与 HomeMode 语义未改(内部元素纯绘制)。
+
+改动文件
+- scripts/make-jiangnan-art.py(桥 slot5 + 内景 4 家具单元)
+- src/LivingVillage.Desktop/Assets/jiangnan-world.png, jiangnan-interior.png(脚本重生成,尺寸不变)
+- src/LivingVillage.Desktop/VillageArt.fs(类型/源矩形/落位/补种/护岸石/采样)
+- src/LivingVillage.Desktop/Game.fs(新增 LV_P64_SHOT 钩子,+~100 行,无删除)
+- src/LivingVillage.Desktop.Tests/P64EvidenceTests.fs(新,+3 测试)+ fsproj
+- src/LivingVillage.Desktop.Tests/PrototypeTests.fs(内容计数更新:内景元素 4→8;footprint 37→55)
+- scripts/analyze-p64.py(新)
+
+构建
+dotnet build LivingVillage.sln -c Release → 已成功生成,0 错误,1 警告(P40ArtTests.fs(38,28) FS0760,既有)
+
+测试
+dotnet test LivingVillage.sln -c Release --no-build
+- Desktop 313/313(310 → +3:P64EvidenceTests)
+- Kernel 119/119
+
+证据实跑(真实 Desktop + xvfb 1280x720)
+LV_P64_SHOT=1 LV_LEGACY_MAP=1 xvfb-run -a -s "-screen 0 1280x720x24"(exit=0)
+log:
+ p64-plan upper_band_props=11 upper_band_kinds=4 bridge_props=1 bridge_foot_tiles=3 bridge_abutments=4 interior_elements=8
+ p64-shot=p64-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside
+ p64-shot=p64-bridge tick=2592000 avatar=(1008,912) camera=(384,568) home=Outside
+ p64-shot=p64-interior tick=2592056 avatar=(1008,763) camera=(384,568) home=Inside (HomeId 1)
+(内景为真实 Sim.step 向门口移动后真实 Interact 进门,tick 前进 56)
+
+scripts/analyze-p64.py /tmp/opencode/lv-p64 docs/evidence/p64-analysis.txt → verdict: PASS
+ p64-overview.png 1280x720 mean=86.3 std=33.2 黑块=0 白块=0
+ p64-bridge.png 1280x720 mean=86.0 std=33.0 黑块=0 白块=0
+ p64-interior.png 1280x720 mean=118.7 std=54.1 黑块=0 白块=0
+ 俯瞰上半部内容密度(y120..360 非背景占比)= 0.1812,P62 同带基线 0.1030(+76%)
+ 桥区域木色像素占比(x560..720,y360..500)= 9604/22400 = 0.4288
+ 三帧两两不同(min mean_abs_diff=12.5);缺字空白位=0
+scripts/check-no-white-blocks.py 三帧 → checked=3 failures=0 OK
+
+确定性
+LivingVillage.Headless.dll --performance-baseline ×3 → final_digest=
+953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C ×3,performance_determinism=PASS
+
+边界
+- 未改 Kernel/Sim.fs、Sim.step、地图/seed 口径、HUD/对话框结构、字形表、进门流程/HomeMode 语义
+- 未引外部素材;未生成 512×384;未 push
+- 桥位置与通行逻辑未动(只加护岸石/栏杆贴图)
+- 逐帧视觉复核仍受本写入模型不支持图像输入限制(P60 G3),需 vision 能力方复核