Skip to content
/

alexeykrol/claude-code-starter v6

alexeykrol-cc-starter · alexeykrol/claude-code-starter · ★ 180 · last commit 2026-04-27

Russian-language Claude Code starter v6 with auto project-type detection, SNAPSHOT.md session state, pre/post compact hooks, and repo_access git-history control.

Best whenAgent memory shouldn't leak into public git history; repo_access modes (private-solo/shared/public) should control framework file visibility explicitly.
vs seeds
agent-os(installer-driven scaffold, markdown state) but adds explicit session lifecycle (start/finish skills), pre/post compact …
Primitive shape
No installable primitives
00

Summary

alexeykrol/claude-code-starter — Summary

alexeykrol/claude-code-starter (v6.1.0) is a Russian-language Claude Code starter framework that auto-detects whether a project is code, content, or hybrid type and installs a matching skill/agent set. The framework features a single-file installer (init-project.sh), 6 skills, 3 agents, 4 hooks (PreCompact, PostCompact, PostToolUse, SubagentStop), a SNAPSHOT.md persistent session state file, and a repo_access system for controlling git history visibility (private-solo, private-shared, public). Version 6 introduced auto project-type detection — content projects (books, courses, knowledge bases) receive writer/editor/content-reviewer agents instead of code agents. The hook suite is unusual: it covers session lifecycle (pre/post compact for memory preservation) and subagent lifecycle (subagent-done fires on SubagentStop). The thinkingBudget: max setting in settings.json is a notable default.

differs_from_seeds: Closest to agent-os (installer-driven scaffold, markdown state files) and spec-driver (skill-heavy, session lifecycle hooks). Unique features not in seeds: auto project-type detection (code/content/hybrid), repo_access visibility modes, Russian-language documentation, and a pre/post compact hook pair for explicit memory preservation. The SNAPSHOT.md as a first-class persistent state file (not just CLAUDE.md) is architecturally similar to claude-conductor's memory pattern but more structured and explicitly synchronized.

01

Overview

alexeykrol/claude-code-starter — Overview

Origin

Russian-language Claude Code starter by alexeykrol. 180 GitHub stars, no license, Shell language classification. Last pushed 2026-04-27. 2 contributors.

Philosophy (translated from Russian)

The README opens with the problem statement:

"Usually when working with an agent, the project quickly falls apart: instructions live in one long CLAUDE.md; rules are mixed with project context; starting a new project and migrating an old one is done differently; agent memory is lost between sessions; internal framework files accidentally end up in shared/public git history."

The solution is:

  • Separate project passport (CLAUDE.md) from operational logic (rules/skills/agents/hooks)
  • Standard .claude/ directory structure
  • Reusable workflows via skills
  • Background guardrails via hooks
  • Single-file installation
  • repo_access control so agent memory doesn't leak where it shouldn't

Version 6 Innovation: Project Type Auto-Detection

"Version 6 introduced automatic project type detection (code / content / hybrid). Content projects — books, courses, knowledge bases, documents, transcripts — get their own set of rules, skills, and agents (writer, editor, content-reviewer). Installation without flags: bash init-project.sh itself figures out where it is and installs the appropriate layer."

This distinguishes code-oriented projects (implementer, researcher, reviewer agents) from content-oriented projects (writer, editor, content-reviewer agents).

Target User

Russian-speaking developers who want a well-structured Claude Code setup with explicit session state management and git-history control.

02

Architecture

alexeykrol/claude-code-starter — Architecture

Distribution

Standalone GitHub repository with a single-file installer init-project.sh.

Install Method

# New project
chmod +x init-project.sh
bash init-project.sh

# Auto-detects: code / content / hybrid
# Installs appropriate skill/agent set

Directory Tree (installed into host project)

<host-project>/
├── .claude/
│   ├── rules/               (7 rule files)
│   │   ├── autonomy.md
│   │   ├── commit-policy.md
│   │   ├── context-management.md
│   │   ├── delegation.md
│   │   ├── local-first.md
│   │   ├── logging.md
│   │   └── production-safety.md
│   ├── skills/              (6 skills)
│   │   ├── db-migrate/
│   │   ├── finish/
│   │   ├── housekeeping/
│   │   ├── playwright/
│   │   ├── start/
│   │   └── testing/
│   ├── agents/              (3 agents)
│   │   ├── implementer.md
│   │   ├── researcher.md
│   │   └── reviewer.md
│   ├── hooks/               (4 hook scripts)
│   │   ├── post-compact.sh
│   │   ├── post-tool-checkpoint.sh
│   │   ├── pre-compact.sh
│   │   └── subagent-done.sh
│   ├── logs/
│   │   └── sessions/        (YYYY-MM-DD_HH-MM.md session logs)
│   ├── SNAPSHOT.md          (persistent session state)
│   └── settings.json        (hooks, thinkingBudget: max)
├── scripts/
│   ├── framework-state-mode.sh
│   └── switch-repo-access.sh
├── CLAUDE.md                (project passport)
├── manifest.md              (project_name, repo_access)
└── .gitignore

