Background
We need consistent code standards across the repo. Linting is currently inconsistent: only @forge/web has real lint (next lint); @forge/cms and @forge/ai-orchestrator use placeholders. Mobile (iOS/Android) has no lint configured. Generated clients must remain excluded per AGENTS.md.
Expected outcome
- Single enforced lint baseline for all JS/TS/MJS code (
apps/*, packages/*) with CI fail-on-error
- Mobile lint (SwiftLint + ktlint/detekt) wired into CI
- Generated client outputs excluded from lint scope
Acceptance criteria
Possible solution(s)
- ESLint (JS/TS): Single root
eslint.config.mjs, flat config, TS parser. Keep next lint compatibility for web. Phase 1: baseline rules (syntax, undefined vars, unsafe async). Phase 2: stricter (import hygiene, no dead code).
- iOS: SwiftLint with
.swiftlint.yml in mobile/ios/; CI job runs swiftlint (brew install).
- Android: ktlint (style) or detekt (style + complexity) via Gradle plugin; CI job runs
./gradlew ktlintCheck or detekt.
References
- AGENTS.md (generated clients read-only)
- .github/workflows/ci.yml (add mobile lint job)
- packages/tooling/codegen/verify-generated.mjs (generated file stamp)
Background
We need consistent code standards across the repo. Linting is currently inconsistent: only
@forge/webhas real lint (next lint);@forge/cmsand@forge/ai-orchestratoruse placeholders. Mobile (iOS/Android) has no lint configured. Generated clients must remain excluded per AGENTS.md.Expected outcome
apps/*,packages/*) with CI fail-on-errorAcceptance criteria
packages/clients/**and build artifactspnpm lintdeterministic and blocking; CI uses--max-warnings=0mobile/ios/and CI job; exclude generated Swift clientmobile/androidGradle and CI; exclude generated Kotlin clientPossible solution(s)
eslint.config.mjs, flat config, TS parser. Keepnext lintcompatibility for web. Phase 1: baseline rules (syntax, undefined vars, unsafe async). Phase 2: stricter (import hygiene, no dead code)..swiftlint.ymlinmobile/ios/; CI job runsswiftlint(brew install)../gradlew ktlintCheckordetekt.References