376 lines
15 KiB
JSON
376 lines
15 KiB
JSON
{
|
|
"task": "T4",
|
|
"review": "Independent read-only pinned-commit spec conformance",
|
|
"verdict": "specpass",
|
|
"status": "PASS",
|
|
"reviewedUtc": "2026-10-08T14:49:34.161360+00:00",
|
|
"sourceCommit": "43b22d67886bc5715d3543fefda2dc24dead299f",
|
|
"baselineCommit": "7c786c5435042f3f4b5e9a4fb370a4350bb2309e",
|
|
"worktree": "C:/git/MagnetismHeroes/.dryforge/worktrees/T4",
|
|
"blockingFindings": [],
|
|
"checks": [
|
|
{
|
|
"requirements": [
|
|
"R10",
|
|
"R06"
|
|
],
|
|
"result": "pass",
|
|
"evidence": "All five groups explicitly approved. Review packet SHA verified. All 25 source/FBX SHA values independently match pinned Git blobs. Apply checks approval and hashes before mutation."
|
|
},
|
|
{
|
|
"requirements": [
|
|
"R02",
|
|
"R03"
|
|
],
|
|
"result": "pass",
|
|
"evidence": "Actual imported body diameter 1, root scale 1, sole SphereCollider radius .5, one equipment bundle, no equipment collider/Animator/rig. Existing six expressions/mask/ribbon/number and count/contact references preserved in raw prefab diffs. Only runtime edit: 3 GroupBadge lines following existing representative body centre and camera."
|
|
},
|
|
{
|
|
"requirements": [
|
|
"R03"
|
|
],
|
|
"result": "pass",
|
|
"evidence": "Actual Main test asserts equipment count, position and camera rotation across preview/cancel, merge/split, rotated representative changes and free-play reentry. Existing badge lifecycle deactivates/destroys previous badges; no Core/save/input changes."
|
|
},
|
|
{
|
|
"requirements": [
|
|
"R04"
|
|
],
|
|
"result": "pass",
|
|
"evidence": "All 30 nonvisual serialized StageAsset prefixes identical to baseline. New meadow decoration references everywhere; Garden 1-10/Cloud 11-20/Workshop 21-30 retained. Actual Garden free-play and reentry preserve scene theme; existing source-stage environment path unchanged for other themes."
|
|
},
|
|
{
|
|
"requirements": [
|
|
"R05"
|
|
],
|
|
"result": "pass within T4",
|
|
"evidence": "Arch/steps use imported nonconvex shared MeshCollider; no blocked BoxCollider arch. Small/distant vegetation has no collider. GameApp raw diff only disables floor renderer and changes camera background; floor physics preserved. No input ray bypass or ball relocation."
|
|
},
|
|
{
|
|
"requirements": [
|
|
"R06",
|
|
"R08"
|
|
],
|
|
"result": "pass",
|
|
"evidence": "Scoped Editor source uses Unity import/prefab/serialization APIs and excludes initial builders. All 23 FBX meta settings: scale1/fileScale/axisConversion/noAnimation. Imported roots preserved. All 31 material RGB values match portable provenance. All 268 pre-existing meta blobs, 13 legacy FBXs and 289 protected Core/audio/font/face/atlas/mixer/prefab-meta blobs identical to baseline. No runtime UnityEditor, new network/audio/platform/UI feature."
|
|
},
|
|
{
|
|
"requirements": [
|
|
"T4 verification"
|
|
],
|
|
"result": "pass",
|
|
"evidence": "Final asset tests 2/2 and actual Main PlayMode 2/2, all failed/skipped/inconclusive 0; raw logs independently report test exit0. Red XML evaluates the same asset tests and fails on missing body/natural decoration refs; green evaluates and passes. Ten final PNGs independently viewed; JSON pinned to clean commit, correct fixture origins and equipment counts."
|
|
},
|
|
{
|
|
"requirements": [
|
|
"Source integrity"
|
|
],
|
|
"result": "pass",
|
|
"evidence": "858 current source files independently match pre-final-play exact hashes; git status clean. Pinned Git content comparison:369 raw exact,488 exact CRLF conversions; GroupBadge mixed endings normalize exactly to pinned commit and exact worktree hash matches manifest. Post-final summary records clean same commit/858 hashes matched."
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"file": "import-red.xml",
|
|
"result": "Failed(Child)",
|
|
"total": 2,
|
|
"passed": 0,
|
|
"failed": 2,
|
|
"skipped": 0,
|
|
"inconclusive": 0,
|
|
"startUtc": "2026-10-08 14:10:25Z",
|
|
"endUtc": "2026-10-08 14:10:25Z",
|
|
"cases": [
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradeAssetTests.AllThirtyStagesConnectNaturalThemesWithOpenNearMeshCollidersAndColliderFreeDistantDecor",
|
|
"result": "Failed"
|
|
},
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradeAssetTests.ApprovedBodyAndOneEquipmentAssemblyAreConnectedWithoutChangingSelectionSphere",
|
|
"result": "Failed"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"file": "import-green.xml",
|
|
"result": "Passed",
|
|
"total": 2,
|
|
"passed": 2,
|
|
"failed": 0,
|
|
"skipped": 0,
|
|
"inconclusive": 0,
|
|
"startUtc": "2026-10-08 14:16:25Z",
|
|
"endUtc": "2026-10-08 14:16:25Z",
|
|
"cases": [
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradeAssetTests.AllThirtyStagesConnectNaturalThemesWithOpenNearMeshCollidersAndColliderFreeDistantDecor",
|
|
"result": "Passed"
|
|
},
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradeAssetTests.ApprovedBodyAndOneEquipmentAssemblyAreConnectedWithoutChangingSelectionSphere",
|
|
"result": "Passed"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"file": "import-final.xml",
|
|
"result": "Passed",
|
|
"total": 2,
|
|
"passed": 2,
|
|
"failed": 0,
|
|
"skipped": 0,
|
|
"inconclusive": 0,
|
|
"startUtc": "2026-10-08 14:37:23Z",
|
|
"endUtc": "2026-10-08 14:37:23Z",
|
|
"cases": [
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradeAssetTests.AllThirtyStagesConnectNaturalThemesWithOpenNearMeshCollidersAndColliderFreeDistantDecor",
|
|
"result": "Passed"
|
|
},
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradeAssetTests.ApprovedBodyAndOneEquipmentAssemblyAreConnectedWithoutChangingSelectionSphere",
|
|
"result": "Passed"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"file": "play-final.xml",
|
|
"result": "Passed",
|
|
"total": 2,
|
|
"passed": 2,
|
|
"failed": 0,
|
|
"skipped": 0,
|
|
"inconclusive": 0,
|
|
"startUtc": "2026-10-08 14:38:35Z",
|
|
"endUtc": "2026-10-08 14:38:36Z",
|
|
"cases": [
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradePlayTests.ActualMainShowsThreeThemesAndEquipmentFollowsPreviewCancelMergeSplitAndReentry",
|
|
"result": "Passed"
|
|
},
|
|
{
|
|
"name": "MagnetismHeroes.Tests.VisualUpgradePlayTests.TenSingleGroupsAndOneTenBallGroupRenderActualImportedResourceCounts",
|
|
"result": "Passed"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"visualObservations": [
|
|
"Three default natural themes render imported smooth sphere bodies and open helmets/blunt swords/round shields, readable faces/numbers and intact Korean UI; no visible missing-material pink or missing references.",
|
|
"Selection highlight visible; merged two-sphere group has one bundle and split/reentry two bundles. Synthetic ten-ball fixtures show10 versus1 bundles retaining10 balls. Attachment overlap/ordinary neighbouring-ball occlusion is not treated as a zero-intersection violation.",
|
|
"Rotated close view keeps gear/face alignment and continuous terrain. Extreme below-ground view obscures board; see T5 follow-up."
|
|
],
|
|
"nonblockingFindings": [
|
|
{
|
|
"id": "T5-QUALITY-SHADOWS",
|
|
"owner": "T5",
|
|
"requirements": [
|
|
"R01",
|
|
"R07"
|
|
],
|
|
"observation": "Default captures lack visible soft contact shadows; existing configuration unchanged. Full lighting/soft-shadow quality acceptance is not claimed by T4."
|
|
},
|
|
{
|
|
"id": "T5-EXTREME-CAMERA-OCCLUSION",
|
|
"owner": "T5",
|
|
"requirements": [
|
|
"R05",
|
|
"R07"
|
|
],
|
|
"evidence": "final/orbit210-pitch-45-distance15.png",
|
|
"observation": "Physical terrain underside obscures board at pitch-45/distance15. One view does not establish a regression. T5 must compare original floor/new ground, physical occlusion and allowed alternate views; this review requests no arbitrary camera restrictions or hit bypass."
|
|
}
|
|
],
|
|
"pendingChecks": [
|
|
"T5 full Edit/Play regression and legacy decoration-count/mesh-name expectation updates",
|
|
"T5 actual collider selection, arch hole, collection discovery and below-ground original/new A/B",
|
|
"T5 complete R07 quality/lifecycle/camera checklist and soft shadows",
|
|
"T6 full Final EditMode/PlayMode/AndroidBuild/AndroidSmoke, installed APK/source/audio hashes and adoption documentation"
|
|
],
|
|
"scope": "T4 application and initial contract checks only. T5/T6 outstanding work is not treated as a T4 blocker; no full-quality/APK acceptance claimed. Reviewer did not run Unity/ADB/Blender or modify products.",
|
|
"evidenceHashes": [
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/ModelReview/user-approval.json",
|
|
"bytes": 9870,
|
|
"sha256": "b539d582aa77d032918bbb580d10d2374f65be4bdd6868432a84ed1d23a46bc5"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/ModelReview/review-packet.json",
|
|
"bytes": 35970,
|
|
"sha256": "4787e5679d1fe940060a889ffee42020258587ffb19eff32696ea6fc2f48cc99"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/source-import.json",
|
|
"bytes": 20062,
|
|
"sha256": "4a8788aff69cd30befe5c20d94e63542ee9ad4a102710bfd7c208a8beb14f9a6"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/source-before-final-play.json",
|
|
"bytes": 161828,
|
|
"sha256": "0318ab6bd9a5864e75ac51f096687a9011941558c06e6c4a69dc822f5e720076"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/source-after-final-play.json",
|
|
"bytes": 195,
|
|
"sha256": "1359db7d0cf3448f0e35230315ada0bc1c6b927181f8bf90cf4aef4e4a396089"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/t4-result.json",
|
|
"bytes": 22622,
|
|
"sha256": "cb8fd5cb61666ecbe1ce7616357b8a067f660859fb0db79d9ac7e987893cd88b"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/import-red.xml",
|
|
"bytes": 5944,
|
|
"sha256": "dea3629d727730b2ead7d949abf05f82312045e199f2a080860870159d3f8930"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/import-red-editor.log",
|
|
"bytes": 1634226,
|
|
"sha256": "4f0f89e645e81199a0c668b87959647aa753b65e7e06134232e3de3270021fa7"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/import-green.xml",
|
|
"bytes": 4316,
|
|
"sha256": "0f138bd95ad09aa3b4bd7c75a1cf580676be3494470508a37fc7e1edc9bb4798"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/import-green-editor.log",
|
|
"bytes": 50407,
|
|
"sha256": "29a3c8b40a16ae0c751e051936515f27983d2a8423bb7f73ad6ac2d02dc8d21c"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/import-final.xml",
|
|
"bytes": 4317,
|
|
"sha256": "945b57b4c5dc054e55aef3eb412463163d96e9bdb530074600d1e62eb69aac1d"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/import-final-editor.log",
|
|
"bytes": 51431,
|
|
"sha256": "1b04061bda7e4eea4b5440c009b028cf1c451a22fe16f584533bb1b15b231529"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/play-final.xml",
|
|
"bytes": 4398,
|
|
"sha256": "2b841c77377b9549d79170aebd8ec536ac74e8f8c55bd985d105f9d3f0236f98"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/play-final-editor.log",
|
|
"bytes": 40236,
|
|
"sha256": "7af95099cc70249ec0e3765d13e8e679e1650f92bc97d131eaaba818bea09905"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/apply-03-editor.log",
|
|
"bytes": 108743,
|
|
"sha256": "940ac55c31f44609ca2954582c08eb6c90a962a1f8792fae169854008d984323"
|
|
},
|
|
{
|
|
"path": "artifacts/verification/VisualUpgrade/UnityApply/generated-whitespace-check.log",
|
|
"bytes": 56623,
|
|
"sha256": "07ff4e1b1a8285808cab6b443557a3a5a8d0c2b379ccfe031df7013cf93cc9ef"
|
|
}
|
|
],
|
|
"captures": [
|
|
{
|
|
"name": "merged-single-group.json",
|
|
"bytes": 906,
|
|
"sha256": "4a13899bb20d15a50732b6f91e427782281c67e3406cd9f4b2716d5049ddf11d"
|
|
},
|
|
{
|
|
"name": "merged-single-group.png",
|
|
"bytes": 185826,
|
|
"sha256": "5196638c35963365696f875d1f86d084c1b2aab6abc022b1fde5fbed0bbda464"
|
|
},
|
|
{
|
|
"name": "orbit210-pitch-45-distance15.json",
|
|
"bytes": 1057,
|
|
"sha256": "9c2c38a5c2d5fe1f3dba92ba7d009f7366f6468ba73dc0d9f8e8990a368e1888"
|
|
},
|
|
{
|
|
"name": "orbit210-pitch-45-distance15.png",
|
|
"bytes": 169446,
|
|
"sha256": "438aef5dd8b0f71349ef4fc86c5b2015d53af7b46404de8f49273891866e8ca2"
|
|
},
|
|
{
|
|
"name": "orbit95-pitch45-distance6.json",
|
|
"bytes": 1054,
|
|
"sha256": "6004a3d38432ac30bf18c95099849d9050a295636a8f8453efbdf2f8d53ec17f"
|
|
},
|
|
{
|
|
"name": "orbit95-pitch45-distance6.png",
|
|
"bytes": 285897,
|
|
"sha256": "b9125308cd45e80f044e5e8c434e371605c67665d5708e47717848409adbacbb"
|
|
},
|
|
{
|
|
"name": "selected-two-groups.json",
|
|
"bytes": 912,
|
|
"sha256": "f4ee5e2088668a701cd222e05c2a9de729a4b3c1cc3e765642572abfd6c3cae4"
|
|
},
|
|
{
|
|
"name": "selected-two-groups.png",
|
|
"bytes": 188246,
|
|
"sha256": "e73cfb13d3a56fd89d44a7156c70c147a377133c52e603fe6b0a29fe73cedb42"
|
|
},
|
|
{
|
|
"name": "split-reentered-two-groups.json",
|
|
"bytes": 928,
|
|
"sha256": "26a4bd7cdec640e6c19031e3413bbd61c5eb33a58a705df7e88b0383d3af4412"
|
|
},
|
|
{
|
|
"name": "split-reentered-two-groups.png",
|
|
"bytes": 193022,
|
|
"sha256": "ab8bbad3929d731ede4648324aee860fa20918da133709f4daf34c987869e0e8"
|
|
},
|
|
{
|
|
"name": "stage01.json",
|
|
"bytes": 918,
|
|
"sha256": "0bc3025d16b0ee0aea1eab4a2ad5384ef0b31c3a53a05cecfbff0850fc461de0"
|
|
},
|
|
{
|
|
"name": "stage01.png",
|
|
"bytes": 178823,
|
|
"sha256": "73be5d42d42edc4777147c6767d91122f626d6eb7aa4bedd200500fef2728e82"
|
|
},
|
|
{
|
|
"name": "stage11.json",
|
|
"bytes": 920,
|
|
"sha256": "7822bd5b12e514c33bf06dc682d93f74e008566d5e91565dff7185e05b3534df"
|
|
},
|
|
{
|
|
"name": "stage11.png",
|
|
"bytes": 187397,
|
|
"sha256": "5800767403c97bbfdcf2f594f1a6da0463327115eb63f9fa406d22a8fc8d8186"
|
|
},
|
|
{
|
|
"name": "stage21.json",
|
|
"bytes": 923,
|
|
"sha256": "ab795ce5072b4e8b1df554f43824fa3ec6830ea54437885b5e0a856263d6904d"
|
|
},
|
|
{
|
|
"name": "stage21.png",
|
|
"bytes": 174475,
|
|
"sha256": "03b07031bbb6b477537a3b3b80574348d60f2e8915d1a37560bbf5c29c1a0188"
|
|
},
|
|
{
|
|
"name": "ten-one-group.json",
|
|
"bytes": 947,
|
|
"sha256": "9330c1913eac3cca1082a478cc67a390345eac13e08d0328acd42d8b550fa5f1"
|
|
},
|
|
{
|
|
"name": "ten-one-group.png",
|
|
"bytes": 401560,
|
|
"sha256": "ce3383d3d6e3700d41be4783fdabd34b36df2d36a2bee31b22964eb3acef3983"
|
|
},
|
|
{
|
|
"name": "ten-single-groups.json",
|
|
"bytes": 953,
|
|
"sha256": "83c9c9d9cf1b27d61fb514c129eff79ceeee668509306c0f36841529c0ca50f3"
|
|
},
|
|
{
|
|
"name": "ten-single-groups.png",
|
|
"bytes": 493264,
|
|
"sha256": "36fc04827b6cab409a668607126e95037c7a2581f6a10f25b2e340236c5a5ba5"
|
|
}
|
|
]
|
|
}
|