Add repository toolchain policy

This commit is contained in:
gamer147
2026-08-03 11:54:18 -04:00
parent 067a11440e
commit 21c1317b05
5 changed files with 113 additions and 8 deletions

18
.editorconfig Normal file
View File

@@ -0,0 +1,18 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.{c,cpp,cs,h,py,ps1,sh}]
indent_style = space
indent_size = 4
[*.{csproj,json,jsonl,props,targets,toml,tscn,tres,xml,yaml,yml}]
indent_style = space
indent_size = 2
[*.{bat,cmd}]
end_of_line = crlf

76
.gitattributes vendored
View File

@@ -1,5 +1,73 @@
docs/opcode-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol
docs/global-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol
docs/engine-ctx-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol
tools/age_opcodes_himegari.py whitespace=trailing-space,space-before-tab,cr-at-eol
* text=auto
.editorconfig text eol=lf
.gitattributes text eol=lf
.gdignore text eol=lf
.gitignore text eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
*.c text eol=lf
*.cfg text eol=lf
*.cs text eol=lf
*.csproj text eol=lf
*.config text eol=lf
*.cpp text eol=lf
*.gd text eol=lf
*.godot text eol=lf
*.h text eol=lf
*.json text eol=lf
*.jsonl text eol=lf
*.md text eol=lf
*.props text eol=lf
*.targets text eol=lf
*.ps1 text eol=lf
*.py text eol=lf
*.sh text eol=lf
*.sln text eol=lf
*.toml text eol=lf
*.tscn text eol=lf
*.tres text eol=lf
*.uid text eol=lf
*.xml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
*.7z binary
*.a binary
*.agf binary
*.avi binary
*.bin binary
*.bmp binary
*.cur binary
*.dll binary
*.dylib binary
*.exe binary
*.gif binary
*.ico binary
*.jpeg binary
*.jpg binary
*.lib binary
*.mp3 binary
*.mp4 binary
*.mpeg binary
*.mpg binary
*.ogg binary
*.otf binary
*.pdb binary
*.png binary
*.rar binary
*.so binary
*.ttf binary
*.wav binary
*.woff binary
*.woff2 binary
*.zip binary
# These generated files currently have CRLF committed by generator contract.
# Preserve their bytes while retaining textual diffs until the generators and
# their committed output are deliberately migrated together.
docs/opcode-reference.md -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol
docs/global-reference.md -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol
docs/engine-ctx-reference.md -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol
tools/age_opcodes_himegari.py -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol

View File

@@ -29,6 +29,9 @@ S:\Game Hacking\Eushully\Himegari\ ← workspace root (three siblings)
└── age-reimpl/ ← OUR WORK (everything we made lives here)
├── README.md navigation-only repository front door; canonical facts stay in docs/
├── global.json pins the validated .NET 8 SDK feature band
├── .editorconfig / .gitattributes UTF-8, indentation, text/EOL, and binary-file policy;
│ generator-owned CRLF references retain their committed bytes
├── run-godot.ps1 / run-godot.cmd tracked development launcher + Windows wrapper;
│ resolves Godot/game-root from parameters, environment,
│ PATH, and the conventional sibling install

View File

@@ -903,6 +903,15 @@ do not mix mechanical moves with semantic changes.
backup. Public distribution remains blocked on item 3; destructive cleanup and compaction remain blocked on
item 4 plus explicit target approval.
**Policy baseline (2026-08-03):** item 1 is complete. `global.json` pins the validated .NET 8.0.408 feature
band to stable patch releases; `.editorconfig` establishes UTF-8, final-newline, trailing-whitespace, and
indentation defaults; and `.gitattributes` classifies repository text, Windows command wrappers, and binary
assets. Generator-owned references that already commit CRLF are explicit byte-preserving exceptions with
textual diffs, so rebuilding them does not create whole-file normalization churn. No existing source or
project file was reformatted or renormalized. Both solution builds and the asset-independent core validation
gate remain green under the tracked policy. Item 2, a CI workflow calling that same core gate, is the next
safe slice.
**Not cleanup targets:** generated `build/` output, the two intentional solution files, historical
`docs/superpowers/` plans/specifications, and fidelity-specific complexity that is directly covered by the
native ABI. Reorganization is successful when ownership and reproduction become clearer, not when the raw
@@ -1249,9 +1258,9 @@ layer's rendering diverges from ADV; save layout.
---
## 8. Immediate next step
Continue step 5 of the **codebase consolidation** maintenance slice with the first non-destructive policy change:
add a repository `global.json`, `.editorconfig`, and complete text/line-ending attributes based on the validated
.NET 8/Python 3.11 toolchain. Do not mechanically reformat existing files or change warning/runtime behavior;
verify both solutions and the core validation driver under the tracked policy.
Continue step 5 of the **codebase consolidation** maintenance slice with an asset-independent CI workflow that
invokes `py -3.11 -X utf8 tools/validate.py --level core` on Windows using the tracked .NET SDK policy. Keep the
private game corpus and Godot runtime out of the hermetic CI job, preserve the validation driver's failure and
child-process semantics, and avoid introducing a second build/test command path.
Concrete playthrough blockers may still preempt this bounded maintenance work; the consolidation effort does
not replace Phase B gameplay validation or the open cross-platform gates.

7
global.json Normal file
View File

@@ -0,0 +1,7 @@
{
"sdk": {
"version": "8.0.408",
"rollForward": "latestPatch",
"allowPrerelease": false
}
}