Skip to content

Commit 9bf4f1a

Browse files
authored
fix: correct drifted inventory counts and contributor docs
Inventory counts, contributor paths, and the smoke-catalog instructions had drifted from the tree.
1 parent d3b45ad commit 9bf4f1a

6 files changed

Lines changed: 19 additions & 14 deletions

File tree

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ Label every claim.
2727

2828
- [ ] Explicit paths only (`git add` never `-A` / `.`). Leave unstaged Cursor-injected `CLAUDE.md` hunks.
2929
- [ ] 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`.
3232
- [ ] 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)).
3434
- [ ] No credentials, business emails, or local filesystem paths.
3535

3636
## Test plan

‎AGENTS.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,11 @@ way, and a one-paragraph rationale. 30 to 80 lines is the right size.
151151

152152
- `validate.yml` runs file structure checks plus a `validate-counts` job that
153153
asserts the README aggregate counts (skills, rules, templates, snippets,
154-
and examples) match filesystem reality. The counts language in `README.md`
154+
examples, and showcase pieces) match filesystem reality. The counts language in `README.md`
155155
is load-bearing: the job greps for it.
156156
- `validate.yml` also runs a `validate-manifest` job that checks
157157
`.cursor-plugin/plugin.json` against reality: every listed path must exist,
158-
every skill, rule, snippet, template, and example on disk must be listed,
158+
every skill, rule, snippet, template, example, and showcase piece on disk must be listed,
159159
and the manifest `version` must equal `VERSION`. The release pipeline owns
160160
the manifest `version` line (see `release.yml` below) — never hand-edit it.
161161
- `blender-smoke.yml` executes every shipped example (check-only, no render)

‎CLAUDE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ their renders ship in the site gallery at `docs/gallery/`. `examples/gallery.jso
109109
gallery's source of truth. When authoring a new one, copy the anatomy of
110110
`examples/bmesh-gear/` (script structure, README shape, dark-studio render recipe) and
111111
wire all of: gallery.json entry, `.cursor-plugin/plugin.json` examples array (CI-gated),
112-
a `blender-smoke.yml` step, a README gallery row, hero webp (1280×720) in
112+
a `tests/smoke/catalog.json` row, a README gallery row, hero webp (1280×720) in
113113
`docs/gallery/assets/` + preview webp (1200×675), then run `python scripts/build_gallery.py`.
114114
Renders must conform to the gallery look spec at `docs/VISUAL-STYLE.md`.
115115
Render paths gate framing through the shared helper `examples/gallery_framing.py` —

‎CONTRIBUTING.md‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Contributing to Blender Developer Tools
22

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.
44

55
## Getting Started
66

@@ -20,7 +20,7 @@ Thanks for helping improve this repository. This document describes how to set u
2020

2121
## Repository Structure
2222

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.
2424

2525
```text
2626
skills/
@@ -35,6 +35,10 @@ templates/
3535
blender_manifest.toml
3636
__init__.py
3737
README.md
38+
examples/
39+
gallery.json
40+
<example-name>/
41+
README.md
3842
showcase/
3943
README.md
4044
gallery.json
@@ -51,12 +55,12 @@ showcase/
5155

5256
## Adding a Skill
5357

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/`.
5559
2. Create **`SKILL.md`** with YAML frontmatter:
5660

5761
```yaml
5862
---
59-
name: procedural-materials
63+
name: procedural-materials-and-shaders
6064
description: One-line description, under 200 chars.
6165
standards-version: <current meta-repo STANDARDS_VERSION>
6266
---
@@ -67,7 +71,7 @@ showcase/
6771

6872
## Adding a Rule
6973

70-
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`.
7175
2. Start with YAML **frontmatter**:
7276

7377
```yaml
@@ -191,7 +195,7 @@ The drift-check workflow enforces these on every push and PR.
191195

192196
## Aggregate Counts
193197

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.
195199

196200
## Pull Request Process
197201

‎README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ The content is consumed by AI coding agents (Cursor, Claude Code, any MCP-capabl
4747
| **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 |
4848
| **Templates** | A working Extensions Platform add-on starter, a headless batch script starter, and a GLB-in engine-ready asset pipeline |
4949
| **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. |
5051
| **Showcase** | Budget-conformance props under [`showcase/`](showcase/). Not examples. Conventions: [`showcase/README.md`](showcase/README.md) |
5152

5253
## Quick start
@@ -777,7 +778,7 @@ portable path is `radius`.
777778
</details>
778779

779780
<details>
780-
<summary><strong>Game asset pipeline</strong> — 21 examples</summary>
781+
<summary><strong>Game asset pipeline</strong> — 22 examples</summary>
781782

782783
<table>
783784
<tr>

‎SECURITY.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Please include:
1515

1616
## Scope
1717

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:
1919

2020
- **Snippets or templates demonstrating insecure patterns** (executing arbitrary code from `.blend` files, loading remote scripts without validation, leaking filesystem paths into logs).
2121
- **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

Comments
 (0)