@@ -33,8 +33,10 @@ higher-level work.
3333 the first runnable manual integration target
3434- ` tests/integration `
3535 exported-app platform bridge regression target
36+ - ` gulpfile.ts `
37+ native artifact and integration export orchestration
3638- ` scripts `
37- local build and run helpers for Android and iOS validation
39+ local run helpers for Android and iOS validation
3840- ` .codex/skills `
3941 repo-local Codex skills for project maintenance workflows
4042- ` docs `
@@ -84,22 +86,19 @@ is a standard Godot plugin:
8486
8587- users consume ` addons/kirie `
8688- Android binaries are exported through ` EditorExportPlugin `
87- - during bring-up, local ` .aar ` files under the addon are acceptable because the
88- current Android bridge does not require Kirie-owned Maven-delivered runtime
89- dependencies
9089- Maven-based Android delivery can be revisited if Kirie gains Android
9190 dependencies that need Gradle metadata or transitive resolution
9291
9392When producing a downloadable addon tree, ensure Android ` .aar ` files are real
94- files in the generated output, not repository-local symlinks into Gradle build
93+ files in the staged output, not repository-local symlinks into Gradle build
9594directories.
9695
9796## iOS Packaging Direction
9897
9998For the current milestone, iOS should be owned by the standard addon tree:
10099
101100- users consume ` addons/kirie `
102- - ` Kirie.xcframework ` belongs under ` addons/kirie/ios ` in produced addon trees
101+ - ` Kirie.xcframework ` belongs under ` addons/kirie/ios ` in staged addon trees
103102- iOS native pieces are injected through ` EditorExportPlugin ` Apple export hooks
104103- do not reintroduce ` res://ios/plugins ` or ` .gdip ` shims unless the export hook
105104 approach fails and the user explicitly chooses that fallback
@@ -132,6 +131,20 @@ For the current milestone, iOS should be owned by the standard addon tree:
132131 tool workaround.
133132- Keep Gradle wrapper and Xcode usage as-is; mise only provides the Java runtime
134133 and command-line tools around them.
134+ - Start command invocations with the fewest necessary flags and options. Add
135+ extra flags only after the project or user has a concrete need for them.
136+ - Native artifact orchestration lives in ` gulpfile.ts ` . Use
137+ ` mise x -- corepack pnpm run build:android-aar ` ,
138+ ` mise x -- corepack pnpm run build:ios-xcframework ` , or
139+ ` mise x -- corepack pnpm run build:native-artifacts ` instead of adding new
140+ shell-only orchestration for the same artifact path.
141+ - Integration export orchestration also lives in ` gulpfile.ts ` . Use
142+ ` mise x -- corepack pnpm run build:integration-android ` or
143+ ` mise x -- corepack pnpm run build:integration-ios ` instead of adding new
144+ integration build shell scripts.
145+ - Keep ` gulpfile.ts ` executable by Node's built-in TypeScript type stripping:
146+ use erasable TypeScript syntax only and do not add ` ts-node ` , ` tsx ` , or other
147+ TypeScript runtime loaders unless a real non-erasable TypeScript need appears.
135148
136149## Engineering Rules
137150
@@ -164,6 +177,9 @@ configured yet.
164177- Do not wrap platform APIs with thin pass-through helpers unless the wrapper
165178 actually stabilizes the Godot-facing API, hides a platform difference, or
166179 creates a meaningful test seam.
180+ - Do not add extra guard code only to beautify errors. Prefer the underlying
181+ tool, runtime, or filesystem error unless the guard changes behavior or makes
182+ a likely failure materially easier to debug.
167183- Prefer keeping logic close to the module that owns it instead of extracting it
168184 into cross-cutting helpers too early.
169185- Add configuration, extension points, and generic options only when they are
@@ -199,11 +215,12 @@ configured yet.
199215 ` mise x -- corepack pnpm run format:swift ` .
200216- When changing Android bridge code, validate the Godot-to-native-to-web path as
201217 soon as practical.
218+ - After changing Android native code under ` packages/kirie/native/android ` ,
219+ run ` mise x -- corepack pnpm run build:android-aar ` before exported-app tests.
202220- When changing iOS bridge code, validate the Godot-to-native-to-web path as
203221 soon as practical.
204222- After changing iOS native code under ` packages/kirie/native/ios ` , always run
205- ` scripts/build_kirie_ios.sh ` so ` addons/kirie/ios/Kirie.xcframework ` is
206- refreshed before any device testing.
223+ ` mise x -- corepack pnpm run build:ios-xcframework ` before device testing.
207224- When changing the IPC shape, make sure at least one real request/response
208225 round-trip remains covered by the example or integration tests.
209226- When changing ` KirieClient ` , compile it against the Godot .NET SDK. A platform
@@ -234,11 +251,12 @@ configured yet.
234251### Binary artifacts
235252
236253- Avoid committing build outputs by default.
237- - Do not commit ` .aar ` , ` .xcframework ` , exported app bundles, or similar binary
238- artifacts unless the repository intentionally adopts them as source-distributed
239- plugin assets.
240- - If the repository starts tracking a binary artifact class intentionally, add
241- the rule explicitly here.
254+ - ` .aar ` , ` .xcframework ` , exported app bundles, and similar binaries are release
255+ staging artifacts in this repository. Generate them into the addon tree or
256+ release staging tree when needed, but do not commit them.
257+ - If the repository intentionally adopts a binary artifact class as
258+ source-distributed plugin assets later, add the exception explicitly here and
259+ update ` .gitignore ` in the same change.
242260
243261### Logging and lifecycle
244262
@@ -261,5 +279,3 @@ infrastructure.
261279 not exist yet.
262280- Richer app-level adapters or invocation APIs above ` @gd-kirie/ipc ` are not
263281 implemented yet.
264- - Source tracking policy is not finalized yet for generated binary artifacts
265- such as local ` .aar ` files and ` .xcframework ` bundles.
0 commit comments