-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Check whether some items are UI projection details.
Use state for product behavior:
uploading(progress)
failed(message)
completed(remoteID)
Use projection for display details:
isButtonEnabled
spinnerVisible
titleText
Stop and create an effect.
Reducers request work. Effect handlers execute work.
Route decisions should be emitted by the reducer:
state + event -> next state + route
The UI or coordinator interprets the route.
Use Output.
Outputs make parent communication testable and reviewable.
Use AI mode:
./gradlew :intentflow-generator:run --args="ai-context .intentflow/login.intentflow.yaml --tool codex"Then ask the agent to update manifest, Kotlin types, reducer, projection, and tests together.
Check:
schemaVersionfeaturemode- non-empty states, intents, effects, invariants, and acceptance traces for AI mode
- indentation
- quoted values when text contains punctuation
The generator creates a skeleton. Rename states, effects, and routes before integrating deeply.
Do not keep placeholder domain names just because the generator produced them.
Kotlin CodeQL builds can take longer because CodeQL extracts a database while building. This is expected. The workflow uses a manual Kotlin build that includes package sources, tests, demo app code, examples, migration samples, and the Dokka tutorial Kotlin sample so the visible CodeQL coverage matches the repository.
The versioned wiki source lives in:
docs/wiki
GitHub stores the visible Wiki tab in a separate .wiki.git repository. GitHub creates that repository only after the first Wiki page is created from the browser. After that, run:
./scripts/publish-wiki.shIntentFlow for Android is a workflow-first, AI-ready architecture proposal. Start from behavior, keep reducers pure, keep effects explicit, and let UI adapt to the workflow.