You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .skills/mcc-integration-testing/SKILL.md
+37Lines changed: 37 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -115,6 +115,37 @@ Use this for TPS, movement-cadence, or packet-cadence work:
115
115
116
116
Run them against a real server with a temp config and summarize counts from the captured logs.
117
117
118
+
### 4. Full inventory regression sweep
119
+
120
+
Use this when touching inventory snapshots, player/container slot sync, creative inventory, item-slot serialization, packet palettes, game-mode updates, or block-use paths that open containers:
- player inventory listing and inventory discovery
129
+
- creative give/delete
130
+
- inventory search
131
+
- player right/left click stack split and merge
132
+
- player drop one and drop all
133
+
- chest open via `useblock`
134
+
- container listing and close
135
+
- mirrored player slots in container windows
136
+
- shift-click and shift-right-click transfer
137
+
- container right/left click, cursor stack, drop one, and drop all
138
+
- creative middle-click command path
139
+
- log scan for packet parse failures, queue-empty crashes, unhandled exceptions, and disconnects
140
+
141
+
The script writes `summary.tsv` under `RUN_ROOT` and per-version logs under `/tmp/mcc-debug/inventory-full-<version>/mcc-debug.log`.
142
+
143
+
When a matrix has existing PASS rows, do not rerun them unless a later code change affects that row or the user asks for a full rerun. Derive remaining rows from summaries:
@@ -165,6 +196,8 @@ Optionally override the login name with the fourth argument to the config helper
165
196
- summarize the latest full-spectrum run
166
197
-`tools/run-creative-e2e.sh`
167
198
- ordered creative-mode E2E regression scenario
199
+
-`tools/run-inventory-full-sweep.sh`
200
+
- full inventory command/API sweep across one or more versions
168
201
169
202
## Evidence Discipline
170
203
@@ -224,3 +257,7 @@ Always summarize:
224
257
- If a test assertion fails, inspect the real MCC output before changing the code or weakening the assertion.
225
258
- If an older server behaves oddly on Linux, check `use-native-transport=false` in `server.properties`.
226
259
- If a matrix row fails before producing `mcc.log` or a command transcript, treat it as a harness failure, fix the environment, and rerun that row before drawing product conclusions.
260
+
- If creative inventory commands report "You must be in Creative gamemode" after RCON switched the player, inspect game-mode update parsing before assuming creative inventory is broken. Modern servers can update local game mode through game event reason `3`.
261
+
- If an inventory row crashes with `Queue empty` or `Failed to process incoming packet`, inspect packet palette routing before changing inventory code. A single shifted packet ID can make a healthy inventory feature look broken.
262
+
- For chest-open failures, separate product and harness causes. The player may be standing inside the chest or suffocating on older servers. Stand beside the chest, put a floor under the player, and retry `useblock`.
263
+
- For shared local servers, a `Done` log line does not prove RCON is ready. Retry setup commands and verify the actual RCON port from `server.properties`.
return [m.group(1) for m in re.finditer(r"\.addPacket\(([^,]+),", text[start:])]
185
+
left, right = "1.21.10", "1.21.11"
186
+
a, b = packets(left, "CLIENTBOUND_TEMPLATE"), packets(right, "CLIENTBOUND_TEMPLATE")
187
+
for i in range(max(len(a), len(b))):
188
+
x = a[i] if i < len(a) else "<none>"
189
+
y = b[i] if i < len(b) else "<none>"
190
+
if x != y:
191
+
print(f"0x{i:02X}: {left}={x} | {right}={y}")
192
+
PY
193
+
```
194
+
195
+
Do the same for `SERVERBOUND_TEMPLATE`. Clientbound and serverbound can change independently. Do not inherit a newer palette just because one side looks similar. For example, `1.21.11` used the same play packet order as `1.21.9/1.21.10` for the tested inventory path, while `26.1` had additional shifts.
196
+
160
197
## Step 5: Check Variant Encoding Changes
161
198
162
199
For entity types that use variant serializers (Cat, Wolf, Frog, Painting), check if the codec changed between versions by inspecting:
0 commit comments