Files
GroundedHelper/.gitignore
alvocool 16bff634b5 Initial commit: Grounded Flutter frontend
A to-do app that doesn't believe you — an enforcement layer rather than a
neutral ledger.

Architecture ported from Autoreceptives/Frontend/Receptive: stacked MVVM with
the mandatory 4-file screen pattern, one ParentViewModel owning the loading /
network / error overlays and the handleError decision tree, one AppDataManager
gateway, dio comms carrying the three identity headers, secure storage with
random-suffixed keys, and a single-chokepoint Navigator. Package root and Dart
package name are both Grounded; org is nya.

The enforcement engine, one unit per formula in utils/:

- DebtEngine      w(class) x severity(d) x decay(t), sublinear severity so old
                  misses cannot swamp the score; abandonment 2x with 30-day
                  decay immunity; late complete retains 30%
- StandingEngine  Good -> Warned -> Grounded -> Lockdown, derived not set;
                  Grounded replaces home with the overdue queue
- CapacityEngine  blocks over-scheduling against p50 of historically completed
                  minutes, with a learned per-category estimation multiplier
- IntegrityEngine session integrity, weekly volume, plyometric contact ceiling
                  and enforced recovery gaps
- ExcuseAnalyser  on-device excuse clustering plus the confrontation copy
- GuardrailEngine distress detection and rationed amnesty
- ToneEngine      all enforcement copy, so the tone cap lives in one place

CommitmentEvent is append-only and is the source of truth rather than the
status field, which is what makes honest history and excuse analysis possible.

Goals contain commitments via parentId, and a task can be run from a
full-screen runner that derives elapsed time from wall-clock so screen-off
cannot lose time. Backgrounding pauses the clock and is counted. The runner is
mirrored into an ongoing notification, with alarm-class full-screen intents
reserved for non-negotiables.

Design language, fonts, icon and native splash are in place; Mason bricks are
retargeted to this project and verified end-to-end.

flutter analyze lib/ reports no errors.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mfu2gQLSFN21YRBcU2NrTt
2026-07-27 09:11:17 +03:00

210 lines
6.6 KiB
Plaintext

# ─────────────────────────────────────────────────────────────────────────────
# Grounded — repository ignore rules
# ─────────────────────────────────────────────────────────────────────────────
# ── Secrets & environment ────────────────────────────────────────────────────
# .env carries the backend hosts and app version. Committing it leaks the
# deployment topology, so the template is tracked and the real file is not.
.env
.env.*
!.env.example
*.pem
*.key
*.p12
*.jks
*.keystore
*.mobileprovision
key.properties
secrets.properties
google-services.json
GoogleService-Info.plist
firebase_options.dart
service-account*.json
credentials.json
*.retrofit.dart.log
# ── Dart / Flutter ───────────────────────────────────────────────────────────
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
build/
coverage/
doc/api/
**/doc/api/
*.dart.js
*.info.json
*.js_
*.js.deps
*.js.map
.flutter-versions
pubspec_overrides.yaml
# Generated sources
*.g.dart
*.freezed.dart
*.mocks.dart
*.config.dart
# Symbolication / obfuscation
app.*.symbols
app.*.map.json
# ── Mason ────────────────────────────────────────────────────────────────────
# Bricks themselves are tracked; the resolved cache is not.
.mason/
**/hooks/.dart_tool/
**/hooks/pubspec.lock
# ── Android ──────────────────────────────────────────────────────────────────
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/key.properties
**/android/app/release/
**/android/app/debug/
**/android/app/profile/
*.apk
*.aab
*.ap_
*.dex
.cxx/
# ── iOS ──────────────────────────────────────────────────────────────────────
**/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/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/ephemeral/
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/Flutter/flutter_export_environment.sh
**/ios/Flutter/.last_build_id
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*
*.ipa
*.dSYM.zip
*.dSYM
# ── macOS ────────────────────────────────────────────────────────────────────
**/macos/Flutter/GeneratedPluginRegistrant.swift
**/macos/Flutter/ephemeral/
**/macos/Flutter/Flutter-Debug.xcconfig
**/macos/Flutter/Flutter-Release.xcconfig
**/macos/Flutter/Flutter-Profile.xcconfig
**/macos/Pods/
**/xcuserdata/
**/DerivedData/
# ── Windows ──────────────────────────────────────────────────────────────────
**/windows/flutter/generated_plugin_registrant.cc
**/windows/flutter/generated_plugin_registrant.h
**/windows/flutter/generated_plugins.cmake
**/windows/flutter/ephemeral/
*.exe
*.msix
*.pdb
*.ilk
# ── Linux ────────────────────────────────────────────────────────────────────
**/linux/flutter/generated_plugin_registrant.cc
**/linux/flutter/generated_plugin_registrant.h
**/linux/flutter/generated_plugins.cmake
**/linux/flutter/ephemeral/
# ── Web ──────────────────────────────────────────────────────────────────────
**/web/*.g.dart
lib/generated_plugin_registrant.dart
# ── IDEs & editors ───────────────────────────────────────────────────────────
.idea/
*.iml
*.ipr
*.iws
.vscode/
!.vscode/launch.json
!.vscode/settings.json
*.swp
*.swo
*~
.history/
.atom/
.buildlog/
.build/
migrate_working_dir/
.metals/
.bloop/
# ── OS noise ─────────────────────────────────────────────────────────────────
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Thumbs.db:encryptable
desktop.ini
$RECYCLE.BIN/
*.lnk
# ── Logs, temp, caches ───────────────────────────────────────────────────────
*.log
*.tmp
*.temp
*.bak
*.orig
*.rej
*.pyc
__pycache__/
*.class
.cache/
tmp/
temp/
node_modules/
# ── Archives & large binaries ────────────────────────────────────────────────
*.zip
*.tar
*.tar.gz
*.tgz
*.rar
*.7z
*.iso
*.dmg
# ── Working scratch ──────────────────────────────────────────────────────────
# Icon exploration output and other throwaways.
**/assets/icons/_*.png
**/assets/icons/try_*.png
scratch/
scratchpad/
*.local
# ── Agent tooling ────────────────────────────────────────────────────────────
.claude/settings.local.json
.agents/