ship/sandbox deck sync - #7123
Contributor trust inconclusive
Investigator 1/3: Contributor matthewevans is a MEMBER of phase-rs/phase and all visible activity is tightly scoped to that single project (plus a fork). Ten PRs were hydrated with full patches and reviewed adversarially; five were hydrated in preview mode; nineteen are metadata-only. The full-patch reviews cover the highest-risk surface areas: CI release workflows, game-engine security boundaries (visibility/debug permissions), state restoration, combat mechanics, and a large rules-engine refactor (CR 400.7 / 603.7c delayed-trigger incarnation pinning). Every reviewed patch is consistent with legitimate, well-documented engine development: extensive rules citations, defensive guards, unit/integration tests, and no credential/network/dependency obfuscation. The one CI change (PR 7081) pins a deployment tool version rather than broadening permissions. The contributor opened multiple PRs in a short window, but all target their own member repository with focused, descriptive titles. No cross-repo supply-chain pattern is present. Because 70 of 100 candidate PRs were omitted from evidence, confidence is capped at medium. Investigator 2/3: Investigator 2 reviewed 33 assigned PRs for contributor matthew evans. Five PRs were hydrated with full patches and adversarially reviewed; all are clean. PR #7115 (phase-rs/phase) changed only MTG Comprehensive Rules comment citations across crates/engine/src/game/filter.rs, game_object.rs, sba.rs, parser/oracle_effect/mod.rs, and types/ability.rs — zero executable code. PR #7110 fixed an AI decision contract bug in crates/engine/src/ai_support/context.rs and added an integration test in crates/engine/tests/integration/ai_decision_contract.rs; the logic strengthens reducer validation for optional cost choices and includes no hidden network or obfuscation patterns. PR #7106 was a large client-side game-log UI feature touching React components, Rust log types, and i18n locales; visible hunks in GameLogPanel.tsx and log.rs show standard UI state management and presentation metadata with no eval, dangerous HTML injection, or outbound calls. PR #7102 was a single-line date stamp update in crates/engine/data/mtgjson-vintage. PR #7098 hardened engine invariants in crates/engine/src/game/casting.rs, combat.rs, derived_views.rs, ledger.rs, and resolved_commands.rs, plus tests; changes are more defensive (exhaustive zone matching, stricter ledger preconditions) rather than permissive. Five additional PRs were hydrated in preview mode with truncated patches; their visible file names and descriptions align with legitimate engine/parser/test work and show no suspicious signals, but they could not be fully adversarially reviewed. The remaining 23 PRs in the shard were metadata-only. The contributor is a MEMBER of phase-rs with activity concentrated entirely in the phase engine repository; there are zero unsolicited PRs, no cross-repo supply-chain patterns, and no backdoor or credential-exfiltration signals in any patch that could be reviewed. Investigator 3/3: Investigator 3 reviewed 33 PRs from contributor 'matthewevans' (shard of 100 candidate PRs). Ten PRs had hydrated patches (6 full, 4 preview) and were adversarially reviewed; the remaining 23 were metadata-only. The hydrated patches span core engine rule implementation (mana abilities, combat priority, search triggers, zone serialization), parser hardening (keyword routing, tap-state grammar, target-filter tests), a client visibility refactor, and changelog/data refreshes. No malicious or backdoor signals were found in any reviewed patch. Notably, PR #7094 removes client-side visibility inference in favor of server-projected 'display_visible_to_viewer', which is a security-hardening change. PR #7113 is a large, well-documented engine rule change (+2878/-67) with exhaustive pattern matching and extensive CR citations. PRs are uniformly MEMBER-authored, target a single repository (phase-rs/phase), contain no network calls, credential handling, obfuscated code, CI tampering, or suspicious dependency changes. Confidence is medium rather than high because 23 PRs in the shard were metadata-only and could not be patch-reviewed, and 70 of 100 candidate PRs were omitted globally. Patch-level safety guard downgraded the result to caution: 70 PRs were metadata-only after compact hydration.