Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c34bbf9
beads
Jan 22, 2026
a0e1641
Separate personal assistant context from project context
Jan 22, 2026
c020fe6
Move CLAUDE.md to personal PARTNER repo
Jan 22, 2026
421eeab
Update install.sh to symlink CLAUDE.md from ~/.claude/
Jan 22, 2026
1516c56
Remove CLAUDE.md symlink creation from install.sh
Jan 22, 2026
4977bdf
Обсуждение архитектуры Claudev: Tech Writer, Manager, UX, отказоустой…
Jan 22, 2026
3ec7abb
Update: решения по Architect, Analysts, формату задач (23 января)
Jan 23, 2026
90efe79
Decision: оставляем всех 5 аналитиков
Jan 23, 2026
224fb97
Update: Executors git workflow, Senior Executor, bd --claim, таблица …
Jan 23, 2026
d6f9b2b
Decision: тесты включаются в задачу Architect'ом
Jan 23, 2026
abc2cae
Decision: старт (гибрид), финиш (лог), взаимодействие (terminal prompt)
Jan 23, 2026
2ad5f30
Decision: завершено проектирование системы Claudev (23 января)
Jan 23, 2026
e429aed
Fix: обновлён пайплайн ролей (убран Senior Analyst)
Jan 23, 2026
cd19c8e
Docs: детальные требования к логированию
Jan 23, 2026
3f6a2c9
Decision: финальная проверка архитектуры перед реализацией
Jan 23, 2026
cd629d9
Decision: финальная проверка архитектуры перед реализацией
Jan 23, 2026
dae021e
Decision: закрыты архитектурные пробелы перед реализацией
Jan 23, 2026
a59ceb1
Decision: закрыты архитектурные пробелы перед реализацией
Jan 23, 2026
c9c3f69
Decision: архитектурный аудит завершён, закрыты 4 угрозы
Jan 23, 2026
02ec190
Decision: финальный архитектурный аудит — все угрозы закрыты
Jan 23, 2026
fa58da3
Decision: второй архитектурный аудит — 9 угроз найдено и закрыто
Jan 24, 2026
0cd2f2e
Decision: приоритизация P0 задач — 2 блокера, 2 отложено
Jan 24, 2026
5b7af8a
Реализация Claudev v1.0: многоагентная система разработки
Jan 24, 2026
6729643
Добавлен invite.sh для one-liner установки + README
Jan 24, 2026
10ac319
Полная автоустановка зависимостей
Jan 24, 2026
7365989
Добавлена поддержка Windows через WSL
Jan 24, 2026
f987d6c
Очистка .claudev/ от файлов разработки
Jan 24, 2026
17d648c
Release v0.2: one-liner установка
Jan 24, 2026
29eaa3d
Release v0.3: auto-close features/epics
Jan 24, 2026
c260047
Release v0.4: versioning in FINAL_REVIEW
Jan 24, 2026
669151e
Merge remote-tracking branch 'origin/beads-sync' into claude/review-r…
claude Jan 25, 2026
fe9f4e5
v0.5: добавлены 5 задач (A1, A2, A3, B1, B3)
claude Jan 25, 2026
e96c2d0
Config: sync.branch=claude/beads-sync + 6 tasks
claude Jan 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .beads/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
# This setting persists across clones (unlike database config which is gitignored).
# Can also use BEADS_SYNC_BRANCH env var for local override.
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
# sync-branch: "beads-sync"
sync-branch: "claude/beads-sync"

