Skip to content

Commit 6d6477c

Browse files
authored
Initial commit
0 parents  commit 6d6477c

42 files changed

Lines changed: 75917 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.annotations/annotations.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Annotations
2+
3+
<!--
4+
WHY: This repository uses the Structural Explainability Annotation Standard
5+
to document decisions, constraints, and alternatives directly alongside
6+
code and configuration.
7+
-->
8+
9+
This repository uses the annotation standard defined at:
10+
<https://github.com/structural-explainability/.github/blob/main/ANNOTATIONS.md>

‎.editorconfig‎

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
# ============================================================
2+
# .editorconfig (ALL-REPOS)
3+
# ============================================================
4+
# Updated: 2026-06-27
5+
#
6+
# REQ: All professional GitHub project repositories MUST include .editorconfig.
7+
# WHY: Establish a cross-editor baseline so diffs stay clean and formatting
8+
# is consistent across editors and IDEs.
9+
# ALT: Repository may omit .editorconfig ONLY if formatting is enforced
10+
# equivalently by CI and formatter tooling.
11+
# CUSTOM: Adjust indent_size defaults only if organizational standards change;
12+
# keep stable across projects.
13+
# EditorConfig: https://editorconfig.org
14+
15+
root = true
16+
17+
18+
# === Core defaults ===
19+
20+
[*]
21+
# WHY: Normalize line endings and encoding across Windows, macOS, and Linux.
22+
charset = utf-8
23+
end_of_line = lf
24+
25+
# WHY: Default to 2 spaces for configs and markup; language-specific overrides follow.
26+
indent_size = 2
27+
indent_style = space
28+
29+
# WHY: Newline at EOF avoids noisy diffs and tool warnings.
30+
insert_final_newline = true
31+
32+
# WHY: Remove accidental whitespace noise in diffs.
33+
trim_trailing_whitespace = true
34+
35+
36+
# === Named root and metadata files ===
37+
38+
[CITATION.cff]
39+
# WHY: Citation tooling expects stable YAML formatting.
40+
indent_size = 2
41+
indent_style = space
42+
43+
[CODEOWNERS]
44+
# WHY: CODEOWNERS is a structured text file; keep formatting simple and stable.
45+
indent_size = 2
46+
indent_style = space
47+
48+
[LICENSE]
49+
# WHY: License text should remain plain, stable, and editor-neutral.
50+
indent_size = 2
51+
indent_style = space
52+
53+
54+
# === Build systems ===
55+
56+
[Makefile]
57+
# WHY: Makefiles require tabs.
58+
indent_style = tab
59+
60+
[*.mk]
61+
# WHY: Makefile includes require tabs.
62+
indent_style = tab
63+
64+
65+
# === Markup and documentation ===
66+
67+
[*.md]
68+
# WHY: Keep Markdown clean; use explicit <br> for hard line breaks.
69+
indent_size = 2
70+
trim_trailing_whitespace = true
71+
72+
[*.qmd]
73+
# WHY: Quarto Markdown follows Markdown-style formatting.
74+
indent_size = 2
75+
indent_style = space
76+
77+
[*.rst]
78+
# WHY: reStructuredText documentation benefits from stable 2-space indentation.
79+
indent_size = 2
80+
indent_style = space
81+
82+
[*.{bib,cls,sty,tex}]
83+
# WHY: LaTeX and BibTeX convention is 2 spaces.
84+
indent_size = 2
85+
indent_style = space
86+
87+
[*.{css,html,xml}]
88+
# WHY: Web and XML markup convention is 2 spaces.
89+
indent_size = 2
90+
indent_style = space
91+
92+
93+
# === Configuration and structured text ===
94+
95+
[*.env]
96+
# WHY: Environment templates should remain simple line-oriented text.
97+
indent_size = 2
98+
indent_style = space
99+
100+
[*.{cfg,ini}]
101+
# WHY: INI-style configuration convention is 2 spaces.
102+
indent_size = 2
103+
indent_style = space
104+
105+
[*.{json,jsonc,jsonl,ndjson}]
106+
# WHY: JSON tooling typically expects 2 spaces.
107+
indent_size = 2
108+
indent_style = space
109+
110+
[*.toml]
111+
# WHY: TOML often follows 4-space indentation in many projects.
112+
indent_size = 4
113+
indent_style = space
114+
115+
[*.{yaml,yml}]
116+
# WHY: YAML convention is 2 spaces.
117+
indent_size = 2
118+
indent_style = space
119+
120+
121+
# === Programming languages and scripts ===
122+
123+
[*.bat]
124+
# WHY: Windows batch files commonly use tabs or editor defaults; keep simple.
125+
indent_size = 2
126+
indent_style = space
127+
128+
[*.{bash,sh}]
129+
# WHY: Shell script convention is 2 spaces.
130+
indent_size = 2
131+
indent_style = space
132+
133+
[*.{c,cpp,cs,go,h,hpp,java,rs}]
134+
# WHY: Many C-family and systems languages commonly use 4 spaces.
135+
indent_size = 4
136+
indent_style = space
137+
138+
[*.jl]
139+
# WHY: Julia convention commonly uses 4 spaces.
140+
indent_size = 4
141+
indent_style = space
142+
143+
[*.{js,ts}]
144+
# WHY: JS/TS ecosystem commonly uses 2 spaces.
145+
indent_size = 2
146+
indent_style = space
147+
148+
[*.mojo]
149+
# WHY: Mojo uses Python-like syntax and commonly follows 4-space indentation.
150+
indent_size = 4
151+
indent_style = space
152+
153+
[*.ps1]
154+
# WHY: PowerShell convention is 4 spaces.
155+
indent_size = 4
156+
indent_style = space
157+
158+
[*.{py,pyi}]
159+
# WHY: Python convention is 4 spaces.
160+
indent_size = 4
161+
indent_style = space
162+
163+
[*.{r,R}]
164+
# WHY: R convention commonly uses 2 spaces.
165+
indent_size = 2
166+
indent_style = space
167+
168+
[*.sql]
169+
# WHY: SQL formatting varies, but 2 spaces is a stable shared baseline.
170+
indent_size = 2
171+
indent_style = space
172+
173+
174+
# === Formal, math, and proof languages ===
175+
176+
[*.lean]
177+
# WHY: Lean 4 convention is 2 spaces; matches Mathlib and stdlib style.
178+
indent_size = 2
179+
indent_style = space
180+
181+
182+
# === Notebooks ===
183+
184+
[*.ipynb]
185+
# WHY: Jupyter notebooks are JSON documents; keep embedded formatting stable.
186+
indent_size = 2
187+
indent_style = space
188+
189+
190+
# === Text and tabular data ===
191+
192+
[*.{csv,dat,psv,tsv,txt}]
193+
# WHY: Text and tabular data should remain simple line-oriented text.
194+
indent_size = 2
195+
indent_style = space

