{"slug": "2og5", "title": "[", "summary": "A developer built skill-tree, a plugin that analyzes Claude Code and Cowork session history to classify 11 collaboration behaviors and assign archetype cards. The main engineering challenge was state persistence across ephemeral Cowork sessions, solved with a dual-state-path design that writes to $CLAUDE_PLUGIN_ROOT/.user-state/ instead of $HOME. The plugin is available on the Claude plugin marketplace and as an npm package.", "body_md": "[\n\n\"# When your $HOME disappears mid-session: building persistent state for a Claude plugin\\n\\nI've been using Claude Code daily for months and couldn't tell whether I was genuinely improving or just getting faster at the same handful of habits. Anthropic published a study in February that classified 11 observable collaboration behaviors across 9,830 Claude conversations. I wanted to know what mine looked like against that baseline.\\n\\nSo I built skill-tree: it analyzes your Claude Code or Cowork session history, classifies those same 11 behaviors, assigns one of seven archetype cards (rendered as tarot cards with museum art), and picks a behavior you haven't touched as a growth quest for your next session. The interesting engineering problem turned out to be state persistence.\\n\\n**The dual-path problem**\\n\\nClaude Code has a stable home directory, so persisting growth quests across sessions is straightforward: write to ~/.skill-tree/. Cowork doesn't. Its $HOME is ephemeral — it gets wiped between sessions. If I wrote quest state to $HOME in Cowork, every session would start from scratch, which defeats the whole point of a \\\"what haven't you tried yet\\\" mechanic.\\n\\nThe fix was a dual-state-path design. In Cowork, the plugin writes to $CLAUDE_PLUGIN_ROOT/.user-state/ instead of $HOME. $CLAUDE_PLUGIN_ROOT survives session boundaries in Cowork where $HOME doesn't. Claude Code takes the ~/.skill-tree/ path. The SessionStart hook checks which environment it's running in and routes accordingly.\\n\\n*\n\n`bash\\nclaude plugin marketplace add robertnowell/ai-fluency-skill-cards\\nclaude plugin install skill-tree-ai@ai-fluency-skill-cards\\n`\n\n`npm install skill-tree-ai`\n\n) for Cursor, VS Code, and Windsurf.\\n\\nhttps://github.com/robertnowell/ai-fluency-skill-cards\",", "url": "https://wpnews.pro/news/2og5", "canonical_source": "https://dev.to/palo_alto_ai/-2og5", "published_at": "2026-06-24 18:34:57+00:00", "updated_at": "2026-06-24 18:38:55.425978+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "large-language-models", "ai-agents"], "entities": ["Claude Code", "Cowork", "Anthropic", "skill-tree", "Robert Nowell"], "alternates": {"html": "https://wpnews.pro/news/2og5", "markdown": "https://wpnews.pro/news/2og5.md", "text": "https://wpnews.pro/news/2og5.txt", "jsonld": "https://wpnews.pro/news/2og5.jsonld"}}