Files
start-os/CLAUDE.md
Aiden McClelland 6a1b1627c5 chore: reserialize db on equal version, update bindings and docs
- Run de/ser roundtrip in pre_init even when db version matches, ensuring
  all #[serde(default)] fields are populated before any typed access
- Add patchdb.md documentation for TypedDbWatch patterns
- Update TS bindings for CheckPortParams, CheckPortRes, ifconfigUrl
- Update CLAUDE.md docs with patchdb and component-level references
2026-02-16 19:27:48 -07:00

2.2 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Architecture

See ARCHITECTURE.md for the full system architecture, component map, build pipeline, and cross-layer verification order.

Each major component has its own CLAUDE.md with detailed guidance: core/, web/, container-runtime/, sdk/.

Build & Development

See CONTRIBUTING.md for:

  • Environment setup and requirements
  • Build commands and make targets
  • Testing and formatting commands
  • Environment variables

Quick reference:

. ./devmode.sh                            # Enable dev mode
make update-startbox REMOTE=start9@<ip>   # Fastest iteration (binary + UI)
make test-core                            # Run Rust tests

Operating Rules

  • Always verify cross-layer changes using the order described in ARCHITECTURE.md
  • Check component-level CLAUDE.md files for component-specific conventions. ALWAYS read it before operating on that component.
  • Follow existing patterns before inventing new ones

Supplementary Documentation

The docs/ directory contains cross-cutting documentation for AI assistants:

  • TODO.md - Pending tasks for AI agents (check this first, remove items when completed)
  • USER.md - Current user identifier (gitignored, see below)
  • exver.md - Extended versioning format (used across core, sdk, and web)
  • VERSION_BUMP.md - Guide for bumping the StartOS version across the codebase

Component-specific docs live alongside their code (e.g., core/rpc-toolkit.md, core/i18n-patterns.md).

Session Startup

On startup:

  1. Check for docs/USER.md - If it doesn't exist, prompt the user for their name/identifier and create it. This file is gitignored since it varies per developer.

  2. Check docs/TODO.md for relevant tasks - Show TODOs that either:

    • Have no @username tag (relevant to everyone)
    • Are tagged with the current user's identifier

    Skip TODOs tagged with a different user.

  3. Ask "What would you like to do today?" - Offer options for each relevant TODO item, plus "Something else" for other requests.