lytos-learn-todo-api
v0.1.0
Published
A simple todo API — learn Lytos by building features step by step
Readme
Lytos Learn — Build a Todo API with Lytos
Learn the Lytos method hands-on. Clone this repo, follow the steps, build features — guided by your AI.
What is Lytos? · Install the CLI · Lire en français
What you'll learn
This is a small todo API project pre-configured with Lytos. Issues are ready in the board. Some are done, some are in progress, some are waiting. Your job: pick up where the project left off and build features using the Lytos workflow.
By the end, you'll know how to:
- See the board —
lyt board - Inspect an issue —
lyt show ISS-0006 - Start an issue —
lyt start ISS-0002 - Close an issue —
lyt close ISS-0002 - Validate the project —
lyt lintandlyt doctor - Create new issues with your AI
Prerequisites
- Node.js 20+ installed
- An AI tool — Claude Code, Cursor, Codex, or any LLM
- 5 minutes — that's all it takes
Step 0 — Setup
# Install the CLI
npm install -g lytos-cli
# Clone this project
git clone https://github.com/getlytos/lytos-learn.git
cd lytos-learn
# Verify it works
npm start
# → Todo API running on http://localhost:3000Test the API:
curl http://localhost:3000/todosStop the server (Ctrl+C) and move on.
Step 1 — See the board
lyt boardThis is your project dashboard. You'll see issues in every status — icebox, backlog, sprint, in progress, review, done. This is how Lytos tracks work.
Notice the dependency arrows: ISS-0009 depends on ISS-0004, which depends on ISS-0002. You can't start ISS-0009 before ISS-0002 is done.
Step 2 — Inspect an issue in progress
lyt show ISS-0006ISS-0006 is in progress with 2 out of 4 checklist items done. The progress bar shows 50%. This is how you track where you are on any issue.
Try also:
lyt showThis shows all in-progress issues with their progress. In a real project with a team, this is how you see what everyone is working on.
Step 3 — Start your first issue
Pick ISS-0002 (toggle a todo done/undone) — it's simple and has no dependencies:
lyt start ISS-0002Watch what happens:
- The issue moves from
1-backlog/to3-in-progress/ - A git branch
feat/ISS-0002-toggle-todois created - The board is regenerated
Run lyt board again to see the change.
Step 4 — Build the feature with your AI
Open your AI tool (Claude Code, Cursor, Codex) and say:
"Read .lytos/manifest.md and the issue in .lytos/issue-board/3-in-progress/ISS-0002-toggle-todo.md. Then implement it."
The AI will:
- Read the project manifest (understands the project)
- Read the issue (knows what to build)
- Read the rules (knows the quality criteria)
- Implement the feature following the checklist
When it's done, verify:
npm test
lyt show ISS-0002Step 5 — Close the issue
When all checklist items are done and tests pass:
lyt close ISS-0002The issue moves to 5-done/, the board updates, and you're ready for the next one.
Run lyt board to see your progress.
Step 6 — Check project health
lyt lint
lyt doctorlyt lint validates the .lytos/ structure. lyt doctor goes deeper — checks for broken links, stale memory, missing skills, and gives you a health score.
Step 7 — Create your own issue
This is the real test. Say to your AI:
"I want to add [your idea] to the todo API. Create an issue for it."
The AI should create a properly formatted issue file with frontmatter, a checklist, and a definition of done. Review it, start it with lyt start, build it, close it with lyt close.
ISS-0005 in the backlog has some ideas if you need inspiration.
What's next?
You've just experienced the full Lytos workflow. To use it on your own project:
cd your-project
lyt init- Full documentation — the method in detail
- The method — the 5 pillars, 9 skills, rules
- The CLI — all commands
Project structure
lytos-learn/
├── src/
│ ├── server.js # The todo API
│ └── server.test.js # Tests
├── .lytos/
│ ├── manifest.md # Project constitution
│ ├── memory/ # Accumulated knowledge
│ ├── rules/ # Quality criteria
│ └── issue-board/ # Kanban board with real issues
│ ├── BOARD.md
│ ├── 0-icebox/ # Ideas for later
│ ├── 1-backlog/ # Ready to start
│ ├── 2-sprint/ # Committed for this sprint
│ ├── 3-in-progress/ # Being worked on
│ ├── 4-review/ # Under review
│ └── 5-done/ # Completed
└── package.json"The best way to learn a method is to use it on a real project."
