diff --git a/.claude/skills/d8d-dev/journey-mode.md b/.claude/skills/d8d-dev/journey-mode.md
index e26a98f..4f1b714 100644
--- a/.claude/skills/d8d-dev/journey-mode.md
+++ b/.claude/skills/d8d-dev/journey-mode.md
@@ -394,7 +394,14 @@ Story 验证全部通过 ≠ 用户能正常使用系统。旅程模式弥补这
3. 证据阶段(⛔ 强制,不得跳过):
- browser_take_screenshot → 保存最终截图到 tests/e2e/screenshots/journey-epic{N}-{M}-final.png
- - browser_network_requests → 检查无 localhost API 调用
+ - browser_network_requests(static=false) → 检查无 localhost API 调用
+ - ⛔ **资源加载状态检查**(新增 — 每条旅程必须执行):
+ - `browser_network_requests(static=true, filter="\\.(jpg|jpeg|png|gif|webp|svg|mp4|webm|mov)$")`
+ - 过滤图片/视频资源请求,检查 HTTP 状态码
+ - 任何 403/404 → 标记 `resource_status_check.found = FOUND` + 触发修复
+ - 常见 403 原因:MinIO 私有 bucket 未用 presigned URL、防盗链、CORS
+ - 常见 404 原因:资源路径错误、文件未上传
+ - 记录到 pipeline-state.yaml 的 `verification_detail.resource_status_check`
4. 修复阶段(⛔ 以下任一条件满足时必须执行,不得跳过):
diff --git a/.claude/skills/d8d-dev/reference/platform-nextjs.md b/.claude/skills/d8d-dev/reference/platform-nextjs.md
index f0cb19b..6026419 100644
--- a/.claude/skills/d8d-dev/reference/platform-nextjs.md
+++ b/.claude/skills/d8d-dev/reference/platform-nextjs.md
@@ -282,3 +282,37 @@ getPublicDownloadUrl(key) → getSignedUrl(s3Public, ...) // host=minio-xxx.dev
K8S ingress 会将 HTTP 升级为 HTTPS。`S3_PUBLIC_URL` 必须使用 `https://`,
否则 presigned URL 签名会因重定向而失效。
+
+---
+
+## 9. 资源 URL 可访问性检查(⛔ 强制)
+
+### 问题描述
+
+MinIO bucket 默认私有,所有通过 URL 直接访问的资源(图片、视频)都会返回 403。
+前端 `
` 或 `