Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
171 changes: 171 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
# SPDX-License-Identifier: MIT AND Palimpsest-0.8
# SPDX-FileCopyrightText: 2024-2025 The polysafe-gitfixer Contributors
#
# Git attributes for polysafe-gitfixer
# Ensures consistent line endings and diff behavior across platforms

# ==============================================================================
# Auto-detect text files and normalize line endings
# ==============================================================================
* text=auto

# ==============================================================================
# Source Code - Text files with LF normalization
# ==============================================================================

# Rust
*.rs text eol=lf diff=rust
*.toml text eol=lf

# Haskell
*.hs text eol=lf diff=haskell
*.lhs text eol=lf diff=haskell
*.cabal text eol=lf

# Elixir
*.ex text eol=lf diff=elixir
*.exs text eol=lf diff=elixir
*.eex text eol=lf
*.heex text eol=lf
*.leex text eol=lf
mix.lock text eol=lf

# Idris
*.idr text eol=lf
*.ipkg text eol=lf

# Nickel
*.ncl text eol=lf

# Nix
*.nix text eol=lf
flake.lock text eol=lf

# C/C++ (for native dependencies)
*.c text eol=lf diff=cpp
*.h text eol=lf diff=cpp
*.cpp text eol=lf diff=cpp
*.hpp text eol=lf diff=cpp

# ==============================================================================
# Documentation - Text files with LF normalization
# ==============================================================================

*.md text eol=lf diff=markdown
*.adoc text eol=lf
*.txt text eol=lf
*.rst text eol=lf
*.html text eol=lf diff=html
*.css text eol=lf diff=css
*.xml text eol=lf

# ==============================================================================
# Configuration - Text files with LF normalization
# ==============================================================================

*.yml text eol=lf
*.yaml text eol=lf
*.json text eol=lf
*.conf text eol=lf
*.cfg text eol=lf
*.ini text eol=lf
*.env text eol=lf

# Shell scripts
*.sh text eol=lf diff=bash
*.bash text eol=lf diff=bash
*.zsh text eol=lf

# Build files
Makefile text eol=lf
justfile text eol=lf
Containerfile text eol=lf
Dockerfile text eol=lf

# Git
.gitignore text eol=lf
.gitattributes text eol=lf
.gitmodules text eol=lf

# ==============================================================================
# Binary Files - Explicitly mark as binary
# ==============================================================================

# Images
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.webp binary
*.svg text eol=lf

# Documents
*.pdf binary

# Archives
*.zip binary
*.tar binary
*.gz binary
*.bz2 binary
*.xz binary
*.7z binary

# Compiled
*.wasm binary
*.so binary
*.dylib binary
*.dll binary
*.exe binary
*.a binary
*.o binary
*.beam binary

# Fonts
*.ttf binary
*.otf binary
*.woff binary
*.woff2 binary
*.eot binary

# ==============================================================================
# Export Ignore - Files not included in archives
# ==============================================================================

.git export-ignore
.gitignore export-ignore
.gitattributes export-ignore
.gitlab-ci.yml export-ignore
.github export-ignore
.well-known export-ignore

# Development files
.editorconfig export-ignore
.envrc export-ignore
*.nix export-ignore
flake.lock export-ignore

# Test fixtures
test/fixtures export-ignore
tests/fixtures export-ignore

# Documentation source (keep compiled docs)
docs/*.adoc export-ignore

# ==============================================================================
# Linguist Overrides (for GitHub language detection)
# ==============================================================================

# Ensure Rust is detected as primary language
*.rs linguist-detectable=true
*.hs linguist-detectable=true
*.ex linguist-detectable=true
*.idr linguist-detectable=true

# Don't count generated files
Cargo.lock linguist-generated=true
flake.lock linguist-generated=true
mix.lock linguist-generated=true

# Vendor directories (if any)
vendor/* linguist-vendored=true
119 changes: 113 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,120 @@
# SPDX-License-Identifier: MIT AND Palimpsest-0.8
# SPDX-FileCopyrightText: 2024-2025 The polysafe-gitfixer Contributors

# ==============================================================================
# Rust
# ==============================================================================
target/
Cargo.lock
.DS_Store
*.log
*.tmp
**/*.rs.bk
*.pdb