Required Runtime

  • bash
  • git
  • Claude Code
  • Recommended: python3 (for settings.json merge in migration flow)
  • Optional: node/npm, pytest, sqlite3, psql, supabase

repo_access Modes

Mode Who Has Access git History
private-solo Sole author, no sharing Unrestricted
private-shared Team, no public release Team-visible
public Public repo Fully visible

The switch-repo-access.sh script safely switches between modes, controlling which framework files appear in git history.

Config Files

  • .claude/settings.json — hooks, thinkingBudget: max, permissions (allow all: Read, Edit, Write, Glob, Grep, Bash, WebSearch, WebFetch)
  • manifest.mdproject_name, repo_access
  • .claude/SNAPSHOT.md — current session state
03

Components

alexeykrol/claude-code-starter — Components

Skills (6)

  • start/ — session initialization: reads SNAPSHOT.md, reads CLAUDE.md, checks git status, creates session log in .claude/logs/sessions/YYYY-MM-DD_HH-MM.md, reports status in 3-5 lines; uses disable-model-invocation: true (pure file reading, no LLM call)
  • finish/ — session completion: updates SNAPSHOT.md, writes session summary, syncs state
  • housekeeping/ — project maintenance: cleanup, organization
  • testing/ — test execution workflow
  • playwright/ — Playwright E2E testing integration
  • db-migrate/ — database migration workflow

Agents (3, code mode)

  • implementer.md — code implementation specialist
  • researcher.md — read-only codebase exploration
  • reviewer.md — code review specialist

(Content mode installs: writer.md, editor.md, content-reviewer.md instead)

Hooks (4)

PreCompact

  • pre-compact.sh — runs before Claude Code context compaction; saves current session state to SNAPSHOT.md before memory loss

PostCompact

  • post-compact.sh — runs after compaction; reloads state from SNAPSHOT.md; ensures context continuity

PostToolUse

  • post-tool-checkpoint.sh (matcher: "", all tools) — periodic checkpoint after tool use; updates session logs

SubagentStop

  • subagent-done.sh — fires when a subagent completes; coordinates back to main session

Rules (7)

  • autonomy.md — controls agent autonomy level (what Claude can do without asking)
  • commit-policy.md — git commit conventions and gates
  • context-management.md — SNAPSHOT.md sync and context load rules
  • delegation.md — when/how to delegate to implementer/researcher/reviewer agents
  • local-first.md — prefer local operations over network calls
  • logging.md — session logging conventions
  • production-safety.md — safety checks before production operations

Scripts (2)

  • scripts/framework-state-mode.sh — manages framework state persistence mode
  • scripts/switch-repo-access.sh — switches between private-solo, private-shared, public repo access modes

Key Settings

{
  "thinkingBudget": "max",
  "permissions": {
    "allow": ["Read", "Edit", "Write", "Glob", "Grep", "Bash(*)", "WebSearch", "WebFetch"]
  }
}

Notable: thinkingBudget: max is the default — this maximizes extended thinking time for all operations.

05

Prompts

alexeykrol/claude-code-starter — Prompts

Verbatim Excerpt 1: start SKILL.md (session initialization)

---
name: start
description: "Инициализация рабочей сессии. Загрузить состояние проекта,
оценить готовность, доложить."
allowed-tools: Read Glob Grep Bash
disable-model-invocation: true
---

# Skill: Start Session

## Что делать

1. **Прочитать SNAPSHOT.md** — текущее состояние проекта:
   Read .claude/SNAPSHOT.md
   Если SNAPSHOT.md не существует — создать с базовой структурой
   (статус: инициализация, дата: сейчас).

2. **Прочитать CLAUDE.md** — контекст проекта:
   Read CLAUDE.md

3. **Проверить git status:**
   git status --short
   git log --oneline -5

4. **Проверить версию фреймворка** (фоново, не блокирует старт):
   grep -m1 'v[0-9]' README.md 2>/dev/null || true

5. **Создать лог сессии:**
   mkdir -p .claude/logs/sessions
   Создать файл `.claude/logs/sessions/YYYY-MM-DD_HH-MM.md` с начальным
   состоянием (timestamp, SNAPSHOT status, git status).

6. **Доложить пользователю** (кратко, 3-5 строк):
   - Статус проекта
   - Что было сделано в прошлой сессии
   - Незавершённые задачи (если есть)
   - Готовность к работе

## Чего НЕ делать

- Не показывать содержимое файлов пользователю

