File contents Add Wizard Handler
Structure
Annotate an object or class with @WizardHandler. Nest WizardStep objects inside. KSP generates WizardActivity; no manual Activity class.
@WizardHandler(trigger = ["/start"])
object MyWizard {
object NameStep : WizardStep(isInitial = true) { ... }
object AgeStep : WizardStep { ... }
}
Parameters
Parameter
Purpose
Default
trigger
Commands that start the wizard
Required
scope
Update types to check for trigger
[UpdateType.MESSAGE]
stateManagers
State manager classes for step storage
MapStringStateManager, MapIntStateManager, MapLongStateManager
Trigger
trigger = ["/start"] — single command
trigger = ["/start", "/register"] — multiple commands
Scope
scope = [UpdateType.MESSAGE] — commands in messages (default)
scope = [UpdateType.CALLBACK_QUERY] — button-triggered wizard
State Managers
KSP matches each step's store() return type to a state manager:
String? → MapStringStateManager
Int? → MapIntStateManager
Long? → MapLongStateManager
Override per step with @WizardHandler.StateManager:
@WizardHandler(trigger = ["/start"], stateManagers = [CustomStateManager::class])
object MyWizard {
object NameStep : WizardStep { ... }
@WizardHandler.StateManager(OtherStateManager::class)
object AgeStep : WizardStep { ... }
}
Related Skills
build-wizard-flow — Full wizard flow overview
add-wizard-step — Implement WizardStep for each step
Reference
WizardHandler.kt
WizardStateManager.kt
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1 --- 2 name: vendelieu-telegram-bot-add-wizard-handler 3 description: Add Wizard Handler 4 --- 5 6 # Add Wizard Handler 7 8 ## Structure 9 10 Annotate an object or class with `@WizardHandler`. Nest `WizardStep` objects inside. KSP generates `WizardActivity`; no manual Activity class. 11 12 ```kotlin 13 @WizardHandler(trigger = ["/start"]) 14 object MyWizard { 15 object NameStep : WizardStep(isInitial = true) { ... } 16 object AgeStep : WizardStep { ... } 17 } 18 ``` 19 20 ## Parameters 21 22 | Parameter | Purpose | Default | 23 |-----------|---------|---------| 24 | `trigger` | Commands that start the wizard | Required | 25 | `scope` | Update types to check for trigger | `[UpdateType.MESSAGE]` | 26 | `stateManagers` | State manager classes for step storage | `MapStringStateManager`, `MapIntStateManager`, `MapLongStateManager` | 27 28 ## Trigger 29 30 - `trigger = ["/start"]` — single command 31 - `trigger = ["/start", "/register"]` — multiple commands 32 33 ## Scope 34 35 - `scope = [UpdateType.MESSAGE]` — commands in messages (default) 36 - `scope = [UpdateType.CALLBACK_QUERY]` — button-triggered wizard 37 38 ## State Managers 39 40 KSP matches each step's `store()` return type to a state manager: 41 42 - `String?` → `MapStringStateManager` 43 - `Int?` → `MapIntStateManager` 44 - `Long?` → `MapLongStateManager` 45 46 Override per step with `@WizardHandler.StateManager`: 47 48 ```kotlin 49 @WizardHandler(trigger = ["/start"], stateManagers = [CustomStateManager::class]) 50 object MyWizard { 51 object NameStep : WizardStep { ... } 52 53 @WizardHandler.StateManager(OtherStateManager::class) 54 object AgeStep : WizardStep { ... } 55 } 56 ``` 57 58 ## Related Skills 59 60 - **build-wizard-flow** — Full wizard flow overview 61 - **add-wizard-step** — Implement WizardStep for each step 62 63 ## Reference 64 65 - [WizardHandler.kt](telegram-bot/src/commonMain/kotlin/eu/vendeli/tgbot/annotations/WizardHandler.kt) 66 - [WizardStateManager.kt](telegram-bot/src/commonMain/kotlin/eu/vendeli/tgbot/types/chain/WizardStateManager.kt) 67 68 --- 69 > Converted and distributed by [TomeVault](https://tomevault.io/claim/vendelieu) — claim your Tome and manage your conversions. 70 <!-- tomevault:4.0:skill_md:2026-04-11 -->
tomevault-io/skills-registry/tree/main/vendelieu--telegram-bot--add-wizard-handler commit b968c42ccd
Frequently asked questions How do I install the Vendelieu Telegram Bot Add Wizard Handler skill? Run npx skillmds@latest add tomevault-io/vendelieu-telegram-bot-add-wizard-handler in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Vendelieu Telegram Bot Add Wizard Handler skill do? Add Wizard Handler It is listed under Coding & Dev Tools on SkillMD.
Is Vendelieu Telegram Bot Add Wizard Handler safe to use? This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Vendelieu Telegram Bot Add Wizard Handler? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Vendelieu Telegram Bot Add Wizard Handler free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Vendelieu Telegram Bot Add Wizard Handler? tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.