# Multi-repo configuration (experimental - bd-307)
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
Expand All @@ -59,4 +59,4 @@
# - linear.url
# - linear.api-key
# - github.org
# - github.repo
# - github.repo
5 changes: 5 additions & 0 deletions .beads/issues.jsonl
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{"id":"claudev-0ax","title":"Создать config.yaml шаблон","description":"Создать шаблон конфигурации для целевого проекта\n\n**Файл:** templates/config.template.yaml\n\n**Содержимое:**\n```yaml\n# Claudev configuration\n# Копируется в .claudev/config.yaml при установке\n\nci: false # GitHub Actions CI\ncd: false # GitHub Actions CD (releases)\nmax_parallel_executors: 3 # Параллельных Executor'ов\n\ntimeouts:\n task: 10m # Таймаут на задачу\n user_input: 30m # Таймаут ожидания ответа user\n\nretry_limit: 3 # Попыток до эскалации\nlog_tokens: false # Логировать расход токенов\n\ncleanup:\n enabled: false # Удалять старые логи\n keep_days: 30 # Хранить N дней если enabled\n```\n\n**done_when:**\n- [ ] Файл templates/config.template.yaml создан\n- [ ] Все параметры из PROJECT.md включены\n- [ ] Комментарии на русском объясняют каждый параметр","status":"open","priority":1,"issue_type":"task","created_at":"2026-01-23T15:06:58.702022+03:00","created_by":"m","updated_at":"2026-01-23T16:50:26.854267+03:00"}
{"id":"claudev-100","title":"B3: Runtime dependency check","description":"Проверка зависимостей в начале orchestrator.sh.\n\n**Проблема:** Если jq/bd/claude удалены после install.sh — система ломается с непонятными ошибками.\n\n**Решение:**\n```bash\ncheck_dependencies() {\n local missing=()\n command -v bd \u0026\u003e/dev/null || missing+=(\"bd\")\n command -v claude \u0026\u003e/dev/null || missing+=(\"claude\")\n command -v jq \u0026\u003e/dev/null || missing+=(\"jq\")\n command -v git \u0026\u003e/dev/null || missing+=(\"git\")\n \n if [[ ${#missing[@]} -gt 0 ]]; then\n log \"FATAL\" \"Missing: ${missing[*]}\"\n exit 1\n fi\n}\n```\n\n**Вызов:** Самое начало orchestrator, до любой логики.\n\n**done_when:**\n- [ ] Функция check_dependencies() добавлена\n- [ ] Проверяет bd, claude, jq, git\n- [ ] Fail fast с понятным сообщением","status":"open","priority":1,"issue_type":"task","owner":"noreply@anthropic.com","created_at":"2026-01-25T06:47:58.550736049Z","created_by":"Claude","updated_at":"2026-01-25T06:47:58.550736049Z"}
{"id":"claudev-11j","title":"Решить: user silence handling","description":"После таймаута Tech Writer сохраняет draft. При следующем запуске: автоматически показать вопрос или ждать команды?","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-23T11:26:05.653367+03:00","created_by":"m","updated_at":"2026-01-23T12:16:37.554973+03:00","closed_at":"2026-01-23T12:16:37.554973+03:00","close_reason":"Решено: см. PROJECT.md (23 января)"}
{"id":"claudev-1at","title":"Подтвердить: безопасность secrets","description":"Предложение: агенты не читают .env, тесты через mocks, CI через GitHub Secrets, проверка на hardcoded secrets. Нужно подтверждение.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-23T11:26:05.540935+03:00","created_by":"m","updated_at":"2026-01-23T12:07:59.052158+03:00","closed_at":"2026-01-23T12:07:59.052158+03:00","close_reason":"Решено: средний уровень — .gitignore + gitleaks pre-commit + инструкции агентам"}
{"id":"claudev-1dw","title":"test status","status":"closed","priority":4,"issue_type":"task","created_at":"2026-01-23T12:14:01.974254+03:00","created_by":"m","updated_at":"2026-01-23T12:14:07.059908+03:00","closed_at":"2026-01-23T12:14:07.059908+03:00","close_reason":"test"}
Expand All @@ -18,6 +19,10 @@
{"id":"claudev-8b1","title":"Написать промпт: Analyst-Architecture","description":"Написать промпт Analyst-Architecture\n\n**Файл:** core/agents/analyst-architecture.md\n\n**Frontmatter:**\n```yaml\n---\nname: analyst-architecture\ndescription: Проверяет архитектуру, добавляет задачи\nmodel: sonnet\n---\n```\n\n**Роль:** Architecture аналитик. Проверяет структуру и паттерны.\n\n**Критические правила:**\n- ТОЛЬКО добавлять задачи\n- Добавлять label: added-by:analyst-architecture\n- НЕ дублировать работу главного Architect\n\n**Что проверять:**\n- Separation of concerns?\n- Single responsibility?\n- Dependency direction (внутрь)?\n- Coupling между модулями?\n- Naming conventions?\n- File structure consistency?\n- Code duplication risks?\n\n**Алгоритм:**\n1. Claim: bd update run-analyst-architecture --claim\n2. Прочитать SPEC.md и план\n3. Найти архитектурные проблемы\n4. Для каждой:\n```bash\nbd create --title=\"Architecture: \u003cпроблема\u003e\" --type=task --priority=2 --label=added-by:analyst-architecture\n```\n5. bd close run-analyst-architecture\n\n**done_when:**\n- [ ] Frontmatter с model: sonnet\n- [ ] Чеклист архитектурных аспектов\n- [ ] Формат задач с label\n- [ ] Логирование через log.sh","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-23T15:35:32.847592+03:00","created_by":"m","updated_at":"2026-01-23T16:57:52.380327+03:00"}
{"id":"claudev-8fj","title":"Manager и оркестрация","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-22T17:27:44.838454+03:00","created_by":"m","updated_at":"2026-01-22T18:03:01.344082+03:00","closed_at":"2026-01-22T18:03:01.344082+03:00","close_reason":"Обсудили: Manager = Sonnet, stateless, определяет фазу по beads"}
{"id":"claudev-95v","title":"Создать tech-writer.md агента","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-23T15:06:58.814443+03:00","created_by":"m","updated_at":"2026-01-23T15:36:04.826956+03:00","closed_at":"2026-01-23T15:36:04.826956+03:00","close_reason":"Дубликаты: заменены на детальные задачи 'Написать промпт'","dependencies":[{"issue_id":"claudev-95v","depends_on_id":"claudev-hkb","type":"blocks","created_at":"2026-01-23T15:07:11.963227+03:00","created_by":"m"}]}
{"id":"claudev-96","title":"A1: Auto-install beads в sandbox","description":"Создать core/scripts/ensure-beads.sh — автоустановка bd через Go build в ограниченных окружениях (iOS sandbox, CI).\n\n**Логика:**\n1. Проверить command -v bd\n2. Если нет — собрать через GOTOOLCHAIN=local CGO_ENABLED=0 go install\n3. Добавить в PATH\n4. Fallback с инструкцией\n\n**done_when:**\n- [ ] Скрипт ensure-beads.sh создан\n- [ ] Работает в sandbox без network\n- [ ] Вызывается из orchestrator.sh","status":"open","priority":1,"issue_type":"task","owner":"noreply@anthropic.com","created_at":"2026-01-25T06:47:11.821959291Z","created_by":"Claude","updated_at":"2026-01-25T06:47:11.821959291Z"}
{"id":"claudev-97","title":"A2: Обязательный sync задач в git","description":"Добавить в orchestrator.sh три точки синхронизации beads:\n\n1. **СТАРТ** — bd sync import (загрузить из git)\n2. **ПОСЛЕ ФАЗЫ** — bd sync export + git add\n3. **ЗАВЕРШЕНИЕ ИТЕРАЦИИ** — git commit\n\n**Почему после фазы:**\n- Атомарность — фаза либо завершена, либо нет\n- Меньше I/O операций\n- Коммит только в конце (не засоряем историю)\n\n**done_when:**\n- [ ] Import при старте orchestrator\n- [ ] Export после каждой фазы\n- [ ] Commit при finalize_iteration","status":"open","priority":1,"issue_type":"task","owner":"noreply@anthropic.com","created_at":"2026-01-25T06:47:23.392864498Z","created_by":"Claude","updated_at":"2026-01-25T06:47:23.392864498Z"}
{"id":"claudev-98","title":"A3: Detect sandbox mode","description":"Добавить функцию detect_environment() в orchestrator.sh.\n\n**Признаки sandbox:**\n- Нет write доступа к /usr/local/bin\n- Нет brew и нет apt\n- Нет network (curl github.com timeout)\n\n**Переменная:** CLAUDEV_ENV=normal|sandbox\n\n**Где используется:**\n- Установка зависимостей: brew/apt vs go build\n- GitHub PR: gh pr create vs local merge + warn\n- Network timeouts: 30s vs 5s\n\n**done_when:**\n- [ ] Функция detect_environment() добавлена\n- [ ] CLAUDEV_ENV экспортируется\n- [ ] Логируется при старте","status":"open","priority":2,"issue_type":"task","owner":"noreply@anthropic.com","created_at":"2026-01-25T06:47:34.932905083Z","created_by":"Claude","updated_at":"2026-01-25T06:47:34.932905083Z"}
{"id":"claudev-99","title":"B1: Claude CLI health check","description":"Добавить проверку доступности Claude перед запуском агентов.\n\n**Проблема:** Если Claude недоступен — каждый агент висит 10 мин. 3 retry = 30+ мин впустую.\n\n**Решение:** Ping в начале каждого цикла:\n```bash\ncheck_claude_available() {\n timeout 10s claude --model haiku --print 'ping' \u0026\u003e/dev/null\n}\n```\n\n**Поведение при недоступности:**\n- Не crash, а sleep 60s и retry\n- Логируем WARN (не FATAL)\n- Система восстановится когда Claude вернётся\n\n**done_when:**\n- [ ] Функция check_claude_available() добавлена\n- [ ] Вызывается в начале каждого цикла\n- [ ] При fail — sleep 60s и continue","status":"open","priority":0,"issue_type":"task","owner":"noreply@anthropic.com","created_at":"2026-01-25T06:47:47.457492653Z","created_by":"Claude","updated_at":"2026-01-25T06:47:47.457492653Z"}
{"id":"claudev-9j0","title":"Обновить orchestrator.sh под новые фазы и роли","description":"Переписать orchestrator под новую архитектуру\n\n**Файл:** core/scripts/orchestrator.sh\n\n**Новая логика:**\n\n1. **Lock file (single instance):**\n```bash\nLOCK_FILE=\".claudev/orchestrator.lock\"\nif [ -f \"$LOCK_FILE\" ]; then\n OLD_PID=$(cat \"$LOCK_FILE\")\n if kill -0 \"$OLD_PID\" 2\u003e/dev/null; then\n echo \"Already running (PID $OLD_PID)\"; exit 1\n else\n rm -f \"$LOCK_FILE\" # stale lock\n fi\nfi\necho $$ \u003e \"$LOCK_FILE\"\ntrap \"rm -f $LOCK_FILE\" EXIT\n```\n\n2. **Beads daemon check:**\n```bash\nbd sync --status || { log \"ORCHESTRATOR\" \"FATAL\" \"Beads daemon not running\"; exit 1; }\n```\n\n3. **Frontmatter parsing (модель агента):**\n```bash\nget_model() {\n local agent_file=$1\n grep \"^model:\" \"$agent_file\" | cut -d: -f2 | tr -d ' '\n}\n```\n\n4. **Timeout enforcement:**\n```bash\ntimeout 10m claude --model \"$MODEL\" -p \"...\"\n```\n\n5. **Мониторинг каждые 2h:**\n```bash\n# Логировать: \"Iteration running for Xh, Y tasks remaining\"\n```\n\n6. **Вызов detect-phase.sh** вместо логики в промпте\n\n7. **Использовать log.sh** вместо локальной функции log()\n\n**done_when:**\n- [ ] Lock file mechanism работает\n- [ ] Beads daemon проверяется при старте и каждые 10 циклов\n- [ ] Модель агента читается из frontmatter\n- [ ] Timeout 10m для каждого вызова claude\n- [ ] Использует ./scripts/detect-phase.sh\n- [ ] Использует source ./scripts/log.sh\n- [ ] Логирует через log \"ORCHESTRATOR\" \"EVENT\" \"message\"","status":"open","priority":1,"issue_type":"task","created_at":"2026-01-23T15:22:49.334544+03:00","created_by":"m","updated_at":"2026-01-23T16:50:59.036704+03:00","dependencies":[{"issue_id":"claudev-9j0","depends_on_id":"claudev-naw","type":"blocks","created_at":"2026-01-23T15:23:03.666885+03:00","created_by":"m"},{"issue_id":"claudev-9j0","depends_on_id":"claudev-rh5","type":"blocks","created_at":"2026-01-23T15:23:03.760924+03:00","created_by":"m"},{"issue_id":"claudev-9j0","depends_on_id":"claudev-qru","type":"blocks","created_at":"2026-01-23T16:23:59.059785+03:00","created_by":"m"}]}
{"id":"claudev-a28","title":"Обновить run-helpers.sh → run-analysts.sh","description":"Переименовать и обновить скрипт запуска аналитиков\n\n**Файл:** core/scripts/run-analysts.sh (был run-helpers.sh)\n\n**Логика:**\n1. Получает список из 5 analysts: ux, security, ops, reliability, architecture\n2. Для каждого запускает в background:\n```bash\ntimeout 10m claude --model sonnet -p \"Следуй .claude/agents/analyst-$NAME.md\" \u0026\n```\n3. Ждёт завершения всех (wait)\n4. Не проверяет результат — это делает Manager через bd\n\n**Важно:**\n- НЕ создаёт задачи-триггеры (это делает Manager)\n- Просто запускает 5 процессов параллельно\n- Использует source ./scripts/log.sh для логирования\n\n**done_when:**\n- [ ] Файл переименован в run-analysts.sh\n- [ ] Запускает 5 analysts параллельно\n- [ ] Timeout 10m на каждого\n- [ ] Модель sonnet для всех\n- [ ] Логирует старт/финиш каждого","status":"open","priority":1,"issue_type":"task","created_at":"2026-01-23T15:22:49.105242+03:00","created_by":"m","updated_at":"2026-01-23T16:51:16.066075+03:00","dependencies":[{"issue_id":"claudev-a28","depends_on_id":"claudev-hkb","type":"blocks","created_at":"2026-01-23T15:23:03.478606+03:00","created_by":"m"},{"issue_id":"claudev-a28","depends_on_id":"claudev-rh5","type":"blocks","created_at":"2026-01-23T15:23:03.952374+03:00","created_by":"m"}]}
{"id":"claudev-aak","title":"Роли и ответственности","notes":"Частично обсуждено: Tech Writer, Manager. Осталось: Architect, Analysts, Executors, Senior roles","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-22T17:27:44.418493+03:00","created_by":"m","updated_at":"2026-01-23T11:25:55.484894+03:00","closed_at":"2026-01-23T11:25:55.484894+03:00","close_reason":"Решено: MVP scope через Tech Writer, формат задачи (title/files/done_when), все роли определены"}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CLAUDE.md
43 changes: 43 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Changelog

