- Manual gate validation documented in [[Dev/Phase_1_Gate_Results]]
+
+
**Note on test coverage:** The automated test (`tests/test_e2e.py`) is a per-subsystem smoke test, not a cross-cutting E2E. The cross-write-path criteria below were validated manually during the Phase 1 gate by human + agent testing, not by the automated test. MCP tests are `xfail` (bearer token not configured in test environment).
**Acceptance criteria:**
-
- [x] Create page via Otterwiki web UI → readable via API and MCP
-
- [x] Create page via API → visible in web UI and searchable
-
- [x] Write via MCP → visible in web UI and API
-
- [x] Semantic search finds pages by meaning, not just keywords
-
- [x] Git history shows correct authorship for all write paths
+
- [x] Create page via Otterwiki web UI → readable via API and MCP — *validated manually during gate*
+
- [x] Create page via API → visible in web UI and searchable — *automated: API CRUD; manual: web UI visibility*
+
- [x] Write via MCP → visible in web UI and API — *validated manually during gate*
+
- [x] Semantic search finds pages by meaning, not just keywords — *automated: endpoint smoke; manual: relevance verified (distances 0.46–0.79)*
+
- [x] Git history shows correct authorship for all write paths — *validated by gate agent: "Claude (MCP)" confirmed*