diff --git a/README.md b/README.md
index e34f2c6e..45b0a174 100644
--- a/README.md
+++ b/README.md
@@ -45,12 +45,20 @@ No new editor, no new CLI. Install into the host you already use — Codex, Clau
[See the workflow diagram, checkpoints, and resume flow →](./docs/how-sopify-works.en.md)
-## See It In Action
+## Sopify in a Real Codex Workflow
+
+This archived workflow shows Sopify running inside Codex, not a scripted terminal demo. A complex request became a tracked plan; an audit concern triggered a decision checkpoint; after the user approved a minimal fix, the verification evidence was recorded and the plan was archived.
-
+
+- **Plan first** — Codex did not start coding immediately; it first captured the goal, boundaries, and verification steps in a tracked plan.
+- **Stop for a decision** — the first audit found one concern; work paused for the user, then only a minimal identity check was added.
+- **Close with evidence** — the second audit found no open risk; 5 protocol checks and 55 targeted tests with 48 subtests were recorded before archive.
+
+The real task was an optional verifier integration. The animation explains how Sopify managed it; the archived files show what happened: [plan](./.sopify/history/2026-07/20260718_evidentloop_optional_audit_integration/plan.md) · [verification receipt](./.sopify/history/2026-07/20260718_evidentloop_optional_audit_integration/receipts/verify_001.json) · [final receipt](./.sopify/history/2026-07/20260718_evidentloop_optional_audit_integration/receipts/final.json).
+
## Quick Start
```bash
diff --git a/README.zh-CN.md b/README.zh-CN.md
index b5230018..d5439626 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -45,12 +45,20 @@ Sopify 把方案和验证收据保存在 `.sopify/` 中,作为可纳入 git
[查看工作流图、checkpoint 与恢复流程 →](./docs/how-sopify-works.md)
-## 实战演示
+## Sopify 在真实 Codex 任务中如何运行
+
+下面展示的是 Sopify 在一次真实 Codex 任务中的运行过程,不是编排好的终端演示。复杂需求先沉淀为方案;审计发现问题时流程停车;用户裁定后再做最小修正,并把验证结果写入收据后归档。
-
+
+- **先形成方案** — Codex 没有直接改代码,而是先把目标、边界和验证步骤写入可追踪方案。
+- **发现问题就停车** — 首次审计发现一项风险;流程等待用户裁定,随后只补最薄的身份校验。
+- **有证据再收口** — 复审确认没有开放风险;最终收据记录 5 项协议检查、55 项定向测试和 48 项子测试,随后才归档。
+
+真实任务是一次可选验证器接入。动效解释 Sopify 如何管理这项工作,归档文件记录实际过程:[方案](./.sopify/history/2026-07/20260718_evidentloop_optional_audit_integration/plan.md) · [验证收据](./.sopify/history/2026-07/20260718_evidentloop_optional_audit_integration/receipts/verify_001.json) · [最终收据](./.sopify/history/2026-07/20260718_evidentloop_optional_audit_integration/receipts/final.json)。
+
## 快速开始
```bash
diff --git a/assets/demo-en.svg b/assets/demo-en.svg
deleted file mode 100644
index 3373cba4..00000000
--- a/assets/demo-en.svg
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ✱ sopify
-
-
- Claude Code
- Sonnet 4.6 · ~/code/sopify
-
-
-
- > ~go Add Copilot trigger wiring to the installer
-
-
- [sopify-ai] Analysis ?
-
-
- Score: 5/10 — two behaviors unspecified
-
-
- 1. Trigger entry: instruction-only, or workspace marker + instruction?
- 2. .copilot/ directory: overwrite if exists, or merge?
-
-
-
- > instruction + marker; merge with existing .copilot/
-
-
- [sopify-ai] Design ✓
-
-
- Plan: .sopify/plan/20260530_copilot_trigger/
- Tasks: 3 items
- Quality: 9/10 | Readiness: 8/10
-
-
-
- sopify
- Sonnet 4.6
-
-
-
-
-
-
-
- ⏸ 1 day later · different machine
- switching from Claude Code → Codex CLI
-
-
-
-
-
-
-
-
-
-
-
-
-
- sopify — codex — 119×30
-
-
-
- >_ OpenAI Codex
- model: gpt-5.5 /model to change
- directory: ~/code/sopify
-
-
-
- > ~go
-
-
- ● [sopify-ai] Develop ✓ (resumed · checkpoint 1 → 3)
-
-
- Completed: 3/3 tasks
-
-
- Review: spec ✓ | code quality ✓
-
-
- Changes: 4 files
-
- - installer/copilot/trigger.py
- - installer/copilot/templates/instructions.md
- - scripts/install-sopify.sh
- - tests/test_copilot_trigger.py
-
-
- Next: Please verify the feature
-
-
-
- >
-
-
-
-
diff --git a/assets/readme-visuals/codex-dogfood.gif b/assets/readme-visuals/codex-dogfood.gif
new file mode 100644
index 00000000..bb6b65ba
Binary files /dev/null and b/assets/readme-visuals/codex-dogfood.gif differ
diff --git a/assets/readme-visuals/codex-dogfood.json b/assets/readme-visuals/codex-dogfood.json
new file mode 100644
index 00000000..1f6595c5
--- /dev/null
+++ b/assets/readme-visuals/codex-dogfood.json
@@ -0,0 +1,51 @@
+{
+ "schema_version": 1,
+ "mode": "architecture",
+ "template_type": "architecture",
+ "style": 7,
+ "motion_scene": "token-stream",
+ "quality_profile": "showcase",
+ "width": 960,
+ "height": 700,
+ "title": "Sopify in Codex · 真实运行流程",
+ "subtitle": "plan / 方案 → decision / 用户裁定 → evidence / 证据收口",
+ "caption": "Animated reconstruction from archived plan and receipts. The animation explains the flow; linked artifacts are the evidence. / 基于归档方案与收据的动效重构;动效解释流程,链接文件才是证据。",
+ "alt": "Sopify 在真实 Codex 任务中的运行过程:需求形成方案,审计发现问题后等待用户裁定,最小修正和验证证据写入收据后再归档。",
+ "containers": [
+ { "id": "entry", "x": 40, "y": 120, "width": 880, "height": 110, "label": "PLAN / 方案", "stroke": "#e2e8f0", "fill": "none" },
+ { "id": "runtime", "x": 40, "y": 280, "width": 880, "height": 130, "label": "BUILD / 实施", "stroke": "#e2e8f0", "fill": "none" },
+ { "id": "delivery", "x": 40, "y": 450, "width": 880, "height": 140, "label": "DECIDE / 裁定", "stroke": "#e2e8f0", "fill": "none" }
+ ],
+ "nodes": [
+ { "id": "app", "kind": "rect", "x": 80, "y": 156, "width": 180, "height": 54, "type_label": "REQUEST", "label": "User request / 用户需求", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
+ { "id": "sdk", "kind": "double_rect", "x": 370, "y": 156, "width": 220, "height": 54, "type_label": "CODEX", "label": "Codex plan / Codex 方案", "fill": "#ffffff", "stroke": "#10a37f" },
+ { "id": "prompt", "kind": "rect", "x": 80, "y": 340, "width": 180, "height": 50, "type_label": "PROJECT", "label": "plan.md", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
+ { "id": "model", "kind": "double_rect", "x": 370, "y": 340, "width": 220, "height": 50, "type_label": "DEVELOP", "label": "Implement / 实施", "fill": "#ffffff", "stroke": "#10a37f" },
+ { "id": "tools", "kind": "rect", "x": 700, "y": 340, "width": 180, "height": 50, "type_label": "EVIDENCE", "label": "Tests + release / 测试发布", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
+ { "id": "formatter", "kind": "rect", "x": 80, "y": 510, "width": 180, "height": 60, "type_label": "AUDIT", "label": "Audit report / 审计报告", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
+ { "id": "observability", "kind": "rect", "x": 390, "y": 510, "width": 180, "height": 60, "type_label": "CHECKPOINT", "label": "User decision / 用户裁定", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
+ { "id": "release", "kind": "rect", "x": 700, "y": 510, "width": 180, "height": 60, "type_label": "TRACE", "label": "Receipt + archive / 收据归档", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true }
+ ],
+ "arrows": [
+ { "id": "connect", "source": "app", "target": "sdk", "source_port": "right", "target_port": "left", "flow": "control", "motion_role": "connect", "motion_stage": 1, "motion_order": 0, "label": "request / 需求" },
+ { "id": "prepare", "source": "sdk", "target": "prompt", "source_port": "bottom", "target_port": "top", "flow": "read", "motion_role": "prepare", "motion_stage": 2, "motion_order": 0, "label": "materialize / 落盘" },
+ { "id": "invoke", "source": "prompt", "target": "model", "source_port": "right", "target_port": "left", "flow": "control", "motion_role": "invoke", "motion_stage": 3, "motion_order": 0, "label": "confirm / 确认" },
+ { "id": "tool-call", "source": "model", "target": "tools", "source_port": "right", "target_port": "left", "flow": "read", "motion_role": "tool-call", "motion_stage": 4, "motion_order": 0, "label": "test + release / 验证发布" },
+ { "id": "stream", "source": "model", "target": "formatter", "source_port": "bottom", "target_port": "top", "flow": "control", "motion_role": "token-stream", "motion_stage": 4, "motion_order": 1, "label": "audit / 审计" },
+ { "id": "measure", "source": "formatter", "target": "observability", "source_port": "right", "target_port": "left", "flow": "feedback", "motion_role": "measure", "motion_stage": 5, "motion_order": 1, "label": "review / 裁定" },
+ { "id": "govern", "source": "tools", "target": "release", "source_port": "bottom", "target_port": "top", "flow": "feedback", "motion_role": "govern", "motion_stage": 5, "motion_order": 0, "label": "gate / 门禁" },
+ { "id": "promote", "source": "observability", "target": "release", "source_port": "right", "target_port": "left", "flow": "feedback", "motion_role": "promote", "motion_stage": 6, "motion_order": 0, "label": "fix + record / 修正留痕" }
+ ],
+ "legend_orientation": "horizontal",
+ "legend_x": 48,
+ "legend_y": 625,
+ "legend_locked": true,
+ "legend": [
+ { "flow": "control", "label": "request / confirm / audit" },
+ { "flow": "read", "label": "plan / tests" },
+ { "flow": "feedback", "label": "decision / closeout" }
+ ],
+ "footer": "Animated reconstruction from archived plan and receipts · 动效解释流程,链接文件才是证据。",
+ "footer_x": 48,
+ "footer_y": 680
+}
diff --git a/assets/readme-visuals/codex-dogfood.svg b/assets/readme-visuals/codex-dogfood.svg
new file mode 100644
index 00000000..cc783727
--- /dev/null
+++ b/assets/readme-visuals/codex-dogfood.svg
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sopify in Codex · 真实运行流程
+ plan / 方案 → decision / 用户裁定 → evidence / 证据收口
+
+
+
+ PLAN / 方案
+
+
+
+
+ BUILD / 实施
+
+
+
+
+ DECIDE / 裁定
+
+
+
+
+
+
+
+
+
+
+
+
+ REQUEST
+ User request / 用户需求
+
+
+
+
+ CODEX
+ Codex plan / Codex 方案
+
+
+
+ PROJECT
+ plan.md
+
+
+
+
+ DEVELOP
+ Implement / 实施
+
+
+
+ EVIDENCE
+ Tests + release / 测试发布
+
+
+
+ AUDIT
+ Audit report / 审计报告
+
+
+
+ CHECKPOINT
+ User decision / 用户裁定
+
+
+
+ TRACE
+ Receipt + archive / 收据归档
+
+
+
+ request / 需求
+
+
+
+ materialize / 落盘
+
+
+
+ confirm / 确认
+
+
+
+ test + release / 验证发布
+
+
+
+ audit / 审计
+
+
+
+ review / 裁定
+
+
+
+ gate / 门禁
+
+
+
+ fix + record / 修正留痕
+
+
+
+
+ request / confirm / audit
+
+ plan / tests
+
+ decision / closeout
+
+
+
\ No newline at end of file
diff --git a/scripts/check-readme-links.py b/scripts/check-readme-links.py
index 06f27344..d7ec4c40 100644
--- a/scripts/check-readme-links.py
+++ b/scripts/check-readme-links.py
@@ -30,7 +30,7 @@
# Lock public-doc structure so CN/EN drift is caught by CI instead of by readers.
EXPECTED_LEVEL2_SECTIONS = {
README_FILES[0]: (
- "See It In Action",
+ "Sopify in a Real Codex Workflow",
"Quick Start",
"Why Sopify?",
"Product Form",
@@ -44,7 +44,7 @@
"Contributing",
),
README_FILES[1]: (
- "实战演示",
+ "Sopify 在真实 Codex 任务中如何运行",
"快速开始",
"为什么选择 Sopify?",
"产品形态",