Files
jimmyabvandClaude Sonnet 4.6 ab31bba21e Adopt Claude Code Game Studios template, configure Unity engine, document Combat Mode
- Install CCGS agent/skill/hook framework (.claude/, docs templates, GitHub issue/PR templates)
- Configure CLAUDE.md and technical-preferences.md for Unity 6000.3.3f1 (C#, URP, collider-based mouse picking)
- Point engine reference import at docs/engine-reference/unity/ and remove unused Godot/Unreal reference docs
- Add Version Awareness section to unity-specialist agent
- Set production/review-mode.txt to lean
- Add design/gdd/combat-mode.md: reverse-documented GDD for the vs-AI Combat mode, confirming it as the foundation for the guion.md narrative campaign (separate from Classic mode)
- Add docs/architecture/ADR-0001: documents the existing board-state/singleton/per-mode architecture and the decision to keep Classic and Combat modes permanently separate
- Add docs/architecture/control-manifest.md: programmer rules sheet sourced from ADR-0001 and Unity 6 engine reference docs
- Continue in-progress Mono/Classic and Mono/Combat refactor (ScoreManager, scene/prefab updates)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 10:08:10 -03:00

1.2 KiB

paths
paths
tests/**

Test Standards

  • Test naming: test_[system]_[scenario]_[expected_result] pattern
  • Every test must have a clear arrange/act/assert structure
  • Unit tests must not depend on external state (filesystem, network, database)
  • Integration tests must clean up after themselves
  • Performance tests must specify acceptable thresholds and fail if exceeded
  • Test data must be defined in the test or in dedicated fixtures, never shared mutable state
  • Mock external dependencies — tests should be fast and deterministic
  • Every bug fix must have a regression test that would have caught the original bug

Examples

Correct (proper naming + Arrange/Act/Assert):

func test_health_system_take_damage_reduces_health() -> void:
    # Arrange
    var health := HealthComponent.new()
    health.max_health = 100
    health.current_health = 100

    # Act
    health.take_damage(25)

    # Assert
    assert_eq(health.current_health, 75)

Incorrect:

func test1() -> void:  # VIOLATION: no descriptive name
    var h := HealthComponent.new()
    h.take_damage(25)  # VIOLATION: no arrange step, no clear assert
    assert_true(h.current_health < 100)  # VIOLATION: imprecise assertion