Skip to content

Commit 7d08804

Browse files
chore: add gitattributes, CODEOWNERS, and GitHub templates
Normalize JSON/Markdown to LF and mark webp/blend as binary so gallery stills and future fixtures do not get text-eol noise. Issue and PR templates encode the live-run vs inspection evidence split and the release-owned fields. Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 7877078 commit 7d08804

6 files changed

Lines changed: 196 additions & 0 deletions

File tree

.gitattributes

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Line endings. JSON and Markdown stay LF so Windows checkouts
2+
# do not churn gallery.json, plugin.json, or skill files.
3+
*.json text eol=lf
4+
*.md text eol=lf
5+
6+
# Binary. Gallery stills and any future .blend fixtures.
7+
*.webp binary
8+
*.blend binary

.github/CODEOWNERS

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Enforced only when branch protection on `main` enables
2+
# "Require a pull request before merging" AND "Require review from Code Owners".
3+
# Without that setting this file documents ownership, it does not gate merges.
4+
5+
* @TMHSDigital
6+
7+
/.github/ @TMHSDigital
8+
/scripts/ @TMHSDigital
9+
/.cursor-plugin/ @TMHSDigital

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Bug report
2+
description: Something in a skill, rule, snippet, template, example, or CI is wrong
3+
labels: [bug]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for reporting a bug. For security issues, do not file a public issue — open a [Security Advisory](https://github.com/TMHSDigital/Blender-Developer-Tools/security/advisories/new) instead.
9+
10+
- type: dropdown
11+
id: area
12+
attributes:
13+
label: Area
14+
options:
15+
- Skill
16+
- Rule
17+
- Snippet
18+
- Template
19+
- Example
20+
- Gallery / docs
21+
- CI workflows
22+
- Plugin manifest
23+
- Other
24+
validations:
25+
required: true
26+
27+
- type: input
28+
id: affected
29+
attributes:
30+
label: Affected path
31+
description: Skill directory, example name, snippet filename, workflow, etc.
32+
placeholder: e.g. skills/vse-python/ or examples/vse-cut-list/
33+
validations:
34+
required: true
35+
36+
- type: dropdown
37+
id: blender
38+
attributes:
39+
label: Blender series
40+
options:
41+
- 5.2 LTS
42+
- 5.1
43+
- 4.5 LTS
44+
- Multiple / cross-version
45+
- Not Blender-runtime (docs/CI only)
46+
validations:
47+
required: true
48+
49+
- type: textarea
50+
id: reproduction
51+
attributes:
52+
label: Reproduction
53+
description: Minimal steps. Include the exact binary path and `blender --version` output if this is a runtime bug.
54+
placeholder: |
55+
1. blender --background --python examples/vse-cut-list/vse_cut_list.py -- --check-pixels
56+
2. Observe …
57+
3. Expected …
58+
validations:
59+
required: true
60+
61+
- type: textarea
62+
id: expected
63+
attributes:
64+
label: Expected
65+
validations:
66+
required: true
67+
68+
- type: textarea
69+
id: actual
70+
attributes:
71+
label: Actual
72+
description: Include the measured error / exit code. An assertion that cannot fail witnesses nothing.
73+
validations:
74+
required: true
75+
76+
- type: textarea
77+
id: logs
78+
attributes:
79+
label: Logs
80+
render: shell
81+
validations:
82+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security vulnerability
4+
url: https://github.com/TMHSDigital/Blender-Developer-Tools/security/advisories/new
5+
about: Report a security issue privately via GitHub Security Advisory. Do not open a public issue for vulnerabilities.
6+
- name: Roadmap / candidate pool
7+
url: https://github.com/TMHSDigital/Blender-Developer-Tools/blob/main/ROADMAP.md
8+
about: Check ROADMAP.md before requesting new skills, snippets, or examples. Shipped items are struck through there.

.github/ISSUE_TEMPLATE/content.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Content request
2+
description: Propose a new skill, rule, snippet, template, or example
3+
labels: [enhancement]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Skim [ROADMAP.md](https://github.com/TMHSDigital/Blender-Developer-Tools/blob/main/ROADMAP.md) first. Struck-through candidate-pool items already shipped.
9+
10+
- type: dropdown
11+
id: kind
12+
attributes:
13+
label: Kind
14+
options:
15+
- New skill
16+
- New rule
17+
- New snippet
18+
- New template
19+
- New example
20+
- Improvement to existing content
21+
- Other
22+
validations:
23+
required: true
24+
25+
- type: textarea
26+
id: contract
27+
attributes:
28+
label: API contract
29+
description: What should a headless script be able to assert? Name the RNA types / operators. If this is a version split, say which series diverge.
30+
validations:
31+
required: true
32+
33+
- type: textarea
34+
id: why
35+
attributes:
36+
label: Why it belongs here
37+
description: The AI mistake this catches, or the gap versus what the python_api notes already list.
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: witness
43+
attributes:
44+
label: Witness plan
45+
description: Cheap headless asserts, a .blend fixture, or not witnessable in `--background`. Do not propose a gallery render as the only proof.
46+
validations:
47+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
## Summary
2+
3+
<!-- One or two sentences on why, not what. -->
4+
5+
## Type
6+
7+
- [ ] `feat` — new skill / rule / snippet / template / example (minor bump)
8+
- [ ] `fix` — correction to existing content or a broken contract (patch bump)
9+
- [ ] `docs` / `chore` / `ci` / `refactor` — no release; `release.yml` still runs and should exit without a tag
10+
11+
Squash-merge subject is what the release workflow scans. Keep it conventional.
12+
13+
## Evidence
14+
15+
Label every claim.
16+
17+
- **live-run-proven:** exact binary path + the version that binary printed (`blender --version`). Headless harness only. Live MCP does not count.
18+
- **inspection-only:** read the skill / diff / RNA docs; no process ran.
19+
20+
`blender-smoke.yml` has no `push` trigger. Post-merge smoke evidence is the PR-head 5.2 + 4.5 jobs (state the versions from those logs).
21+
22+
## Release-owned fields — do not hand-edit
23+
24+
`VERSION`, `CHANGELOG.md`, CLAUDE.md `**Version:**`, ROADMAP.md `**Current:**`, `.cursor-plugin/plugin.json` `"version"`. The release pipeline rewrites those. Do not bump `standards-version` unless the fleet stamp actually moved.
25+
26+
## Checklist
27+
28+
- [ ] Explicit paths only (`git add` never `-A` / `.`). Leave unstaged Cursor-injected `CLAUDE.md` hunks.
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`.
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)).
34+
- [ ] No credentials, business emails, or local filesystem paths.
35+
36+
## Test plan
37+
38+
<!-- What you ran, on which Blender binary, exit codes. -->
39+
40+
## Linked issues
41+
42+
<!-- Closes #123 -->

0 commit comments

Comments
 (0)