Claude Code and Cowork need different state paths
skill-tree, a Claude plugin that tracks AI fluency behaviors across sessions, uses dual state paths because Cowork's $HOME is ephemeral while Claude Code's persists.
Score breakdown
Developers building Claude plugins across different environments (Claude Code, Cowork, Cursor, VS Code, Windsurf) need to understand platform-specific persistence constraints to ensure user data survives session boundaries.
- 01skill-tree classifies Claude sessions against Anthropic's AI Fluency Index (9,830 conversations, 11 observable behaviors) and suggests one untried behavior as a growth quest target
- 02Cowork's $HOME directory is ephemeral and resets each session, breaking persistence of the growth quest feature
- 03The solution uses dual state paths: Claude Code writes to ~/.skill-tree/ (durable), Cowork writes to $CLAUDE_PLUGIN_ROOT/.user-state/ (persists across Cowork sessions)
skill-tree is a Claude plugin that classifies your sessions against Anthropic's AI Fluency Index, which tracks 9,830 conversations and 11 observable behaviors. The tool's core feature is a "growth quest" — it identifies one behavior you haven't tried and suggests it as a target for your next session. However, the author discovered a critical architectural problem: Cowork's $HOME directory is ephemeral, resetting every session, which meant the quest target never persisted to the next session.
Claude Code writes to ~/.skill-tree/ because its home directory is durable across sessions.
The fix involved implementing dual state paths. Claude Code writes to ~/.skill-tree/ because its home directory is durable across sessions. Cowork writes to $CLAUDE_PLUGIN_ROOT/.user-state/ because that path persists even when $HOME doesn't. A single SessionStart hook reads whichever path is populated and loads the previous quest. The tool then runs a 7-step orchestration (30–60 seconds): find session files, extract user messages, send to a remote classifier running Claude Haiku on Fly.io, assign one of seven archetype cards, synthesize a narrative, render, and return a stable URL. The archetype cards are rendered as tarot cards using curated museum art. The behavior taxonomy comes from Dakan & Feller's 4D AI Fluency Framework, which has four axes: Description, Discernment, Delegation, and Diligence. The first three are visible in chat logs and classifiable; Diligence is not, as it reflects how you act on Claude's output outside the conversation. skill-tree is also available as an MCP server for Cursor, VS Code, and Windsurf.
Key facts
- 01skill-tree classifies Claude sessions against Anthropic's AI Fluency Index (9,830 conversations, 11 observable behaviors) and suggests one untried behavior as a growth quest target
- 02Cowork's $HOME directory is ephemeral and resets each session, breaking persistence of the growth quest feature
- 03The solution uses dual state paths: Claude Code writes to ~/.skill-tree/ (durable), Cowork writes to $CLAUDE_PLUGIN_ROOT/.user-state/ (persists across Cowork sessions)
- 04The tool runs a 7-step orchestration (30–60 seconds) using Claude Haiku on Fly.io to classify behaviors and assign one of seven archetype cards rendered as tarot art
- 05The behavior taxonomy is based on Dakan & Feller's 4D AI Fluency Framework (Description, Discernment, Delegation, Diligence), with three axes visible in chat logs
- 06skill-tree is available as an MCP server for Cursor, VS Code, and Windsurf