LOS-starter: The Markdown Memory System That Makes Claude Code Remember
The Idea
Public cold-start template for the Life Operating System. Users clone it, run onboarding, and get a working LOS instance with task-system, skills, and memory. Also the upstream source for /update-los.
Why it exists: Gives people a single place to understand LOS and bootstrap their own instance. Managed files are pulled from this repo during updates.
Repo: https://github.com/GadOfir/LOS-starter Version: v0.3.0
The Stack
Static HTML landing page (GitHub Pages) + Claude Code skills + markdown-based system.
What's in the box
- Task system (BMAD-inspired plan phase, loop mode, cross-repo support)
- Self-assembling routing (skills declare their own triggers via SKILL.md)
- Update mechanism (
/update-losβ migration + regular updates) - Identity in
memory/identity.md(survives updates) -
LOS:managedmarkers on all updatable filesThe skills that make it work
Every workflow in LOS is a Claude Code skill. Here's what's actually in
.claude/skills/: /learnβ Captures and structures knowledge into memory/knowledge/. Handles two modes: topic learning and source ingestion/build-projectβ Creates a new project in memory/projects/ with standard structure/task-systemβ Manages a single-task-at-a-time project workflow inside the repo/evolveβ Runs a full LOS system review, health check, and improvement suggestions/create-skillβ Creates new Claude Code skills for LOS following Skills 2.0 conventions/design-htmlβ Creates beautiful single-file HTML pages with modern CSS. No frameworks, no build tools
Skills self-register by dropping a SKILL.md file into .claude/skills/{name}/. No central registry. No hardcoded lists. The routing layer reads the frontmatter and dispatches automatically.
Memory is the whole point
I didn't want another Notion database. I wanted Claude to remember what I'm working on β across conversations, across compactions, across weeks.
LOS does that by storing everything in plain markdown files under memory/:
memory/
βββ identity.md # who I am, current state, active task
βββ projects/ # one folder per active project
β βββ my-project/
β βββ README.md
β βββ tasks.md
β βββ decisions.md
βββ knowledge/ # things I've learned, organised by topic
βββ docker.md
βββ react.md
At session start, Claude reads memory/identity.md and knows: who I am, what projects are active, and what I was working on last. No onboarding, no re-explaining context.
Updates to LOS replace managed files cleanly β your memory never gets touched because identity.md is outside the managed scope.
One skill deep-dive: /task-system
Of the six skills, /task-system is the one with the most structure. It runs a BMAD-inspired lifecycle on a single task at a time:
plan β build β verify β fix β learn β close
The plan phase wears three thinking hats in sequence:
- Analyst β what are we really solving, what's the domain context
- Architect β what's the technical approach, what could break
- PM β break it into 8-10 concrete steps, each one atomic
All three hats write into one file β .tasks/active/task-NNN.md. Analysis, architecture notes, plan, work log, verify results, fix attempts, learnings β one file is the truth. No scattered briefs, no Google Docs, no side files.
Two modes:
- Gated β human approves each phase. Default.
- Loop β Claude auto-advances through phases until STUCK, BLOCKED, or PASS. Use this when you're away.
Status vocabulary is deliberately small: IN_PROGRESS, FAIL, STUCK, BLOCKED, PASS, ABANDONED. STUCK is the only full-stop β two failed fix attempts and the loop exits, waiting for a human.
Real tasks that built this project
This isn't theoretical. Here are the actual tasks from memory/projects/LOS-starter/tasks.md:
| Task | Why | Status |
|---|---|---|
| Adopt BMAD patterns (task-001) | Onboarding gate, state tracking, enriched skills | Done |
| Cross-repo sync (task-002) | Both repos need identical task-system structure | Done |
| Autonomy + handoff guards (task-003) | Loop mode pausing, cross-repo build in wrong repo | Done |
| Update mechanism (task-004) | No safe way to update old LOS instances | Done |
| Self-assembling routing (task-005) | Updates wiped custom skill entries from CLAUDE.md | Done |
Each of these was a single task file, planned with three hats, built, verified, and closed. The fact that they're all Done is the task system working.
The decisions I had to make
Every decision is logged in decisions.md with a reason. This file answers the question "why is it done this way?" without anyone having to read the code:
Host on GitHub Pages as static HTML
2026-03-28 β Zero-cost, zero-ops, fast to iterate
Single landing page (no framework)
2026-03-28 β Keeps it simple, matches LOS philosophy
Identity in memory/identity.md, not CLAUDE.md
2026-03-29 β Makes CLAUDE.md 100% replaceable on update
LOS:managed markers for update boundary
2026-03-29 β Any file with marker gets replaced, everything else untouched
Self-assembling routing from skill frontmatter
2026-03-29 β No hardcoded skill lists β custom skills auto-route
No CLI for updates β Claude is the update tool
2026-03-29 β /update-los skill fetches from GitHub, simpler than npm tooling
What makes it different
Most dev tooling fights Claude Code. LOS works with it:
-
Memory is the foundation.
memory/identity.mdis the source of truth for who I am and what's active. Claude reads it at session start β no re-onboarding, ever. -
Identity survives updates.
/update-loscan replace CLAUDE.md, routing, and skills cleanly because your identity lives outside the managed scope. -
Skills are self-assembling. Drop a new skill into
.claude/skills/my-thing/SKILL.md, and the routing layer finds it via frontmatter. No config to edit. -
LOS:managedmarkers β every updatable file is tagged so the update mechanism knows exactly what it's allowed to touch. -
One file per task. The
/task-systemskill enforces a single active task file. No scatter, no lost context.
Try it
git clone https://github.com/GadOfir/LOS-starter.git
cd LOS-starter
claude
Then say "start session" and let it bootstrap your first task.
Repo: https://github.com/GadOfir/LOS-starter
Built with: Claude Code + markdown + zero frameworks













