memory-bank-skill 3.0.0rc1__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.
Files changed (81) hide show
  1. memory_bank_skill-3.0.0rc1/.gitignore +15 -0
  2. memory_bank_skill-3.0.0rc1/CHANGELOG.md +197 -0
  3. memory_bank_skill-3.0.0rc1/PKG-INFO +363 -0
  4. memory_bank_skill-3.0.0rc1/README.md +325 -0
  5. memory_bank_skill-3.0.0rc1/SKILL.md +179 -0
  6. memory_bank_skill-3.0.0rc1/VERSION +1 -0
  7. memory_bank_skill-3.0.0rc1/adapters/_lib_agents_md.sh +172 -0
  8. memory_bank_skill-3.0.0rc1/adapters/cline.sh +226 -0
  9. memory_bank_skill-3.0.0rc1/adapters/codex.sh +161 -0
  10. memory_bank_skill-3.0.0rc1/adapters/cursor.sh +208 -0
  11. memory_bank_skill-3.0.0rc1/adapters/git-hooks-fallback.sh +235 -0
  12. memory_bank_skill-3.0.0rc1/adapters/kilo.sh +118 -0
  13. memory_bank_skill-3.0.0rc1/adapters/opencode.sh +204 -0
  14. memory_bank_skill-3.0.0rc1/adapters/pi.sh +171 -0
  15. memory_bank_skill-3.0.0rc1/adapters/windsurf.sh +239 -0
  16. memory_bank_skill-3.0.0rc1/agents/mb-codebase-mapper.md +316 -0
  17. memory_bank_skill-3.0.0rc1/agents/mb-doctor.md +181 -0
  18. memory_bank_skill-3.0.0rc1/agents/mb-manager.md +354 -0
  19. memory_bank_skill-3.0.0rc1/agents/plan-verifier.md +120 -0
  20. memory_bank_skill-3.0.0rc1/commands/adr.md +45 -0
  21. memory_bank_skill-3.0.0rc1/commands/api-contract.md +64 -0
  22. memory_bank_skill-3.0.0rc1/commands/catchup.md +10 -0
  23. memory_bank_skill-3.0.0rc1/commands/changelog.md +10 -0
  24. memory_bank_skill-3.0.0rc1/commands/commit.md +18 -0
  25. memory_bank_skill-3.0.0rc1/commands/contract.md +40 -0
  26. memory_bank_skill-3.0.0rc1/commands/db-migration.md +66 -0
  27. memory_bank_skill-3.0.0rc1/commands/doc.md +16 -0
  28. memory_bank_skill-3.0.0rc1/commands/done.md +6 -0
  29. memory_bank_skill-3.0.0rc1/commands/mb.md +682 -0
  30. memory_bank_skill-3.0.0rc1/commands/observability.md +75 -0
  31. memory_bank_skill-3.0.0rc1/commands/plan.md +129 -0
  32. memory_bank_skill-3.0.0rc1/commands/pr.md +14 -0
  33. memory_bank_skill-3.0.0rc1/commands/refactor.md +15 -0
  34. memory_bank_skill-3.0.0rc1/commands/review.md +132 -0
  35. memory_bank_skill-3.0.0rc1/commands/security-review.md +91 -0
  36. memory_bank_skill-3.0.0rc1/commands/start.md +6 -0
  37. memory_bank_skill-3.0.0rc1/commands/test.md +14 -0
  38. memory_bank_skill-3.0.0rc1/docs/MIGRATION-v1-v2.md +156 -0
  39. memory_bank_skill-3.0.0rc1/docs/cross-agent-setup.md +221 -0
  40. memory_bank_skill-3.0.0rc1/docs/install.md +86 -0
  41. memory_bank_skill-3.0.0rc1/docs/release-process.md +122 -0
  42. memory_bank_skill-3.0.0rc1/docs/repo-migration.md +120 -0
  43. memory_bank_skill-3.0.0rc1/hooks/block-dangerous.sh +109 -0
  44. memory_bank_skill-3.0.0rc1/hooks/file-change-log.sh +108 -0
  45. memory_bank_skill-3.0.0rc1/hooks/mb-compact-reminder.sh +72 -0
  46. memory_bank_skill-3.0.0rc1/hooks/session-end-autosave.sh +95 -0
  47. memory_bank_skill-3.0.0rc1/install.sh +242 -0
  48. memory_bank_skill-3.0.0rc1/memory_bank_skill/__init__.py +3 -0
  49. memory_bank_skill-3.0.0rc1/memory_bank_skill/__main__.py +6 -0
  50. memory_bank_skill-3.0.0rc1/memory_bank_skill/_bundle.py +48 -0
  51. memory_bank_skill-3.0.0rc1/memory_bank_skill/cli.py +172 -0
  52. memory_bank_skill-3.0.0rc1/pyproject.toml +124 -0
  53. memory_bank_skill-3.0.0rc1/references/claude-md-template.md +99 -0
  54. memory_bank_skill-3.0.0rc1/references/metadata.md +101 -0
  55. memory_bank_skill-3.0.0rc1/references/planning-and-verification.md +89 -0
  56. memory_bank_skill-3.0.0rc1/references/structure.md +147 -0
  57. memory_bank_skill-3.0.0rc1/references/tags-vocabulary.md +50 -0
  58. memory_bank_skill-3.0.0rc1/references/templates.md +286 -0
  59. memory_bank_skill-3.0.0rc1/references/workflow.md +125 -0
  60. memory_bank_skill-3.0.0rc1/rules/CLAUDE-GLOBAL.md +125 -0
  61. memory_bank_skill-3.0.0rc1/rules/RULES.md +522 -0
  62. memory_bank_skill-3.0.0rc1/scripts/_lib.sh +224 -0
  63. memory_bank_skill-3.0.0rc1/scripts/mb-codegraph.py +634 -0
  64. memory_bank_skill-3.0.0rc1/scripts/mb-compact.sh +299 -0
  65. memory_bank_skill-3.0.0rc1/scripts/mb-context.sh +91 -0
  66. memory_bank_skill-3.0.0rc1/scripts/mb-deps-check.sh +204 -0
  67. memory_bank_skill-3.0.0rc1/scripts/mb-drift.sh +213 -0
  68. memory_bank_skill-3.0.0rc1/scripts/mb-import.py +326 -0
  69. memory_bank_skill-3.0.0rc1/scripts/mb-index-json.py +215 -0
  70. memory_bank_skill-3.0.0rc1/scripts/mb-index.sh +87 -0
  71. memory_bank_skill-3.0.0rc1/scripts/mb-metrics.sh +165 -0
  72. memory_bank_skill-3.0.0rc1/scripts/mb-note.sh +40 -0
  73. memory_bank_skill-3.0.0rc1/scripts/mb-plan-done.sh +161 -0
  74. memory_bank_skill-3.0.0rc1/scripts/mb-plan-sync.sh +191 -0
  75. memory_bank_skill-3.0.0rc1/scripts/mb-plan.sh +103 -0
  76. memory_bank_skill-3.0.0rc1/scripts/mb-search.sh +218 -0
  77. memory_bank_skill-3.0.0rc1/scripts/mb-tags-normalize.sh +247 -0
  78. memory_bank_skill-3.0.0rc1/scripts/mb-upgrade.sh +142 -0
  79. memory_bank_skill-3.0.0rc1/settings/hooks.json +96 -0
  80. memory_bank_skill-3.0.0rc1/settings/merge-hooks.py +54 -0
  81. memory_bank_skill-3.0.0rc1/uninstall.sh +91 -0
