📝 docs: add ADR for staged-only Git hooks formatting

- Add ADR-0012 documenting the decision to format only staged Go files
- Update ADR README.md with new entry
- Document rationale, alternatives, and verification results
- Include future considerations for monitoring and CI/CD integration

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-04-04 21:36:57 +02:00
parent 371dee01d5
commit 9336178d73
18 changed files with 483 additions and 47 deletions

View File

@@ -0,0 +1,43 @@
#!/bin/sh
# DanceLessonsCoach pre-commit hook
# Runs go mod tidy and go fmt before allowing commits
echo "Running pre-commit hooks..."
# Check if we're in a Go project
if [ ! -f "go.mod" ]; then
echo "Not a Go project, skipping hooks"
exit 0
fi
# Run go mod tidy
echo "Running go mod tidy..."
go mod tidy
if [ $? -ne 0 ]; then
echo "ERROR: go mod tidy failed"
exit 1
fi
# Check if go.mod or go.sum were modified
if git diff --cached --name-only | grep -qE '(go\.mod|go\.sum)'; then
echo "go.mod or go.sum changed, adding to commit..."
git add go.mod go.sum
fi
# Run go fmt on all Go files
echo "Running go fmt..."
GOFILES=$(find . -name '*.go' -not -path "./vendor/*" -not -path "./.git/*")
if [ -n "$GOFILES" ]; then
gofmt -w $GOFILES
if [ $? -ne 0 ]; then
echo "ERROR: go fmt failed"
exit 1
fi
# Add formatted files to commit
git add $GOFILES
fi
echo "Pre-commit hooks completed successfully"
exit 0