fix: correctness pass on Blender skills, snippets, and docs#3
Merged
Conversation
Code bugs the AI serves to users: - operators: import Vector from mathutils (not bpy.types) in the offset example and column-normalize the basis so object scale no longer distorts the local-axis direction. - cross-version-property-delete: property_unset resets RNA props to default, it does not remove a custom ID property. Use del on all versions and drop the bogus version branch; note the property_unset distinction. - version-branch-skeleton: ID-property deletion is not version-dependent; clear_property now uses del unconditionally. EEVEE engine id stays as the genuine divergence example. - custom-properties: stop crediting property_unset for unbinding a type PointerProperty or removing an ID property; both are del on all versions. - shader-node-group: modernize ShaderNodeMixRGB to ShaderNodeMix with data_type='RGBA', wiring RGBA sockets by index to avoid the node's duplicate socket names. Doc drift: - README: drop the static version-0.2.0 shields badge that drifts every release; the dynamic github/v/release badge already covers it. - ROADMAP: v0.2.0 row -> Shipped, drop the per-row Current marker so the action-owned Current: prose line is the single source of truth. - SECURITY: Supported Versions -> 0.2.x; scope text -> two templates. - CONTRIBUTING: snippet length 5 to 50 (was 5 to 30); standards-version wording points at meta-repo STANDARDS_VERSION, not VERSION. - CLAUDE: relabel the 7 materials/drivers/migration snippets v0.2.1 -> v0.2.0 to match ROADMAP/CHANGELOG/README. Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Correctness pass across skills, snippets, and docs. No content added or removed, so aggregate counts are unchanged (validate-counts stays green).
Code bugs (what the AI serves users)
OBJECT_OT_offset_activecalledbpy.types.Vector(offset);Vectorlives inmathutils. Addedfrom mathutils import Vectorand useVector(offset). Also column-normalized the basis (matrix_world.to_3x3().normalized()) so object scale no longer distorts a local-axis direction.property_unset()resets a registered RNA prop to default; it does not remove a custom ID property. Dropped thebpy.app.versionbranch;del id_block[key]is version-stable on all versions. Header now documents the distinction so readers don't reintroduce it.clear_property()usedproperty_unsetas a "divergence" example, butdelworks on both 4.5 LTS and 5.x (not divergent). Nowdel obj[key]unconditionally;get_eevee_engine_id()remains the genuine divergence example.PointerPropertyand removing an ID property are version-stable viadel;property_unsetis explicitly called out as a different operation.ShaderNodeMixRGB→ShaderNodeMixwithdata_type='RGBA', consistent with the geometry-nodes-python skill. Verified against the ShaderNodeMix docs: the node shares socket names (Factor/A/B/Result) across every data type, so name lookup is ambiguous — wired the RGBA sockets by index (inputs[0]Factor,inputs[6]A,outputs[2]Result).Doc drift
version-0.2.0shields badge that drifts every release. The dynamicgithub/v/releasebadge already covers it (root-cause fix, not a re-hardcode).**Current**→Shippedand dropped the per-row marker, so the action-owned**Current:**prose line is the single source of truth. The**Current:**line itself was not touched.0.1.x→0.2.x; scope text "one ... template" → two templates.5 to 30→5 to 50(matches README/CLAUDE). Replaced hardcoded1.9.1standards-version markers with a pointer to the meta-repoSTANDARDS_VERSION, and fixed wording fromVERSIONtoSTANDARDS_VERSION(the two are decoupled).v0.2.1tov0.2.0to match ROADMAP/CHANGELOG/README. The**Version:**line was not touched.Flag for a separate meta-repo look
The
v0.2.0→v0.2.1mangling of historical snippet text in CLAUDE.md looks like therelease-doc-syncstep running a find/replace that caught a non-current version reference. Worth auditing the action so it only rewrites the current-version prose and leaves historical attributions alone.Out of scope (per request)
standards-versionmarkers in live files touched (left at 1.9.4); no.github/workflowschanges — owned by the separate fleet-onboarding op.**Version:**, ROADMAP.md**Current:**, CHANGELOG.md.Test plan
python -m py_compileon all three edited snippets passes.property_unset/ShaderNodeMixRGB/bpy.types.Vector/version-0.2.0references remain.