You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3c21c8c
Browse filesBrowse the repository at this point in the historyBrowse files
feat: every skill lists the snippets that serve it, from snippets/skills.json
Examples reached skills through a generated, validated section, but snippets
were linked by hand, and three smoke-tested ones (register-classes-factory,
pointerproperty-binding, foreach-get-vertices) were linked from no skill, so
agents that find content through skills never saw them. snippets/skills.json
maps each snippet to its skills; build_examples_index.py writes a Snippets
list into the generated section and fails (Validate) on a snippet that maps to
no skill or is missing from the mapping (both falsified).
Closes#524
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LpkeXRvikhJZSVGBFM91Dv
Signed-off-by: TM Hospitality Strategies <TMHospitalityStrategies@gmail.com>
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -138,6 +138,7 @@ showcase/
138
138
1. Add a `.py` file under `snippets/`, e.g. `snippets/depsgraph-evaluated-mesh.py`.
139
139
2. Keep it 5 to 75 lines, fully working code, with a header comment naming the snippet and citing the relevant Blender doc URL or research section.
140
140
3. Add an entry to `tests/smoke/snippet_checks.py`: a `check` that calls the snippet's functions and asserts one observable fact, and a `falsify` (old, new) source edit that must make the check fail. Content Smoke (`.github/workflows/content-smoke.yml`) runs the snippet in place on 4.5 and 5.2; Validate fails a snippet without an entry. Run it locally with `blender --background --factory-startup --python tests/smoke/run_content.py -- --only <name>`.
141
+
4. Map it to the skills it serves in `snippets/skills.json`, then run `python scripts/build_examples_index.py`: each skill's generated section lists its snippets, and Validate fails a snippet that maps to no skill.
Copy file name to clipboardExpand all lines: skills/addon-scaffolding/SKILL.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -223,6 +223,12 @@ Each example runs headless, asserts the contract, and exits non-zero when it bre
223
223
224
224
-[`addon-register-lifecycle`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/addon-register-lifecycle): Check-only witness for the first things every add-on author writes. Falsify: `--drop-manifest` (exit 3).
225
225
226
+
### Snippets
227
+
228
+
Short standalone patterns to copy. Each one runs in CI on 5.2 and 4.5 with a check and a falsifier.
Copy file name to clipboardExpand all lines: skills/ai-mesh-cleanup/SKILL.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -262,6 +262,15 @@ Each example runs headless, asserts the contract, and exits non-zero when it bre
262
262
-[`prop-origin-transform`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/prop-origin-transform): Street pedestal origin-to-base-center + data-API scale apply + matrix_parent_inverse for a flanged conduit elbow. Falsify: `--skip-mpi` (exit 8).
263
263
-[`unapplied-scale-gltf`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/unapplied-scale-gltf): Synthesizes unapplied non-uniform object scale on a unit cube, then asserts the glTF exporter contract. Falsify: `--identity` (exit 3).
264
264
265
+
### Snippets
266
+
267
+
Short standalone patterns to copy. Each one runs in CI on 5.2 and 4.5 with a check and a falsifier.
Copy file name to clipboardExpand all lines: skills/bake-high-to-low/SKILL.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -172,4 +172,13 @@ Each example runs headless, asserts the contract, and exits non-zero when it bre
172
172
173
173
-[`bake-normal-high-to-low`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/bake-normal-high-to-low): A collapse-decimated hatch plate receiving a Cycles cage-baked tangent normal map from a ribbed high-poly source Falsify: `--flat-source` (exit 5).
174
174
175
+
### Snippets
176
+
177
+
Short standalone patterns to copy. Each one runs in CI on 5.2 and 4.5 with a check and a falsifier.
Copy file name to clipboardExpand all lines: skills/compositor-nodes/SKILL.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -180,6 +180,12 @@ Each example runs headless, asserts the contract, and exits non-zero when it bre
180
180
181
181
-[`compositor-glare`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/compositor-glare): Bloom where it actually lives — a compositor Glare (Fog Glow) node fed by Render Layers. Falsify: `--threshold-high` (exit 4).
182
182
183
+
### Snippets
184
+
185
+
Short standalone patterns to copy. Each one runs in CI on 5.2 and 4.5 with a check and a falsifier.
Copy file name to clipboardExpand all lines: skills/custom-properties/SKILL.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -275,6 +275,13 @@ Each example runs headless, asserts the contract, and exits non-zero when it bre
275
275
-[`addon-register-lifecycle`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/addon-register-lifecycle): Check-only witness for the first things every add-on author writes. Falsify: `--drop-manifest` (exit 3).
276
276
-[`cross-version-property-delete`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/cross-version-property-delete): Custom ID properties are removed with del, not property_unset. Falsify: `--skip-delete` (exit 7).
277
277
278
+
### Snippets
279
+
280
+
Short standalone patterns to copy. Each one runs in CI on 5.2 and 4.5 with a check and a falsifier.
Copy file name to clipboardExpand all lines: skills/drivers-and-app-handlers/SKILL.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -330,6 +330,13 @@ Each example runs headless, asserts the contract, and exits non-zero when it bre
330
330
-[`driver-wave`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/driver-wave): A driver_namespace function driving sixteen organ-pipe heights through SCRIPTED drivers — the sine skyline of the pipe tops is entirely driver-evaluated. Falsify: `--flat-expr` (exit 3).
331
331
-[`exit-pre-sidecar`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/exit-pre-sidecar): `bpy.app.handlers.exit_pre` writes `$BDT_SMOKE_SIDECAR` as Blender dies. Blender 5.1+. Falsify: `--atexit-instead` (harness fails the sidecar).
332
332
333
+
### Snippets
334
+
335
+
Short standalone patterns to copy. Each one runs in CI on 5.2 and 4.5 with a check and a falsifier.
Copy file name to clipboardExpand all lines: skills/engine-export-presets/SKILL.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -149,6 +149,15 @@ Each example runs headless, asserts the contract, and exits non-zero when it bre
149
149
-[`gltf-skin-roundtrip`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/gltf-skin-roundtrip): A rigged mech scorpion exported to glTF with skins and re-imported, verifying the skinning contract the geometry round-trip left uncovered. Falsify: `--no-skins` (exit 5).
150
150
-[`unapplied-scale-gltf`](https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main/examples/unapplied-scale-gltf): Synthesizes unapplied non-uniform object scale on a unit cube, then asserts the glTF exporter contract. Falsify: `--identity` (exit 3).
151
151
152
+
### Snippets
153
+
154
+
Short standalone patterns to copy. Each one runs in CI on 5.2 and 4.5 with a check and a falsifier.
0 commit comments