init
This commit is contained in:
68
.config/GetStructDir.ps1
Normal file
68
.config/GetStructDir.ps1
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
# Simple helper script to get structDir from project config.json
|
||||||
|
# Reads config.json from .config folder in project root
|
||||||
|
|
||||||
|
param(
|
||||||
|
[string]$ProjectRoot
|
||||||
|
)
|
||||||
|
|
||||||
|
Set-StrictMode -Version Latest
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
|
if ([string]::IsNullOrWhiteSpace($ProjectRoot)) {
|
||||||
|
# Try to determine project root from script location
|
||||||
|
if ($PSScriptRoot) {
|
||||||
|
$ProjectRoot = Split-Path -Parent $PSScriptRoot
|
||||||
|
}
|
||||||
|
elseif ($MyInvocation.MyCommand.Path) {
|
||||||
|
$ProjectRoot = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Error "Unable to determine project root. Please provide -ProjectRoot parameter."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$configPath = Join-Path -Path $ProjectRoot -ChildPath '.config\config.json'
|
||||||
|
|
||||||
|
if (-not (Test-Path -LiteralPath $configPath -PathType Leaf)) {
|
||||||
|
Write-Error "config.json not found at: $configPath"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$config = Get-Content -LiteralPath $configPath -Raw -ErrorAction Stop | ConvertFrom-Json
|
||||||
|
|
||||||
|
if ($config.PSObject.Properties.Name -contains 'structDir') {
|
||||||
|
$structDir = $config.structDir
|
||||||
|
if ($null -ne $structDir -and ($structDir -isnot [string] -or $structDir.Trim().Length -gt 0)) {
|
||||||
|
# If it's an absolute path, resolve it
|
||||||
|
if ([System.IO.Path]::IsPathRooted($structDir)) {
|
||||||
|
$resolved = Resolve-Path -LiteralPath $structDir -ErrorAction SilentlyContinue
|
||||||
|
if ($null -ne $resolved) {
|
||||||
|
Write-Output $resolved.Path
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
Write-Output $structDir
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
# Relative path - resolve relative to config location
|
||||||
|
$candidate = Join-Path -Path (Split-Path -Parent $configPath) -ChildPath $structDir
|
||||||
|
$resolvedCandidate = Resolve-Path -LiteralPath $candidate -ErrorAction SilentlyContinue
|
||||||
|
if ($null -ne $resolvedCandidate) {
|
||||||
|
Write-Output $resolvedCandidate.Path
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
Write-Output $candidate
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Default: return the directory containing config.json (project root)
|
||||||
|
Write-Output $ProjectRoot
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Error "Failed to read or parse config.json: $($_.Exception.Message)"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
7
.config/config.json
Normal file
7
.config/config.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"dailyFormat": "YYYY-MM-DD",
|
||||||
|
"structDir": "R:\\Creative\\artsy\\maya\\0 ProjectStructure",
|
||||||
|
"zipper": "7z",
|
||||||
|
"compression": 0,
|
||||||
|
"Max7zInst": 0
|
||||||
|
}
|
||||||
3
.cursorindexingignore
Normal file
3
.cursorindexingignore
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
# Don't index SpecStory auto-save files, but allow explicit context inclusion via @ references
|
||||||
|
.specstory/**
|
||||||
92
.gitattributes
vendored
Normal file
92
.gitattributes
vendored
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# Git LFS attributes configuration
|
||||||
|
# All listed file types will be tracked by Git LFS
|
||||||
|
|
||||||
|
# Video files
|
||||||
|
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mkv filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mov filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.MOV filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Image files
|
||||||
|
*.bmp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gif filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.hdr filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tif filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tiff filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.webp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# 3D/CG files
|
||||||
|
*.3ds filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.abc filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.blend1 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.blend2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bvh filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bvh.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.c4d filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.dae filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.fbxkey filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.max filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obj filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.usd filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.vdb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bphys filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bobj filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bvel filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bpointcache filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.blob filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Flip Fluids cache files
|
||||||
|
*.data filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Substance files
|
||||||
|
*.sbs filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.sbsar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.spp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Audio files
|
||||||
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Archive/Compression files
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Documents
|
||||||
|
*.docx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.eps filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Adobe files
|
||||||
|
*.aegraphic filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.aep filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.prel filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.prin filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.prmf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.prproj filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ai filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Data files
|
||||||
|
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.hdf5 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Other
|
||||||
|
*.uni filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdn filter=lfs diff=lfs merge=lfs -text
|
||||||
124
.gitignore
vendored
Normal file
124
.gitignore
vendored
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
# Blender Studio Git Management - .gitignore
|
||||||
|
|
||||||
|
# Blender auto-save files
|
||||||
|
*.blend1
|
||||||
|
*.blend2
|
||||||
|
*.blend3
|
||||||
|
*.blend4
|
||||||
|
*.blend5
|
||||||
|
*.blend6
|
||||||
|
*.blend7
|
||||||
|
*.blend8
|
||||||
|
*.blend9
|
||||||
|
*.blend10
|
||||||
|
*.blend11
|
||||||
|
*.blend12
|
||||||
|
*.blend13
|
||||||
|
*.blend14
|
||||||
|
*.blend15
|
||||||
|
*.blend16
|
||||||
|
*.blend17
|
||||||
|
*.blend18
|
||||||
|
*.blend19
|
||||||
|
*.blend20
|
||||||
|
*.blend21
|
||||||
|
*.blend22
|
||||||
|
*.blend23
|
||||||
|
*.blend24
|
||||||
|
*.blend25
|
||||||
|
*.blend26
|
||||||
|
*.blend27
|
||||||
|
*.blend28
|
||||||
|
*.blend29
|
||||||
|
*.blend30
|
||||||
|
*.blend31
|
||||||
|
*.blend32
|
||||||
|
|
||||||
|
# Blender cache and temporary files
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
*.tmp
|
||||||
|
*.temp
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
|
desktop.ini
|
||||||
|
|
||||||
|
# Editor files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Large media files (uncomment if you want to exclude rendered outputs)
|
||||||
|
# *.mp4
|
||||||
|
# *.avi
|
||||||
|
# *.mov
|
||||||
|
# *.png
|
||||||
|
# *.jpg
|
||||||
|
# *.jpeg
|
||||||
|
# *.exr
|
||||||
|
# *.hdr
|
||||||
|
# *.tiff
|
||||||
|
# *.tga
|
||||||
|
|
||||||
|
# Audio files (uncomment if excluding)
|
||||||
|
# *.wav
|
||||||
|
# *.mp3
|
||||||
|
# *.aac
|
||||||
|
# *.ogg
|
||||||
|
|
||||||
|
# Log files
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Python cache
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
*.pyo
|
||||||
|
*.pyd
|
||||||
|
.Python
|
||||||
|
|
||||||
|
# Node modules (if using any web tools)
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Environment files
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
# Backup files
|
||||||
|
*.bak
|
||||||
|
*.backup
|
||||||
|
*.old
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
temp/
|
||||||
|
tmp/
|
||||||
|
cache/
|
||||||
|
|
||||||
|
Renders/**
|
||||||
|
!Renders/_zipped/
|
||||||
|
!Renders/_zipped/**
|
||||||
|
!Renders/**/
|
||||||
|
!Renders/**/*.bat
|
||||||
|
!Renders/**/*.log
|
||||||
|
seq/
|
||||||
|
|
||||||
|
# Premiere
|
||||||
|
*.prlock
|
||||||
|
Adobe Premiere Pro Video Previews/
|
||||||
|
Adobe Premiere Pro Audio Previews/
|
||||||
|
Adobe Premiere Pro (Beta) Video Previews/
|
||||||
|
Adobe Premiere Pro (Beta) Audio Previews/
|
||||||
|
|
||||||
|
Pr/RnR/
|
||||||
126
.specstory/.gitignore
vendored
Normal file
126
.specstory/.gitignore
vendored
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
# Blender Studio Git Management - .gitignore
|
||||||
|
|
||||||
|
# Blender auto-save files
|
||||||
|
*.blend1
|
||||||
|
*.blend2
|
||||||
|
*.blend3
|
||||||
|
*.blend4
|
||||||
|
*.blend5
|
||||||
|
*.blend6
|
||||||
|
*.blend7
|
||||||
|
*.blend8
|
||||||
|
*.blend9
|
||||||
|
*.blend10
|
||||||
|
*.blend11
|
||||||
|
*.blend12
|
||||||
|
*.blend13
|
||||||
|
*.blend14
|
||||||
|
*.blend15
|
||||||
|
*.blend16
|
||||||
|
*.blend17
|
||||||
|
*.blend18
|
||||||
|
*.blend19
|
||||||
|
*.blend20
|
||||||
|
*.blend21
|
||||||
|
*.blend22
|
||||||
|
*.blend23
|
||||||
|
*.blend24
|
||||||
|
*.blend25
|
||||||
|
*.blend26
|
||||||
|
*.blend27
|
||||||
|
*.blend28
|
||||||
|
*.blend29
|
||||||
|
*.blend30
|
||||||
|
*.blend31
|
||||||
|
*.blend32
|
||||||
|
|
||||||
|
# Blender cache and temporary files
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
*.tmp
|
||||||
|
*.temp
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
|
desktop.ini
|
||||||
|
|
||||||
|
# Editor files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Large media files (uncomment if you want to exclude rendered outputs)
|
||||||
|
# *.mp4
|
||||||
|
# *.avi
|
||||||
|
# *.mov
|
||||||
|
# *.png
|
||||||
|
# *.jpg
|
||||||
|
# *.jpeg
|
||||||
|
# *.exr
|
||||||
|
# *.hdr
|
||||||
|
# *.tiff
|
||||||
|
# *.tga
|
||||||
|
|
||||||
|
# Audio files (uncomment if excluding)
|
||||||
|
# *.wav
|
||||||
|
# *.mp3
|
||||||
|
# *.aac
|
||||||
|
# *.ogg
|
||||||
|
|
||||||
|
# Log files
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Python cache
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
*.pyo
|
||||||
|
*.pyd
|
||||||
|
.Python
|
||||||
|
|
||||||
|
# Node modules (if using any web tools)
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Environment files
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
# Backup files
|
||||||
|
*.bak
|
||||||
|
*.backup
|
||||||
|
*.old
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
temp/
|
||||||
|
tmp/
|
||||||
|
cache/
|
||||||
|
|
||||||
|
Renders/**
|
||||||
|
!Renders/_zipped/
|
||||||
|
!Renders/_zipped/**
|
||||||
|
!Renders/**/
|
||||||
|
!Renders/**/*.bat
|
||||||
|
!Renders/**/*.log
|
||||||
|
seq/
|
||||||
|
|
||||||
|
# Premiere
|
||||||
|
*.prlock
|
||||||
|
Adobe Premiere Pro Video Previews/
|
||||||
|
Adobe Premiere Pro Audio Previews/
|
||||||
|
Adobe Premiere Pro (Beta) Video Previews/
|
||||||
|
Adobe Premiere Pro (Beta) Audio Previews/
|
||||||
|
|
||||||
|
Pr/RnR/
|
||||||
|
# SpecStory explanation file
|
||||||
|
/.what-is-this.md
|
||||||
6
.specstory/.project.json
Normal file
6
.specstory/.project.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"workspace_id": "21fd-4fae-b376-ff95",
|
||||||
|
"workspace_id_at": "2025-12-17T07:33:20.399Z",
|
||||||
|
"project_name": "2025-12-17 Little Reindeer",
|
||||||
|
"cloud_sync": false
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user