beadloom 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- beadloom-0.1.0/.beadloom/_graph/services.yml +67 -0
- beadloom-0.1.0/.claude/CLAUDE.md +274 -0
- beadloom-0.1.0/.claude/commands/checkpoint.md +182 -0
- beadloom-0.1.0/.claude/commands/coordinator.md +195 -0
- beadloom-0.1.0/.claude/commands/dev.md +323 -0
- beadloom-0.1.0/.claude/commands/epic-init.md +150 -0
- beadloom-0.1.0/.claude/commands/review.md +136 -0
- beadloom-0.1.0/.claude/commands/templates.md +444 -0
- beadloom-0.1.0/.claude/commands/test.md +260 -0
- beadloom-0.1.0/.claude/development/PRD.md +462 -0
- beadloom-0.1.0/.claude/development/RFC.md +1273 -0
- beadloom-0.1.0/.claude/development/docs/features/BDL-001/CONTEXT.md +97 -0
- beadloom-0.1.0/.claude/development/docs/features/BDL-001/PLAN.md +333 -0
- beadloom-0.1.0/.gitattributes +3 -0
- beadloom-0.1.0/.github/workflows/ci.yml +36 -0
- beadloom-0.1.0/.github/workflows/pypi-publish.yml +74 -0
- beadloom-0.1.0/.gitignore +32 -0
- beadloom-0.1.0/CONTRIBUTING.md +254 -0
- beadloom-0.1.0/LICENSE +21 -0
- beadloom-0.1.0/PKG-INFO +233 -0
- beadloom-0.1.0/README.md +199 -0
- beadloom-0.1.0/SECURITY.md +90 -0
- beadloom-0.1.0/docs/architecture.md +73 -0
- beadloom-0.1.0/docs/cli-reference.md +148 -0
- beadloom-0.1.0/docs/context-oracle.md +85 -0
- beadloom-0.1.0/docs/getting-started.md +75 -0
- beadloom-0.1.0/docs/graph-format.md +66 -0
- beadloom-0.1.0/docs/mcp-server.md +109 -0
- beadloom-0.1.0/docs/sync-engine.md +61 -0
- beadloom-0.1.0/pyproject.toml +109 -0
- beadloom-0.1.0/src/beadloom/__init__.py +3 -0
- beadloom-0.1.0/src/beadloom/cache.py +96 -0
- beadloom-0.1.0/src/beadloom/cli.py +731 -0
- beadloom-0.1.0/src/beadloom/code_indexer.py +133 -0
- beadloom-0.1.0/src/beadloom/context_builder.py +379 -0
- beadloom-0.1.0/src/beadloom/db.py +146 -0
- beadloom-0.1.0/src/beadloom/doc_indexer.py +183 -0
- beadloom-0.1.0/src/beadloom/doctor.py +111 -0
- beadloom-0.1.0/src/beadloom/graph_loader.py +143 -0
- beadloom-0.1.0/src/beadloom/mcp_server.py +276 -0
- beadloom-0.1.0/src/beadloom/onboarding.py +199 -0
- beadloom-0.1.0/src/beadloom/py.typed +0 -0
- beadloom-0.1.0/src/beadloom/reindex.py +272 -0
- beadloom-0.1.0/src/beadloom/sync_engine.py +137 -0
- beadloom-0.1.0/tests/__init__.py +0 -0
- beadloom-0.1.0/tests/conftest.py +20 -0
- beadloom-0.1.0/tests/test_cache.py +82 -0
- beadloom-0.1.0/tests/test_cli_ctx.py +240 -0
- beadloom-0.1.0/tests/test_cli_graph.py +104 -0
- beadloom-0.1.0/tests/test_cli_hooks.py +86 -0
- beadloom-0.1.0/tests/test_cli_mcp.py +92 -0
- beadloom-0.1.0/tests/test_cli_reindex.py +238 -0
- beadloom-0.1.0/tests/test_cli_status.py +89 -0
- beadloom-0.1.0/tests/test_cli_sync_auto.py +81 -0
- beadloom-0.1.0/tests/test_cli_sync_check.py +130 -0
- beadloom-0.1.0/tests/test_cli_sync_update.py +116 -0
- beadloom-0.1.0/tests/test_code_indexer.py +250 -0
- beadloom-0.1.0/tests/test_context_builder.py +426 -0
- beadloom-0.1.0/tests/test_db.py +319 -0
- beadloom-0.1.0/tests/test_doc_indexer.py +210 -0
- beadloom-0.1.0/tests/test_doctor.py +134 -0
- beadloom-0.1.0/tests/test_graph_loader.py +277 -0
- beadloom-0.1.0/tests/test_integration.py +678 -0
- beadloom-0.1.0/tests/test_mcp_server.py +269 -0
- beadloom-0.1.0/tests/test_onboarding.py +180 -0
- beadloom-0.1.0/tests/test_reindex.py +398 -0
- beadloom-0.1.0/tests/test_sync_engine.py +183 -0
- beadloom-0.1.0/uv.lock +1325 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
nodes:
|
|
2
|
+
- ref_id: beadloom
|
|
3
|
+
kind: service
|
|
4
|
+
summary: "Beadloom CLI + MCP server — Context Oracle + Doc Sync Engine"
|
|
5
|
+
source: src/beadloom/
|
|
6
|
+
docs:
|
|
7
|
+
- docs/architecture.md
|
|
8
|
+
- docs/getting-started.md
|
|
9
|
+
|
|
10
|
+
- ref_id: context-oracle
|
|
11
|
+
kind: domain
|
|
12
|
+
summary: "Context bundle building via BFS graph traversal"
|
|
13
|
+
docs:
|
|
14
|
+
- docs/context-oracle.md
|
|
15
|
+
|
|
16
|
+
- ref_id: doc-sync
|
|
17
|
+
kind: domain
|
|
18
|
+
summary: "Doc-code synchronization tracking and stale detection"
|
|
19
|
+
docs:
|
|
20
|
+
- docs/sync-engine.md
|
|
21
|
+
|
|
22
|
+
- ref_id: mcp-server
|
|
23
|
+
kind: service
|
|
24
|
+
summary: "MCP stdio server with 5 tools for AI agents"
|
|
25
|
+
docs:
|
|
26
|
+
- docs/mcp-server.md
|
|
27
|
+
|
|
28
|
+
- ref_id: cli
|
|
29
|
+
kind: service
|
|
30
|
+
summary: "Click-based CLI with 11 commands"
|
|
31
|
+
docs:
|
|
32
|
+
- docs/cli-reference.md
|
|
33
|
+
|
|
34
|
+
- ref_id: graph-format
|
|
35
|
+
kind: domain
|
|
36
|
+
summary: "YAML graph format specification and loader"
|
|
37
|
+
docs:
|
|
38
|
+
- docs/graph-format.md
|
|
39
|
+
|
|
40
|
+
edges:
|
|
41
|
+
- src: context-oracle
|
|
42
|
+
dst: beadloom
|
|
43
|
+
kind: part_of
|
|
44
|
+
- src: doc-sync
|
|
45
|
+
dst: beadloom
|
|
46
|
+
kind: part_of
|
|
47
|
+
- src: mcp-server
|
|
48
|
+
dst: beadloom
|
|
49
|
+
kind: part_of
|
|
50
|
+
- src: cli
|
|
51
|
+
dst: beadloom
|
|
52
|
+
kind: part_of
|
|
53
|
+
- src: graph-format
|
|
54
|
+
dst: beadloom
|
|
55
|
+
kind: part_of
|
|
56
|
+
- src: mcp-server
|
|
57
|
+
dst: context-oracle
|
|
58
|
+
kind: uses
|
|
59
|
+
- src: cli
|
|
60
|
+
dst: context-oracle
|
|
61
|
+
kind: uses
|
|
62
|
+
- src: cli
|
|
63
|
+
dst: doc-sync
|
|
64
|
+
kind: uses
|
|
65
|
+
- src: cli
|
|
66
|
+
dst: graph-format
|
|
67
|
+
kind: uses
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# CLAUDE.md — Ядро мультиагентной разработки
|
|
2
|
+
|
|
3
|
+
> **Версия:** 3.0 (Optimized)
|
|
4
|
+
> **Интеграция:** steveyegge/beads CLI
|
|
5
|
+
> **Skills:** `/epic-init`, `/dev`, `/review`, `/test`, `/coordinator`, `/templates`, `/checkpoint`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0. КРИТИЧЕСКИЕ ПРАВИЛА
|
|
10
|
+
|
|
11
|
+
> **ЧИТАТЬ ПЕРВЫМ. ВЫПОЛНЯТЬ ВСЕГДА.**
|
|
12
|
+
|
|
13
|
+
### ПЕРЕД любой работой
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# 1. Проверить доступные задачи
|
|
17
|
+
bd ready
|
|
18
|
+
|
|
19
|
+
# 2. Взять задачу
|
|
20
|
+
bd update <bead-id> --status in_progress --claim
|
|
21
|
+
|
|
22
|
+
# 3. Прочитать контекст
|
|
23
|
+
# .claude/development/docs/features/{ISSUE-KEY}/CONTEXT.md
|
|
24
|
+
# .claude/development/docs/features/{ISSUE-KEY}/ACTIVE.md
|
|
25
|
+
|
|
26
|
+
# 4. Подтвердить пользователю понимание состояния
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### ВО ВРЕМЯ работы
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Checkpoint каждые 30 мин или 5 шагов
|
|
33
|
+
bd comments add <bead-id> "CHECKPOINT: [что сделано]"
|
|
34
|
+
|
|
35
|
+
# Обновлять ACTIVE.md после каждого значимого действия
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### ПРИ ЗАВЕРШЕНИИ bead
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# 1. Тесты проходят
|
|
42
|
+
uv run pytest
|
|
43
|
+
|
|
44
|
+
# 2. Финальный checkpoint
|
|
45
|
+
bd comments add <bead-id> "ЗАВЕРШЕНО: [результаты]"
|
|
46
|
+
|
|
47
|
+
# 3. Закрыть bead
|
|
48
|
+
bd close <bead-id>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 0.1 Проект: Beadloom
|
|
54
|
+
|
|
55
|
+
- **Стек:** Python 3.10+, SQLite (WAL), Click + Rich (CLI), tree-sitter, MCP (stdio)
|
|
56
|
+
- **Дистрибуция:** PyPI (`uv tool install beadloom`)
|
|
57
|
+
- **Тесты:** pytest + pytest-cov (≥80% покрытие)
|
|
58
|
+
- **Линтер/форматтер:** ruff (lint + format)
|
|
59
|
+
- **Типизация:** mypy --strict
|
|
60
|
+
- **Документация проекта:** `.claude/development/PRD.md`, `.claude/development/RFC.md`
|
|
61
|
+
- **Фазы:** 0-Onboarding → 1-Context Oracle → 2-MCP → 3-Doc Sync → 4-Polish
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 1. Skills — Динамическая загрузка
|
|
66
|
+
|
|
67
|
+
| Ситуация | Команда | Описание |
|
|
68
|
+
|----------|---------|----------|
|
|
69
|
+
| Новый эпик/фича | `/epic-init` | Сетап, стандарты, согласование |
|
|
70
|
+
| Разработка кода | `/dev` | TDD, паттерны, workflow |
|
|
71
|
+
| Code review | `/review` | Чеклисты качества |
|
|
72
|
+
| Написание тестов | `/test` | AAA pattern, покрытие |
|
|
73
|
+
| Параллельная работа | `/coordinator` | Распределение, синхронизация |
|
|
74
|
+
| Нужны шаблоны | `/templates` | PRD, RFC, CONTEXT, PLAN |
|
|
75
|
+
| Создать checkpoint | `/checkpoint` | Формат, правила |
|
|
76
|
+
|
|
77
|
+
**Правило:** Вызывай skill когда нужна детальная инструкция.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 2. Beads CLI — Essentials
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Доступные задачи (без блокеров)
|
|
85
|
+
bd ready
|
|
86
|
+
|
|
87
|
+
# Все задачи
|
|
88
|
+
bd list
|
|
89
|
+
|
|
90
|
+
# Детали + история
|
|
91
|
+
bd show <id>
|
|
92
|
+
bd comments <id>
|
|
93
|
+
|
|
94
|
+
# Взять задачу
|
|
95
|
+
bd update <id> --status in_progress --claim
|
|
96
|
+
|
|
97
|
+
# Добавить checkpoint (НЕ перетирает описание)
|
|
98
|
+
bd comments add <id> "текст checkpoint"
|
|
99
|
+
|
|
100
|
+
# Закрыть задачу
|
|
101
|
+
bd close <id>
|
|
102
|
+
|
|
103
|
+
# Граф зависимостей
|
|
104
|
+
bd graph --all
|
|
105
|
+
|
|
106
|
+
# Добавить зависимость
|
|
107
|
+
bd dep add <id> <depends-on-id>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**ВАЖНО:**
|
|
111
|
+
- `bd comments add` — для checkpoints (сохраняет историю)
|
|
112
|
+
- `bd update --append-notes` — для заметок
|
|
113
|
+
- НИКОГДА не работай над задачей без `--claim`
|
|
114
|
+
- ВСЕГДА закрывай через `bd close`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 3. Файловая память (защита от автокомпакта)
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
.claude/development/docs/features/{ISSUE-KEY}/
|
|
122
|
+
├── CONTEXT.md ← ЯДРО: состояние, решения, стандарты
|
|
123
|
+
├── ACTIVE.md ← ФОКУС: текущая работа, прогресс
|
|
124
|
+
├── RFC.md ← АРХИТЕКТУРА: техническое решение
|
|
125
|
+
├── PLAN.md ← DAG: beads и зависимости
|
|
126
|
+
└── PRD.md ← ТРЕБОВАНИЯ: бизнес-цели
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
| Приоритет | Файл | Когда читать |
|
|
130
|
+
|-----------|------|--------------|
|
|
131
|
+
| **P0** | CONTEXT.md | Всегда в начале |
|
|
132
|
+
| **P0** | ACTIVE.md | Всегда в начале |
|
|
133
|
+
| **P1** | beads comments | При возобновлении работы |
|
|
134
|
+
|
|
135
|
+
**Правило:** НИКОГДА не полагаться на "память" из чата. Читать файлы!
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 4. Роли агентов
|
|
140
|
+
|
|
141
|
+
| Роль | Skill | Когда использовать |
|
|
142
|
+
|------|-------|-------------------|
|
|
143
|
+
| **Разработчик** | `/dev` | Реализация beads |
|
|
144
|
+
| **Ревьювер** | `/review` | Проверка качества |
|
|
145
|
+
| **Тестировщик** | `/test` | Написание тестов |
|
|
146
|
+
| **Координатор** | `/coordinator` | Мультиагентная работа |
|
|
147
|
+
|
|
148
|
+
### Один агент
|
|
149
|
+
Используй `/dev` для разработки, `/checkpoint` для сохранения прогресса.
|
|
150
|
+
|
|
151
|
+
### Мультиагентный режим
|
|
152
|
+
Координатор использует `/coordinator` для распределения.
|
|
153
|
+
Субагенты используют соответствующие роли.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 5. DAG и приоритеты
|
|
158
|
+
|
|
159
|
+
| Приоритет | Описание | Правило |
|
|
160
|
+
|-----------|----------|---------|
|
|
161
|
+
| **P0** | Critical, блокирует другие | Выполнять первым |
|
|
162
|
+
| **P1** | High, важно | После P0 |
|
|
163
|
+
| **P2** | Medium, улучшения | Когда есть время |
|
|
164
|
+
| **P3** | Low, nice-to-have | В последнюю очередь |
|
|
165
|
+
|
|
166
|
+
**Правила:**
|
|
167
|
+
- Брать только из `bd ready`
|
|
168
|
+
- НЕ брать bead с невыполненными зависимостями
|
|
169
|
+
- НЕ брать P2/P3 пока есть P0/P1
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 6. Git
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
Формат коммитов:
|
|
177
|
+
[{ISSUE-KEY}] <type>: <описание на русском>
|
|
178
|
+
|
|
179
|
+
Типы: feat, fix, refactor, docs, test, chore
|
|
180
|
+
|
|
181
|
+
Пример:
|
|
182
|
+
[MCP-001] feat: добавлен health endpoint
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 7. Антипаттерны (НИКОГДА)
|
|
188
|
+
|
|
189
|
+
### Планирование
|
|
190
|
+
- Начинать без согласованного плана
|
|
191
|
+
- Брать bead с незавершёнными зависимостями
|
|
192
|
+
- Менять DAG без уведомления пользователя
|
|
193
|
+
|
|
194
|
+
### Работа
|
|
195
|
+
- Начинать без чтения CONTEXT.md
|
|
196
|
+
- Полагаться на память чата
|
|
197
|
+
- Работать над несколькими beads одновременно
|
|
198
|
+
- Игнорировать checkpoints
|
|
199
|
+
|
|
200
|
+
### Завершение
|
|
201
|
+
- Завершать bead без `bd comments add`
|
|
202
|
+
- Завершать без `bd close`
|
|
203
|
+
- Коммитить с падающими тестами
|
|
204
|
+
|
|
205
|
+
### Код
|
|
206
|
+
- Использовать `Any` / `# type: ignore` без причины
|
|
207
|
+
- Оставлять `print()` / `breakpoint()`
|
|
208
|
+
- Писать код без теста (нарушение TDD)
|
|
209
|
+
- Голый `except:` без указания типа исключения
|
|
210
|
+
- `import *`
|
|
211
|
+
- Мутабельные аргументы по умолчанию (`def f(x=[]):`)
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 8. Quick Reference
|
|
216
|
+
|
|
217
|
+
### Старт сессии
|
|
218
|
+
```bash
|
|
219
|
+
bd ready
|
|
220
|
+
bd update <id> --status in_progress --claim
|
|
221
|
+
# Читать CONTEXT.md, ACTIVE.md
|
|
222
|
+
# Подтвердить пользователю
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Во время работы
|
|
226
|
+
```bash
|
|
227
|
+
# Каждые 30 мин
|
|
228
|
+
bd comments add <id> "CHECKPOINT: ..."
|
|
229
|
+
# Обновить ACTIVE.md
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Завершение bead
|
|
233
|
+
```bash
|
|
234
|
+
uv run pytest
|
|
235
|
+
bd comments add <id> "ЗАВЕРШЕНО: ..."
|
|
236
|
+
bd close <id>
|
|
237
|
+
bd ready # что разблокировалось?
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Новый эпик
|
|
241
|
+
```
|
|
242
|
+
/epic-init
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Нужны шаблоны
|
|
246
|
+
```
|
|
247
|
+
/templates
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 9. Чеклист агента
|
|
253
|
+
|
|
254
|
+
### При старте
|
|
255
|
+
- [ ] `bd ready` → выбрал задачу
|
|
256
|
+
- [ ] `bd update <id> --status in_progress --claim`
|
|
257
|
+
- [ ] Прочитал CONTEXT.md и ACTIVE.md
|
|
258
|
+
- [ ] Подтвердил понимание пользователю
|
|
259
|
+
|
|
260
|
+
### Во время работы
|
|
261
|
+
- [ ] Обновляю ACTIVE.md
|
|
262
|
+
- [ ] Checkpoint в beads каждые 30 мин
|
|
263
|
+
- [ ] Следую TDD (если код)
|
|
264
|
+
|
|
265
|
+
### При завершении
|
|
266
|
+
- [ ] Тесты проходят
|
|
267
|
+
- [ ] `bd comments add` — финальный checkpoint
|
|
268
|
+
- [ ] `bd close <id>`
|
|
269
|
+
- [ ] ACTIVE.md очищен
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
> **Нужна детальная инструкция?** Вызови соответствующий skill:
|
|
274
|
+
> `/epic-init` | `/dev` | `/review` | `/test` | `/coordinator` | `/templates` | `/checkpoint`
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# /checkpoint — Создание чекпоинта
|
|
2
|
+
|
|
3
|
+
> **Вызывать:** каждые 30 мин, после 5 шагов, при завершении bead
|
|
4
|
+
> **Цель:** защита от автокомпакта, сохранение прогресса
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Когда создавать checkpoint
|
|
9
|
+
|
|
10
|
+
| Триггер | Обязательность |
|
|
11
|
+
|---------|----------------|
|
|
12
|
+
| Завершён bead | **ОБЯЗАТЕЛЬНО** |
|
|
13
|
+
| Выполнено 5+ шагов | ОБЯЗАТЕЛЬНО |
|
|
14
|
+
| Прошло 30+ минут | ОБЯЗАТЕЛЬНО |
|
|
15
|
+
| Перед переключением задачи | ОБЯЗАТЕЛЬНО |
|
|
16
|
+
| Принято архитектурное решение | Рекомендуется |
|
|
17
|
+
| Обнаружена проблема | Рекомендуется |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Checkpoint в beads (основной способ)
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
bd comments add <bead-id> "$(cat <<'EOF'
|
|
25
|
+
═══ CHECKPOINT: YYYY-MM-DD HH:MM ═══
|
|
26
|
+
|
|
27
|
+
ВЫПОЛНЕНО:
|
|
28
|
+
- Шаг 1
|
|
29
|
+
- Шаг 2
|
|
30
|
+
- Шаг 3
|
|
31
|
+
|
|
32
|
+
РЕШЕНИЯ:
|
|
33
|
+
- Решение X: причина Y
|
|
34
|
+
|
|
35
|
+
ИЗМЕНЁННЫЕ ФАЙЛЫ:
|
|
36
|
+
- src/path/file1.py — что изменено
|
|
37
|
+
- src/path/file2.py — что изменено
|
|
38
|
+
|
|
39
|
+
СЛЕДУЮЩИЕ ШАГИ:
|
|
40
|
+
1. Шаг A
|
|
41
|
+
2. Шаг B
|
|
42
|
+
|
|
43
|
+
БЛОКЕРЫ: [нет | описание]
|
|
44
|
+
EOF
|
|
45
|
+
)"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Checkpoint при завершении bead
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
bd comments add <bead-id> "$(cat <<'EOF'
|
|
54
|
+
═══ BEAD ЗАВЕРШЁН: YYYY-MM-DD HH:MM ═══
|
|
55
|
+
|
|
56
|
+
ЧТО СДЕЛАНО:
|
|
57
|
+
- Пункт 1
|
|
58
|
+
- Пункт 2
|
|
59
|
+
- Пункт 3
|
|
60
|
+
|
|
61
|
+
РЕШЕНИЯ В ПРОЦЕССЕ:
|
|
62
|
+
- Решение X: причина Y
|
|
63
|
+
- Решение Z: причина W
|
|
64
|
+
|
|
65
|
+
ИЗВЕСТНЫЕ ОГРАНИЧЕНИЯ/TODO:
|
|
66
|
+
- TODO 1
|
|
67
|
+
- Ограничение 1
|
|
68
|
+
|
|
69
|
+
ТЕСТЫ:
|
|
70
|
+
- Unit: XX passed
|
|
71
|
+
- Integration: XX passed
|
|
72
|
+
- Покрытие: XX%
|
|
73
|
+
|
|
74
|
+
ФАЙЛЫ:
|
|
75
|
+
- src/new-file.py — новый модуль
|
|
76
|
+
- src/updated.py — обновлён
|
|
77
|
+
EOF
|
|
78
|
+
)"
|
|
79
|
+
|
|
80
|
+
# Затем закрыть
|
|
81
|
+
bd close <bead-id>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Обновление ACTIVE.md
|
|
87
|
+
|
|
88
|
+
Параллельно с beads checkpoint, обновить ACTIVE.md:
|
|
89
|
+
|
|
90
|
+
```markdown
|
|
91
|
+
## Заметки по ходу работы
|
|
92
|
+
|
|
93
|
+
### [HH:MM] CHECKPOINT
|
|
94
|
+
**Выполнено:**
|
|
95
|
+
- Шаг 1
|
|
96
|
+
- Шаг 2
|
|
97
|
+
|
|
98
|
+
**Решения:**
|
|
99
|
+
- Решение X
|
|
100
|
+
|
|
101
|
+
**Следующие шаги:**
|
|
102
|
+
1. Шаг A
|
|
103
|
+
2. Шаг B
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Checkpoint в чат (для пользователя)
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
═══════════════════════════════════════════════════════
|
|
112
|
+
CHECKPOINT: {ISSUE-KEY} | BEAD-XX | YYYY-MM-DD HH:MM
|
|
113
|
+
═══════════════════════════════════════════════════════
|
|
114
|
+
|
|
115
|
+
## Состояние
|
|
116
|
+
- Фаза: Development
|
|
117
|
+
- Bead: BEAD-XX (In Progress)
|
|
118
|
+
|
|
119
|
+
## Выполнено
|
|
120
|
+
1. [действие 1]
|
|
121
|
+
2. [действие 2]
|
|
122
|
+
|
|
123
|
+
## Ключевые решения
|
|
124
|
+
- [решение]: [причина]
|
|
125
|
+
|
|
126
|
+
## Изменённые файлы
|
|
127
|
+
- `path/to/file.py` — [что]
|
|
128
|
+
|
|
129
|
+
## Следующие шаги
|
|
130
|
+
1. [шаг 1]
|
|
131
|
+
2. [шаг 2]
|
|
132
|
+
|
|
133
|
+
## Команда для продолжения
|
|
134
|
+
"Продолжи работу над {ISSUE-KEY}"
|
|
135
|
+
|
|
136
|
+
═══════════════════════════════════════════════════════
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Защита от автокомпакта
|
|
142
|
+
|
|
143
|
+
**Проблема:** При длительной работе Claude сжимает ранний контекст.
|
|
144
|
+
|
|
145
|
+
**Решение:** Вся критическая информация в файлах:
|
|
146
|
+
|
|
147
|
+
| Информация | Где хранится |
|
|
148
|
+
|------------|--------------|
|
|
149
|
+
| Текущее состояние | CONTEXT.md |
|
|
150
|
+
| План и прогресс | ACTIVE.md |
|
|
151
|
+
| Детали работы | `bd comments <bead-id>` |
|
|
152
|
+
| Архитектура | RFC.md |
|
|
153
|
+
| DAG | PLAN.md + beads |
|
|
154
|
+
|
|
155
|
+
**Правило:** Никогда не полагаться на "память" из чата. Всегда читать файлы при возобновлении работы.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Восстановление после автокомпакта
|
|
160
|
+
|
|
161
|
+
Если контекст был сжат:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# 1. Прочитать состояние из beads
|
|
165
|
+
bd show <bead-id>
|
|
166
|
+
bd comments <bead-id>
|
|
167
|
+
|
|
168
|
+
# 2. Прочитать файлы
|
|
169
|
+
# - CONTEXT.md
|
|
170
|
+
# - ACTIVE.md
|
|
171
|
+
|
|
172
|
+
# 3. Продолжить с последнего checkpoint
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Чеклист checkpoint
|
|
178
|
+
|
|
179
|
+
- [ ] Добавлен comment в beads: `bd comments add`
|
|
180
|
+
- [ ] ACTIVE.md обновлён (заметки, прогресс)
|
|
181
|
+
- [ ] CONTEXT.md обновлён (если были решения)
|
|
182
|
+
- [ ] Пользователь информирован (checkpoint в чат)
|