Repository navigation
Commit 4d23e70
fix: close the mechanical audit issues (#196)
* fix: state the current security support policy
The supported-versions table named 0.2.x while the repository is at 0.78.18,
so it claimed support for releases eleven minors behind and none of the ones
that exist.
Replace it with the policy the project can actually keep: latest release
only, no backports, no maintenance branches. The row points at VERSION rather
than naming a number, so it cannot drift again on the next release. Adds the
one-line reason there are no backports — this is content, not a runtime.
Closes #186
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* fix: stop the gallery calling showcase pieces examples
The gallery grid concatenates 51 examples and 26 showcase pieces, then
labelled all 77 with the example noun: the count chip read "77 examples",
every showcase card carried aria-label "<name> example detail page" and a
"View example" link, each showcase detail page titled itself "<name> —
Examples" and claimed "Rendered headless by the example itself", and the
landing page offered to "Browse all 51 examples in the gallery" for a page
holding 77 cards. The two categories are distinct everywhere else in the
repository; the site was the last place conflating them.
Derive the noun per entry from the `showcase` tag instead of hardcoding it
(`kind_noun`), and split the counts:
- count chip and its live-updating JS: "51 examples, 26 showcase pieces"
- card aria-label and card link: "example" or "showcase piece" per card
- showcase detail pages title as "— Showcase —" and credit "the showcase
piece itself"
- gallery title "Examples Gallery" -> "Examples and Showcase"; description
now says showcase pieces share the grid and carry the tag
- landing CTA names both counts
- search placeholder, chip toolbar, and empty-state text no longer say
"examples" for a grid holding both
- the generator's summary line prints the breakdown
Verified against the generated HTML, not the source JSON: 51 "example" and
26 "showcase piece" nouns on the index, correct titles on a showcase detail
page and an example detail page, no residual "Examples Gallery" string, and
dotted-path alt text still intact.
Closes #187
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* fix: label PRs that touch examples and showcase
label-sync.yml covered skills, rules, snippets, templates, docs, and .github
but not examples/ or showcase/ — the two directories that carry the bulk of
content work. A PR adding an example got no path label at all unless it also
touched a README, and showcase PRs were labelled `documentation` for their
README alone.
Add both branches in the same shape as the existing ones. The `examples` and
`showcase` labels have been created on the repository (green and purple);
every label this workflow can now apply — skills, rules, snippets, templates,
examples, showcase, documentation, ci — exists, so the `gh label create
--force` fallback in the apply step stays a fallback rather than the thing
that silently invents grey labels.
Closes #188
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* fix: carve out check-only examples from the render requirement
docs/new-example-prompt.md required every example to produce a deliberate
render and wire gallery metadata and assets, with no exception. Eight of the
59 examples ship no render, no gallery.json entry, and no hero asset — an
established, deliberate category the authoring prompt did not acknowledge, so
the prompt described a rule the repository does not follow. CLAUDE.md stated
it more strongly still: "their renders ship in the site gallery", of all 59.
State the exception in both, keyed to a criterion rather than a list of the
eight so it stays true as the set changes: an example is check-only when its
witness is a data or state fact that no scene redesign can make visible — a
datablock name, an RNA attribute's presence, a post-exit sidecar, a topology
count, export metadata — so the render would be identical whether the API
held or broke. The existing "redesign the scene until failure would be
visible" instruction is the test to attempt first; the exception is for
contracts that are invisible, not renders that are hard.
CLAUDE.md now says 51 of 59 ship a render, and records that a check-only
example wires only the plugin manifest entry, the smoke catalog row, and its
README.
Verified on disk: exactly eight examples have no gallery.json entry
(coincident-vert-weld, eval-mesh-datablock-name, exit-pre-sidecar,
gn-bundle-roundtrip, mesh-automasking-settings, ngon-triangulate,
unapplied-scale-gltf, vse-linear-modifiers); all eight have a
tests/smoke/catalog.json row, none takes --output, and each carries at least
one falsifier flag. Smoke coverage is unaffected.
Closes #146
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* fix: describe how the content is actually consumed
The overview claimed the content is consumed by "any MCP-capable client".
There is no MCP server in this repository and never has been: Cursor and
Claude Code read the files directly from a checkout. The line promised a
capability that does not exist, which is a defect rather than a wording
preference — a reader evaluating the project would go looking for a server
to register.
Describe the real mechanism instead: Cursor applies rules/*.mdc by scope
glob and takes skills by name; Claude Code reads skills/ and rules/ from the
workspace or a referenced checkout; any agent that can read workspace files
works the same way.
`pages.yml` also path-filters on a `mcp-tools.json` that has never existed in
this repository's history — it comes from the shared fleet site builder,
which supports tool repos that do ship an MCP server. Filed separately rather
than edited here.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* docs: say where to get Blender in the quick start
The quick start hands the reader a `blender --background --python ...`
command without ever saying where `blender` comes from or which versions the
repository supports. The supported-versions table is further down the page
and links nowhere.
Add one bullet above the run command: the LTS download link, which of 5.2
and 4.5 is primary, and the macOS app-bundle path that trips people up when
`blender` is not on PATH.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* docs: introduce falsifiers in the README
The falsifier is this repository's central convention — it is what makes a
green example run evidence rather than decoration — and it appeared only in
CLAUDE.md, CONTRIBUTING.md, and the PR template. A reader evaluating the
project from the README never met the word, so the examples read as scripts
that happen to print OK.
Add a short section above Showcase: what a falsifier is, that it changes
input so a real assertion fails rather than skipping the check, that all 59
examples carry one, and the concrete bmesh-gear case (`--no-extrude` breaks
the closed-form topology match and exits 3). Names the three flags that are
commonly mistaken for falsifiers and links to CONTRIBUTING.md for the
exit-code model.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
---------
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 6440e83 commit 4d23e70
86 files changed
Lines changed: 386 additions & 274 deletions
File tree
- .github/workflows
- docs
- gallery
- anvil
- armature-bend
- attribute-domain-shear
- bake-normal-high-to-low
- bmesh-gear
- campfire
- car-mirror-symmetry
- cart
- chopping-block
- collision-hull-proxy
- color-attribute-wheel
- compositor-glare
- cross-version-property-delete
- curve-bevel-arc
- custom-normals-shade
- damped-track-aim
- degenerate-bevel-weld
- depsgraph-export
- driver-wave
- export-preset-axis
- fence-kit
- gltf-export-roundtrip
- gltf-skin-roundtrip
- gn-instance-grid
- gn-modifier-inputs
- gn-sdf-remesh
- gn-socket-rename
- gn-zone-iterate
- gp-lineart-contour
- grease-pencil-rosette
- grindstone
- hand-pump
- hay-bale
- hitching-post
- image-pixels-testcard
- iron-cauldron
- light-link-studio
- lightmap-uv-channel
- lod-decimate-chain
- market-stall
- mesh-hygiene-audit
- modular-kit-snap
- parent-inverse-orrery
- park-bench
- png-exr-alpha
- prop-origin-transform
- shader-node-group
- shape-key-blend
- shipping-crate
- signpost
- sky-texture-sun-elevation
- soccer-ball-goldberg
- socket-attach-points
- stone-well
- street-lantern
- swatch-grid
- tavern-stool
- temp-override-join
- terrain-scatter
- text-version-stamp
- treasure-chest
- triangulate-tangents
- turntable
- usd-export-evaluation-mode
- uv-layer-grid
- vertex-color-ao
- vertex-weight-limit
- vse-cut-list
- vse-gamma-cross
- wall-torch
- watchtower
- water-trough
- wave-displace
- wheelbarrow
- wooden-barrel
- wooden-bucket
- wooden-ladder
- examples
- scripts
- site
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
51 | 59 | | |
52 | 60 | | |
53 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
109 | | - | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
110 | 120 | | |
111 | 121 | | |
112 | 122 | | |
113 | 123 | | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
114 | 127 | | |
115 | 128 | | |
116 | 129 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
| |||
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
75 | 104 | | |
76 | 105 | | |
77 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
29 | 34 | | |
30 | 35 | | |
31 | | - | |
32 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
33 | 42 | | |
34 | 43 | | |
35 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
| 255 | + | |
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
| 255 | + | |
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
| |||
0 commit comments