Technology Apr 15, 2026 · 5 min read

LOS-starter — How I Built a File-Based OS for My Dev Work

LOS-starter — How I Built a File-Based OS for My Dev Work 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 ex...

DE
DEV Community
by Gad Ofir
LOS-starter — How I Built a File-Based OS for My Dev Work

LOS-starter — How I Built a File-Based OS for My Dev Work

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:managed markers on all updatable files

    The skills that make it work

    Every workflow in LOS is a Claude Code skill. Here's what's actually in .claude/skills/:

  • /task-system — Manages a single-task-at-a-time project workflow inside the repo

  • /build-project — Creates a new project in memory/projects/ with standard structure

  • /learn — Captures and structures knowledge into memory/knowledge/. Handles two modes: topic learning and source ingestion

  • /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

  • /evolve — Runs a full LOS system review, health check, and improvement suggestions

  • /update-los — Safely updates LOS from upstream (LOS-starter) while preserving user data

  • /publish-project — Analyze a GitHub project, generate a real article with actual insights about how it uses the task system and LOS architecture, and publish...

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.

The task system was the whole point

I didn't want another Notion database. I wanted tasks that live next to the code, survive every context window compaction, and pair with Claude Code's memory model.

The /task-system skill implements a BMAD-inspired lifecycle:

plan → build → verify → fix → learn → close

The plan phase uses three sequential "thinking hats":

  1. Analyst — what are we really solving, what's the domain context
  2. Architect — what's the technical approach, what could break
  3. PM — break it into 8-10 concrete steps, each one atomic

All three hats write into one file. Analysis, architecture notes, plan, work log, verify results, fix attempts, learnings — everything goes into .tasks/active/task-NNN.md. One file is the truth.

There are 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 survives updates. Your identity lives in memory/identity.md, which is never replaced by /update-los. CLAUDE.md can be overwritten cleanly.
  • Skills are self-assembling. Drop a new skill into .claude/skills/my-thing/SKILL.md, and the routing layer finds it. No config to edit.
  • LOS:managed markers — every updatable file is tagged. The update mechanism knows exactly what it's allowed to touch.
  • One file per task. No task trackers, no Jira, no scatter. If it's not in .tasks/active/task-NNN.md, it's not happening.

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

DE
Source

This article was originally published by DEV Community and written by Gad Ofir.

Read original article on DEV Community
Back to Discover

Reading List