feat: prune template authoring artifacts and expand localized guides (#15)

* docs: remove stale research design note

* feat: prune maintainer artifacts during init

* docs: expand localized README guides

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
This commit is contained in:
Merlin's Cat
2026-07-10 23:14:20 +10:00
committed by GitHub
co-authored by MerlinH
parent 7e8846a7fb
commit e06453bcab
26 changed files with 1162 additions and 743 deletions
+5 -5
View File
@@ -21,11 +21,11 @@ Choose and record the active engine in `.codex/studio.json` during project setup
Before broad inspection, use compact context helpers when available, then read only surfaced files and explicit task targets:
- `npm run ctx:studio`
- `npm run ctx:task -- "<task>"`
- `npm run ctx:role -- <role-id>`
- `npm run ctx:workflow -- <workflow-id>`
- `npm run ctx:changed`
- `./codex-game-studio context studio`
- `./codex-game-studio context task "<task>"`
- `./codex-game-studio context role <role-id>`
- `./codex-game-studio context workflow <workflow-id>`
- `./codex-game-studio context changed`
## Model Routing
-2
View File
@@ -12,5 +12,3 @@ npm run validate
```
Do not add Python compatibility files, duplicate script-wrapper logic, telemetry, direct Codex execution, planner behavior, hosted/background orchestration, unbounded parallelism, or ownership enforcement without a new design. Explicit local task orchestration is allowed only under the product boundary and must include tests and docs.
Do not edit `research/*` as part of implementation changes unless the task explicitly asks for research updates.
+17 -3
View File
@@ -20,7 +20,19 @@
<a href="README.md">🇺🇸 English</a> |
<a href="docs/readmes/README.zh.md">🇨🇳 简体中文</a> |
<a href="docs/readmes/README.ja.md">🇯🇵 日本語</a> |
<a href="docs/readmes/README.ko.md">🇰🇷 한국어</a>
<a href="docs/readmes/README.ko.md">🇰🇷 한국어</a> |
<a href="docs/readmes/README.de.md">🇩🇪 Deutsch</a> |
<a href="docs/readmes/README.fr.md">🇫🇷 Français</a> |
<a href="docs/readmes/README.es.md">🇪🇸 Español</a> |
<a href="docs/readmes/README.pt.md">🇧🇷 Português</a> |
<a href="docs/readmes/README.ru.md">🇷🇺 Русский</a> |
<a href="docs/readmes/README.ar.md">🇸🇦 العربية</a> |
<a href="docs/readmes/README.it.md">🇮🇹 Italiano</a> |
<a href="docs/readmes/README.pl.md">🇵🇱 Polski</a> |
<a href="docs/readmes/README.tr.md">🇹🇷 Türkçe</a> |
<a href="docs/readmes/README.vi.md">🇻🇳 Tiếng Việt</a> |
<a href="docs/readmes/README.id.md">🇮🇩 Bahasa Indonesia</a> |
<a href="docs/readmes/README.el.md">🇬🇷 Ελληνικά</a>
</p>
---
@@ -183,6 +195,8 @@ Workflow prompts live under `.codex/workflows/*.md`. They are inspection-friendl
--concept "A compact puzzle game about routing trains through haunted switchyards"
```
`init` turns the checkout into a game workspace: it keeps the game-facing agents, workflows, skills, templates, engine references, and CLI runtime, then prunes maintainer-only template-authoring artifacts such as `eval-framework/`, OpenSpec/research/reference scratch files, TypeScript source files, and repository validation tests. Template maintainers can pass `--keep-template-authoring` when intentionally working on this repository itself.
4. **Inspect and validate**:
```sh
@@ -211,8 +225,8 @@ engine_reference/ # Godot, Unity, Unreal reference packs
templates/ # Document templates used by workflows
production/ # Timeline, milestones, session state
docs/ # Small user/docs support surface
src/ # TypeScript CLI source
tests/ # Repository validation and behavior tests
src/ # Game engine source root; maintainer TypeScript files are pruned by init
tests/ # Game tests; repository validation tests are pruned by init
```
## How It Works
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**حوّل جلسة Codex إلى استوديو ألعاب منظّم يعمل محلياً أولاً.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio هو واجهة أوامر مبنية بـ TypeScript. ينشئ مساحة عمل مناسبة لـ Codex في مشاريع الألعاب، ويحفظ مطالبات الأدوار، ومطالبات سير العمل، وملفات المشروع، وحالة المهام، ومعلومات التحقق في ملفات عادية قابلة للمراجعة عبر Git.
ليس محرك ألعاب ولا مدير مشاريع مستضافاً. هدفه أن يمنح Codex عقد عمل أوضح، مع إبقاء القرارات الإبداعية والمراجعة النهائية بيد البشر.
## البدء السريع
تحتاج إلى Node.js 24 أو أحدث. الأمر `run <role>` يحتاج إلى Codex CLI.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
قبل تشغيل Codex فعلياً، يمكنك فحص مطالبة الدور:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
توجد تفاصيل الأوامر في [User Guide](../user-guide.md) باللغة الإنجليزية.
## لماذا يوجد هذا المشروع
محادثة برمجة AI فارغة مرنة، لكن تطوير الألعاب يحتاج إلى بنية استوديو قابلة للتكرار:
- يحتاج المنتجون إلى مراحل، وتسليمات، وفحوصات إصدار.
- يحتاج المصممون إلى GDD ومواصفات أنظمة ورحلة لاعب وحلقات ضبط.
- يحتاج المهندسون إلى مطالبات تنفيذ محددة وحدود تحقق واضحة.
- تحتاج فرق الفن وQA والصوت والتوطين والعمليات الحية إلى سياقها الخاص أيضاً.
- يحتاج المراجعون إلى ملفات يمكن فحصها في Git، لا قرارات تضيع في سجل المحادثة.
يحوّل Codex Game Studio هذه البنية إلى مخرجات مشروع محلية يستطيع Codex قراءتها ويستطيع البشر مراجعتها.
## ما الذي تحصل عليه
| القدرة | المعنى |
| --- | --- |
| تهيئة مشروع محلية | ينشئ مساحة عمل ألعاب حتمية في جذر المستودع الحالي. |
| أدوار استوديو أصلية لـ Codex | يوفر مطالبات مركزة للإنتاج والتصميم والهندسة والفن وQA والتوطين والإصدار. |
| مطالبات سير العمل | يوفر مطالبات قابلة لإعادة الاستخدام للسوق والتحليل والمواصفات والتسليم وفحوصات الإطلاق ومراجعة الواجهة. |
| طبقة محرك | يضيف سياق Godot أو Unity أو Unreal دون تحويل المشروع إلى غلاف لمحرك ألعاب. |
| حالة مهام في ملفات | يحفظ المهام والأقفال وبيانات التشغيل في `.codex/**`. |
| فحص قبل التنفيذ | تساعد dry-run وطباعة المطالبة على المراجعة قبل السماح لـ Codex بالعمل. |
| تحقق صارم | يكشف الملفات المولدة القديمة، والبيانات الوصفية الخاطئة، والأصول المفقودة، والانحراف نحو ميزات مستقبلية. |
## اقرأ المزيد
| الحاجة | الوثيقة |
| --- | --- |
| التثبيت والأوامر وسير العمل والتحقق | [User Guide](../user-guide.md) |
| سيناريوهات الاستخدام | [Examples](../examples/README.md) |
| خريطة الوثائق الكاملة | [Docs Index](../README.md) |
## حالة المشروع
يدعم Codex Game Studio حالياً تهيئة مشروع حتمية، وتشغيل أدوار Codex، وعرض مطالبات سير العمل، وتنظيم المهام عبر الملفات، والتحقق من المستودع/المشروع.
أوامر planner أو `next`، والقياسات، والتنظيم المستضاف، والتوازي غير المحدود، وفرض ملكية المخرجات، وتوليد `CODEX.md` / `project_orchestrator.md` خارج حدود المنتج الحالية.
## الرخصة
يستخدم Codex Game Studio رخصة MIT License. راجع [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Verwandle eine Codex-Sitzung in ein strukturiertes, lokal-first Game Studio.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio ist eine TypeScript-CLI. Sie erstellt für Spieleprojekte einen Codex-freundlichen Workspace und speichert Rollenprompts, Workflow-Prompts, Projektdateien, Aufgabenstatus und Validierung als normale, in Git überprüfbare Dateien.
Es ist weder eine Game Engine noch ein gehosteter Projektmanager. Es gibt Codex einen klareren Arbeitsvertrag, während kreative Entscheidungen und finale Reviews bei Menschen bleiben.
## Schnellstart
Du brauchst Node.js 24 oder neuer. `run <role>` benötigt die Codex CLI.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Vor dem eigentlichen Codex-Lauf kannst du den Rollenprompt prüfen:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Ausführliche Befehle stehen im englischen [User Guide](../user-guide.md).
## Warum es das gibt
Ein leerer AI-Coding-Chat ist flexibel, aber Spieleentwicklung braucht wiederholbare Studio-Struktur:
- Producer brauchen Meilensteine, Übergaben und Release-Checks.
- Designer brauchen GDDs, Systemspezifikationen, Player Journeys und Tuning-Schleifen.
- Engineers brauchen klar begrenzte Implementierungsprompts und Validierungsgates.
- Art, QA, Audio, Lokalisierung und Live Ops brauchen eigenen Kontext.
- Reviewer brauchen Dateien, die in Git überprüfbar sind, statt Entscheidungen in Chat-Verläufen.
Codex Game Studio macht diese Struktur zu lokalen Projektartefakten, die Codex lesen und Menschen prüfen können.
## Was du bekommst
| Fähigkeit | Bedeutung |
| --- | --- |
| Lokales Projektscaffolding | Erstellt einen deterministischen Spiele-Workspace im aktuellen Repository-Root. |
| Codex-native Studio-Rollen | Fokussierte Rollenprompts für Produktion, Design, Engineering, Art, QA, Lokalisierung und Release. |
| Workflow-Prompts | Wiederverwendbare Prompts für Marktanalyse, Daten, Spezifikationen, Handoffs, Ship-Checks und UI-Reviews. |
| Engine-Overlay | Fügt Kontext für Godot, Unity oder Unreal hinzu, ohne dieses Projekt zu einem Engine-Wrapper zu machen. |
| Dateibasierter Aufgabenstatus | Speichert Aufgaben, Locks und Laufmetadaten unter `.codex/**`. |
| Prüfung vor der Ausführung | Dry-runs und Prompt-Ausgabe helfen, Änderungen vor dem Codex-Lauf zu prüfen. |
| Strenge Validierung | Erkennt veraltete generierte Dateien, fehlerhafte Metadaten, fehlende Assets und Drift zu Zukunftsfeatures. |
## Weiterlesen
| Bedarf | Dokument |
| --- | --- |
| Installation, Befehle, Workflows und Validierung | [User Guide](../user-guide.md) |
| Nutzungsszenarien | [Examples](../examples/README.md) |
| Vollständige Dokumentationskarte | [Docs Index](../README.md) |
## Projektstatus
Codex Game Studio unterstützt derzeit deterministisches Projektscaffolding, Codex-Rollenausführung, Workflow-Prompt-Rendering, dateibasierte Aufgabenorchestrierung und Repository-/Projektvalidierung.
Planner- oder `next`-Befehle, Telemetrie, gehostete Orchestrierung, unbegrenzte Parallelität, erzwungene Output-Ownership und das Generieren von `CODEX.md` / `project_orchestrator.md` liegen außerhalb der aktuellen Produktgrenze.
## Lizenz
Codex Game Studio steht unter der MIT License. Siehe [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Μετατρέψτε μια συνεδρία Codex σε δομημένο, local-first στούντιο παιχνιδιών.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Το Codex Game Studio είναι ένα TypeScript CLI. Δημιουργεί για έργα παιχνιδιών ένα workspace έτοιμο για Codex και αποθηκεύει role prompts, workflow prompts, αρχεία έργου, κατάσταση εργασιών και στοιχεία validation σε κανονικά αρχεία που ελέγχονται στο Git.
Δεν είναι game engine ούτε hosted project manager. Στόχος του είναι να δώσει στο Codex ένα καθαρότερο συμβόλαιο εργασίας, ενώ οι δημιουργικές αποφάσεις και το τελικό review μένουν στους ανθρώπους.
## Γρήγορη εκκίνηση
Χρειάζεται Node.js 24 ή νεότερο. Το `run <role>` χρειάζεται Codex CLI.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Πριν τρέξετε πραγματικά το Codex, μπορείτε να δείτε το role prompt:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Αναλυτικές εντολές υπάρχουν στο αγγλικό [User Guide](../user-guide.md).
## Γιατί υπάρχει
Ένα κενό AI coding chat είναι ευέλικτο, αλλά η ανάπτυξη παιχνιδιών χρειάζεται επαναλήψιμη δομή στούντιο:
- Οι producers χρειάζονται milestones, handoffs και release checks.
- Οι designers χρειάζονται GDD, system specs, player journeys και tuning loops.
- Οι engineers χρειάζονται σαφώς οριοθετημένα implementation prompts και validation gates.
- Art, QA, audio, localization και live ops χρειάζονται επίσης δικό τους context.
- Οι reviewers χρειάζονται αρχεία που ελέγχονται στο Git, όχι αποφάσεις χαμένες στο ιστορικό του chat.
Το Codex Game Studio μετατρέπει αυτή τη δομή σε τοπικά project artifacts που μπορεί να διαβάσει το Codex και να ελέγξουν άνθρωποι.
## Τι παίρνετε
| Δυνατότητα | Τι σημαίνει |
| --- | --- |
| Τοπικό project scaffolding | Δημιουργεί deterministic game workspace στη ρίζα του τρέχοντος repository. |
| Codex-native ρόλοι στούντιο | Παρέχει εστιασμένα prompts για production, design, engineering, art, QA, localization και release. |
| Workflow prompts | Παρέχει επαναχρησιμοποιήσιμα prompts για market, analysis, specs, handoffs, ship checks και UI review. |
| Engine overlay | Προσθέτει context για Godot, Unity ή Unreal χωρίς να κάνει το project engine wrapper. |
| Κατάσταση εργασιών σε αρχεία | Αποθηκεύει tasks, locks και run metadata κάτω από `.codex/**`. |
| Έλεγχος πριν την εκτέλεση | Dry-run και εκτύπωση prompt επιτρέπουν έλεγχο πριν ενεργήσει το Codex. |
| Αυστηρό validation | Εντοπίζει παλιά generated files, κακά metadata, ελλιπή assets και drift προς μελλοντικές λειτουργίες. |
## Διαβάστε περισσότερα
| Ανάγκη | Έγγραφο |
| --- | --- |
| Εγκατάσταση, εντολές, workflows και validation | [User Guide](../user-guide.md) |
| Σενάρια χρήσης | [Examples](../examples/README.md) |
| Πλήρης χάρτης τεκμηρίωσης | [Docs Index](../README.md) |
## Κατάσταση έργου
Το Codex Game Studio υποστηρίζει σήμερα deterministic project scaffolding, εκτέλεση ρόλων Codex, rendering workflow prompts, file-backed task orchestration και repository/project validation.
Planner ή `next` commands, telemetry, hosted orchestration, απεριόριστη παραλληλία, forced output ownership και παραγωγή `CODEX.md` / `project_orchestrator.md` είναι εκτός του τρέχοντος ορίου προϊόντος.
## Άδεια
Το Codex Game Studio χρησιμοποιεί MIT License. Δείτε [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Convierte una sesión de Codex en un estudio de juegos estructurado y local-first.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio es una CLI TypeScript. Crea para proyectos de juego un workspace listo para Codex y guarda prompts de roles, prompts de workflow, archivos del proyecto, estado de tareas y validación en archivos normales revisables en Git.
No es un motor de juego ni un gestor de proyectos alojado. Su objetivo es dar a Codex un contrato de trabajo más claro, manteniendo las decisiones creativas y la revisión final en manos humanas.
## Inicio rápido
Necesitas Node.js 24 o posterior. `run <role>` requiere la CLI de Codex.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Antes de ejecutar Codex de verdad, puedes inspeccionar el prompt del rol:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Los comandos detallados están en el [User Guide](../user-guide.md) en inglés.
## Por qué existe
Un chat de codificación con IA en blanco es flexible, pero el desarrollo de juegos necesita una estructura de estudio repetible:
- Producción necesita hitos, handoffs y comprobaciones de lanzamiento.
- Diseño necesita GDD, especificaciones de sistemas, player journeys y bucles de ajuste.
- Ingeniería necesita prompts de implementación bien delimitados y puertas de validación.
- Arte, QA, audio, localización y live ops también necesitan su propio contexto.
- Las personas que revisan necesitan archivos inspeccionables en Git, no decisiones perdidas en el historial del chat.
Codex Game Studio convierte esa estructura en artefactos locales que Codex puede leer y las personas pueden revisar.
## Lo que obtienes
| Capacidad | Qué significa |
| --- | --- |
| Scaffolding local de proyecto | Crea un workspace de juego determinista en la raíz del repositorio actual. |
| Roles de estudio nativos de Codex | Proporciona prompts enfocados para producción, diseño, ingeniería, arte, QA, localización y lanzamiento. |
| Prompts de workflow | Ofrece prompts reutilizables para mercado, análisis, especificaciones, handoffs, ship checks y revisión UI. |
| Capa de motor | Añade contexto de Godot, Unity o Unreal sin convertir el proyecto en un wrapper de motor. |
| Estado de tareas en archivos | Guarda tareas, locks y metadatos de ejecución bajo `.codex/**`. |
| Inspección antes de ejecutar | Dry-run y salida de prompt permiten revisar antes de dejar que Codex actúe. |
| Validación estricta | Detecta archivos generados obsoletos, metadatos mal formados, recursos faltantes y deriva hacia funciones futuras. |
## Leer más
| Necesidad | Documento |
| --- | --- |
| Instalación, comandos, workflows y validación | [User Guide](../user-guide.md) |
| Escenarios de uso | [Examples](../examples/README.md) |
| Mapa completo de documentación | [Docs Index](../README.md) |
## Estado del proyecto
Codex Game Studio actualmente soporta scaffolding determinista, ejecución de roles Codex, renderizado de prompts de workflow, orquestación de tareas en archivos y validación de repositorio/proyecto.
Los comandos planner o `next`, la telemetría, la orquestación alojada, el paralelismo ilimitado, la propiedad forzada de salidas y la generación de `CODEX.md` / `project_orchestrator.md` están fuera del alcance actual.
## Licencia
Codex Game Studio se distribuye bajo MIT License. Consulta [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Transformez une session Codex en studio de jeu structuré et local-first.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio est une CLI TypeScript. Elle crée, pour les projets de jeu, un espace de travail prêt pour Codex et conserve les prompts de rôles, prompts de workflows, fichiers projet, état des tâches et preuves de validation dans des fichiers ordinaires revus dans Git.
Ce nest ni un moteur de jeu ni un gestionnaire de projet hébergé. Lobjectif est de donner à Codex un contrat de travail plus clair tout en gardant les décisions créatives et la revue finale côté humain.
## Démarrage rapide
Node.js 24 ou plus récent est requis. `run <role>` nécessite la CLI Codex.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Avant de lancer Codex, vous pouvez inspecter le prompt de rôle :
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Les commandes détaillées sont dans le [User Guide](../user-guide.md) en anglais.
## Pourquoi cela existe
Un chat de codage IA vide est flexible, mais le développement de jeux a besoin dune structure de studio répétable :
- La production a besoin de jalons, de passations et de contrôles de sortie.
- Le design a besoin de GDD, de spécifications système, de parcours joueur et de boucles de réglage.
- Lingénierie a besoin de prompts dimplémentation bornés et de portes de validation.
- Lart, la QA, laudio, la localisation et le live ops ont aussi besoin de leur propre contexte.
- Les reviewers ont besoin de fichiers vérifiables dans Git, pas de décisions perdues dans lhistorique du chat.
Codex Game Studio transforme cette structure en artefacts locaux lisibles par Codex et vérifiables par les humains.
## Ce que vous obtenez
| Capacité | Rôle |
| --- | --- |
| Scaffolding local de projet | Crée un workspace de jeu déterministe à la racine du dépôt courant. |
| Rôles de studio natifs Codex | Fournit des prompts ciblés pour production, design, ingénierie, art, QA, localisation et release. |
| Prompts de workflow | Fournit des prompts réutilisables pour marché, analyse, specs, passations, ship checks et revue UI. |
| Surcouche moteur | Ajoute du contexte Godot, Unity ou Unreal sans transformer le projet en wrapper de moteur. |
| État des tâches en fichiers | Stocke tâches, verrous et métadonnées dexécution sous `.codex/**`. |
| Inspection avant exécution | Les dry-runs et laffichage de prompt permettent de vérifier avant de lancer Codex. |
| Validation stricte | Détecte fichiers générés obsolètes, métadonnées invalides, ressources manquantes et dérive vers des fonctionnalités futures. |
## Lire la suite
| Besoin | Documentation |
| --- | --- |
| Installation, commandes, workflows et validation | [User Guide](../user-guide.md) |
| Scénarios dusage | [Examples](../examples/README.md) |
| Carte complète des docs | [Docs Index](../README.md) |
## État du projet
Codex Game Studio prend actuellement en charge le scaffolding déterministe, lexécution de rôles Codex, le rendu de prompts de workflow, lorchestration de tâches en fichiers et la validation du dépôt/projet.
Les commandes planner ou `next`, la télémétrie, lorchestration hébergée, le parallélisme illimité, la propriété forcée des sorties et la génération de `CODEX.md` / `project_orchestrator.md` sont hors du périmètre produit actuel.
## Licence
Codex Game Studio est distribué sous MIT License. Voir [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Ubah sesi Codex menjadi studio game yang terstruktur dan local-first.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio adalah CLI TypeScript. Alat ini membuat workspace yang siap dipakai Codex untuk proyek game, lalu menyimpan prompt peran, prompt workflow, file proyek, status tugas, dan validasi sebagai file biasa yang bisa ditinjau di Git.
Ini bukan game engine dan bukan project manager hosted. Tujuannya memberi Codex kontrak kerja yang lebih jelas, sementara keputusan kreatif dan review akhir tetap dipegang manusia.
## Mulai cepat
Butuh Node.js 24 atau lebih baru. `run <role>` membutuhkan Codex CLI.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Sebelum menjalankan Codex sungguhan, Anda bisa memeriksa prompt peran:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Perintah rinci tersedia dalam [User Guide](../user-guide.md) berbahasa Inggris.
## Mengapa ini ada
Chat AI coding yang kosong memang fleksibel, tetapi pengembangan game membutuhkan struktur studio yang dapat diulang:
- Producer membutuhkan milestone, handoff, dan pemeriksaan rilis.
- Designer membutuhkan GDD, spesifikasi sistem, player journey, dan loop tuning.
- Engineer membutuhkan prompt implementasi yang berbatas jelas dan gate validasi.
- Art, QA, audio, lokalisasi, dan live ops juga membutuhkan konteks masing-masing.
- Reviewer membutuhkan file yang bisa diperiksa di Git, bukan keputusan yang hilang di riwayat chat.
Codex Game Studio mengubah struktur itu menjadi artefak proyek lokal yang dapat dibaca Codex dan ditinjau manusia.
## Yang Anda dapatkan
| Kemampuan | Artinya |
| --- | --- |
| Scaffolding proyek lokal | Membuat workspace game deterministik di root repository saat ini. |
| Peran studio native untuk Codex | Menyediakan prompt terfokus untuk produksi, desain, engineering, art, QA, lokalisasi, dan rilis. |
| Prompt workflow | Menyediakan prompt pakai ulang untuk market, analysis, spec, handoff, ship check, dan UI review. |
| Lapisan engine | Menambahkan konteks Godot, Unity, atau Unreal tanpa mengubah proyek menjadi wrapper engine. |
| Status tugas berbasis file | Menyimpan task, lock, dan metadata run di `.codex/**`. |
| Inspeksi sebelum eksekusi | Dry-run dan cetak prompt memungkinkan pemeriksaan sebelum Codex bertindak. |
| Validasi ketat | Mendeteksi file generated yang usang, metadata salah, asset hilang, dan drift ke fitur masa depan. |
## Baca lebih lanjut
| Kebutuhan | Dokumen |
| --- | --- |
| Instalasi, perintah, workflow, dan validasi | [User Guide](../user-guide.md) |
| Skenario penggunaan | [Examples](../examples/README.md) |
| Peta dokumentasi lengkap | [Docs Index](../README.md) |
## Status proyek
Codex Game Studio saat ini mendukung scaffolding proyek deterministik, eksekusi peran Codex, rendering prompt workflow, orkestrasi tugas berbasis file, dan validasi repository/proyek.
Perintah planner atau `next`, telemetry, orkestrasi hosted, paralelisme tanpa batas, kepemilikan output paksa, dan pembuatan `CODEX.md` / `project_orchestrator.md` berada di luar batas produk saat ini.
## Lisensi
Codex Game Studio menggunakan MIT License. Lihat [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Trasforma una sessione Codex in uno studio di gioco strutturato e local-first.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio è una CLI TypeScript. Crea per i progetti di gioco uno workspace pronto per Codex e salva prompt dei ruoli, prompt dei workflow, file di progetto, stato delle attività e validazione in file normali revisionabili in Git.
Non è un motore di gioco né un project manager ospitato. Il suo obiettivo è dare a Codex un contratto di lavoro più chiaro, lasciando le decisioni creative e la revisione finale agli esseri umani.
## Avvio rapido
Serve Node.js 24 o più recente. `run <role>` richiede la CLI Codex.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Prima di eseguire davvero Codex, puoi ispezionare il prompt del ruolo:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
I comandi dettagliati sono nella [User Guide](../user-guide.md) in inglese.
## Perché esiste
Una chat AI di coding vuota è flessibile, ma lo sviluppo di giochi richiede una struttura di studio ripetibile:
- I producer hanno bisogno di milestone, handoff e controlli di release.
- I designer hanno bisogno di GDD, specifiche di sistema, player journey e cicli di tuning.
- Gli engineer hanno bisogno di prompt di implementazione delimitati e gate di validazione.
- Art, QA, audio, localizzazione e live ops hanno bisogno del proprio contesto.
- I reviewer hanno bisogno di file verificabili in Git, non decisioni perse nella cronologia della chat.
Codex Game Studio trasforma questa struttura in artefatti locali leggibili da Codex e revisionabili dagli umani.
## Cosa ottieni
| Capacità | Significato |
| --- | --- |
| Scaffolding locale del progetto | Crea uno workspace di gioco deterministico nella root del repository corrente. |
| Ruoli di studio nativi Codex | Fornisce prompt mirati per produzione, design, engineering, art, QA, localizzazione e release. |
| Prompt di workflow | Fornisce prompt riutilizzabili per mercato, analisi, specifiche, handoff, ship check e review UI. |
| Overlay del motore | Aggiunge contesto Godot, Unity o Unreal senza trasformare il progetto in un wrapper del motore. |
| Stato attività su file | Salva attività, lock e metadati di esecuzione sotto `.codex/**`. |
| Ispezione prima dellesecuzione | Dry-run e stampa del prompt permettono di controllare prima di lasciare agire Codex. |
| Validazione rigorosa | Rileva file generati obsoleti, metadati errati, asset mancanti e deriva verso feature future. |
## Approfondisci
| Esigenza | Documento |
| --- | --- |
| Installazione, comandi, workflow e validazione | [User Guide](../user-guide.md) |
| Scenari realistici | [Examples](../examples/README.md) |
| Mappa completa della documentazione | [Docs Index](../README.md) |
## Stato del progetto
Codex Game Studio supporta attualmente scaffolding deterministico, esecuzione di ruoli Codex, rendering dei prompt di workflow, orchestrazione di attività su file e validazione repository/progetto.
Comandi planner o `next`, telemetria, orchestrazione ospitata, parallelismo illimitato, proprietà forzata degli output e generazione di `CODEX.md` / `project_orchestrator.md` sono fuori dal perimetro prodotto attuale.
## Licenza
Codex Game Studio usa la MIT License. Vedi [`LICENSE`](../../LICENSE).
+8 -8
View File
@@ -2,7 +2,7 @@
**Codex セッションを、構造化されたローカル優先のゲームスタジオに変える CLI。**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md)
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio は TypeScript 製の CLI です。ゲームプロジェクト用に、Codex が使いやすいワークスペースを作成します。ロールプロンプト、ワークフロープロンプト、プロジェクトファイル、タスク状態、検証情報は、Git でレビューできる通常のファイルとして保存されます。
@@ -13,22 +13,22 @@ Codex Game Studio は TypeScript 製の CLI です。ゲームプロジェクト
Node.js 24 以上が必要です。`run <role>` には Codex CLI が必要です。
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git
cd codex-game-studio
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status --project projects/signal-cartographer
./codex-game-studio validate --project projects/signal-cartographer
./codex-game-studio status
./codex-game-studio validate
```
Codex を起動する前に、ロールプロンプトを確認できます:
```sh
./codex-game-studio run producer --project projects/signal-cartographer \
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
@@ -44,14 +44,14 @@ Codex を起動する前に、ロールプロンプトを確認できます:
- アート、QA、オーディオ、ローカライズ、ライブ運用にはそれぞれ専用の文脈が必要です。
- レビュー担当者には、チャット履歴ではなく Git で確認できるファイルが必要です。
Codex Game Studio は、その構造をローカルなプロジェクト成果物に変換します。
Codex Game Studio は、その構造を Codex が読めて人間がレビューできるローカルなプロジェクト成果物に変換します。
## 得られるもの
| 機能 | 意味 |
| --- | --- |
| ローカルプロジェクト生成 | 現在のリポジトリルートに決定的なゲームワークスペースを作成します。 |
| Codex ネイティブなスタジオロール | 制作、デザイン、エンジニアリング、アート、QA、ローカライズ、リリース用のロールプロンプトを生成します。 |
| Codex ネイティブなスタジオロール | 制作、デザイン、エンジニアリング、アート、QA、ローカライズ、リリース用のロールプロンプトを提供します。 |
| ワークフロープロンプト | 市場調査、分析、仕様、引き継ぎ、出荷確認、UI レビューなどの再利用可能なプロンプトを提供します。 |
| エンジンオーバーレイ | Godot、Unity、Unreal の文脈を追加しますが、エンジンラッパーにはなりません。 |
| ファイルベースのタスク状態 | `.codex/**` にタスク、ロック、実行メタデータを保存します。 |
+8 -8
View File
@@ -2,7 +2,7 @@
**Codex 세션을 구조화된 로컬 우선 게임 스튜디오로 바꿉니다.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md)
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio는 TypeScript CLI입니다. 게임 프로젝트를 위해 Codex가 바로 사용할 수 있는 워크스페이스를 만들고, 역할 프롬프트, 워크플로 프롬프트, 프로젝트 파일, 작업 상태, 검증 정보를 Git에서 리뷰 가능한 일반 파일로 저장합니다.
@@ -13,22 +13,22 @@ Codex Game Studio는 TypeScript CLI입니다. 게임 프로젝트를 위해 Code
Node.js 24 이상이 필요합니다. `run <role>`에는 Codex CLI가 필요합니다.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git
cd codex-game-studio
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status --project projects/signal-cartographer
./codex-game-studio validate --project projects/signal-cartographer
./codex-game-studio status
./codex-game-studio validate
```
Codex를 실행하기 전에 역할 프롬프트를 확인할 수 있습니다.
```sh
./codex-game-studio run producer --project projects/signal-cartographer \
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
@@ -50,8 +50,8 @@ Codex Game Studio는 이 구조를 Codex가 읽고 사람이 리뷰할 수 있
| 기능 | 의미 |
| --- | --- |
| 로컬 프로젝트 스캐폴딩 | 현재 저장소 루트에 결정적인 게임 워크스페이스를 만듭니다 |
| Codex 네이티브 스튜디오 역할 | 제작, 디자인, 엔지니어링, 아트, QA, 로컬라이제이션, 출시 작업용 역할 프롬프트를 생성합니다. |
| 로컬 프로젝트 스캐폴딩 | 현재 저장소 루트에 결정적인 게임 워크스페이스를 만듭니다. |
| Codex 네이티브 스튜디오 역할 | 제작, 디자인, 엔지니어링, 아트, QA, 로컬라이제이션, 출시 작업용 역할 프롬프트를 제공합니다. |
| 워크플로 프롬프트 | 시장 리뷰, 분석, 명세, 핸드오프, 출시 체크, UI 리뷰 등 재사용 가능한 프롬프트를 제공합니다. |
| 엔진 오버레이 | Godot, Unity, Unreal 맥락을 추가하지만 엔진 래퍼가 되지는 않습니다. |
| 파일 기반 작업 상태 | `.codex/**` 아래에 작업, 잠금, 실행 메타데이터를 저장합니다. |
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Zamień sesję Codex w uporządkowane, lokalne studio gier.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio to CLI w TypeScript. Tworzy dla projektów gier workspace gotowy dla Codex i zapisuje prompty ról, prompty workflow, pliki projektu, stan zadań oraz walidację w zwykłych plikach możliwych do przeglądu w Git.
To nie jest silnik gry ani hostowany menedżer projektu. Celem jest dać Codex jaśniejszy kontrakt pracy, a decyzje kreatywne i końcowy review zostawić ludziom.
## Szybki start
Wymagany jest Node.js 24 lub nowszy. `run <role>` wymaga Codex CLI.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Przed prawdziwym uruchomieniem Codex możesz sprawdzić prompt roli:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Szczegółowe komendy są w angielskim [User Guide](../user-guide.md).
## Dlaczego to istnieje
Pusty chat AI do kodowania jest elastyczny, ale tworzenie gier wymaga powtarzalnej struktury studia:
- Produkcja potrzebuje kamieni milowych, przekazań i kontroli wydania.
- Design potrzebuje GDD, specyfikacji systemów, ścieżek gracza i pętli strojenia.
- Inżynierowie potrzebują ograniczonych promptów implementacji i bramek walidacji.
- Art, QA, audio, lokalizacja i live ops też potrzebują własnego kontekstu.
- Reviewerzy potrzebują plików widocznych w Git, a nie decyzji znikających w historii chatu.
Codex Game Studio zamienia tę strukturę w lokalne artefakty projektu czytelne dla Codex i ludzi.
## Co otrzymujesz
| Możliwość | Znaczenie |
| --- | --- |
| Lokalne tworzenie projektu | Tworzy deterministyczny workspace gry w katalogu głównym bieżącego repozytorium. |
| Role studia natywne dla Codex | Dostarcza skupione prompty dla produkcji, designu, engineeringu, artu, QA, lokalizacji i release. |
| Prompty workflow | Daje prompty wielokrotnego użytku dla rynku, analiz, specyfikacji, handoffów, ship checków i UI review. |
| Warstwa silnika | Dodaje kontekst Godot, Unity lub Unreal bez robienia z projektu wrappera silnika. |
| Stan zadań w plikach | Przechowuje zadania, blokady i metadane uruchomień w `.codex/**`. |
| Inspekcja przed wykonaniem | Dry-run i wydruk promptu pozwalają sprawdzić pracę przed uruchomieniem Codex. |
| Ścisła walidacja | Wykrywa przestarzałe pliki generowane, błędne metadane, brakujące zasoby i dryf do przyszłych funkcji. |
## Czytaj dalej
| Potrzeba | Dokument |
| --- | --- |
| Instalacja, komendy, workflow i walidacja | [User Guide](../user-guide.md) |
| Scenariusze użycia | [Examples](../examples/README.md) |
| Pełna mapa dokumentacji | [Docs Index](../README.md) |
## Status projektu
Codex Game Studio obsługuje obecnie deterministyczne tworzenie projektu, wykonywanie ról Codex, renderowanie promptów workflow, orkiestrację zadań w plikach i walidację repozytorium/projektu.
Komendy planner lub `next`, telemetria, hostowana orkiestracja, nieograniczona równoległość, wymuszona własność wyników oraz generowanie `CODEX.md` / `project_orchestrator.md` są poza obecnym zakresem produktu.
## Licencja
Codex Game Studio jest dostępny na MIT License. Zobacz [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Transforme uma sessão Codex em um estúdio de jogos estruturado e local-first.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio é uma CLI TypeScript. Ela cria para projetos de jogo um workspace pronto para Codex e mantém prompts de papéis, prompts de workflows, arquivos do projeto, estado das tarefas e validação em arquivos comuns revisáveis no Git.
Não é uma engine de jogo nem um gerenciador de projetos hospedado. O objetivo é dar ao Codex um contrato de trabalho mais claro, mantendo decisões criativas e revisão final com humanos.
## Início rápido
Você precisa do Node.js 24 ou mais recente. `run <role>` exige a CLI do Codex.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Antes de executar o Codex de verdade, você pode inspecionar o prompt do papel:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Os comandos detalhados estão no [User Guide](../user-guide.md) em inglês.
## Por que existe
Um chat de codificação com IA vazio é flexível, mas desenvolvimento de jogos precisa de uma estrutura de estúdio repetível:
- Produção precisa de marcos, handoffs e checks de lançamento.
- Design precisa de GDDs, especificações de sistemas, jornadas do jogador e ciclos de ajuste.
- Engenharia precisa de prompts de implementação bem delimitados e gates de validação.
- Arte, QA, áudio, localização e live ops também precisam de contexto próprio.
- Revisores precisam de arquivos verificáveis no Git, não decisões perdidas no histórico do chat.
Codex Game Studio transforma essa estrutura em artefatos locais que o Codex pode ler e humanos podem revisar.
## O que você recebe
| Capacidade | Significado |
| --- | --- |
| Scaffolding local de projeto | Cria um workspace determinístico de jogo na raiz do repositório atual. |
| Papéis de estúdio nativos do Codex | Fornece prompts focados para produção, design, engenharia, arte, QA, localização e release. |
| Prompts de workflow | Oferece prompts reutilizáveis para mercado, análise, specs, handoffs, ship checks e revisão de UI. |
| Camada de engine | Adiciona contexto de Godot, Unity ou Unreal sem transformar o projeto em um wrapper de engine. |
| Estado de tarefas em arquivos | Armazena tarefas, locks e metadados de execução em `.codex/**`. |
| Inspeção antes da execução | Dry-run e impressão de prompt permitem revisar antes de deixar o Codex agir. |
| Validação estrita | Detecta arquivos gerados obsoletos, metadados inválidos, assets ausentes e deriva para recursos futuros. |
## Leia mais
| Necessidade | Documento |
| --- | --- |
| Instalação, comandos, workflows e validação | [User Guide](../user-guide.md) |
| Cenários de uso | [Examples](../examples/README.md) |
| Mapa completo da documentação | [Docs Index](../README.md) |
## Estado do projeto
Codex Game Studio atualmente suporta scaffolding determinístico, execução de papéis Codex, renderização de prompts de workflow, orquestração de tarefas em arquivos e validação de repositório/projeto.
Comandos planner ou `next`, telemetria, orquestração hospedada, paralelismo ilimitado, propriedade forçada de saída e geração de `CODEX.md` / `project_orchestrator.md` estão fora do escopo atual.
## Licença
Codex Game Studio usa MIT License. Veja [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Превратите сессию Codex в структурированную локальную игровую студию.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio — это TypeScript CLI. Он создает для игровых проектов рабочее пространство, удобное для Codex, и хранит ролевые промпты, workflow-промпты, проектные файлы, состояние задач и данные проверки в обычных файлах, которые можно ревьюить в Git.
Это не игровой движок и не хостинговый менеджер проектов. Цель — дать Codex более ясный рабочий контракт, оставив творческие решения и финальное ревью людям.
## Быстрый старт
Нужен Node.js 24 или новее. Для `run <role>` требуется Codex CLI.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Перед настоящим запуском Codex можно проверить ролевой промпт:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Подробные команды описаны в английском [User Guide](../user-guide.md).
## Зачем это нужно
Пустой AI-чат для кодинга гибок, но разработке игр нужна повторяемая студийная структура:
- Продюсерам нужны майлстоуны, handoff и релизные проверки.
- Дизайнерам нужны GDD, спецификации систем, путь игрока и циклы настройки.
- Инженерам нужны четко ограниченные промпты реализации и валидационные гейты.
- Art, QA, audio, localization и live ops тоже требуют собственного контекста.
- Ревьюерам нужны файлы, проверяемые в Git, а не решения, потерянные в истории чата.
Codex Game Studio превращает эту структуру в локальные артефакты проекта, которые Codex может читать, а люди — ревьюить.
## Что вы получаете
| Возможность | Что это значит |
| --- | --- |
| Локальное создание проекта | Создает детерминированное игровое рабочее пространство в корне текущего репозитория. |
| Студийные роли для Codex | Дает сфокусированные ролевые промпты для production, design, engineering, art, QA, localization и release. |
| Workflow-промпты | Предоставляет повторно используемые промпты для рынка, аналитики, спецификаций, handoff, ship-checks и UI review. |
| Слой движка | Добавляет контекст Godot, Unity или Unreal, не превращая проект в обертку над движком. |
| Состояние задач в файлах | Хранит задачи, блокировки и метаданные запусков в `.codex/**`. |
| Проверка перед запуском | Dry-run и печать промпта помогают проверить работу до запуска Codex. |
| Строгая валидация | Находит устаревшие generated-файлы, неверные метаданные, отсутствующие ресурсы и дрейф к будущим функциям. |
## Подробнее
| Задача | Документ |
| --- | --- |
| Установка, команды, workflows и валидация | [User Guide](../user-guide.md) |
| Сценарии использования | [Examples](../examples/README.md) |
| Полная карта документации | [Docs Index](../README.md) |
## Статус проекта
Codex Game Studio сейчас поддерживает детерминированное создание проекта, запуск ролей Codex, рендеринг workflow-промптов, файловую оркестрацию задач и валидацию репозитория/проекта.
Команды planner или `next`, телеметрия, хостинговая оркестрация, неограниченный параллелизм, принудительное владение результатами и генерация `CODEX.md` / `project_orchestrator.md` не входят в текущие границы продукта.
## Лицензия
Codex Game Studio распространяется под MIT License. См. [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Bir Codex oturumunu yapılandırılmış, yerel öncelikli bir oyun stüdyosuna dönüştürün.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio bir TypeScript CLIdır. Oyun projeleri için Codexe hazır bir çalışma alanı oluşturur; rol promptlarını, workflow promptlarını, proje dosyalarını, görev durumunu ve doğrulama bilgisini Gitte incelenebilir normal dosyalarda tutar.
Bir oyun motoru veya barındırılan proje yöneticisi değildir. Amaç, yaratıcı kararlar ve son inceleme insanlarda kalırken Codexe daha net bir çalışma sözleşmesi vermektir.
## Hızlı başlangıç
Node.js 24 veya daha yenisi gerekir. `run <role>` için Codex CLI gerekir.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Codexi gerçekten çalıştırmadan önce rol promptunu inceleyebilirsiniz:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Ayrıntılı komutlar İngilizce [User Guide](../user-guide.md) içinde yer alır.
## Neden var
Boş bir AI coding sohbeti esnektir, ancak oyun geliştirme tekrarlanabilir bir stüdyo yapısı ister:
- Prodüktörler kilometre taşlarına, handofflara ve release kontrollerine ihtiyaç duyar.
- Tasarımcılar GDD, sistem spesifikasyonları, oyuncu yolculukları ve ayar döngüleri ister.
- Mühendisler sınırları net implementasyon promptları ve doğrulama kapıları ister.
- Art, QA, ses, lokalizasyon ve live ops kendi bağlamına ihtiyaç duyar.
- Reviewerların sohbet geçmişinde kaybolan kararlar yerine Gitte incelenebilir dosyalara ihtiyacı vardır.
Codex Game Studio bu yapıyı Codexin okuyabileceği ve insanların inceleyebileceği yerel proje artefaktlarına dönüştürür.
## Ne elde edersiniz
| Yetenek | Anlamı |
| --- | --- |
| Yerel proje iskeleti | Geçerli repository kökünde deterministik bir oyun çalışma alanı oluşturur. |
| Codex-native stüdyo rolleri | Prodüksiyon, tasarım, engineering, art, QA, lokalizasyon ve release için odaklı rol promptları sağlar. |
| Workflow promptları | Pazar, analiz, spec, handoff, ship check ve UI review için yeniden kullanılabilir promptlar sunar. |
| Motor katmanı | Projeyi motor wrapper’ına çevirmeden Godot, Unity veya Unreal bağlamı ekler. |
| Dosya tabanlı görev durumu | Görevleri, kilitleri ve çalışma metadatasını `.codex/**` altında saklar. |
| Çalıştırmadan önce inceleme | Dry-run ve prompt yazdırma, Codex çalışmadan önce kontrol etmeyi sağlar. |
| Sıkı doğrulama | Eski generated dosyaları, hatalı metadata, eksik asset ve gelecekteki özellik driftini yakalar. |
## Devamını oku
| İhtiyaç | Belge |
| --- | --- |
| Kurulum, komutlar, workflowlar ve doğrulama | [User Guide](../user-guide.md) |
| Kullanım senaryoları | [Examples](../examples/README.md) |
| Tam dokümantasyon haritası | [Docs Index](../README.md) |
## Proje durumu
Codex Game Studio şu anda deterministik proje iskeleti, Codex rol yürütme, workflow prompt rendering, dosya tabanlı görev orkestrasyonu ve repository/proje doğrulamasını destekler.
Planner veya `next` komutları, telemetri, barındırılan orkestrasyon, sınırsız paralellik, zorunlu çıktı sahipliği ve `CODEX.md` / `project_orchestrator.md` üretimi mevcut ürün sınırının dışındadır.
## Lisans
Codex Game Studio MIT License kullanır. Bkz. [`LICENSE`](../../LICENSE).
+77
View File
@@ -0,0 +1,77 @@
# Codex Game Studio
**Biến một phiên Codex thành studio game có cấu trúc, ưu tiên chạy cục bộ.**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio là CLI TypeScript. Nó tạo workspace sẵn sàng cho Codex trong dự án game và lưu role prompt, workflow prompt, file dự án, trạng thái tác vụ và thông tin kiểm chứng trong các file bình thường có thể review bằng Git.
Nó không phải game engine hay trình quản lý dự án hosted. Mục tiêu là cho Codex một hợp đồng làm việc rõ hơn, trong khi quyết định sáng tạo và review cuối vẫn thuộc về con người.
## Bắt đầu nhanh
Cần Node.js 24 trở lên. `run <role>` cần Codex CLI.
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status
./codex-game-studio validate
```
Trước khi chạy Codex thật, bạn có thể xem role prompt:
```sh
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
Lệnh chi tiết nằm trong [User Guide](../user-guide.md) tiếng Anh.
## Vì sao cần nó
Một chat AI coding trống rất linh hoạt, nhưng phát triển game cần cấu trúc studio lặp lại được:
- Producer cần milestone, handoff và kiểm tra release.
- Designer cần GDD, spec hệ thống, player journey và vòng tuning.
- Engineer cần prompt triển khai có ranh giới rõ và cổng xác minh.
- Art, QA, audio, localization và live ops cũng cần ngữ cảnh riêng.
- Reviewer cần file có thể kiểm tra trong Git, không phải quyết định mất trong lịch sử chat.
Codex Game Studio biến cấu trúc đó thành artefact cục bộ mà Codex đọc được và con người review được.
## Bạn nhận được gì
| Khả năng | Ý nghĩa |
| --- | --- |
| Tạo khung dự án cục bộ | Tạo workspace game quyết định trong root repository hiện tại. |
| Vai trò studio native cho Codex | Cung cấp role prompt tập trung cho production, design, engineering, art, QA, localization và release. |
| Workflow prompt | Cung cấp prompt tái sử dụng cho market, analysis, spec, handoff, ship check và UI review. |
| Lớp engine | Thêm ngữ cảnh Godot, Unity hoặc Unreal mà không biến dự án thành engine wrapper. |
| Trạng thái tác vụ bằng file | Lưu task, lock và metadata chạy dưới `.codex/**`. |
| Kiểm tra trước khi chạy | Dry-run và in prompt giúp kiểm tra trước khi để Codex hành động. |
| Xác minh nghiêm ngặt | Phát hiện generated file cũ, metadata sai, thiếu asset và drift sang tính năng tương lai. |
## Đọc thêm
| Nhu cầu | Tài liệu |
| --- | --- |
| Cài đặt, lệnh, workflow và xác minh | [User Guide](../user-guide.md) |
| Kịch bản sử dụng | [Examples](../examples/README.md) |
| Bản đồ tài liệu đầy đủ | [Docs Index](../README.md) |
## Trạng thái dự án
Codex Game Studio hiện hỗ trợ tạo khung dự án quyết định, chạy role Codex, render workflow prompt, điều phối tác vụ bằng file và xác minh repository/dự án.
Lệnh planner hoặc `next`, telemetry, orchestration hosted, song song vô hạn, ép quyền sở hữu output và tạo `CODEX.md` / `project_orchestrator.md` nằm ngoài phạm vi sản phẩm hiện tại.
## Giấy phép
Codex Game Studio dùng MIT License. Xem [`LICENSE`](../../LICENSE).
+7 -7
View File
@@ -2,7 +2,7 @@
**把一次 Codex 会话变成结构化、本地优先的游戏工作室。**
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md)
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt.md) | [🇷🇺 Русский](README.ru.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇹 Italiano](README.it.md) | [🇵🇱 Polski](README.pl.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇩 Bahasa Indonesia](README.id.md) | [🇬🇷 Ελληνικά](README.el.md)
Codex Game Studio 是一个 TypeScript CLI。它为游戏项目创建 Codex 可直接使用的工作区:角色提示词、工作流提示词、项目文件、任务状态和验证信息都保存在普通的、可通过 Git 审查的文件中。
@@ -13,22 +13,22 @@ Codex Game Studio 是一个 TypeScript CLI。它为游戏项目创建 Codex 可
需要 Node.js 24 或更新版本。`run <role>` 需要 Codex CLI。
```sh
git clone git@github.com:merlinhu1/codex-game-studio.git
cd codex-game-studio
git clone git@github.com:merlinhu1/codex-game-studio.git signal-cartographer
cd signal-cartographer
npm install
npm run build
./codex-game-studio init --name "Signal Cartographer" --engine godot --mode prototype --non-interactive \
--concept "A compact puzzle game about routing trains through haunted switchyards"
./codex-game-studio status --project projects/signal-cartographer
./codex-game-studio validate --project projects/signal-cartographer
./codex-game-studio status
./codex-game-studio validate
```
在真正运行 Codex 之前,可以先检查角色提示词:
```sh
./codex-game-studio run producer --project projects/signal-cartographer \
./codex-game-studio run producer \
"Create the initial market overview." --print-prompt
```
@@ -51,7 +51,7 @@ Codex Game Studio 把这些结构变成本地项目文件,让 Codex 能读取
| 能力 | 含义 |
| --- | --- |
| 本地项目脚手架 | 在当前仓库根目录创建确定性的游戏工作区。 |
| Codex 原生工作室角色 | 为制作、设计、工程、美术、QA、本地化和发布生成聚焦的角色提示词。 |
| Codex 原生工作室角色 | 为制作、设计、工程、美术、QA、本地化和发布提供聚焦的角色提示词。 |
| 工作流提示词 | 提供市场、数据、规格、交接、发布检查、UI 审查等可复用提示词。 |
| 引擎覆盖层 | 添加 Godot、Unity 或 Unreal 上下文,但不把本项目变成引擎包装器。 |
| 文件化任务状态 | 在 `.codex/**` 下保存任务、锁和运行元数据。 |
+2
View File
@@ -37,6 +37,8 @@ Create a project:
./codex-game-studio validate
```
By default, `init` converts a cloned template checkout into a game workspace. It preserves the game-facing studio surfaces and runtime assets, then removes maintainer-only authoring artifacts such as `eval-framework/`, stale research/reference folders, OpenSpec change files, repository TypeScript source files, and repository validation tests. Use `--keep-template-authoring` only when you are maintaining Codex Game Studio itself.
## Package-bin usage
After publishing, installing, or linking the package:
-680
View File
@@ -1,680 +0,0 @@
# Codex-Native Game Studio Port Design
## Purpose
Port `pamirtuna/gamestudio-subagents` into this repository as a Codex-native TypeScript/Node toolkit without carrying over the legacy implementation's brittle execution model or false-green validation behavior.
The port must preserve upstream user-facing capabilities. Scope control should remove only **new Codex-era optional features**, not features that already exist upstream. If upstream supports a workflow, engine, agent, template, script-style entry point, or project-management action, the TypeScript port should preserve that capability with a cleaner implementation and hard-failing validation.
This document is split into three scopes:
1. **Clean parity contract**: upstream capabilities that must be preserved without legacy bugs.
2. **Codex-native improvements**: additions that make the port more useful but should remain tightly bounded.
3. **Future optional layer**: features not present upstream and not needed for the first implementation.
## Ground Rules
- Build the port as TypeScript/Node only.
- Use `codex-game-studio` as the canonical CLI.
- Preserve upstream user-facing capabilities unless explicitly documented as an intentional known difference.
- Do not copy legacy source during the research/design phase.
- Do not preserve Python internals, Python package metadata, or shell alias assumptions.
- Do not reproduce upstream false-green validation behavior.
- Do not claim parity until the new implementation passes clean, hard-failing validation.
- Scope reduction is allowed only for features that are new to this port, such as telemetry, direct Codex execution, planner logic, and parallel orchestration.
## Intentional Known Differences
The port may intentionally regress upstream implementation or UX details that add maintenance cost without preserving meaningful user value.
Allowed differences:
- **No duplicate script-wrapper implementation.** Upstream-style script wrappers are not part of the core parity promise. The port should preserve npm/package discoverability and the canonical `codex-game-studio` CLI, but it does not need separate wrapper files such as `scripts/init_project.mjs` or `scripts/project_manager.mjs` unless they are demonstrably useful. If wrappers are added, they must be thin pass-throughs to the canonical CLI and must not own logic.
- **No interactive menu.** Do not port upstream's interactive `menu` flow. It creates a second UI surface with extra state and terminal complexity. Non-interactive CLI commands are the supported interface.
- **No `project_orchestrator.md` file parity.** Preserve the orchestration and handoff behavior through project `AGENTS.md`, the materialized `master_orchestrator` agent, and handoff templates/docs. Do not generate a separate upstream-style `project_orchestrator.md` file.
- **No exact `template_info.md` parity.** Replace the static upstream template-info document with a machine-readable template registry and/or `codex-game-studio templates` commands. Generated docs may exist later, but exact file parity is not required.
- **No eager competitor report generation during init.** Initialization should record competitor names in config and create a market overview/seed document. Full competitor analysis reports should be created by the market analyst workflow when requested, not as init clutter.
- **No upstream license/authorship/citation doc parity.** This is a port/rewrite with project-owned licensing. Do not copy upstream license, authorship, or citation docs as parity artifacts. Use only this repository's chosen license outside the parity contract.
- **No `startover` command.** Do not implement upstream `startover`; the name is ambiguous and encourages destructive semantics. If revision/reset workflows are needed later, design them under explicit non-destructive names.
Every intentional difference must be listed here or in migration docs before parity is claimed.
## Verified Upstream Capability Baseline
The upstream repository includes these user-facing surfaces:
- **Engines**: Godot, Unity, and Unreal Engine configs and initializer branches.
- **Agents**: 12 studio role prompts plus project-specific agent customization.
- **Project initialization**: interactive initializer that creates project folders, engine files, market docs, config, milestones, and customized agents.
- **Project management**: status, new, resume, and freeze flows. Upstream also has `menu` and `startover`, but those are intentional known differences and should not be ported.
- **Templates**: GDD, feature spec, handoff, analytics setup, engine setup, market analysis, and project config. Upstream `template_info.md` is replaced by registry/command discoverability.
- **Validation scripts**: project workflow and engine-system checks.
- **Package scripts**: `init`, `manage`, and `test` command aliases.
- **Docs**: setup, examples, contribution, development rules, system verification, and workflow validation. Upstream license/authorship/citation files are not parity artifacts for this rewrite.
The upstream validation baseline is not clean. In particular, the engine-system test reports only part of the suite passing while still exiting successfully. Known legacy issues include:
- folder-structure helper argument mismatches;
- project-file path expectations that differ from generated source roots;
- inconsistent Unreal naming such as `Unreal`, `Unreal Engine`, and related aliases;
- shell-command assumptions around `python`.
The port must fix these mistakes by defining clean contracts and hard-failing tests. It must not avoid the features entirely.
---
# Part 1: Clean Parity Contract
## Parity Goal
The first complete port should preserve upstream workflow outcomes while replacing the fragile Python implementation with a clean TypeScript/Node architecture.
The core loop is:
```text
idea -> init project -> validate project -> use project-specific agents -> manage project state -> continue work
```
The Codex-native runner described later can improve this loop, but the baseline port must not regress upstream project creation, engine support, agent coverage, templates, or project management except for the intentional known differences listed above.
## Engine Support
The port must support all upstream engines:
- Godot
- Unity
- Unreal Engine
Use canonical IDs internally:
```text
godot
unity
unreal
```
Engine configs should include aliases so user input normalizes cleanly:
```json
{
"id": "unreal",
"display_name": "Unreal Engine",
"aliases": ["Unreal", "Unreal Engine", "ue", "ue5"]
}
```
Required engine contract:
- all engine source roots are under `projects/<slug>/source/project-<slug>/`;
- engine display names are stable and user-facing;
- engine aliases normalize before folder or project-file generation;
- validation checks the generated folder and project-file contract for each engine;
- each engine has prompt-overlay data for project-specific agents;
- unsupported or unknown engine names fail clearly.
- Unreal `.uproject` filenames are generated from a shared `projectClassName(nameOrSlug)` helper: split on non-alphanumeric boundaries, PascalCase words, strip punctuation, prefix `Game` when the result would start with a digit, and fail clearly when no alphanumeric characters remain. Examples: `"Test Game" -> "TestGame"` and `"codex-unreal-smoke" -> "CodexUnrealSmoke"`.
Required generated project files:
```text
Godot:
source/project-<slug>/project.godot
Unity:
source/project-<slug>/Packages/manifest.json
source/project-<slug>/ProjectSettings/ProjectSettings.asset or another documented Unity project-settings marker
Unreal:
source/project-<slug>/<ProjectName>.uproject
```
Unreal naming must be fixed in the new contract: `Unreal`, `Unreal Engine`, `unreal`, and `ue5` should all normalize to canonical `unreal`, while display output remains `Unreal Engine`.
## Agent Support
The port must preserve all 12 upstream studio roles:
- `master_orchestrator`
- `producer_agent`
- `market_analyst`
- `data_scientist`
- `sr_game_designer`
- `mid_game_designer`
- `mechanics_developer`
- `game_feel_developer`
- `sr_game_artist`
- `technical_artist`
- `ui_ux_agent`
- `qa_agent`
These roles are not optional. The first parity target should include all 12 base prompts, adapted to Codex-style structured inputs/outputs.
Project initialization must also preserve project-specific agent materialization. In the TypeScript port this should be owned by `src/agents.ts` rather than copied from the Python `agent_customizer.py` implementation.
Required behavior:
- validate the 12 required base prompts exist;
- select active agents by project mode;
- inject project summary, engine overlay, and role-specific output guidance;
- materialize project-specific prompts under `projects/<slug>/.gamestudio/agents/`;
- generate a project-level `AGENTS.md` for Codex-local guidance;
- preserve upstream project orchestration/handoff behavior through compact `AGENTS.md`, the materialized `master_orchestrator` agent, and handoff templates/docs. Do not generate a separate `project_orchestrator.md` file.
Mode-specific active-agent behavior should preserve upstream intent:
```text
always:
master_orchestrator
producer_agent
market_analyst
data_scientist
design:
sr_game_designer
mid_game_designer
sr_game_artist
prototype:
sr_game_designer
mechanics_developer
qa_agent
development:
sr_game_designer
mid_game_designer
mechanics_developer
game_feel_developer
qa_agent
sr_game_artist
technical_artist
ui_ux_agent
```
## Project Initialization
`codex-game-studio init` must preserve upstream project-creation outcomes while using a cleaner Node implementation.
Required initialization outputs:
```text
projects/<slug>/
AGENTS.md
project-config.json
source/project-<slug>/...
documentation/
resources/market-research/
.gamestudio/agents/
```
Project initialization should create:
- engine-specific folder structure for Godot, Unity, or Unreal;
- engine-specific project files;
- project config;
- market overview/seed document;
- configured competitor names in project config, without generating full competitor analysis reports during init;
- GDD or starter design documentation;
- milestone/timeline data equivalent to upstream behavior;
- project-specific agent prompts;
- project-level Codex guidance.
The port may simplify excessive folder creation only where it is clearly not user-facing or not validated upstream, but it must not remove engine support, market-analysis seeds, project config, milestones, or project-specific agents. Full competitor reports are intentionally deferred to the market analyst workflow.
## Project Config
Use Zod to validate a versioned project config and avoid implicit prompt contracts.
Required project fields:
```json
{
"schema_version": "1.0",
"project": {
"name": "My Game",
"slug": "my-game",
"concept": "One sentence concept",
"genre": "Action",
"platform": "PC",
"audience": "Players who like short sessions",
"competitors": ["competitor-a", "competitor-b"],
"monetization": "premium",
"timeline": "12 weeks",
"engine": "godot",
"engine_version": "4.4.1",
"mode": "prototype",
"phase": "Initialization",
"status": "active"
},
"team": {
"active_agents": ["master_orchestrator", "producer_agent", "market_analyst", "data_scientist", "sr_game_designer", "mechanics_developer", "qa_agent"]
},
"production": {
"milestones": [
{
"id": "m1",
"title": "Playable prototype",
"target": "Week 4",
"exit_criteria": ["Core loop is playable"],
"status": "planned"
}
]
}
}
```
The TypeScript schema may improve shape and naming, but it must preserve upstream information: project identity, audience, competitors, monetization, engine, engine version, mode, phase/status, team/active agents, and schema-validated milestones. Config serialization used for generated guidance hashes must be canonical: recursively sorted keys, two-space indentation, LF newlines, one trailing newline, and an operational-field omission mode for status/run-state fields.
## Templates and Docs
The port must preserve upstream template categories:
- `gdd` -> `gdd_template.md`
- `feature_spec` -> `feature_spec_template.md`
- `handoff` -> `handoff_template.md`
- `analytics_setup` -> `analytics_setup_template.md`
- `engine_setup` -> `engine_setup_template.md`
- `market_analysis` -> `market_analysis_template.md`
- `project_config` -> `project_config_template.json`
The TypeScript port may rename files only if the migration is documented and validation knows the new paths. Do not preserve exact `template_info.md` file parity; expose template discoverability through a typed registry and/or `codex-game-studio templates` commands.
Template selection must be deterministic and bounded: `market_analyst` selects `market_analysis`, `data_scientist` selects `analytics_setup`, designer/spec tasks select `gdd`/`feature_spec`, engine/project setup tasks select `engine_setup`/`project_config`, and `handoff` is selected only for handoff/coordination tasks. QA does not load all templates by default.
The port should also carry forward equivalent docs for:
- setup/quickstart;
- examples;
- development rules;
- system verification;
- workflow validation;
- contribution notes.
Docs do not need to be copied verbatim, but the user-facing guidance should not disappear. Upstream license/authorship/citation docs are explicitly out of scope for this rewrite; use this repository's own licensing policy instead.
## Project Management
The port must preserve useful upstream project-management capabilities while intentionally dropping `menu` and `startover`.
Canonical CLI commands should include equivalents for:
```bash
codex-game-studio status [--project projects/my-game]
codex-game-studio new
codex-game-studio resume --project projects/my-game
codex-game-studio freeze --project projects/my-game
```
`codex-game-studio init` may be the canonical implementation behind `new`.
Interactive `menu` behavior is intentionally not implemented. Users should rely on documented non-interactive commands.
Status/resume/freeze should operate on project config state and should not become a separate orchestration system.
Project-management command semantics:
- `status`: read-only summary of project config, phase/status, active agents, and latest validation state if available.
- `new`: alias or guided wrapper for `init`; it must not create a second project-creation path.
- `resume`: read-only continuation summary with the next suggested manual command; it must not run agents.
- `freeze`: change only project status to frozen/inactive without deleting source, docs, or run history. Status is operational state and is omitted from the project `AGENTS.md` guidance hash, so a status-only freeze must not make generated guidance stale.
- `menu`: intentionally omitted.
- `startover`: intentionally omitted. Future revision/reset workflows require a separate design with explicit non-destructive command names.
## Script-Style Entry Points
Upstream exposes script/package commands for init, manage, and test. The TypeScript port should preserve package-level discoverability without creating duplicate wrapper logic.
Required package metadata excerpt:
```json
{
"scripts": {
"build": "tsc -p tsconfig.build.json",
"init": "npm run build --silent && node dist/cli.js init",
"manage": "npm run build --silent && node dist/cli.js status",
"test": "node:test run",
"validate": "npm run build --silent && node dist/cli.js validate",
"templates": "npm run build --silent && node dist/cli.js templates"
},
"engines": {
"node": ">=20"
},
"files": [
"dist/",
"engine_configs/",
"agents/base/",
"templates/"
]
}
```
Separate thin Node wrappers such as `scripts/init_project.mjs`, `scripts/project_manager.mjs`, and `scripts/validate.mjs` are optional known differences. Prefer package scripts that call the built CLI via `node dist/cli.js`, plus explicit smoke tests for the canonical `codex-game-studio` binary through `npm exec codex-game-studio -- ...` after build/link/install. Do not rely on a bare self-bin name inside the package's own npm scripts before install/link. If wrappers exist, they must call the same command handlers as the canonical CLI and must not fork logic.
The build config must keep the package bin stable: `tsconfig.json` may typecheck both `src/**/*.ts` and `tests/**/*.ts`, but `tsconfig.build.json` must emit `src/cli.ts` to `dist/cli.js` rather than `dist/src/cli.js`. Relative TypeScript imports must use emitted `.js` specifiers under NodeNext, for example `import { loadConfig } from "./config.js"`.
Runtime package assets (`engine_configs/`, `agents/base/`, and `templates/`) must resolve from the installed package root via `import.meta.url`-based helpers, not from `process.cwd()`. The package-root helper should walk upward from the current module URL until it finds this package's `package.json`, rather than assuming a fixed relative path from `dist`. Project paths resolve from explicit `--project` or documented current-project cwd behavior.
Package shipping must be tested, not assumed. `npm pack --json` must include the built CLI and runtime asset directories, and a temporary non-repo cwd install smoke must prove the installed package bin can load templates and engine configs. CLI black-box tests that execute `dist/cli.js` or the package bin must build first so they cannot accidentally pass against stale output or source-only execution.
## Clean Validation Design
Validation is a first-class product surface, not a copied legacy behavior.
`codex-game-studio validate` must:
- return exit code `0` only when all selected checks pass;
- return non-zero when any selected check fails;
- print clear failure messages with paths and check names;
- avoid false-green behavior where failures are printed but the command succeeds;
- validate all upstream parity surfaces before parity is claimed.
Validation should use a typed internal result shape:
```ts
type CheckStatus = "pass" | "fail" | "skip";
type ValidationCheck = {
id: string;
status: CheckStatus;
message: string;
path?: string;
};
```
CLI exit behavior:
```text
any fail -> exit 1
no fail -> exit 0
skip -> allowed only for explicitly documented non-parity checks
```
Required validation checks:
- package scripts exist;
- TypeScript build output produces `dist/cli.js`, and NodeNext relative imports use `.js` specifiers;
- package assets resolve from the installed package root, including subdirectory invocation;
- package metadata declares a supported Node runtime, includes runtime assets in the publish set, and `npm pack` plus temp install proves installed-bin asset loading from a non-repo cwd;
- all 12 base agents exist;
- required templates exist;
- Godot, Unity, and Unreal engine configs are valid;
- engine aliases are unique and normalize correctly;
- generated project config is schema-valid;
- active-agent mode selection matches the contract;
- engine source root exists under `source/project-<slug>/`;
- expected engine project file exists;
- project-specific agents are materialized;
- project `AGENTS.md` exists, includes provenance markers, and its `source-config-sha256` matches the operational-field-omitting guidance hash;
- market overview exists and configured competitor names are preserved in project config;
- starter GDD and milestone/timeline artifacts exist, including schema-valid config milestones and timeline document sections;
- `status` and `resume` report status without mutating the project;
- mutating project-management commands such as `freeze` and `new` are verified only against disposable test fixtures, not by normal `validate --project` on a user project;
- CLI/help surfaces do not expose future-only `next`, `--exec`, telemetry, parallel orchestration, or hard ownership enforcement;
- validation itself fails hard when a check fails.
## Parity Acceptance Criteria
The clean parity contract is satisfied when all are true:
- TypeScript package builds.
- Typecheck passes.
- Tests pass.
- `codex-game-studio init` can create Godot, Unity, and Unreal projects.
- Each generated engine project validates.
- All 12 base agents exist and can be materialized for a project.
- Materialized prompts include the selected engine's prompt-overlay content, not just generic engine text.
- Project-specific `AGENTS.md`, materialized `master_orchestrator`, and handoff guidance are generated without a separate `project_orchestrator.md` file.
- Market and analytics templates are present and reachable by agents.
- Project management supports status, new/init, resume, and freeze. `menu` and `startover` are intentional omissions.
- Package scripts preserve init/manage/test discoverability; separate wrapper files are optional known differences.
- Package metadata declares the Node runtime floor, `npm pack` includes `dist/`, `engine_configs/`, `agents/base/`, and `templates/`, and a temp-installed package bin can load those assets from outside the repo.
- Validation exits non-zero on failures.
- No parity claim appears until the above checks pass.
---
# Part 2: Codex-Native Improvements
These are improvements over upstream that are useful for a Codex-native port, but they should remain bounded and should not crowd out parity work.
## Canonical TypeScript CLI
`codex-game-studio` is the canonical public interface. Npm scripts should call into it. Separate script wrappers are optional and should be avoided unless they provide clear compatibility value.
Recommended core commands:
```bash
codex-game-studio init
codex-game-studio status
codex-game-studio resume --project projects/my-game
codex-game-studio freeze --project projects/my-game
codex-game-studio validate
codex-game-studio run <agent> --project projects/my-game --task "..."
```
## Codex Runner
Upstream relies on users manually telling an AI CLI which project and agent files to read. The Codex-native port should add a bounded runner that assembles a structured prompt packet for one agent and one task.
Default `codex-game-studio run <agent> --project <path> --task <text>` behavior:
- assemble one structured prompt packet;
- write prompt cache and minimal metadata;
- print the exact prompt path and next manual/Codex command;
- not execute Codex or modify project artifacts beyond the prompt cache.
`codex-game-studio run` should:
- load one selected agent;
- load the project config summary;
- load the selected engine overlay;
- load only task-relevant templates;
- include explicit output paths;
- include a validation command;
- write a prompt cache;
- print the prompt path and next command for the user.
Runner flags:
```bash
--print-prompt
--dry-run
--include-artifact <relative-path>
--allow-broad-context
```
Flag semantics:
- `--print-prompt`: print the deterministic prompt body only.
- `--dry-run`: print selected context files, output paths, validation command, prompt cache path, and metadata path without executing Codex.
- `--include-artifact <relative-path>`: explicitly include one prior artifact under the project root; reject absolute paths and traversal outside the project.
- `--allow-broad-context`: explicitly opt in to broader project context discovery. Without this flag, the runner must not scan or include broad project artifacts.
- `--exec`: future-only. Do not implement direct Codex execution until command quoting, working-directory behavior, timeouts, failure handling, and write-scope rules are designed.
The runner must not load all agents, all templates, or unrelated project artifacts by default.
Initial runner acceptance guardrails:
- metadata records `prompt_chars` for every prepared run;
- dry-run output lists every included context file;
- tests prove a single-agent run does not include unrelated agents;
- tests prove a single-agent run does not include all templates;
- tests prove named prior artifacts are included only when explicitly requested;
- broad project reads require an explicit opt-in flag and are not used by default.
## Prompt Cache and Minimal Metadata
Every dry run or printed prompt should write:
```text
projects/<slug>/.gamestudio/runs/<run-id>-<agent>/prompt.md
projects/<slug>/.gamestudio/runs/<run-id>-<agent>/metadata.json
```
Minimal metadata is enough:
```json
{
"timestamp": "...",
"project": "projects/my-game",
"agent": "market_analyst",
"task": "Create the first market overview",
"prompt_chars": 12345,
"prompt_cache_path": "projects/my-game/.gamestudio/runs/<run-id>-<agent>/prompt.md"
}
```
This is not telemetry. Do not add changed-file tracking, runtime metrics, token estimates, productivity comparisons, or JSONL telemetry in the initial implementation.
## Project-Level AGENTS.md
Project-level `AGENTS.md` is a Codex-native replacement/addition for upstream's project-specific agent context.
`src/agents.ts` should own project `AGENTS.md` generation.
Project `AGENTS.md` must be a compact index and rules file, not a full prompt bundle. It should include project identity, engine/mode, validation commands, pointers to materialized agent prompts, and critical repo-local rules. It must not embed operational status, all agent prompts, all templates, full market docs, or run history. Those belong in config or explicit runner-selected context files.
Generated files must include provenance markers so validation can prove they came from the generator:
```md
<!-- generated-by: codex-game-studio src/agents.ts schema=1.0 -->
<!-- source-config-sha256: <hash> -->
```
The hash is computed from the canonical project-config serialization with operational fields such as `project.status` omitted. Therefore `freeze` may update status without regenerating project `AGENTS.md`; non-operational config changes must stale the hash and fail validation until regeneration.
## Bounded Context Loading
The main performance win should come from scoped prompt packets, not from adding a large orchestration system.
Default context for an agent run:
- one base/materialized agent;
- one project config summary;
- one engine overlay;
- task-relevant templates;
- named prior artifacts only when explicitly requested.
Broader project reads must be opt-in.
Bounded-context validation should check the generated prompt packet, not only source code. A regression that accidentally includes all agents, all templates, or broad project artifacts is a performance bug even if functional tests still pass.
---
# Part 3: Future Optional Layer
These features are not present upstream and are not required for the initial implementation. They should stay out of the first build unless explicitly requested later. First-build validation/docs must include explicit absence checks: no `codex-game-studio next`, no `run --exec`, no telemetry command/files, no parallel orchestration surface, and no hard ownership-enforcement behavior.
## Planner / `next`
A real `codex-game-studio next` can be useful, but it is easy to overbuild and easy to make stale recommendations.
Until project state, validation, run metadata, and handoff summaries are mature, the CLI should print simple static next-step suggestions rather than pretending to have a planner.
Future planner inputs may include:
- project phase;
- missing required artifacts;
- last validation status;
- run metadata;
- handoff summaries;
- output ownership.
## Telemetry
A future telemetry layer may record:
- prompt size trends;
- estimated token count;
- elapsed runtime;
- validation results;
- changed files;
- handoff paths;
- suggested next task;
- productivity comparisons.
This is not needed for the initial implementation. Minimal run metadata is enough.
## Direct Codex Execution
Future `--exec` support may spawn `codex exec`, but the initial runner should only prepare prompt packets and print commands.
Before direct execution is added, the design should define:
- command quoting rules;
- working-directory behavior;
- failure handling;
- timeout behavior;
- whether Codex can edit files outside declared output paths.
## Parallel Orchestration
Parallel Hermes/subagent execution is a future optimization only.
It requires mature ownership metadata and validation. Until then, workflows should be serial by default.
Future parallel execution must require disjoint ownership sets such as:
```yaml
agent: market_analyst
may_write:
- resources/market-research/**
agent: data_scientist
may_write:
- documentation/technical/analytics/**
```
If ownership overlaps, parallel execution must be rejected.
## Output Ownership Enforcement
Initial prompts can include suggested output paths, but hard ownership enforcement can wait.
Future enforcement may validate that generated changes stay inside `may_write` globs and avoid `must_not_write` globs.
## Performance Optimization Metrics
Prompt-size budgets, token estimates, artifact summarization, and run-history compression are future optimization work.
They should be added only after the parity workflow exists and real prompt sizes are measurable.
---
# Final Scope Summary
## Preserve From Upstream Now
```text
Godot / Unity / Unreal
12 agents
project-specific agent materialization
project init
market overview/seeds and templates
project config and milestones
status / new / resume / freeze
init / manage / test package discoverability
hard-failing validation
```
## Add as Bounded Codex Improvements
```text
canonical codex-game-studio CLI
project AGENTS.md
bounded run command
prompt cache
minimal metadata
scoped context loading
prompt context guardrails
```
## Keep Future-Only
```text
planner / next
telemetry
changed-file tracking
direct Codex execution
parallel orchestration
ownership enforcement
performance optimization metrics
```
+16 -16
View File
@@ -112,9 +112,9 @@ export function suggestAgentContext(query: string): AgentContextSuggestions {
roles,
templates,
commands: [
workflows[0] ? `npm run ctx:workflow -- ${workflows[0].id}` : undefined,
primaryRole ? `npm run ctx:role -- ${primaryRole}` : undefined,
"npm run ctx:changed"
workflows[0] ? `./codex-game-studio context workflow ${workflows[0].id}` : undefined,
primaryRole ? `./codex-game-studio context role ${primaryRole}` : undefined,
"./codex-game-studio context changed"
].filter((command): command is string => Boolean(command))
};
}
@@ -168,8 +168,8 @@ function renderRolePack(id: string): string {
...bullet(templates.map((template) => `${template.id}${template.path}`), 8),
"",
"## Suggested agent command:",
`- npm run ctx:role -- ${id}`,
workflows[0] ? `- npm run ctx:workflow -- ${workflows[0]}` : undefined
`- ./codex-game-studio context role ${id}`,
workflows[0] ? `- ./codex-game-studio context workflow ${workflows[0]}` : undefined
);
}
@@ -200,8 +200,8 @@ function renderWorkflowPack(id: string): string {
...bullet(role.expectedOutputs, 5),
"",
"## Suggested agent command:",
`- npm run ctx:workflow -- ${workflow.id}`,
`- npm run ctx:role -- ${workflow.role}`
`- ./codex-game-studio context workflow ${workflow.id}`,
`- ./codex-game-studio context role ${workflow.role}`
);
}
@@ -213,10 +213,10 @@ function renderStudioPack(projectRoot: string): string {
"Project state: repository template checkout; .codex/studio.json is not initialized here.",
"",
"## Low-token entry points",
"- npm run ctx:task -- \"<task>\"",
"- npm run ctx:workflow -- <workflow-id>",
"- npm run ctx:role -- <role-id>",
"- npm run ctx:changed"
"- ./codex-game-studio context task \"<task>\"",
"- ./codex-game-studio context workflow <workflow-id>",
"- ./codex-game-studio context role <role-id>",
"- ./codex-game-studio context changed"
);
}
const studio = readStudioProject(projectRoot);
@@ -233,10 +233,10 @@ function renderStudioPack(projectRoot: string): string {
...bullet(studio.activeRoles, 10),
"",
"## Low-token entry points",
"- npm run ctx:task -- \"<task>\"",
"- npm run ctx:workflow -- <workflow-id>",
"- npm run ctx:role -- <role-id>",
"- npm run ctx:changed"
"- ./codex-game-studio context task \"<task>\"",
"- ./codex-game-studio context workflow <workflow-id>",
"- ./codex-game-studio context role <role-id>",
"- ./codex-game-studio context changed"
);
}
@@ -251,7 +251,7 @@ function renderChangedPack(cwd: string): string {
"",
"## Suggested follow-up",
"- Git is unavailable or this directory is not a Git checkout.",
"- Continue with ctx:task, ctx:role, or ctx:workflow, then inspect explicit task targets."
"- Continue with context task, context role, or context workflow, then inspect explicit task targets."
);
}
const files = output ? output.split("\n").slice(0, 40) : [];
+5 -5
View File
@@ -75,11 +75,11 @@ ${config.project.engine} ${config.project.engine_version}
Before broad inspection, use compact context helpers when available, then read only surfaced files and explicit task targets:
- \`npm run ctx:studio\`
- \`npm run ctx:task -- "<task>"\`
- \`npm run ctx:role -- <role-id>\`
- \`npm run ctx:workflow -- <workflow-id>\`
- \`npm run ctx:changed\`
- \`./codex-game-studio context studio\`
- \`./codex-game-studio context task "<task>"\`
- \`./codex-game-studio context role <role-id>\`
- \`./codex-game-studio context workflow <workflow-id>\`
- \`./codex-game-studio context changed\`
## Model Routing
+2
View File
@@ -96,10 +96,12 @@ function addInitCommand(name: "init" | "new"): void {
.option("--timeline <text>", "timeline")
.option("--engine-version <version>", "engine version override")
.option("--force-refresh", "refresh an existing root project with matching intent")
.option("--keep-template-authoring", "keep maintainer-only template authoring files after init")
.requiredOption("--non-interactive", "use deterministic defaults")
.action((opts) => {
const result = initProject({ ...opts, competitors: opts.competitor, studioMode: readApprovalStudioMode(opts.studioMode) });
console.log(`Created ${result.config.project.name} at ${path.relative(process.cwd(), result.projectRoot)}`);
if (result.prunedArtifacts.length > 0) console.log(`Pruned template authoring artifacts: ${result.prunedArtifacts.length}`);
});
}
+97 -3
View File
@@ -1,4 +1,4 @@
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
import path from "node:path";
import { activeAgentsForProject, slugify, type ProjectConfig, type ProjectMode } from "./config.js";
import { createEngineFolders, createEngineProjectFiles, loadEngineConfigs, normalizeEngine, sourceRoot, unrealProjectFileName } from "./engines.js";
@@ -29,6 +29,7 @@ export type InitProjectOptions = {
engineVersion?: string;
nonInteractive?: boolean;
forceRefresh?: boolean;
keepTemplateAuthoring?: boolean;
};
export type StudioProjectState = {
@@ -160,6 +161,98 @@ function writeStudioProject(projectRoot: string, state: StudioProjectState): voi
writeFileSync(path.join(projectRoot, ".codex", "studio.json"), `${JSON.stringify(state, null, 2)}\n`);
}
export const templateAuthoringArtifactPaths = [
".hermes",
".truthmark",
"eval-framework",
"openspec",
"references",
"research",
"scripts",
"tooling",
"CONTRIBUTING.md",
"tsconfig.build.json",
"tsconfig.json"
] as const;
const templateAuthoringCodeFiles = [
"src/agent-context.ts",
"src/agents.ts",
"src/approvals.ts",
"src/behavioral-evaluation.ts",
"src/ccgs-adaptation.ts",
"src/ccgs-parity.ts",
"src/cli.ts",
"src/codex-prompts.ts",
"src/codex-runtime.ts",
"src/codex-session.ts",
"src/config.ts",
"src/context-manifest.ts",
"src/context.ts",
"src/customization.ts",
"src/engine-reference.ts",
"src/engines.ts",
"src/generated-surfaces.ts",
"src/orchestrator-locks.ts",
"src/orchestrator.ts",
"src/paths.ts",
"src/performance-evaluation.ts",
"src/projects.ts",
"src/prompt-context.ts",
"src/prompt-surface-metadata.ts",
"src/roles.ts",
"src/runner.ts",
"src/skills.ts",
"src/studio-policy.ts",
"src/tasks.ts",
"src/templates.ts",
"src/validation.ts",
"src/verification.ts",
"src/workflow-catalog.ts",
"src/workflow-recipes.ts",
"src/workflows.ts",
"tests/agent-context.test.ts",
"tests/approval-gates.test.ts",
"tests/ccgs-adaptation.test.ts",
"tests/ccgs-parity-audit.test.ts",
"tests/codex-context-files.test.ts",
"tests/codex-prompts.test.ts",
"tests/codex-runtime.test.ts",
"tests/codex-session.test.ts",
"tests/engine-system.test.ts",
"tests/functionality-gap-pass.test.ts",
"tests/orchestrator.test.ts",
"tests/performance-evaluation-framework.test.ts",
"tests/project-workflow.test.ts",
"tests/prompt-surface-audit.test.ts",
"tests/prompt-surface-metadata.test.ts",
"tests/prompt-surface-validation.test.ts",
"tests/roles.test.ts",
"tests/runner.test.ts",
"tests/studio-policy.test.ts",
"tests/tasks.test.ts",
"tests/template-repository-surfaces.test.ts",
"tests/template-root-smoke.test.ts",
"tests/validation.test.ts",
"tests/verification.test.ts",
"tests/workflow-catalog.test.ts",
"tests/workflow-recipes.test.ts"
] as const;
function removePathIfPresent(projectRoot: string, relativePath: string, removed: string[]): void {
const full = path.join(projectRoot, relativePath);
if (!existsSync(full)) return;
rmSync(full, { recursive: true, force: true });
removed.push(relativePath);
}
export function pruneTemplateAuthoringArtifacts(projectRoot: string): string[] {
const removed: string[] = [];
for (const artifact of templateAuthoringArtifactPaths) removePathIfPresent(projectRoot, artifact, removed);
for (const artifact of templateAuthoringCodeFiles) removePathIfPresent(projectRoot, artifact, removed);
return removed.sort();
}
function workflowTitle(id: WorkflowId): string {
return id
.split("-")
@@ -231,7 +324,7 @@ export function workflowSourceInput(workflow: WorkflowId): unknown {
};
}
export function initProject(options: InitProjectOptions, cwd = process.cwd()): { projectRoot: string; config: ProjectConfig } {
export function initProject(options: InitProjectOptions, cwd = process.cwd()): { projectRoot: string; config: ProjectConfig; prunedArtifacts: string[] } {
const config = defaultProjectConfig(options);
const projectRoot = path.resolve(cwd, ".");
const studioPath = path.join(projectRoot, ".codex", "studio.json");
@@ -252,7 +345,8 @@ export function initProject(options: InitProjectOptions, cwd = process.cwd()): {
writeStarterDocs(projectRoot, config);
materializeEngineReferences(projectRoot, packageAssetPath("."), config.project.engine);
writeContextManifest(projectRoot, readStudioProject(projectRoot));
return { projectRoot, config };
const prunedArtifacts = options.keepTemplateAuthoring ? [] : pruneTemplateAuthoringArtifacts(projectRoot);
return { projectRoot, config, prunedArtifacts };
}
export function statusProject(project?: string, cwd = process.cwd()): string {
+5 -5
View File
@@ -16,7 +16,7 @@ describe("agent context helper scripts", () => {
expect(pack).toContain("Context strategy:");
expect(pack).toContain("Related workflows:");
expect(pack).toContain("Suggested agent command:");
expect(pack).toContain("npm run ctx:role -- gameplay-programmer");
expect(pack).toContain("./codex-game-studio context role gameplay-programmer");
expect(pack).not.toContain("## Responsibilities");
expect(pack.split("\n").length).toBeLessThan(90);
});
@@ -38,7 +38,7 @@ describe("agent context helper scripts", () => {
expect(suggestions.workflows[0]?.id).toBe("bugfix");
expect(suggestions.roles.map((role) => role.id)).toContain("gameplay-programmer");
expect(suggestions.commands).toContain("npm run ctx:workflow -- bugfix");
expect(suggestions.commands).toContain("./codex-game-studio context workflow bugfix");
expect(JSON.stringify(suggestions)).not.toContain("systemPrompt");
});
@@ -60,8 +60,8 @@ describe("agent context helper scripts", () => {
});
expect(agentsMd).toContain("## Context Bootstrap");
expect(agentsMd).toContain("npm run ctx:role -- <role-id>");
expect(agentsMd).toContain("npm run ctx:workflow -- <workflow-id>");
expect(agentsMd).toContain("./codex-game-studio context role <role-id>");
expect(agentsMd).toContain("./codex-game-studio context workflow <workflow-id>");
expect(agent).not.toContain("Context bootstrap:");
expect(workflow).not.toContain("Context bootstrap:");
expect(prompt).not.toContain("## Context Bootstrap");
@@ -93,7 +93,7 @@ describe("agent context helper scripts", () => {
expect(pack).toContain("Changed files: unavailable");
expect(pack).toContain("Git is unavailable or this directory is not a Git checkout");
expect(pack).toContain("ctx:task");
expect(pack).toContain("context task");
});
test("package exposes low-output npm scripts for agents", () => {
+66 -1
View File
@@ -1,4 +1,4 @@
import { cpSync, existsSync, readFileSync } from "node:fs";
import { cpSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
import { execFileSync } from "node:child_process";
import { mkdtempSync } from "node:fs";
import { tmpdir } from "node:os";
@@ -20,6 +20,25 @@ function templateRoot(prefix: string): string {
return root;
}
function writeAuthoringArtifacts(root: string): void {
for (const dir of ["eval-framework", "references", "openspec", "scripts", "tooling", "research", ".truthmark", ".hermes", "src", "tests"]) {
mkdirSync(path.join(root, dir), { recursive: true });
}
writeFileSync(path.join(root, "eval-framework", "README.md"), "maintainer evals\n");
writeFileSync(path.join(root, "references", "matrix.md"), "maintainer matrix\n");
writeFileSync(path.join(root, "openspec", "change.md"), "maintainer spec\n");
writeFileSync(path.join(root, "scripts", "refresh.mjs"), "console.log('authoring');\n");
writeFileSync(path.join(root, "tooling", "audit.ts"), "export {};\n");
writeFileSync(path.join(root, "research", "stale.md"), "old research\n");
writeFileSync(path.join(root, ".truthmark", "config.json"), "{}\n");
writeFileSync(path.join(root, ".hermes", "plan.md"), "local agent plan\n");
writeFileSync(path.join(root, "src", "cli.ts"), "export {};\n");
writeFileSync(path.join(root, "tests", "validation.test.ts"), "export {};\n");
writeFileSync(path.join(root, "CONTRIBUTING.md"), "maintainer notes\n");
writeFileSync(path.join(root, "tsconfig.json"), "{}\n");
writeFileSync(path.join(root, "tsconfig.build.json"), "{}\n");
}
describe("project workflow", () => {
test("init configures the current repository root as the game root", () => {
const cwd = templateRoot("ogs-root-project-");
@@ -67,6 +86,52 @@ describe("project workflow", () => {
expect(config.project.competitors).toEqual([]);
});
test("init prunes maintainer-only template authoring artifacts from game workspaces", () => {
const cwd = templateRoot("ogs-prune-authoring-");
writeAuthoringArtifacts(cwd);
const { projectRoot, prunedArtifacts } = initProject({ name: "Clean Game", engine: "godot", mode: "prototype", nonInteractive: true }, cwd);
expect(prunedArtifacts).toEqual(
expect.arrayContaining([
"eval-framework",
"references",
"openspec",
"scripts",
"tooling",
"research",
".truthmark",
".hermes",
"CONTRIBUTING.md",
"tsconfig.json",
"tsconfig.build.json",
path.join("src", "cli.ts"),
path.join("tests", "validation.test.ts")
])
);
for (const removed of ["eval-framework", "references", "openspec", "scripts", "tooling", "research", ".truthmark", ".hermes", "CONTRIBUTING.md", "tsconfig.json", "tsconfig.build.json"]) {
expect(existsSync(path.join(projectRoot, removed))).toBe(false);
}
expect(existsSync(path.join(projectRoot, "src", "cli.ts"))).toBe(false);
expect(existsSync(path.join(projectRoot, "tests", "validation.test.ts"))).toBe(false);
expect(existsSync(path.join(projectRoot, "src", "project.godot"))).toBe(true);
expect(existsSync(path.join(projectRoot, "tests", ".gitkeep"))).toBe(true);
expect(existsSync(path.join(projectRoot, ".codex", "agents", "gameplay-programmer.toml"))).toBe(true);
expect(existsSync(path.join(projectRoot, ".agents", "skills", "cgs-start", "SKILL.md"))).toBe(true);
});
test("init can keep template authoring artifacts for maintainers", () => {
const cwd = templateRoot("ogs-keep-authoring-");
writeAuthoringArtifacts(cwd);
const { projectRoot, prunedArtifacts } = initProject({ name: "Maintainer Game", engine: "godot", mode: "prototype", nonInteractive: true, keepTemplateAuthoring: true }, cwd);
expect(prunedArtifacts).toEqual([]);
expect(existsSync(path.join(projectRoot, "eval-framework", "README.md"))).toBe(true);
expect(existsSync(path.join(projectRoot, "src", "cli.ts"))).toBe(true);
expect(existsSync(path.join(projectRoot, "src", "project.godot"))).toBe(true);
expect(existsSync(path.join(projectRoot, "tests", "validation.test.ts"))).toBe(true);
expect(existsSync(path.join(projectRoot, "tests", ".gitkeep"))).toBe(true);
});
test("init preserves clone-visible Codex-native custom agents and repository skills", () => {
const cwd = templateRoot("ogs-surfaces-");
const { projectRoot } = initProject({ name: "Surface Game", engine: "godot", mode: "prototype", nonInteractive: true }, cwd);