diff --git a/content/blog/how-to-review-ai-generated-app-changes/index.mdx b/content/blog/how-to-review-ai-generated-app-changes/index.mdx
index 012d764..a430cee 100644
--- a/content/blog/how-to-review-ai-generated-app-changes/index.mdx
+++ b/content/blog/how-to-review-ai-generated-app-changes/index.mdx
@@ -26,6 +26,8 @@ ObjectStack ships one shared author-time rule registry โ `packages/lint/src/au
- **42 rules** in that registry. **29 of them can emit `error`**, which means they fail a build.
- Those 29 run behind **four doors**, and the door your change came through decides how many of them ran.
+*Both counts, and the 16 / 13 split below, were taken at objectstack `7da4cc2b` (2026-09-02); the registry has grown since.*
+
The doors are `os validate`, `os build`, `os lint`, and the **runtime publish gate** โ the path a Studio save, a REST `/meta` write, and an MCP/AI authoring call all funnel through. The registry's own invariant is that any rule which can emit `error` runs on all three CLI commands, so those three are one wall with three doors. The fourth is not equivalent: **16 of the 29 gating rules are wired to the runtime publish gate; the other 13 run only on the CLI.** Among the 13 are the two enforceability gates for row-level security and sharing rules.

diff --git a/content/blog/how-to-review-ai-generated-app-changes/review-gate-doors-en.svg b/content/blog/how-to-review-ai-generated-app-changes/review-gate-doors-en.svg
index ef70710..d5c91b0 100644
--- a/content/blog/how-to-review-ai-generated-app-changes/review-gate-doors-en.svg
+++ b/content/blog/how-to-review-ai-generated-app-changes/review-gate-doors-en.svg
@@ -56,4 +56,5 @@
Gating rules that run on the CLI only โ including the enforceability
gates for row-level security predicates and sharing rules.
+ Counted at objectstack 7da4cc2b ยท 2026-09-02