@@ -147,21 +147,28 @@ Directory responsibilities are:
147147- ` src-web ` : Vite web UI source and production build output.
148148- ` addons ` : Godot plugins. Kirie remains installed as ` addons/kirie ` , and Godot
149149 CEF remains installed as ` addons/godot_cef ` .
150- - ` kirie.config.ts ` : Kirie CLI development-time configuration.
150+ - ` kirie.config.ts ` : Kirie CLI configuration for coordinating Godot, Vite, and
151+ local build inputs.
151152
152153Kirie does not own native platform project directories. Do not introduce
153154Capacitor-style ` ios/ ` or ` android/ ` project trees into Kirie user projects.
154155Native capabilities should be provided by Godot plugins.
155156
156- Kirie CLI v1 is scoped to one command:
157+ The planned Kirie CLI surface is intentionally small but covers the full local
158+ app workflow:
157159
158160``` sh
159161kirie dev
162+ kirie build
163+ kirie build web
164+ kirie build dotnet
165+ kirie init
166+ kirie doctor
167+ kirie doctor --fix
160168```
161169
162- ` kirie dev ` targets desktop Godot only in v1. It starts a Vite development
163- server through Vite's JavaScript API, reads the actual resolved URL after Vite
164- listens, launches Godot as a child process, and injects:
170+ ` kirie dev ` starts a Vite development server, reads the actual resolved URL
171+ after Vite listens, launches Godot as a child process, and injects:
165172
166173``` text
167174KIRIE_DEV=1
@@ -182,15 +189,27 @@ named-class references.
182189The CLI does not support Finder, Dock, or other non-CLI launched macOS app
183190processes. It only supports development sessions that the CLI starts and owns.
184191
185- Kirie CLI v1 does not implement:
186-
187- - ` kirie create `
188- - ` kirie build `
189- - ` kirie export `
190- - addon installation
191- - Godot CEF installation
192- - export preset management
193- - BrowserWindow APIs
192+ ` kirie build ` builds local intermediate artifacts needed by a runnable or
193+ exportable Godot project, but it does not produce platform application packages.
194+ It should build every configured or clearly discovered input. ` kirie build web `
195+ builds only the Vite web output, and ` kirie build dotnet ` builds only the
196+ Godot C#/.NET project when one is configured or discovered. If no C# project is
197+ configured or discovered, the aggregate ` kirie build ` command may skip the
198+ ` .NET ` step; if a C# project is present, C# build failure must fail the command.
199+
200+ ` kirie export ` remains future work. When it exists, it should mean a complete
201+ platform export workflow: build local inputs first, then call Godot's export
202+ flow for the selected platform or preset. It should not silently create or
203+ repair project configuration as part of export.
204+
205+ ` kirie init ` and ` kirie doctor --fix ` are the explicit commands allowed to
206+ write configuration. ` kirie init ` initializes Kirie-owned files and may register
207+ required Godot project settings. ` kirie doctor ` is read-only diagnostics.
208+ ` kirie doctor --fix ` may apply supported repairs. Any writes to Godot-owned
209+ configuration files, including ` project.godot ` and ` export_presets.cfg ` , must
210+ go through Godot itself, for example a headless helper script using
211+ ` ProjectSettings ` or ` ConfigFile ` . JavaScript code must not patch
212+ Godot configuration text directly.
194213
195214Kirie enforces Vite as the web toolchain. Users should not hand-write a fixed
196215development URL. The CLI should let Vite handle port conflicts, then pass the
@@ -211,17 +230,54 @@ User-supplied `web.vite` may extend Vite for plugins, aliases, defines, CSS,
211230JSON, extra assets, proxying, headers, HMR details, Rollup options, and
212231dependency optimization. It must not override Kirie-owned invariants such as
213232` root ` , ` base ` , ` server.host ` , ` server.port ` , ` server.open ` , or
214- ` build.outDir ` .
233+ ` build.outDir ` . Explicit command-line flags may override runtime server values
234+ for a single invocation.
235+
236+ Kirie command-line flags are Kirie API, not an implicit promise to support the
237+ entire Vite CLI surface. The planned ` kirie dev ` flags are:
238+
239+ ``` text
240+ --config <path> Kirie config file path, not a Vite config path.
241+ --project <dir> Godot project directory, defaulting to the current project.
242+ --godot <path> Godot executable override.
243+ --host <host> Vite dev server host override.
244+ --port <number> Vite dev server port override.
245+ --strict-port Fail if the requested Vite port is unavailable.
246+ --mode <mode> Vite mode.
247+ --force Force Vite dependency pre-bundling.
248+ --log-level <level> Vite log level: info, warn, error, or silent.
249+ --clear-screen Allow Vite to clear the terminal.
250+ --no-clear-screen Prevent Vite from clearing the terminal.
251+ ```
252+
253+ Kirie must either parse and map Vite-shaped flags explicitly to Vite's public
254+ JavaScript API or proxy them to the real Vite CLI. Unknown flags must fail
255+ instead of being silently ignored. Arguments after ` -- ` on ` kirie dev ` are
256+ reserved for Godot:
257+
258+ ``` sh
259+ kirie dev --host 0.0.0.0 --port 5173 --mode staging -- --verbose
260+ ```
261+
262+ ` --open ` is intentionally not part of ` kirie dev ` because Kirie launches Godot
263+ instead of opening a browser. ` --base ` , ` --outDir ` , and Vite's own ` --config `
264+ are also not part of the ` kirie dev ` surface because Kirie owns those values
265+ through ` kirie.config.ts ` and the app layout.
266+
267+ The current CLI plan does not implement:
268+
269+ - ` kirie create `
270+ - ` kirie export `
271+ - mobile dev targets
272+ - BrowserWindow APIs
215273
216274Future mobile development targets should use one platform command with unified
217275device selection, for example ` kirie dev ios --device <selector> ` and
218276` kirie dev android --device <selector> ` . The user-facing API should not split
219277iOS simulator and iOS device into separate target names. Kirie may still use
220278different launch backends internally for simulators, real devices, Android
221279emulators, and Android devices. Mobile development targets are explicitly out
222- of scope for CLI v1. Future export support should own the production web build
223- and Godot export as one workflow, instead of exposing a separate ` kirie build `
224- command that only wraps Vite.
280+ of scope for the current CLI plan.
225281
226282## Packaged web resource loading
227283
@@ -242,8 +298,10 @@ default production entry. When that migration is implemented, the addon export
242298plugin should package ` res://src-web/dist ` for Android and iOS exports, fail
243299export when ` res://src-web/dist/index.html ` is missing, and drop the previous
244300` res://web ` behavior instead of preserving a compatibility layer. Users should
245- continue to use Godot's official export preset flow; Kirie should not create or
246- manage export presets.
301+ continue to use Godot's official export preset flow by default. Kirie may
302+ diagnose export preset issues, and explicit setup or repair commands may write
303+ supported preset changes through Godot, but normal run, build, and export
304+ commands must not silently mutate export presets.
247305
248306## Desktop Godot CEF direction
249307
0 commit comments