## [0.4] - 2026-01-24

### Added
- Architect обязан повышать версию и обновлять changelog в FINAL_REVIEW
- VERSION файл для хранения текущей версии (универсально для любого стека)
- SemVer: MAJOR (breaking) / MINOR (features) / PATCH (bugfixes)

### Changed
- architect.md: расширена секция MODE: final_review с версионированием

## [0.3] - 2026-01-24

### Added
- Auto-close features и epics когда все children завершены
- Новый скрипт `close-completed-parents.sh`
- Использует встроенную команду beads `bd epic close-eligible`

### Changed
- orchestrator.sh вызывает auto-close каждый цикл (шаг 7)

## [0.2] - 2026-01-24

### Added
- One-liner установка: `curl ... | bash`
- Полная автоустановка зависимостей (homebrew, beads, gh, jq, claude-code)
- Поддержка Windows через WSL (автоопределение + инструкции)
- README для пользователей

### Changed
- Очистка .claudev/ от файлов разработки после установки
- Пользователь видит только рабочие файлы (core/, templates/, install.sh)

## [0.1] - 2026-01-24

### Added
- Многоагентная система разработки
- 10 агентов: Tech Writer, Manager, Architect, Executor, Senior Executor, 5 Analysts
- Orchestrator с atomic lock, graceful shutdown
- Beads интеграция для управления задачами
- 7 фаз проекта: INIT → PLANNING → HELPERS → PLAN_REVIEW → IMPLEMENTATION → FINAL_REVIEW → DONE
- Архитектурный аудит: 19 угроз найдено и закрыто
Loading