Skip to content

feat: minimal bootstrap — CLAUDE.md-seeded manager project #25

@codevibesmatter

Description

@codevibesmatter

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:

  1. Install kata-wm
  2. Run one command
  3. 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
  1. mkdir -p <path>
  2. Write CLAUDE.md into <path>/
  3. 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-managerkata 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

  • kata init ~/my-kata creates directory with only CLAUDE.md
  • CLAUDE.md contains enough context for Claude to drive onboard
  • After kata enter onboard in the new project, full kata setup works
  • Manager project lives in user-chosen location, not a hidden directory
  • Existing feat: Kata Manager Project — multi-project control plane #23 manager commands still work from whatever project has the registry

Metadata

Metadata

Assignees

No one assigned

    Labels

    approvedSpec approved — ready for implementationfeatureNew feature or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions