diff --git a/src/AcDream.App/Rendering/ClipFrame.cs b/src/AcDream.App/Rendering/ClipFrame.cs
index eb4c700c..1231a9d6 100644
--- a/src/AcDream.App/Rendering/ClipFrame.cs
+++ b/src/AcDream.App/Rendering/ClipFrame.cs
@@ -155,12 +155,13 @@ public sealed class ClipFrame : IDisposable
///
/// Append one clip region (becomes the next slot index) from a
- /// . Only the convex-plane case is supported in
- /// U.3 — Count > 0 packs that many planes; Count == 0 packs a
- /// no-clip region (pass-all). The scissor / nothing-visible fallbacks that
- /// can carry are deferred to U.4 (which will draw
- /// the AABB box or skip the cell on the CPU side, not via this slot). Returns
- /// the new slot's index.
+ /// : Count > 0 packs that many planes;
+ /// Count == 0 packs a no-clip region (pass-all) — that is the
+ /// whole contract for both of 's empty states
+ /// (nothing visible is decided by the caller before it appends; a plane
+ /// overflow draws unclipped, over-include). There is no scissor and no
+ /// AABB anywhere on this path (S3 landing hygiene, H1). Returns the new
+ /// slot's index.
///
public int AppendSlot(ClipPlaneSet set)
{
diff --git a/src/AcDream.App/Rendering/WorldPassSurface.cs b/src/AcDream.App/Rendering/WorldPassSurface.cs
index f7d56d59..dc28ba59 100644
--- a/src/AcDream.App/Rendering/WorldPassSurface.cs
+++ b/src/AcDream.App/Rendering/WorldPassSurface.cs
@@ -56,13 +56,19 @@ internal interface IWorldPassSurface
///
/// Vulkan activates every element the shader declares and has no
/// enable, so this is a no-op there — and that is safe rather than a
- /// divergence: only portal_depth.vert writes gl_ClipDistance
- /// in the world pass now (S3 landing hygiene, H4 — S3 chunk 4 fix round 2
- /// (L3) deleted the sky and terrain shaders' own declaration of the block
- /// this contract used to also publish; see 's
- /// doc). It still writes 1.0 ("keep everything") into every slot
- /// past its active count, so a frame with no clip planes clips nothing on
- /// either backend (plan §5.5.14 item 4).
+ /// divergence. Two shader families still write gl_ClipDistance in
+ /// the world pass: portal_depth.vert (the exit seals and punch fans,
+ /// planes handed per draw) and the mesh/particle vertex shaders
+ /// (mesh_modern, mesh_atmospheric, mesh_detail,
+ /// particle, particle_mesh), which read the per-cell
+ /// clip-region table this contract publishes through
+ /// . The walk feeds every ordinary part and
+ /// every particle slot 0 (no clip), so in the walk path that table is
+ /// dormant; the sky and terrain shaders no longer declare any clip block
+ /// at all (S3 chunk 4 fix round 2, L3). Every writer sets 1.0
+ /// ("keep everything") in each slot past its active count, so a frame
+ /// with no clip planes clips nothing on either backend (plan §5.5.14
+ /// item 4).
///
void EnableClipDistances();