Skip to content

Add CLAUDE.md with project context and architecture overview - #1

Merged
2DoorDevelopment merged 11 commits into
mainfrom
claude/create-claude-md-600ZR
Apr 10, 2026
Merged

Add CLAUDE.md with project context and architecture overview#1
2DoorDevelopment merged 11 commits into
mainfrom
claude/create-claude-md-600ZR

Conversation

@2DoorDevelopment

Copy link
Copy Markdown
Owner

claude added 8 commits April 10, 2026 15:09
…ylon error

- flight_profile.py: remove no-op loop that assigned to loop variable
  instead of the original variables (explicit max() calls below already
  enforced the 50m floor)
- mission_builder.py: replace bare list[0] index with guarded fallback
  that raises a clear ValueError when a map has no airfields defined
- main.py: use .get() with default '?' for _campaign_total so a missing
  key doesn't raise KeyError during plan display
- ollama_client.py: remove unreachable `return None` after retry loop
  (every code path inside the loop already returns)
- custom_mods.py: log a warning instead of silently discarding invalid
  pylon number strings in custom aircraft JSON loadouts

https://claude.ai/code/session_01G1n7wTAgrau2TWUPWvsG3j
…ard, CI

Maps
- Add Persian Gulf (UAE, Iran, Strait of Hormuz) with 20 airfields,
  naval zones, SAM zones, carrier orbit areas
- Add Mariana Islands (Guam, Saipan, Tinian) with Pacific carrier ops
- Register both in MAP_REGISTRY and add LLM aliases

Player aircraft
- Add F-15C Eagle, F-15E Strike Eagle, AV-8B Harrier II,
  Mirage 2000C, AH-64D Apache — with loadouts, aliases, and
  realistic performance profiles in flight_profile.py

Mission types
- Add CSAR (Combat Search and Rescue) and FAC (Forward Air Controller)
  to MISSION_TEMPLATES, MISSION_TYPE_ALIASES, and MISSION_PROFILES

Multiplayer / co-op
- player_count > 1 generates additional "Client" skill slots so
  multiple pilots can fly in DCS multiplayer
- GUI adds a Players dropdown (1–4) wired through to the plan

Kneeboard PNG generator (pure stdlib)
- New src/generators/kneeboard_generator.py renders briefing text
  onto a dark-themed PNG using an embedded 8×13 bitmap font and
  zlib compression — no Pillow required
- miz_packager.py embeds the PNG at KNEEBOARD/<aircraft>/ in the .miz

GUI dropdown fix
- Add _style_combobox() which binds a ButtonPress handler to each
  Combobox and directly configures the popdown listbox via Tcl eval,
  fixing white-on-white dropdown text on Linux and some Windows configs

--generate CLI flag
- python main.py --generate "description" runs headless generation
  without entering the interactive prompt

Infrastructure
- Add pyproject.toml (metadata, pytest config, entry point)
- Add .github/workflows/ci.yml (Python 3.10/3.11/3.12 test matrix
  + import sanity check job)
- Add tests/test_smoke.py with 22 tests; all passing

Updates
- Update main.py banner with full aircraft/map/mission roster
- Update CLAUDE.md with new architecture, testing, and feature docs

https://claude.ai/code/session_01G1n7wTAgrau2TWUPWvsG3j
Layout
- Replace LabelFrame borders with _card() — each section gets a thin
  colored top accent bar, a dimmed section label, and a clean dark fill
- Two-column layout now uses bg-colored left panel instead of a bordered
  box, giving a lighter feel
- Window default size bumped to 980×720

Typography
- Consistent font hierarchy: 13 bold title, 11 bold primary button,
  10 body, 9 labels/secondary buttons, 8 status bar
- Section headers rendered in dimmed all-caps instead of bordered frames

Status indicators
- Ollama and DCS status replaced with colored dot indicators (●) in the
  title bar — green when found, amber when offline, grey when unknown
- Status bar shows combined single-line summary

Progress bar
- Indeterminate ttk.Progressbar in accent color animates between the
  output header and text area during generation; hidden at rest

Tagged output text
- head: section headers in accent teal bold
- ok: success lines in green
- err: error lines in red
- dim: informational / in-progress lines in grey
- bright: user input echo in bright white

Buttons
- Primary generate button: solid green with hover
- Secondary generate: bordered surface with hover
- Utility buttons: text-style with surface hover
- All buttons have cursor="hand2" and _hover() smooth transitions

Other
- Add Clear button in output header alongside Copy
- _row() + _combo() helpers eliminate grid boilerplate
- Remove unused `time` import

https://claude.ai/code/session_01G1n7wTAgrau2TWUPWvsG3j
- lua_generator.py: Fix Russia country_id 0→1 (was assigning all red units
  to Abkhazia/neutral instead of Russia — primary cause of loading freeze)
