Version bump to 2.3.6. New game mode features 20×20 arena with central cannon obstacle, three escalating phases (Open Arena, Route Pressure, Survival), and collectible tiles (Hearts, Diamonds, Stars, Coins) with pattern-matching missions. Players dodge candy volleys while completing collection goals. Updated export paths and version strings across all platforms (Windows, Android, Web, Linux).
5.1 KiB
SKILLS.md — AI Agent Workflow Guide for Tekton Dash
This document tells AI agents how to work on Tekton Dash tasks end-to-end.
1. Task Source: Notion MCP
All tasks live on the "TektonDash - Armageddon PR Tasks" Notion board.
Finding Tasks
Should always start with this to find tasks, find the highest priority task that is not done, second is In Progress, then To Do.
example, query for "Gauntlet"
Use: mcp_notion-mcp-server_API-post-search
query: "[Gauntlet]" or task name
filter: {"property": "object", "value": "page"}
Reading a Task
Each task page has these properties:
| Property | Type | Purpose |
|---|---|---|
| Name | title | Task title, e.g. [Gauntlet] #1 Game Mode Registration |
| Status | select | To Do → In Progress → Done |
| Priority | select | P0 (critical) / P1 / P2 / P3 |
| Effort | select | S - Small / M - Medium / L - Large / XL - Epic |
| Sprint | select | Alpha / Beta / Release |
| ProjectType | select | CORE / CLIENT / SERVER / INFRA |
| Description | rich_text | Full task description — read this to understand what to do |
| Acceptance | checkbox | Check when task is verified complete |
| DueDate | date | Optional deadline |
| UnitTest | date | Optional test completion date |
Task Lifecycle
To Do → In Progress → Done
- Pick up task: Set
Status→In Progress - Do the work: Read
Description, implement the changes - Write unit tests: Follow pattern in
tests/directory - Mark complete: Set
Status→Done, checkAcceptance✅ - Update changelog: Add entry to
CHANGELOG_DRAFT.md(consumer language) - Bump version: Update
project.godot+export_presets.cfg
Use: mcp_notion-mcp-server_API-patch-page
page_id: "<task_page_id>"
properties: {"Status": {"select": {"name": "Done"}}, "Acceptance": {"checkbox": true}}
2. Code Structure
| Path | Purpose |
|---|---|
scripts/game_mode.gd |
GameMode enum + helpers (add new modes here) |
scripts/managers/ |
All game mode managers (lobby, stop_n_go, portal, gauntlet) |
scenes/main.gd |
Central orchestrator — init, setup, game start routing |
tests/ |
GUT unit tests — one file per task/feature |
Adding a New Game Mode
- Add enum to
scripts/game_mode.gd→ updatefrom_string(),mode_to_string(),get_all_modes(),is_restricted() - Add mode name to
LobbyManager.available_game_modesinlobby_manager.gd - Add arena name to
_update_available_areas()inlobby_manager.gd - Add manager var + init branch in
main.gd_init_managers() - Add setup branch in
_setup_host_game()and_setup_client_game() - Add start branch in
_start_game() - Add background in
_apply_arena_background()
3. Unit Testing
Pattern
All tests extend GutTest and live in tests/. Naming: test_<feature>.gd
extends GutTest
func before_all():
gut.p("=== Feature Tests [Task ID] ===")
func test_something():
assert_eq(actual, expected, "Description")
func after_all():
gut.p("=== Feature Tests Complete ===")
Running Tests
run_tests.cmd # all tests
run_tests.cmd test_gauntlet_registration # specific test
Reports saved to test_reports/ with timestamps.
4. Version Bumping
Before bumping, check git for existing uncommitted version changes:
git diff --cached -- project.godot CHANGELOG_DRAFT.md
git diff -- project.godot CHANGELOG_DRAFT.md
If version changes already exist (staged or unstaged):
→ APPEND your changelog bullet to the existing version block in CHANGELOG_DRAFT.md
→ DO NOT bump project.godot or export_presets.cfg — you're joining an in-progress batch
If NO version changes exist (clean state):
→ BUMP version (increment patch: 2.3.5 → 2.3.6)
→ UPDATE all locations below
Version appears in 4 locations — all must match:
| File | Field |
|---|---|
CHANGELOG_DRAFT.md |
## [X.Y.Z] — YYYY-MM-DD header |
project.godot |
config/version="X.Y.Z" |
export_presets.cfg |
application/file_version and application/product_version (per preset) |
export_presets.cfg |
export_path filenames containing version |
export_presets.cfg |
version/name (Android preset) |
Changelog Style
Entries are consumer-facing (readable by players). No internal jargon.
## [2.3.6] — 2026-05-22
- Added new game mode: Candy Cannon Survival
Bad: "Added GAUNTLET = 3 to GameMode.Mode enum" Good: "Added new game mode: Candy Cannon Survival"
5. Key Conventions
- Caveman Mode: Be terse. No filler. Execute first, talk second.
- Read before edit: Always check whole files before modifying
.gd,.tscn,.tres,.resfiles. - Notion status flow:
To Do→In Progress→Done(never skip steps). - Test everything: Every completed task gets a
test_<feature>.gdintests/. - GUT framework: Tests use the Godot Unit Test (GUT) addon at
addons/gut/.