‎.gitattributes‎

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# ============================================================
2+
# .gitattributes (ALL-REPOS)
3+
# ============================================================
4+
# Updated: 2026-06-27
5+
#
6+
# REQ: All professional GitHub repositories SHOULD include .gitattributes.
7+
# WHY: Keep line endings, diffs, and file classification consistent across
8+
# Windows, macOS, Linux, GitHub Actions, and environments.
9+
# CUSTOM: Add rules when new shared file types are introduced.
10+
# Git attributes: https://git-scm.com/docs/gitattributes
11+
12+
13+
# === Core defaults ===
14+
15+
# WHY: Auto-detect text files and normalize text
16+
# unless a later rule is more specific.
17+
* text=auto eol=lf
18+
19+
20+
# === Named root and metadata files ===
21+
22+
# WHY: Important extensionless repo files are text and should use LF.
23+
CODEOWNERS text eol=lf
24+
LICENSE text eol=lf
25+
26+
27+
# === Operating-system files ===
28+
29+
# WHY: OS metadata files are binary/noisy and should not be normalized.
30+
.DS_Store binary
31+
Thumbs.db binary
32+
desktop.ini binary
33+
34+
35+
# === Markup and documentation ===
36+
37+
# WHY: Documentation, web, and math markup use LF for stable cross-platform diffs.
38+
*.bib text eol=lf
39+
*.cls text eol=lf
40+
*.css text eol=lf
41+
*.html text eol=lf
42+
*.md text eol=lf
43+
*.qmd text eol=lf
44+
*.rst text eol=lf
45+
*.sty text eol=lf
46+
*.tex text eol=lf
47+
*.xml text eol=lf
48+
49+
50+
# === Configuration and structured text ===
51+
52+
# WHY: Config and structured text files should produce stable diffs.
53+
*.cfg text eol=lf
54+
*.env text eol=lf
55+
*.ini text eol=lf
56+
*.json text eol=lf
57+
*.jsonc text eol=lf
58+
*.jsonl text eol=lf
59+
*.ndjson text eol=lf
60+
*.toml text eol=lf
61+
*.txt text eol=lf
62+
*.yaml text eol=lf
63+
*.yml text eol=lf
64+
65+
66+
# === Programming languages and scripts ===
67+
68+
# WHY: Windows specific script types (.bat, .cmd)
69+
# are covered under the general LF text policy.
70+
71+
# WHY: Source and script files use LF for CI, shells, containers, and tooling.
72+
*.c text eol=lf
73+
*.cpp text eol=lf
74+
*.cs text eol=lf
75+
*.go text eol=lf
76+
*.h text eol=lf
77+
*.hpp text eol=lf
78+
*.java text eol=lf
79+
*.jl text eol=lf
80+
*.js text eol=lf
81+
*.mojo text eol=lf
82+
*.ps1 text eol=lf
83+
*.py text eol=lf
84+
*.r text eol=lf
85+
*.R text eol=lf
86+
*.rs text eol=lf
87+
*.sh text eol=lf
88+
*.sql text eol=lf
89+
*.ts text eol=lf
90+
91+
92+
# === Formal, math, and proof languages ===
93+
94+
# WHY: Lean source files are text; Lean build artifacts are binary.
95+
*.ilean binary
96+
*.lean text eol=lf
97+
*.olean binary
98+
*.trace binary
99+
100+
# WHY: Lake build output should not be normalized if accidentally tracked.
101+
.lake/** binary
102+
103+
104+
# === Notebooks ===
105+
106+
# WHY: Jupyter notebooks can contain Python, R, Julia, and other kernels.
107+
*.ipynb text eol=lf
108+
109+
110+
# === Text and tabular data ===
111+
112+
# WHY: Small text data files benefit from readable diffs.
113+
*.csv text eol=lf
114+
*.dat text eol=lf
115+
*.psv text eol=lf
116+
*.tsv text eol=lf
117+
118+
119+
# === Databases ===
120+
121+
# WHY: Database files are binary; text diffs are not meaningful.
122+
*.db binary
123+
*.duckdb binary
124+
*.sqlite binary
125+
*.sqlite3 binary
126+
127+
128+
# === Columnar and analytical data ===
129+
130+
# WHY: Columnar/analytical formats are binary; text diffs are not meaningful.
131+
*.arrow binary
132+
*.avro binary
133+
*.feather binary
134+
*.orc binary
135+
*.parquet binary
136+
137+
138+
# === Office, BI, PDF, and compressed artifacts ===
139+
140+
# WHY: Office, BI, PDF, and archive files are binary.
141+
*.7z binary
142+
*.bz2 binary
143+
*.docx binary
144+
*.gz binary
145+
*.pbix binary
146+
*.pbit binary
147+
*.pdf binary
148+
*.pptx binary
149+
*.rar binary
150+
*.tar binary
151+
*.tgz binary
152+
*.xls binary
153+
*.xlsm binary
154+
*.xlsx binary
155+
*.xz binary
156+
*.zip binary
157+
158+
159+
# === Logs and generated runtime output ===
160+
161+
# WHY: Logs are generated runtime evidence; avoid normalization churn.
162+
*.log binary
163+
project.log binary
164+
165+
166+
# === GitHub metadata and UI ===
167+
168+
# WHY: Exclude documentation and tests from GitHub language statistics.
169+
docs/** linguist-documentation
170+
tests/** linguist-documentation

‎.github/.yamllint.yml‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# ============================================================
2+
# .github/.yamllint.yml (Keep YAML files clean and consistent)
3+
# ============================================================
4+
# Updated: 2026-04-13
5+
6+
# WHY: Enforce YAML correctness (.github/.yamllint.yml) without arbitrary style constraints.
7+
# OBS: Default yamllint rules conflict with GitHub Actions YAML.
8+
# Line length, document start, truthy, and comment spacing are intentionally disabled.
9+
10+
extends: default
11+
12+
rules:
13+
line-length: disable
14+
document-start: disable
15+
truthy: disable
16+
comments: disable

0 commit comments

Comments
 (0)