.claude/skills/project-overview/SKILL.md
Project architecture overview — layers, LifetimeScope hierarchy, module map, bootstrapping flow. Use when needing project-wide context or understanding module interactions.
npx skillsauth add punkfuncgames/tetris-clone project-overviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Project: PunkFuncGames GameTemplate — Unity 6 (URP 17.3.0) idle/incremental game template.
Packages: Packages/com.punkfuncgames.*/ (26 UPM packages)
Template shell: Assets/Scripts/PunkFuncGames/GameTemplate/ (scopes, bootstrapping, gameplay)
Presentation (Views/UI)
↓
Application (Controllers/EntryPoints)
↓
Domain (Services/Events)
↓
Infrastructure (Save/Config)
ProjectLifetimeScope (Singleton, DontDestroyOnLoad)
├── Registers all module installers
├── MessagePipeOptions shared across all modules
│
├── MainMenuLifetimeScope (scoped to main menu scene)
│ └── Menu-specific registrations
│
└── GameplayLifetimeScope (scoped to gameplay scene)
└── Gameplay-specific registrations
Each module is a UPM package under Packages/ with this layout:
Packages/com.punkfuncgames.<module>/
├── package.json
├── Runtime/PunkFuncGames.<Module>/
│ ├── Config/ # ScriptableObject configs + Data structs
│ ├── Event/ # MessagePipe event structs
│ ├── Installer/ # VContainer installer (static Install method)
│ ├── Model/ # Domain models, containers
│ └── Service/ # Interface + implementation
└── Tests/
├── EditMode/
└── PlayMode/
Cross-module references use #if PUNKFUNC_<MODULE> guards. See docs/MODULE_CATALOG.md for the full package list.
Phase-based via BootstrapOrchestrator → IBootstrapPhase:
| Order | Phase | Purpose | |-------|-------|---------| | 0 | AppConfig | Load game settings | | 100 | Logging | Initialize log service | | 200 | Save | Load save data | | 300 | Steam | Initialize Steamworks | | 350 | Localization | Load language files | | 400 | Audio | Initialize audio service | | 450 | ReactiveBindings | Volume auto-save, pause toggling | | 500 | SceneLoad | Load main menu scene | | 1000 | Finalize | Mark bootstrap complete |
[BOOTSTRAP] → [MAINMENU] → [GAMESCENE]
Each package has its own assembly definitions:
PunkFuncGames.<Module>.asmdef — package runtime codePunkFuncGames.<Module>.Tests.EditMode.asmdef — package unit testsPunkFuncGames.<Module>.Tests.PlayMode.asmdef — package integration testsTemplate shell assemblies:
GameTemplate.Runtime.asmdef — template-level code (scopes, bootstrapping)Tests.EditMode.asmdef — template-level unit testsTests.PlayMode.asmdef — template-level integration testsIdleModule → WalletModule, StatsModule, SaveModule
AchievementModule → UnlockConditionModule, StatsModule, WalletModule, SteamModule
UIModule → LocalizationModule, AssetModule
SceneModule → GameStateModule, AssetModule
AudioModule → SaveModule (volume persistence)
All Modules → LogModule (optional), MessagePipe (events)
development
WalletModule reference — currency management with BigDouble support, reactive properties, caps, lifetime stats, and persistence. Use when working with currencies, wallets, or financial systems.
development
UnlockConditionModule reference — composable unlock conditions using ScriptableObjects with AND/OR/NOT logic, stat/currency/upgrade/prestige/gamestate/boolean checks, reactive service layer with progress tracking. Use when implementing unlock systems, gating, or progression requirements.
development
UndoModule reference — command pattern with undo/redo stacks, command merging, and reactive state. Use when implementing undo/redo, undoable actions, or command patterns.
tools
Unity UI Toolkit reference — UXML documents, USS styling, MVVM pattern (ViewModel + Presenter), custom VisualElements, responsive layout, animations, performance guidelines, and complete Figma-to-UI-Toolkit property mapping. Use when building or modifying UI with UI Toolkit, creating UXML/USS files, writing ViewModels or Presenters, designing screens/panels/components, or converting Figma designs to UI Toolkit.