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 9bf4f1a
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .github/PULL_REQUEST_TEMPLATE.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,10 +27,10 @@ Label every claim.
27
27
28
28
-[ ] Explicit paths only (`git add` never `-A` / `.`). Leave unstaged Cursor-injected `CLAUDE.md` hunks.
29
29
-[ ] Counts in `README.md` match disk if content was added or removed (`validate-counts`).
30
-
-[ ] Manifest arrays list every new skill / rule / snippet / template / example (`validate-manifest`). Do not touch the `"version"` line.
31
-
-[ ] New example: `gallery.json`, smoke step, README row, hero/preview webp, `python scripts/build_gallery.py`, framing / contact-sheet gates as in `CLAUDE.md`.
30
+
-[ ] Manifest arrays list every new skill / rule / snippet / template / example / showcase piece (`validate-manifest`). Do not touch the `"version"` line.
31
+
-[ ] New example: `gallery.json`, `tests/smoke/catalog.json` row, README row, hero/preview webp, `python scripts/build_gallery.py`, framing / contact-sheet gates as in `CLAUDE.md`.
32
32
-[ ] Every new check was falsified once (break it, non-zero exit, restore) — or this PR has no new check.
33
-
-[ ] DCO `Signed-off-by:` on every commit ([CONTRIBUTING.md](CONTRIBUTING.md)).
33
+
-[ ] DCO `Signed-off-by:` on every commit ([CONTRIBUTING.md](../CONTRIBUTING.md)).
34
34
-[ ] No credentials, business emails, or local filesystem paths.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+10-6Lines changed: 10 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Contributing to Blender Developer Tools
2
2
3
-
Thanks for helping improve this repository. This document describes how to set up locally, extend skills, rules, snippets, and the template, and submit changes.
3
+
Thanks for helping improve this repository. This document describes how to set up locally, extend skills, rules, snippets, templates, examples, and showcase pieces, and submit changes.
4
4
5
5
## Getting Started
6
6
@@ -20,7 +20,7 @@ Thanks for helping improve this repository. This document describes how to set u
20
20
21
21
## Repository Structure
22
22
23
-
This repo is a content collection (skills, rules, snippets, and one template) for Blender Python development. There is no runtime, no MCP server, and no test runner; CI validates frontmatter, syntax, and aggregate counts.
23
+
This repo is a content collection (skills, rules, snippets, templates, examples, and showcase pieces) for Blender Python development. There is no runtime and no MCP server. Headless checks run through `tests/smoke/run_example.py`; CI validates frontmatter, syntax, and aggregate counts.
24
24
25
25
```text
26
26
skills/
@@ -35,6 +35,10 @@ templates/
35
35
blender_manifest.toml
36
36
__init__.py
37
37
README.md
38
+
examples/
39
+
gallery.json
40
+
<example-name>/
41
+
README.md
38
42
showcase/
39
43
README.md
40
44
gallery.json
@@ -51,12 +55,12 @@ showcase/
51
55
52
56
## Adding a Skill
53
57
54
-
1. Add a **kebab-case** directory under `skills/`, e.g. `skills/procedural-materials/`.
58
+
1. Add a **kebab-case** directory under `skills/`, e.g. `skills/procedural-materials-and-shaders/`.
55
59
2. Create **`SKILL.md`** with YAML frontmatter:
56
60
57
61
```yaml
58
62
---
59
-
name: procedural-materials
63
+
name: procedural-materials-and-shaders
60
64
description: One-line description, under 200 chars.
1. Add a **`.mdc`** file under `rules/`, e.g. `rules/avoid-python-loops-on-vertices.mdc`.
74
+
1. Add a **`.mdc`** file under `rules/`, e.g. `rules/use-foreach-set-for-bulk-data.mdc`.
71
75
2. Start with YAML **frontmatter**:
72
76
73
77
```yaml
@@ -191,7 +195,7 @@ The drift-check workflow enforces these on every push and PR.
191
195
192
196
## Aggregate Counts
193
197
194
-
`README.md` declares aggregate counts (e.g. "16 skills, 9 rules, 3 templates, 27 snippets, 59 examples, and 1 showcase piece"). The `validate-counts` job in `.github/workflows/validate.yml` enforces these substrings against the filesystem on every push and PR. Showcase pieces are counted separately from examples. When you add or remove content, update the README counts in the same commit.
198
+
`README.md` declares aggregate counts (e.g. "16 skills, 9 rules, 3 templates, 27 snippets, 59 examples, and 26 showcase pieces"). The `validate-counts` job in `.github/workflows/validate.yml` enforces these substrings against the filesystem on every push and PR. Showcase pieces are counted separately from examples. When you add or remove content, update the README counts in the same commit.
Copy file name to clipboardExpand all lines: README.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,7 @@ The content is consumed by AI coding agents (Cursor, Claude Code, any MCP-capabl
47
47
|**Rules**| Guardrails for the most common AI mistakes: ops-in-loops, bmesh leaks, legacy `bl_info` only, prop assignments, deprecated context-copy override, per-element loops over bulk mesh data, import without scale check, export without evaluated geometry, mixed glTF/FBX axis RNA |
48
48
|**Templates**| A working Extensions Platform add-on starter, a headless batch script starter, and a GLB-in engine-ready asset pipeline |
49
49
|**Snippets**| 27 small standalone Python files demonstrating canonical patterns |
50
+
|**Examples**| Runnable headless scripts under [`examples/`](examples/). Each asserts an API contract and exits non-zero on failure. |
50
51
|**Showcase**| Budget-conformance props under [`showcase/`](showcase/). Not examples. Conventions: [`showcase/README.md`](showcase/README.md)|
Copy file name to clipboardExpand all lines: SECURITY.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ Please include:
15
15
16
16
## Scope
17
17
18
-
This repository ships Markdown skill files, MDC rule files, Python snippets, and two starter templates (a Blender extension add-on and a headless batch script). The primary security concerns are:
18
+
This repository ships Markdown skill files, MDC rule files, Python snippets, and three starter templates (a Blender extension add-on, a headless batch script, and a GLB-in engine-ready asset pipeline). The primary security concerns are:
19
19
20
20
-**Snippets or templates demonstrating insecure patterns** (executing arbitrary code from `.blend` files, loading remote scripts without validation, leaking filesystem paths into logs).
21
21
-**The extension-addon template declaring over-broad permissions** in `blender_manifest.toml` (e.g. `network`, `files`, `clipboard`, `camera`) without a documented justification.
0 commit comments