日期:2026-07-07
项目:Mindraw
Plan ID:P-20260707-signed-notarized-dmg
Task ID:QA-EDC-04
角色:QA
PMO 派发 QA-EDC-04,要求先准备 signed / notarized DMG 的普通用户路径验证矩阵;等 MD-EDC-02 产出 artifact 和 Review Gate 结果后,再执行验证。当前不得自行打包、改代码或冒充已执行真实安装验证。
AGENTS.md、INDEX.md、02-P/plan-progress.markdown 的 MEXP15 / MEXP14 / H8 相关段落。MD-EDC-02 artifact、Review Request 或 1.2.4 / Build20260707... DMG;未发现。02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-plan-20260707.md。02-P/plan-progress.markdown:MEXP15 状态更新为 Active / QA-EDC-04 validation plan ready / waiting MD-EDC-02 artifact,并补充 QA-EDC-04 任务卡、证据入口和 Progress Log。INDEX.md,加入 QA-EDC-04 验证矩阵入口。PARTIAL QA-EDC-04 WAITING_FOR_MD_EDC_02_ARTIFACT。MD-EDC-02 signed / notarized DMG、自查报告 / JSON、Review Request、concrete Review Gate ID,以及 REVIEW-EDC-03 对同一 Gate ID 的结论或 PMO 明确允许的受限验证指令。/Applications/Mindraw.app。/Users/ar/Projects/Mindraw/02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-plan-20260707.md/Users/ar/Projects/Mindraw/02-P/plan-progress.markdown/Users/ar/Projects/Mindraw/INDEX.md/Users/ar/Projects/Mindraw/.codex-sessionhistory/2026-07-07-MEXP15QA计划.md/Users/ar/Projects/Mindraw/.codex-sessionhistory/COMMANDS.mdQA-EDC-04 signed / notarized DMG QA 状态。02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-plan-20260707.md02-P/plan-progress.markdownINDEX.mdQA-EDC-04,但未有 QA 验证矩阵;MD-EDC-02 artifact 尚未可见。PARTIAL QA-EDC-04 WAITING_FOR_MD_EDC_02_ARTIFACT;执行报告路径仅作为模板保留,真实执行等待 artifact 与 Review Gate。1.2.3 / Build2026070615561.2.4 / Build20260707HHMM1.0.0 / Build202606282019/Applications/Mindraw.app、不运行真实 QA。MD-EDC-02 DMG / self-check / Review Request。用途:在 MD-EDC-02 artifact 产出后,执行 MEXP15 signed / notarized DMG 的普通用户路径验证。
前置条件:
MD-EDC-02 已提供真实 <DMG>、version、build、SHA、manifest、notary submission id 和 Review Gate ID。REVIEW-EDC-03 已对同一 Review Gate ID 给出结论,或 PMO 明确允许受限验证。Artifact presence check:
find /Users/ar/Projects/Mindraw/02-P/MEXP15-SignedNotarizedDMG -maxdepth 4 -type f \( -name '*md-edc-02*' -o -name '*qa-edc-04*' -o -name '*review-request*' \) -print
find /Users/ar/Projects/Mindraw/03-O/C2.builds/releases -maxdepth 2 -type f \( -name 'Mindraw_1.2.4_aarch64-Build20260707*.dmg' -o -name '*Build20260707*.dmg' -o -name 'release-manifest.json' \) -print | sort | tail -n 80
rg -n "MD-EDC-02|QA-EDC-04|REVIEW-EDC-03|Build20260707|1\\.2\\.4" /Users/ar/Projects/Mindraw/02-P/MEXP15-SignedNotarizedDMG /Users/ar/Projects/Mindraw/02-P/plan-progress.markdown /Users/ar/Projects/Mindraw/03-O/C2.builds/releases
Signed / notarized DMG verification template:
sw_vers
uname -m
whoami
shasum -a 256 "<DMG>"
hdiutil verify "<DMG>"
xcrun stapler validate "<DMG>"
spctl --assess --type open --context context:primary-signature --verbose=4 "<DMG>"
codesign --verify --strict --verbose=4 "<DMG>"
MOUNT="/tmp/mindraw-mexp15-mount-$$"
mkdir -p "$MOUNT"
hdiutil attach -nobrowse -readonly -mountpoint "$MOUNT" "<DMG>"
ls -la "$MOUNT"
test -d "$MOUNT/Mindraw.app"
test -L "$MOUNT/Applications" -o -d "$MOUNT/Applications"
ditto "$MOUNT/Mindraw.app" /Applications/Mindraw.app
hdiutil detach "$MOUNT"
/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleURLTypes:0:CFBundleURLSchemes:0' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleDocumentTypes:1:CFBundleTypeExtensions:0' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleDocumentTypes:1:LSTypeIsPackage' /Applications/Mindraw.app/Contents/Info.plist
codesign --verify --deep --strict --verbose=4 /Applications/Mindraw.app
spctl --assess --type execute --verbose=4 /Applications/Mindraw.app
open -a /Applications/Mindraw.app
open "<FIXTURE>.mindraw"
open 'mindraw://localhost?documentId=mdoc_m4c_annotated_frame_20260626&elementId=frame_ai_annotation_001'
codex plugin list
Rollback / uninstall template only for prepared environment:
pkill -x Mindraw 2>/dev/null || true
BACKUP_ZIP="$HOME/Desktop/Mindraw.app.pre-mexp15-backup-$(date +%Y%m%d%H%M%S).zip"
test -d /Applications/Mindraw.app && ditto -c -k --sequesterRsrc --keepParent /Applications/Mindraw.app "$BACKUP_ZIP"
rm -rf /Applications/Mindraw.app
搜索关键词:QA-EDC-04、WAITING_FOR_MD_EDC_02_ARTIFACT、MEXP15、Build20260707、1.2.4、stapler validate、spctl accepted、signed notarized DMG。
MD-EDC-02 artifact、自查报告、JSON、Review Request 和 Review Gate ID 尚未出现。REVIEW-EDC-03 尚未对 concrete Review Gate 回写结论。MD-EDC-02 回报后,先派 REVIEW-EDC-03 对同一 Review Gate ID 复核。qa-edc-04-signed-notarized-dmg-validation-report-20260707.md。PASS_WITH_LIMITS 或 BLOCKED/PARTIAL,不得写成真实 fresh machine。只读本存档可以还原:QA-EDC-04 当前为何只是 partial、需要哪些 artifact / review 前置、验证矩阵覆盖哪些普通用户路径、哪些命令可复用、哪些环境不能冒充 fresh machine。