Add repository toolchain policy

This commit is contained in:
gamer147
2026-08-03 11:54:18 -04:00
parent 51452a1686
commit cfe6b01472
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 * text=auto
docs/global-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol .editorconfig text eol=lf
docs/engine-ctx-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol .gitattributes text eol=lf
tools/age_opcodes_himegari.py whitespace=trailing-space,space-before-tab,cr-at-eol .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 *.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) └── age-reimpl/ ← OUR WORK (everything we made lives here)
├── README.md navigation-only repository front door; canonical facts stay in docs/ ├── 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; ├── run-godot.ps1 / run-godot.cmd tracked development launcher + Windows wrapper;
│ resolves Godot/game-root from parameters, environment, │ resolves Godot/game-root from parameters, environment,
│ PATH, and the conventional sibling install │ 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 backup. Public distribution remains blocked on item 3; destructive cleanup and compaction remain blocked on
item 4 plus explicit target approval. 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 **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 `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 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 ## 8. Immediate next step
Continue step 5 of the **codebase consolidation** maintenance slice with the first non-destructive policy change: Continue step 5 of the **codebase consolidation** maintenance slice with an asset-independent CI workflow that
add a repository `global.json`, `.editorconfig`, and complete text/line-ending attributes based on the validated invokes `py -3.11 -X utf8 tools/validate.py --level core` on Windows using the tracked .NET SDK policy. Keep the
.NET 8/Python 3.11 toolchain. Do not mechanically reformat existing files or change warning/runtime behavior; private game corpus and Godot runtime out of the hermetic CI job, preserve the validation driver's failure and
verify both solutions and the core validation driver under the tracked policy. 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 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. 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
}
}