Files
asciinevrdie/AGENTS.md
JiWoong Sul 08054d97c1 feat: 초기 커밋
- Progress Quest 6.4 Flutter 포팅 프로젝트
- 게임 루프, 상태 관리, UI 구현
- 캐릭터 생성, 인벤토리, 장비, 주문 시스템
- 시장/판매/구매 메커니즘
2025-12-09 17:24:04 +09:00

3.6 KiB

Codex Agent Guide — Progress Quest Flutter Port

Scope & Precedence

  • Applies to this repository (askiineverdie) unless a more specific rule exists deeper in the tree.
  • Order of authority: system/developer messages > this AGENTS.md > other inherited defaults.

Goal

  • Recreate the Progress Quest 6.4 single-player experience from example/pq in Flutter with identical gameplay, logic, and data.
  • Run completely offline: no network calls, server selection, guild/brag uploads, or browser launches.
  • Do not alter original algorithms or data (monsters, items, spells, modifiers, etc.). If a change is required, explain why and obtain user approval first.

Guardrails

  • Workspace-only edits; avoid destructive rewrites unless explicitly requested.
  • Dependency or network changes (e.g., pubspec.yaml, new packages, online access) require prior user approval.
  • Keep the app offline: remove/disable HTTP, web views, and external browser calls.
  • Responses are in Korean by default; if uncertain, prefix with Uncertain: and list only the top two options.
  • For multi-step work, use update_plan with exactly one in_progress step at a time.
  • When following checklist documents, update checkboxes immediately as progress is made.

Git / Commit / Review Comments

  • Branch naming: codex/<type>-<slug> (e.g., codex/feat-seed-loader).
  • Commit messages: Conventional Commit format type(scope): summary; summaries primarily in Korean (technical terms in English as needed).
  • Review/report notes: present code/logs/commands first, followed by brief rationale. Use Uncertain: if unsure.
  • After git push, share reports/descriptions in Korean.

Coding Standards

  • Language/Tools: Dart/Flutter; port original algorithms directly—no speculative optimizations or logic refactors.
  • Data: keep extracted datasets (e.g., Config.dfm) 1:1 with the source; no ad-hoc edits.
  • Style: two-space indentation; run dart format .; use meaningful names; avoid unnecessary comments.
  • Structure: preserve standard Flutter structure; shared constants/data may live in lib/data, but logic must stay faithful to the original.
  • Tests: add/update unit/widget tests when behavior changes, ensuring original logic is preserved.

Validation

  • Prefer to run before handoff:
    • dart format --set-exit-if-changed .
    • flutter analyze
    • flutter test (when tests exist)

Sensitive Areas (require approval)

  • Dependency graph changes (pubspec.yaml), platform build settings (Android/iOS/desktop), Gradle/Xcode configs, signing/provisioning.
  • Introducing network access, modifying original data/algorithms, large file deletions, or repository restructuring.

Communication

  • Keep summaries concise; list code/logs/commands first, then short reasoning.
  • For UI changes, briefly describe visual impact (layout/color/interaction).
  • Offer numbered next-step options only when useful; otherwise, simply report completion.

Architecture Discipline

  • Preserve Single Responsibility Principle and Clean Architecture boundaries:
    • Presentation → Domain → Data dependency flow only; never depend upward.
    • Domain stays framework-agnostic; no Flutter/UI imports.
    • Data must not reference presentation; convert DTOs before exposing.
    • Split oversized files/functions; avoid “god” widgets or services.

Notification

  • Before final handoff, run the notification script when possible:
    • Requires macOS terminal-notifier.
    • Usage: python3 /Users/maximilian.j.sul/.codex/notify.py '<json_payload>'
    • Example payload: {"type":"agent-turn-complete","input_messages":["..."],"last-assistant-message":"..."}