neo
Neo is a local expertise-management skill that loads, adds, and deletes modular expertise files and persists Crew and registry state (e.g., assets/crew.json, assets/registry.json, assets/library/). It includes CLI usage and explicit shell commands (e.g., python3 scripts/update.py merge --upstream /path/to/new/neo) that run local Python scripts which modify and delete files.
Neo Protocol
Load expert mental models on-demand to enhance reasoning.
Commands
| Command | Action |
|---|---|
neo | Show Crew status (loaded ✓ vs unloaded ○) |
neo help | List all commands |
neo <module> | Load module. If from Library → auto-add to Crew |
neo <module> off | Unload specific module (stays in Crew) |
neo off | Unload ALL modules |
neo browse | Browse full Library by category |
neo search <query> | Search Library for modules |
neo add <module> | Add to Crew without loading |
neo remove <module> | Remove from Crew (back to Library) |
neo create <description> | Create new module for Library |
neo delete <module> | Delete module from Library/Crew permanently |
Workflow
On neo (no args)
Display Crew status with help hint:
🧠 Neo Protocol
LOADED:
✓ psychologist
✓ game-theorist
CREW:
○ negotiator
○ entrepreneur
RECENTS:
○ dermatologist
○ cosmetic-plastic-surgeon
neo help for commands
Recents shows recently used modules that aren't in Crew. Track in assets/recents.json with timestamps. Persists across sessions. Cap at 5 (oldest drops off). Expires after 1 week of no use.
On neo help
List all available commands.
On neo <module>
- Find module in Crew or Library
- Read the module file into context
- If from Library (not Crew), add to Crew
- Confirm: "🧠 <module> loaded. [summary of mindset]"
On neo <module> off
- Note module is unloaded (remove from active context tracking)
- Module stays in Crew for easy reload
- Confirm: "🧠 <module> unloaded."
On neo off
- Clear all loaded modules
- Confirm: "🧠 All modules unloaded."
On neo create <description>
- Parse the description for expertise type
- Generate module using TEMPLATE.md structure
- Save to assets/library/<category>/<name>.md
- Add to registry.json
- Confirm and offer to load
Files
scripts/neo.py— CLI for library managementreferences/TEMPLATE.md— Module creation templateassets/crew.json— User's personal Crew (gitignored)assets/crew.default.json— Starter Crew (ships with skill)assets/registry.json— Library index with descriptionsassets/library/— All expertise modules by category
First Run
If crew.json doesn't exist, copy crew.default.json → crew.json to initialize the user's personal Crew.
Module Structure
Each module follows this structure:
- Core Mindset — 4-5 key mental traits
- Framework — 4-step systematic approach
- Red Flags — 6 warning signs (🚩)
- Key Questions — 5 essential questions
- Vocabulary — 5 domain terms
- When to Apply — 4 trigger situations
- Adaptations Log — User customizations
State Management
Track loaded modules in conversation context. When user says "neo off" or session ends, consider all modules unloaded. Crew persists in crew.json.
Updates & Customization
Modules in registry.json have a source field:
"upstream"— Came with the skill, updated by ClawHub"custom"— User-created, never touched by updates
And a deleted field for upstream modules:
false— Active, will be updatedtrue— User removed, won't be restored on update
Update behavior:
| Source | Deleted | On Update |
|---|---|---|
| upstream | false | ✅ Update normally |
| upstream | true | ⏭️ Skip (user removed it) |
| custom | — | 👤 Never touched |
Update script:
# Check status
python3 scripts/update.py status
# Merge upstream updates
python3 scripts/update.py merge --upstream /path/to/new/neo
# Delete a module (marks upstream as deleted, removes custom)
python3 scripts/update.py delete --module physicist
# Restore a deleted upstream module
python3 scripts/update.py restore --module physicist
On neo delete <module>:
- If upstream: Set
deleted: true(can be restored) - If custom: Actually remove from registry and library