Commits a .claude/settings.json rather than leaving permissions to per-developer local state, and initialises a pql vault for this repo's tickets and internal decisions. Every git deny rule appears in both the `git <verb>` and `git * <verb>` forms. Only the second catches `git -C <path>`, and without it the whole deny list is decorative -- it looks like a policy and stops nothing. The allow list carries pql's absolute path alongside the bare name. pql is installed to ~/.local/bin, which is on the login PATH but not the one a non-interactive shell gets, so the bare-name rules match nothing on their own and every call would prompt anyway. .gitignore now covers .claude/settings.local.json, which is machine-local and must never be shared. `pql init` contributed the .pql/* rules with an exception for the changelog, which is the replication log of record and has to be committed for tickets to travel with a clone. Co-Authored-By: Claude <noreply@anthropic.com>
140 lines
2.7 KiB
Plaintext
140 lines
2.7 KiB
Plaintext
# Flutter/Dart
|
|
.dart_tool/
|
|
.packages
|
|
build/
|
|
.pub-cache/
|
|
.pub/
|
|
pubspec.lock
|
|
.flutter-plugins
|
|
.flutter-plugins-dependencies
|
|
|
|
# Generated files
|
|
*.freezed.dart
|
|
*.gr.dart
|
|
*.mocks.dart
|
|
|
|
# All generated *.g.dart files (from json_serializable, riverpod, version_builder)
|
|
# These are regenerated by build_runner during CI/CD builds
|
|
lib/**/*.g.dart
|
|
|
|
# Generated health.json (regenerated by tool/generate_health_json.dart during build)
|
|
web/health.json
|
|
|
|
# IDE
|
|
.idea/
|
|
*.iml
|
|
*.ipr
|
|
*.iws
|
|
.vscode/*
|
|
!.vscode/launch.json
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# macOS
|
|
.DS_Store
|
|
*.dmg
|
|
*.plist.backup
|
|
|
|
# Android
|
|
**/android/**/gradle-wrapper.jar
|
|
**/android/.gradle
|
|
**/android/captures/
|
|
**/android/gradlew
|
|
**/android/gradlew.bat
|
|
**/android/local.properties
|
|
**/android/**/GeneratedPluginRegistrant.*
|
|
**/android/key.properties
|
|
*.jks
|
|
|
|
# iOS/macOS
|
|
**/ios/**/*.mode1v3
|
|
**/ios/**/*.mode2v3
|
|
**/ios/**/*.moved-aside
|
|
**/ios/**/*.pbxuser
|
|
**/ios/**/*.perspectivev3
|
|
**/ios/**/*sync/
|
|
**/ios/**/.sconsign.dblite
|
|
**/ios/**/.tags*
|
|
**/ios/**/.vagrant/
|
|
**/ios/**/DerivedData/
|
|
**/ios/**/Icon?
|
|
**/ios/**/Pods/
|
|
**/ios/**/.symlinks/
|
|
**/ios/**/profile
|
|
**/ios/**/xcuserdata
|
|
**/ios/.generated/
|
|
**/ios/Flutter/.last_build_id
|
|
**/ios/Flutter/App.framework
|
|
**/ios/Flutter/Flutter.framework
|
|
**/ios/Flutter/Flutter.podspec
|
|
**/ios/Flutter/Generated.xcconfig
|
|
**/ios/Flutter/ephemeral
|
|
**/ios/Flutter/flutter_export_environment.sh
|
|
**/ios/ServiceDefinitions.json
|
|
**/ios/Runner/GeneratedPluginRegistrant.*
|
|
|
|
# macOS specific
|
|
**/macos/Flutter/ephemeral
|
|
**/macos/Flutter/Flutter-Debug.xcconfig
|
|
**/macos/Flutter/Flutter-Release.xcconfig
|
|
**/macos/Flutter/Flutter-Profile.xcconfig
|
|
**/macos/Flutter/GeneratedPluginRegistrant.swift
|
|
**/macos/Pods/
|
|
|
|
# Linux
|
|
**/linux/flutter/ephemeral
|
|
|
|
# Windows
|
|
**/windows/flutter/ephemeral
|
|
|
|
# Web
|
|
**/web/.dart_tool/
|
|
|
|
# Coverage
|
|
coverage/
|
|
*.lcov
|
|
|
|
# Test
|
|
.test_coverage.dart
|
|
|
|
# Logs
|
|
*.log
|
|
|
|
# Environment
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Secrets (never commit)
|
|
secrets/
|
|
*.pem
|
|
*.p12
|
|
*.key
|
|
|
|
# Temporary files
|
|
*.tmp
|
|
*.temp
|
|
.temp/
|
|
|
|
# Uploads (reference images, not tracked)
|
|
uploads/
|
|
logs/
|
|
.vscode/launch.json
|
|
|
|
# Claude Code user-specific settings.
|
|
#
|
|
# WARNING: this file is currently TRACKED, so this rule does NOTHING yet. Git
|
|
# applies ignore rules only to untracked paths; edits to a tracked file still
|
|
# show in status and still get committed. It takes effect only after
|
|
# git rm --cached .claude/settings.local.json
|
|
# which is a history decision, deliberately left out of the 2026-08-09
|
|
# normalization pass. Contents are benign - a 4-entry permission allow list, no
|
|
# env block, no secrets - so this is hygiene, not an incident.
|
|
#
|
|
# Also: plain `git check-ignore` prints nothing for this path because it consults
|
|
# the index. Use `git check-ignore --no-index` to confirm the rule itself matches.
|
|
.claude/settings.local.json
|
|
.pql/*
|
|
!.pql/changelog/
|