Document typed production client policy
ober
4c331816ea6b1639dffed9982bd6e45a509c80a9
--- a/README.md +++ b/README.md @@ -135,9 +135,10 @@ library form: ``` `client` expands a named generator-owned template from `templates/<name>.ss`. -This is the preferred bridge for larger apps while the higher-level Android DSL -is growing, because application repositories can keep concise Jerboa app specs -instead of carrying large generated-source fragments. +The `original-tactics` and `ssd-review` clients are composed exclusively from +typed Jerboa libraries. Their generated Kotlin is backend output, not source +text stored in `.ss` strings. `scripts/check-no-raw-kotlin.sh` enforces that +invariant for both production clients. All source paths are relative to the app specification and may not contain symbolic links. Output paths are descriptor-relative, no-follow, exclusive @@ -156,10 +157,9 @@ token; remote identifiers are hashed into local filenames and all HTTP, ZIP, entry-count, expansion-ratio, and storage budgets are enforced. The precise configuration and limits are documented in [SECURITY.md](SECURITY.md). -## Direction +## Production Client Policy -The upstream typed backend now provides the first structured Kotlin emitter. -The next Android-specific step is to lower screen/state declarations through -that same AST instead of the legacy `MainActivity.kt` string emitter, then -remove raw Kotlin fragments after the two migrated clients are represented as -typed Jerboa and Android/JVM DSL forms. +New production Android code must use `typed-kotlin-file` or a typed named +client module. Raw `kotlin-file`, `kotlin-file-lines`, and `kotlin-source-dir` +forms remain only as compatibility features for generic generator fixtures; +they are not permitted in Original Space Tactics or SSD Review.