Scaffolds the .lo/ directory for a new LO project. Creates project.yml, initializes BACKLOG.md, and optionally reconciles GitHub automation. Use when user says "setup lo", "new lo project", "scaffold lo", "add lo to this repo", or "/lo:setup".
Scaffolds the .lo/ directory convention in the current repository root. Creates the project identity, backlog, stream, and directory structure that all other LO skills depend on.
/lo:setup.lo/ directory FIRST. If one exists, warn the user and ask for explicit confirmation before overwriting. Do not silently replace project data.project.yml is pure YAML — no frontmatter delimiters (---), no markdown body.proj_ UUID for new projects. Never reuse an existing ID.references/project-yml-format.md for the authoritative format spec.Before creating anything, check if .lo/ exists at the repo root.
If it exists:
A .lo/ directory already exists in this repo.
Overwriting will replace project.yml, BACKLOG.md, and STREAM.md.
Proceed? (yes / no)
HARD GATE: Do not continue unless the user explicitly confirms. If they say no, stop.
Also check if this is a git repo:
git rev-parse --is-inside-work-tree 2>/dev/null
If not a git repo, warn but proceed:
This directory is not a git repository. LO will work, but GitHub automation
(Step 8) will be skipped. Consider running git init first.
Ask the user for four values:
Title — project name (e.g., "Nexus", "Platform"). If README.md or package.json exists, suggest a value from those.
Description — one-sentence description of what this project does. Suggest from README or package.json if available.
Status (default: explore):
explore — Vibing on an idea. Minimal ceremony.build — Committed to production-ready software. Full CI/CD.open — Multi-tenant ready. Public-facing polish.closed — No longer active.State (default: private):
public — Publicly visibleprivate — Internal onlyGenerate a project ID:
echo "proj_$(uuidgen | tr '[:upper:]' '[:lower:]')"
Write .lo/project.yml — pure YAML, five fields, no extras. See references/project-yml-format.md for the format contract.