# ==============================================================================
# Haskell
# ==============================================================================
dist/
dist-newstyle/
cabal-dev/
*.o
*.hi
*.hie
*.chi
*.chs.h
*.dyn_o
*.dyn_hi
.hpc/
.hsenv/
.cabal-sandbox/
cabal.sandbox.config
*.prof
*.aux
*.hp
*.eventlog
.stack-work/
cabal.project.local
cabal.project.local~
.HTF/
.ghc.environment.*

# ==============================================================================
# Elixir
# ==============================================================================
_build/
deps/
.elixir_ls/
.erlang.cookie
*.beam
*.ez
*.beam
erl_crash.dump
.elixir_ls/
.erlang.cookie
mix.lock

# ==============================================================================
# Idris
# ==============================================================================
build/
*.ibc
*.o
*.so

# ==============================================================================
# Nickel
# ==============================================================================
*.ncl.json

# ==============================================================================
# Nix
# ==============================================================================
result
result-*
.direnv/

# ==============================================================================
# Editor/IDE
# ==============================================================================
.idea/
.vscode/
*.swp
*.swo
*~
.project
.classpath
.settings/
*.sublime-workspace
*.sublime-project

# ==============================================================================
# OS
# ==============================================================================
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# ==============================================================================
# Logs and temp files
# ==============================================================================
*.log
*.tmp
*.temp
*.bak
*.backup

# ==============================================================================
# Environment
# ==============================================================================
.env
.env.local
.env.*.local
*.local

# ==============================================================================
# Test artifacts
# ==============================================================================
coverage/
.coverage
htmlcov/
.hypothesis/
.pytest_cache/
82 changes: 82 additions & 0 deletions .well-known/ai.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# SPDX-License-Identifier: MIT AND Palimpsest-0.8
# SPDX-FileCopyrightText: 2024-2025 The polysafe-gitfixer Contributors
#
# AI Training and Crawling Policy for polysafe-gitfixer
# This file defines permissions for AI systems interacting with this repository.

# ==============================================================================
# POLICY SUMMARY
# ==============================================================================
#
# This repository is dual-licensed under MIT and Palimpsest-0.8.
# AI training is permitted under specific conditions.

# ==============================================================================
# PERMITTED: Open-Source AI Training
# ==============================================================================
#
# Training is ALLOWED if ALL of the following conditions are met:
#
# 1. ATTRIBUTION: Models must acknowledge "The polysafe-gitfixer Contributors"
# and link to: https://gitlab.com/Hyperpolymath/polysafe-gitfixer
#
# 2. OPEN SOURCE: Trained models must release weights, architecture, and
# training code under OSI-approved or Creative Commons licenses
#
# 3. TRANSPARENCY: Generated content must disclose AI involvement and
# preserve attribution chains where applicable
#
# 4. RECIPROCITY: Commercial use permitted if the model is open-sourced and
# improvements to training data are contributed back

# ==============================================================================
# PROHIBITED: Proprietary AI Training
# ==============================================================================
#
# Training is NOT ALLOWED for:
#
# - Closed-source AI models
# - Proprietary commercial models without open weights
# - Models that strip or obscure attribution
# - Systems that claim sole authorship of derivatives

# ==============================================================================
# CRAWLER DIRECTIVES
# ==============================================================================

User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: Claude-Web
Disallow: /

User-agent: CCBot
Allow: /

User-agent: Common-Crawl
Allow: /

User-agent: ia_archiver
Allow: /

User-agent: *
Allow: /

# ==============================================================================
# CONTACT
# ==============================================================================
#
# For questions about AI training permissions:
# - Open an issue: https://gitlab.com/Hyperpolymath/polysafe-gitfixer/-/issues
# - See LICENSE.txt for full legal terms

# Expires: 2026-12-31
Loading
Loading