Navigation Rules
Per-screen metadata that tells the AI which screens exist, what they’re for, and whether it’s allowed to suggest navigating to them. Screens themselves come from analysis — the CLI’s local parser or --deep AI analysis for a React Native/Next.js app, or qafka analyze --web (site crawling, see Onboarding) for a website. This page is where you review and edit what analysis produced.
App vs Web Screens
Screens are filtered by platform with a tab at the top of the list: All / Web / App. Web screens (from qafka analyze --web) carry a URL and, for a page that has more than one navigable section, an in-page selector — rules for the same URL group into a collapsible section so you can see them together. App screens (from React Native/Next.js analysis) carry a file name and an optional deeplink.
You can also add a screen manually with Add Screen, for a destination analysis didn’t pick up.
Per-Screen Fields
Opening a screen (via Edit, or Add Screen for a new one) shows a form organized into sections:
Navigation Rules
| Field | What it controls |
|---|---|
| Allow Navigation | If off, the AI will never suggest this screen for any question — the screen stays in the schema but is inert. |
| Access Type | Public (no login needed), Authenticated (logged in), Guest-only (logged out), or Restricted (special condition). See Filtering by Auth State for what each value does at runtime. |
| Restriction Reason (Restricted only) | Free text the AI relays to the user explaining why the screen isn’t available to them right now. |
Screen Information
| Field | What it controls |
|---|---|
| Screen Name | Required. |
| Description | The single most-impactful field — the AI compares it against what the user is looking for. Keep it short and concrete. |
| URL (web) / File Name, Route Name (app) | The screen’s address. File Name is read-only (from analysis); Route Name is optional. |
| Deeplink (app only) | The URL the SDK navigates to (or your onNavigationAction callback receives). Override here when the auto-detected route is wrong. |
| Keywords | Terms that boost matching for related user queries. The editor flags overly generic single words (e.g. “service”, “info”) inline and suggests more distinctive 2+ word alternatives, since a generic keyword tends to collide with other screens. |
Features and Example User Queries (existing screens only) round out the picture: Features are concrete things the user can do on the screen (name, description, user action); Example User Queries are sample questions real users might ask when looking for it — both are additional signal for the AI’s matching, and Example User Queries also feed the quality checks below.
Re-uploading After Edits
Saving a screen’s edit form — even if you only changed Description or Keywords — always marks its Allow Navigation / Access Type / Restriction Reason as a user override, so the Override badge appears on any screen you’ve saved, and an overridden Deeplink is tracked the same way. Re-running qafka upload (app screens) or qafka analyze --web (web screens) only partially preserves your edits: for a screen analysis reproduces (still exists in your app/site), the overridden Allow Navigation, Access Type, Restriction Reason, and Deeplink carry over and always win at runtime, while Description, Keywords, Features, and Example User Queries are replaced with whatever the new analysis produced — re-edit them after a re-upload if you’ve customized them. A screen that analysis no longer produces at all (removed from your app/site) is left untouched rather than deleted.
Validate & AI Quality Check
The editor’s sidebar includes two independent quality checks over the Description, Keywords, and Example User Queries you’ve entered:
- Validate — a fast, deterministic check (also runs automatically on save) that flags things like keyword overlap with other screens, generic single-word keywords, and duplicates.
- AI Quality Check — a slower (several seconds) LLM-based check that judges description/keyword coherence, how realistic the example queries are, and overall language quality, returning a quality score out of 5 plus specific issues.
Both panels mark their last result Stale once you edit the underlying fields again, so you know a fresh run is needed.
Bulk Actions
Select multiple screens with the row checkboxes to Enable Selected / Disable Selected (toggle Allow Navigation) or delete them in one action.