@@ -0,0 +1,15 @@
1
+ .installed-manifest.json
2
+ *.backup.*
3
+ .DS_Store
4
+ .env
5
+ *.env
6
+ *.pem
7
+ *.key
8
+ *.secret
9
+ __pycache__/
10
+ *.pyc
11
+ .coverage
12
+ htmlcov/
13
+ .pytest_cache/
14
+ .ruff_cache/
15
+ .memory-bank/codebase/.cache/
@@ -0,0 +1,197 @@
1
+ # Changelog
2
+
3
+ Все значимые изменения документируются здесь. Формат — [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), версионирование — [SemVer](https://semver.org/spec/v2.0.0.html).
4
+
5
+ ## [3.0.0-rc1] — 2026-04-20
6
+
7
+ ### Repository moved
8
+
9
+ Этот skill переехал в новый публичный репозиторий: **[`fockus/skill-memory-bank`](https://github.com/fockus/skill-memory-bank)**. Старое имя `claude-skill-memory-bank` отражало только один из 8 поддерживаемых клиентов и стало misleading.
10
+
11
+ **Migration guide:** [docs/repo-migration.md](docs/repo-migration.md).
12
+
13
+ Historical releases (`v1.x`, `v2.0.0`, `v2.1.0`, `v2.2.0`) остаются доступны в старом репозитории. `v3.0.0` и далее публикуются в новом.
14
+
15
+ ### Added
16
+
17
+ - **Stage 8 — Cross-agent adapters** (7 clients beyond Claude Code): Cursor (CC-compat hooks), Windsurf (Cascade), Cline (`.clinerules/hooks/`), Kilo (+ git-hooks fallback), OpenCode (TS plugin с `experimental.session.compacting`), Codex (experimental hooks), Pi Code (dual-mode). See `docs/cross-agent-setup.md`.
18
+ - **`adapters/_lib_agents_md.sh`** — refcount-based shared `AGENTS.md` ownership via `.mb-agents-owners.json`. Enables safe coexistence of OpenCode / Codex / Pi installs.
19
+ - **`adapters/git-hooks-fallback.sh`** — universal `.git/hooks/` installer (post-commit auto-capture, pre-commit `<private>` warnings, chain pattern preserves user hooks).
20
+ - **`install.sh --clients <list>`** — non-interactive multi-client install. Valid: `claude-code, cursor, windsurf, cline, kilo, opencode, pi, codex`.
21
+ - **`docs/cross-agent-setup.md`** — complete per-client cheatsheet + hook capability matrix + troubleshooting FAQ.
22
+ - **`docs/repo-migration.md`** — upgrade instructions for existing users.
23
+
24
+ ### Changed
25
+
26
+ - Repository name: `claude-skill-memory-bank` → `skill-memory-bank`.
27
+ - Install target directory: `~/.claude/skills/skill-memory-bank/` (was `claude-skill-memory-bank/`).
28
+ - `mb-upgrade.sh` tracks new origin URL.
29
+
30
+ ### Tests
31
+
32
+ - **340+/340+ bats + e2e green** (+90 adapter bats, +10 install-clients e2e over v2.2.0).
33
+
34
+ ---
35
+
36
+ ## [2.2.0] — 2026-04-20
37
+
38
+ Knowledge-reach release: cold-start через JSONL-импорт, code graph для 6 языков, tags normalization через controlled vocabulary.
39
+
40
+ ### Added
41
+
42
+ - **`/mb import --project <path> [--since] [--apply]`** (`scripts/mb-import.py`) — bootstrap Memory Bank из Claude Code транскриптов (`~/.claude/projects/<slug>/*.jsonl`). Извлекает daily-grouped `progress.md` секции и arch-discussion notes (≥3 consecutive assistant messages >1K chars). Dedup SHA256(timestamp + first 500 chars), resume через `.import-state.json`. PII auto-wrap (email + API-key → `<private>`) интегрирован с v2.1 Stage 3. `--dry-run` default.
43
+ - **`/mb graph [--apply] [src_root]`** (`scripts/mb-codegraph.py`) — code graph для Python (stdlib `ast`, always-on) + Go / JavaScript / TypeScript / Rust / Java (через tree-sitter, opt-in). Nodes = module/function/class, edges = import/call/inherit. Output: `codebase/graph.json` (JSON Lines, grep/jq friendly) + `codebase/god-nodes.md` (top-20 by degree). SHA256 incremental cache per-file. `HAS_TREE_SITTER` флаг обеспечивает graceful degrade без grammars. Skipped dirs: `.venv`, `node_modules`, `__pycache__`, `.git`, `target`, `dist`, `build`.
44
+ - **`/mb tags [--apply] [--auto-merge]`** (`scripts/mb-tags-normalize.sh`) — Levenshtein-based synonym detection + merge через controlled vocabulary. Distance ≤2 detection, ≤1 для `--auto-merge`. Vocabulary в `.memory-bank/tags-vocabulary.md` (user-editable) → fallback на `references/tags-vocabulary.md` (35 default tags). Exit 2 если найдены unknown tags (drift signal).
45
+ - **`references/tags-vocabulary.md`** — template с 35 default тегами (Core: arch/auth/bug/perf/refactor/test/...; Process: debug/review/post-mortem/adr/spike; Workflow: blocked/todo/wip/imported/discussion).
46
+ - **`mb-index-json.py`** — авто-kebab-case для тегов: `FooBar → foo-bar`, `AUTH → auth`, `someThing → some-thing`. Dedup preserving order. Source files не трогаются — только index.
47
+
48
+ ### Changed
49
+
50
+ - **`mb-codegraph.py`** — Python-only v1 расширен tree-sitter adapter для 5 новых языков. Same node/edge schema. Lazy parser loading per language via `_TS_PARSERS` cache.
51
+ - **`commands/mb.md`** — секции `/mb import`, `/mb graph`, `/mb tags` с полными примерами, dogfood-outputs, ограничениями.
52
+ - **`install.sh`** — печатает hint для tree-sitter extras.
53
+
54
+ ### Tests
55
+
56
+ - pytest: **96** (было 44 после v2.1) — +17 test_import, +21 test_codegraph (Python), +14 test_codegraph_ts (tree-sitter).
57
+ - bats: **208** (было 194) — +14 test_tags_normalize.
58
+ - shellcheck: 0 warnings. ruff: all passed.
59
+
60
+ ### Gate v2.2 — passed ✅
61
+
62
+ 1. ✅ `/mb import` на реальном JSONL (2573 events) — **0.127s** (target ≤30s).
63
+ 2. ✅ `mb-codegraph.py` на `scripts/` — **0.068s** для 60 nodes + 487 edges (target ≤30s).
64
+ 3. ✅ Tags normalization: `sqlite_vec → sqlite-vec` auto-merged distance=1, 2 notes rewritten. Unknown tag → exit 2 drift signal works.
65
+ 4. ✅ Full regression: 96 pytest + 208 bats + ruff + shellcheck clean.
66
+ 5. ✅ VERSION 2.2.0, CHANGELOG updated.
67
+
68
+ ### ADR pivots
69
+
70
+ - **ADR-006 обновлён (Stage 6.5):** изначально tree-sitter был deferred opt-in. После feedback пользователя ("часто работаю на Node/Go") — реализовано в v2.2, с graceful degrade при отсутствии grammars. Python path остался zero-dep. См. BACKLOG (Stage 6.5 shipped entry).
71
+
72
+ ### Deferred to v3.x backlog
73
+
74
+ - Haiku-powered compression для `/mb import` summaries (сейчас deterministic first+last chars).
75
+ - Debug-session detection в `/mb import` для `lessons.md`.
76
+ - Type inference в `/mb graph` (edges сейчас name-based, не различают модули с одноимёнными функциями).
77
+ - tree-sitter grammars для C/C++/Ruby/PHP/Kotlin/Swift (добавить по запросу через `_TS_LANG_CONFIG`).
78
+
79
+ ## [2.1.0] — 2026-04-20
80
+
81
+ Hardening release: auto-capture при забытом `/mb done`, detection drift без AI, защита PII в заметках, status-based decay для старых планов и заметок.
82
+
83
+ ### Added
84
+
85
+ - **Auto-capture SessionEnd hook** (`hooks/session-end-autosave.sh`) — если сессия закрылась без `/mb done`, hook добавляет placeholder-запись в `progress.md`. Lock-файл `.memory-bank/.session-lock` пишется командой `/mb done` → hook видит свежий lock (<1h) и пропускает auto-capture. `MB_AUTO_CAPTURE` env: `auto` (default) / `strict` / `off`. Concurrent-safe через `.auto-lock` (30s TTL). Идемпотентен по session_id.
86
+ - **Drift checkers без AI** (`scripts/mb-drift.sh`) — 8 deterministic checkers (path, staleness, script_coverage, dependency, cross_file, index_sync, command, frontmatter). Output: `drift_check_<name>=ok|warn|skip` + `drift_warnings=N`. Exit 0 если 0 warnings, 1 иначе. `agents/mb-doctor.md` Step 0 = `mb-drift.sh` → LLM call только если `drift_warnings > 0`. Экономит AI-токены.
87
+ - **PII markers `<private>...</private>`** в notes — содержимое блоков не попадает в `index.json` (summary + tags filtered), при `mb-search` заменяется на `[REDACTED]` (inline) или `[REDACTED match in private block]` (multi-line). Unclosed `<private>` fail-safe: хвост до EOF считается приватным. Entries получают `has_private: bool` флаг. `--show-private` требует `MB_SHOW_PRIVATE=1` env (double-confirmation). `hooks/file-change-log.sh` warnит при Write/Edit `.md` файла с `<private>` блоком.
88
+ - **Compaction decay `/mb compact`** (`scripts/mb-compact.sh`) — status-based archival: требует **age > threshold AND done-signal**. Active планы (not done) **НЕ архивируются** даже >180d — warning only. Done-signal (OR): файл физически в `plans/done/`, ИЛИ метка `✅`/`[x]` в `checklist.md`, ИЛИ упоминание как "завершён|done|closed|shipped" в `progress.md`/`STATUS.md`. Notes — `importance: low` + mtime >90d + нет референсов в core файлах. `--dry-run` (default) reasoning only, `--apply` выполняет + touch `.last-compact`. Entries из `notes/archive/` получают `archived: bool` флаг. `mb-search --include-archived` — opt-in для поиска в архиве.
89
+
90
+ ### Changed
91
+
92
+ - **`agents/mb-doctor.md`** — Step 0 теперь вызов `mb-drift.sh`; LLM-шаги (1-4) выполняются только при drift_warnings > 0 или `doctor-full`.
93
+ - **`scripts/mb-index-json.py`** — парсер `<private>` блоков, `has_private: bool` + `archived: bool` fields в entry schema.
94
+ - **`scripts/mb-search.sh`** — span-aware Python filter для REDACTED replacement. `--show-private` + `--include-archived` флаги.
95
+ - **`settings/hooks.json`** — добавлен SessionEnd event для auto-capture.
96
+ - **`commands/mb.md`** — `/mb done` пишет `.session-lock`. Секция `/mb compact` с полной status-based логикой и примерами.
97
+ - **`SKILL.md`** — секции "Private content" и "Auto-capture".
98
+ - **`references/metadata.md`** — schema extended с `has_private` + `archived` fields.
99
+
100
+ ### Tests
101
+
102
+ - bats: **194** (20 test_compact + 4 test_search_archived + 5 test_search_private + 20 test_drift + 12 test_auto_capture + регрессии).
103
+ - pytest: **44** (7 PII + 2 archived + регрессии).
104
+ - e2e: 18 install/uninstall (включая SessionEnd hook roundtrip).
105
+ - shellcheck: 0 warnings (SC1091 info expected для `source _lib.sh`).
106
+ - ruff: all passed.
107
+
108
+ ### Gate v2.1 — passed ✅
109
+
110
+ 1. ✅ Auto-capture end-to-end: симулированный SessionEnd → `progress.md` обновлён без `/mb done`.
111
+ 2. ✅ `mb-drift.sh` на broken fixture: 7 warnings из 8 categories (≥5 target).
112
+ 3. ✅ PII security smoke: `TOP-SECRET-LEAK-CHECK-GATE21` внутри `<private>` → **0 matches** в `index.json`.
113
+ 4. ✅ `/mb compact` dogfood: живой banks чистый (0 candidates), artificial 150d done-plan → archive, 150d active-plan → не archive (safety works).
114
+ 5. ✅ CI matrix `[macos, ubuntu]` × (bats + e2e + pytest) green.
115
+
116
+ ### Deferred to backlog
117
+
118
+ - LLM upgrade для auto-capture (сейчас append-only, детали дочитывает `/mb start` из JSONL).
119
+ - `/mb done` weekly prompt для compaction check.
120
+ - Pre-commit drift hook как отдельный file (YAGNI, документирован в `references/templates.md`).
121
+
122
+ ## [2.0.0] — 2026-04-19
123
+
124
+ Крупный рефакторинг: skill становится language-agnostic, tested, CI-covered, integrated с экосистемой Claude Code. Три концепта под одной крышей: **Memory Bank + RULES + dev toolkit**.
125
+
126
+ ### Added
127
+
128
+ - **Language detection (12 стеков)**: Python, Go, Rust, Node/TypeScript, Java, Kotlin, Swift, C/C++, Ruby, PHP, C#, Elixir. `scripts/mb-metrics.sh` выдаёт key=value метрики для любого из них.
129
+ - **Override для проектных метрик**: `.memory-bank/metrics.sh` (приоритет 1 над auto-detect).
130
+ - **`scripts/_lib.sh`** — общие утилиты (workspace resolver, slug, collision-safe filename, detect_stack/test/lint/src_glob). 7 функций, 36 bats-тестов.
131
+ - **`scripts/mb-plan-sync.sh`** и **`scripts/mb-plan-done.sh`** — автоматизация консистентности plan↔checklist↔plan.md через маркеры `<!-- mb-stage:N -->`.
132
+ - **`scripts/mb-upgrade.sh`** — `/mb upgrade` для самообновления skill из GitHub (git fetch → prompt → ff-only pull + re-install).
133
+ - **`scripts/mb-index-json.py`** — прагматичный index для `notes/` (frontmatter) + `lessons.md` (H3 маркеры). Atomic write. PyYAML opt-in с fallback.
134
+ - **`mb-search --tag <tag>`** — фильтрация по тегам через `index.json`.
135
+ - **`/mb init [--minimal|--full]`** — единая инициализация. `--full` (default) = `.memory-bank/` + `RULES.md` copy + auto-detect стека + `CLAUDE.md` + optional `.planning/` symlink.
136
+ - **`/mb map [focus]`** — сканирование кодовой базы и генерация `.memory-bank/codebase/{STACK,ARCHITECTURE,CONVENTIONS,CONCERNS}.md`.
137
+ - **`/mb context --deep`** — полный codebase-контент (default = 1-line summary).
138
+ - **Правила Frontend (FSD)** и **Mobile (iOS + Android)** в `rules/RULES.md` и `rules/CLAUDE-GLOBAL.md`.
139
+ - **`MB_ALLOW_NO_VERIFY=1`** — bypass для `--no-verify` в `block-dangerous.sh`.
140
+ - **Log rotation** для `file-change-log.sh`: >10 MB → `.log.1 → .log.2 → .log.3`.
141
+ - **GitHub Actions** `.github/workflows/test.yml`: matrix `[ubuntu-latest, macos-latest]` × (bats + e2e + pytest) + lint job (shellcheck + ruff).
142
+ - **148 bats-тестов** (unit + e2e + hooks + search-tag), **35 pytest-тестов**, **94% total coverage**.
143
+
144
+ ### Changed
145
+
146
+ - **`codebase-mapper` → `mb-codebase-mapper`** (MB-native): output path `.planning/codebase/` → `.memory-bank/codebase/`; 770 строк → 316 (−59%); 6 шаблонов → 4 (STACK, ARCHITECTURE, CONVENTIONS, CONCERNS), каждый ≤70 строк.
147
+ - **`/mb update` и `mb-doctor`** больше не хардкодят `pytest`/`ruff`/`src/taskloom/` — используют `mb-metrics.sh`.
148
+ - **`SKILL.md` frontmatter** — `user-invocable: false` (невалидное поле) заменено на `name: memory-bank` с описанием three-in-one concept.
149
+ - **`Task(...)` → `Agent(subagent_type=...)`** во всех skill-файлах. Grep-проверка: 0 вхождений `Task(`.
150
+ - **`mb-doctor`** чинит рассинхроны приоритетно через `mb-plan-sync.sh`/`mb-plan-done.sh`, Edit — только для семантических проблем.
151
+ - **`install.sh`** — всегда пишет `# [MEMORY-BANK-SKILL]` маркер при создании нового `CLAUDE.md` (раньше — только при merge в существующий).
152
+ - **`mb-manager actualize`** — вызывает `mb-index-json.py` вместо ручного Write на `index.json`.
153
+ - **`file-change-log.sh`** — убран `pass\s*$` из placeholder-regex (false-positive); placeholder-поиск теперь вне Python docstrings.
154
+ - **`install.sh` banner**: `19 dev commands` → `18 dev commands` (после слияния init-команд).
155
+
156
+ ### Deprecated
157
+
158
+ - (нет — все deprecations полные в этом релизе; см. Removed)
159
+
160
+ ### Removed
161
+
162
+ - **`/mb:setup-project`** — слит в `/mb init --full`. Команда `commands/setup-project.md` удалена.
163
+ - **Orphan-агент `codebase-mapper`** — заменён на `mb-codebase-mapper`.
164
+ - **Хардкод `pytest -q` / `ruff check src/`** в `commands/mb.md` и `agents/mb-doctor.md`.
165
+ - **Все `Task(...)` вызовы** в skill-файлах (осталось 0).
166
+
167
+ ### Fixed
168
+
169
+ - **E2E-found bug #1**: `install.sh` не добавлял маркер `[MEMORY-BANK-SKILL]` при создании **нового** `CLAUDE.md`. Результат: `uninstall.sh` не находил секцию для очистки.
170
+ - **E2E-found bug #2**: `uninstall.sh` использовал GNU-only флаг `realpath -m`. На macOS BSD realpath падал. Fix: манифест хранит абсолютные пути, `realpath` не нужен.
171
+ - **Node src_glob**: brace-pattern `*.{ts,tsx,js,jsx}` заменён на space-separated для portable grep.
172
+ - **mb-note.sh**: коллизия имени (две заметки в одну минуту) теперь → `_2/_3` суффикс (было: `exit 1`).
173
+ - **file-change-log false-positives**: bare `pass` в Python, TODO внутри docstring.
174
+ - **shellcheck SC1003** в awk-блоке hook'а — переписан через `index()` без nested single-quote escapes.
175
+
176
+ ### Security
177
+
178
+ - **`block-dangerous.sh`** обновлён с `MB_ALLOW_NO_VERIFY=1` explicit-opt-in override — раньше `--no-verify` блокировался наглухо без safe-escape.
179
+ - **secrets-detection** в `file-change-log.sh` продолжает работать (`password|secret|api_key|token|private_key` в source-коде).
180
+
181
+ ### Infrastructure
182
+
183
+ - **Dogfooding**: сам skill использует `.memory-bank/` в своём репозитории. План рефактора v2 лежит в `.memory-bank/plans/`, сессии закрываются через `/mb done`.
184
+ - **VERSION marker**: `2.0.0-dev` → `2.0.0` пишется install.sh в `~/.claude/skills/memory-bank/VERSION`.
185
+ - **CI-зелёный** на macOS + Ubuntu, 0 shellcheck warnings, ruff all passed.
186
+
187
+ ---
188
+
189
+ ## [1.0.0] — 2025-10-XX (pre-refactor baseline)
190
+
191
+ - Initial Memory Bank skill: `.memory-bank/` structure, `/mb` roadmap-команда, 4 агента, 2 hooks, 19 commands.
192
+ - Python-first: хардкод `pytest`, `ruff`, `src/taskloom/`.
193
+ - Orphan-артефакты от GSD: `codebase-mapper`, `.planning/`.
194
+ - 0 автоматических тестов.
195
+
196
+ [2.0.0]: https://github.com/fockus/claude-skill-memory-bank/releases/tag/v2.0.0
197
+ [1.0.0]: https://github.com/fockus/claude-skill-memory-bank/releases/tag/v1.0.0
@@ -0,0 +1,363 @@
1
+ Metadata-Version: 2.4
2
+ Name: memory-bank-skill
3
+ Version: 3.0.0rc1
4
+ Summary: Universal long-term project memory + dev toolkit for AI coding clients (Claude Code, Cursor, Windsurf, Cline, Kilo, OpenCode, Codex, Pi Code)
5
+ Project-URL: Homepage, https://github.com/fockus/skill-memory-bank
6
+ Project-URL: Repository, https://github.com/fockus/skill-memory-bank
7
+ Project-URL: Issues, https://github.com/fockus/skill-memory-bank/issues
8
+ Project-URL: Changelog, https://github.com/fockus/skill-memory-bank/blob/main/CHANGELOG.md
9
+ Author-email: Anton Ivanov <ruzaliasib1705@gmail.com>
10
+ License-Expression: MIT
11
+ Keywords: ai-coding,claude-code,cursor,dev-tools,llm-memory,memory-bank
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: MacOS
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development
21
+ Classifier: Topic :: Software Development :: Documentation
22
+ Requires-Python: >=3.11
23
+ Provides-Extra: codegraph
24
+ Requires-Dist: tree-sitter-go>=0.21; extra == 'codegraph'
25
+ Requires-Dist: tree-sitter-java>=0.21; extra == 'codegraph'
26
+ Requires-Dist: tree-sitter-javascript>=0.21; extra == 'codegraph'
27
+ Requires-Dist: tree-sitter-python>=0.21; extra == 'codegraph'
28
+ Requires-Dist: tree-sitter-rust>=0.21; extra == 'codegraph'
29
+ Requires-Dist: tree-sitter-typescript>=0.21; extra == 'codegraph'
30
+ Requires-Dist: tree-sitter>=0.21; extra == 'codegraph'
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest-cov>=4; extra == 'dev'
33
+ Requires-Dist: pytest>=7; extra == 'dev'
34
+ Requires-Dist: ruff>=0.5; extra == 'dev'
35
+ Provides-Extra: yaml
36
+ Requires-Dist: pyyaml>=6.0; extra == 'yaml'
37
+ Description-Content-Type: text/markdown
38
+
39
+ # memory-bank-skill
40
+
41
+ [![test](https://github.com/fockus/skill-memory-bank/actions/workflows/test.yml/badge.svg)](https://github.com/fockus/skill-memory-bank/actions/workflows/test.yml)
42
+ [![PyPI](https://img.shields.io/pypi/v/memory-bank-skill?color=blue)](https://pypi.org/project/memory-bank-skill/)
43
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
44
+
45
+ **Long-term project memory + dev toolkit for 8 AI coding agents.** Your AI remembers the project between sessions, follows the same engineering rules, and picks up exactly where you left off.
46
+
47
+ Works with: **Claude Code · Cursor · Windsurf · Cline · Kilo · OpenCode · Codex · Pi Code**.
48
+
49
+ ---
50
+
51
+ ## The problem it solves
52
+
53
+ Every new AI coding session is amnesia. You re-explain the project, re-state the plan, re-list what's done. Rules get forgotten. Architecture drifts. Context compaction erases whatever the agent finally learned.
54
+
55
+ **memory-bank-skill** fixes this by making AI memory a first-class citizen — a simple `.memory-bank/` directory inside your project that the agent reads at the start of every session and updates as it works.
56
+
57
+ ```
58
+ .memory-bank/
59
+ ├── STATUS.md ← where we are, what's next
60
+ ├── checklist.md ← current tasks (✅ / ⬜)
61
+ ├── plan.md ← priorities, direction
62
+ ├── RESEARCH.md ← hypotheses, experiments
63
+ ├── progress.md ← work log (append-only)
64
+ ├── lessons.md ← mistakes not to repeat
65
+ ├── notes/ ← knowledge (5-15 line snippets)
66
+ ├── plans/ ← detailed plans per feature/fix
67
+ └── reports/ ← analysis, post-mortems
68
+ ```
69
+
70
+ This directory lives alongside your code (commit it, share it with your team, or `.gitignore` it — your call).
71
+
72
+ ---
73
+
74
+ ## Install
75
+
76
+ Pick one:
77
+
78
+ ### Option 1: pipx (recommended, cross-platform)
79
+
80
+ ```bash
81
+ pipx install memory-bank-skill # stable
82
+ # or, for the latest release candidate:
83
+ pipx install --pip-args='--pre' memory-bank-skill
84
+
85
+ memory-bank install # global install for Claude Code
86
+ ```
87
+
88
+ **Requires:** Python 3.11+, `pipx`, `jq`.
89
+
90
+ ### Option 2: Homebrew (macOS / Linuxbrew)
91
+
92
+ ```bash
93
+ brew tap fockus/tap
94
+ brew install memory-bank
95
+ memory-bank install
96
+ ```
97
+
98
+ ### Option 3: git clone (developers)
99
+
100
+ ```bash
101
+ git clone https://github.com/fockus/skill-memory-bank.git ~/.claude/skills/skill-memory-bank
102
+ cd ~/.claude/skills/skill-memory-bank
103
+ ./install.sh
104
+ ```
105
+
106
+ ### Add cross-agent support (Cursor, Windsurf, OpenCode, etc.)
107
+
108
+ ```bash
109
+ # From inside your project directory:
110
+ memory-bank install --clients claude-code,cursor,windsurf
111
+ ```
112
+
113
+ Supported client names: `claude-code`, `cursor`, `windsurf`, `cline`, `kilo`, `opencode`, `pi`, `codex`.
114
+
115
+ Full per-client details: [docs/cross-agent-setup.md](docs/cross-agent-setup.md).
116
+
117
+ ---
118
+
119
+ ## 5-minute quick start
120
+
121
+ 1. **Install** (see above).
122
+
123
+ 2. **Open your project** in your AI agent (Claude Code, Cursor, etc.) and run:
124
+
125
+ ```
126
+ /mb init
127
+ ```
128
+
129
+ This creates `.memory-bank/` with all the files above, detects your stack, and generates a `CLAUDE.md` (or equivalent) pointing the agent at the memory bank.
130
+
131
+ 3. **Every session starts with:**
132
+
133
+ ```
134
+ /mb start
135
+ ```
136
+
137
+ The agent loads `STATUS.md`, `checklist.md`, `plan.md`, `RESEARCH.md` — it knows exactly what you were working on and what comes next.
138
+
139
+ 4. **As you work:** the agent updates `checklist.md` (⬜ → ✅) whenever tasks finish.
140
+
141
+ 5. **Every session ends with:**
142
+
143
+ ```
144
+ /mb done
145
+ ```
146
+
147
+ This appends a session entry to `progress.md`, updates `STATUS.md` if needed, writes a knowledge note if something interesting was learned.
148
+
149
+ That's it. Rinse and repeat.
150
+
151
+ ---
152
+
153
+ ## What you get
154
+
155
+ ### 1. Persistent project memory
156
+
157
+ Across sessions, compaction events, and even across AI agents — the project state survives. Switch from Claude Code to Cursor mid-project and the new agent catches up by reading `.memory-bank/`.
158
+
159
+ ### 2. Engineering rules applied automatically
160
+
161
+ Installs `~/.claude/RULES.md` (or equivalent per client) with:
162
+
163
+ - **TDD** — tests before implementation
164
+ - **Clean Architecture** (backend) — Infrastructure → Application → Domain, never the reverse
165
+ - **Feature-Sliced Design** (frontend) — `app → pages → widgets → features → entities → shared`
166
+ - **Mobile** (iOS/Android) — UDF + Clean layers, SwiftUI+Observation / Compose+StateFlow
167
+ - **SOLID** — SRP (≤300 LOC / class), ISP (≤5 methods / interface), DIP (constructor injection)
168
+ - **Testing Trophy** — integration > unit > e2e; mock only external services
169
+ - **Coverage** targets — 85% overall, 95% core, 70% infrastructure
170
+
171
+ The agent reads these rules at session start and follows them without you having to remind it.
172
+
173
+ ### 3. 18 dev-workflow commands
174
+
175
+ | Command | Purpose |
176
+ |---------|---------|
177
+ | `/mb start` | Load full project context |
178
+ | `/mb done` | End-of-session actualize + progress note |
179
+ | `/mb verify` | Check that implementation matches the plan |
180
+ | `/mb plan <type> <topic>` | Create a detailed plan (feature / fix / refactor / experiment) with DoD criteria |
181
+ | `/mb search <query>` | Search across the memory bank |
182
+ | `/mb note <topic>` | Quick knowledge note |
183
+ | `/mb tasks` | Show pending work |
184
+ | `/mb update` | Refresh core files without closing the session |
185
+ | `/commit` | Conventional-commit message with context |
186
+ | `/review` | Full code review (security + perf + quality) |
187
+ | `/test` | Run tests with coverage analysis |
188
+ | `/plan` | Implementation plan generator |
189
+ | `/refactor` | Guided refactoring |
190
+ | `/pr` | Create pull request with description |
191
+ | `/adr` | Architecture Decision Record template |
192
+ | `/contract` | Contract-first workflow (Protocol/ABC → tests → impl) |
193
+ | `/security-review` | Security audit pass |
194
+ | `/api-contract` | API contract validation |
195
+ | `/db-migration` | Safe migration planning |
196
+ | `/observability` | Logging/metrics/tracing review |
197
+ | `/doc` | Generate documentation |
198
+ | `/changelog` | CHANGELOG update |
199
+ | `/catchup` | Summarize recent changes |
200
+
201
+ ### 4. Cross-agent portability
202
+
203
+ One `.memory-bank/` directory, 8 AI clients:
204
+
205
+ | Client | Native hooks | Adapter output |
206
+ |--------|--------------|----------------|
207
+ | **Claude Code** | Full lifecycle | `~/.claude/settings.json` + `hooks/` |
208
+ | **Cursor 1.7+** | ✅ (Claude-Code-compatible format) | `.cursor/rules/*.mdc` + `.cursor/hooks.json` |
209
+ | **Windsurf** | ✅ Cascade Hooks | `.windsurf/rules/*.md` + `.windsurf/hooks.json` |
210
+ | **Cline** | ✅ `.clinerules/hooks/*.sh` | `.clinerules/memory-bank.md` + `hooks/` |
211
+ | **Kilo** | ❌ (fallback to git hooks) | `.kilocode/rules/` + `.git/hooks/` |
212
+ | **OpenCode** | ✅ TypeScript plugins | `AGENTS.md` + `opencode.json` + TS plugin |
213
+ | **Codex** (OpenAI) | ✅ Experimental | `AGENTS.md` + `.codex/config.toml` + `hooks.json` |
214
+ | **Pi Code** | Dual-mode (skill / AGENTS.md) | `~/.pi/skills/memory-bank/` or `AGENTS.md` |
215
+
216
+ `AGENTS.md` is shared across OpenCode, Codex, Pi — ownership is refcount-tracked, so uninstalling one client doesn't break the others.
217
+
218
+ ---
219
+
220
+ ## Usage examples
221
+
222
+ ### Starting a new feature
223
+
224
+ ```
225
+ You: /mb plan feature user-auth
226
+
227
+ Agent: [creates .memory-bank/plans/2026-04-20_feature_user-auth.md with DoD,
228
+ test plan, stage breakdown, dependencies]
229
+
230
+ You: Now implement stage 1.
231
+
232
+ Agent: [reads plan, writes failing tests first (TDD), then implementation,
233
+ runs tests, updates checklist ⬜ → ✅]
234
+
235
+ You: /mb verify
236
+
237
+ Agent: [plan-verifier agent checks that implementation matches plan DoD]
238
+
239
+ You: /mb done
240
+
241
+ Agent: [appends session summary to progress.md, updates STATUS.md if needed]
242
+ ```
243
+
244
+ ### Jumping into an existing project
245
+
246
+ ```bash
247
+ cd some-legacy-project/
248
+ memory-bank install --clients cursor # adds .cursor/ adapter
249
+
250
+ # In Cursor:
251
+ /mb init --full # auto-detect stack, generate CLAUDE.md
252
+ /mb start # load everything
253
+ ```
254
+
255
+ ### Sharing state with your team
256
+
257
+ `.memory-bank/` is just markdown. Commit it. Your colleague clones the repo, runs `/mb start`, and has the full project context without asking you a single question.
258
+
259
+ ---
260
+
261
+ ## CLI reference
262
+
263
+ After `pipx install memory-bank-skill`:
264
+
265
+ ```bash
266
+ memory-bank install [--clients <list>] [--project-root <path>]
267
+ memory-bank uninstall
268
+ memory-bank init # prints /mb init hint
269
+ memory-bank version
270
+ memory-bank self-update # prints `pipx upgrade ...`
271
+ memory-bank doctor # resolves bundle, platform info
272
+ memory-bank --help
273
+ ```
274
+
275
+ Flags:
276
+ - `--clients <list>` — comma-separated. Valid: `claude-code, cursor, windsurf, cline, kilo, opencode, pi, codex`. Default: `claude-code` only.
277
+ - `--project-root <path>` — where to place client-specific adapters. Default: current directory.
278
+
279
+ ---
280
+
281
+ ## Environment variables
282
+
283
+ | Variable | Purpose | Default |
284
+ |----------|---------|---------|
285
+ | `MB_AUTO_CAPTURE` | SessionEnd auto-capture mode: `auto` / `strict` / `off` | `auto` |
286
+ | `MB_COMPACT_REMIND` | Weekly `/mb compact` reminder: `auto` / `off` | `auto` |
287
+ | `MB_PI_MODE` | Pi adapter mode: `agents-md` / `skill` | `agents-md` |
288
+ | `MB_SKILL_BUNDLE` | Override bundle path (dev / testing) | auto-detected |
289
+ | `MB_SKIP_DEPS_CHECK` | Skip preflight dep check in `install.sh` | `0` |
290
+
291
+ ---
292
+
293
+ ## Platform support
294
+
295
+ | OS | Status |
296
+ |----|--------|
297
+ | macOS | ✅ Full |
298
+ | Linux | ✅ Full |
299
+ | Windows | ⚠️ WSL only (bash required) |
300
+
301
+ Running native Windows prints a WSL hint and exits. Use WSL: `wsl --install`, then install from inside WSL.
302
+
303
+ ---
304
+
305
+ ## FAQ
306
+
307
+ **Q: Do I need to commit `.memory-bank/` to git?**
308
+ A: Recommended if working in a team — that's how state is shared. Solo project: optional. Either way works.
309
+
310
+ **Q: Does this replace Claude Code's built-in memory?**
311
+ A: No — complementary. Native memory is per-user, cross-project (preferences, style). `.memory-bank/` is per-project, team-shared (status, plans, decisions). Both load simultaneously.
312
+
313
+ **Q: Will it work on private repositories?**
314
+ A: Yes. Everything is local. No data sent anywhere unless your AI agent itself calls external APIs (that's unchanged).
315
+
316
+ **Q: What if my team uses different AI agents?**
317
+ A: That's the whole point. Install per-client: `memory-bank install --clients cursor,windsurf,claude-code`. One memory bank, everyone reads it.
318
+
319
+ **Q: Cursor hooks are experimental / Codex hooks are experimental — is that a problem?**
320
+ A: Partial — where native hooks don't exist or aren't stable, we ship graceful fallbacks (git hooks for Kilo; `AGENTS.md` fallback for Pi). See [docs/cross-agent-setup.md](docs/cross-agent-setup.md) for specifics.
321
+
322
+ **Q: My existing `AGENTS.md` / `.cursor/hooks.json` — will this overwrite them?**
323
+ A: No. Adapters use a marker pattern (`<!-- memory-bank:start/end -->` for MD files, `_mb_owned: true` for JSON hooks) and merge idempotently. User content is preserved; uninstall only removes MB-owned sections.
324
+
325
+ **Q: How do I upgrade?**
326
+ A: `pipx upgrade memory-bank-skill` or `brew upgrade memory-bank`. Git-clone install: `cd ~/.claude/skills/skill-memory-bank && git pull && ./install.sh`.
327
+
328
+ **Q: I want to remove everything.**
329
+ A: `memory-bank uninstall` removes global install. Per-project adapters: `adapters/<client>.sh uninstall <project-dir>` (or drop the `.memory-bank/`, `.cursor/`, etc. directories manually).
330
+
331
+ **Q: Is this production-ready?**
332
+ A: Current version is a release candidate (`3.0.0-rc1`). Daily used on real projects. 461 automated tests green (bats + pytest). Stable API; rc only because we want 1-2 weeks of real-world usage before the stable tag.
333
+
334
+ ---
335
+
336
+ ## Documentation
337
+
338
+ - **[Cross-agent setup](docs/cross-agent-setup.md)** — per-client cheatsheet + hook capability matrix
339
+ - **[Install guide](docs/install.md)** — pipx / Homebrew / git-clone with troubleshooting
340
+ - **[Repository migration](docs/repo-migration.md)** — for users upgrading from `claude-skill-memory-bank`
341
+ - **[Release process](docs/release-process.md)** — PyPI OIDC setup + tag workflow
342
+ - **[CHANGELOG](CHANGELOG.md)** — version history
343
+
344
+ ---
345
+
346
+ ## Contributing
347
+
348
+ 1. Fork & clone.
349
+ 2. `./install.sh && /mb init` in the repo itself (this skill uses itself — meta but works).
350
+ 3. Write tests first (TDD). `bats tests/bats/ tests/e2e/` + `python3 -m pytest tests/pytest/`.
351
+ 4. Follow the rules in `rules/RULES.md` (the same ones the skill enforces on users).
352
+ 5. Open a PR. CI runs on Python 3.11 + 3.12 × ubuntu + macos.
353
+
354
+ ## License
355
+
356
+ MIT. See [LICENSE](LICENSE).
357
+
358
+ ## Links
359
+
360
+ - **Repo:** https://github.com/fockus/skill-memory-bank
361
+ - **PyPI:** https://pypi.org/project/memory-bank-skill/
362
+ - **Homebrew tap:** https://github.com/fockus/homebrew-tap
363
+ - **Issues:** https://github.com/fockus/skill-memory-bank/issues