Prompting technique (Russian): disable-model-invocation: true — purely deterministic execution (file reading + git commands), no LLM calls. Strict "what NOT to do" section at the end. Explicit tool restriction (allowed-tools: Read Glob Grep Bash).


Verbatim Excerpt 2: settings.json — hook configuration

{
  "hooks": {
    "PreCompact": [{"matcher": "", "hooks": [{"type": "command",
      "command": "bash .claude/hooks/pre-compact.sh"}]}],
    "PostCompact": [{"matcher": "", "hooks": [{"type": "command",
      "command": "bash .claude/hooks/post-compact.sh"}]}],
    "PostToolUse": [{"matcher": "", "hooks": [{"type": "command",
      "command": "bash .claude/hooks/post-tool-checkpoint.sh"}]}],
    "SubagentStop": [{"matcher": "", "hooks": [{"type": "command",
      "command": "bash .claude/hooks/subagent-done.sh"}]}]
  },
  "thinkingBudget": "max"
}

Architecture note: This is the only framework in the batch that hooks both PreCompact AND PostCompact — explicitly designed for memory preservation around context compaction events. thinkingBudget: max defaults all operations to maximum extended thinking.

09

Uniqueness

alexeykrol/claude-code-starter — Uniqueness

differs_from_seeds

Closest to agent-os (installer-driven scaffold) but with substantially richer session lifecycle management. No seed implements auto project-type detection (code/content/hybrid) — this is a unique architectural choice that adapts the installed agent set to the project domain. The pre/post compact hook pair is the most explicit compaction handling in the batch; most seeds either ignore compaction (openspec, taskmaster-ai) or handle it partially (superpowers via memory). The repo_access system (private-solo/private-shared/public modes) addresses a real problem (framework files leaking into public git history) not addressed by any seed. The thinkingBudget: max default is the most aggressive thinking-budget setting in the batch. Russian-language documentation is a distinct market positioning choice.

Positioning

Structured, opinionated Russian-language starter with strong session lifecycle discipline. The SNAPSHOT.md + session logs pattern positions this as suitable for long-running projects with memory-critical workflows.

Observable Failure Modes

  1. No license: No open-source license. Reuse rights unclear.
  2. Permissive allow list: settings.json allows all Bash commands by default. Security responsibility falls entirely on the user.
  3. Russian-only README: Non-Russian speakers cannot easily adopt the framework.
  4. install-time detection: If a content project has some code files, the hybrid detection may install the wrong agent set.
  5. post-tool-checkpoint overhead: Firing after every single tool use may add significant latency for rapid file-editing operations.

Cross-References

  • README references official Anthropic Claude Code docs
  • .claude/rules/ pattern is similar to spec-driver and superpowers
  • Pre/post compact hooks unique to this batch
04

Workflow

alexeykrol/claude-code-starter — Workflow

Session Lifecycle

Phase Trigger Action Artifact
Session start User runs /start Reads SNAPSHOT.md + CLAUDE.md, checks git status, creates session log .claude/logs/sessions/YYYY-MM-DD_HH-MM.md
Work Tool use post-tool-checkpoint.sh fires after every tool use (checkpoint) Updated session log
Pre-compact Claude Code triggers compact pre-compact.sh saves state to SNAPSHOT.md Updated SNAPSHOT.md
Post-compact Compact completes post-compact.sh reloads SNAPSHOT.md State restored
Subagent completes SubagentStop event subagent-done.sh coordinates back to main Session log updated
Session end User runs /finish Updates SNAPSHOT.md, writes summary Final SNAPSHOT.md

Phases

Phase Description
Project init bash init-project.sh auto-detects project type, installs appropriate layer
Session start /start — load state, check readiness, report
Implementation Delegate to implementer agent for code changes
Testing /testing skill for test execution
Review reviewer agent for code review
Session finish /finish — sync SNAPSHOT.md, write session summary

Approval Gates

Not explicitly documented. The commit-policy.md rule likely defines commit gates. The autonomy.md rule controls what requires user approval.

Project Type Detection

At install time:

  1. init-project.sh scans the project directory
  2. Detects presence of code files (.py, .js, .ts, etc.) vs content files (.md, .txt, docs)
  3. Classifies as code / content / hybrid
  4. Installs corresponding agent set and rules

repo_access Switch

bash scripts/switch-repo-access.sh private-solo
bash scripts/switch-repo-access.sh private-shared  
bash scripts/switch-repo-access.sh public

Modifies manifest.md and .gitignore to control framework file visibility.

06

Memory Context

alexeykrol/claude-code-starter — Memory & Context

Primary State File: SNAPSHOT.md

.claude/SNAPSHOT.md is the central session state artifact — analogous to a running project log. It is:

  • Created by start skill if it doesn't exist
  • Read at every session start
  • Saved by pre-compact.sh before compaction
  • Restored by post-compact.sh after compaction
  • Updated by finish skill at session end
  • Updated by post-tool-checkpoint.sh after tool use

Memory Type

File-based (markdown). SNAPSHOT.md + CLAUDE.md + session logs.

Session Logs

.claude/logs/sessions/YYYY-MM-DD_HH-MM.md — timestamped session logs created by the start skill. Each session has its own file. These accumulate over time as a history of sessions.

Context Layers

Layer File Loaded When
Project passport CLAUDE.md Session start (by start skill)
Current state .claude/SNAPSHOT.md Session start + pre/post compact
Session log .claude/logs/sessions/*.md Created at start, written during session
Manifest manifest.md On demand (project_name, repo_access)

Compaction Handling

Explicit and mechanical:

  1. PreCompact hook → pre-compact.sh runs → saves SNAPSHOT.md with current state
  2. Compaction occurs (Claude Code context reset)
  3. PostCompact hook → post-compact.sh runs → reloads SNAPSHOT.md → state restored

This is the most explicit compaction handling in the batch — two hooks (not one) ensure state is saved and restored.

Cross-Session Handoff

Yes — SNAPSHOT.md persists across sessions. The start skill explicitly reads "what was done in the last session" from SNAPSHOT.md and reports it to the user.

Memory Persistence

Project-scoped. All files stay in the project directory.

07

Orchestration

alexeykrol/claude-code-starter — Orchestration

Multi-Agent Support

Yes — 3 named agents (implementer, researcher, reviewer) in code mode; 3 different agents in content mode (writer, editor, content-reviewer).

Orchestration Pattern

Sequential. The delegation.md rule defines when to route to each agent. No parallel fan-out.

Multi-Model Usage

No — single model (Claude Code default). thinkingBudget: max maximizes thinking for all operations.

Isolation Mechanism

None (in-place editing). No git worktree, no container.

Execution Mode

Interactive-loop with explicit session lifecycle (start → work → finish).

SubagentStop Hook

The subagent-done.sh hook fires when any subagent completes (SubagentStop event). This is unusual — most starters don't hook subagent lifecycle events. Allows the main session to react to subagent completion.

Crash Recovery

Partial — SNAPSHOT.md persists state. If the session crashes mid-work, the next session's start skill reads the last SNAPSHOT.md and reports incomplete tasks. No automatic recovery of in-flight operations.

Consensus Mechanism

None.

Project Type Routing

The project-type detection (code/content/hybrid) at install time is a pre-runtime orchestration decision — it determines which agents and rules are installed, effectively pre-configuring the agent roster for the project's domain.

08

Ui Cli Surface

alexeykrol/claude-code-starter — UI / CLI Surface

Dedicated CLI Binary

No — init-project.sh is an install script, not a binary.

Local Web Dashboard

No.

IDE Integration

Claude Code only. No IDE-specific integrations mentioned.

Install Script

init-project.sh — single-file installer. Place in project root, run bash init-project.sh. Handles:

  • Project type detection
  • Appropriate skill/agent installation
  • .gitignore configuration per repo_access mode
  • settings.json generation with hooks

Scripts

  • scripts/switch-repo-access.sh — switches between private-solo, private-shared, public modes
  • scripts/framework-state-mode.sh — manages framework state persistence mode

Observability

  • Session logs: .claude/logs/sessions/YYYY-MM-DD_HH-MM.md — timestamped per-session markdown files
  • SNAPSHOT.md: persistent project state visible to user at any time
  • start skill report: 3-5 line status report at session start (project status, last session work, incomplete tasks)

Git Automation

Controlled by commit-policy.md rule. No automatic commits. repo_access controls what appears in git history.

Permissions

Settings.json allows all tool types (Read, Edit, Write, Glob, Grep, Bash(*), WebSearch, WebFetch) — permissive by default.

Related frameworks

same archetype · same primary tool · same memory type

Claude-Flow / Ruflo ★ 55k

Eliminates single-agent context limits and sequential bottlenecks by orchestrating fault-tolerant swarms of specialized AI agents…

Hermes Agent (NousResearch) ★ 168k

Self-improving personal AI agent with closed learning loop, 7 terminal backends, and messaging gateway — not tied to any AI…

OpenCode ★ 165k

Terminal-first AI coding agent with multi-model routing, native desktop app, and a typed .opencode/ configuration system for…

OpenHands ★ 75k

Open-source AI software development platform (open-source Devin alternative) with Docker sandbox isolation, 77.6% SWE-bench…

DeerFlow ★ 70k

Long-horizon superagent that researches, codes, and creates by orchestrating parallel sub-agents with isolated contexts in Docker…

oh-my-openagent (omo) ★ 60k

Multi-provider AI agent orchestration for OpenCode: escape vendor lock-in by routing Sisyphus (Claude/Kimi/GLM) and Hephaestus…