Compare commits
525
Commits
071e338e82
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fee479af83 | ||
|
|
50207e9e6e | ||
|
|
34b16de279 | ||
|
|
8a2ea74f44 | ||
|
|
4ca3bbef55 | ||
|
|
f5fe219674 | ||
|
|
a073ccb59b | ||
|
|
b06fec17c7 | ||
|
|
0b59d7c23c | ||
|
|
9b5b09b35e | ||
|
|
db87270972 | ||
|
|
f99c881bca | ||
|
|
c50136017b | ||
|
|
7ac2224e47 | ||
|
|
4654789b01 | ||
|
|
48d3b0023b | ||
|
|
cb183fd127 | ||
|
|
8954914564 | ||
|
|
d65e3da9f3 | ||
|
|
37deb6e877 | ||
|
|
7808ca76db | ||
|
|
613b9886da | ||
|
|
dda3eed47d | ||
|
|
a916841bfc | ||
|
|
44bce9177c | ||
|
|
4e34e52097 | ||
|
|
9adbbee334 | ||
|
|
a46418d064 | ||
|
|
b2dbda8c95 | ||
|
|
54e07ca980 | ||
|
|
6f75c9a051 | ||
|
|
ac1a115e3f | ||
|
|
e758d6873a | ||
|
|
f3840c9637 | ||
|
|
51d453040f | ||
|
|
f50e2752bc | ||
|
|
e29e743ab3 | ||
|
|
b0d2463a92 | ||
|
|
2549cf7d69 | ||
|
|
dfe07eba27 | ||
|
|
fdb309f3bc | ||
|
|
a25ee83441 | ||
|
|
d6ce6ddb95 | ||
|
|
ecbbb6bb16 | ||
|
|
89162734d4 | ||
|
|
8b5d0d46fa | ||
|
|
0fb102d497 | ||
|
|
8c06c3b442 | ||
|
|
413c8e3e51 | ||
|
|
ae9ae47646 | ||
|
|
ddde6f8ab5 | ||
|
|
0aee05e1d9 | ||
|
|
3ac2cedc8d | ||
|
|
3086af2ccd | ||
|
|
954528a7c5 | ||
|
|
464cc26fd3 | ||
|
|
e524ff2924 | ||
|
|
5e4d96d910 | ||
|
|
14764a2e0a | ||
|
|
ab4f40e71c | ||
|
|
bc703c9f6f | ||
|
|
f2a1249440 | ||
|
|
558fca6f8f | ||
|
|
2f77560013 | ||
|
|
971996f6d5 | ||
|
|
d908a2c4a2 | ||
|
|
bc582be820 | ||
|
|
815e86f589 | ||
|
|
71290054b7 | ||
|
|
131e9a599a | ||
|
|
2132bbe3d3 | ||
|
|
db9d6132a8 | ||
|
|
0f53a67210 | ||
|
|
5db97d78a1 | ||
|
|
25198e2924 | ||
|
|
061df6f120 | ||
|
|
c1d9ad51db | ||
|
|
90e3e312fe | ||
|
|
a09681e287 | ||
|
|
3ac3243dfb | ||
|
|
7bf44b072c | ||
|
|
11b7a24a52 | ||
|
|
990481709c | ||
|
|
86049b3819 | ||
|
|
8fe128c5a8 | ||
|
|
91676c6e16 | ||
|
|
9b4518cd48 | ||
|
|
8c36c100b2 | ||
|
|
b7f6168dc8 | ||
|
|
a5d2491204 | ||
|
|
e8b3dbe7a4 | ||
|
|
83b170a4c7 | ||
|
|
40364345ab | ||
|
|
a8edd3c3a1 | ||
|
|
62d1dcecad | ||
|
|
0754f412a8 | ||
|
|
50ceca0b7d | ||
|
|
d743bd67b6 | ||
|
|
f6f9c9c0d4 | ||
|
|
0f23d34e9f | ||
|
|
28e3ffe146 | ||
|
|
ad2ea79c7d | ||
|
|
8917c190cf | ||
|
|
619b5e07ed | ||
|
|
728e5e612f | ||
|
|
cca5457454 | ||
|
|
0cfaec1626 | ||
|
|
7e6e540837 | ||
|
|
29782a3f0a | ||
|
|
826ef606df | ||
|
|
db5ca62e42 | ||
|
|
a1538a8633 | ||
|
|
f247d19325 | ||
|
|
65534cfd15 | ||
|
|
ae0f998ff4 | ||
|
|
c366012446 | ||
|
|
bf74684976 | ||
|
|
e53858a55c | ||
|
|
3084add460 | ||
|
|
6d1dd508fa | ||
|
|
6784ea5f08 | ||
|
|
edcb20d3d1 | ||
|
|
174494613a | ||
|
|
0eeff92e81 | ||
|
|
ed9d72a1c2 | ||
|
|
d9262a71f4 | ||
|
|
b1810ff4b2 | ||
|
|
785815002e | ||
|
|
a9ef681fb8 | ||
|
|
13aefdd3dd | ||
|
|
2cd734062a | ||
|
|
e7f2271164 | ||
|
|
1820eed0ff | ||
|
|
eb94e1d7db | ||
|
|
acab529c8d | ||
|
|
befa0ef1f6 | ||
|
|
8e25213e91 | ||
|
|
27b18b75c9 | ||
|
|
1b08d6b0fc | ||
|
|
20d0ae5990 | ||
|
|
c0ea009b28 | ||
|
|
72a50a4a1b | ||
|
|
fc9c8909ac | ||
|
|
cec295f34b | ||
|
|
a65af90168 | ||
|
|
f10907d8db | ||
|
|
aec0957b98 | ||
|
|
2d506a5ce8 | ||
|
|
da80360a60 | ||
|
|
3b9e8f32bd | ||
|
|
3bbd19a59c | ||
|
|
e6327b4571 | ||
|
|
a13f7c0b79 | ||
|
|
35b3de0d59 | ||
|
|
e6fb757480 | ||
|
|
27d0a3c764 | ||
|
|
137639773c | ||
|
|
f525629ab7 | ||
|
|
6396321a4d | ||
|
|
379a1ba8fd | ||
|
|
f4f85bc54c | ||
|
|
8e4f1d92fc | ||
|
|
e7acd530c5 | ||
|
|
903a2c566e | ||
|
|
6e17cae5c9 | ||
|
|
b81f9f2860 | ||
|
|
806de25068 | ||
|
|
c5e2087dde | ||
|
|
e0420d57a3 | ||
|
|
8ca9263fee | ||
|
|
1b07b87d37 | ||
|
|
65f07bf5ea | ||
|
|
191ea3b4d1 | ||
|
|
d60f1c6d04 | ||
|
|
ef96967d8a | ||
|
|
a7e3069b16 | ||
|
|
27fc5f0544 | ||
|
|
f7ef53ac48 | ||
|
|
e930a1dedf | ||
|
|
1e8d4ea888 | ||
|
|
2f3884be11 | ||
|
|
565fd80507 | ||
|
|
c80c1688fa | ||
|
|
54cade4181 | ||
|
|
51e8657bfb | ||
|
|
32c8d1ce43 | ||
|
|
314a8a4ce1 | ||
|
|
d2581afd26 | ||
|
|
059c2f743b | ||
|
|
26f60095bf | ||
|
|
93248f4d79 | ||
|
|
7f1920b329 | ||
|
|
447f77a13b | ||
|
|
6c13940cf4 | ||
|
|
5041b88bdf | ||
|
|
2dde7596a8 | ||
|
|
fb8b7919db | ||
|
|
55f1fb49aa | ||
|
|
4ab7ab8712 | ||
|
|
7af6fafaf0 | ||
|
|
d393e4d90f | ||
|
|
8418560aaf | ||
|
|
53cb52da9c | ||
|
|
52ce2f125c | ||
|
|
16207d353a | ||
|
|
b543c26c95 | ||
|
|
9b1a18c1eb | ||
|
|
8af0d5af8c | ||
|
|
accd07c91d | ||
|
|
4a68e580db | ||
|
|
29a641c540 | ||
|
|
cc3a377841 | ||
|
|
faa40a772c | ||
|
|
877dee40bc | ||
|
|
c0bc92a469 | ||
|
|
3bba4f34f0 | ||
|
|
224007908d | ||
|
|
dd20d5b96c | ||
|
|
64617018ed | ||
|
|
5a233e08bb | ||
|
|
5475391647 | ||
|
|
9694f50ee6 | ||
|
|
f3f23cac88 | ||
|
|
54e81e576f | ||
|
|
9767b0a28c | ||
|
|
5f6bc11d6b | ||
|
|
c4bc9b44e9 | ||
|
|
afde233203 | ||
|
|
cb0a58bc28 | ||
|
|
1a6cc43f2e | ||
|
|
265ce30f81 | ||
|
|
b7a7cc01d4 | ||
|
|
fe4289ed81 | ||
|
|
679a9273c9 | ||
|
|
e80c6c04b5 | ||
|
|
e3d606c137 | ||
|
|
32ca5b34c5 | ||
|
|
3f02b41f76 | ||
|
|
bd3a97ec74 | ||
|
|
bc1299acf5 | ||
|
|
57131ec616 | ||
|
|
9a26f9ab8c | ||
|
|
50b2dbeba4 | ||
|
|
92546af5b7 | ||
|
|
dd74f65c4b | ||
|
|
19fc3f50c7 | ||
|
|
3379e283e4 | ||
|
|
74228df24b | ||
|
|
a44eca6414 | ||
|
|
de6e7ced86 | ||
|
|
990a951e36 | ||
|
|
d1ac5ba065 | ||
|
|
f135814b8b | ||
|
|
9dbfa36b86 | ||
|
|
49445d4a4d | ||
|
|
206cdb9c80 | ||
|
|
bc0cf3a4a1 | ||
|
|
336a8cd0b3 | ||
|
|
56bf5a3e86 | ||
|
|
21b5d3a31a | ||
|
|
3f868b0e41 | ||
|
|
71719f9186 | ||
|
|
27dec31228 | ||
|
|
0b7727a66c | ||
|
|
7fae76c723 | ||
|
|
55c29f1192 | ||
|
|
5df2e56faa | ||
|
|
baa4f2d563 | ||
|
|
59a1385536 | ||
|
|
d9e4e9bd2f | ||
|
|
f6176d3f19 | ||
|
|
4c8a18aa75 | ||
|
|
4eaadd1c53 | ||
|
|
d7c5fadd39 | ||
|
|
451e0732c3 | ||
|
|
a3caba14e1 | ||
|
|
2c9603b8b0 | ||
|
|
91a044e4f2 | ||
|
|
03100beabe | ||
|
|
cc72d70946 | ||
|
|
729df14dae | ||
|
|
860136f709 | ||
|
|
e01e04c62d | ||
|
|
a2e739396b | ||
|
|
027861b765 | ||
|
|
a025d77684 | ||
|
|
7564423c85 | ||
|
|
d369d1c399 | ||
|
|
7e66b6c753 | ||
|
|
3c65c71494 | ||
|
|
f5f85ae08c | ||
|
|
11ee7b1a6e | ||
|
|
96c17719cc | ||
|
|
0172e523f7 | ||
|
|
5f9d7c49e8 | ||
|
|
fd643f55a2 | ||
|
|
4da2bb492b | ||
|
|
7fe58d83bb | ||
|
|
7297a4c050 | ||
|
|
ebc851c26e | ||
|
|
127f22fa1e | ||
|
|
dbf5cb8f1b | ||
|
|
f7e189c7e4 | ||
|
|
12f04d6e8b | ||
|
|
8d52b20d40 | ||
|
|
fc5c9b2a56 | ||
|
|
78dc82da07 | ||
|
|
ed3ee23709 | ||
|
|
d4747dd7e1 | ||
|
|
42c4a74923 | ||
|
|
47750010b8 | ||
|
|
9a84df6be1 | ||
|
|
aed39a4d76 | ||
|
|
bb9daa572c | ||
|
|
b08032750f | ||
|
|
830097a838 | ||
|
|
5619773227 | ||
|
|
7e2368f5c4 | ||
|
|
7e8c30d552 | ||
|
|
2f60685aec | ||
|
|
bf2d75c9b0 | ||
|
|
647196f4ca | ||
|
|
c395c83b69 | ||
|
|
005bcc5378 | ||
|
|
86336e320b | ||
|
|
46f9e49819 | ||
|
|
5afa8205bf | ||
|
|
e65d6b8c49 | ||
|
|
7dde98ccb7 | ||
|
|
96006c60eb | ||
|
|
31aa7706d2 | ||
|
|
2a67ecbb90 | ||
|
|
4f3b42dfec | ||
|
|
3a7d20d16b | ||
|
|
2c238e7b25 | ||
|
|
1f0a2bcd53 | ||
|
|
20718621ee | ||
|
|
0c5e0022f2 | ||
|
|
c3011ca8d1 | ||
|
|
d01286360e | ||
|
|
97869fa7f4 | ||
|
|
5c4da08d10 | ||
|
|
3335f02a0f | ||
|
|
37d972e263 | ||
|
|
8ea9bece03 | ||
|
|
4a17d0e0f5 | ||
|
|
7d4377b26a | ||
|
|
a3b2b1ae34 | ||
|
|
8e3d79d5f2 | ||
|
|
9a081a928f | ||
|
|
e10005b1ed | ||
|
|
c2b59f04f9 | ||
|
|
d9c3f79ba7 | ||
|
|
7342082e3c | ||
|
|
a1cc8e6063 | ||
|
|
7dd450c64c | ||
|
|
bd6143c6d1 | ||
|
|
a5885ff4c0 | ||
|
|
75670dffe1 | ||
|
|
4c00c72ec3 | ||
|
|
2124f69e58 | ||
|
|
fad6a927ac | ||
|
|
8d8bbf0ffe | ||
|
|
99f3f57bea | ||
|
|
2cbbdf2efd | ||
|
|
12430ba899 | ||
|
|
fdae2084f7 | ||
|
|
c675bed91d | ||
|
|
80771caf9a | ||
|
|
b3d329388b | ||
|
|
bf559632dd | ||
|
|
9d5ec10676 | ||
|
|
f159c6c712 | ||
|
|
e97d912bac | ||
|
|
9ec8ec2dbd | ||
|
|
e31233685b | ||
|
|
d1c7ce27d2 | ||
|
|
1545bd42d6 | ||
|
|
592809bfda | ||
|
|
be3047979b | ||
|
|
bb34f443c4 | ||
|
|
d473242ba1 | ||
|
|
e59206b9b2 | ||
|
|
9caa30eb16 | ||
|
|
6c7c724410 | ||
|
|
0c15dc961c | ||
|
|
e196578c1a | ||
|
|
25b77f1d14 | ||
|
|
e4dc1efac0 | ||
|
|
af3df735c6 | ||
|
|
9919d66b94 | ||
|
|
4167edf68a | ||
|
|
10c62e1fa7 | ||
|
|
b7e706e798 | ||
|
|
257449cd08 | ||
|
|
c4cbc5feb2 | ||
|
|
65a4fe2bb8 | ||
|
|
15168ffd47 | ||
|
|
6b78f8fd71 | ||
|
|
231085cf29 | ||
|
|
25feff8852 | ||
|
|
018ae7d6d7 | ||
|
|
c11123f7ee | ||
|
|
0084760ee0 | ||
|
|
a0f556e135 | ||
|
|
f76ad96990 | ||
|
|
c77639a9d7 | ||
|
|
d2a1f80a61 | ||
|
|
70e76cd073 | ||
|
|
88b9fe030b | ||
|
|
0a8d6025cd | ||
|
|
82f4ff69e3 | ||
|
|
6ea80613f8 | ||
|
|
dee23f2710 | ||
|
|
71390fd7f6 | ||
|
|
a791117e98 | ||
|
|
020d6b014e | ||
|
|
a7a68be583 | ||
|
|
1a5abc6516 | ||
|
|
b84c3499d1 | ||
|
|
0a759f13ae | ||
|
|
41a5acbd43 | ||
|
|
acc0df7ee2 | ||
|
|
8001b11558 | ||
|
|
6a7c032a4d | ||
|
|
570f686e45 | ||
|
|
e6e96d86d7 | ||
|
|
231b3bd857 | ||
|
|
256253343f | ||
|
|
e7aafdce39 | ||
|
|
5f766c5bf1 | ||
|
|
7645c55149 | ||
|
|
1f6c46d9f5 | ||
|
|
e1a1651e15 | ||
|
|
470b8fe06c | ||
|
|
aec7a2e1ee | ||
|
|
52ee6bec9e | ||
|
|
3170e9c28a | ||
|
|
c3e4c68b97 | ||
|
|
149c302234 | ||
|
|
67d37c3e0b | ||
|
|
a257976ae2 | ||
|
|
a19737b160 | ||
|
|
9444b43d3f | ||
|
|
94642345b5 | ||
|
|
d3ae1d227d | ||
|
|
7097eadf41 | ||
|
|
deb1bcb237 | ||
|
|
339a118895 | ||
|
|
25467ac502 | ||
|
|
4cefcff849 | ||
|
|
c2b8772e23 | ||
|
|
243a3593bb | ||
|
|
9c711860a8 | ||
|
|
286730f88c | ||
|
|
9b2ee480a8 | ||
|
|
4fb8312a33 | ||
|
|
5536bc0411 | ||
|
|
73cda6b867 | ||
|
|
0bdc4886cf | ||
|
|
74fc69698a | ||
|
|
dff514c774 | ||
|
|
02d047c72a | ||
|
|
e58c5f5e17 | ||
|
|
2a53dbb596 | ||
|
|
381083dcaf | ||
|
|
8b6e515dbf | ||
|
|
21fce14419 | ||
|
|
6a709be988 | ||
|
|
ce36e98dde | ||
|
|
083dbe8d02 | ||
|
|
6f91d35667 | ||
|
|
58a3534bf9 | ||
|
|
0cbe2641ff | ||
|
|
f710119423 | ||
|
|
c8b730e6a2 | ||
|
|
8291273392 | ||
|
|
c2a736b46e | ||
|
|
8e0d8ef32a | ||
|
|
8b4e6b99aa | ||
|
|
aae045d3c6 | ||
|
|
17390c9b0d | ||
|
|
6a80649a7f | ||
|
|
f69cb05c07 | ||
|
|
603354f89a | ||
|
|
21d89b988d | ||
|
|
6b40805e64 | ||
|
|
529047836f | ||
|
|
fd4b48b94b | ||
|
|
32be96ac76 | ||
|
|
c67facdf48 | ||
|
|
8d55771647 | ||
|
|
5055cc990b | ||
|
|
1c9ec77812 | ||
|
|
c34a7d3c6b | ||
|
|
d7b6608d0a | ||
|
|
5516997fe1 | ||
|
|
ebf0fbe04b | ||
|
|
999a8b5e97 | ||
|
|
dc2ccccb36 | ||
|
|
89392846b7 | ||
|
|
e2d9144cca | ||
|
|
4013249135 | ||
|
|
3fe0b20207 | ||
|
|
f7189923dd | ||
|
|
b9866afa02 | ||
|
|
19daef97d3 | ||
|
|
002400a080 | ||
|
|
fefe7d847f | ||
|
|
b1253fb066 | ||
|
|
a172288223 | ||
|
|
2be3b9cab9 | ||
|
|
d853b91b0b | ||
|
|
b84bade045 | ||
|
|
39f6068461 | ||
|
|
285528b7a3 | ||
|
|
5dde0c5ec2 | ||
|
|
6077e02ebe | ||
|
|
6aa7397c2e | ||
|
|
7121092794 | ||
|
|
fb4ad23190 | ||
|
|
e246ce382b | ||
|
|
0f12c748e9 | ||
|
|
4d72de8973 | ||
|
|
b3b82ef03e |
@@ -14,12 +14,14 @@ test:
|
|||||||
$(MAKE) test-s2
|
$(MAKE) test-s2
|
||||||
$(MAKE) test-s3
|
$(MAKE) test-s3
|
||||||
$(MAKE) test-supply
|
$(MAKE) test-supply
|
||||||
|
$(MAKE) test-business
|
||||||
$(MAKE) test-s4
|
$(MAKE) test-s4
|
||||||
$(MAKE) test-s5
|
$(MAKE) test-s5
|
||||||
$(MAKE) test-s6
|
$(MAKE) test-s6
|
||||||
$(MAKE) test-mvp
|
$(MAKE) test-mvp
|
||||||
$(MAKE) test-acceptance
|
$(MAKE) test-acceptance
|
||||||
$(MAKE) test-ui
|
$(MAKE) test-ui
|
||||||
|
$(MAKE) test-transport
|
||||||
$(MAKE) test-perf
|
$(MAKE) test-perf
|
||||||
|
|
||||||
test-s0:
|
test-s0:
|
||||||
@@ -32,8 +34,13 @@ test-s0:
|
|||||||
$(GODOT) --headless --path . --script res://tests/s0/test_runtime_integration.gd
|
$(GODOT) --headless --path . --script res://tests/s0/test_runtime_integration.gd
|
||||||
|
|
||||||
test-s1:
|
test-s1:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s1/test_dimension_batch_save.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s1/test_facility_resize_preview.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s1/test_weighted_resize_runtime.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s1/test_original_facility_dimensions.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s1/test_world_service.gd
|
$(GODOT) --headless --path . --script res://tests/s1/test_world_service.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s1/test_path_service.gd
|
$(GODOT) --headless --path . --script res://tests/s1/test_path_service.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s1/test_path_snapshot_transit_guard.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s1/test_path_congestion.gd
|
$(GODOT) --headless --path . --script res://tests/s1/test_path_congestion.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s1/test_construction_service.gd
|
$(GODOT) --headless --path . --script res://tests/s1/test_construction_service.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s1/test_excavation_service.gd
|
$(GODOT) --headless --path . --script res://tests/s1/test_excavation_service.gd
|
||||||
@@ -44,11 +51,24 @@ test-s1:
|
|||||||
$(GODOT) --headless --path . --script res://tests/s1/test_runtime_world_construction.gd
|
$(GODOT) --headless --path . --script res://tests/s1/test_runtime_world_construction.gd
|
||||||
|
|
||||||
test-s2:
|
test-s2:
|
||||||
|
$(GODOT) --headless --path . --script tests/environment/test_cleaning_access.gd
|
||||||
|
$(GODOT) --headless --path . --script tests/ui/test_cleaning_gameplay.gd
|
||||||
|
$(GODOT) --headless --path . --script tests/environment/test_runtime_cleanliness.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/environment/test_facility_cleanliness.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_facility_upkeep_accrual.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_facility_upkeep_settlement.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s2/test_facility_service.gd
|
$(GODOT) --headless --path . --script res://tests/s2/test_facility_service.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_service_start_slots.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s2/test_inventory_logistics.gd
|
$(GODOT) --headless --path . --script res://tests/s2/test_inventory_logistics.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s2/test_economy_service.gd
|
$(GODOT) --headless --path . --script res://tests/s2/test_economy_service.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s2/test_ledger_backed_resources.gd
|
$(GODOT) --headless --path . --script res://tests/s2/test_ledger_backed_resources.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s2/test_mana_network_service.gd
|
$(GODOT) --headless --path . --script res://tests/s2/test_mana_network_service.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_mana_reserve_cycle.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_runtime_mana_reserve.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_mana_reserve_new_pid.gd -- writer
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_mana_reserve_new_pid.gd -- reader
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_mana_recovery_new_pid.gd -- writer
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_mana_recovery_new_pid.gd -- reader
|
||||||
$(GODOT) --headless --path . --script res://tests/s2/test_runtime_operations_cycle.gd
|
$(GODOT) --headless --path . --script res://tests/s2/test_runtime_operations_cycle.gd
|
||||||
|
|
||||||
test-s3:
|
test-s3:
|
||||||
@@ -73,10 +93,23 @@ test-s5:
|
|||||||
|
|
||||||
test-s6:
|
test-s6:
|
||||||
$(GODOT) --headless --path . --script res://tests/s6/test_save_operations.gd
|
$(GODOT) --headless --path . --script res://tests/s6/test_save_operations.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s6/test_save_preflight.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s6/test_save_recovery_preservation.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s6/test_runtime_snapshot_serialization.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s6/test_performance_budget.gd
|
$(GODOT) --headless --path . --script res://tests/s6/test_performance_budget.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/s6/test_runtime_save_lifecycle.gd
|
$(GODOT) --headless --path . --script res://tests/s6/test_runtime_save_lifecycle.gd
|
||||||
|
|
||||||
test-mvp:
|
test-mvp:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_premium_room_guest_flow.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_runtime_mana_depletion.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_whole_tower_outage.gd -- writer
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_whole_tower_outage.gd -- reader
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_premium_room.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_original_room_zones.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_upkeep_loss_streak.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_upkeep_legacy_midnight.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_runtime_upkeep.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_upkeep_construction_boundaries.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/mvp/test_operations_coordinator.gd
|
$(GODOT) --headless --path . --script res://tests/mvp/test_operations_coordinator.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/mvp/test_mvp_content_catalog.gd
|
$(GODOT) --headless --path . --script res://tests/mvp/test_mvp_content_catalog.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/mvp/test_progression_service.gd
|
$(GODOT) --headless --path . --script res://tests/mvp/test_progression_service.gd
|
||||||
@@ -87,13 +120,43 @@ test-acceptance:
|
|||||||
$(GODOT) --headless --path . --script res://tests/mvp/test_runtime_operations_acceptance.gd
|
$(GODOT) --headless --path . --script res://tests/mvp/test_runtime_operations_acceptance.gd
|
||||||
|
|
||||||
test-ui:
|
test-ui:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_chapel_boundaries.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_chapel_gameplay.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_chapel_service.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_dashboard_coalescing.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_anri_floor_pricing.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_fine_cleaning_effect.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/mvp/test_amelia_donations.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_anri_recruitment.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_layer_skin.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_world_tree_rank.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_rank_pointer.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_layer_presentation.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_original_build_pointer.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_dimension_migration_ui.gd
|
||||||
|
python3 tools/run_upkeep_ui_flow.py --godot "$(GODOT)"
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_upkeep_inspector.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_staff_rest.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_staff_rescue.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_guest_observation.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_guest_decision_log.gd
|
||||||
$(MAKE) test-pixel-ui
|
$(MAKE) test-pixel-ui
|
||||||
$(GODOT) --headless --path . --script res://tests/ui/test_main_dashboard.gd
|
$(GODOT) --headless --path . --script res://tests/ui/test_main_dashboard.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/ui/test_staff_management.gd
|
$(GODOT) --headless --path . --script res://tests/ui/test_staff_management.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/ui/test_supply_management.gd
|
$(GODOT) --headless --path . --script res://tests/ui/test_supply_management.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_supply_auto_purchase_ui.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_business_management.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_elevator_management.gd
|
||||||
$(MAKE) test-opening
|
$(MAKE) test-opening
|
||||||
|
|
||||||
test-perf:
|
test-perf:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/performance/test_facility_reachability.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/performance/test_snapshot_ownership.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/performance/test_world_snapshot_cache.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/performance/test_lazy_digest.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/performance/test_path_membership.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/performance/test_system_optimization.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/performance/test_digest_performance.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/performance/test_perf_mvp_001.gd
|
$(GODOT) --headless --path . --script res://tests/performance/test_perf_mvp_001.gd
|
||||||
|
|
||||||
test-perf-full:
|
test-perf-full:
|
||||||
@@ -106,6 +169,7 @@ check:
|
|||||||
export-windows:
|
export-windows:
|
||||||
mkdir -p build/windows
|
mkdir -p build/windows
|
||||||
$(GODOT) --headless --path . --export-release "Windows Desktop"
|
$(GODOT) --headless --path . --export-release "Windows Desktop"
|
||||||
|
$(MAKE) test-exported-opening
|
||||||
|
|
||||||
# Pixel cutaway: interactive disposable inn, capture and input regression.
|
# Pixel cutaway: interactive disposable inn, capture and input regression.
|
||||||
.PHONY: preview-pixel capture-pixel test-pixel-ui
|
.PHONY: preview-pixel capture-pixel test-pixel-ui
|
||||||
@@ -116,6 +180,7 @@ capture-pixel:
|
|||||||
$(GODOT) --path . --script res://tests/ui/capture_pixel_tower.gd
|
$(GODOT) --path . --script res://tests/ui/capture_pixel_tower.gd
|
||||||
|
|
||||||
test-pixel-ui:
|
test-pixel-ui:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_room_presentation.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/ui/test_pixel_tower.gd
|
$(GODOT) --headless --path . --script res://tests/ui/test_pixel_tower.gd
|
||||||
|
|
||||||
.PHONY: test-opening capture-opening
|
.PHONY: test-opening capture-opening
|
||||||
@@ -132,6 +197,10 @@ test-supply:
|
|||||||
$(GODOT) --headless --path . --script res://tests/supply/test_supply_save_migration.gd
|
$(GODOT) --headless --path . --script res://tests/supply/test_supply_save_migration.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/supply/test_supply_logistics_bridge.gd
|
$(GODOT) --headless --path . --script res://tests/supply/test_supply_logistics_bridge.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/supply/test_supply_management_service.gd
|
$(GODOT) --headless --path . --script res://tests/supply/test_supply_management_service.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/supply/test_supply_auto_purchase.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/supply/test_normal_auto_purchase_chain.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/supply/test_supply_auto_purchase_boundaries.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/supply/test_supply_auto_purchase_destruction.gd
|
||||||
$(GODOT) --headless --path . --script res://tests/supply/test_normal_supply_chain.gd
|
$(GODOT) --headless --path . --script res://tests/supply/test_normal_supply_chain.gd
|
||||||
|
|
||||||
capture-supply:
|
capture-supply:
|
||||||
@@ -139,3 +208,78 @@ capture-supply:
|
|||||||
|
|
||||||
preview-supply:
|
preview-supply:
|
||||||
THE_TREE_SUPPLY_PREVIEW=1 $(GODOT) --path . --script res://tests/supply/test_normal_supply_chain.gd
|
THE_TREE_SUPPLY_PREVIEW=1 $(GODOT) --path . --script res://tests/supply/test_normal_supply_chain.gd
|
||||||
|
|
||||||
|
.PHONY: test-business
|
||||||
|
test-business:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_facility_pricing.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/business/test_business_operations.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/business/test_business_closure.gd
|
||||||
|
|
||||||
|
.PHONY: preview-business capture-business
|
||||||
|
preview-business:
|
||||||
|
THE_TREE_BUSINESS_PREVIEW=1 THE_TREE_SUPPLY_PREVIEW=1 $(GODOT) --path . --script res://tests/supply/test_normal_supply_chain.gd
|
||||||
|
|
||||||
|
capture-business:
|
||||||
|
THE_TREE_BUSINESS_UI_CAPTURE=1 $(GODOT) --path . --script res://tests/ui/test_business_management.gd
|
||||||
|
|
||||||
|
.PHONY: test-transport capture-transport preview-transport
|
||||||
|
test-transport:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_dormitory_dimension_migration.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_staff_dormitory.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_dormitory_shift_cycle.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_shift_rush.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_staff_rest.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_rescue_elevator.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_staff_rescue.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_task_work_clock.gd
|
||||||
|
$(MAKE) test-stairs
|
||||||
|
$(GODOT) --headless --path . --script res://tests/world/test_elevator_topology.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_elevator_service.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/staff/test_staff_commute.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_transport_save.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_transport_density_migration.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_transport_boundaries.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_runtime_transport.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_runtime_warp.gd -- writer
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_runtime_warp.gd -- reader
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_route_wait_choice.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_route_wait_choice.gd -- writer
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_route_wait_choice.gd -- reader
|
||||||
|
$(GODOT) --headless --path . --script res://tests/s2/test_new_pid_pairs.gd
|
||||||
|
|
||||||
|
capture-transport:
|
||||||
|
THE_TREE_TRANSPORT_CAPTURE=1 $(GODOT) --path . --script res://tests/transport/test_runtime_transport.gd
|
||||||
|
|
||||||
|
preview-transport:
|
||||||
|
THE_TREE_TRANSPORT_PREVIEW=1 $(GODOT) --path . --script res://tests/transport/test_runtime_transport.gd
|
||||||
|
|
||||||
|
.PHONY: test-stairs test-transport-comparison
|
||||||
|
test-stairs:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/world/test_path_vertical_policy.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/world/test_path_transit_density.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/world/test_stair_infrastructure.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/world/test_legacy_stairs.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_runtime_stairs.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/ui/test_stair_transport_details.gd
|
||||||
|
|
||||||
|
test-transport-comparison:
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_transport_comparison.gd
|
||||||
|
$(GODOT) --headless --path . --script res://tests/transport/test_runtime_transport_comparison.gd
|
||||||
|
|
||||||
|
# Check the actual shipped data outside this checkout, including first build.
|
||||||
|
WINDOWS_PCK ?= build/windows/TheTree.pck
|
||||||
|
MACOS_APP ?= build/macos/TheTree.app
|
||||||
|
.PHONY: export-macos
|
||||||
|
export-macos:
|
||||||
|
mkdir -p build/macos
|
||||||
|
$(GODOT) --headless --path . --export-release "macOS" "$(MACOS_APP)"
|
||||||
|
python3 tools/verify_exported_opening.py "$(MACOS_APP)/Contents/Resources/The Tree.pck" --godot "$(GODOT)"
|
||||||
|
|
||||||
|
.PHONY: test-exported-opening
|
||||||
|
test-exported-opening:
|
||||||
|
python3 tools/verify_exported_opening.py "$(WINDOWS_PCK)" --godot "$(GODOT)"
|
||||||
|
|
||||||
|
# Exhaustive discovery includes comparison suites outside the ordinary smoke run.
|
||||||
|
.PHONY: test-all
|
||||||
|
test-all:
|
||||||
|
python3 tools/run_all_tests.py --godot "$(GODOT)"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Godotが開いたら、右上の実行ボタンまたは `F5` でプロジェクトを起動できます。エディタを開かず直接実行する場合は `make run` を使用します。
|
Godotが開いたら、右上の実行ボタンまたは `F5` でプロジェクトを起動できます。エディタを開かず直接実行する場合は `make run` を使用します。
|
||||||
|
|
||||||
通常の新規ゲームは一時停止から始まります。左上の開業ガイドに沿って受付・客室・通路を建て、「従業員」で雇用・配属・毎日の勤務帯を決めます。「帳簿」で翌朝06:00の決算を確認できます。具体的な最小宿の建て方は [試遊ガイド](docs/PLAYTEST_GUIDE.md#通常uiで最初の宿を開業する) を参照してください。
|
通常の新規ゲームは一時停止から始まります。左上の開業ガイドに沿って受付・客室・通路を建て、「従業員」で雇用・配属・毎日の勤務帯を決めます。「帳簿」で毎日00:00の決算を確認できます。具体的な最小宿の建て方は [試遊ガイド](docs/PLAYTEST_GUIDE.md#通常uiで最初の宿を開業する) を参照してください。
|
||||||
|
|
||||||
## ドット絵の世界樹を見る
|
## ドット絵の世界樹を見る
|
||||||
|
|
||||||
|
|||||||
Executable
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
# 同伴救護・待機室休息を反映した検証済みドット版
|
||||||
|
open -n '/Users/korizatou114/Projects/とりにく工房ゲーム制作部/build/macos/TheTree-Labor-2026-09-29.app'
|
||||||
+57
@@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"unit_id": "P04-01",
|
||||||
|
"title": "同時発生の更新規約",
|
||||||
|
"original_work": "閉店、停電、破壊、退出、課金、シフト交代、00:00決算の順序を明記する。",
|
||||||
|
"original_acceptance": "順序境界で停止中課金、二重決算、予約の孤立がない。",
|
||||||
|
"accepted": true,
|
||||||
|
"C": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"tree": "2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"normal_candidate_structure_verified": true,
|
||||||
|
"actual_main_matches_C": true,
|
||||||
|
"source_Q_applicability_verified": true,
|
||||||
|
"selected_source_files_all_actual_SHA_equal": 1369,
|
||||||
|
"runner_records_consistent": true,
|
||||||
|
"all15_plus_EV_verified": true,
|
||||||
|
"all_seven_domains_verified": true,
|
||||||
|
"all_six_actual_D05_approvals_preserved": true,
|
||||||
|
"native6_and_24_owned_phases_pass": true,
|
||||||
|
"registered_four_gates": [
|
||||||
|
{
|
||||||
|
"kind": "validation",
|
||||||
|
"commit_sha": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7e1c6381e5fb4c7f903d8bec7cfbdb84-validation.json",
|
||||||
|
"passed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "review",
|
||||||
|
"commit_sha": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/01b99749cab449ad8052e6dfe031162f/result.json",
|
||||||
|
"passed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "integration",
|
||||||
|
"commit_sha": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/d75224c26cca4bf197e5438693d0f8a0-integration.json",
|
||||||
|
"passed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "final",
|
||||||
|
"commit_sha": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/08c6bb8df052494792477242866eaa70-final.json",
|
||||||
|
"passed": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"independent_review_high_medium_critical": 0,
|
||||||
|
"full_regression_execution": "Historical S47 full184/21903/329parse/186owned reused under current unchanged verifier and complete selected-source equivalence; no execution relabel",
|
||||||
|
"test_local_control_execution": "Historical S50, unchanged49 executed files and retained exact1502 inputs; independently accepted reuse; current S51 raw verified separately",
|
||||||
|
"original_packages": 30,
|
||||||
|
"original_units": 88,
|
||||||
|
"formal_before": 16,
|
||||||
|
"formal_after": 17,
|
||||||
|
"partial_credit": false,
|
||||||
|
"whole_goal_accepted": false,
|
||||||
|
"global_remaining": "Windows same-release device, whole UI/content/assets/routes/ends/encyclopedia/performance/save migration/full play and unresolved production values remain separate unmet original requirements",
|
||||||
|
"accepted_at_jst": "2026-10-19T00:54:23.322453+09:00"
|
||||||
|
}
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_S51_APPROVED_RUNNER_SNAPSHOT.sqlite",
|
||||||
|
"sha256": "438f09814bcaf80411a2d7861973e37c06a55a9f97bb5cea7e11a6cd7b5ead68",
|
||||||
|
"actual_state": {
|
||||||
|
"state": "approved",
|
||||||
|
"submitted": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"main_base": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81"
|
||||||
|
},
|
||||||
|
"kind": "Real sqlite backup taken after normal approval before integrate"
|
||||||
|
}
|
||||||
+228
@@ -0,0 +1,228 @@
|
|||||||
|
{
|
||||||
|
"candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"submission": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_ACTUAL_NORMAL_C_DB_JOIN.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_ACTUAL_NORMAL_C_DB_JOIN.json",
|
||||||
|
"bytes": 3364,
|
||||||
|
"sha256": "0e2f2fa7a11c80bc95c492d27c00f8d016551238d6d60def89bdfed75723e8dc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_ACTUAL_NORMAL_CANDIDATE_AUDIT.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_ACTUAL_NORMAL_CANDIDATE_AUDIT.json",
|
||||||
|
"bytes": 1536,
|
||||||
|
"sha256": "8aee41126cac0f0efb83c4895386eae66b6915282819a7f84a3872da3247debb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_STANDING_OWNER_AUTHORIZATION_APPLICATION.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_STANDING_OWNER_AUTHORIZATION_APPLICATION.json",
|
||||||
|
"bytes": 739,
|
||||||
|
"sha256": "244b9b53ca1842caba618ca4ea846ff97d334b22a4bb6c719b0e43ece1df4922"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ACTUAL_S51_APPROVED_RUNNER_SNAPSHOT_PIN.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_S51_APPROVED_RUNNER_SNAPSHOT_PIN.json",
|
||||||
|
"bytes": 561,
|
||||||
|
"sha256": "5ebd29cd0771b67017b562fdd290f21cb8e42f781ef18bf6484369e4405c98cb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_RETAINED_TEST_LOCAL_CONTROLS_APPLICABILITY.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_RETAINED_TEST_LOCAL_CONTROLS_APPLICABILITY.json",
|
||||||
|
"bytes": 2503,
|
||||||
|
"sha256": "aefd362094cb5b49fd12a52b5db0ef8a6338e099308ea5f1f04eab8f13db0f1f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_RAW_CROSS_VERSION_SCOPE.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_RAW_CROSS_VERSION_SCOPE.json",
|
||||||
|
"bytes": 2523,
|
||||||
|
"sha256": "20fe4bfba87fc4591658e0aec03a519c7bc81fe98ce1a6ef1200f470eb953b85"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_M_SOURCE_SUBRANGE_CROSSWALK.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_M_SOURCE_SUBRANGE_CROSSWALK.json",
|
||||||
|
"bytes": 10479,
|
||||||
|
"sha256": "339444c1c36ab445c1041c4445fe2813667c1a5aefc482def07c300e18921f17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_POST_REVIEW_EXIT_SOURCE_EXCERPT.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_POST_REVIEW_EXIT_SOURCE_EXCERPT.json",
|
||||||
|
"bytes": 3868,
|
||||||
|
"sha256": "f6a306965d8249e671b4311fae217b2d6b0d7cbfafead0b5a21b181cbbb0d8c2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_Q51_NATIVE_BATCH_PROGRESS.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_BATCH_PROGRESS.json",
|
||||||
|
"bytes": 9299,
|
||||||
|
"sha256": "2b688005703c7660c64fd7f0ae83d960eba97ca050122fca5e8bc1693aba4c91"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_INDEX_AND_FULL_EXISTING_ROUTE.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_INDEX_AND_FULL_EXISTING_ROUTE.json",
|
||||||
|
"bytes": 422114,
|
||||||
|
"sha256": "d0ba3fd38a97ec7b1cd66d87b8b0d0cd8565166b31b79351954303451a0041f1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_PROOF_READ_SCOPE_CONTROLS.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_PROOF_READ_SCOPE_CONTROLS.json",
|
||||||
|
"bytes": 3933,
|
||||||
|
"sha256": "f6fc45dfc86d6fde040433f5b562605aabd2776daff3fad0eb95c2c64a67c77f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_CURRENT_BEFORE_WHOLE_REVIEW.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_CURRENT_BEFORE_WHOLE_REVIEW.json",
|
||||||
|
"bytes": 4499,
|
||||||
|
"sha256": "8a4b254f38c5c4f47df2e8cfb054c22f50e08cb30ebff9648fe5d8686da780cc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_78581500_REVIEW_SUPPLEMENT.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_78581500_REVIEW_SUPPLEMENT.json",
|
||||||
|
"bytes": 4908,
|
||||||
|
"sha256": "77493f32d6525f0c717adfc348240ace538299c43ff39880e247874ec7623f41"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "accepted-index.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-evidence/index.json",
|
||||||
|
"bytes": 3214632,
|
||||||
|
"sha256": "d25097e8ea4f1b2617e299b69fdf4a0f530d76e9f51daace0dabcb525ba7ba49"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "historical-full-source-map.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-final-full-2cd73406-controller/run/source-start.json",
|
||||||
|
"bytes": 416197,
|
||||||
|
"sha256": "f3bedbcad504c42904017dd64029d5e008372ea6bcfd93e6f88c34fa24b963bf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "review-root-material-manifest.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-root-acceptance-78581500/ROOT_MATERIAL_MANIFEST.json",
|
||||||
|
"bytes": 12175,
|
||||||
|
"sha256": "7f27e52e23892ee079ae124e5f5af18ecff28b99a498f7e4bbdecece2eeae0cc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "validation/receipt.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7e1c6381e5fb4c7f903d8bec7cfbdb84-validation.json",
|
||||||
|
"bytes": 365,
|
||||||
|
"sha256": "a5b40c80ba8ac307ec825b89a4384284b6dbcbf93d4b8f1d2c54f772fedd380c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "validation/command.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/command.json",
|
||||||
|
"bytes": 729,
|
||||||
|
"sha256": "f591fedfa02ebc70fffe0f6ea44a752854d72d7a91a43ae66802ccef4ea0a583"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "validation/stdout.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/stdout.log",
|
||||||
|
"bytes": 170,
|
||||||
|
"sha256": "562d7ec566286433aa2cceb39a40f4fdecfe65b349be00d885c7c87575fb9041"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "validation/stderr.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "validation/sandbox.sb",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/sandbox.sb",
|
||||||
|
"bytes": 2132,
|
||||||
|
"sha256": "de905ae8f6f4f29d101e7cd7cbff66945fba137cd922ac4efd09923afbb084f1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "review/receipt.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/01b99749cab449ad8052e6dfe031162f/result.json",
|
||||||
|
"bytes": 8091,
|
||||||
|
"sha256": "11ba2641723bf09560e01ee7d67e543c14946d696718c3bff83081319e71be1b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "review/command.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/01b99749cab449ad8052e6dfe031162f/command.json",
|
||||||
|
"bytes": 1836,
|
||||||
|
"sha256": "77ee9a18a0409c28bf9563eab6aff8d4a399d755effb20e21e8edd0e1f69d4be"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "review/stdout.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/01b99749cab449ad8052e6dfe031162f/stdout.log",
|
||||||
|
"bytes": 17699,
|
||||||
|
"sha256": "dd6596e4ea056d7e4b51024052672a2c2a4ac62ab1afa66740adb889e1c00986"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "review/stderr.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/01b99749cab449ad8052e6dfe031162f/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "integration/receipt.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/d75224c26cca4bf197e5438693d0f8a0-integration.json",
|
||||||
|
"bytes": 366,
|
||||||
|
"sha256": "fd7a27ae2d574dd451e0f0af3d59d9a890aac844aae139d8cb183683014177fd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "integration/command.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e/command.json",
|
||||||
|
"bytes": 730,
|
||||||
|
"sha256": "d35a03ac21979d62fd1106faac3d092bd98efae07c158ae16914c62f13e6fdb2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "integration/stdout.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e/stdout.log",
|
||||||
|
"bytes": 164,
|
||||||
|
"sha256": "fe0adf989ae31aa07fdc56b5a4a19ab9d794abed12c0920f08d1a5414c89c39d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "integration/stderr.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "integration/sandbox.sb",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e/sandbox.sb",
|
||||||
|
"bytes": 2133,
|
||||||
|
"sha256": "4dfb2bf82a28339f8e0bbb8866c727bb761e9077809a7a044f4fa08b92fb79cb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "final/receipt.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/08c6bb8df052494792477242866eaa70-final.json",
|
||||||
|
"bytes": 360,
|
||||||
|
"sha256": "6b65fb1503db640b505378bc2208cc8b3f8313dbbb74d7be80ae5d5bc6a32abe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "final/command.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb/command.json",
|
||||||
|
"bytes": 724,
|
||||||
|
"sha256": "d29637a8c1c7ebb1d16b5dfca3c6197c1439757fe8a5db0dd44acf848a6933af"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "final/stdout.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb/stdout.log",
|
||||||
|
"bytes": 164,
|
||||||
|
"sha256": "fe0adf989ae31aa07fdc56b5a4a19ab9d794abed12c0920f08d1a5414c89c39d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "final/stderr.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "final/sandbox.sb",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb/sandbox.sb",
|
||||||
|
"bytes": 2127,
|
||||||
|
"sha256": "00b0d282a2df0be976dd6d3da712ad7b36a984de0cc7662dd12b56911390e8fb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "complete-review-material-manifest.json.gz",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-review-37845ae6/.review-material/manifest.json",
|
||||||
|
"source_bytes": 30146627,
|
||||||
|
"source_sha256": "81782ade4e6a5f9a099dab8a33a76b0c8a6d1fccf065f4540a8dac5973de3c95",
|
||||||
|
"lossless_gzip_roundtrip_verified": true,
|
||||||
|
"bytes": 3814052,
|
||||||
|
"sha256": "547d2e98bcee02136f92ac9ff686791b794b9163d2451799311f5db6925728bf"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"retained_raw_root": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build",
|
||||||
|
"raw_deleted": false,
|
||||||
|
"original_count": 88
|
||||||
|
}
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"task_id": "P04-01",
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"diagnostic_Q_tree": "2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"normal_candidate_C": null,
|
||||||
|
"original30": 30,
|
||||||
|
"original88": 88,
|
||||||
|
"formally_completed": 16,
|
||||||
|
"P04_credit": 0,
|
||||||
|
"formal_acceptance": false,
|
||||||
|
"scope": "Independent whole original P04-01, all seven domains and 15+EV, all six real D05 approvals, all prior high/medium. No unit credit from counts or partial passes.",
|
||||||
|
"navigation": {
|
||||||
|
"current_snapshot": ".review-material/build/audit-support/p04-root-acceptance-78581500/ROOT_S51_CURRENT_BEFORE_WHOLE_REVIEW.json",
|
||||||
|
"all_original_conditions": ".review-material/build/audit-support/p04-root-acceptance-78581500/P04_REQUIRED_CONDITION_MATRIX_78581500_PRE_REVIEW.json",
|
||||||
|
"all_current_root_material": ".review-material/build/audit-support/p04-root-acceptance-78581500/ROOT_MATERIAL_MANIFEST.json",
|
||||||
|
"current_index": ".review-material/build/p04-evidence/index.json",
|
||||||
|
"current_collection": ".review-material/build/audit-support/p04-raw-collect-q5101/",
|
||||||
|
"current_native": ".review-material/build/p04-s1-DIAG-r51 through p04-s5-DIAG-r51 including s2a/s2b",
|
||||||
|
"prior_S50_review": ".review-material/build/audit-support/p04-root-acceptance-78581500/prior-independent-S50-review/result.json",
|
||||||
|
"older_prior_review_map": ".review-material/build/audit-support/p04-root-acceptance-2cd73406/PRIOR_ACTUAL_REVIEW_MAP.json",
|
||||||
|
"original_S50_controls": ".review-material/build/audit-support/p04-root-acceptance-a9ef681f/",
|
||||||
|
"original_S47_full": ".review-material/build/p04-final-full-2cd73406-controller/run/",
|
||||||
|
"source_subranges": ".review-material/build/audit-support/p04-root-acceptance-78581500/ROOT_S51_M_SOURCE_SUBRANGE_CROSSWALK.json",
|
||||||
|
"normal_read_input_controls": ".review-material/build/audit-support/p04-root-acceptance-78581500/ROOT_S51_PROOF_READ_SCOPE_CONTROLS.json"
|
||||||
|
},
|
||||||
|
"specific_review_questions": [
|
||||||
|
"Review the complete original acceptance, not merely the five-document diff. Confirm previous high canonical contradiction and medium M source anchors are resolved, and classify any still-material defect honestly.",
|
||||||
|
"Canonical handoff now distinguishes immutable actual S50 facts from S51 pre-submit admission and points to post-submit Root receipts. The actual current S51 native6 and registered validation have now passed; do not interpret the explicitly pre-submit handoff as a present NOT RUN claim. Equally do not infer new execution for historical S50 controls or S47 full.",
|
||||||
|
"Independently inspect retained test-local control applicability: same 49 executed files, original 1502 S50 raw inputs rehashed, same source/settings/engine evidence, no changed closure file. Original order CLI and complete-B identity were not executed again on S51. Entire S51 raw is NOT claimed identical: 1458 data files and G1/G2 guards are literal equal but44 descriptors differ in paths/formal save metadata; see ROOT_S51_RAW_CROSS_VERSION_SCOPE.json. No normalization or receipt substitution was applied. Fresh S51 data is separately checked through unchanged native readers/adapters, collector and registered checker. Reject reuse if a necessary predicate is missing; do not accept counts as evidence.",
|
||||||
|
"Unchanged current full verifier rechecks original S47 full184/21903/329parse/186owned with all1369 selected source SHA equal to current S51 S5. Independently confirm all applicability predicates. Old execution/version/PIDs/times remain old.",
|
||||||
|
"PAUSE-REASON sequential onset is explicitly unresolved/unproven under original approval. Same-tick onset is actually covered. Do not silently narrow the user rule, mark sequential behavior cured or invent authorization. Assess whether this is material to original P04-01 acceptance; explain any remaining global/spec interpretation work.",
|
||||||
|
"The handoff labels three provisional subranges unverified-M-line. Root supplies exact immutable M excerpts and corrected subranges in SOURCE_SUBRANGE_CROSSWALK, including queue8538-8539, exit8782-8784, payment11877/11881. Verify both main function anchors and this explicit crosswalk; do not mistake provisional subranges for proven current line claims.",
|
||||||
|
"Normal validation uses the previously audited exact owned-input read wrapper, only repinned from S50/Qt50 to S51/Qt51 plus unchanged Q47. Actual sandbox positive reads and negative writes/auth/state/sibling controls passed. No checker/contract/product/config/permission expansion. Prior failed S50 validation remains failed.",
|
||||||
|
"Normal prepare, exact real C authorization, integration/final, Root actual DBjoin and ledger/mainpush remain required. Windows/global UI/performance/content/full-play acceptance stays separate and unfulfilled. Original30/88/formal16/P04credit0 remain until whole-unit acceptance."
|
||||||
|
],
|
||||||
|
"at_unix_ns": 1792337453085524000
|
||||||
|
}
|
||||||
+187
@@ -0,0 +1,187 @@
|
|||||||
|
{
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"Q_tree": "2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"rows": [
|
||||||
|
{
|
||||||
|
"series": "s1",
|
||||||
|
"argv": [
|
||||||
|
"/Users/korizatou114/Antigravity/\u74b0\u5883\u69cb\u7bc9/agent-control/.venv/bin/python",
|
||||||
|
"-B",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-fresh-context-r51/docs/plans/original-completion-2026-10-02/execution/p04-01/s1/run_s1_native.py",
|
||||||
|
"--main",
|
||||||
|
"c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"--submission",
|
||||||
|
"785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"--tested-tree",
|
||||||
|
"2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"--project-root",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500",
|
||||||
|
"--output",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-DIAG-r51",
|
||||||
|
"--plan",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-DIAG-r51-plan.json"
|
||||||
|
],
|
||||||
|
"owner_pid": 42979,
|
||||||
|
"exit_code": 0,
|
||||||
|
"passed": true,
|
||||||
|
"error": null,
|
||||||
|
"output": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-DIAG-r51",
|
||||||
|
"log": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_S1.log",
|
||||||
|
"started_at_unix_ns": 1792336535636082000,
|
||||||
|
"ended_at_unix_ns": 1792336603256780000,
|
||||||
|
"free_before": 7180898304,
|
||||||
|
"free_after": 7062007808
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"series": "s2a",
|
||||||
|
"argv": [
|
||||||
|
"/Users/korizatou114/Antigravity/\u74b0\u5883\u69cb\u7bc9/agent-control/.venv/bin/python",
|
||||||
|
"-B",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-fresh-context-r51/docs/plans/original-completion-2026-10-02/execution/p04-01/s2/run_s2a_native.py",
|
||||||
|
"--main",
|
||||||
|
"c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"--submission",
|
||||||
|
"785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"--tested-tree",
|
||||||
|
"2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"--project-root",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500",
|
||||||
|
"--output",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s2a-DIAG-r51",
|
||||||
|
"--plan",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s2a-DIAG-r51-plan.json"
|
||||||
|
],
|
||||||
|
"owner_pid": 44874,
|
||||||
|
"exit_code": 0,
|
||||||
|
"passed": true,
|
||||||
|
"error": null,
|
||||||
|
"output": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s2a-DIAG-r51",
|
||||||
|
"log": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_S2A.log",
|
||||||
|
"started_at_unix_ns": 1792336603257132000,
|
||||||
|
"ended_at_unix_ns": 1792336684987594000,
|
||||||
|
"free_before": 7061987328,
|
||||||
|
"free_after": 6923694080
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"series": "s2b",
|
||||||
|
"argv": [
|
||||||
|
"/Users/korizatou114/Antigravity/\u74b0\u5883\u69cb\u7bc9/agent-control/.venv/bin/python",
|
||||||
|
"-B",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-fresh-context-r51/docs/plans/original-completion-2026-10-02/execution/p04-01/s2b/run_s2b_native.py",
|
||||||
|
"--main",
|
||||||
|
"c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"--submission",
|
||||||
|
"785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"--tested-tree",
|
||||||
|
"2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"--project-root",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500",
|
||||||
|
"--output",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s2b-DIAG-r51",
|
||||||
|
"--plan",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s2b-DIAG-r51-plan.json"
|
||||||
|
],
|
||||||
|
"owner_pid": 46939,
|
||||||
|
"exit_code": 0,
|
||||||
|
"passed": true,
|
||||||
|
"error": null,
|
||||||
|
"output": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s2b-DIAG-r51",
|
||||||
|
"log": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_S2B.log",
|
||||||
|
"started_at_unix_ns": 1792336684987960000,
|
||||||
|
"ended_at_unix_ns": 1792336751123424000,
|
||||||
|
"free_before": 6923694080,
|
||||||
|
"free_after": 6766997504
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"series": "s3",
|
||||||
|
"argv": [
|
||||||
|
"/Users/korizatou114/Antigravity/\u74b0\u5883\u69cb\u7bc9/agent-control/.venv/bin/python",
|
||||||
|
"-B",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-fresh-context-r51/docs/plans/original-completion-2026-10-02/execution/p04-01/s3/run_s3_native.py",
|
||||||
|
"--main",
|
||||||
|
"c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"--submission",
|
||||||
|
"785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"--tested-tree",
|
||||||
|
"2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"--project-root",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500",
|
||||||
|
"--output",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s3-DIAG-r51",
|
||||||
|
"--plan",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s3-DIAG-r51-plan.json"
|
||||||
|
],
|
||||||
|
"owner_pid": 48791,
|
||||||
|
"exit_code": 0,
|
||||||
|
"passed": true,
|
||||||
|
"error": null,
|
||||||
|
"output": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s3-DIAG-r51",
|
||||||
|
"log": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_S3.log",
|
||||||
|
"started_at_unix_ns": 1792336751124054000,
|
||||||
|
"ended_at_unix_ns": 1792336848657819000,
|
||||||
|
"free_before": 6766989312,
|
||||||
|
"free_after": 7561510912
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"series": "s4",
|
||||||
|
"argv": [
|
||||||
|
"/Users/korizatou114/Antigravity/\u74b0\u5883\u69cb\u7bc9/agent-control/.venv/bin/python",
|
||||||
|
"-B",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-fresh-context-r51/docs/plans/original-completion-2026-10-02/execution/p04-01/s4/run_s4_native.py",
|
||||||
|
"--main",
|
||||||
|
"c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"--submission",
|
||||||
|
"785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"--tested-tree",
|
||||||
|
"2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"--project-root",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500",
|
||||||
|
"--output",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s4-DIAG-r51",
|
||||||
|
"--plan",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s4-DIAG-r51-plan.json"
|
||||||
|
],
|
||||||
|
"owner_pid": 50961,
|
||||||
|
"exit_code": 0,
|
||||||
|
"passed": true,
|
||||||
|
"error": null,
|
||||||
|
"output": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s4-DIAG-r51",
|
||||||
|
"log": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_S4.log",
|
||||||
|
"started_at_unix_ns": 1792336848661583000,
|
||||||
|
"ended_at_unix_ns": 1792336933280467000,
|
||||||
|
"free_before": 7561498624,
|
||||||
|
"free_after": 7461888000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"series": "s5",
|
||||||
|
"argv": [
|
||||||
|
"/Users/korizatou114/Antigravity/\u74b0\u5883\u69cb\u7bc9/agent-control/.venv/bin/python",
|
||||||
|
"-B",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/audit-support/p04-fresh-context-r51/docs/plans/original-completion-2026-10-02/execution/p04-01/s5/run_s5_native.py",
|
||||||
|
"--main",
|
||||||
|
"c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"--submission",
|
||||||
|
"785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"--tested-tree",
|
||||||
|
"2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"--project-root",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500",
|
||||||
|
"--output",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s5-DIAG-r51",
|
||||||
|
"--plan",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s5-DIAG-r51-plan.json"
|
||||||
|
],
|
||||||
|
"owner_pid": 52983,
|
||||||
|
"exit_code": 0,
|
||||||
|
"passed": true,
|
||||||
|
"error": null,
|
||||||
|
"output": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s5-DIAG-r51",
|
||||||
|
"log": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_S5.log",
|
||||||
|
"started_at_unix_ns": 1792336933281670000,
|
||||||
|
"ended_at_unix_ns": 1792337075161304000,
|
||||||
|
"free_before": 7461883904,
|
||||||
|
"free_after": 6884540416
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"formal_credit": 0
|
||||||
|
}
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"C": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"tree": "2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"parents": [
|
||||||
|
"c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"785815002eb750b0bef3c26fe2ca492b16b280be"
|
||||||
|
],
|
||||||
|
"normal_candidate": true,
|
||||||
|
"evidence": [
|
||||||
|
{
|
||||||
|
"kind": "validation",
|
||||||
|
"commit_sha": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7e1c6381e5fb4c7f903d8bec7cfbdb84-validation.json",
|
||||||
|
"passed": 1,
|
||||||
|
"sha256": "a5b40c80ba8ac307ec825b89a4384284b6dbcbf93d4b8f1d2c54f772fedd380c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "review",
|
||||||
|
"commit_sha": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/01b99749cab449ad8052e6dfe031162f/result.json",
|
||||||
|
"passed": 1,
|
||||||
|
"sha256": "11ba2641723bf09560e01ee7d67e543c14946d696718c3bff83081319e71be1b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"kind": "integration",
|
||||||
|
"commit_sha": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/d75224c26cca4bf197e5438693d0f8a0-integration.json",
|
||||||
|
"passed": 1,
|
||||||
|
"sha256": "fd7a27ae2d574dd451e0f0af3d59d9a890aac844aae139d8cb183683014177fd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"main_still_M_clean": true,
|
||||||
|
"formal_credit": 0,
|
||||||
|
"at_unix_ns": 1792338580908879000
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
{"approved_runner_database": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_S51_APPROVED_RUNNER_SNAPSHOT.sqlite", "input_sha256": {"/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/01b99749cab449ad8052e6dfe031162f/result.json": "11ba2641723bf09560e01ee7d67e543c14946d696718c3bff83081319e71be1b", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/08c6bb8df052494792477242866eaa70-final.json": "6b65fb1503db640b505378bc2208cc8b3f8313dbbb74d7be80ae5d5bc6a32abe", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb/command.json": "d29637a8c1c7ebb1d16b5dfca3c6197c1439757fe8a5db0dd44acf848a6933af", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb/stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb/stdout.log": "fe0adf989ae31aa07fdc56b5a4a19ab9d794abed12c0920f08d1a5414c89c39d", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7e1c6381e5fb4c7f903d8bec7cfbdb84-validation.json": "a5b40c80ba8ac307ec825b89a4384284b6dbcbf93d4b8f1d2c54f772fedd380c", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e/command.json": "d35a03ac21979d62fd1106faac3d092bd98efae07c158ae16914c62f13e6fdb2", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e/stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e/stdout.log": "fe0adf989ae31aa07fdc56b5a4a19ab9d794abed12c0920f08d1a5414c89c39d", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/d75224c26cca4bf197e5438693d0f8a0-integration.json": "fd7a27ae2d574dd451e0f0af3d59d9a890aac844aae139d8cb183683014177fd", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/command.json": "f591fedfa02ebc70fffe0f6ea44a752854d72d7a91a43ae66802ccef4ea0a583", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/stdout.log": "562d7ec566286433aa2cceb39a40f4fdecfe65b349be00d885c7c87575fb9041"}, "join": {"C": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4", "M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81", "S": "785815002eb750b0bef3c26fe2ca492b16b280be"}, "protocol": "p04-normal-c-runner-join-v1", "runner_database": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/state.sqlite", "runner_records_consistent": true, "runner_records_sha256": "67ae15e765d238f811f21468a57852f49296135060f7c3086fd82b0cc4ce1f4f", "source_Q_applicability_verified": false, "structure_verified": false, "unit_accepted": false, "whole_goal_accepted": false}
|
||||||
+99
@@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"Q_tree": "2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"normal_C": null,
|
||||||
|
"actual_registered_validation": {
|
||||||
|
"kind": "validation",
|
||||||
|
"commit_sha": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7e1c6381e5fb4c7f903d8bec7cfbdb84-validation.json",
|
||||||
|
"passed": 1
|
||||||
|
},
|
||||||
|
"all6_native_pass": true,
|
||||||
|
"all24_owned_PIDs_ended": true,
|
||||||
|
"current_conditions": [
|
||||||
|
"EV",
|
||||||
|
"closure_release",
|
||||||
|
"dependency_stop",
|
||||||
|
"destruction_stop",
|
||||||
|
"exit_release",
|
||||||
|
"midnight_replay",
|
||||||
|
"midnight_settlement",
|
||||||
|
"night_staff_absent",
|
||||||
|
"overtime_task",
|
||||||
|
"patience_release",
|
||||||
|
"paused_midnight",
|
||||||
|
"power_stop",
|
||||||
|
"recovery_completion",
|
||||||
|
"same_minute_replay",
|
||||||
|
"save_restore",
|
||||||
|
"shift_completion"
|
||||||
|
],
|
||||||
|
"missing_conditions": [],
|
||||||
|
"test_local_control_reuse": {
|
||||||
|
"current_submission": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"historical_control_submission": "a9ef681fb8f3356507d3d6e58ae30a339deb8a6c",
|
||||||
|
"historical_order_execution": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q50_ORIGINAL_ORDER_TYPED_EXECUTION.json",
|
||||||
|
"historical_order_execution_pin": {
|
||||||
|
"bytes": 275993,
|
||||||
|
"sha256": "15b91f1ccc6c6f7d09709055049f157ee0bb6730c0b1c258ee4b9d921b0d60cd"
|
||||||
|
},
|
||||||
|
"historical_order_result_pin": {
|
||||||
|
"bytes": 9126478,
|
||||||
|
"sha256": "9b508092e77f241de593b71c1711dd5e3203b0a8d0e9717abfa20488beb2a3e0"
|
||||||
|
},
|
||||||
|
"historical_identity_result": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S50_COMPLETE_CURRENT_B_IDENTITY.log",
|
||||||
|
"historical_identity_pin": {
|
||||||
|
"bytes": 36990,
|
||||||
|
"sha256": "f05bf544c15b91d997f89ae01965f4acea464f80b42cbf076144971485eddab2"
|
||||||
|
},
|
||||||
|
"unchanged_full_execution_closure_files": 49,
|
||||||
|
"three_snapshot_closures_identical_and_retained": true,
|
||||||
|
"actual_original_raw_files_rehashed_unchanged": 1502,
|
||||||
|
"changed_paths": [
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/CURRENT_STATUS.md",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/ORDER_AUDIT.md",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/REPAIR51_APPLICABILITY_MAP.json",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/REPAIR51_STATUS.md",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/order-audit.json"
|
||||||
|
],
|
||||||
|
"changed_closure_intersection": [],
|
||||||
|
"scope": "Reuse historical test-local regression results on unchanged executed helper closure and original retained exact S50 raw inputs. These are not fresh S51 negative-control executions. Fresh S51 native admission, current index regeneration and normal registered full verification remain required separately. All original execution labels and failures are retained. Independent reviewer must confirm this applicability.",
|
||||||
|
"commander_decisions": [
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_OPUS_REPAIR51_CANONICAL_DECISION.json",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_OPUS_REPAIR51_RUN_DECISION.json"
|
||||||
|
],
|
||||||
|
"actual_full_controls_rerun": false,
|
||||||
|
"formal_acceptance": false,
|
||||||
|
"at_unix_ns": 1792336814190174000
|
||||||
|
},
|
||||||
|
"full_reuse": {
|
||||||
|
"original_run": "p04-final-full-2cd73406-controller/run",
|
||||||
|
"verified_by_unchanged_current_full_verifier": true,
|
||||||
|
"selected_source_files": 1369,
|
||||||
|
"suites": 184,
|
||||||
|
"parse": 329,
|
||||||
|
"totals": {
|
||||||
|
"actual_all_roster_checks": 21903,
|
||||||
|
"actual_suites": 184,
|
||||||
|
"available_marker_checks": 21903,
|
||||||
|
"missing_marker_paths": [],
|
||||||
|
"remaining_unexecuted_tests": [],
|
||||||
|
"strict_accepted_checks": 21903
|
||||||
|
},
|
||||||
|
"owned_ended": 186,
|
||||||
|
"actual_old_execution_relabelled": false,
|
||||||
|
"independent_review_pending": true
|
||||||
|
},
|
||||||
|
"remaining": [
|
||||||
|
"independent whole-unit Opus review including prior findings and exact applicability",
|
||||||
|
"normal prepare/exact C authorization/integration/final",
|
||||||
|
"Root actual DBjoin/ledger/mainpush"
|
||||||
|
],
|
||||||
|
"original30": 30,
|
||||||
|
"original88": 88,
|
||||||
|
"formally_completed": 16,
|
||||||
|
"P04_credit": 0,
|
||||||
|
"formal_acceptance": false,
|
||||||
|
"at_unix_ns": 1792337452829350000
|
||||||
|
}
|
||||||
+8440
File diff suppressed because it is too large
Load Diff
+204
@@ -0,0 +1,204 @@
|
|||||||
|
{
|
||||||
|
"M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"method": "Exact git show M:path, original 1-based lines; no product or docs edits. Supplements the handoff-labelled unverified-M-line subranges; committed main function/handler start anchors are independently checked here.",
|
||||||
|
"verified_anchor_excerpts": [
|
||||||
|
{
|
||||||
|
"behavior": "tick handler registration",
|
||||||
|
"path": "autoload/simulation_runtime.gd",
|
||||||
|
"start": 371,
|
||||||
|
"end": 441,
|
||||||
|
"lines": [
|
||||||
|
"371:\t_clock.unregister_tick_handler(_clock.TickPhase.TIME_BOUNDARIES, &\"simulation_runtime.0_weather\")",
|
||||||
|
"372:\t_clock.register_tick_handler(_clock.TickPhase.TIME_BOUNDARIES, &\"simulation_runtime.0_weather\", Callable(self, \"_advance_weather\"))",
|
||||||
|
"373:\t_clock.unregister_tick_handler(_clock.TickPhase.TIME_BOUNDARIES, &\"simulation_runtime.a_upkeep\")",
|
||||||
|
"374:\t_clock.register_tick_handler(_clock.TickPhase.TIME_BOUNDARIES, &\"simulation_runtime.a_upkeep\", Callable(self, \"_advance_facility_upkeep\"))",
|
||||||
|
"375:\t_clock.register_tick_handler(",
|
||||||
|
"376:\t\t_clock.TickPhase.APPLY_COMMANDS,",
|
||||||
|
"377:\t\t&\"simulation_runtime.commands\",",
|
||||||
|
"378:\t\tCallable(self, \"_process_tick_commands\")",
|
||||||
|
"379:\t)",
|
||||||
|
"380:\t_clock.register_tick_handler(",
|
||||||
|
"381:\t\t_clock.TickPhase.PUBLISH_SNAPSHOT,",
|
||||||
|
"382:\t\t&\"simulation_runtime.snapshot\",",
|
||||||
|
"383:\t\tCallable(self, \"_publish_snapshot\")",
|
||||||
|
"384:\t)",
|
||||||
|
"385:\t_clock.register_tick_handler(",
|
||||||
|
"386:\t\t_clock.TickPhase.MANA,",
|
||||||
|
"387:\t\t&\"simulation_runtime.mana\",",
|
||||||
|
"388:\t\tCallable(self, \"_advance_mana\")",
|
||||||
|
"389:\t)",
|
||||||
|
"390:\t_clock.register_tick_handler(",
|
||||||
|
"391:\t\t_clock.TickPhase.CONSTRUCTION,",
|
||||||
|
"392:\t\t&\"simulation_runtime.construction\",",
|
||||||
|
"393:\t\tCallable(self, \"_advance_construction\")",
|
||||||
|
"394:\t)",
|
||||||
|
"395:\t_clock.register_tick_handler(",
|
||||||
|
"396:\t\t_clock.TickPhase.LOGISTICS,",
|
||||||
|
"397:\t\t&\"simulation_runtime.logistics\",",
|
||||||
|
"398:\t\tCallable(self, \"_advance_inventory_and_logistics\")",
|
||||||
|
"399:\t)",
|
||||||
|
"400:\t_clock.register_tick_handler(",
|
||||||
|
"401:\t\t_clock.TickPhase.FACILITY_COMPLETION,",
|
||||||
|
"402:\t\t&\"simulation_runtime.facilities\",",
|
||||||
|
"403:\t\tCallable(self, \"_advance_facilities\")",
|
||||||
|
"404:\t)",
|
||||||
|
"405:\t_clock.register_tick_handler(",
|
||||||
|
"406:\t\t_clock.TickPhase.VITALS_AND_ENVIRONMENT,",
|
||||||
|
"407:\t\t&\"simulation_runtime.guest_vitals\",",
|
||||||
|
"408:\t\tCallable(self, \"_advance_guest_vitals\")",
|
||||||
|
"409:\t)",
|
||||||
|
"410:\t_clock.register_tick_handler(",
|
||||||
|
"411:\t\t_clock.TickPhase.FACILITY_QUEUES,",
|
||||||
|
"412:\t\t&\"simulation_runtime.guest_queues\",",
|
||||||
|
"413:\t\tCallable(self, \"_advance_guest_queues\")",
|
||||||
|
"414:\t)",
|
||||||
|
"415:\t_clock.register_tick_handler(",
|
||||||
|
"416:\t\t_clock.TickPhase.INCIDENTS_AND_EVENTS,",
|
||||||
|
"417:\t\t&\"simulation_runtime.authority_incidents\",",
|
||||||
|
"418:\t\tCallable(self, \"_advance_authority_incidents\")",
|
||||||
|
"419:\t)",
|
||||||
|
"420:\t_clock.register_tick_handler(",
|
||||||
|
"421:\t\t_clock.TickPhase.INCIDENTS_AND_EVENTS,",
|
||||||
|
"422:\t\t&\"simulation_runtime.defense\",",
|
||||||
|
"423:\t\tCallable(self, \"_advance_defense\")",
|
||||||
|
"424:\t)",
|
||||||
|
"425:\t_clock.register_tick_handler(",
|
||||||
|
"426:\t\t_clock.TickPhase.INCIDENTS_AND_EVENTS,",
|
||||||
|
"427:\t\t&\"simulation_runtime.relationship_events\",",
|
||||||
|
"428:\t\tCallable(self, \"_advance_relationship_events\")",
|
||||||
|
"429:\t)",
|
||||||
|
"430:\t_clock.register_tick_handler(",
|
||||||
|
"431:\t\t_clock.TickPhase.AI_DECISIONS,",
|
||||||
|
"432:\t\t&\"simulation_runtime.staff_ai\",",
|
||||||
|
"433:\t\tCallable(self, \"_advance_staff_ai\")",
|
||||||
|
"434:\t)",
|
||||||
|
"435:\t# The `zz` ID deliberately orders persistence after the published simulation",
|
||||||
|
"436:\t# snapshot at the final phase of a fully completed minute.",
|
||||||
|
"437:\t_clock.register_tick_handler(",
|
||||||
|
"438:\t\t_clock.TickPhase.PUBLISH_SNAPSHOT,",
|
||||||
|
"439:\t\t&\"simulation_runtime.zz_save_checkpoints\",",
|
||||||
|
"440:\t\tCallable(self, \"_process_save_checkpoints\")",
|
||||||
|
"441:\t)"
|
||||||
|
],
|
||||||
|
"source_SHA256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"behavior": "closed queue skips patience",
|
||||||
|
"path": "autoload/simulation_runtime.gd",
|
||||||
|
"start": 8524,
|
||||||
|
"end": 8539,
|
||||||
|
"lines": [
|
||||||
|
"8524:func _advance_guest_queues(absolute_minute: int) -> void:",
|
||||||
|
"8525:\tif _operations_tick_blocked:",
|
||||||
|
"8526:\t\treturn",
|
||||||
|
"8527:\t_release_closed_business_queues(absolute_minute)",
|
||||||
|
"8528:\tvar guests_by_request: Dictionary = {}",
|
||||||
|
"8529:\tfor guest: GuestRuntime in guest_service.get_guests():",
|
||||||
|
"8530:\t\tif guest.state != GuestRuntime.State.QUEUING:",
|
||||||
|
"8531:\t\t\tcontinue",
|
||||||
|
"8532:\t\tif not guests_by_request.has(guest.queue_request_id):",
|
||||||
|
"8533:\t\t\tguests_by_request[guest.queue_request_id] = []",
|
||||||
|
"8534:\t\t(guests_by_request[guest.queue_request_id] as Array).append(guest)",
|
||||||
|
"8535:\tfor request_id: StringName in _sorted_name_keys(guests_by_request):",
|
||||||
|
"8536:\t\tvar grouped_guests: Array = guests_by_request[request_id]",
|
||||||
|
"8537:\t\tvar queued_facility := facility_service.get_instance(grouped_guests[0].target_facility_id)",
|
||||||
|
"8538:\t\tif queued_facility != null and (not queued_facility.operator_open or not queued_facility.is_within_opening_hours(absolute_minute)):",
|
||||||
|
"8539:\t\t\tcontinue # A deferred closure must not spend patience while retrying."
|
||||||
|
],
|
||||||
|
"source_SHA256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"behavior": "planned exit only DECIDING then later despawn",
|
||||||
|
"path": "autoload/simulation_runtime.gd",
|
||||||
|
"start": 8760,
|
||||||
|
"end": 8784,
|
||||||
|
"lines": [
|
||||||
|
"8760:func _advance_guest_ai_decisions(absolute_minute: int) -> void:",
|
||||||
|
"8761:\tfor guest: GuestRuntime in guest_service.get_guests():",
|
||||||
|
"8762:\t\tmatch guest.state:",
|
||||||
|
"8763:\t\t\tGuestRuntime.State.SPAWNING:",
|
||||||
|
"8764:\t\t\t\tguest_service.transition_guest(guest.guest_id, GuestRuntime.State.ENTERING, absolute_minute, &\"ENTRY_STARTED\")",
|
||||||
|
"8765:\t\t\tGuestRuntime.State.ENTERING:",
|
||||||
|
"8766:\t\t\t\tguest_service.transition_guest(guest.guest_id, GuestRuntime.State.DECIDING, absolute_minute, &\"ENTRY_COMPLETED\")",
|
||||||
|
"8767:\t\t\tGuestRuntime.State.DECIDING:",
|
||||||
|
"8768:\t\t\t\tif guest.planned_exit_at <= absolute_minute:",
|
||||||
|
"8769:\t\t\t\t\tguest_service.begin_leaving(guest.guest_id, absolute_minute, &\"PLANNED_EXIT\")",
|
||||||
|
"8770:\t\t\t\t\tcontinue",
|
||||||
|
"8771:\t\t\t\tguest.wallet_gold = economy_service.get_balance(_guest_wallet_account(guest.guest_id))",
|
||||||
|
"8772:\t\t\t\t_decide_guest_with_log(",
|
||||||
|
"8773:\t\t\t\t\tguest.guest_id,",
|
||||||
|
"8774:\t\t\t\t\t_project_guest_candidates(guest.guest_id),",
|
||||||
|
"8775:\t\t\t\t\tabsolute_minute,",
|
||||||
|
"8776:\t\t\t\t\t{&\"absolute_minute\": absolute_minute}",
|
||||||
|
"8777:\t\t\t\t)",
|
||||||
|
"8778:\t\t\tGuestRuntime.State.MOVING:",
|
||||||
|
"8779:\t\t\t\tpass",
|
||||||
|
"8780:\t\t\tGuestRuntime.State.REPLANNING, GuestRuntime.State.ABANDONING, GuestRuntime.State.INTERRUPTED:",
|
||||||
|
"8781:\t\t\t\tguest_service.transition_guest(guest.guest_id, GuestRuntime.State.DECIDING, absolute_minute, &\"REPLAN_AFTER_INTERRUPTION\")",
|
||||||
|
"8782:\t\t\tGuestRuntime.State.LEAVING:",
|
||||||
|
"8783:\t\t\t\tif guest.state_entered_at < absolute_minute:",
|
||||||
|
"8784:\t\t\t\t\tguest_service.despawn_guest(guest.guest_id, absolute_minute)"
|
||||||
|
],
|
||||||
|
"source_SHA256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"behavior": "service transaction forwards current absolute minute",
|
||||||
|
"path": "autoload/simulation_runtime.gd",
|
||||||
|
"start": 11817,
|
||||||
|
"end": 11838,
|
||||||
|
"lines": [
|
||||||
|
"11817:func _complete_service_transaction(",
|
||||||
|
"11818:\tservice: ServiceInstance,",
|
||||||
|
"11819:\trequest: ServiceRequest,",
|
||||||
|
"11820:\tfacility: FacilityInstance,",
|
||||||
|
"11821:\tabsolute_minute: int",
|
||||||
|
"11822:) -> Variant:",
|
||||||
|
"11823:\t# A sale is only observable after its inventory, rewards and cleanliness",
|
||||||
|
"11824:\t# effects commit. Rollback removes provisional receipts before scope exit.",
|
||||||
|
"11825:\teconomy_service.begin_notification_scope()",
|
||||||
|
"11826:\tvar result: Variant = _apply_service_transaction(service, request, facility, absolute_minute)",
|
||||||
|
"11827:\tif result is bool and result:",
|
||||||
|
"11828:\t\t_state.set_resource(&\"gold\", economy_service.get_balance(PLAYER_CASH_ACCOUNT))",
|
||||||
|
"11829:\teconomy_service.end_notification_scope()",
|
||||||
|
"11830:\treturn result",
|
||||||
|
"11831:",
|
||||||
|
"11832:",
|
||||||
|
"11833:func _apply_service_transaction(",
|
||||||
|
"11834:\tservice: ServiceInstance,",
|
||||||
|
"11835:\trequest: ServiceRequest,",
|
||||||
|
"11836:\tfacility: FacilityInstance,",
|
||||||
|
"11837:\tabsolute_minute: int",
|
||||||
|
"11838:) -> Variant:"
|
||||||
|
],
|
||||||
|
"source_SHA256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"behavior": "actual service charge event anchor",
|
||||||
|
"path": "autoload/simulation_runtime.gd",
|
||||||
|
"start": 11877,
|
||||||
|
"end": 11877,
|
||||||
|
"lines": [
|
||||||
|
"11877:\t\t\t\tservice.price_snapshot, &\"SERVICE_SALE\", facility.instance_id"
|
||||||
|
],
|
||||||
|
"source_SHA256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"behavior": "actual service charge event anchor",
|
||||||
|
"path": "autoload/simulation_runtime.gd",
|
||||||
|
"start": 11881,
|
||||||
|
"end": 11881,
|
||||||
|
"lines": [
|
||||||
|
"11881:\t\t\t\tservice.price_snapshot, &\"SERVICE_CASH_SWEEP\", facility.instance_id"
|
||||||
|
],
|
||||||
|
"source_SHA256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisional_handoff_ranges_not_asserted_current": [
|
||||||
|
"8516-8517 for closed queue (actual8538-8539)",
|
||||||
|
"8760-8762 for later despawn (actual8782-8784)",
|
||||||
|
"11826-11838 for charge event (function invocation/signature only; actual event lines included separately)"
|
||||||
|
],
|
||||||
|
"formal_acceptance": false,
|
||||||
|
"at_unix_ns": 1792336923646879000
|
||||||
|
}
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"path": "autoload/simulation_runtime.gd",
|
||||||
|
"source_sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0",
|
||||||
|
"function": "_execute_leave_facility_queue",
|
||||||
|
"start": 7575,
|
||||||
|
"end": 7628,
|
||||||
|
"exact_numbered_source": "7575:func _execute_leave_facility_queue(command: SimulationCommand) -> CommandResult:\n7576:\tvar facility_id := StringName(command.payload.get(&\"facility_id\", command.payload.get(\"facility_id\", \"\")))\n7577:\tvar request_id := StringName(command.payload.get(&\"request_id\", command.payload.get(\"request_id\", \"\")))\n7578:\tvar request := facility_service.get_request(request_id)\n7579:\tif request == null:\n7580:\t\treturn CommandResult.failed(CommandResult.Code.NOT_FOUND, command.command_id, \"Queued service request was not found.\")\n7581:\tvar inventory_before := inventory_service.create_snapshot()\n7582:\tvar facility_before := facility_service.create_snapshot()\n7583:\tvar guest_before := guest_service.create_snapshot()\n7584:\tvar events_before := domain_events.create_snapshot()\n7585:\tvar id_before := id_generator.create_snapshot()\n7586:\tvar external_leave := func(_guest_id: StringName = &\"\", _facility_id: StringName = &\"\", _request_id: StringName = &\"\") -> Dictionary:\n7587:\t\tfor reservation_id: StringName in request.reserved_inventory_ids:\n7588:\t\t\tvar released := inventory_service.release_reservation(\n7589:\t\t\t\treservation_id,\n7590:\t\t\t\tStringName(\"service.release.%s.%s\" % [request_id, reservation_id]),\n7591:\t\t\t\t_runtime_event_minute()\n7592:\t\t\t)\n7593:\t\t\tif not bool(released.get(&\"ok\", false)):\n7594:\t\t\t\treturn released\n7595:\t\tvar leave_result := facility_service.leave_queue(facility_id, request_id)\n7596:\t\treturn {&\"ok\": leave_result.is_success(), &\"message\": leave_result.message}\n7597:\tvar runtime_guests: Array[StringName] = []\n7598:\tfor guest_id: StringName in request.guest_ids:\n7599:\t\tif guest_service.has_guest(guest_id):\n7600:\t\t\truntime_guests.append(guest_id)\n7601:\tvar successful := true\n7602:\tvar failure_message := \"Facility queue removal failed.\"\n7603:\tif runtime_guests.is_empty():\n7604:\t\tvar external_result: Dictionary = external_leave.call()\n7605:\t\tsuccessful = bool(external_result.get(&\"ok\", false))\n7606:\t\tfailure_message = String(external_result.get(&\"message\", failure_message))\n7607:\telse:\n7608:\t\tfor guest_index in range(runtime_guests.size()):\n7609:\t\t\tvar queued_guest := guest_service.get_guest(runtime_guests[guest_index])\n7610:\t\t\tvar abandon := guest_service.tick_queue_patience(\n7611:\t\t\t\tqueued_guest.guest_id,\n7612:\t\t\t\t_runtime_event_minute(),\n7613:\t\t\t\t-queued_guest.patience_remaining,\n7614:\t\t\t\texternal_leave if guest_index == 0 else Callable()\n7615:\t\t\t)\n7616:\t\t\tif not bool(abandon.get(&\"ok\", false)):\n7617:\t\t\t\tsuccessful = false\n7618:\t\t\t\tfailure_message = String(abandon.get(&\"message\", failure_message))\n7619:\t\t\t\tbreak\n7620:\tif not successful:\n7621:\t\tinventory_service.restore_snapshot(inventory_before)\n7622:\t\tfacility_service.restore_snapshot(facility_before)\n7623:\t\tguest_service.restore_snapshot(guest_before)\n7624:\t\tdomain_events.restore_snapshot(events_before)\n7625:\t\tid_generator.restore_snapshot(id_before)\n7626:\t\treturn CommandResult.failed(CommandResult.Code.TRANSACTION_APPLY_FAILED, command.command_id, failure_message)\n7627:\treturn CommandResult.succeeded(command.command_id, {&\"request_id\": request_id, &\"reason\": &\"GUEST_LEFT\"})\n7628:",
|
||||||
|
"scope": "Post-review exact source excerpt for low-priority provisional release-key line range. No source or prior review evidence edited. Full function shows actual release calls and idempotency checks.",
|
||||||
|
"formal_acceptance": false,
|
||||||
|
"at_unix_ns": 1792338416275735000
|
||||||
|
}
|
||||||
+83
@@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"passed": true,
|
||||||
|
"wrapper_sha256": "83532b4fcd4f7308a936dfe0951fc6bc43de60f38cb528e9bbcb43d6225bcc01",
|
||||||
|
"base_seatbelt_source_sha256": "877f868faf2958a40fe412aa11724c2ea035c77422acc5cc053879e6ab7051e8",
|
||||||
|
"exact_roots": [
|
||||||
|
{
|
||||||
|
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500",
|
||||||
|
"HEAD": "1313ff5d3b13cf912b327b178c3e9c91bf9f73df",
|
||||||
|
"tree": "2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"source_manifest": {
|
||||||
|
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s5-DIAG-r51/source_before.json",
|
||||||
|
"sha256": "109a1772b2a6b738f03025311b3cdc059a4e590e08956c6466177a9841eb4056"
|
||||||
|
},
|
||||||
|
"selected_files": 1369,
|
||||||
|
"selected_source_map_sha256": "0a22b15ce0327e6da1904633f3331a5d9784d4122823d77cec21b33f464adcb9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r47-2cd73406",
|
||||||
|
"HEAD": "9bb8e09506bb143991a62a7f2cea024753cd5cfe",
|
||||||
|
"tree": "66a9587a99fc97ef281237fdc0f9d67e014b7444",
|
||||||
|
"source_manifest": {
|
||||||
|
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-final-full-2cd73406-controller/run/source-start.json",
|
||||||
|
"sha256": "f3bedbcad504c42904017dd64029d5e008372ea6bcfd93e6f88c34fa24b963bf"
|
||||||
|
},
|
||||||
|
"selected_files": 1369,
|
||||||
|
"selected_source_map_sha256": "0a22b15ce0327e6da1904633f3331a5d9784d4122823d77cec21b33f464adcb9"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"controls": [
|
||||||
|
"inactive profile byte-identical",
|
||||||
|
"commander profile byte-identical",
|
||||||
|
"reviewer profile byte-identical",
|
||||||
|
"implementer profile byte-identical",
|
||||||
|
"other task not eligible",
|
||||||
|
"stale HEAD rejected",
|
||||||
|
"original profile line retained 8cf252c1a100",
|
||||||
|
"original profile line retained f69a413145d9",
|
||||||
|
"original profile line retained 55c8fe3f70a5",
|
||||||
|
"original profile line retained 7cb510d5e7d0",
|
||||||
|
"original profile line retained e4f930126fa9",
|
||||||
|
"original profile line retained 06cf75eb9a24",
|
||||||
|
"original profile line retained 962d3ed4dbdc",
|
||||||
|
"original profile line retained 916736e2df5e",
|
||||||
|
"original profile line retained 76ac13af986b",
|
||||||
|
"original profile line retained 0f73c8ca4953",
|
||||||
|
"original profile line retained 782022319b86",
|
||||||
|
"original profile line retained 2340781acaaa",
|
||||||
|
"original profile line retained 3c5328d4d85a",
|
||||||
|
"exact Qt read P04-01-root-q-r51-78581500",
|
||||||
|
"exact Qt read P04-01-root-q-r47-2cd73406",
|
||||||
|
"both Qt writes denied",
|
||||||
|
"sibling auth and state reads denied"
|
||||||
|
],
|
||||||
|
"actual_sandbox_results": {
|
||||||
|
"reads": [
|
||||||
|
{
|
||||||
|
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500/AGENTS.md",
|
||||||
|
"bytes": 605,
|
||||||
|
"sha256": "8d8dc40211390275f858f322743309a0663c4f2d859780a8b8a08cea1450e8b3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r47-2cd73406/AGENTS.md",
|
||||||
|
"bytes": 605,
|
||||||
|
"sha256": "8d8dc40211390275f858f322743309a0663c4f2d859780a8b8a08cea1450e8b3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"denied_writes": [
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500/AGENTS.md",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r47-2cd73406/AGENTS.md"
|
||||||
|
],
|
||||||
|
"denied_reads": [
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/READ_SCOPE_SIBLING_NEGATIVE_SENTINEL.txt",
|
||||||
|
"/Users/korizatou114/.codex/auth.json",
|
||||||
|
"/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/config.json"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"profile_sha256": "92c8637a7244fa84091de0c8890100879772aae523f75683832c8fc679fe2e3f",
|
||||||
|
"provider_calls": 0,
|
||||||
|
"engines": 0,
|
||||||
|
"full_checker_invocations": 0,
|
||||||
|
"source_or_evidence_changed": false,
|
||||||
|
"at_unix_ns": 1792337283264809000
|
||||||
|
}
|
||||||
+58
@@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"historical_S": "a9ef681fb8f3356507d3d6e58ae30a339deb8a6c",
|
||||||
|
"current_S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"literal_equal_files": 1458,
|
||||||
|
"different_descriptor_files": [
|
||||||
|
"reader-S5A_PURE-case.json",
|
||||||
|
"reader-S5A_PURE-case.var",
|
||||||
|
"reader-S5B_DEPENDENCY-case.json",
|
||||||
|
"reader-S5B_DEPENDENCY-case.var",
|
||||||
|
"reader-S5C_DESTRUCTION_COMMAND-case.json",
|
||||||
|
"reader-S5C_DESTRUCTION_COMMAND-case.var",
|
||||||
|
"reader-S5D_DESTRUCTION_RAID-case.json",
|
||||||
|
"reader-S5D_DESTRUCTION_RAID-case.var",
|
||||||
|
"reader-S5D_IN_FLIGHT-case.json",
|
||||||
|
"reader-S5D_IN_FLIGHT-case.var",
|
||||||
|
"reader-S5D_PAID_BEFORE_INCIDENT-case.json",
|
||||||
|
"reader-S5D_PAID_BEFORE_INCIDENT-case.var",
|
||||||
|
"reader-S5E_MIDNIGHT-case.json",
|
||||||
|
"reader-S5E_MIDNIGHT-case.var",
|
||||||
|
"reader-S5F_EXIT-case.json",
|
||||||
|
"reader-S5F_EXIT-case.var",
|
||||||
|
"reader-S5G_SHIFT_1080-case.json",
|
||||||
|
"reader-S5G_SHIFT_1080-case.var",
|
||||||
|
"reader-S5H_PAUSED_MIDNIGHT-case.json",
|
||||||
|
"reader-S5H_PAUSED_MIDNIGHT-case.var",
|
||||||
|
"reader.json",
|
||||||
|
"reader.var",
|
||||||
|
"writer-S5A_PURE-case.json",
|
||||||
|
"writer-S5A_PURE-case.var",
|
||||||
|
"writer-S5B_DEPENDENCY-case.json",
|
||||||
|
"writer-S5B_DEPENDENCY-case.var",
|
||||||
|
"writer-S5C_DESTRUCTION_COMMAND-case.json",
|
||||||
|
"writer-S5C_DESTRUCTION_COMMAND-case.var",
|
||||||
|
"writer-S5D_DESTRUCTION_RAID-case.json",
|
||||||
|
"writer-S5D_DESTRUCTION_RAID-case.var",
|
||||||
|
"writer-S5D_IN_FLIGHT-case.json",
|
||||||
|
"writer-S5D_IN_FLIGHT-case.var",
|
||||||
|
"writer-S5D_PAID_BEFORE_INCIDENT-case.json",
|
||||||
|
"writer-S5D_PAID_BEFORE_INCIDENT-case.var",
|
||||||
|
"writer-S5E_MIDNIGHT-case.json",
|
||||||
|
"writer-S5E_MIDNIGHT-case.var",
|
||||||
|
"writer-S5F_EXIT-case.json",
|
||||||
|
"writer-S5F_EXIT-case.var",
|
||||||
|
"writer-S5G_SHIFT_1080-case.json",
|
||||||
|
"writer-S5G_SHIFT_1080-case.var",
|
||||||
|
"writer-S5H_PAUSED_MIDNIGHT-case.json",
|
||||||
|
"writer-S5H_PAUSED_MIDNIGHT-case.var",
|
||||||
|
"writer.json",
|
||||||
|
"writer.var"
|
||||||
|
],
|
||||||
|
"keysets_equal": true,
|
||||||
|
"guards_G1_G2_literal_equal": true,
|
||||||
|
"whole_raw_equality": false,
|
||||||
|
"attempted_owned_path_only_equivalence": "REJECTED: first reader case also contains distinct captured formal-profile provenance and saved-member pins; no normalization or waiver applied. New raw is verified normally, not substituted for old input.",
|
||||||
|
"scope": "Historical order/identity regression reuse concerns unchanged executed helpers with retained exact S50 inputs, not an assertion that all S51 raw bytes equal S50. Current native/collector/registered verification remains separate.",
|
||||||
|
"formal_acceptance": false,
|
||||||
|
"at_unix_ns": 1792337270720117000
|
||||||
|
}
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"current_submission": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"historical_control_submission": "a9ef681fb8f3356507d3d6e58ae30a339deb8a6c",
|
||||||
|
"historical_order_execution": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q50_ORIGINAL_ORDER_TYPED_EXECUTION.json",
|
||||||
|
"historical_order_execution_pin": {
|
||||||
|
"bytes": 275993,
|
||||||
|
"sha256": "15b91f1ccc6c6f7d09709055049f157ee0bb6730c0b1c258ee4b9d921b0d60cd"
|
||||||
|
},
|
||||||
|
"historical_order_result_pin": {
|
||||||
|
"bytes": 9126478,
|
||||||
|
"sha256": "9b508092e77f241de593b71c1711dd5e3203b0a8d0e9717abfa20488beb2a3e0"
|
||||||
|
},
|
||||||
|
"historical_identity_result": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S50_COMPLETE_CURRENT_B_IDENTITY.log",
|
||||||
|
"historical_identity_pin": {
|
||||||
|
"bytes": 36990,
|
||||||
|
"sha256": "f05bf544c15b91d997f89ae01965f4acea464f80b42cbf076144971485eddab2"
|
||||||
|
},
|
||||||
|
"unchanged_full_execution_closure_files": 49,
|
||||||
|
"three_snapshot_closures_identical_and_retained": true,
|
||||||
|
"actual_original_raw_files_rehashed_unchanged": 1502,
|
||||||
|
"changed_paths": [
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/CURRENT_STATUS.md",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/ORDER_AUDIT.md",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/REPAIR51_APPLICABILITY_MAP.json",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/REPAIR51_STATUS.md",
|
||||||
|
"docs/plans/original-completion-2026-10-02/execution/p04-01/order-audit.json"
|
||||||
|
],
|
||||||
|
"changed_closure_intersection": [],
|
||||||
|
"scope": "Reuse historical test-local regression results on unchanged executed helper closure and original retained exact S50 raw inputs. These are not fresh S51 negative-control executions. Fresh S51 native admission, current index regeneration and normal registered full verification remain required separately. All original execution labels and failures are retained. Independent reviewer must confirm this applicability.",
|
||||||
|
"commander_decisions": [
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_OPUS_REPAIR51_CANONICAL_DECISION.json",
|
||||||
|
"/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_OPUS_REPAIR51_RUN_DECISION.json"
|
||||||
|
],
|
||||||
|
"actual_full_controls_rerun": false,
|
||||||
|
"formal_acceptance": false,
|
||||||
|
"at_unix_ns": 1792336814190174000
|
||||||
|
}
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"main_base": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"submission": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"authority": "Existing human user directions in this same chat, applied to the reviewed and validated P04-01 candidate within their stated scope",
|
||||||
|
"verbatim_user_directions": [
|
||||||
|
"コミットすべき内容をコミットして。その上でpushして",
|
||||||
|
"mainの更新を明示的に許可します"
|
||||||
|
],
|
||||||
|
"new_candidate_specific_human_statement_claimed": false,
|
||||||
|
"coordinator_judgment": "Standing main-update and commit/push authorization applies; no new product/spec/value/publication/permission change",
|
||||||
|
"at_unix_ns": 1792338601290990000
|
||||||
|
}
|
||||||
+359
@@ -0,0 +1,359 @@
|
|||||||
|
{
|
||||||
|
"original_unit": "P04-01",
|
||||||
|
"original_packages": 30,
|
||||||
|
"original_total": 88,
|
||||||
|
"formal_completed": 17,
|
||||||
|
"formal_credit": 1,
|
||||||
|
"checker_sha256": "3bb0cde776bc295f6f18e74f1e23bf3d832d8e4f71aed260601c82d287c655fd",
|
||||||
|
"required_conditions": {
|
||||||
|
"power_stop": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"停電",
|
||||||
|
[
|
||||||
|
"BASELINE:183",
|
||||||
|
"D05-P04-PAUSE-REASON"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"charges": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"destruction_stop": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"破壊",
|
||||||
|
[
|
||||||
|
"D05-P04-DESTRUCTION"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"charges": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"dependency_stop": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"閉店",
|
||||||
|
[
|
||||||
|
"D05-P04-DEPENDENCY"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"charges": 0,
|
||||||
|
"progress_delta": 0,
|
||||||
|
"reservation_ids_preserved": true,
|
||||||
|
"service_id_preserved": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"shift_completion": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"シフト交代",
|
||||||
|
[
|
||||||
|
"BASELINE:64",
|
||||||
|
"BASELINE:67",
|
||||||
|
"D05-P04-SHIFT-1800"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"minute": 1080,
|
||||||
|
"completions": 1,
|
||||||
|
"charges": 1,
|
||||||
|
"completion_before_shift": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"recovery_completion": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"課金",
|
||||||
|
[
|
||||||
|
"D05-P04-DEPENDENCY"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"completions": 1,
|
||||||
|
"charges": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"same_minute_replay": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"課金",
|
||||||
|
[
|
||||||
|
"D05-P04-DEPENDENCY",
|
||||||
|
"D05-P04-SHIFT-1800"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"completions": 1,
|
||||||
|
"charges": 1,
|
||||||
|
"duplicate_generations": 0,
|
||||||
|
"same_minute_replayed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"closure_release": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"閉店",
|
||||||
|
[
|
||||||
|
"D-034"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"orphan_reservations": 0,
|
||||||
|
"released_once": true,
|
||||||
|
"started_service_continues": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"exit_release": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"退出",
|
||||||
|
[
|
||||||
|
"D-034",
|
||||||
|
"D05-P04-EXIT"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"orphan_reservations": 0,
|
||||||
|
"released_once": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"patience_release": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"退出",
|
||||||
|
[
|
||||||
|
"D-034",
|
||||||
|
"D05-P04-EXIT"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"orphan_reservations": 0,
|
||||||
|
"released_once": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"paused_midnight": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"00:00決算",
|
||||||
|
[
|
||||||
|
"D05-P04-DEPENDENCY",
|
||||||
|
"BASELINE:71",
|
||||||
|
"BASELINE:72",
|
||||||
|
"D05-P04-MIDNIGHT-DAY"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"orphan_reservations": 0,
|
||||||
|
"crossed_midnight_while_paused": true,
|
||||||
|
"stopped_charges": 0,
|
||||||
|
"completions": 1,
|
||||||
|
"charges": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"midnight_settlement": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"00:00決算",
|
||||||
|
[
|
||||||
|
"BASELINE:71",
|
||||||
|
"BASELINE:72",
|
||||||
|
"A01",
|
||||||
|
"D05-P04-MIDNIGHT-DAY"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"settlements": 1,
|
||||||
|
"sales_payments": 1,
|
||||||
|
"payroll_payments": 1,
|
||||||
|
"upkeep_payments": 1,
|
||||||
|
"duty_payments": 1,
|
||||||
|
"nonzero_payroll": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"midnight_replay": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"00:00決算",
|
||||||
|
[
|
||||||
|
"BASELINE:71",
|
||||||
|
"BASELINE:72",
|
||||||
|
"A01"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"settlements": 1,
|
||||||
|
"same_minute_replayed": true,
|
||||||
|
"duplicate_payments": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"save_restore": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"00:00決算",
|
||||||
|
[
|
||||||
|
"BASELINE:71",
|
||||||
|
"BASELINE:72",
|
||||||
|
"A01"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"settlements": 1,
|
||||||
|
"duplicate_payments": 0,
|
||||||
|
"formal_save_restored": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"night_staff_absent": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"シフト交代",
|
||||||
|
[
|
||||||
|
"BASELINE:67",
|
||||||
|
"D05-P04-SHIFT-1800"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"minute": 1081,
|
||||||
|
"state": "WAITING_FOR_STAFF",
|
||||||
|
"night_staff_count": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
},
|
||||||
|
"overtime_task": {
|
||||||
|
"exact_checker_contract": [
|
||||||
|
"シフト交代",
|
||||||
|
[
|
||||||
|
"BASELINE:67"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"interrupt_level": 0,
|
||||||
|
"is_overtime": true,
|
||||||
|
"duty_recorded_once": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accepted": true,
|
||||||
|
"proof": "accepted-index.json plus actual validation/review/integration/final receipts and Root real DB join",
|
||||||
|
"local_raw_verified": true,
|
||||||
|
"missing": [],
|
||||||
|
"accepted_candidate": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"EV_additional_required_proof": [
|
||||||
|
[
|
||||||
|
"autoload/simulation_runtime.gd",
|
||||||
|
"_execute_create_staff_task",
|
||||||
|
"8b83aff45ead128b70931343271dbd03a1024b90238d1f46f93e4856290aa0d8",
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"scripts/staff/task_dispatcher.gd",
|
||||||
|
"_reserve_pair",
|
||||||
|
"48e2e593c117bd675236a165a294c9cc6233f87018010249cd8e675aff01fc3c",
|
||||||
|
6
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"autoload/simulation_runtime.gd",
|
||||||
|
"_reserve_staff_task_items",
|
||||||
|
"4f2add093de47cb08abfa45e9d2285f00d906c9bceadb2d98ffa42faae9ede67",
|
||||||
|
28
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"autoload/simulation_runtime.gd",
|
||||||
|
"_advance_staff_task_travel",
|
||||||
|
"53937aefeec533a5f16169bba4dd6a69b5246101d09de77ca95db7ca174c63ce",
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"scripts/transport/elevator_service.gd",
|
||||||
|
"set_powered",
|
||||||
|
"925f4bf2d109421956fb2958981758d7d84a1ca586a9d4eb51572b8b9677cfba",
|
||||||
|
6
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"all_seven_domains_required": [
|
||||||
|
"closure",
|
||||||
|
"power",
|
||||||
|
"destruction",
|
||||||
|
"exit",
|
||||||
|
"charge",
|
||||||
|
"shift",
|
||||||
|
"midnight"
|
||||||
|
],
|
||||||
|
"all_six_D05_approved": true,
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"M": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
|
||||||
|
"diagnostic_Qt": "2e41a616c65d3ac132c85574593ae7efaf4f9848",
|
||||||
|
"diagnostic_checkout": "1313ff5d3b13cf912b327b178c3e9c91bf9f73df",
|
||||||
|
"normal_C": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"EV_raw_verified": true,
|
||||||
|
"current_native_S5": {
|
||||||
|
"all_four_phases_passed": true,
|
||||||
|
"engines_ended": 4,
|
||||||
|
"receipt": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s5-DIAG-r51/runner-ended.json"
|
||||||
|
},
|
||||||
|
"historical_S47_matrix": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/P04_REQUIRED_CONDITION_MATRIX_2CD73406.json",
|
||||||
|
"approved_D05_extra_subclause": "All actual S51 gates mechanically verified; sequential-onset PAUSE-REASON interpretation remains explicitly unproven, not silently narrowed or cured.",
|
||||||
|
"whole_unit_required_gates": [],
|
||||||
|
"at_unix_ns": 1792337452832483000,
|
||||||
|
"current_registered_handoff_gap": null,
|
||||||
|
"formal_acceptance": true,
|
||||||
|
"accepted_at_jst": "2026-10-19T00:54:23.322453+09:00",
|
||||||
|
"whole_goal_accepted": false
|
||||||
|
}
|
||||||
+48605
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
+31
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"argv": [
|
||||||
|
"/opt/homebrew/Cellar/python@3.12/3.12.13_2/Frameworks/Python.framework/Versions/3.12/bin/python3.12",
|
||||||
|
"-B",
|
||||||
|
"tools/check_p04_order_evidence.py",
|
||||||
|
"--verify-only"
|
||||||
|
],
|
||||||
|
"cwd": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-final-98a6e450",
|
||||||
|
"env_names": [
|
||||||
|
"AGY_CLI_DISABLE_AUTO_UPDATE",
|
||||||
|
"BROWSER_PROFILE_DIR",
|
||||||
|
"BUILD_OUTPUT_DIR",
|
||||||
|
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",
|
||||||
|
"GIT_TERMINAL_PROMPT",
|
||||||
|
"HOME",
|
||||||
|
"LANG",
|
||||||
|
"LC_ALL",
|
||||||
|
"LOGNAME",
|
||||||
|
"MAC_CHROMIUM_TMPDIR",
|
||||||
|
"PATH",
|
||||||
|
"PORT",
|
||||||
|
"PYTHONDONTWRITEBYTECODE",
|
||||||
|
"TEMP",
|
||||||
|
"TERM",
|
||||||
|
"TEST_DATABASE_PATH",
|
||||||
|
"TMP",
|
||||||
|
"TMPDIR",
|
||||||
|
"USER"
|
||||||
|
],
|
||||||
|
"execution": "sandbox"
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"task_id": "P04-01",
|
||||||
|
"commit": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"kind": "final",
|
||||||
|
"checks": [
|
||||||
|
{
|
||||||
|
"id": "p04-acceptance",
|
||||||
|
"exit_code": 0,
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7c7cf5e5b35944a2bec0d54564ac94eb",
|
||||||
|
"passed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"passed": true
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
(version 1)
|
||||||
|
(allow default)
|
||||||
|
(deny file-write*)
|
||||||
|
(deny file-read-data (require-all (subpath "/Users/korizatou114") (require-not (literal "/Users/korizatou114")) (require-not (literal "/Users/korizatou114/.local")) (require-not (literal "/Users/korizatou114/.local/share")) (require-not (literal "/Users/korizatou114/Projects")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime")) (require-not (subpath "/Users/korizatou114/.local/bin")) (require-not (subpath "/Users/korizatou114/.local/share/claude")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-final-98a6e450")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r47-2cd73406")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500")) (require-not (subpath "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/.git"))))
|
||||||
|
(allow file-write* (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01"))
|
||||||
|
(allow file-write* (literal "/dev/null") (literal "/dev/tty") (literal "/dev/stdout") (literal "/dev/stderr"))
|
||||||
|
(deny file-read* file-write* (subpath "/private/tmp/the-tree-p24-02-control-r02"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/Library/Application Support/agent-control"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.ssh"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.aws"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.azure"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.config/gcloud"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/Library/Keychains"))
|
||||||
|
(deny file-write* (subpath "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/.git"))
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
{"task_id": "P04-01", "machine_verified": true, "formal_acceptance": false, "role": "integration/final", "actual_head": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"}
|
||||||
+6847
File diff suppressed because it is too large
Load Diff
+31
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"argv": [
|
||||||
|
"/opt/homebrew/Cellar/python@3.12/3.12.13_2/Frameworks/Python.framework/Versions/3.12/bin/python3.12",
|
||||||
|
"-B",
|
||||||
|
"tools/check_p04_order_evidence.py",
|
||||||
|
"--verify-only"
|
||||||
|
],
|
||||||
|
"cwd": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-integration-1a7627fa",
|
||||||
|
"env_names": [
|
||||||
|
"AGY_CLI_DISABLE_AUTO_UPDATE",
|
||||||
|
"BROWSER_PROFILE_DIR",
|
||||||
|
"BUILD_OUTPUT_DIR",
|
||||||
|
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",
|
||||||
|
"GIT_TERMINAL_PROMPT",
|
||||||
|
"HOME",
|
||||||
|
"LANG",
|
||||||
|
"LC_ALL",
|
||||||
|
"LOGNAME",
|
||||||
|
"MAC_CHROMIUM_TMPDIR",
|
||||||
|
"PATH",
|
||||||
|
"PORT",
|
||||||
|
"PYTHONDONTWRITEBYTECODE",
|
||||||
|
"TEMP",
|
||||||
|
"TERM",
|
||||||
|
"TEST_DATABASE_PATH",
|
||||||
|
"TMP",
|
||||||
|
"TMPDIR",
|
||||||
|
"USER"
|
||||||
|
],
|
||||||
|
"execution": "sandbox"
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"task_id": "P04-01",
|
||||||
|
"commit": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4",
|
||||||
|
"kind": "integration",
|
||||||
|
"checks": [
|
||||||
|
{
|
||||||
|
"id": "p04-acceptance",
|
||||||
|
"exit_code": 0,
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/927c4dd5e24345bc876cd2b69482b37e",
|
||||||
|
"passed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"passed": true
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
(version 1)
|
||||||
|
(allow default)
|
||||||
|
(deny file-write*)
|
||||||
|
(deny file-read-data (require-all (subpath "/Users/korizatou114") (require-not (literal "/Users/korizatou114")) (require-not (literal "/Users/korizatou114/.local")) (require-not (literal "/Users/korizatou114/.local/share")) (require-not (literal "/Users/korizatou114/Projects")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime")) (require-not (subpath "/Users/korizatou114/.local/bin")) (require-not (subpath "/Users/korizatou114/.local/share/claude")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-integration-1a7627fa")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r47-2cd73406")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500")) (require-not (subpath "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/.git"))))
|
||||||
|
(allow file-write* (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01"))
|
||||||
|
(allow file-write* (literal "/dev/null") (literal "/dev/tty") (literal "/dev/stdout") (literal "/dev/stderr"))
|
||||||
|
(deny file-read* file-write* (subpath "/private/tmp/the-tree-p24-02-control-r02"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/Library/Application Support/agent-control"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.ssh"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.aws"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.azure"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.config/gcloud"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/Library/Keychains"))
|
||||||
|
(deny file-write* (subpath "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/.git"))
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
{"task_id": "P04-01", "machine_verified": true, "formal_acceptance": false, "role": "integration/final", "actual_head": "b1810ff4b2809018fe7434be7bdcf6f6411c91f4"}
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"from_actual_review": [
|
||||||
|
{
|
||||||
|
"severity": "low",
|
||||||
|
"message": "order-audit.json の正本の表(phase_order と safety_cases)に、誤っていると分かっている部分範囲の行番号が残っています。\n- 3件は Root の SOURCE_SUBRANGE_CROSSWALK が訂正しています:閉店キューの 8516–8517(実際は 8538–8539)、後の despawn の 8760–8762(実際は 8782–8784)、課金イベントの 11826–11838(実際は 11877/11881)。\n- safety_cases の『release keys:7565–7569』は訂正されていません。この範囲は _execute_leave_facility_queue の開始行 7575 より前なので、明らかに誤りです。\n- どれも『unverified-M-line』と表示されていて、主要な関数アンカーは正しいので、受入の判断は変わりません。\n- 修正案:後続の文書修正で、訂正済みの行番号に揃えるか、部分範囲を削除する。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"severity": "low",
|
||||||
|
"message": "D05-P04-PAUSE-REASON は、同じ tick に両方の条件が起きる場合(S5B)しか実行して証明していません。\n- 停電が先に起き、その後に依存先が休業した場合、facility_service.gd 860-871行の動作では理由が NO_POWER のまま残ります。\n- 承認の回答『現行動作を確定する』とは整合するとも読めます。一方、方針文『同時なら休業優先』の範囲に入るかは解釈が残ります。\n- 文書は未解決・未証明として正直に記録しています。安全性(569行の ACTIVE 判定)には影響せず、P04-01 の受入を左右しません。\n- 表示規則として確定させるなら、所有者が承認する別タスクで扱う必要があります。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"severity": "low",
|
||||||
|
"message": "order-audit.json と CURRENT_STATUS.md の冒頭は、提出前時点の『S51 admission pending AT HANDOFF』のままで、index.json にもそのまま取り込まれています。\n- 提出後に S51 の native6 と validation が合格した事実は、Root の受領記録(p04-root-acceptance-78581500)にしかありません。\n- 正本節は受領記録の場所を示しているので、矛盾ではありません。ただし読み手は二つの資料を突き合わせる必要があります。\n- 統合時か次の文書更新で、S51 の受領記録への一行参照を追記することを推奨します。"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"handling": "Retained follow-ups; independent whole-unit reviewer explicitly found none blocks original P04-01 acceptance. No unknown sequential-onset policy is silently adopted. Provisional subrange source excerpts are supplied; canonical wording cleanup deferred to a related documentation batch.",
|
||||||
|
"whole_goal_complete": false,
|
||||||
|
"sequential_reason_policy_scope": "unresolved/unproven; current behavior retained",
|
||||||
|
"acceptance_not_relaxed": true
|
||||||
|
}
|
||||||
+218
@@ -0,0 +1,218 @@
|
|||||||
|
{
|
||||||
|
"S": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_CURRENT_BEFORE_WHOLE_REVIEW.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_CURRENT_BEFORE_WHOLE_REVIEW.json",
|
||||||
|
"bytes": 4499,
|
||||||
|
"sha256": "8a4b254f38c5c4f47df2e8cfb054c22f50e08cb30ebff9648fe5d8686da780cc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "P04_REQUIRED_CONDITION_MATRIX_78581500_PRE_REVIEW.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/P04_REQUIRED_CONDITION_MATRIX_78581500_PRE_REVIEW.json",
|
||||||
|
"bytes": 12364,
|
||||||
|
"sha256": "9ae6b75cd3598d8db530be3edd78c5e8ee93dc1f07362f98a2a6bb961b624c17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_ACTUAL_APPLICABILITY_INITIAL.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_ACTUAL_APPLICABILITY_INITIAL.json",
|
||||||
|
"bytes": 706,
|
||||||
|
"sha256": "2943c5c73f836377f760793611d1824a67fc06164270ec5a0338c315cef8f3a2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_RETAINED_TEST_LOCAL_CONTROLS_APPLICABILITY.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_RETAINED_TEST_LOCAL_CONTROLS_APPLICABILITY.json",
|
||||||
|
"bytes": 2503,
|
||||||
|
"sha256": "aefd362094cb5b49fd12a52b5db0ef8a6338e099308ea5f1f04eab8f13db0f1f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_RAW_CROSS_VERSION_SCOPE.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_RAW_CROSS_VERSION_SCOPE.json",
|
||||||
|
"bytes": 2523,
|
||||||
|
"sha256": "20fe4bfba87fc4591658e0aec03a519c7bc81fe98ce1a6ef1200f470eb953b85"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_M_SOURCE_SUBRANGE_CROSSWALK.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_M_SOURCE_SUBRANGE_CROSSWALK.json",
|
||||||
|
"bytes": 10479,
|
||||||
|
"sha256": "339444c1c36ab445c1041c4445fe2813667c1a5aefc482def07c300e18921f17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_Q51_STAGE.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_STAGE.json",
|
||||||
|
"bytes": 825,
|
||||||
|
"sha256": "84039c52681783c48060e7766aa22a09e9cf7916d617baa73288922735c64739"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_Q51_CONTEXT_MIRROR.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_CONTEXT_MIRROR.json",
|
||||||
|
"bytes": 606,
|
||||||
|
"sha256": "700bbc17f2de6e24999e4f6167cf613d2ab6c9ec25255440c2e911aad0618642"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_Q51_SIX_CLEAN_PLANS.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_SIX_CLEAN_PLANS.json",
|
||||||
|
"bytes": 7778,
|
||||||
|
"sha256": "58b2acd74e9bb3afc7c93f2f22f34467973b8ce4902b686fb166688e4699b2d5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_Q51_NATIVE_BATCH_PROGRESS.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_Q51_NATIVE_BATCH_PROGRESS.json",
|
||||||
|
"bytes": 9299,
|
||||||
|
"sha256": "2b688005703c7660c64fd7f0ae83d960eba97ca050122fca5e8bc1693aba4c91"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_FRESH_COLLECTION.log",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_FRESH_COLLECTION.log",
|
||||||
|
"bytes": 399,
|
||||||
|
"sha256": "4bc391dba01bc1e56c91a3866f4c1ece2d57ffa2e77a1ce9c90087a5ff3e0cfe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_ACTUAL_INDEX_GENERATION.log",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_ACTUAL_INDEX_GENERATION.log",
|
||||||
|
"bytes": 330,
|
||||||
|
"sha256": "730304123b38153bd932d66b6624bd159e471a0a0aefe7bf51e69f0b7b9d0aeb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_INDEX_AND_FULL_EXISTING_ROUTE.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_INDEX_AND_FULL_EXISTING_ROUTE.json",
|
||||||
|
"bytes": 422114,
|
||||||
|
"sha256": "d0ba3fd38a97ec7b1cd66d87b8b0d0cd8565166b31b79351954303451a0041f1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_NORMAL_REGISTERED_VALIDATION.log",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_NORMAL_REGISTERED_VALIDATION.log",
|
||||||
|
"bytes": 104489,
|
||||||
|
"sha256": "c843ece95ae51e35d33874fffc18cc271b76e63c6e299ce26a0c573c8488cac9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_PROOF_READ_SCOPE_CONTROLS.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_PROOF_READ_SCOPE_CONTROLS.json",
|
||||||
|
"bytes": 3933,
|
||||||
|
"sha256": "f6fc45dfc86d6fde040433f5b562605aabd2776daff3fad0eb95c2c64a67c77f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_PROOF_READ_SELFTEST_PROFILE.sb",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_PROOF_READ_SELFTEST_PROFILE.sb",
|
||||||
|
"bytes": 2122,
|
||||||
|
"sha256": "92c8637a7244fa84091de0c8890100879772aae523f75683832c8fc679fe2e3f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_NORMAL_READ_INPUT_PIN_UPDATE.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_NORMAL_READ_INPUT_PIN_UPDATE.json",
|
||||||
|
"bytes": 1261,
|
||||||
|
"sha256": "4cd540330a8b8cc7df5adf907705dc8a4f8a9de6cfde91d0e5582fcc66193c8f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "thetree-p04-s51-proof-read-cli.py",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/thetree-p04-s51-proof-read-cli.py",
|
||||||
|
"bytes": 7604,
|
||||||
|
"sha256": "83532b4fcd4f7308a936dfe0951fc6bc43de60f38cb528e9bbcb43d6225bcc01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "test_s51_proof_read_scope.py",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/test_s51_proof_read_scope.py",
|
||||||
|
"bytes": 3820,
|
||||||
|
"sha256": "ccf6512b3b64c90df92a7a70aee0f8c38ce44be378716a13f7c13fc886ffad2e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "thetree-p04-full-context-review-78581500-cli.py",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/thetree-p04-full-context-review-78581500-cli.py",
|
||||||
|
"bytes": 4617,
|
||||||
|
"sha256": "8a3554c4458ae753ead2faf0315daee54e4e15babd19107e0900dd65ea32efa7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_REVIEW_FILE_TRANSPORT_CURRENT_S51_PIN.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_REVIEW_FILE_TRANSPORT_CURRENT_S51_PIN.json",
|
||||||
|
"bytes": 728,
|
||||||
|
"sha256": "dacc873b83b2c6d700c0b6a903cb3ff5eb11a61bb56eefa1f91a2ad4f7578654"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ACTUAL_OPUS_REPAIR51_CANONICAL_DECISION.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_OPUS_REPAIR51_CANONICAL_DECISION.json",
|
||||||
|
"bytes": 8550,
|
||||||
|
"sha256": "9c25a719c7af5b8320e8898bf9ba3ad47187fc3f707a772e72cd62ee2da7e507"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ACTUAL_OPUS_REPAIR51_RUN_DECISION.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ACTUAL_OPUS_REPAIR51_RUN_DECISION.json",
|
||||||
|
"bytes": 7618,
|
||||||
|
"sha256": "527227be07cde7b82a6873034dffe7891a6d6def4f6aa35e000a1b114a616d7d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ROOT_S51_CONTINUATION_STATUS.json",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/ROOT_S51_CONTINUATION_STATUS.json",
|
||||||
|
"bytes": 550,
|
||||||
|
"sha256": "290fe5fb14f671619fc19e0868ce261870ba800476b18c14d59997feeb580af6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "continue_s51_after_native.py",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/continue_s51_after_native.py",
|
||||||
|
"bytes": 6939,
|
||||||
|
"sha256": "fd72e9d19ee02ae704a402da2ce8393635d109504ff1bcdd0bd461adb307e144"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "prepare_s51_whole_review_materials.py",
|
||||||
|
"original": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/coordinator-p04-repair30-current-main-r01/prepare_s51_whole_review_materials.py",
|
||||||
|
"bytes": 11095,
|
||||||
|
"sha256": "03dc80146e2e78212ada1f48079857dec1e41b7652b706c708c3fd44247c07cb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "prior-independent-S50-review/result.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/2881795e471940518ec99d779735bdf1/result.json",
|
||||||
|
"bytes": 7259,
|
||||||
|
"sha256": "a3f321481c70a90cdefc22babc4e1a7ea95e0d073884f2d450781f4e5d84448b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "prior-independent-S50-review/stdout.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/2881795e471940518ec99d779735bdf1/stdout.log",
|
||||||
|
"bytes": 15996,
|
||||||
|
"sha256": "8d39f4e9434b569a9b247e1c9e110c59a055841ce292796beb85e4c786f218d5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "prior-independent-S50-review/stderr.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/2881795e471940518ec99d779735bdf1/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "prior-independent-S50-review/command.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/2881795e471940518ec99d779735bdf1/command.json",
|
||||||
|
"bytes": 1836,
|
||||||
|
"sha256": "50116a777156076409ab8f5d52077e1bc01ce390d123bc3daf7177eab9a6bb68"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "actual-registered-validation/report.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/7e1c6381e5fb4c7f903d8bec7cfbdb84-validation.json",
|
||||||
|
"bytes": 365,
|
||||||
|
"sha256": "a5b40c80ba8ac307ec825b89a4384284b6dbcbf93d4b8f1d2c54f772fedd380c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "actual-registered-validation/fcb1a8310639410a94b3ca60f4b9562d/command.json",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/command.json",
|
||||||
|
"bytes": 729,
|
||||||
|
"sha256": "f591fedfa02ebc70fffe0f6ea44a752854d72d7a91a43ae66802ccef4ea0a583"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "actual-registered-validation/fcb1a8310639410a94b3ca60f4b9562d/stdout.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/stdout.log",
|
||||||
|
"bytes": 170,
|
||||||
|
"sha256": "562d7ec566286433aa2cceb39a40f4fdecfe65b349be00d885c7c87575fb9041"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "actual-registered-validation/fcb1a8310639410a94b3ca60f4b9562d/stderr.log",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "actual-registered-validation/fcb1a8310639410a94b3ca60f4b9562d/sandbox.sb",
|
||||||
|
"original": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d/sandbox.sb",
|
||||||
|
"bytes": 2132,
|
||||||
|
"sha256": "de905ae8f6f4f29d101e7cd7cbff66945fba137cd922ac4efd09923afbb084f1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"file_limit": null,
|
||||||
|
"byte_limit": null,
|
||||||
|
"formal_acceptance": false
|
||||||
|
}
|
||||||
+48
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"argv": [
|
||||||
|
"/Users/korizatou114/.local/bin/claude",
|
||||||
|
"-p",
|
||||||
|
"--safe-mode",
|
||||||
|
"--restricted",
|
||||||
|
"--output-format",
|
||||||
|
"json",
|
||||||
|
"--tools",
|
||||||
|
"Read,Grep,Glob",
|
||||||
|
"--strict-mcp-config",
|
||||||
|
"--mcp-config",
|
||||||
|
"{\"mcpServers\":{}}",
|
||||||
|
"--setting-sources",
|
||||||
|
"",
|
||||||
|
"--no-session-persistence",
|
||||||
|
"--permission-mode",
|
||||||
|
"plan",
|
||||||
|
"--json-schema",
|
||||||
|
"{\"type\": \"object\", \"additionalProperties\": false, \"required\": [\"task_id\", \"commit\", \"status\", \"summary\", \"acceptance_ids\", \"findings\"], \"properties\": {\"task_id\": {\"type\": \"string\", \"enum\": [\"P04-01\"]}, \"commit\": {\"type\": \"string\", \"enum\": [\"785815002eb750b0bef3c26fe2ca492b16b280be\"]}, \"status\": {\"type\": \"string\", \"enum\": [\"submitted\", \"pass\", \"changes_requested\", \"blocked\"]}, \"summary\": {\"type\": \"string\"}, \"acceptance_ids\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}, \"findings\": {\"type\": \"array\", \"items\": {\"type\": \"object\", \"additionalProperties\": false, \"required\": [\"severity\", \"message\"], \"properties\": {\"severity\": {\"type\": \"string\", \"enum\": [\"critical\", \"high\", \"medium\", \"low\"]}, \"message\": {\"type\": \"string\"}}}}}}",
|
||||||
|
"--model",
|
||||||
|
"claude-opus-5-5"
|
||||||
|
],
|
||||||
|
"cwd": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-review-37845ae6",
|
||||||
|
"env_names": [
|
||||||
|
"AGY_CLI_DISABLE_AUTO_UPDATE",
|
||||||
|
"BROWSER_PROFILE_DIR",
|
||||||
|
"BUILD_OUTPUT_DIR",
|
||||||
|
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",
|
||||||
|
"CLAUDE_CODE_OAUTH_TOKEN",
|
||||||
|
"GIT_TERMINAL_PROMPT",
|
||||||
|
"HOME",
|
||||||
|
"LANG",
|
||||||
|
"LC_ALL",
|
||||||
|
"LOGNAME",
|
||||||
|
"MAC_CHROMIUM_TMPDIR",
|
||||||
|
"PATH",
|
||||||
|
"PORT",
|
||||||
|
"PYTHONDONTWRITEBYTECODE",
|
||||||
|
"TEMP",
|
||||||
|
"TERM",
|
||||||
|
"TEST_DATABASE_PATH",
|
||||||
|
"TMP",
|
||||||
|
"TMPDIR",
|
||||||
|
"USER"
|
||||||
|
],
|
||||||
|
"execution": "sandbox"
|
||||||
|
}
|
||||||
+23
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+31
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"argv": [
|
||||||
|
"/opt/homebrew/Cellar/python@3.12/3.12.13_2/Frameworks/Python.framework/Versions/3.12/bin/python3.12",
|
||||||
|
"-B",
|
||||||
|
"tools/check_p04_order_evidence.py",
|
||||||
|
"--verify-only"
|
||||||
|
],
|
||||||
|
"cwd": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-validation-52fed5f6",
|
||||||
|
"env_names": [
|
||||||
|
"AGY_CLI_DISABLE_AUTO_UPDATE",
|
||||||
|
"BROWSER_PROFILE_DIR",
|
||||||
|
"BUILD_OUTPUT_DIR",
|
||||||
|
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",
|
||||||
|
"GIT_TERMINAL_PROMPT",
|
||||||
|
"HOME",
|
||||||
|
"LANG",
|
||||||
|
"LC_ALL",
|
||||||
|
"LOGNAME",
|
||||||
|
"MAC_CHROMIUM_TMPDIR",
|
||||||
|
"PATH",
|
||||||
|
"PORT",
|
||||||
|
"PYTHONDONTWRITEBYTECODE",
|
||||||
|
"TEMP",
|
||||||
|
"TERM",
|
||||||
|
"TEST_DATABASE_PATH",
|
||||||
|
"TMP",
|
||||||
|
"TMPDIR",
|
||||||
|
"USER"
|
||||||
|
],
|
||||||
|
"execution": "sandbox"
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"task_id": "P04-01",
|
||||||
|
"commit": "785815002eb750b0bef3c26fe2ca492b16b280be",
|
||||||
|
"kind": "validation",
|
||||||
|
"checks": [
|
||||||
|
{
|
||||||
|
"id": "p04-acceptance",
|
||||||
|
"exit_code": 0,
|
||||||
|
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p04-01/runs/fcb1a8310639410a94b3ca60f4b9562d",
|
||||||
|
"passed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"passed": true
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
(version 1)
|
||||||
|
(allow default)
|
||||||
|
(deny file-write*)
|
||||||
|
(deny file-read-data (require-all (subpath "/Users/korizatou114") (require-not (literal "/Users/korizatou114")) (require-not (literal "/Users/korizatou114/.local")) (require-not (literal "/Users/korizatou114/.local/share")) (require-not (literal "/Users/korizatou114/Projects")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01")) (require-not (literal "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime")) (require-not (subpath "/Users/korizatou114/.local/bin")) (require-not (subpath "/Users/korizatou114/.local/share/claude")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r47-2cd73406")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-root-q-r51-78581500")) (require-not (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-validation-52fed5f6")) (require-not (subpath "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/.git"))))
|
||||||
|
(allow file-write* (subpath "/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01"))
|
||||||
|
(allow file-write* (literal "/dev/null") (literal "/dev/tty") (literal "/dev/stdout") (literal "/dev/stderr"))
|
||||||
|
(deny file-read* file-write* (subpath "/private/tmp/the-tree-p24-02-control-r02"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/Library/Application Support/agent-control"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.ssh"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.aws"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.azure"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/.config/gcloud"))
|
||||||
|
(deny file-read* file-write* (subpath "/Users/korizatou114/Library/Keychains"))
|
||||||
|
(deny file-write* (subpath "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/.git"))
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
{"task_id": "P04-01", "machine_verified": true, "formal_acceptance": false, "role": "prospective composition", "actual_head": "785815002eb750b0bef3c26fe2ca492b16b280be"}
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://qpe5mfy3o1cw"
|
||||||
|
path="res://.godot/imported/tree_theme_back_candidate.wav-1af8eac19cfe5ccb9a16a9a74b171ffd.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/bgm/tree_theme_back_candidate.wav"
|
||||||
|
dest_files=["res://.godot/imported/tree_theme_back_candidate.wav-1af8eac19cfe5ccb9a16a9a74b171ffd.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
||||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dr4atdrw3iv1o"
|
||||||
|
path="res://.godot/imported/tree_theme_front_candidate.wav-dd40d47f468b616e1eb3517c0056cc0c.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/bgm/tree_theme_front_candidate.wav"
|
||||||
|
dest_files=["res://.godot/imported/tree_theme_front_candidate.wav-dd40d47f468b616e1eb3517c0056cc0c.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
|
||||||
|
Interface Sounds (1.0)
|
||||||
|
|
||||||
|
Created/distributed by Kenney (www.kenney.nl)
|
||||||
|
Creation date: 11-02-2020
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
License: (Creative Commons Zero, CC0)
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
This content is free to use in personal, educational and commercial projects.␍
|
||||||
|
Support us by crediting Kenney or www.kenney.nl (this is not mandatory)
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Donate: http://support.kenney.nl
|
||||||
|
Patreon: http://patreon.com/kenney/
|
||||||
|
|
||||||
|
Follow on Twitter for updates:
|
||||||
|
http://twitter.com/KenneyNL
|
||||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://cg3ltmy3l1tut"
|
||||||
|
path="res://.godot/imported/bong_001.ogg-036c448bb5d6a2a3d929d1a393030267.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/ui/bong_001.ogg"
|
||||||
|
dest_files=["res://.godot/imported/bong_001.ogg-036c448bb5d6a2a3d929d1a393030267.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://b6gxkug03pmia"
|
||||||
|
path="res://.godot/imported/click_001.ogg-faef30153c7c6ab499289b7b03f0bade.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/ui/click_001.ogg"
|
||||||
|
dest_files=["res://.godot/imported/click_001.ogg-faef30153c7c6ab499289b7b03f0bade.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://csfga2avhq4ul"
|
||||||
|
path="res://.godot/imported/confirmation_001.ogg-3e5a493cd453540435a25930de468964.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/ui/confirmation_001.ogg"
|
||||||
|
dest_files=["res://.godot/imported/confirmation_001.ogg-3e5a493cd453540435a25930de468964.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://cwdh8pkwvyuf2"
|
||||||
|
path="res://.godot/imported/error_008.ogg-41fd046ecd9f266bdea4813897127346.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/audio/ui/error_008.ogg"
|
||||||
|
dest_files=["res://.godot/imported/error_008.ogg-41fd046ecd9f266bdea4813897127346.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"official_page": "https://kenney.nl/assets/interface-sounds",
|
||||||
|
"official_archive_sha256": "f2193d072726d6758a5f7871b2dcc54dcce0d5c35c6f0a62f92549b327c81232",
|
||||||
|
"license": {
|
||||||
|
"name": "Creative Commons Zero, CC0",
|
||||||
|
"official_url": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||||
|
"path": "assets/audio/ui/License.txt",
|
||||||
|
"sha256": "f7966c773bbed0eca6a9c75081c44a178b38eae112724dbb5fdfbd4192d118a9",
|
||||||
|
"original_byte_preserved": true
|
||||||
|
},
|
||||||
|
"assets": [
|
||||||
|
{
|
||||||
|
"role": "click",
|
||||||
|
"path": "assets/audio/ui/click_001.ogg",
|
||||||
|
"sha256": "ccfb7fa0cccdd9faec0eb16033c732b1e308d139d80f799161495d58f7adcdb9",
|
||||||
|
"bytes": 4876
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role": "success",
|
||||||
|
"path": "assets/audio/ui/confirmation_001.ogg",
|
||||||
|
"sha256": "063564703b6094d70718a3e787a55cc9141611e4ecd6b6637f8828f79b4a8c3a",
|
||||||
|
"bytes": 8968
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role": "refusal",
|
||||||
|
"path": "assets/audio/ui/error_008.ogg",
|
||||||
|
"sha256": "eba17ecb2a426bfd4a8a6acff5f8a86202b6424a77af0fd842e37809a1ab6d81",
|
||||||
|
"bytes": 9215
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role": "notification",
|
||||||
|
"path": "assets/audio/ui/bong_001.ogg",
|
||||||
|
"sha256": "d21d0f0b782445db579d11e2506b24cd1ac9d664ee33aeaf807761aa7b6fd710",
|
||||||
|
"bytes": 4848
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"usage": "UI click, committed action success/refusal, new foreground notification"
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
render_mode unshaded;
|
||||||
|
|
||||||
|
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest;
|
||||||
|
uniform vec2 extent = vec2(1.0);
|
||||||
|
uniform vec2 center = vec2(0.5);
|
||||||
|
uniform float progress : hint_range(0.0, 1.0) = 0.0;
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
vec2 delta = (UV - center) * extent;
|
||||||
|
float distance_px = length(delta);
|
||||||
|
float radius = progress * length(extent);
|
||||||
|
float band = 1.0 - smoothstep(0.0, 28.0, abs(distance_px - radius));
|
||||||
|
float fade = 1.0 - progress;
|
||||||
|
vec2 direction = delta / max(distance_px, 1.0);
|
||||||
|
vec2 offset = direction * sin((distance_px - radius) * 0.18) * band * 4.0 * fade * SCREEN_PIXEL_SIZE;
|
||||||
|
vec4 scene = texture(screen_texture, SCREEN_UV + offset);
|
||||||
|
scene.rgb += vec3(0.18, 0.28, 0.22) * band * fade;
|
||||||
|
COLOR = vec4(scene.rgb, 1.0);
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://duedneo846yck
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_resource type="Resource" script_class="VisualThemeProfile" load_steps=74 format=3]
|
[gd_resource type="Resource" script_class="VisualThemeProfile" load_steps=75 format=3]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/ui/visual_theme_profile.gd" id="1_theme"]
|
[ext_resource type="Script" path="res://scripts/ui/visual_theme_profile.gd" id="1_theme"]
|
||||||
[ext_resource type="Texture2D" path="res://assets/themes/japanese_fantasy/world-front-v1.png" id="2_front"]
|
[ext_resource type="Texture2D" path="res://assets/themes/japanese_fantasy/world-front-v1.png" id="2_front"]
|
||||||
@@ -207,6 +207,10 @@ region = Rect2(627, 940.5, 313.5, 313.5)
|
|||||||
atlas = ExtResource("5_system")
|
atlas = ExtResource("5_system")
|
||||||
region = Rect2(940.5, 940.5, 313.5, 313.5)
|
region = Rect2(940.5, 940.5, 313.5, 313.5)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="F_stairs"]
|
||||||
|
atlas = ExtResource("8_pixel_dungeon")
|
||||||
|
region = Rect2(48, 48, 16, 16)
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_theme")
|
script = ExtResource("1_theme")
|
||||||
pixel_dungeon_tiles = ExtResource("8_pixel_dungeon")
|
pixel_dungeon_tiles = ExtResource("8_pixel_dungeon")
|
||||||
@@ -216,18 +220,25 @@ back_world_background = ExtResource("3_back")
|
|||||||
world_art_opacity = 0.94
|
world_art_opacity = 0.94
|
||||||
grid_overlay_opacity = 0.22
|
grid_overlay_opacity = 0.22
|
||||||
facility_icons = {
|
facility_icons = {
|
||||||
|
"cleaning_room": SubResource("F12"),
|
||||||
|
"chapel": SubResource("F12"),
|
||||||
"reception": SubResource("F00"),
|
"reception": SubResource("F00"),
|
||||||
"standard_room": SubResource("F01"),
|
"standard_room": SubResource("F01"),
|
||||||
|
"premium_room": SubResource("F01"),
|
||||||
"cafeteria": SubResource("F02"),
|
"cafeteria": SubResource("F02"),
|
||||||
"warehouse": SubResource("F03"),
|
"warehouse": SubResource("F03"),
|
||||||
"kitchen": SubResource("F10"),
|
"kitchen": SubResource("F10"),
|
||||||
"public_bath": SubResource("F11"),
|
"public_bath": SubResource("F11"),
|
||||||
"staff_waiting_room": SubResource("F12"),
|
"staff_waiting_room": SubResource("F12"),
|
||||||
|
"staff_dormitory": SubResource("F01"),
|
||||||
|
"infirmary": SubResource("F12"),
|
||||||
"security_station": SubResource("F13"),
|
"security_station": SubResource("F13"),
|
||||||
"tavern": SubResource("F20"),
|
"tavern": SubResource("F20"),
|
||||||
"massage_room": SubResource("F21"),
|
"massage_room": SubResource("F21"),
|
||||||
"guest_elevator": SubResource("F22"),
|
"guest_elevator": SubResource("F22"),
|
||||||
"service_elevator": SubResource("F23"),
|
"service_elevator": SubResource("F23"),
|
||||||
|
"guest_stairs": SubResource("F_stairs"),
|
||||||
|
"service_stairs": SubResource("F_stairs"),
|
||||||
"staff_door": SubResource("F30"),
|
"staff_door": SubResource("F30"),
|
||||||
"guest_corridor": SubResource("F31"),
|
"guest_corridor": SubResource("F31"),
|
||||||
"service_corridor": SubResource("F32"),
|
"service_corridor": SubResource("F32"),
|
||||||
|
|||||||
+3389
-200
File diff suppressed because it is too large
Load Diff
@@ -2,25 +2,501 @@
|
|||||||
"schema_version": 1,
|
"schema_version": 1,
|
||||||
"content_type": "staff_candidates",
|
"content_type": "staff_candidates",
|
||||||
"entries": [
|
"entries": [
|
||||||
{"id":"staff_akane","display_name":"アカネ","age":24,"adult_verified":true,"role_id":"receptionist","daily_wage":120,"signing_cost":180,"preferred_shift":"day","traits":["friendly"],"skills":{"combat":15,"operation":42,"service":68,"underworld":5},"permitted_task_tags":["reception","service"]},
|
{
|
||||||
{"id":"staff_bardo","display_name":"バルド","age":38,"adult_verified":true,"role_id":"receptionist","daily_wage":135,"signing_cost":220,"preferred_shift":"night","traits":["calm"],"skills":{"combat":22,"operation":55,"service":62,"underworld":18},"permitted_task_tags":["reception","service"]},
|
"id": "staff_akane",
|
||||||
{"id":"staff_chika","display_name":"チカ","age":27,"adult_verified":true,"role_id":"cook","daily_wage":145,"signing_cost":250,"preferred_shift":"day","traits":["cleanly"],"skills":{"combat":8,"operation":76,"service":32,"underworld":4},"permitted_task_tags":["cooking","supply"]},
|
"display_name": "アカネ",
|
||||||
{"id":"staff_doran","display_name":"ドラン","age":44,"adult_verified":true,"role_id":"cook","daily_wage":160,"signing_cost":300,"preferred_shift":"night","traits":["mentor"],"skills":{"combat":20,"operation":82,"service":28,"underworld":12},"permitted_task_tags":["cooking","supply"]},
|
"age": 24,
|
||||||
{"id":"staff_eri","display_name":"エリ","age":22,"adult_verified":true,"role_id":"cleaner","daily_wage":90,"signing_cost":100,"preferred_shift":"day","traits":["cleanly"],"skills":{"combat":6,"operation":61,"service":35,"underworld":3},"permitted_task_tags":["cleaning","maintenance"]},
|
"adult_verified": true,
|
||||||
{"id":"staff_fugo","display_name":"フゴ","age":31,"adult_verified":true,"role_id":"cleaner","daily_wage":100,"signing_cost":130,"preferred_shift":"night","traits":["night_owl"],"skills":{"combat":18,"operation":65,"service":22,"underworld":20},"permitted_task_tags":["cleaning","maintenance"]},
|
"role_id": "receptionist",
|
||||||
{"id":"staff_gina","display_name":"ジーナ","age":29,"adult_verified":true,"role_id":"porter","daily_wage":110,"signing_cost":150,"preferred_shift":"day","traits":["careful"],"skills":{"combat":28,"operation":70,"service":20,"underworld":10},"permitted_task_tags":["logistics","rescue","supply"]},
|
"daily_wage": 120,
|
||||||
{"id":"staff_haru","display_name":"ハル","age":21,"adult_verified":true,"role_id":"porter","daily_wage":95,"signing_cost":100,"preferred_shift":"night","traits":["night_owl"],"skills":{"combat":24,"operation":58,"service":25,"underworld":28},"permitted_task_tags":["logistics","rescue","supply"]},
|
"signing_cost": 180,
|
||||||
{"id":"staff_iris","display_name":"イリス","age":26,"adult_verified":true,"role_id":"attendant","daily_wage":130,"signing_cost":210,"preferred_shift":"day","traits":["friendly"],"skills":{"combat":10,"operation":38,"service":74,"underworld":8},"permitted_task_tags":["bath","room_service","service"]},
|
"preferred_shift": "day",
|
||||||
{"id":"staff_juno","display_name":"ユノ","age":33,"adult_verified":true,"role_id":"attendant","daily_wage":140,"signing_cost":240,"preferred_shift":"night","traits":["calm"],"skills":{"combat":12,"operation":45,"service":78,"underworld":22},"permitted_task_tags":["bath","room_service","service"]},
|
"traits": [
|
||||||
{"id":"staff_klaus","display_name":"クラウス","age":36,"adult_verified":true,"role_id":"guard","daily_wage":155,"signing_cost":280,"preferred_shift":"day","traits":["short_tempered"],"skills":{"combat":82,"operation":34,"service":18,"underworld":16},"permitted_task_tags":["defense","escort","security"]},
|
"friendly"
|
||||||
{"id":"staff_lina","display_name":"リナ","age":30,"adult_verified":true,"role_id":"guard","daily_wage":150,"signing_cost":260,"preferred_shift":"night","traits":["night_owl"],"skills":{"combat":77,"operation":38,"service":25,"underworld":30},"permitted_task_tags":["defense","escort","security"]},
|
],
|
||||||
{"id":"staff_marc","display_name":"マルク","age":41,"adult_verified":true,"role_id":"guard","daily_wage":170,"signing_cost":330,"preferred_shift":"any","traits":["mentor"],"skills":{"combat":88,"operation":46,"service":20,"underworld":25},"permitted_task_tags":["defense","escort","security"]},
|
"skills": {
|
||||||
{"id":"staff_nadia","display_name":"ナディア","age":28,"adult_verified":true,"role_id":"bartender","daily_wage":145,"signing_cost":240,"preferred_shift":"night","traits":["merchant_minded"],"skills":{"combat":20,"operation":48,"service":76,"underworld":35},"permitted_task_tags":["bar","service","supply"]},
|
"combat": 15,
|
||||||
{"id":"staff_otto","display_name":"オットー","age":35,"adult_verified":true,"role_id":"bartender","daily_wage":150,"signing_cost":270,"preferred_shift":"night","traits":["friendly"],"skills":{"combat":26,"operation":52,"service":79,"underworld":32},"permitted_task_tags":["bar","service","supply"]},
|
"operation": 42,
|
||||||
{"id":"staff_petra","display_name":"ペトラ","age":25,"adult_verified":true,"role_id":"masseur","daily_wage":145,"signing_cost":260,"preferred_shift":"day","traits":["careful"],"skills":{"combat":8,"operation":35,"service":81,"underworld":18},"permitted_task_tags":["adult_service","massage","service"]},
|
"service": 68,
|
||||||
{"id":"staff_quinn","display_name":"クイン","age":32,"adult_verified":true,"role_id":"masseur","daily_wage":160,"signing_cost":320,"preferred_shift":"night","traits":["underworld_savvy"],"skills":{"combat":18,"operation":40,"service":84,"underworld":55},"permitted_task_tags":["adult_service","massage","service"]},
|
"underworld": 5
|
||||||
{"id":"staff_rika","display_name":"リカ","age":23,"adult_verified":true,"role_id":"clerk","daily_wage":105,"signing_cost":140,"preferred_shift":"day","traits":["merchant_minded"],"skills":{"combat":5,"operation":67,"service":58,"underworld":7},"permitted_task_tags":["accounting","reception","trade"]},
|
},
|
||||||
{"id":"staff_sven","display_name":"スヴェン","age":39,"adult_verified":true,"role_id":"maintenance","daily_wage":125,"signing_cost":190,"preferred_shift":"any","traits":["careful"],"skills":{"combat":32,"operation":74,"service":16,"underworld":15},"permitted_task_tags":["construction","maintenance","repair"]},
|
"permitted_task_tags": [
|
||||||
{"id":"staff_tessa","display_name":"テッサ","age":34,"adult_verified":true,"role_id":"medic","daily_wage":165,"signing_cost":340,"preferred_shift":"any","traits":["calm"],"skills":{"combat":14,"operation":69,"service":63,"underworld":12},"permitted_task_tags":["medical","rescue","service"]}
|
"reception",
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_bardo",
|
||||||
|
"display_name": "バルド",
|
||||||
|
"age": 38,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "receptionist",
|
||||||
|
"daily_wage": 135,
|
||||||
|
"signing_cost": 220,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"calm"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 22,
|
||||||
|
"operation": 55,
|
||||||
|
"service": 62,
|
||||||
|
"underworld": 18
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"reception",
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_chika",
|
||||||
|
"display_name": "チカ",
|
||||||
|
"age": 27,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "cook",
|
||||||
|
"daily_wage": 145,
|
||||||
|
"signing_cost": 250,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"cleanly"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 8,
|
||||||
|
"operation": 76,
|
||||||
|
"service": 32,
|
||||||
|
"underworld": 4
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"cooking",
|
||||||
|
"supply"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_doran",
|
||||||
|
"display_name": "ドラン",
|
||||||
|
"age": 44,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "cook",
|
||||||
|
"daily_wage": 160,
|
||||||
|
"signing_cost": 300,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"mentor"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 20,
|
||||||
|
"operation": 82,
|
||||||
|
"service": 28,
|
||||||
|
"underworld": 12
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"cooking",
|
||||||
|
"supply"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_eri",
|
||||||
|
"display_name": "エリ",
|
||||||
|
"age": 22,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "cleaner",
|
||||||
|
"daily_wage": 90,
|
||||||
|
"signing_cost": 100,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"cleanly"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 6,
|
||||||
|
"operation": 61,
|
||||||
|
"service": 35,
|
||||||
|
"underworld": 3
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"cleaning",
|
||||||
|
"maintenance"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_fugo",
|
||||||
|
"display_name": "フゴ",
|
||||||
|
"age": 31,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "cleaner",
|
||||||
|
"daily_wage": 100,
|
||||||
|
"signing_cost": 130,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"night_owl"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 18,
|
||||||
|
"operation": 65,
|
||||||
|
"service": 22,
|
||||||
|
"underworld": 20
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"cleaning",
|
||||||
|
"maintenance"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_gina",
|
||||||
|
"display_name": "ジーナ",
|
||||||
|
"age": 29,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "porter",
|
||||||
|
"daily_wage": 110,
|
||||||
|
"signing_cost": 150,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"careful"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 28,
|
||||||
|
"operation": 70,
|
||||||
|
"service": 20,
|
||||||
|
"underworld": 10
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"logistics",
|
||||||
|
"rescue",
|
||||||
|
"supply"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_haru",
|
||||||
|
"display_name": "ハル",
|
||||||
|
"age": 21,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "porter",
|
||||||
|
"daily_wage": 95,
|
||||||
|
"signing_cost": 100,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"night_owl"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 24,
|
||||||
|
"operation": 58,
|
||||||
|
"service": 25,
|
||||||
|
"underworld": 28
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"logistics",
|
||||||
|
"rescue",
|
||||||
|
"supply"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_iris",
|
||||||
|
"display_name": "イリス",
|
||||||
|
"age": 26,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "attendant",
|
||||||
|
"daily_wage": 130,
|
||||||
|
"signing_cost": 210,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"friendly"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 10,
|
||||||
|
"operation": 38,
|
||||||
|
"service": 74,
|
||||||
|
"underworld": 8
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"bath",
|
||||||
|
"room_service",
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_juno",
|
||||||
|
"display_name": "ユノ",
|
||||||
|
"age": 33,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "attendant",
|
||||||
|
"daily_wage": 140,
|
||||||
|
"signing_cost": 240,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"calm"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 12,
|
||||||
|
"operation": 45,
|
||||||
|
"service": 78,
|
||||||
|
"underworld": 22
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"bath",
|
||||||
|
"room_service",
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_klaus",
|
||||||
|
"display_name": "クラウス",
|
||||||
|
"age": 36,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "guard",
|
||||||
|
"daily_wage": 155,
|
||||||
|
"signing_cost": 280,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"short_tempered"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 82,
|
||||||
|
"operation": 34,
|
||||||
|
"service": 18,
|
||||||
|
"underworld": 16
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"defense",
|
||||||
|
"escort",
|
||||||
|
"security"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_lina",
|
||||||
|
"display_name": "リナ",
|
||||||
|
"age": 30,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "guard",
|
||||||
|
"daily_wage": 150,
|
||||||
|
"signing_cost": 260,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"night_owl"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 77,
|
||||||
|
"operation": 38,
|
||||||
|
"service": 25,
|
||||||
|
"underworld": 30
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"defense",
|
||||||
|
"escort",
|
||||||
|
"security"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_marc",
|
||||||
|
"display_name": "マルク",
|
||||||
|
"age": 41,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "guard",
|
||||||
|
"daily_wage": 170,
|
||||||
|
"signing_cost": 330,
|
||||||
|
"preferred_shift": "any",
|
||||||
|
"traits": [
|
||||||
|
"mentor"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 88,
|
||||||
|
"operation": 46,
|
||||||
|
"service": 20,
|
||||||
|
"underworld": 25
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"defense",
|
||||||
|
"escort",
|
||||||
|
"security"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_nadia",
|
||||||
|
"display_name": "ナディア",
|
||||||
|
"age": 28,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "bartender",
|
||||||
|
"daily_wage": 145,
|
||||||
|
"signing_cost": 240,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"merchant_minded"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 20,
|
||||||
|
"operation": 48,
|
||||||
|
"service": 76,
|
||||||
|
"underworld": 35
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"bar",
|
||||||
|
"service",
|
||||||
|
"supply"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_otto",
|
||||||
|
"display_name": "オットー",
|
||||||
|
"age": 35,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "bartender",
|
||||||
|
"daily_wage": 150,
|
||||||
|
"signing_cost": 270,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"friendly"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 26,
|
||||||
|
"operation": 52,
|
||||||
|
"service": 79,
|
||||||
|
"underworld": 32
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"bar",
|
||||||
|
"service",
|
||||||
|
"supply"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_petra",
|
||||||
|
"display_name": "ペトラ",
|
||||||
|
"age": 25,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "masseur",
|
||||||
|
"daily_wage": 145,
|
||||||
|
"signing_cost": 260,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"careful"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 8,
|
||||||
|
"operation": 35,
|
||||||
|
"service": 81,
|
||||||
|
"underworld": 18
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"adult_service",
|
||||||
|
"massage",
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_quinn",
|
||||||
|
"display_name": "クイン",
|
||||||
|
"age": 32,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "masseur",
|
||||||
|
"daily_wage": 160,
|
||||||
|
"signing_cost": 320,
|
||||||
|
"preferred_shift": "night",
|
||||||
|
"traits": [
|
||||||
|
"underworld_savvy"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 18,
|
||||||
|
"operation": 40,
|
||||||
|
"service": 84,
|
||||||
|
"underworld": 55
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"adult_service",
|
||||||
|
"massage",
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_rika",
|
||||||
|
"display_name": "リカ",
|
||||||
|
"age": 23,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "clerk",
|
||||||
|
"daily_wage": 105,
|
||||||
|
"signing_cost": 140,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"merchant_minded"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 5,
|
||||||
|
"operation": 67,
|
||||||
|
"service": 58,
|
||||||
|
"underworld": 7
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"accounting",
|
||||||
|
"reception",
|
||||||
|
"trade"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_sven",
|
||||||
|
"display_name": "スヴェン",
|
||||||
|
"age": 39,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "maintenance",
|
||||||
|
"daily_wage": 125,
|
||||||
|
"signing_cost": 190,
|
||||||
|
"preferred_shift": "any",
|
||||||
|
"traits": [
|
||||||
|
"careful"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 32,
|
||||||
|
"operation": 74,
|
||||||
|
"service": 16,
|
||||||
|
"underworld": 15
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"construction",
|
||||||
|
"maintenance",
|
||||||
|
"repair"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_tessa",
|
||||||
|
"display_name": "テッサ",
|
||||||
|
"age": 34,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "medic",
|
||||||
|
"daily_wage": 165,
|
||||||
|
"signing_cost": 340,
|
||||||
|
"preferred_shift": "any",
|
||||||
|
"traits": [
|
||||||
|
"calm"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 14,
|
||||||
|
"operation": 69,
|
||||||
|
"service": 63,
|
||||||
|
"underworld": 12
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"medical",
|
||||||
|
"rescue",
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "staff_uma",
|
||||||
|
"display_name": "ウマ",
|
||||||
|
"age": 28,
|
||||||
|
"adult_verified": true,
|
||||||
|
"role_id": "cleric",
|
||||||
|
"daily_wage": 130,
|
||||||
|
"signing_cost": 210,
|
||||||
|
"preferred_shift": "day",
|
||||||
|
"traits": [
|
||||||
|
"calm"
|
||||||
|
],
|
||||||
|
"skills": {
|
||||||
|
"combat": 10,
|
||||||
|
"operation": 38,
|
||||||
|
"service": 74,
|
||||||
|
"underworld": 8
|
||||||
|
},
|
||||||
|
"permitted_task_tags": [
|
||||||
|
"service"
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
"preferred_shift": "day",
|
"preferred_shift": "day",
|
||||||
"traits": ["friendly", "unique", "unsellable"],
|
"traits": ["friendly", "unique", "unsellable"],
|
||||||
"skills": {"combat": 24, "operation": 66, "service": 82, "underworld": 18},
|
"skills": {"combat": 24, "operation": 66, "service": 82, "underworld": 18},
|
||||||
"mechanical_effects": {"assigned_floor_patience_loss_multiplier_bp": 9000}
|
"mechanical_effects": {"assigned_floor_revenue_multiplier_bp": 12000}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "rival_rai",
|
"id": "rival_rai",
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"initial_cleanliness": 100,
|
||||||
|
"maximum_cleanliness": 100,
|
||||||
|
"clean_at_or_below": 75,
|
||||||
|
"work_minutes": 8,
|
||||||
|
"recovery_per_completed_task": 25
|
||||||
|
}
|
||||||
@@ -24,6 +24,7 @@ construction_cost = {&"gold": 1500, &"materials": 14}
|
|||||||
build_minutes = 240
|
build_minutes = 240
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
upgrade_costs = Array[Dictionary]([{&"gold": 750, &"materials": 8}, {&"gold": 1500, &"materials": 14}])
|
upgrade_costs = Array[Dictionary]([{&"gold": 750, &"materials": 8}, {&"gold": 1500, &"materials": 14}])
|
||||||
|
maintenance_gold = 8
|
||||||
maintenance_mana = 3
|
maintenance_mana = 3
|
||||||
power_priority = 45
|
power_priority = 45
|
||||||
staff_min = 1
|
staff_min = 1
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ footprint = Vector2i(4, 2)
|
|||||||
construction_cost = {&"gold": 800, &"materials": 12}
|
construction_cost = {&"gold": 800, &"materials": 12}
|
||||||
build_minutes = 180
|
build_minutes = 180
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
|
maintenance_gold = 4
|
||||||
maintenance_mana = 2
|
maintenance_mana = 2
|
||||||
staff_min = 2
|
staff_min = 2
|
||||||
staff_max = 4
|
staff_max = 4
|
||||||
@@ -20,8 +21,8 @@ required_roles = Array[StringName]([&"cook", &"server", &"attendant"])
|
|||||||
primary_skill = &"cooking"
|
primary_skill = &"cooking"
|
||||||
capacity = 12
|
capacity = 12
|
||||||
queue_capacity = 24
|
queue_capacity = 24
|
||||||
base_service_minutes = 15
|
base_service_minutes = 45
|
||||||
base_quality = 55
|
base_quality = 55
|
||||||
base_price = 35
|
base_price = 25
|
||||||
inventory_inputs = {&"ingredient/basic_meal": 1}
|
inventory_inputs = {&"ingredient/basic_meal": 1}
|
||||||
tags = Array[StringName]([&"dining", &"social"])
|
tags = Array[StringName]([&"dining", &"social"])
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ display_name = "闇市取引所"
|
|||||||
description = "希少品を高値で扱う地下取引施設。収益と引き換えに警戒と監査リスクを持つ。"
|
description = "希少品を高値で扱う地下取引施設。収益と引き換えに警戒と監査リスクを持つ。"
|
||||||
zone = 3
|
zone = 3
|
||||||
layer = 0
|
layer = 0
|
||||||
footprint = Vector2i(3, 2)
|
footprint = Vector2i(4, 2)
|
||||||
construction_cost = {&"gold": 1600, &"materials": 12}
|
construction_cost = {&"gold": 1600, &"materials": 12}
|
||||||
build_minutes = 270
|
build_minutes = 270
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
[gd_resource type="Resource" script_class="FacilityDefinition" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/data/facility_definition.gd" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1")
|
||||||
|
id = &"chapel"
|
||||||
|
display_name = "礼拝堂"
|
||||||
|
description = "礼拝と寄付を通じて信仰を育む施設。聖職者の配置が必要。"
|
||||||
|
zone = 0
|
||||||
|
layer = 0
|
||||||
|
footprint = Vector2i(4, 3)
|
||||||
|
construction_cost = {&"gold": 1200, &"materials": 12}
|
||||||
|
build_minutes = 180
|
||||||
|
maintenance_gold = 6
|
||||||
|
staff_min = 1
|
||||||
|
staff_max = 2
|
||||||
|
required_roles = Array[StringName]([&"cleric"])
|
||||||
|
primary_skill = &"service"
|
||||||
|
customer_capacity = 8
|
||||||
|
capacity = 8
|
||||||
|
queue_capacity = 8
|
||||||
|
base_service_minutes = 60
|
||||||
|
base_price = 20
|
||||||
|
faith_per_service = 1
|
||||||
|
service_types = Array[StringName]([&"worship"])
|
||||||
|
default_service_type = &"worship"
|
||||||
|
tags = Array[StringName]([&"worship", &"leisure"])
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
[gd_resource type="Resource" script_class="FacilityDefinition" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/data/facility_definition.gd" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1")
|
||||||
|
id = &"cleaning_room"
|
||||||
|
display_name = "清掃員室"
|
||||||
|
description = "清掃員が清掃へ向かうための裏層の拠点。"
|
||||||
|
zone = 0
|
||||||
|
layer = 1
|
||||||
|
footprint = Vector2i(2, 1)
|
||||||
|
construction_cost = {&"gold": 350, &"materials": 4}
|
||||||
|
build_minutes = 60
|
||||||
|
maintenance_gold = 2
|
||||||
|
staff_min = 1
|
||||||
|
staff_max = 2
|
||||||
|
required_roles = Array[StringName]([&"cleaner"])
|
||||||
|
primary_skill = &"operation"
|
||||||
|
customer_capacity = 0
|
||||||
|
capacity = 0
|
||||||
|
queue_capacity = 0
|
||||||
|
base_price = 0
|
||||||
|
tags = Array[StringName]([&"cleaning", &"staff_support"])
|
||||||
@@ -7,16 +7,18 @@ script = ExtResource("1")
|
|||||||
id = &"premium_room"
|
id = &"premium_room"
|
||||||
display_name = "上級客室"
|
display_name = "上級客室"
|
||||||
description = "富裕客と長期滞在客向けの静かな地上客室。一般客室より高い品質と料金を持つ。"
|
description = "富裕客と長期滞在客向けの静かな地上客室。一般客室より高い品質と料金を持つ。"
|
||||||
zone = 1
|
zone = 0
|
||||||
layer = 0
|
layer = 0
|
||||||
footprint = Vector2i(3, 2)
|
footprint = Vector2i(4, 1)
|
||||||
construction_cost = {&"gold": 900, &"materials": 10}
|
construction_cost = {&"gold": 900, &"materials": 10}
|
||||||
build_minutes = 150
|
build_minutes = 150
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
|
maintenance_gold = 5
|
||||||
maintenance_mana = 1
|
maintenance_mana = 1
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
staff_max = 0
|
staff_max = 0
|
||||||
capacity = 2
|
capacity = 2
|
||||||
|
customer_capacity = 2
|
||||||
queue_capacity = 2
|
queue_capacity = 2
|
||||||
base_service_minutes = 720
|
base_service_minutes = 720
|
||||||
base_quality = 70
|
base_quality = 70
|
||||||
|
|||||||
@@ -7,17 +7,19 @@ script = ExtResource("1")
|
|||||||
id = &"staff_dormitory"
|
id = &"staff_dormitory"
|
||||||
display_name = "従業員宿舎"
|
display_name = "従業員宿舎"
|
||||||
description = "勤務の合間に従業員が睡眠と長時間休息を取るBACK居住区画。"
|
description = "勤務の合間に従業員が睡眠と長時間休息を取るBACK居住区画。"
|
||||||
zone = 1
|
zone = 0
|
||||||
layer = 1
|
layer = 1
|
||||||
footprint = Vector2i(4, 2)
|
footprint = Vector2i(2, 1)
|
||||||
construction_cost = {&"gold": 650, &"materials": 8}
|
construction_cost = {&"gold": 650, &"materials": 8}
|
||||||
build_minutes = 150
|
build_minutes = 150
|
||||||
weight_per_cell = 1
|
weight_per_cell = 1
|
||||||
|
maintenance_gold = 4
|
||||||
maintenance_mana = 1
|
maintenance_mana = 1
|
||||||
power_priority = 35
|
power_priority = 35
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
staff_max = 0
|
staff_max = 0
|
||||||
capacity = 12
|
capacity = 12
|
||||||
|
customer_capacity = 0
|
||||||
queue_capacity = 0
|
queue_capacity = 0
|
||||||
base_service_minutes = 360
|
base_service_minutes = 360
|
||||||
base_quality = 58
|
base_quality = 58
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ construction_cost = {&"gold": 20, &"materials": 0}
|
|||||||
build_minutes = 10
|
build_minutes = 10
|
||||||
weight_per_cell = 1
|
weight_per_cell = 1
|
||||||
pass_through = true
|
pass_through = true
|
||||||
|
maintenance_gold = 1
|
||||||
maintenance_mana = 0
|
maintenance_mana = 0
|
||||||
power_priority = 10
|
power_priority = 10
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ construction_cost = {&"gold": 1500, &"materials": 15}
|
|||||||
build_minutes = 300
|
build_minutes = 300
|
||||||
weight_per_cell = 3
|
weight_per_cell = 3
|
||||||
pass_through = true
|
pass_through = true
|
||||||
|
maintenance_gold = 8
|
||||||
maintenance_mana = 5
|
maintenance_mana = 5
|
||||||
power_priority = 85
|
power_priority = 85
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
[gd_resource type="Resource" script_class="FacilityDefinition" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/data/facility_definition.gd" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1")
|
||||||
|
id = &"guest_stairs"
|
||||||
|
display_name = "客用階段"
|
||||||
|
description = "上階の踊り場を設置し、直下の表層通路へつなぐ階段。客と従業員が待たずに昇り降りする。"
|
||||||
|
zone = 0
|
||||||
|
layer = 0
|
||||||
|
footprint = Vector2i(1, 1)
|
||||||
|
allowed_rotations = Array[int]([0])
|
||||||
|
construction_cost = {&"gold": 40, &"materials": 0}
|
||||||
|
build_minutes = 10
|
||||||
|
weight_per_cell = 1
|
||||||
|
pass_through = true
|
||||||
|
maintenance_gold = 1
|
||||||
|
maintenance_mana = 0
|
||||||
|
power_priority = 10
|
||||||
|
staff_min = 0
|
||||||
|
staff_max = 0
|
||||||
|
capacity = 3
|
||||||
|
queue_capacity = 0
|
||||||
|
base_service_minutes = 1
|
||||||
|
base_quality = 50
|
||||||
|
base_price = 0
|
||||||
|
tags = Array[StringName]([&"guest_access", &"movement", &"route_subslot", &"schema_facility_proxy", &"stairs", &"vertical_connector"])
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
[gd_resource type="Resource" script_class="FacilityDefinition" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/data/facility_definition.gd" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1")
|
||||||
|
id = &"mana_warp"
|
||||||
|
display_name = "マナワープ"
|
||||||
|
description = "建設済みの表層ワープ同士を瞬時につなぐ客用の転移陣。客が1回3マナで移動する。従業員は裏層の業務用ワープを使う。"
|
||||||
|
zone = 0
|
||||||
|
layer = 0
|
||||||
|
footprint = Vector2i(2, 2)
|
||||||
|
construction_cost = {&"gold": 3000, &"materials": 30}
|
||||||
|
build_minutes = 360
|
||||||
|
weight_per_cell = 3
|
||||||
|
pass_through = true
|
||||||
|
maintenance_gold = 15
|
||||||
|
maintenance_mana = 1
|
||||||
|
power_priority = 80
|
||||||
|
staff_min = 0
|
||||||
|
staff_max = 0
|
||||||
|
capacity = 4
|
||||||
|
queue_capacity = 0
|
||||||
|
base_service_minutes = 1
|
||||||
|
base_quality = 50
|
||||||
|
base_price = 0
|
||||||
|
tags = Array[StringName]([&"guest_access", &"movement", &"schema_facility_proxy", &"warp"])
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
[gd_resource type="Resource" script_class="FacilityDefinition" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/data/facility_definition.gd" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1")
|
||||||
|
id = &"service_stairs"
|
||||||
|
display_name = "業務用階段"
|
||||||
|
description = "上階の踊り場を設置し、直下の裏層通路へつなぐ従業員専用の階段。物資運搬にも使う。"
|
||||||
|
zone = 0
|
||||||
|
layer = 1
|
||||||
|
footprint = Vector2i(1, 1)
|
||||||
|
allowed_rotations = Array[int]([0])
|
||||||
|
construction_cost = {&"gold": 50, &"materials": 0}
|
||||||
|
build_minutes = 10
|
||||||
|
weight_per_cell = 1
|
||||||
|
pass_through = true
|
||||||
|
maintenance_gold = 1
|
||||||
|
maintenance_mana = 0
|
||||||
|
power_priority = 10
|
||||||
|
staff_min = 0
|
||||||
|
staff_max = 0
|
||||||
|
capacity = 2
|
||||||
|
queue_capacity = 0
|
||||||
|
base_service_minutes = 1
|
||||||
|
base_quality = 50
|
||||||
|
base_price = 0
|
||||||
|
tags = Array[StringName]([&"movement", &"route_subslot", &"schema_facility_proxy", &"staff_only", &"stairs", &"vertical_connector"])
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
[gd_resource type="Resource" script_class="FacilityDefinition" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/data/facility_definition.gd" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1")
|
||||||
|
id = &"service_warp"
|
||||||
|
display_name = "業務用マナワープ"
|
||||||
|
description = "建設済みの業務用ワープ同士を瞬時につなぐ裏層の転移陣。従業員が1回3マナで移動する。"
|
||||||
|
zone = 0
|
||||||
|
layer = 1
|
||||||
|
footprint = Vector2i(2, 2)
|
||||||
|
construction_cost = {&"gold": 3000, &"materials": 30}
|
||||||
|
build_minutes = 360
|
||||||
|
weight_per_cell = 3
|
||||||
|
pass_through = true
|
||||||
|
maintenance_gold = 15
|
||||||
|
maintenance_mana = 1
|
||||||
|
power_priority = 80
|
||||||
|
staff_min = 0
|
||||||
|
staff_max = 0
|
||||||
|
capacity = 4
|
||||||
|
queue_capacity = 0
|
||||||
|
base_service_minutes = 1
|
||||||
|
base_quality = 50
|
||||||
|
base_price = 0
|
||||||
|
tags = Array[StringName]([&"movement", &"schema_facility_proxy", &"staff_only", &"warp"])
|
||||||
@@ -23,6 +23,7 @@ construction_cost = {&"gold": 700, &"materials": 10}
|
|||||||
build_minutes = 180
|
build_minutes = 180
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
upgrade_costs = Array[Dictionary]([{&"gold": 350, &"materials": 6}, {&"gold": 700, &"materials": 12}])
|
upgrade_costs = Array[Dictionary]([{&"gold": 350, &"materials": 6}, {&"gold": 700, &"materials": 12}])
|
||||||
|
maintenance_gold = 4
|
||||||
maintenance_mana = 2
|
maintenance_mana = 2
|
||||||
power_priority = 80
|
power_priority = 80
|
||||||
staff_min = 1
|
staff_min = 1
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ footprint = Vector2i(2, 1)
|
|||||||
construction_cost = {&"gold": 800, &"materials": 8}
|
construction_cost = {&"gold": 800, &"materials": 8}
|
||||||
build_minutes = 120
|
build_minutes = 120
|
||||||
weight_per_cell = 1
|
weight_per_cell = 1
|
||||||
|
maintenance_gold = 4
|
||||||
maintenance_mana = 2
|
maintenance_mana = 2
|
||||||
power_priority = 50
|
power_priority = 50
|
||||||
staff_min = 1
|
staff_min = 1
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ footprint = Vector2i(6, 2)
|
|||||||
construction_cost = {&"gold": 1200, &"materials": 16}
|
construction_cost = {&"gold": 1200, &"materials": 16}
|
||||||
build_minutes = 240
|
build_minutes = 240
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
|
maintenance_gold = 6
|
||||||
maintenance_mana = 4
|
maintenance_mana = 4
|
||||||
power_priority = 65
|
power_priority = 65
|
||||||
staff_min = 1
|
staff_min = 1
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ description = "全ての客のチェックインと精算を処理する、境
|
|||||||
category = &"guest_service"
|
category = &"guest_service"
|
||||||
service_types = Array[StringName]([&"check_in", &"check_out"])
|
service_types = Array[StringName]([&"check_in", &"check_out"])
|
||||||
default_service_type = &"check_in"
|
default_service_type = &"check_in"
|
||||||
service_profiles = {&"check_in": {&"duration_minutes": 8, &"base_quality": 60, &"base_price": 20, &"capacity_units": 1, &"need_effects": {&"sleep": 0}}, &"check_out": {&"duration_minutes": 6, &"base_quality": 60, &"base_price": 0, &"capacity_units": 1, &"need_effects": {&"sleep": 0}}}
|
service_profiles = {&"check_in": {&"duration_minutes": 20, &"base_quality": 60, &"base_price": 0, &"capacity_units": 1, &"need_effects": {&"sleep": 0}}, &"check_out": {&"duration_minutes": 6, &"base_quality": 60, &"base_price": 0, &"capacity_units": 1, &"need_effects": {&"sleep": 0}}}
|
||||||
zone = 2
|
zone = 2
|
||||||
layer = 0
|
layer = 0
|
||||||
footprint = Vector2i(4, 2)
|
footprint = Vector2i(4, 2)
|
||||||
@@ -23,6 +23,7 @@ construction_cost = {&"gold": 500, &"materials": 8}
|
|||||||
build_minutes = 120
|
build_minutes = 120
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
upgrade_costs = Array[Dictionary]([{&"gold": 250, &"materials": 4}, {&"gold": 500, &"materials": 8}])
|
upgrade_costs = Array[Dictionary]([{&"gold": 250, &"materials": 4}, {&"gold": 500, &"materials": 8}])
|
||||||
|
maintenance_gold = 3
|
||||||
maintenance_mana = 1
|
maintenance_mana = 1
|
||||||
power_priority = 100
|
power_priority = 100
|
||||||
staff_min = 1
|
staff_min = 1
|
||||||
@@ -30,9 +31,9 @@ staff_max = 3
|
|||||||
required_roles = Array[StringName]([&"receptionist"])
|
required_roles = Array[StringName]([&"receptionist"])
|
||||||
capacity = 8
|
capacity = 8
|
||||||
queue_capacity = 16
|
queue_capacity = 16
|
||||||
base_service_minutes = 8
|
base_service_minutes = 20
|
||||||
base_quality = 60
|
base_quality = 60
|
||||||
base_price = 20
|
base_price = 0
|
||||||
opening_schedule = {&"morning": true, &"day": true, &"night": true}
|
opening_schedule = {&"morning": true, &"day": true, &"night": true}
|
||||||
policy_schema = {&"price_mode": {&"type": &"enum", &"default": &"standard"}, &"vip_priority": {&"type": &"bool", &"default": false}}
|
policy_schema = {&"price_mode": {&"type": &"enum", &"default": &"standard"}, &"vip_priority": {&"type": &"bool", &"default": false}}
|
||||||
cleanliness_decay_per_service = 1
|
cleanliness_decay_per_service = 1
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
[gd_resource type="Resource" script_class="FacilityDefinition" load_steps=2 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/data/facility_definition.gd" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1")
|
||||||
|
id = &"infirmary"
|
||||||
|
display_name = "医務室"
|
||||||
|
description = "基本仕様書に基づく医務室。費用・能力値は調整値。"
|
||||||
|
zone = 0
|
||||||
|
layer = 1
|
||||||
|
footprint = Vector2i(4, 2)
|
||||||
|
construction_cost = {&"gold": 640, &"materials": 8}
|
||||||
|
build_minutes = 80
|
||||||
|
staff_min = 0
|
||||||
|
staff_max = 2
|
||||||
|
capacity = 0
|
||||||
|
queue_staff_min = 0
|
||||||
|
staff_max = 2
|
||||||
|
capacity = 0
|
||||||
|
base_service_minutes = 30
|
||||||
|
base_quality = 50
|
||||||
|
base_price = 0
|
||||||
|
tags = Array[StringName]([&"medical", &"staff_only"])
|
||||||
|
|
||||||
|
maintenance_gold = 4
|
||||||
@@ -13,6 +13,7 @@ footprint = Vector2i(2, 2)
|
|||||||
construction_cost = {&"gold": 900, &"materials": 10}
|
construction_cost = {&"gold": 900, &"materials": 10}
|
||||||
build_minutes = 180
|
build_minutes = 180
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
|
maintenance_gold = 5
|
||||||
maintenance_mana = 2
|
maintenance_mana = 2
|
||||||
power_priority = 90
|
power_priority = 90
|
||||||
staff_min = 1
|
staff_min = 1
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ construction_cost = {&"gold": 25, &"materials": 0}
|
|||||||
build_minutes = 10
|
build_minutes = 10
|
||||||
weight_per_cell = 1
|
weight_per_cell = 1
|
||||||
pass_through = true
|
pass_through = true
|
||||||
|
maintenance_gold = 1
|
||||||
maintenance_mana = 0
|
maintenance_mana = 0
|
||||||
power_priority = 10
|
power_priority = 10
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ construction_cost = {&"gold": 2200, &"materials": 20}
|
|||||||
build_minutes = 360
|
build_minutes = 360
|
||||||
weight_per_cell = 3
|
weight_per_cell = 3
|
||||||
pass_through = true
|
pass_through = true
|
||||||
|
maintenance_gold = 11
|
||||||
maintenance_mana = 6
|
maintenance_mana = 6
|
||||||
power_priority = 95
|
power_priority = 95
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ construction_cost = {&"gold": 100, &"materials": 1}
|
|||||||
build_minutes = 30
|
build_minutes = 30
|
||||||
weight_per_cell = 1
|
weight_per_cell = 1
|
||||||
pass_through = true
|
pass_through = true
|
||||||
|
maintenance_gold = 1
|
||||||
maintenance_mana = 0
|
maintenance_mana = 0
|
||||||
power_priority = 95
|
power_priority = 95
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ footprint = Vector2i(4, 2)
|
|||||||
construction_cost = {&"gold": 400, &"materials": 6}
|
construction_cost = {&"gold": 400, &"materials": 6}
|
||||||
build_minutes = 120
|
build_minutes = 120
|
||||||
weight_per_cell = 1
|
weight_per_cell = 1
|
||||||
|
maintenance_gold = 2
|
||||||
maintenance_mana = 0
|
maintenance_mana = 0
|
||||||
power_priority = 30
|
power_priority = 30
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ script = ExtResource("1")
|
|||||||
id = &"standard_room"
|
id = &"standard_room"
|
||||||
display_name = "一般客室"
|
display_name = "一般客室"
|
||||||
description = "冒険者と一般市民向けの基本的な宿泊施設。"
|
description = "冒険者と一般市民向けの基本的な宿泊施設。"
|
||||||
zone = 1
|
zone = 0
|
||||||
layer = 0
|
layer = 0
|
||||||
footprint = Vector2i(2, 1)
|
footprint = Vector2i(2, 1)
|
||||||
construction_cost = {&"gold": 350, &"materials": 5}
|
construction_cost = {&"gold": 350, &"materials": 5}
|
||||||
build_minutes = 60
|
build_minutes = 60
|
||||||
weight_per_cell = 1
|
weight_per_cell = 1
|
||||||
|
maintenance_gold = 2
|
||||||
maintenance_mana = 0
|
maintenance_mana = 0
|
||||||
staff_min = 0
|
staff_min = 0
|
||||||
staff_max = 0
|
staff_max = 0
|
||||||
@@ -20,5 +21,5 @@ capacity = 2
|
|||||||
queue_capacity = 4
|
queue_capacity = 4
|
||||||
base_service_minutes = 720
|
base_service_minutes = 720
|
||||||
base_quality = 50
|
base_quality = 50
|
||||||
base_price = 80
|
base_price = 120
|
||||||
tags = Array[StringName]([&"lodging", &"quiet"])
|
tags = Array[StringName]([&"lodging", &"quiet"])
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ footprint = Vector2i(4, 2)
|
|||||||
construction_cost = {&"gold": 1000, &"materials": 12}
|
construction_cost = {&"gold": 1000, &"materials": 12}
|
||||||
build_minutes = 240
|
build_minutes = 240
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
|
maintenance_gold = 5
|
||||||
maintenance_mana = 2
|
maintenance_mana = 2
|
||||||
power_priority = 55
|
power_priority = 55
|
||||||
staff_min = 2
|
staff_min = 2
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ footprint = Vector2i(4, 2)
|
|||||||
construction_cost = {&"gold": 450, &"materials": 10}
|
construction_cost = {&"gold": 450, &"materials": 10}
|
||||||
build_minutes = 180
|
build_minutes = 180
|
||||||
weight_per_cell = 2
|
weight_per_cell = 2
|
||||||
|
maintenance_gold = 3
|
||||||
maintenance_mana = 0
|
maintenance_mana = 0
|
||||||
staff_min = 1
|
staff_min = 1
|
||||||
staff_max = 3
|
staff_max = 3
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
## 1. 目的
|
## 1. 目的
|
||||||
|
|
||||||
この文書は、本作に必要な画像を制作し、安全に差し替えるための正本とする。
|
この文書は、本作に必要な画像の制作・差し替え手順を定める派生資料とする。基本仕様の原本はユーザー指定の基本仕様書であり、差異がある場合は原本を優先する。
|
||||||
|
|
||||||
|
2026-09-29: [原本別の素材実在・必要枠台帳](plans/original-completion-2026-09-29/execution/assets/README.md)を追加。既存素材とコード描画の候補は、完成認定と区別して記録する。
|
||||||
|
|
||||||
**2026-09-09更新:現在のマップは『The Tower SP』を参考にしたドット絵の断面表示を採用する。** 施設の内装と小さな人物の動きが主役で、Kenney Tiny Dungeon・Tiny Townの16px素材と専用のドット描画を使う。旧生成背景や人物Bustを現在のマップへ戻すための仕様ではない。操作と実装上の制約は [ドット絵表示と見学ガイド](PIXEL_TOWER_VISUALS.md) を参照する。
|
**2026-09-09更新:現在のマップは『The Tower SP』を参考にしたドット絵の断面表示を採用する。** 施設の内装と小さな人物の動きが主役で、Kenney Tiny Dungeon・Tiny Townの16px素材と専用のドット描画を使う。旧生成背景や人物Bustを現在のマップへ戻すための仕様ではない。操作と実装上の制約は [ドット絵表示と見学ガイド](PIXEL_TOWER_VISUALS.md) を参照する。
|
||||||
|
|
||||||
@@ -10,6 +12,8 @@
|
|||||||
|
|
||||||
## 2. 現在のアートディレクション
|
## 2. 現在のアートディレクション
|
||||||
|
|
||||||
|
2026-09-28: ユーザー提供の『The Tower 2』実ファイルを追加参考として確認した。[素材の観察結果と現実装との差分](THE_TOWER_2_REFERENCE_2026-09-28.md) に沿って、部屋の利用状態・家具に対応した人物位置・待機列・観察時の画面構成を改善する。画像から確認できた事実と未確認の実行時挙動を区別する。ゲーム仕様はユーザー指定の基本仕様書と施設パラメータ訂正を優先する。
|
||||||
|
|
||||||
- 世界樹の正面断面を大きく見せる。受付・客室・食堂などを内装で識別でき、小さな客と従業員の移動・待機・仕事が読める構成とする。
|
- 世界樹の正面断面を大きく見せる。受付・客室・食堂などを内装で識別でき、小さな客と従業員の移動・待機・仕事が読める構成とする。
|
||||||
- 基本素材はKenneyの16×16pxドット絵。Nearestフィルターを使い、通常表示では整数倍率を優先する。高解像度の絵をぼかして縮小した人物をマップの主役にしない。
|
- 基本素材はKenneyの16×16pxドット絵。Nearestフィルターを使い、通常表示では整数倍率を優先する。高解像度の絵をぼかして縮小した人物をマップの主役にしない。
|
||||||
- 幹・葉・部屋・家具は同じドット密度と色調で専用描画する。主色は木色・クリーム・濃緑、裏方の補助色は青緑とする。
|
- 幹・葉・部屋・家具は同じドット密度と色調で専用描画する。主色は木色・クリーム・濃緑、裏方の補助色は青緑とする。
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# 全件修正・通しデバッグ(2026-09-27)
|
||||||
|
|
||||||
|
## 原因と修正
|
||||||
|
|
||||||
|
職員配置UIの4件の失敗は、テスト用建物の上下移動を客用通路だけで構成していたことが原因。実装済みの明示的な階段必須ルールではその客室へ到達できず、開業ガイドは正しく「道をつなぐ」を返していた。
|
||||||
|
|
||||||
|
`test_staff_management.gd` を、初日営業の受入試験と同じく客用階段で上下をつなぐ配置へ修正した。期待値を緩めたり、到達判定・配置条件を無効にしたりしていない。途中までの階段では配属案内へ進まない負例を追加。昼勤・配属解除・夜勤予定の従来の4判定も維持し、47項目が成功した。
|
||||||
|
|
||||||
|
`test_first_operating_day.gd` はディスク保存からのロード後、翌朝120分の営業を継続してから同じチェックポイントを再実行し、客・従業員・会計・イベントを含む状態digestが一致する検証を追加した。
|
||||||
|
|
||||||
|
## 全件実行の範囲
|
||||||
|
|
||||||
|
`tests/**/test*.gd` と `tests/run_tests.gd` を全件確認。`test_kernel_and_save.gd` は単独起動用ではなく `run_tests.gd` から呼び出すため、重複起動せず内包試験として実行する(ソース側79エントリーポイント)。書き出したPCKを必要とする `tests/export/test_exported_opening.gd` は配布アプリ生成後に別途実行。通常の `make test` の呼び出しに含まれていなかった交通比較試験も対象とする。
|
||||||
|
|
||||||
|
再実行用に `tools/run_all_tests.py` と `make test-all` を追加した。失敗で後続試験を打ち切らずログと一覧を残し、1件でも失敗すれば非ゼロで終了する。ユーザーの通常セーブを使わず、既存試験の専用保存先を使用する。
|
||||||
|
|
||||||
|
## 通しデバッグの範囲
|
||||||
|
|
||||||
|
全ソース試験成功後、通常の描画を有効にした実シーンで、次を順番に確認し、すべて成功した。
|
||||||
|
|
||||||
|
1. 初期資金から受付・客室・階段を建設し、雇用・配属、自然入客、宿泊売上、翌朝決算、ディスク保存・ロード、翌朝の営業継続と一致再実行。
|
||||||
|
2. 初期資金から倉庫・厨房・食堂を建設し、食材購入、運搬員の実移動、調理、配膳、自然入客の売上、搬送途中の保存復元、3営業日の仕入れ・給与・会計照合。
|
||||||
|
3. エレベーターの建設・増設、実際の乗車・到着、乗車途中の保存復元。
|
||||||
|
4. 客と職員のドットアニメーションの連続描画。
|
||||||
|
|
||||||
|
これは自動操作・実描画による上記シナリオのデバッグであり、未実装のシナリオ内容や全ルートを完走した意味ではない。各結果・画像・ログは `artifacts/debug-2026-09-27/` に保存する。
|
||||||
|
|
||||||
|
全件試験内の3営業日供給受入: 49項目成功。食堂売上3,000G、原材料配送30便、料理配送72便、残金2,855G。約746秒で完了。これは全件通過後の描画付き再検証とは別に記録する。
|
||||||
|
|
||||||
|
## 全件試験結果
|
||||||
|
|
||||||
|
ソース側79エントリーポイント・6,850チェック、全件PASS。配布PCK起動13チェック、2万セルのフル負荷試験24チェックも全件PASS。`all-tests-summary.json` に重複のないソース側集計を保存。全件成功を確認後に描画付きの通しデバッグを開始した。
|
||||||
|
|
||||||
|
配布アプリ本体はソース外の `/tmp` を作業場所として `--headless --quit-after 5` で正常起動・終了(終了コード0)を確認した。初回の検証用 `--main-pack` 指定はreleaseテンプレートの仕様により拒否されたため、その試行を合格に数えず、通常の内蔵PCK起動で再確認した。配布PCKの13項目は別途開発用Godotから実行して合格。
|
||||||
|
|
||||||
|
## 通しデバッグの最終結果
|
||||||
|
|
||||||
|
|描画付きシナリオ|結果|
|
||||||
|
|---|---|
|
||||||
|
|新規開始〜翌朝決算〜保存ロード〜翌朝の営業継続・一致再実行|46チェック成功|
|
||||||
|
|仕入れ・実搬送・調理・販売・3営業日の給与と会計照合|49チェック成功|
|
||||||
|
|昇降機建設・増設・乗車・到着・途中保存と客の重複描画防止|32チェック成功|
|
||||||
|
|ドットアニメーション|72フレーム取得、実画像を確認|
|
||||||
|
|
||||||
|
供給シナリオの描画あり・なしで、所持金2,855G、食堂売上3,000G、宿泊売上、配送件数(原材料30便・料理72便)、3日分の決算が一致。3日とも帳簿照合済み・給与未払0。画面は開業案内、ロード後の翌朝帳簿、厨房、配送、昇降機内の乗客、客・職員のアニメーションを確認した。
|
||||||
|
|
||||||
|
今回の全件修正と上記範囲の通しデバッグを完了した。既知の4失敗は解消され、通し実行で新たな失敗は発生しなかった。テスト対象ソースのハッシュが実行後も一致することを確認済み。
|
||||||
|
|
||||||
|
- [全件集計](../artifacts/debug-2026-09-27/all-tests-summary.json)
|
||||||
|
- [完了記録](../artifacts/debug-2026-09-27/completion.json)
|
||||||
|
- [通しアニメーション](../artifacts/debug-2026-09-27/walkthrough.gif)
|
||||||
|
- [翌朝の帳簿画面](../artifacts/debug-2026-09-27/opening-images/second-morning.png)
|
||||||
|
- [昇降機の画面](../artifacts/debug-2026-09-27/elevator-cabin.png)
|
||||||
|
|
||||||
|
起動先は `build/macos/TheTree-Verified-2026-09-27.app`。ローカルとGoogle Drive双方の `TheTree-ドット版を起動.command` をこの検証済み版へ更新した。旧アプリと通常プレイのセーブは保持している。Windows実機や未実装ルートの完走を今回の完了範囲に含めない。
|
||||||
@@ -247,3 +247,42 @@
|
|||||||
- 人員データ: 倉庫の必要役割を既存雇用候補の `porter` に合わせる。食堂は既存の `cook`/`server` を維持して `attendant` を追加し、接客係Iris/Junoも配属できるようにする。候補に存在しない役割だけを要求して厨房と食堂の同時営業を阻む状態を解消する。
|
- 人員データ: 倉庫の必要役割を既存雇用候補の `porter` に合わせる。食堂は既存の `cook`/`server` を維持して `attendant` を追加し、接客係Iris/Junoも配属できるようにする。候補に存在しない役割だけを要求して厨房と食堂の同時営業を阻む状態を解消する。
|
||||||
- 保存と撤去: 生産計画、進行中バッチ、予約ID、進捗と時刻を保存し、復元済みInventoryの所有者・品目・数量・依頼者・用途・期限と照合する。有効な生産計画または進行中バッチがある厨房は解体対象にできない。停止済みかつバッチがない計画は解体成功後に削除する。
|
- 保存と撤去: 生産計画、進行中バッチ、予約ID、進捗と時刻を保存し、復元済みInventoryの所有者・品目・数量・依頼者・用途・期限と照合する。有効な生産計画または進行中バッチがある厨房は解体対象にできない。停止済みかつバッチがない計画は解体成功後に削除する。
|
||||||
- 仕様差: 正本の「料理ポイント+食器在庫」、食器・清掃用消耗品の購入と消費、廃棄物回収の通常操作は後続の仕様調整へ残す。今回の基本料理を料理ポイントへ暗黙に読み替えない。食堂の現行15分/35Gと正本45分/25G、受付の直接収入、宿泊決済時刻、倉庫のRank解禁条件も、この供給接続では改定しない。
|
- 仕様差: 正本の「料理ポイント+食器在庫」、食器・清掃用消耗品の購入と消費、廃棄物回収の通常操作は後続の仕様調整へ残す。今回の基本料理を料理ポイントへ暗黙に読み替えない。食堂の現行15分/35Gと正本45分/25G、受付の直接収入、宿泊決済時刻、倉庫のRank解禁条件も、この供給接続では改定しない。
|
||||||
|
|
||||||
|
|
||||||
|
## D-034: 通常営業の価格・休業操作とv1照合処理の軽量化
|
||||||
|
|
||||||
|
- 日付: 2026-09-09。承認済みPLAY-05の実装。
|
||||||
|
- 価格: 奉仕60%/安価80%/標準100%/高価150%/ぼったくり250%。Gは整数、0.5Gを切り上げる。UI、客の候補評価、Runtimeの新規見積は同じ規則を使う。受付済み・サービス中の価格と方針は受付時のコピーを維持し、後から変更しない。
|
||||||
|
- 基準値: 新設受付を無料・20分、一般客室を120G、大衆食堂を25G・45分へ正本§7.6に合わせる。受付を同じ客が何度も訪れて直接売上を増やす動作を解消し、自然な候補ではチェックインを1回までにする。厨房・倉庫等は既存の無料設定を維持する。
|
||||||
|
- 保存互換: Runtime v7とDigest v1は維持する。価格・開閉は既存Policyへ格納する。既存保存の非受付施設は保存された基準価格・時間を引き継ぐ。受付では保存された施設の基準価格が20Gでも新規見積は0Gにする。旧受付で受付済みの20G見積、過去の台帳、サービス中の時間は遡及修正しない。旧施設を現行基準へ一括変更する移行は今回行わない。
|
||||||
|
- 営業: business_openは既存operator_openへ反映する。休業は新規受付を止め、待機客の予約・在庫を返して再判断させる。開始済みサービスは既存の完了処理を続ける。全グループの所有参照・遷移上限を事前確認し、休業による退列では忍耐を消費しない。厨房・物流の既存開閉判定も同じoperator_openを参照する。配車後でも積込時に荷元を再確認し、休業なら未積込の予約を解いて再試行する。積込済みの貨物は納品先が営業中なら配送を完了できる。休業だけで雇用や給与は止めない。
|
||||||
|
- 満足: 既存のサービス品質による満足サンプルへ価格補正(+10,+5,0,-5,-20)を追加する。P1では期待品質を共通50とし、品質が20以上上回ると負の補正を半減する。-2.5は-3へ丸める。品質への反応度quality_sensitivityを期待品質と取り違えない。客別期待品質、待ち時間・好み等を含む正本§8.5の全式、宿泊前払いと追加精算は後続へ残す。
|
||||||
|
- 表示: 営業パネルの当日費用は当該施設をsourceとする運営費の記帳で、給与配賦を含む確定利益ではない。給与配賦・施設別利益は06:00の帳簿で確認する。需要は客の予算とUtilityへ実反映するが、予測人数を算出していない段階で架空の人数予測を表示しない。
|
||||||
|
- 性能: Snapshotの履歴・項目・検証頻度を減らさず、Digest呼出しの中だけで同じ辞書キー構成の符号化と順序を再利用する。String/StringNameを分け、上限を設ける。値や可変コンテナの出力をキャッシュしない。旧v1実装をテスト参照として残し、全対応型・衝突・変更・深さ・拒否条件のバイト一致を検証する。測定の約2倍はDigest単体であり、実ゲームのfps改善率ではない。
|
||||||
|
- 検証記録: [P1営業設定](qa/P1_BUSINESS_MANAGEMENT.md)。P1全体・初見30分・昇降機・Windows性能の完成判定とは分ける。
|
||||||
|
|
||||||
|
## D-035 昇降機を建設・乗客・通勤へ接続する
|
||||||
|
|
||||||
|
- 状態: 採用(2026-09-09。P2の基本運行。改善前後比較と全階間経路規則は継続)
|
||||||
|
- 運行: 同じ幅・x座標・レイヤーで縦に連結した完成モジュールを1本の昇降路とし、1台のかごを共有する。客用は4人・1階10分、業務用は8人・1階5分。扉の処理は各端で固定2分と乗降人数分。古い要求を優先し、同じ出発階・目的階の客をまとめる基本方式とする。途中階の相乗りを行うSCAN方式は未実装。
|
||||||
|
- 経路: Path v4に所有者付きの縦徒歩抑制領域を保存する。昇降路の全占有マスでは上下の徒歩Edgeを作らず、同じ階の横アクセスと運行Connectorを使う。既存の昇降路以外の上下通路は階段相当として維持する。全世界の階間徒歩抑制と明示的な階段施設への移行はMOVE-01の残課題とする。客用と業務用の権限を分け、BACKはstaff権限を必須にする。
|
||||||
|
- 位置: 乗車中はPathとActorの論理位置を乗車元の停留所に保持し、実際の移動時間と降車処理が終わってから到着階へ更新する。画面では乗車中の人物を地上から隠してかごに描く。この段階では乗車中の人数が乗車元の混雑密度に残る。車内を別空間として扱う密度改善は残課題。
|
||||||
|
- 工事と停止: 人が乗車・待機している、またはかごが運行中の昇降路は延伸・撤去を拒否する。空の昇降路の延伸開始後は新規乗車を完了まで保留する。運行停止や電力喪失は待機要求を解除し、乗客を最寄りの有効停留所へ避難させる。有効停留所がなければかご内で保持して復旧を待つ。プレイヤーの運行許可と魔力供給は別に保存し、通電だけで停止設定を解除しない。
|
||||||
|
- 通勤: 通常UIの継続配属は到着までCOMMUTINGとする。同じ階の勤務施設内または横に接する経路に到着してから稼働人員と勤務実績へ反映する。階の上下隣接だけでは到着・荷物の受渡しとしない。混雑による歩行距離の端数は持ち越す。運搬員は勤務ごとに倉庫へ出勤後、配送先から次便を受けられるが、不在の倉庫には人員を計上しない。勤務終了時は位置を保持し、帰宅の瞬間移動は行わない。
|
||||||
|
- 保存: Runtime v8にElevatorServiceの状態、要求、かご、扉、残り時間、運行設定を保存する。Path、Actor、建設モジュールの所有関係を検証し、Operationsと建設の巻き戻しにも含める。旧v7以前の昇降機のない保存は移行し、厨房の導入境界は引き続きv7。旧配属の論理人員は物理位置へ合わせて移行し、新しい保存の幽霊人員は拒否する。継続計画のない旧単日Shiftには従来の論理出勤を保持する。
|
||||||
|
- 素材: 既存のKenney人物を車内でも使い、レール・扉・かごは既存のコード描画によるドット表現へ追加する。外部画像の新規導入はない。
|
||||||
|
|
||||||
|
- 撤去の保存修正: 施設撤去の成功時は対応する完成済み工事を現役の工事一覧と進捗時刻表から取り除く。これまで完成工事だけが残り「完成施設がない」と保存検証で拒否されていた。IDの最大値、台帳、DomainEventの履歴は維持し、工事IDを再利用しない。延伸後の部分撤去・全撤去と、失敗時の巻き戻しを検証する。
|
||||||
|
|
||||||
|
|
||||||
|
## D-036 明示階段と車内密度、旧通路の一回限りの移行
|
||||||
|
|
||||||
|
- 状態: 採用(2026-09-09。承認済みMOVE-01・02・06の続き)。D-035の「昇降路以外は上下徒歩を維持」を新ゲームについて更新する。
|
||||||
|
- 新ゲーム: Pathの全階間WALKを禁止し、階段CONNECTORまたは物理昇降機を通る。左右の同階通路、staffドア、昇降路の所有者付き遮断は維持する。独立Path部品は旧呼出し互換のため既定false、Runtimeは必ずtrue。
|
||||||
|
- 階段: 客用40G・通行容量3、業務用50G・容量2、双方資材0・建設10分・維持魔力0。1×1の上部踊り場を置き、同じx/layerの一つ下の通行可能セルへ双方向接続する。業務用はstaff権限を要求する。下部足場は先に完成させ、依存する階段があれば撤去を拒否する。
|
||||||
|
- 移動: 新階段は1階cost150・通常速度で1.5ゲーム分。1分tickの移動creditを繰越し、2階を3分で移動する。途中の1000~1499creditは階段端点でのみ保存できる。閉塞で端点に留まっていても保存でき、撤去で使えなくなった端数は切り詰める。経路評価のcostと実移動を接続するが、「3階以内を優先」の距離別選好は今回追加しない。
|
||||||
|
- 保存: Runtime v9/Path v5。Runtime v8以下の正当な旧Path3/4等を読み、既存の垂直WALK辺のみを `legacy.stairs:<layer>:<x>:<lower_y>` CONNECTORへ一度だけ実体化する。旧通路のcost100・空accessを維持し、古いBACKの権限も変更しない。新しい階段施設へ無償で置換する方式ではなく、既設接続を独立所有する。Pathと所有記録を厳密照合する。
|
||||||
|
- 撤去: 旧接続は端点消失・昇降路への変更で除去し、その位置へ後から普通の通路を作っても再生成しない。Construction・Operations・Rankの巻戻しにはPathと旧階段所有者を同時に含める。階間の復旧誘導も実際の接続があるセルだけを候補にする。
|
||||||
|
- 車内: BOARDEDの実Actorを床の混雑人数から除外する。待機者は床に数える。位置の所有アンカーは降車まで乗車元へ残し、車内所有・描画・密度はその状態から導く。旧v4保存では旧方式の全Actor密度が正しいことを先に検証し、その後に乗客を除く。新v5の保存はtransit集合と密度の双方を厳密照合する。
|
||||||
|
- 表示・測定: 乗車確定時にELEVATOR_BOARDEDを記録する。選択詳細の平均・P95は保持中の直近256出来事から過去60分の乗車を抽出したサンプルであり、全履歴の集計とは表示しない。現在の最長待ちは実待機者から算出する。比較試験は別の完全traceで48人全員を記録し、UIの保持上限に依存しない。
|
||||||
|
- 比較の範囲: 同Seed・需要traceで客用昇降機1台と2台を比較。自然来客AI、離脱改善、3階以上の混雑比較やS14の総合合格とは区別する。追加設備代・資材・維持魔力、および動的再経路選択による実歩数増も結果に含める。
|
||||||
|
|||||||
+30
-12
@@ -1,5 +1,11 @@
|
|||||||
|
> 原本優先: 利用者指定の基本仕様書と施設パラメータ訂正が本書に優先します。現在の差異・未完了項目は [原本との実装対応](traceability/original/IMPLEMENTATION_STATUS.md) を参照してください。
|
||||||
|
|
||||||
|
2026-09-29救護追記: 医療職の回収→裏通路・扉・階段での搬送→医務室治療、体力/救護状態UI、保存復元を接続。[検証記録](traceability/original/STAFF_RESCUE_VERIFICATION_2026-09-29.md)。同伴エレベーター乗車と待機室での休息を追加実装。[続報](traceability/original/LABOR_COMPLETION_2026-09-29.md)。
|
||||||
|
|
||||||
# 制作課題台帳
|
# 制作課題台帳
|
||||||
|
|
||||||
|
2026-09-29追記: 原本B-4.2の最大欲求優先AIを実装し、HUDへ来客観察パネルを追加。関連627項目を再検証し、配布版を更新した。[検証記録](traceability/original/GUEST_AI_VERIFICATION_2026-09-29.md)。天候等は継続残件。救護搬送の現行版統合は下記参照。
|
||||||
|
|
||||||
更新日: 2026-09-09。承認済み [全体制作計画](DEVELOPMENT_PLAN.md) の実行台帳。基準はドット断面版コミット `423fd6dd2e75da926e38b35ac8c435e462b168d9`、制作ブランチは `codex/first-operating-loop`。P1の通常開業ガイド・継続配属API/パネル・日次帳簿を接続し、通常初期予算での最小宿を単日受入・専用保存復元で確認した。全自動テストの構成ターゲットは成功終了。その後、有料仕入れ・厨房の自律生産・実配送を通常の商品UIへ接続した。供給込み3営業日の自動受入45項目も合格した。部品の接続、単日成立、段階全体の完成を区別する。
|
更新日: 2026-09-09。承認済み [全体制作計画](DEVELOPMENT_PLAN.md) の実行台帳。基準はドット断面版コミット `423fd6dd2e75da926e38b35ac8c435e462b168d9`、制作ブランチは `codex/first-operating-loop`。P1の通常開業ガイド・継続配属API/パネル・日次帳簿を接続し、通常初期予算での最小宿を単日受入・専用保存復元で確認した。全自動テストの構成ターゲットは成功終了。その後、有料仕入れ・厨房の自律生産・実配送を通常の商品UIへ接続した。供給込み3営業日の自動受入45項目も合格した。部品の接続、単日成立、段階全体の完成を区別する。
|
||||||
|
|
||||||
## 状態の読み方
|
## 状態の読み方
|
||||||
@@ -32,10 +38,10 @@ P0の保存物はGit管理対象の制作ファイル。`.godot/`、`build/`、`
|
|||||||
| ID | 実装済みの根拠 | 未接続・仕様差・検証残と次の確認 |
|
| ID | 実装済みの根拠 | 未接続・仕様差・検証残と次の確認 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| PLAY-01 | **最小ループ実装済み・単日確認**。初期Gold 5,000/資材50、通常UIの建築経路で受付1・一般客室2・通路7、アカネ雇用・配属、自然来客の宿泊320G、翌06:00決算まで確認。`test_first_operating_day.gd` | 受入は見学Fixture・無料在庫・客挿入なし。**供給込み3営業日も自動確認/バランス調整残**。受付売上6,020G等の数値を正本と照合し、受付の直接収入と価格・営業Policyを調整する |
|
| PLAY-01 | **最小ループ実装済み・単日確認**。初期Gold 5,000/資材50、通常UIの建築経路で受付1・一般客室2・通路7、アカネ雇用・配属、自然来客の宿泊320G、翌06:00決算まで確認。`test_first_operating_day.gd` | 受入は見学Fixture・無料在庫・客挿入なし。**供給込み3営業日も自動確認/バランス調整残**。受付売上6,020G等の数値を正本と照合し、受付の直接収入と価格・営業Policyを調整する |
|
||||||
| PLAY-02 | **通常UI接続済み・個別API103項目/単日確認**。雇用済み一覧、配属・再配属・未配属、DAY/NIGHT継続計画、変更不可・経路・定員等の理由、予約Commandと保存復元。StaffService v4、D-032 | 実通勤と到着後の稼働はMOVE-07へ分離。現在は経路存在を検証して論理配属し、人物位置は変えない。5職員・複数施設・3営業日の継続配属は供給受入で確認。実通勤と人手不足への人手試遊は残る |
|
| PLAY-02 | **通常UI接続済み・個別API103項目/単日確認**。雇用済み一覧、配属・再配属・未配属、DAY/NIGHT継続計画、変更不可・経路・定員等の理由、予約Commandと保存復元。StaffService v4、D-032 | 実通勤と到着後の稼働はMOVE-07へ接続済み。5職員・複数施設・3営業日の継続配属は供給受入で確認。実通勤と人手不足への人手試遊は残る |
|
||||||
| PLAY-03 | **通常UI接続済み**。完成倉庫への有料購入、容量・期限・予約、実porter TaskとPathによる倉庫→厨房→食堂。物流81項目、管理処理84項目、商品UI37項目の回帰 | 仕入れは倉庫への即納。外部業者の納期、継続自動購入、複数品目、正本の食器・消耗品は後続。経路断・満杯・腐敗・担当不能での保持/再試行/返送を検証 |
|
| PLAY-03 | **通常UI接続済み**。完成倉庫への有料購入、容量・期限・予約、実porter TaskとPathによる倉庫→厨房→食堂。物流81項目、管理処理84項目、商品UI37項目の回帰 | 仕入れは倉庫への即納。外部業者の納期、継続自動購入、複数品目、正本の食器・消耗品は後続。経路断・満杯・腐敗・担当不能での保持/再試行/返送を検証 |
|
||||||
| PLAY-04 | **自律生産接続済み・140項目確認**。明示設定した厨房で原料4→料理4、15稼働分、目標在庫、入力予約・出力容量・期限・中断復帰を扱う。見学用の無料在庫に依存しない | **仕様差をD-033で明記**。今回の原料/基本料理を維持し、料理ポイント+食器、食堂価格・所要時間との統一は残す |
|
| PLAY-04 | **自律生産接続済み・140項目確認**。明示設定した厨房で原料4→料理4、15稼働分、目標在庫、入力予約・出力容量・期限・中断復帰を扱う。見学用の無料在庫に依存しない | **仕様差をD-033で明記**。今回の原料/基本料理を維持し、料理ポイント+食器は残す。食堂価格・所要時間はD-034で新設25G/45分に統一 |
|
||||||
| PLAY-05 | **日次帳簿UI接続済み・単日確認**。06:00営業日、入出金と建築、確定売上・運営費・給与・利益・前日差・未払・施設別損益を表示。翌朝給与120G、未払0、照合一致 | **操作未接続/仕様差・調整残**。価格・営業/休業Policy UI、受付の直接収入、宿泊の決済・記帳時点、維持費分類を正本と照合。受付売上6,020G・全利益6,040Gは製品バランス合格ではない |
|
| PLAY-05 | **日次帳簿UI接続済み・単日確認**。06:00営業日、入出金と建築、確定売上・運営費・給与・利益・前日差・未払・施設別損益を表示。翌朝給与120G、未払0、照合一致 | **価格・営業UI接続済み**。5段階の見積・客の選択と満足・新規受付停止・忍耐を減らさない退列・途中保存。新設受付0G/20分、客室120G、食堂25G/45分へ修正。宿泊前払い・維持費・初見の改善試遊は残る。D-034と営業設定QA参照 |
|
||||||
| PLAY-06 | **Runtime v7と配送途中Save復元を確認**。厨房計画・バッチ、Request・Task・carrier・貨物・予約を照合。旧v6移行20項目、商品UIの待機購入も再読込後に一度だけ確定 | 建設中・行列中・配送中を組み合わせた再起動の人手試遊、手動10枠UIと製品の保存導線は残る |
|
| PLAY-06 | **Runtime v7と配送途中Save復元を確認**。厨房計画・バッチ、Request・Task・carrier・貨物・予約を照合。旧v6移行20項目、商品UIの待機購入も再読込後に一度だけ確定 | 建設中・行列中・配送中を組み合わせた再起動の人手試遊、手動10枠UIと製品の保存導線は残る |
|
||||||
|
|
||||||
追加の供給受入では初期予算から倉庫・厨房・食堂と職員5人を運営し、3日とも給与645G・未払0・照合差0を確認した。食堂売上4,200G、原料360G、実配送81便。配送途中のディスクSaveと最終Snapshotを復元。詳細は [供給検証記録](qa/P1_SUPPLY_CHAIN.md)。価格・営業Policy・改善対照試遊が残るためP1全体は未合格とする。
|
追加の供給受入では初期予算から倉庫・厨房・食堂と職員5人を運営し、3日とも給与645G・未払0・照合差0を確認した。食堂売上4,200G、原料360G、実配送81便。配送途中のディスクSaveと最終Snapshotを復元。詳細は [供給検証記録](qa/P1_SUPPLY_CHAIN.md)。価格・営業Policy・改善対照試遊が残るためP1全体は未合格とする。
|
||||||
@@ -44,27 +50,33 @@ P0の保存物はGit管理対象の制作ファイル。`.godot/`、`build/`、`
|
|||||||
|
|
||||||
## P2:上下移動と混雑
|
## P2:上下移動と混雑
|
||||||
|
|
||||||
完成条件: 3階以上で実乗降し、同じ人数・需要のまま設備と動線の改善で待ち時間・離脱が減ること。**現在は運行未統合。**
|
完成条件: 3階以上で実乗降し、同じ人数・需要のまま設備と動線の改善で待ち時間・離脱が減ること。**基本運行・明示階段・実通勤を統合済み。同需要48人の設備比較を追加。自然来客の離脱比較は継続。**
|
||||||
|
|
||||||
| ID | 実装済みの根拠 | 未接続・仕様差・検証残と次の確認 |
|
| ID | 実装済みの根拠 | 未接続・仕様差・検証残と次の確認 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| MOVE-01 | `path_service.gd` の隣接経路、Connector、アクセス権、`facility_infrastructure_projector.gd` の通路・職員ドア投影 | **仕様との相違/未統合**。同一階の徒歩と設備による垂直移動を分け、通常隣接Edgeで階間を迂回する経路を抑制。旧通路・Saveからの移行を決める |
|
| MOVE-01 | **統合済み**。新ゲームは全階間の通常徒歩を禁止し、客用/業務用階段を通常建設。旧上下通路を一度だけ階段接続へ移行 | 1階150cost・1.5分の端数移動、下部足場の撤去防止、旧接続の撤去後無再生成。3階以内優先の特別経路規則は未導入。D-036 |
|
||||||
| MOVE-02 | PathにElevator状態、有限Queue、要求重複防止、停止時迂回、停滞検知の部品 | **未統合**。昇降路、停止階、車両、定員、待機要求を1方式の運行モデルへつなぐ。部品のQueue試験だけで昇降機完成としない |
|
| MOVE-02 | **基本運行接続済み**。同じ昇降路を1台で運行、客用4人/業務用8人、扉・実移動時間・FIFO同目的地のまとめ乗り | 途中階の相乗り、同一昇降路の複数かご運行は未実装。車内人数は床密度から除外し、待機者だけ乗場の混雑に数える |
|
||||||
| MOVE-03 | 昇降機Definitionがパレットにある。現在のRuntimeは安全なTopology未統合として建設を拒否 | **画面へ未接続/未検証**。建設・延伸・停止階変更・撤去・客用/業務用権限を運行へ統合する |
|
| MOVE-03 | **建設・UI接続済み**。連結モジュール、停止階、空車時延伸・撤去、BACK権限、魔力供給、停止/再開 | 通常初期予算から4停止階の建設を受入。工事中の新規乗車は完了まで保留 |
|
||||||
| MOVE-04 | `world_preview.gd` の徒歩補間と人物の小型描画 | **未実装**。待つ→乗る→昇降→降りるの運行状態を表示し、車内と徒歩の重複を防ぐ。見学の上階通路移動は乗降試験ではない |
|
| MOVE-04 | **運行描画接続済み**。実かご、扉、Kenney乗客、待機表示。乗車中は徒歩側の重複表示を除外 | 施設ごとの専用アニメーション、混雑時の人物配置は改善を継続 |
|
||||||
| MOVE-05 | Path単体の停止・Queue・停滞検知とSnapshot試験 | **未検証**。統合した車両で満員、撤去、経路変更、車内Save復元を試験し、永久行列・二重乗車・閉じ込めを解消 |
|
| MOVE-05 | **基本異常系・保存検証済み**。満員、停止、延伸拒否、安全な降車、停留所閉塞、所有不整合、途中Saveの厳密再生 | 階段途中の保存、旧v8保存移行、待機/乗車中の再生を確認。全AIの長期大量需要と帰宅は継続 |
|
||||||
| MOVE-06 | 既存の混雑密度/容量表示、[MVP受入](MVP_ACCEPTANCE_SCENARIOS.md)の比較条件 | **未検証**。同一Seed・需要・人数・施設数で改善前後を比較し、画面と移動時間P95・離脱で記録する |
|
| MOVE-06 | **限定条件の比較済み**。同Seed・48人・480分・同一最短歩行距離で客用昇降機1台→2台。実Actorの総移動P95は224→73分、両方48人到着 | 固定需要の実移動比較であり自然来客AIではない。未完了0→0で離脱改善は未検証。途中階・夕方混雑・BACK物流等のS14条件は継続。[比較QA](qa/P2_STAIRS_AND_COMPARISON.md) |
|
||||||
| MOVE-07 | **計画と経路検証のみ接続済み**。通常UIの配属は継続計画を保存し、経路が存在するかを検証。人物のcurrent_cellは変更しない | **未統合**。勤務開始→実通勤→職場到着→人員稼働をつなぎ、移動中や不到達の人物を到着済み人員として扱わない。再配属・夜勤・Save復元を含める |
|
| MOVE-07 | **実通勤接続済み**。同じ階の職場へ到着してから稼働。混雑端数、再配属、夜勤、運搬員出勤、Saveと旧論理配属の移行 | 帰宅経路と出退勤演出、移動設備改善による遅刻削減の対照試遊は未実施 |
|
||||||
|
|
||||||
## P3:営みと初見の操作
|
## P3:営みと初見の操作
|
||||||
|
|
||||||
|
2026-09-29追記: T2-V01〜V05の表示改善を実装。施設状態・室内利用位置・共用通路の待機列・初期カメラと営業階への復帰・実乗客と満員表示を接続した。[最新検証と配布版](THE_TOWER_2_COMPLETION_2026-09-29.md) を参照。下記の9月28日の残件記述は履歴。P1〜P5全体、Windows実機性能、原本の未実装項目が完了したという意味ではない。
|
||||||
|
|
||||||
|
実機記録の受領後: [Windows実機レビュー](THE_TOWER_2_WINDOWS_REVIEW_2026-09-28.md) に基づき、T2-V03の一部として「画面移動」ボタンと左ドラッグを実装。建設・掘削との排他切替、Esc解除、ドラッグ取り残し防止を関連370項目で確認。初期カメラ・列・施設状態・混雑表現の改善は引き続き残件。
|
||||||
|
|
||||||
|
2026-09-28追加: ユーザー提供の『The Tower 2』を参考資料として確認。[T2-V01〜V05](THE_TOWER_2_REFERENCE_2026-09-28.md) を表示改善の残件とする。施設状態の内装表現、施設別利用位置と待機列、初期カメラ、昇降機の混雑表現を順に改善する。参照調査は完了、これらの改善実装・受入は未完了。LIFE-02の古い足スライス方式は現在の横向き専用ポーズへ置換済みであり、[2026-09-27の描画変更記録](PIXEL_ANIMATION_2026-09-27.md) を現状の根拠とする。
|
||||||
|
|
||||||
| ID | 現在地 | 次の完了判定 |
|
| ID | 現在地 | 次の完了判定 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| LIFE-01 | **一部実装済み**。Runtime位置、サービス中位置の描画投影、待機・利用・作業Badge、停止 | 実状態に基づく歩行/待機/利用/睡眠/清掃/運搬/休憩の一覧と利用位置を確定する |
|
| LIFE-01 | **一部実装済み**。Runtime位置、サービス中位置の描画投影、待機・利用・作業Badge、停止 | 実状態に基づく歩行/待機/利用/睡眠/清掃/運搬/休憩の一覧と利用位置を確定する |
|
||||||
| LIFE-02 | **試作実装済み/専用素材未制作**。Kenney静止画の足スライス・上下動・左右反転。衣服の継ぎ目修正済み | 専用歩行・作業フレームを共通人物で確認し、縮小、拡大、混雑、職種識別を満たしてから展開 |
|
| LIFE-02 | **試作実装済み/専用素材未制作**。Kenney静止画の足スライス・上下動・左右反転。衣服の継ぎ目修正済み | 専用歩行・作業フレームを共通人物で確認し、縮小、拡大、混雑、職種識別を満たしてから展開 |
|
||||||
| LIFE-03 | **一部実装済み**。`pixel_tower_art.gd` の施設別家具、昼夜背景、世界樹の枝葉。現在の対象はMVP16施設 | 種類、営業、混雑、故障を家具と状態で識別できること。計画の施設数はMVP16種へ統一済み |
|
| LIFE-03 | **一部実装済み**。`pixel_tower_art.gd` の施設別家具、昼夜背景、世界樹の枝葉。現在の対象はMVP16施設 | 種類、営業、混雑、故障を家具と状態で識別できること。計画の施設数はMVP16種へ統一済み |
|
||||||
| LIFE-04 | **素材一部導入/音未接続**。Kenney Tiny Town/Tiny Dungeonの公式素材とCC0原文保存 | UI音・環境音をKenney優先で選定し、音量設定と頻発音の重複抑制を確認 |
|
| LIFE-04 | **素材一部導入/音未接続**。Kenney Tiny Town/Tiny Dungeonの公式素材とCC0原文保存 | UI音・環境音をKenney優先で選定し、音量設定と頻発音の重複抑制を確認 |
|
||||||
| UX-01 | **一部実装済み・通常UI接続**。配置・掘削Preview、停止理由、待機・人員、継続配属、日次帳簿、有料仕入れ・厨房設定・配送理由 | 価格・営業方針の設定と、初見プレイヤーが各理由から対処できる導線を仕上げる |
|
| UX-01 | **一部実装済み・通常UI接続**。配置・掘削Preview、停止理由、待機・人員、継続配属、日次帳簿、有料仕入れ・厨房設定・配送理由 | 価格・営業方針も接続済み。初見プレイヤーが各理由から対処できる導線を試遊で確認する |
|
||||||
| UX-02 | **最小ガイド実装済み・単日確認**。実状態に応じる6段階、通常操作へのボタン、折り畳み、達成履歴・Save復元 | Day 1〜5解禁との整合、スキップ、複数失敗からの回復、初見30分で改善まで到達する試遊は残る |
|
| UX-02 | **最小ガイド実装済み・単日確認**。実状態に応じる6段階、通常操作へのボタン、折り畳み、達成履歴・Save復元 | Day 1〜5解禁との整合、スキップ、複数失敗からの回復、初見30分で改善まで到達する試遊は残る |
|
||||||
| UX-03 | **一部実装済み/未接続**。ホイール、中ボタン、Home、キーボード開閉、Pixel・カメラ回帰 | 中ボタンなし・トラックパッド代替操作、日本語可読性、拡大時のドット、色以外の状態判別を実入力で確認 |
|
| UX-03 | **一部実装済み/未接続**。ホイール、中ボタン、Home、キーボード開閉、Pixel・カメラ回帰 | 中ボタンなし・トラックパッド代替操作、日本語可読性、拡大時のドット、色以外の状態判別を実入力で確認 |
|
||||||
|
|
||||||
@@ -106,3 +118,9 @@ P0の保存物はGit管理対象の制作ファイル。`.godot/`、`build/`、`
|
|||||||
2. MOVE-01〜03の階間経路と基本昇降機、MOVE-07の実通勤・到着後稼働を統合する。現在の論理配属で人物移動を完成扱いにしない。
|
2. MOVE-01〜03の階間経路と基本昇降機、MOVE-07の実通勤・到着後稼働を統合する。現在の論理配属で人物移動を完成扱いにしない。
|
||||||
3. PLAY-03/04の有料発注・厨房生産・実配送は接続済み。PLAY-05の価格・営業Policy・会計仕様を揃え、欠品・人員・経路の改善比較と初見試遊へ進む。
|
3. PLAY-03/04の有料発注・厨房生産・実配送は接続済み。PLAY-05の価格・営業Policy・会計仕様を揃え、欠品・人員・経路の改善比較と初見試遊へ進む。
|
||||||
4. 通常開始と保存なし見学の両方で表示・操作を確認し、最小宿の成功をP1全体完成やWindows製品合格としない。供給機能の最新検証は [供給検証記録](qa/P1_SUPPLY_CHAIN.md) を参照。
|
4. 通常開始と保存なし見学の両方で表示・操作を確認し、最小宿の成功をP1全体完成やWindows製品合格としない。供給機能の最新検証は [供給検証記録](qa/P1_SUPPLY_CHAIN.md) を参照。
|
||||||
|
|
||||||
|
営業設定と価格調整、旧v1とバイト一致するDigest軽量化を追加した。最新結果は [営業設定QA](qa/P1_BUSINESS_MANAGEMENT.md)。過去の受付収入を含む数字は履歴であり、現行の収益バランスを示さない。
|
||||||
|
|
||||||
|
営業設定追加後の通常供給3営業日も49項目合格。受付売上0G、食堂3,000G・宿泊1,200G、給与未払0、残金2,895G。初日の契約金を除く2・3日目は各+715G。実装 `b3b82ef`。
|
||||||
|
|
||||||
|
P2の基本昇降機・実通勤の証跡は [P2_TRANSPORT.md](qa/P2_TRANSPORT.md)、階段・車内密度・48人比較は [P2_STAIRS_AND_COMPARISON.md](qa/P2_STAIRS_AND_COMPARISON.md)。自然来客の離脱とS14条件を含む対照試遊が残るためP2全体を合格とはしない。
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
作成日: 2026-09-09
|
作成日: 2026-09-09
|
||||||
基準: The Tower SPを参考にしたドット絵の断面経営ゲーム。ローカル制作版を正本とする。
|
基準: The Tower SPを参考にしたドット絵の断面経営ゲーム。ローカル制作版を正本とする。
|
||||||
状態: 2026-09-09 ユーザー承認済み。P0の基準点整備を完了し、P1の通常営業の最小ループを実装・単日確認済み。有料仕入れ・厨房・実配送を通常UIへ接続し、部品・UI・配送途中保存の検証は合格。通常予算からの供給込み3営業日も45項目合格。価格・営業Policy、性能と初見試遊は継続課題。
|
状態: 2026-09-09 ユーザー承認済み。P0の基準点整備を完了し、P1の通常営業の最小ループを実装・単日確認済み。有料仕入れ・厨房・実配送を通常UIへ接続し、部品・UI・配送途中保存の検証は合格。通常予算からの供給込み3営業日も45項目合格。価格・営業Policyを通常UIへ接続し、基準料金と受付無料化、Digest互換の軽量化を追加した。検証は [営業設定記録](qa/P1_BUSINESS_MANAGEMENT.md) を参照。宿泊精算、長期描画性能、改善比較と初見試遊は継続課題。
|
||||||
|
|
||||||
## 1. 目指す体験と計画の前提
|
## 1. 目指す体験と計画の前提
|
||||||
|
|
||||||
@@ -19,10 +19,10 @@
|
|||||||
| 領域 | 確認できていること | 次に埋める差 |
|
| 領域 | 確認できていること | 次に埋める差 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 外観・操作 | ドット断面、家具、Kenney人物の簡易歩行、状態表示、コンパクトUI、ズーム・パン | 専用動作、施設ごとの視認性、混雑・稼働の見せ方、実描画性能 |
|
| 外観・操作 | ドット断面、家具、Kenney人物の簡易歩行、状態表示、コンパクトUI、ズーム・パン | 専用動作、施設ごとの視認性、混雑・稼働の見せ方、実描画性能 |
|
||||||
| シミュレーション | 時間、建設、在庫・物流、経済、客AI、従業員、イベント、監査、保存の基盤 | 自律厨房生産・補充・配送と通常操作の接続。各Serviceの存在と日常運営の完成を区別 |
|
| シミュレーション | 時間、建設、在庫・物流、経済、客AI、従業員、イベント、監査、保存の基盤 | 供給と営業Policyは通常操作へ接続。宿泊前払い・維持費・改善対照試遊を継続 |
|
||||||
| 縦移動 | Path側にConnector・Queue等の部品が存在 | 階間の通常隣接経路抑制、建設との接続、昇降・乗降、保存復元の統合 |
|
| 縦移動 | 建設から共有かご、待機・乗降、実移動、停止、保存へ接続。昇降路の上下徒歩を抑制 | 全階間の規則、途中階相乗り、車内混雑密度の分離、同需要での改善比較 |
|
||||||
| 見学版 | 実施設7件と通路、従業員4人、自然来客が動く | 見学は食材32個を用意した保存なしの再現場面。通常ゲームの完成とは区別 |
|
| 見学版 | 実施設7件と通路、従業員4人、自然来客が動く | 見学は食材32個を用意した保存なしの再現場面。通常ゲームの完成とは区別 |
|
||||||
| 運営UI | 建設・掘削・雇用候補・継続配属/勤務変更・施設情報・開業の手引き・日次帳簿・イベント選択・手動保存。通常初期予算で最小宿の単日成立と保存復元を確認 | 実通勤・到着後の稼働、仕入れ・在庫、価格・営業方針、保存枠、3営業日の継続運営 |
|
| 運営UI | 建設・掘削・雇用候補・継続配属/勤務変更・施設情報・開業の手引き・日次帳簿・イベント選択・手動保存。通常初期予算で最小宿の単日成立と保存復元を確認 | 実通勤・到着後の稼働、保存枠、宿泊精算、初見での継続運営 |
|
||||||
| 長期検証 | 24時間の統合検証、14日の運営境界比較等は実装記録あり | 全AIを含む20,160分の実Tick、各A/B比較、実描画を伴う負荷確認 |
|
| 長期検証 | 24時間の統合検証、14日の運営境界比較等は実装記録あり | 全AIを含む20,160分の実Tick、各A/B比較、実描画を伴う負荷確認 |
|
||||||
| 制作管理 | P0完了。ローカル正本を基準コミット `423fd6d` と完全履歴bundleへ保存。別ディレクトリ復元、Godot読込、Pixel回帰238項目を確認し、復旧手順と課題台帳を整備 | 今後の統合ごとに検証済み基準点とバックアップを更新する。元Drive版との全内容照合は未完了のため復旧候補として保持 |
|
| 制作管理 | P0完了。ローカル正本を基準コミット `423fd6d` と完全履歴bundleへ保存。別ディレクトリ復元、Godot読込、Pixel回帰238項目を確認し、復旧手順と課題台帳を整備 | 今後の統合ごとに検証済み基準点とバックアップを更新する。元Drive版との全内容照合は未完了のため復旧候補として保持 |
|
||||||
|
|
||||||
@@ -150,3 +150,7 @@ MVP後、試遊で残った課題と既存の製品仕様を照合して後半
|
|||||||
6. **LIFE-01~04、UX-01~03**:専用動作と説明・音・日常操作を整え、初見30分の試遊へ渡す。
|
6. **LIFE-01~04、UX-01~03**:専用動作と説明・音・日常操作を整え、初見30分の試遊へ渡す。
|
||||||
|
|
||||||
最初のレビューは「通常操作だけで初売上と翌朝の決算を迎える宿」。次のレビューは「3階の宿を客が昇降機で往復し、混雑を改善できる場面」とする。機能・見た目・操作を一緒に確かめ、以後の日程と素材制作量を更新する。
|
最初のレビューは「通常操作だけで初売上と翌朝の決算を迎える宿」。次のレビューは「3階の宿を客が昇降機で往復し、混雑を改善できる場面」とする。機能・見た目・操作を一緒に確かめ、以後の日程と素材制作量を更新する。
|
||||||
|
|
||||||
|
2026-09-09 営業設定追加後の通常3営業日は49項目合格。受付無料、食堂3,000G・宿泊1,200G、未払0、残金2,895Gで継続。価格操作・保存は接続済みとし、次はP2の実通勤と基本昇降機、P1の宿泊精算・改善比較・初見試遊を進める。
|
||||||
|
|
||||||
|
2026-09-09 P2の基本昇降機と実通勤を接続。通常初期予算で4停止階の建設と自然客の乗降を検証する。MOVE-01は昇降路内の抑制まで、MOVE-06の改善対照試験は未実施。詳細は [昇降機QA](qa/P2_TRANSPORT.md) とD-035を参照。
|
||||||
|
|||||||
@@ -193,3 +193,15 @@ version 2では、ID形式、Access範囲、Upgrade件数、営業時間キー
|
|||||||
| 拡張16施設 | 1 | 通常パレット未解放、順次移行 |
|
| 拡張16施設 | 1 | 通常パレット未解放、順次移行 |
|
||||||
|
|
||||||
次の移行順は、一般客室・食堂・酒場・浴場、倉庫・警備、通路・昇降機、地下拡張施設とする。売上施設を先に移行すると、客AI・価格・在庫の縦断検証を早い段階で固定できる。
|
次の移行順は、一般客室・食堂・酒場・浴場、倉庫・警備、通路・昇降機、地下拡張施設とする。売上施設を先に移行すると、客AI・価格・在庫の縦断検証を早い段階で固定できる。
|
||||||
|
|
||||||
|
|
||||||
|
## 明示階段(D-036、2026-09-09)
|
||||||
|
|
||||||
|
基礎16施設と任意拡張16施設の定義順は保持し、追加インフラ2種を `data/facilities/infrastructure/` と `FacilityCatalog.INFRASTRUCTURE_FACILITY_PATHS` に分ける。通常Runtimeの登録数と建築パレットは基礎16+階段2の18種。既存Registryの既定ディレクトリ単独走査は基礎16のまま。
|
||||||
|
|
||||||
|
| ID | 表示 | サイズ | 設置層 | 建設G/資材/分 | 通行容量 | cost/維持魔力 |
|
||||||
|
|---|---|---:|---|---|---:|---|
|
||||||
|
| guest_stairs | 客用階段 | 1×1 | FRONT | 40/0/10 | 3 | 150/0 |
|
||||||
|
| service_stairs | 業務用階段 | 1×1 | BACK | 50/0/10 | 2 | 150/0 |
|
||||||
|
|
||||||
|
置くセルが上部踊り場で、同じx/layerのy-1へ接続する。下部足場が必要。業務用はstaff権限。旧保存の既設階段は施設定義へ置換せず、旧速度・権限を持つ別の接続所有記録として保存する。
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
# 実装状況
|
# 実装状況
|
||||||
|
|
||||||
この文書は仕様書そのものではなく、現在のコードがどこまで到達しているかを記録する。ゲームルールの正本は `GAME_SPECIFICATION.md`、System境界と不変条件の正本は `SYSTEM_SPECIFICATION.md` とする。
|
この文書は仕様書そのものではなく、現在のコードがどこまで到達しているかを記録する。利用者指定の基本仕様書が原本であり、`GAME_SPECIFICATION.md` と `SYSTEM_SPECIFICATION.md` は派生資料として扱う。現行の判定は [原本との対応](traceability/original/IMPLEMENTATION_STATUS.md) を参照。
|
||||||
|
|
||||||
更新日: 2026-09-09。ドット断面版の基準コミットは `423fd6dd2e75da926e38b35ac8c435e462b168d9`。復旧方法は [RECOVERY_GUIDE.md](RECOVERY_GUIDE.md)、承認済み制作計画の課題と検証残は [DEVELOPMENT_BACKLOG.md](DEVELOPMENT_BACKLOG.md) を参照する。
|
以下は2026-09-09時点の履歴。00:00決算・x3・同伴救護・待機室休息の現行記録は [労務検証](traceability/original/LABOR_COMPLETION_2026-09-29.md) と原本対応表を優先する。
|
||||||
|
|
||||||
|
旧更新日: 2026-09-09。ドット断面版の基準コミットは `423fd6dd2e75da926e38b35ac8c435e462b168d9`。復旧方法は [RECOVERY_GUIDE.md](RECOVERY_GUIDE.md)、承認済み制作計画の課題と検証残は [DEVELOPMENT_BACKLOG.md](DEVELOPMENT_BACKLOG.md) を参照する。
|
||||||
|
|
||||||
以下のSystem別一覧は既存の実装・試験記録を引き継いでいる。直前のドット版変更では起動とUI・カメラの359項目、その後の配属APIでは103項目の個別確認記録がある。P1追加後に `make check` と `make test` の全構成ターゲットを2群に分けて実行し、全件が成功終了した。追加の配属API103項目、スタッフ画面44項目、通常開業35項目も合格。対象と制約は [P1単日検証記録](qa/P1_FIRST_OPERATING_DAY.md) に記録した。通常初期予算での最小宿は単日受入・保存復元を確認したが、14日MVP、Windows実機性能、通常操作だけによる3営業日は別の完成条件として残る。
|
以下のSystem別一覧は既存の実装・試験記録を引き継いでいる。直前のドット版変更では起動とUI・カメラの359項目、その後の配属APIでは103項目の個別確認記録がある。P1追加後に `make check` と `make test` の全構成ターゲットを2群に分けて実行し、全件が成功終了した。追加の配属API103項目、スタッフ画面44項目、通常開業35項目も合格。対象と制約は [P1単日検証記録](qa/P1_FIRST_OPERATING_DAY.md) に記録した。通常初期予算での最小宿は単日受入・保存復元を確認したが、14日MVP、Windows実機性能、通常操作だけによる3営業日は別の完成条件として残る。
|
||||||
|
|
||||||
@@ -141,7 +143,7 @@
|
|||||||
- 上部HUDに営業日、時刻、時間帯、来客、宿泊予定、所持金、Mana、資材、Faith、Heat、停止、x1/x2/x4を表示する。
|
- 上部HUDに営業日、時刻、時間帯、来客、宿泊予定、所持金、Mana、資材、Faith、Heat、停止、x1/x2/x4を表示する。
|
||||||
- 実World Cell、占有、工事、施設、Guest、StaffをFRONT/BACK別に描く。ホイールでカーソル基準ズーム、中ボタンドラッグでパン、Homeで全体表示、Gで格子と実混雑表示を切り替える。
|
- 実World Cell、占有、工事、施設、Guest、StaffをFRONT/BACK別に描く。ホイールでカーソル基準ズーム、中ボタンドラッグでパン、Homeで全体表示、Gで格子と実混雑表示を切り替える。
|
||||||
- PathServiceの密度/容量を緑・黄・赤の経路に、FacilityServiceの待機人数を小さなBadgeに表示する。施設クリックで右パネルを開き、状態、reason、待機列、Service、配置人員を確認する。
|
- PathServiceの密度/容量を緑・黄・赤の経路に、FacilityServiceの待機人数を小さなBadgeに表示する。施設クリックで右パネルを開き、状態、reason、待機列、Service、配置人員を確認する。
|
||||||
- MVP施設16種を選べる下部の横スクロール建築パレット、回転、配置Preview、失敗理由、建設Commandを接続。客用/業務用昇降機は安全な階間Topologyが未統合のため、現在は建設を拒否する。
|
- MVP施設16種と階段2種を選べる下部の横スクロール建築パレット、回転、配置Preview、失敗理由、建設Commandを接続。客用/業務用昇降機と明示階段は通常建設・実移動へ統合済み。
|
||||||
- 掘削モードでは費用、入口接続、支保、Rank/運営gate、進捗を表示し、FRONT/BACK同時解放Commandへ接続する。
|
- 掘削モードでは費用、入口接続、支保、Rank/運営gate、進捗を表示し、FRONT/BACK同時解放Commandへ接続する。
|
||||||
- 雇用候補20人の氏名、役割、勤務帯、契約金、日給、4技能を表示。原子的な雇用、未払/破綻gate、二重クリック防止、予約実行結果、保存したCommand履歴との整合を扱う。その後のP1追加で、雇用済み人物の配属・再配属、DAY/NIGHTの継続勤務計画、未配属、反映予定と変更不可理由を通常UIへ接続した。配属先までの経路を検証するが、実通勤して到着してから稼働する経路は未統合。
|
- 雇用候補20人の氏名、役割、勤務帯、契約金、日給、4技能を表示。原子的な雇用、未払/破綻gate、二重クリック防止、予約実行結果、保存したCommand履歴との整合を扱う。その後のP1追加で、雇用済み人物の配属・再配属、DAY/NIGHTの継続勤務計画、未配属、反映予定と変更不可理由を通常UIへ接続した。配属先までの経路を検証するが、実通勤して到着してから稼働する経路は未統合。
|
||||||
- 本番運営の明示起動、個人AP、未払給与、前日損益、要確認/破綻、失敗境界の再試行表示、foreground Eventの日本語Choice、下部の手動Save/Loadを接続する。P1追加で6段階の「開業の手引き」と、営業日選択、現金入出金、建築出金、確定損益、給与・未払、施設別損益、照合を示す帳簿を接続した。建築出金と営業利益を分け、内部のcost_of_goodsは雇用契約金等を含むため「運営費」と表示する。
|
- 本番運営の明示起動、個人AP、未払給与、前日損益、要確認/破綻、失敗境界の再試行表示、foreground Eventの日本語Choice、下部の手動Save/Loadを接続する。P1追加で6段階の「開業の手引き」と、営業日選択、現金入出金、建築出金、確定損益、給与・未払、施設別損益、照合を示す帳簿を接続した。建築出金と営業利益を分け、内部のcost_of_goodsは雇用契約金等を含むため「運営費」と表示する。
|
||||||
@@ -163,7 +165,7 @@
|
|||||||
- 受付売上6,020G、全体営業利益6,040Gという現結果はバランス合格ではない。受付の会計上の役割、価格、宿泊料金の決済・売上記帳タイミングは仕様との差を調整する必要がある。
|
- 受付売上6,020G、全体営業利益6,040Gという現結果はバランス合格ではない。受付の会計上の役割、価格、宿泊料金の決済・売上記帳タイミングは仕様との差を調整する必要がある。
|
||||||
- 配属は繰返し計画をStaffService v4へ保存し、過去の勤務区間を保持してShiftを分割する。旧v3は計画なしで互換復元する。設計判断はD-032を参照。
|
- 配属は繰返し計画をStaffService v4へ保存し、過去の勤務区間を保持してShiftを分割する。旧v3は計画なしで互換復元する。設計判断はD-032を参照。
|
||||||
- `make test-opening` で単日受入、`make capture-opening` で `artifacts/first-operating-day/{opening,staffed,first-close}.png` を生成する。自動受入は通常UI処理を呼び出すもので、初見プレイヤーの試遊合格とは区別する。
|
- `make test-opening` で単日受入、`make capture-opening` で `artifacts/first-operating-day/{opening,staffed,first-close}.png` を生成する。自動受入は通常UI処理を呼び出すもので、初見プレイヤーの試遊合格とは区別する。
|
||||||
- P1全体は未合格。供給経路は下記へ追加した。価格・営業方針、正本との会計統一、初見プレイヤーの3営業日試遊は残る。配属は経路存在の事前検証と論理確定であり、人物位置を変えず、職場到着後の稼働はMOVEへ追加する。
|
- P1全体は未合格。供給経路は下記へ追加した。価格・営業方針は下記へ追加した。宿泊精算・維持費の会計統一、初見プレイヤーの3営業日試遊は残る。配属は経路存在の事前検証と論理確定であり、人物位置を変えず、職場到着後の稼働はMOVEへ追加する。
|
||||||
|
|
||||||
### P1追加:仕入れから食堂まで
|
### P1追加:仕入れから食堂まで
|
||||||
|
|
||||||
@@ -189,7 +191,7 @@
|
|||||||
|
|
||||||
- 全Actor AI、全Event、監査、経路移動を含む20,160分の実TickによるS14-CORE受入
|
- 全Actor AI、全Event、監査、経路移動を含む20,160分の実TickによるS14-CORE受入
|
||||||
- ユニーク2人の配置・接触判定と、そこから生成する14日Event列
|
- ユニーク2人の配置・接触判定と、そこから生成する14日Event列
|
||||||
- 通常隣接Edgeを安全に抑制する垂直Topologyと、客用/業務用昇降機
|
- 昇降機の途中階相乗り、同一昇降路の複数かご、自然来客・多階層混雑の改善比較
|
||||||
- 配置と同一Shiftから関係Event候補を生成する接触判定と事前リスクPreview
|
- 配置と同一Shiftから関係Event候補を生成する接触判定と事前リスクPreview
|
||||||
- 夕方混雑、FRONT/BACK比較、健全/地下収支を直接比較するScenario Test
|
- 夕方混雑、FRONT/BACK比較、健全/地下収支を直接比較するScenario Test
|
||||||
- 100客・30従業員の実描画Frame試験
|
- 100客・30従業員の実描画Frame試験
|
||||||
@@ -204,3 +206,32 @@
|
|||||||
|
|
||||||
試遊の手順は `PLAYTEST_GUIDE.md`、仕様とTestの対応は `TEST_MATRIX.md` を参照する。各Systemのテストは画面Nodeに依存せずheadlessで実行でき、新しいSystemを追加する際はSnapshot、Atomic Restore、決定性Testを同じ変更に含める。
|
試遊の手順は `PLAYTEST_GUIDE.md`、仕様とTestの対応は `TEST_MATRIX.md` を参照する。各Systemのテストは画面Nodeに依存せずheadlessで実行でき、新しいSystemを追加する際はSnapshot、Atomic Restore、決定性Testを同じ変更に含める。
|
||||||
14日受入の共通Fixtureと数値境界は `MVP_ACCEPTANCE_SCENARIOS.md` に固定する。
|
14日受入の共通Fixtureと数値境界は `MVP_ACCEPTANCE_SCENARIOS.md` に固定する。
|
||||||
|
|
||||||
|
|
||||||
|
## P1 営業設定とDigest軽量化(2026-09-09)
|
||||||
|
|
||||||
|
- 「営業」パネル、価格5段階、見積の固定、客の選択・満足への反映、休業と待機客の再判断、稼働中サービスの継続を接続した。厨房・物流は既存operator_openへ同期する。
|
||||||
|
- 新設受付0G/20分、客室120G、食堂25G/45分。旧施設の基準値と受付済み見積はD-034に従って保存互換を維持する。
|
||||||
|
- Snapshot全項目・履歴を保持したまま、Digestの呼出し内辞書キー再利用と型付き文字列配列を最適化。旧v1出力との一致を検証し、模擬履歴5,000件のSHA計算中央値は281.294→133.455msだった。
|
||||||
|
- 合格範囲、通常運営の再検証、残る精算・性能・試遊課題は [営業設定QA](qa/P1_BUSINESS_MANAGEMENT.md)。この追加をP1全体や昇降機の完成とはしない。
|
||||||
|
|
||||||
|
新料金の供給込み3営業日は49項目合格。受付収入0G、食堂3,000G・宿泊1,200G、給与未払0・照合差0、残金2,895G。営業・休業・配送中の保存と再開、既存回帰も成功終了。実装コミット `b3b82ef`。
|
||||||
|
|
||||||
|
## P2 基本昇降機と実通勤(2026-09-09)
|
||||||
|
|
||||||
|
- 客用/業務用モジュールから共有かごと停止階を構築。待機、定員、乗降、階移動、停止/再開、魔力不足、保存再開をRuntimeへ接続した。
|
||||||
|
- 断面に実際のかごとKenney人物を表示する。完成した昇降機を選ぶと現在階・目的階・人数・待機・魔力と運行操作が出る。
|
||||||
|
- 継続配属は歩いて職場へ到着してから稼働する。運搬も同じ階のアクセス点で受渡しし、上下階越しの到着や受取を防ぐ。
|
||||||
|
- Path v4/Runtime v8。旧保存移行、乗車途中の復元、変更拒否の原子性を検証する。
|
||||||
|
- この保存点の詳細と実測は [昇降機QA](qa/P2_TRANSPORT.md)。全階間徒歩規則・車内密度・固定需要比較は次項のv9で追加した。P2全体の完成とは扱わない。
|
||||||
|
|
||||||
|
|
||||||
|
## P2 階段・車内密度と同需要比較(2026-09-09)
|
||||||
|
|
||||||
|
- 客用/業務用階段を通常建設・Kenneyアイコン・断面・選択詳細へ接続。新ゲームは階段か昇降機で階を移動し、上に普通の通路を置くだけでは移動できない。
|
||||||
|
- Runtime v9/Path v5。旧上下通路を一度だけ既設階段として保持する。階段途中の端数、旧乗車中の密度移行、撤去と巻戻しを保存へ接続する。
|
||||||
|
- 車内の人物を床密度から除外。昇降機詳細には最近の乗車記録の平均・P95待ちと現在の最長待ちを表示する。
|
||||||
|
- 同じ48人を480分流す実GuestRuntime比較では1台→2台で平均待ち105.60→23.58分、総移動P95 224→73分、両方48人到着。追加建設1500G・資材15・維持魔力5。2台側では動的な経路再選択で5人に迂回が発生し、その時間も含めた。
|
||||||
|
- 通常開業・供給の上階動線も明示階段に更新。自然来客の離脱、途中階相乗り、帰宅、S14の多条件比較は継続する。設定根拠はD-036、検証は [階段と比較QA](qa/P2_STAIRS_AND_COMPARISON.md)。
|
||||||
|
|
||||||
|
階段追加後の通常3営業日も49項目合格。食堂3000G・宿泊1200G、原材料配送30便・料理72便、残金2855G、3日とも未払0・照合済み。旧版の残金2895Gと比較すると新しい階段2セルの追加費用40Gを反映している。初日ガイドは実Pathで到達を判定し、描画・営業・保存再開41項目も成功。
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# ドットアニメーション表示の修正(2026-09-27)
|
||||||
|
|
||||||
|
通常の制作先 `/Users/korizatou114/Projects/とりにく工房ゲーム制作部` を変更した。Google Drive側の旧ソースは混在を避けて上書きせず、ローカルの修正版アプリを開く `TheTree-ドット版を起動.command` を双方に配置した。
|
||||||
|
|
||||||
|
## 変更
|
||||||
|
|
||||||
|
既存の部屋・家具・階層のドット断面表示とKenney素材を維持し、人物を専用の横向き16×18グリッド描画に変更。静的アトラスの足部分の移動から、8段階の脚・腕・上下動による歩行へ置き換えた。清掃、作業、食事、荷物運搬、睡眠、気絶を状態に応じて描き分ける。左右反転、既存の移動補間・速度・一時停止に対応。シミュレーションの位置や経済は変更しない。
|
||||||
|
|
||||||
|
既存Kenney素材には横向きの専用歩行フレームがないため、人物のみコードで独自のポーズを描画する。Kenneyの部屋用素材とライセンスは保持。The Towerの画像・キャラクターは使用していない。
|
||||||
|
|
||||||
|
## 検証
|
||||||
|
|
||||||
|
- ピクセル表示・カメラ等の既存試験238項目、ダッシュボード121項目成功。
|
||||||
|
- `make check` 成功。
|
||||||
|
- 1440×810、2倍ズームの実運営画面を確認。6秒・12fpsの72フレームを取得し、72枚すべて異なることとワールド領域の変化を確認。ポーズ別の網羅的映像受入ではない。
|
||||||
|
- macOSアプリを書き出し、ソース非依存のPCK起動・初回建設13項目成功。今回は描画変更の関連試験を行い、ゲーム全体の全試験は再実行していない。
|
||||||
|
|
||||||
|
[動画プレビュー](../artifacts/pixel-animation-2026-09-27/preview.gif) / [確認画像](../artifacts/pixel-animation-2026-09-27/preview.png)
|
||||||
|
|
||||||
|
起動用アプリ: `build/macos/TheTree-Pixel-2026-09-27.app`。過去の配布アプリは上書きしていない。Windows版は今回再配布していない。
|
||||||
@@ -22,8 +22,11 @@ make test-pixel-ui # ドット表示・カメラ・実施設クリックの回
|
|||||||
|
|
||||||
| 操作 | 動作 |
|
| 操作 | 動作 |
|
||||||
|---|---|
|
|---|---|
|
||||||
|
| 上部の来客ボタン | 客を選び、四欲求・所持金・忍耐・現在の目的地を確認 |
|
||||||
| ホイール | カーソル付近を基準に拡大・縮小 |
|
| ホイール | カーソル付近を基準に拡大・縮小 |
|
||||||
| 中ボタンドラッグ | 断面を移動 |
|
| 中ボタンドラッグ | 断面を移動 |
|
||||||
|
| 画面移動ボタン → 左ドラッグ | 断面を移動。再度ボタンを押すかEscで解除。建設・掘削選択時も解除 |
|
||||||
|
| 営業階 | 現在の層の建設済み施設にカメラを合わせる(最大200%) |
|
||||||
| Home | 全体表示へ戻す |
|
| Home | 全体表示へ戻す |
|
||||||
| G | 格子と混雑表示を切り替え |
|
| G | 格子と混雑表示を切り替え |
|
||||||
| B | 建築パレットを開閉 |
|
| B | 建築パレットを開閉 |
|
||||||
@@ -31,27 +34,34 @@ make test-pixel-ui # ドット表示・カメラ・実施設クリックの回
|
|||||||
| H | 雇用候補を開閉 |
|
| H | 雇用候補を開閉 |
|
||||||
| Tab | 客用の表層 / 裏方の裏層を切り替え |
|
| Tab | 客用の表層 / 裏方の裏層を切り替え |
|
||||||
| E / R | 掘削モード / 建築物を回転 |
|
| E / R | 掘削モード / 建築物を回転 |
|
||||||
| Space / 1・2・4 | 停止・再開 / 時間倍率を変更 |
|
| Space / 1・2・3 | 停止・再開 / 時間倍率を変更 |
|
||||||
| Esc | 雇用候補・使用中のツールを解除。ツール未使用時はパネルも閉じる |
|
| Esc | 雇用候補・使用中のツールを解除。ツール未使用時はパネルも閉じる |
|
||||||
| 施設をクリック | 営業・待機列・人員などの実状態を右側に表示 |
|
| 施設をクリック | 営業・待機列・人員などの実状態を右側に表示 |
|
||||||
|
|
||||||
初期状態では建築パレットと運営詳細を閉じ、マップを広く見せる。詳細はマップ右側に重ねて開く。判断が必要なイベントは詳細パネルを開き、選択肢を表示する。案内は下部に常時表示する。
|
初期状態では建築パレットと運営詳細を閉じ、空の宿は入口付近を200%で表示する。施設がある場合は施設範囲へ合わせる。プレイ中は自動でカメラを追従させず、必要な時に「営業階」を押す。詳細はマップ右側に重ねて開く。判断が必要なイベントは詳細パネルを開き、選択肢を表示する。案内は下部に常時表示する。
|
||||||
|
|
||||||
## 現在の表示
|
## 現在の表示
|
||||||
|
|
||||||
- 世界樹、空、幹、葉、床と室内をドット主体で描く。受付のカウンター、客室のベッド、食堂の卓、厨房などを施設ごとに描き分ける。
|
- 世界樹、空、幹、葉、床と室内をドット主体で描く。受付のカウンター、客室のベッド、食堂の卓、厨房などを施設ごとに描き分ける。
|
||||||
- Kenneyの[Tiny Dungeon](https://kenney.nl/assets/tiny-dungeon)と[Tiny Town](https://kenney.nl/assets/tiny-town)を人物・小物・庭木に利用する。16×16px素材、Nearest、Mipmap無効で表示する。配布元とCC0ライセンスは[素材一覧](../assets/kenney/README.md)と各パックの`License.txt`に記録している。
|
- Kenneyの[Tiny Dungeon](https://kenney.nl/assets/tiny-dungeon)と[Tiny Town](https://kenney.nl/assets/tiny-town)を人物・小物・庭木に利用する。16×16px素材、Nearest、Mipmap無効で表示する。配布元とCC0ライセンスは[素材一覧](../assets/kenney/README.md)と各パックの`License.txt`に記録している。
|
||||||
- 客と従業員はRuntime上の実在人物で、移動元と現在セルの間を補間する。同じ元絵の足のずらし・上下動・左右反転で歩行を表現し、待機・利用・作業の小さな状態表示を添える。停止中はアニメーションも止まり、人物位置は確定セルを表示する。
|
- 客と従業員はRuntime上の実在人物で、移動元と現在セルの間を補間する。独自の横向きドット人物の歩行・待機・食事・睡眠・清掃・作業・運搬ポーズで表現する。停止中はアニメーションも止まり、人物位置は確定セルを表示する。
|
||||||
- UIは濃緑・クリーム・木色の小さな平坦な枠を使用する。従来の高解像度生成背景・人物Bust・装飾Skinは現在のマップに使用しない。小型のUIアイコンは既存Theme参照を残す。
|
- UIは濃緑・クリーム・木色の小さな平坦な枠を使用する。従来の高解像度生成背景・人物Bust・装飾Skinは現在のマップに使用しない。小型のUIアイコンは既存Theme参照を残す。
|
||||||
- ズーム・移動・表示レイヤー・格子の切替は描画側だけで扱う。建築の占有セルや保存データの形式は変えない。
|
- ズーム・移動・表示レイヤー・格子の切替は描画側だけで扱う。建築の占有セルや保存データの形式は変えない。
|
||||||
|
|
||||||
## 制約と次の制作
|
## 制約と次の制作
|
||||||
|
|
||||||
- Kenneyの導入パックは静止画である。現在の歩行はコードによる元絵の加工であり、手描きの歩行・食事・清掃・運搬の専用アニメーションは今後追加する。Atlasで隣にいる別人物を歩行差分として再生していない。
|
- 人物は `pixel_people.gd` の独自ポーズを使う。Kenneyは家具・小物などに使用し、原作ゲームから抽出した画像は配布物に含めない。
|
||||||
- エレベーター本体の昇降・乗降・待ち行列を含む運行は未実装。施設カタログの昇降機は接続の試作用で、見学では既存の上階通路を使って人物の行動を確認する。
|
- エレベーターは実運行・乗降と連動する。待機者は歩ける乗り場の外側へ並べ、実乗客はかご内だけに描画する。定員・満員・停止と待機人数を表示する。入りきらない人数は重ねず「他N人」で示す。
|
||||||
- 見学は在庫を用意した再現用の運営場面であり、収支・配送・混雑の完成度を保証する受入試験ではない。キャプチャにはその時点の実状態が出る。
|
- 見学は在庫を用意した再現用の運営場面であり、収支・配送・混雑の完成度を保証する受入試験ではない。キャプチャにはその時点の実状態が出る。
|
||||||
- 施設ラベルは表示幅・選択・ホバーに応じて省略する。大きい世界を全体表示すると縮小されるため、人物の動きはズームして確認する。
|
- 施設ラベルは表示幅・選択・ホバーに応じて省略する。大きい世界を全体表示すると縮小されるため、人物の動きはズームして確認する。
|
||||||
|
|
||||||
表示の主な実装は`scenes/main/world_preview.gd`、専用の家具描画は`scripts/ui/pixel_tower_art.gd`、UIは`scenes/main/main.gd`。見学シナリオは`scripts/ui/pixel_tower_demo.gd`、出力処理は`tests/ui/capture_pixel_tower.gd`にある。回帰テスト`tests/ui/test_pixel_tower.gd`は実受付の建設・完工を経由して、ズームと移動後の占有セル命中、表裏の選択、地下を含む座標往復、停止時アニメーション、描画操作前後のシミュレーションダイジェスト不変を確認する。
|
表示の主な実装は`scenes/main/world_preview.gd`、専用の家具描画は`scripts/ui/pixel_tower_art.gd`、UIは`scenes/main/main.gd`。見学シナリオは`scripts/ui/pixel_tower_demo.gd`、出力処理は`tests/ui/capture_pixel_tower.gd`にある。回帰テスト`tests/ui/test_pixel_tower.gd`は実受付の建設・完工を経由して、ズームと移動後の占有セル命中、表裏の選択、地下を含む座標往復、停止時アニメーション、描画操作前後のシミュレーションダイジェスト不変を確認する。
|
||||||
|
|
||||||
接客・宿泊サービス中の客は、経路上のアクセスセルから施設内の利用位置へ描画上だけ投影する。経路探索、権威セル、保存状態は変更しない。
|
接客・宿泊サービス中の客は、経路上のアクセスセルから施設内の利用位置へ描画上だけ投影する。経路探索、権威セル、保存状態は変更しない。
|
||||||
|
|
||||||
|
2026-09-29: 未稼働は暗い内装、破壊・摘発後の休止は閉鎖線と文字、稼働中は実利用人数と照明で識別する。利用位置と家具を共通化し、人物を同じ枠へ循環配置しない。`customer_capacity` と在庫容量は区別する。描画は稼働状態・料金・休止解除条件を変更しない。[実装・検証記録](THE_TOWER_2_COMPLETION_2026-09-29.md)。
|
||||||
|
|
||||||
|
|
||||||
|
2026-09-29: 救護中の患者を担当医療職の位置に重ねて表示し、医務室治療中はベッドに表示。治療人数は実タスクから集計。従業員パネルに体力と救護段階を表示。
|
||||||
|
|
||||||
|
2026-09-29続報: 業務用EVは患者と救護者の2席を表示。待機室は到着済みの非番従業員を室内に描画し、休憩人数を表示する。状態ラベルも実際の移動・到着に連動する。
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user