“You’ve hit your limit · resets 1:10pm” — sound familiar?
</> For devs who’ve lost an afternoon to context rebuilds

Your AI just stopped.
Your build doesn’t have to.

If you’ve ever spent an hour re-explaining your repo to a fresh agent after a cap, Selfdev turns that limit into a clean handoff. One agent plans. Git stores the memory. The next agent continues exactly where the last one left off.

Strong model = architect Cheap agent = executor Git = shared memory
You know how it goes

One limit message → one painful hour rebuilding everything.

You hit “limit reached” mid-debug. The next chat doesn’t know your stack, your files, the bug, the constraints — or the three approaches you already ruled out. So you start over. Most of “AI productivity” gets eaten by this restart tax.

Cold restarts cost hours

Every fresh agent asks for the repo, the goal, the bug, the logs, the constraints — every single time.

Decisions evaporate

Rejected fixes come back. Architecture gets re-questioned. The new agent touches files it should’ve left alone.

Premium tokens wasted

Your strongest model gets burned on repetitive implementation a scoped, cheaper agent could ship in half the cost.

Selfdev fixes this with one shift: stop trusting chat memory. Start using git as shared project state.

The 3-step handoff

Strong model thinks. Cheap agent ships. Git remembers.

Every agent gets a clean continuation point. Tasks are split into numbered increments with acceptance criteria, the project state lives in git, and the next agent receives a concrete prompt — not a 200k-token chat transcript.

1. Plan with a strong model

Burn premium tokens on what they’re worth: architecture, hard debugging, API design, and risky trade-offs.

2. Package the handoff in git

Selfdev writes the next todo/ increment, applicable how/ rules, acceptance criteria and commit trace into a continuation-ready brief.

3. Continue with any agent

Cheaper agents implement scoped increments without guessing — they follow a tracked requirement and commit when done.

Model routing

Use expensive models like architects, not labourers.

You’re the architect. Selfdev makes the routing explicit: send hard thinking to your strongest model, then ship the same work cheaper by handing scoped increments to a smaller agent.

Strong model work

  • Architecture and system boundaries
  • Hard debugging and root-cause analysis
  • Data model and API design decisions
  • Risky trade-offs that affect the whole codebase

$ Cheaper agent work

  • Implementing the next scoped increment
  • Applying an already chosen pattern
  • Writing tests from clear acceptance criteria
  • Refactoring, documentation and repetitive clean-up
Stop the restart tax

Turn your next AI limit into a handoff point.

Strong model for thinking. Cheap agent for shipping. Git for memory. The next time your agent stops, your build doesn’t.

*Provider limits, outages and account restrictions still exist. The goal is that one limit should never reset your project memory or force the next agent to rebuild context from zero.

Get the 3-step handoff →
What's new

Agent packs, planner prompts and strict todo execution.

Selfdev now ships matching agent definitions for .github/agents/, .codex/agents/, .claude/agents/ and .cursor/rules/, plus a queue-free ./plan.sh planner. The tracked GitHub agent files are know-agent, selfdev-plan-agent, selfdev-do-agent and selfdev-coach.

VS Code Agents panel showing selfdev agents: know-agent, selfdev-plan-agent, selfdev-do-agent, selfdev-coach

know-agent

Knowledge analyst. Scans how/, cross-references with todo/ and source code, validates consistency, and produces a structured quality report before planning or execution.

selfdev-plan-agent

Planning agent. Clarifies the task, reviews git history for patterns, analyses the codebase, and writes a TDD-ready todo/ increment linked only to the relevant how/ files.

selfdev-do-agent

End-to-end execution agent. Creates or consumes the current todo/ increment, runs ./todo.sh, implements exactly what is specified, tests, commits, pushes, and repeats until the queue is clear.

selfdev-coach

AI coding tutor and implementation coach. Guides developers through tasks, hint ladders, test reasoning, code review feedback, weak-point tracking, and spaced repetition.

plan.sh

Queue-free planning CLI. Run python3 plan.py "Fix upload retry" or ./plan.sh "Fix upload retry" to get the exact next todo/ file path, TDD order, and verification gates without advancing the queue.

Built with Selfdev

Real projects that survived the limit message.

Each one was built across multiple AI cap resets — the same workflow that ships this site shipped the apps below.

TypeScript RED home page showing 10 TypeScript learning specialisations with offline exercise and topic counts TypeScript RED continue screen showing active specialisations, mastery status, and next-topic actions TypeScript RED console page showing a live TypeScript editor beside console output and assertion diff history TypeScript RED settings page showing guided, practice, and exam mastery threshold behavior TypeScript RED dashboard showing structured TypeScript learning paths with browse and topic entry points

TypeScript RED typescript.red

Selfdev pipeline self-reconfigured to generate learning content. TypeScript RED is the public proof case: the same repo-native workflow that coordinates agents now creates TypeScript exercise artifacts, challenges them with gates and diagnostics, keeps the review trail visible, and ships the accepted output as a static learning site.

  • Review gates reject weak generated work before learners see it
  • Real compiler evidence feeds TypeScript diagnostics back into tasks
  • Cached LLM orchestration validates schemas, retries, and logs audits
  • Human pipeline review surfaces queue state, evidence, and next commands
  • Static-first output ships rich validated content as simple files
Wash My Car — Best day spotlight with score, weather breakdown, and recommended wash window Wash My Car — 14-day projection stream with color-coded gauge cards

Wash My Car wash-my-car.trushin.vip

100% Free & No Registration. 14-day car wash calendar powered by weather analysis. Scores each day 0–100 based on rain, wind, UV, humidity & temperature. Best-time window recommendation, post-wash rain outlook, and auto-detect location — all privacy-first with data staying local.

Screenshot of trushin.vip — a portfolio website built with selfdev

trushin.vip

Portfolio website, 100% created by selfdev logic.

Screenshot of cloud-agents.trushin.vip — a how-to guide on Cloud Agents built with selfdev

cloud-agents.trushin.vip

The how-to guide on Cloud Agents.

/* this website */

selfdev.trushin.vip

This website, developed by selfdev logic.

Why Selfdev

Six concrete answers to “what does it actually give me?”

Drop-in, zero config

Copy the Selfdev package into a repo root and run ./todo.sh. No pip installs, no extras — just Python 3.8+.

Always know what’s next

Work is pre-split into numbered todo/ increments with acceptance criteria, parse warnings, and linked how/ rules.

Five health checks built in

User, Test, System, Analytics and Debug perspectives score your codebase from 0.0 to 1.0 — so you fix the worst thing first.

Any agent, any cloud

Copilot, Claude, ChatGPT, Gemini, Cursor — all evolve the same repo. State lives in git, not in any single chat session.

See your build evolve

Every completed increment advances a generation after tests pass. Revert and redo prompts let you unwind a bad increment from git history.

Bend it to your domain

Subclass PerspectiveAnalyzer in perspectives.py to add your own checks. Selfdev is a frame, not a cage.

Use it now

One paste into your AI agent — and it sets up Selfdev for you.

One-liner for AI Agents (copy-paste)
Clone https://github.com/evgeny-trushin/selfdev to a temp dir, copy todo.sh, plan.sh, the Python modules, todo/, how/, and the agent folders into my project root, then run ./todo.sh. Read the generated prompt, implement it, commit, and run ./todo.sh --advance. Repeat until all increments are completed.

Requirements: Python 3.8+ — nothing to pip install.

Manual Workflow

./plan.sh ↓ Review the planning prompt ↓ ./todo.sh ↓ Read the prompt (increment + how rules) ↓ Implement the requirement ↓ git add -A && git commit && git push ↓ ./todo.sh --advance ← verify & continue (verifies done → shows next increment)

CLI Reference

CommandDescription
./todo.shShow the current increment prompt
./todo.sh --advanceRun the test gate, mark current done, show next
./todo.sh --statePrint organism state & fitness
./todo.sh --userDocumentation, UX, features
./todo.sh --testCoverage, missing tests
./todo.sh --systemComplexity, coupling, architecture
./todo.sh --analyticsTrends, patterns over time
./todo.sh --debugTODOs, FIXMEs, bugs
./todo.sh --allRun all five perspectives
./todo.sh --revert=0001Generate a git-history revert prompt for one increment
./todo.sh --revert_from=0020Generate a reverse-order prompt for a range of increments
./todo.sh --redo=0001Generate a revert-and-reimplement prompt
./todo.sh --selfdevAnalyze selfdev itself
./todo.sh --root DIRAnalyze a different directory
./plan.shGenerate a queue-free prompt naming the next todo file to create
./plan.sh "Fix upload retry"Plan a free-form requirement without selecting or advancing the queue
python3 plan.py "Fix upload retry"Same planner behavior through the Python entry point
./plan.sh --all-principlesPrint the full how/ convention guide
Under the hood

How the loop actually moves your project forward.

Increment-driven loop

Work is pre-split into numbered increments stored in todo/. Each file contains a description, acceptance criteria, and links to applicable how/ files. The current loop runs through ./todo.sh:

  1. Find the lowest-numbered _todo_ increment file.
  2. Parse the increment, warning about missing descriptions, acceptance criteria, or malformed headings.
  3. Resolve all referenced principles from how/ and inject their full text into the prompt.
  4. Output a complete, self-contained prompt: increment + acceptance criteria + how/ rules + commit message.
  5. You (or your AI agent) implement it and commit.
  6. ./todo.sh --advance runs the test gate, renames _todo__done_, advances the generation, and shows the next increment.

Planner Prompt

./plan.sh is the planning companion for the loop. It intentionally does not read, select, summarize, or advance the current increment queue. With no arguments it names the next todo file using model/summary tokens; with text such as ./plan.sh "Fix upload retry" it names the next slugged todo/ file and outputs TDD order plus automated, visual, and runtime-evidence verification gates.

Cross-Cloud Agent Handoff

Selfdev enables stateless collaboration across cloud environments: one agent commits and pushes, the next agent clones and continues immediately without chat history transfer.

Agent A (Copilot in VS Code) -> commit increment 0015 -> push Agent B (Claude or ChatGPT in cloud) -> clone same repo -> ./todo.sh -> receives increment 0016 prompt Git commit history + organism_state.json = shared project memory

Multi-Perspective Analysis

PerspectiveAnalyzes
UserREADME quality, docs, feature completeness
TestTest coverage ratio, missing test files
SystemMcCabe complexity, file size, coupling
AnalyticsCommit trends, fitness history, patterns
DebugTODOs, FIXMEs, syntax errors, uncommitted changes

Project Structure

your-project/ ├── todo.sh # Increment loop entry point ├── plan.sh # Planning prompt entry point ├── organism.py # Orchestrator ├── models.py # Data models, constants and state paths ├── analyzers.py # Code & git analysis ├── perspectives.py # Base, test and system perspectives ├── user_perspective.py # User perspective ├── diagnostics.py # Analytics & debug perspectives ├── formatters.py # Output formatting ├── increment_tracker.py # Todo/done lifecycle, parse warnings, revert/redo prompts ├── performance.py # Performance helpers ├── organism_state.json # Evolutionary state (auto-managed) ├── how/ # Development principles and operating rules ├── todo/ # Increment files (_todo_ ↔ _done_) ├── tests/ # Unit and consistency tests ├── .github/agents/ # VS Code / GitHub Copilot agents ├── .codex/agents/ # Codex agent definitions ├── .claude/agents/ # Claude agent definitions └── .cursor/rules/ # Cursor rules