|
1 | 1 | WEBVTT |
2 | 2 |
|
3 | 3 | 1 |
4 | | -00:00:00.500 --> 00:00:06.112 |
5 | | -Drift is the silent killer of AI-written code — locally right, globally wrong. |
| 4 | +00:00:00.500 --> 00:00:06.752 |
| 5 | +Drift is the quiet failure mode of AI-written code — locally right, globally wrong. |
6 | 6 |
|
7 | 7 | 2 |
8 | | -00:00:06.112 --> 00:00:08.990 |
| 8 | +00:00:06.752 --> 00:00:09.764 |
9 | 9 | MetaObjects turns it into a build error. |
10 | 10 |
|
11 | 11 | 3 |
12 | | -00:00:08.990 --> 00:00:10.429 |
| 12 | +00:00:09.764 --> 00:00:11.271 |
13 | 13 | This is meta verify. |
14 | 14 |
|
15 | 15 | 4 |
16 | | -00:00:11.829 --> 00:00:13.123 |
| 16 | +00:00:12.671 --> 00:00:13.891 |
17 | 17 | Here's one in action. |
18 | 18 |
|
19 | 19 | 5 |
20 | | -00:00:13.123 --> 00:00:18.854 |
| 20 | +00:00:13.891 --> 00:00:19.296 |
21 | 21 | An agent edited a generated file, and one command caught it — exit one, before it could ship. |
22 | 22 |
|
23 | 23 | 6 |
24 | | -00:00:18.854 --> 00:00:22.243 |
25 | | -Let me show you how this works across your whole stack. |
| 24 | +00:00:19.296 --> 00:00:25.108 |
| 25 | +Let me show you how this works across all three surfaces — your code, your prompts, and your schema. |
26 | 26 |
|
27 | 27 | 7 |
28 | | -00:00:23.643 --> 00:00:27.737 |
| 28 | +00:00:26.508 --> 00:00:30.602 |
29 | 29 | Meta verify checks one thing: does everything still agree with the model? |
30 | 30 |
|
31 | 31 | 8 |
32 | | -00:00:27.737 --> 00:00:32.504 |
| 32 | +00:00:30.602 --> 00:00:35.369 |
33 | 33 | It does it across three surfaces — your code, your prompts, and your database schema. |
34 | 34 |
|
35 | 35 | 9 |
36 | | -00:00:32.504 --> 00:00:34.579 |
| 36 | +00:00:35.369 --> 00:00:37.444 |
37 | 37 | Drift on any of them fails the build. |
38 | 38 |
|
39 | 39 | 10 |
40 | | -00:00:35.979 --> 00:00:38.266 |
| 40 | +00:00:38.844 --> 00:00:41.131 |
41 | 41 | Before we run it, here's that one model. |
42 | 42 |
|
43 | 43 | 11 |
44 | | -00:00:38.266 --> 00:00:44.897 |
| 44 | +00:00:41.131 --> 00:00:47.762 |
45 | 45 | The Task entity carries its validators right on the fields — that drives the code, and its source drives the schema. |
46 | 46 |
|
47 | 47 | 12 |
48 | | -00:00:44.897 --> 00:00:49.071 |
| 48 | +00:00:47.762 --> 00:00:51.935 |
49 | 49 | The prompt has a typed payload and a template — that's the third surface. |
50 | 50 |
|
51 | 51 | 13 |
52 | | -00:00:49.071 --> 00:00:56.045 |
| 52 | +00:00:51.935 --> 00:00:58.910 |
53 | 53 | And look at the references between them: the payload extends a real Task field, and the template points at a real payload. |
54 | 54 |
|
55 | 55 | 14 |
56 | | -00:00:56.045 --> 00:01:00.618 |
| 56 | +00:00:58.910 --> 00:01:03.483 |
57 | 57 | Those are enforced — rename or delete the target, and the model won't even load. |
58 | 58 |
|
59 | 59 | 15 |
60 | | -00:01:00.618 --> 00:01:02.905 |
| 60 | +00:01:03.483 --> 00:01:05.770 |
61 | 61 | So the model can't drift against itself. |
62 | 62 |
|
63 | 63 | 16 |
64 | | -00:01:04.305 --> 00:01:05.530 |
| 64 | +00:01:07.170 --> 00:01:08.394 |
65 | 65 | Surface one: your code. |
66 | 66 |
|
67 | 67 | 17 |
68 | | -00:01:05.530 --> 00:01:09.258 |
| 68 | +00:01:08.394 --> 00:01:12.122 |
69 | 69 | Verify regenerates from the model and compares it to what's committed. |
70 | 70 |
|
71 | 71 | 18 |
72 | | -00:01:09.258 --> 00:01:13.944 |
| 72 | +00:01:12.122 --> 00:01:16.808 |
73 | 73 | The moment an agent hand-edits a generated file, it no longer matches — drift, exit one. |
74 | 74 |
|
75 | 75 | 19 |
76 | | -00:01:15.344 --> 00:01:17.013 |
| 76 | +00:01:18.208 --> 00:01:19.878 |
77 | 77 | Surface two: your prompts. |
78 | 78 |
|
79 | 79 | 20 |
80 | | -00:01:17.013 --> 00:01:21.509 |
| 80 | +00:01:19.878 --> 00:01:24.373 |
81 | 81 | Every variable in a prompt template has to exist on its typed payload. |
82 | 82 |
|
83 | 83 | 21 |
84 | | -00:01:21.509 --> 00:01:29.215 |
| 84 | +00:01:24.373 --> 00:01:32.079 |
85 | 85 | Reference a field that isn't there — say, after a rename — and the build fails, instead of the prompt quietly degrading. |
86 | 86 |
|
87 | 87 | 22 |
88 | | -00:01:30.615 --> 00:01:32.230 |
| 88 | +00:01:33.479 --> 00:01:35.034 |
89 | 89 | Surface three: your schema. |
90 | 90 |
|
91 | 91 | 23 |
92 | | -00:01:32.230 --> 00:01:35.221 |
| 92 | +00:01:35.034 --> 00:01:37.913 |
93 | 93 | Verify diffs the model against your live database. |
94 | 94 |
|
95 | 95 | 24 |
96 | | -00:01:35.221 --> 00:01:42.341 |
97 | | -A column that drifted out of band — dropped, renamed, or added by hand — gets caught before it bites you in production. |
| 96 | +00:01:37.913 --> 00:01:44.478 |
| 97 | +A column that drifted out of band — dropped, renamed, or added by hand — gets caught before it reaches production. |
98 | 98 |
|
99 | 99 | 25 |
100 | | -00:01:43.741 --> 00:01:47.409 |
101 | | -When everything's in sync, one command says so. |
| 100 | +00:01:45.878 --> 00:01:52.084 |
| 101 | +When everything's in sync, one command says so: code, prompts, and schema all agree with the model. |
102 | 102 |
|
103 | 103 | 26 |
104 | | -00:01:47.409 --> 00:01:51.389 |
105 | | -Code, prompts, and schema all agree with the model. |
106 | | - |
107 | | -27 |
108 | | -00:01:51.389 --> 00:01:52.794 |
109 | | -Green means green. |
110 | | - |
111 | | -28 |
112 | | -00:01:54.194 --> 00:01:57.928 |
| 104 | +00:01:53.484 --> 00:01:57.218 |
113 | 105 | Put that one line in your C I, and drift can't merge. |
114 | 106 |
|
115 | | -29 |
116 | | -00:01:57.928 --> 00:02:06.452 |
| 107 | +27 |
| 108 | +00:01:57.218 --> 00:02:05.742 |
117 | 109 | A pull request that diverges from the model fails the check — so an agent has to change the model first, then regenerate. |
118 | 110 |
|
119 | | -30 |
120 | | -00:02:06.452 --> 00:02:08.988 |
| 111 | +28 |
| 112 | +00:02:05.742 --> 00:02:08.279 |
121 | 113 | The model stays the source of truth. |
122 | 114 |
|
123 | | -31 |
124 | | -00:02:10.388 --> 00:02:11.966 |
| 115 | +29 |
| 116 | +00:02:09.679 --> 00:02:11.257 |
125 | 117 | That's the whole idea. |
126 | 118 |
|
127 | | -32 |
128 | | -00:02:11.966 --> 00:02:18.637 |
| 119 | +30 |
| 120 | +00:02:11.257 --> 00:02:17.927 |
129 | 121 | AI code is locally coherent and globally divergent — drift you can't see by reading one file. |
130 | 122 |
|
131 | | -33 |
132 | | -00:02:18.637 --> 00:02:24.518 |
| 123 | +31 |
| 124 | +00:02:17.927 --> 00:02:23.809 |
133 | 125 | Meta verify checks three surfaces against one model, and any mismatch is exit one. |
134 | 126 |
|
135 | | -34 |
136 | | -00:02:24.518 --> 00:02:28.104 |
| 127 | +32 |
| 128 | +00:02:23.809 --> 00:02:27.395 |
137 | 129 | The AI writes the code; the model keeps it honest. |
138 | 130 |
|
139 | | -35 |
140 | | -00:02:29.504 --> 00:02:33.399 |
| 131 | +33 |
| 132 | +00:02:28.795 --> 00:02:32.689 |
141 | 133 | Add meta verify to your build, and make drift a compile error. |
142 | 134 |
|
143 | | -36 |
144 | | -00:02:33.399 --> 00:02:37.733 |
| 135 | +34 |
| 136 | +00:02:32.689 --> 00:02:37.023 |
145 | 137 | This is part of the MetaObjects series — more at metaobjects dot dev. |
146 | 138 |
|
147 | | -37 |
148 | | -00:02:37.733 --> 00:02:38.989 |
| 139 | +35 |
| 140 | +00:02:37.023 --> 00:02:38.279 |
149 | 141 | Thanks for watching. |
150 | 142 |
|
0 commit comments