cawcut-app-run
CawCut App Run
Entry point for anything CawCut-App related: discovery ("what can this app do", "what apps are available"), catalog browsing, and running Apps. Wraps cawcut app list, cawcut app describe, and cawcut app run. Also decides when a request has no App match and hands off to cawcut-generate.
Skill files are English-only. SKILL.md and references/ must not contain Chinese or other non-English prose (including YAML description trigger phrases). Match the user's language only in live replies via reply_language.
Step -1 — Handoff state (check first)
If this turn started because cawcut-generate already ran its own app-catalog check and the user confirmed they want a specific App (see its "Check the App catalog first" rule), that App is already decided. Skip Step 1 catalog scoring and app-picker menus. Go straight to cawcut app describe "<app name>" + tables + input menu.
Still live-fetch when needed: before cawcut app run, run a fresh cawcut app list --json in this turn to resolve the internal app ID — use only that command's output, not catalog JSON from earlier messages or from cawcut-generate's earlier call in the same turn. describe is always live; never substitute a prior describe snapshot from conversation memory.
If the user's subject or goal changes after this handoff (including after a rejected/interrupted tool call), Step -1 no longer applies — restart at Step 1 and re-score the catalog.
Otherwise, continue at Step 0.
Step 0 — Bootstrap
Run bootstrap as a silent guardrail, not as a user-facing phase.