Problem
Current onboard flow requires the user to already know kata exists and run kata enter onboard. The manager project (from #23) creates infrastructure in ~/.kata/manager/ — a hidden config directory that's not a real user project.
The ideal new-user experience is:
- Install kata-wm
- Run one command
- Open Claude Code and just talk
Proposal
kata init creates a regular project directory with nothing but a CLAUDE.md. That's the entire bootstrap.
What kata init does
kata init [path]
# defaults to ~/kata-manager
mkdir -p <path>
- Write
CLAUDE.md into <path>/
- Print: "Open Claude Code here and say 'help me get started'"
No .kata/, no wm.yaml, no hooks, no registry. Just the CLAUDE.md seed.
What the CLAUDE.md contains
Minimal instructions for Claude:
- What kata-wm is (one paragraph)
- This is your kata manager project — use it to manage all your kata-enabled projects
- To set up this project: run
kata enter onboard
- To set up other projects:
kata setup --batteries --cwd=/path/to/project
- Brief overview of modes, hooks, and the
kata CLI
- How to discover existing projects:
kata projects list
The user experience
npm install -g kata-wm
kata init ~/kata-manager
cd ~/kata-manager
claude
"Help me get started"
Claude reads CLAUDE.md → runs kata enter onboard → interactive setup begins → hooks/config/templates all created by the onboard flow inside Claude.
After onboard completes, the manager project is a fully configured kata project that also knows about the user's other projects.
Key design decisions
- Manager is a regular project — lives in user space (e.g.
~/kata-manager), not hidden in ~/.kata/
- CLAUDE.md is the only bootstrap artifact — everything else is created by the onboard flow
- No special manager modes or infrastructure — it's just a kata project with a good CLAUDE.md
- User owns it — can git init, push to GitHub, customize, rename, move
Relationship to #23
This supersedes the kata projects init-manager command from #23. The manager foundation code (registry, discovery, health checks) is still useful — it just gets invoked from a regular project rather than a special ~/.kata/manager/ location.
Changes needed:
- New
kata init [path] command (creates dir + writes CLAUDE.md)
- CLAUDE.md template for the manager project
- Update
MANAGER_ROOT in paths.ts to be configurable (read from registry or env) rather than hardcoded to ~/.kata/manager/
- Remove or alias
kata projects init-manager → kata init
Non-goals
- No changes to the onboard flow itself — it already works
- No special manager-only modes
- No auto-discovery at init time (that happens during onboard)
Acceptance Criteria
Problem
Current onboard flow requires the user to already know kata exists and run
kata enter onboard. The manager project (from #23) creates infrastructure in~/.kata/manager/— a hidden config directory that's not a real user project.The ideal new-user experience is:
Proposal
kata initcreates a regular project directory with nothing but aCLAUDE.md. That's the entire bootstrap.What
kata initdoeskata init [path] # defaults to ~/kata-managermkdir -p <path>CLAUDE.mdinto<path>/No
.kata/, nowm.yaml, no hooks, no registry. Just the CLAUDE.md seed.What the CLAUDE.md contains
Minimal instructions for Claude:
kata enter onboardkata setup --batteries --cwd=/path/to/projectkataCLIkata projects listThe user experience
Claude reads CLAUDE.md → runs
kata enter onboard→ interactive setup begins → hooks/config/templates all created by the onboard flow inside Claude.After onboard completes, the manager project is a fully configured kata project that also knows about the user's other projects.
Key design decisions
~/kata-manager), not hidden in~/.kata/Relationship to #23
This supersedes the
kata projects init-managercommand from #23. The manager foundation code (registry, discovery, health checks) is still useful — it just gets invoked from a regular project rather than a special~/.kata/manager/location.Changes needed:
kata init [path]command (creates dir + writes CLAUDE.md)MANAGER_ROOTin paths.ts to be configurable (read from registry or env) rather than hardcoded to~/.kata/manager/kata projects init-manager→kata initNon-goals
Acceptance Criteria
kata init ~/my-katacreates directory with only CLAUDE.mdkata enter onboardin the new project, full kata setup works