- units.py: Replace invalid AIM-9X CLSID {5CE2FF2A-...-8720PD3897FF} (non-hex
  'P' char) with correct GUID {9B31BFDB-...} across all affected loadouts
- units.py: Remove empty CLSID string from F-16C CAP pylon 6
- units.py: Replace {X-25MP} shorthand with proper Kh-25MP GUID for Su-25T SEAD
- validator.py: Add _check_clsids() to catch malformed CLSID strings at
  validation time before packaging — detects both empty and non-GUID/non-shorthand values

https://claude.ai/code/session_01G1n7wTAgrau2TWUPWvsG3j

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the DCS Mission Manager project with additional documentation, new map data, kneeboard rendering/packaging, validation enhancements, and CI/testing scaffolding.

Changes:

  • Add CLAUDE.md project context plus new smoke tests and GitHub Actions CI.
  • Add Persian Gulf and Mariana Islands map registries + aliases, and expand aircraft/mission-type registries and profiles.
  • Embed a generated kneeboard PNG into packaged .miz files; add CLSID validation and multiplayer slot generation.

Reviewed changes

Copilot reviewed 19 out of 38 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/test_smoke.py New end-to-end smoke tests covering registries, builder, kneeboard generation, naming, and difficulty scaling.
tests/__pycache__/__init__.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
tests/__init__.py Test package marker file.
src/validator.py Add regex-based CLSID validation across unit pylons.
src/units.py Fix/standardize some CLSIDs, add new player aircraft, mission templates, and alias mappings.
src/maps/persian_gulf.py New Persian Gulf map database (airfields, zones, routes).
src/maps/mariana_islands.py New Mariana Islands map database (airfields, zones, routes).
src/maps/__pycache__/syria.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/maps/__pycache__/persian_gulf.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/maps/__pycache__/mariana_islands.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/maps/__pycache__/cold_war_germany.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/maps/__pycache__/caucasus.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/maps/__pycache__/__init__.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/maps/__init__.py Register new maps and add alias normalization for them.
src/llm/ollama_client.py Remove unreachable/duplicate return None.
src/generators/miz_packager.py Embed kneeboard PNG in .miz under KNEEBOARD/<aircraft>/.
src/generators/mission_builder.py Improve AUTO airfield fallback; add multiplayer co-op slot generation.
src/generators/lua_generator.py Adjust red-side country_id constant.
src/generators/kneeboard_generator.py New pure-stdlib PNG renderer + aircraft folder mapping helper.
src/generators/__pycache__/kneeboard_generator.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/generators/__pycache__/__init__.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/flight_profile.py Add profiles for new aircraft + new mission type profiles; simplify altitude floor logic.
src/custom_mods.py Add warning output for invalid pylon numbers in custom mod configs.
src/__pycache__/naming.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/__pycache__/mission_events.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/__pycache__/flight_profile.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/__pycache__/difficulty.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/__pycache__/callsigns.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
src/__pycache__/__init__.cpython-311.pyc Committed bytecode artifact (should be removed from VCS).
README.md Update repo name/path examples; add output + license notes.
pyproject.toml Add packaging/test configuration and optional dev dependencies.
main.py Banner updates, kneeboard packaging integration, safer campaign display, and headless --generate mode.
CLAUDE.md New Claude-oriented project context/architecture overview.
.gitignore Ignore Python caches/build outputs/missions/history.
.github/workflows/ci.yml Add CI smoke test matrix + import sanity check job.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pyproject.toml Outdated
Comment thread src/generators/kneeboard_generator.py Outdated
Comment thread README.md Outdated
Comment thread CLAUDE.md
Comment on lines +1 to +6
# DCS Mission Manager — Claude Context

## Project Overview

DCS Mission Generator v2.0 is a Python tool that generates realistic DCS World `.miz` mission files from plain-English descriptions. Users describe a mission (e.g., "SEAD mission in the F-16 on Caucasus with SA-11s") and the tool builds a complete, playable mission with waypoints, threat placement, friendly packages, briefings, and win/loss conditions.

Copilot AI Apr 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR title suggests this change only adds CLAUDE.md, but the diff includes substantial functional changes (new maps, kneeboard PNG generation, validator changes, CI workflow, packaging config, etc.). Please update the PR title/description to reflect the full scope, or split into smaller PRs to make review and rollback safer.

Copilot uses AI. Check for mistakes.
2DoorDevelopment and others added 3 commits April 10, 2026 18:47
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@2DoorDevelopment
2DoorDevelopment merged commit d113107 into main Apr 10, 2026
2 of 8 checks passed
@2DoorDevelopment
2DoorDevelopment deleted the claude/create-claude-md-600ZR branch April 10, 2026 23:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants