session-mode-init
Loaded at session start when spellbook_session_init returns mode data, or when mode.type is 'unset'. Triggers: session init mode handling, '/mode', mode selection, 'fun mode', 'tarot mode'.
Best use case
session-mode-init is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Loaded at session start when spellbook_session_init returns mode data, or when mode.type is 'unset'. Triggers: session init mode handling, '/mode', mode selection, 'fun mode', 'tarot mode'.
Teams using session-mode-init should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/session-mode-init/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How session-mode-init Compares
| Feature / Agent | session-mode-init | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Loaded at session start when spellbook_session_init returns mode data, or when mode.type is 'unset'. Triggers: session init mode handling, '/mode', mode selection, 'fun mode', 'tarot mode'.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
<analysis> Procedure for reading mode type from session init and dispatching to the correct mode skill or prompting the user for selection. </analysis> <reflection> Did I dispatch to the correct mode skill based on the session init response, and did I persist the user's choice if mode was unset? </reflection> # Session Mode Init ## Invariant Principles 1. **Ask Once, Persist** - The mode selection question is asked only when mode is unset; the choice is persisted via `spellbook_config_set`. 2. **Mode Drives Skill, Not Behavior** - Mode selection loads the corresponding skill; mode never alters code output or technical decisions. 3. **Graceful Degradation** - If MCP is unavailable, remember the preference in-session without blocking initialization. Reference procedure for selecting and dispatching session modes during session initialization. ## Mode Dispatch Table | Response from `spellbook_session_init` | Action | | --------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `mode.type: "unset"` | Ask question below, then call `spellbook_config_set(key="session_mode", value="fun"/"tarot"/"none")` | | `mode.type: "fun"` + persona/context/undertow | Load `fun-mode` skill, announce persona+context+undertow in greeting | | `mode.type: "tarot"` | Load `tarot-mode` skill, announce roundtable in greeting | | `mode.type: "none"` | Proceed normally with standard greeting | | MCP unavailable | Ask mode question manually, remember preference for session | ## Mode Selection Question Ask once when mode is unset: > Research suggests creative modes improve LLM output via "seed-conditioning" ([Nagarajan et al., ICML 2025](https://arxiv.org/abs/2504.15266)). I can adopt: > > - **Fun mode**: Random personas each session (dialogue only, never in code) > - **Tarot mode**: Ten archetypes collaborate via visible roundtable (Magician, Priestess, Hermit, Fool, Chariot, Justice, Lovers, Hierophant, Emperor, Queen) > - **Off**: Standard professional mode > > Which do you prefer? (Use `/mode fun`, `/mode tarot`, or `/mode off` anytime to switch) ## Procedure 1. Read `mode.type` from `spellbook_session_init` response. 2. Match against dispatch table above. 3. If `"unset"`: present the selection question, wait for user answer, then call `spellbook_config_set(key="session_mode", value=<chosen>)`. 4. If `"fun"` or `"tarot"`: load the corresponding skill (`fun-mode` or `tarot-mode`) and incorporate its output into the session greeting. 5. If `"none"` or MCP unavailable: no further action needed for mode.
Related Skills
tarot-mode
Use when session returns mode.type='tarot', user says '/tarot', or requests roundtable dialogue with archetypes. Triggers: '/tarot', 'use tarot mode', 'roundtable with archetypes', 'tarot personas'. Session-level mode, not task-level.
session-resume
Session resume protocol and session repairs handling. Loaded when spellbook_session_init returns resume_available: true, or when session_init returns a repairs array. Triggers: 'resume', 'continue', 'where were we', session resume, session repairs.
rounding-up-worktree-sessions
Use when scattered Claude Code sessions need to be found, grouped by effort, relocated to the right worktree's resume picker, or reopened together. Triggers: 'round up my sessions', 'find my worktree sessions', 'reopen my claude sessions by worktree', 'reorient sessions', 'relaunch sessions', 'resume my recent sessions grouped by worktree', 'my sessions are scattered', 'open all sessions for this effort'. NOT for: relocating a project's sessions because the CODE moved (use move-project); creating worktrees (use using-git-worktrees).
fun-mode
Use when starting a session and wanting creative engagement. Triggers: '/fun', 'use a persona', 'be creative', 'make this fun', 'use a character', 'spice it up'. Session-level mode, not task-level.
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment. Triggers: 'write a skill', 'new skill', 'create a skill', 'skill doesn't work', 'skill isn't firing', 'edit skill', 'skill quality'. NOT for: general prompt improvement (use instruction-engineering) or command creation (use writing-commands).
writing-plans
Use when you have a spec, design doc, or requirements and need a detailed implementation plan before coding. Triggers: 'write a plan', 'create implementation plan', 'plan this out', 'break this down into steps', 'convert design to tasks', 'implementation order'. Also invoked by develop during planning. NOT for: reviewing existing plans (use reviewing-impl-plans).
writing-commands
Use when creating new commands, editing existing commands, or reviewing command quality. Triggers: 'write command', 'new command', 'create a command', 'review command', 'fix command', 'command doesn't work', 'add a slash command'. NOT for: skill creation (use writing-skills).
verifying-hunches
Use when about to claim discovery during debugging. Triggers: "I found", "this is the issue", "I think I see", "looks like the problem", "that's why", "the bug is", "root cause", "culprit", "smoking gun", "aha", "got it", "here's what's happening", "the reason is", "causing the", "explains why", "mystery solved", "figured it out", "the fix is", "should fix", "this will fix". Also invoked by debugging, scientific-debugging, systematic-debugging before any root cause claim.
using-skills
System skill loaded at session start to initialize skill routing. Not invoked directly by users. Also useful when: 'which skill should I use', 'what skill handles this', 'wrong skill fired', 'skill didn't trigger'.
using-lsp-tools
Use when mcp-language-server tools are available and you need semantic code intelligence. Triggers: 'find definition', 'find references', 'who calls this', 'rename symbol', 'type hierarchy', 'go to definition', 'where is this used', 'where is this defined', 'what type is this'. Provides navigation, refactoring, and type analysis via LSP.
using-git-worktrees
Use when starting feature work that needs isolation from current workspace, or setting up parallel development tracks. Triggers: 'worktree', 'separate branch', 'isolate this work', 'don't mess up current work', 'work on two things at once', 'parallel workstreams', 'new branch for this', 'keep my current work safe'.
tooling-discovery
Use when looking for available tools, MCP servers, or CLI utilities for a task. Triggers: 'what tools do I have', 'is there an MCP for this', 'what's available', 'find a tool for', 'discover tooling', 'what CLI tools exist'. NOT for: documenting existing tools (use documenting-tools).