chore(brain-retro): #3 retro + map/dormancy hygiene (A1/A2/B1/D1)
Brain-retro #3 за весь май 2026 — 116 v2-эпизодов / 61 task_ref. Здоровье: 0 observer_error, 1.7% correction-rate, 19 skill-инвокаций (vs 6 в ретро #2 — рост в 3×). Применены 4 кандидата по явному «делай» от заказчика: A1. observer-classification-map.json: question → [] (был ["#60"]) Разговорные RU-вопросы давали 17/40 false-positive промахов против context7. A2. observer-classification-map.json: memory-sync → [] (был ["#33"]) #33 claude-md-management — канал ТОЛЬКО для CLAUDE.md (Pravila §5 п.10), не для memory/*.md. Давало 8/40 false-positive. B1. Tooling §4.8 #34 Sentry MCP — boundaries +DEFERRED Sentry instance не задеплоен (pending Б-1). Двойной сигнал extractor'а → .node-dormancy.json[#34] = true. D1. memory/feedback_feature_via_writing_plans.md (user-memory вне git). Effect: missed-activations 40 → 15 после очистки шума. Из 15 реально значимы 2 эпизода (audit-journaling closure 116 tools без writing-plans; SyncSupplierProjectJobTest planning без skill). Остальные 13 — шум классификатора на правках своих документов. +cspell-words.txt: 20 слов (9 секций Tooling + 11 из retro-note). NB: docs/observer/episodes-2026-05.jsonl снят со staging — gitleaks обнаружил 3× RU-phone leak (`ru-phone-unmasked` rule). Это сигнал что observer PII-фильтр пропустил телефон в free-text record — отдельный follow-up (PII фильтр Stop-хука). Retro-отчёт: docs/observer/notes/2026-05-23-brain-retro.md. STATUS.md перегенерирован. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1676,3 +1676,23 @@ journalctl
|
||||
досоздаёт
|
||||
недозаказ
|
||||
пушнута
|
||||
jre
|
||||
Eljakani
|
||||
eljakani
|
||||
coreyhaines
|
||||
Vadosdavos
|
||||
Yahia
|
||||
Svecha
|
||||
PVL
|
||||
gitroomhq
|
||||
накопл
|
||||
инвокаций
|
||||
мэппингом
|
||||
экспект
|
||||
деплоен
|
||||
пинует
|
||||
pgrx
|
||||
роутинга
|
||||
сурфейсятся
|
||||
Temurin
|
||||
jdk
|
||||
|
||||
@@ -555,7 +555,7 @@ Existing prose follows the table.
|
||||
|
||||
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| #34 | Sentry MCP | mcp | off-phase | debug-runtime | «отладка production runtime errors» | READ-ONLY, pending Б-1 | false | 2026-05-19 |
|
||||
| #34 | Sentry MCP | mcp | off-phase | debug-runtime | «отладка production runtime errors» | DEFERRED — Sentry instance не задеплоен (pending Б-1); READ-ONLY когда активен | false | 2026-05-23 |
|
||||
|
||||
> **Введено 13.05.2026 day +1 (v1.17 Прил. Н):** формализован как «инструмент-резерв вне фаз, debug-категория». Установлен на feat/claude-automation `6f7e7d7` в `.mcp.json`, merged в main через PR #3 (`cc5f63b`); формализован retrospectively в v1.17. Категория **debug-runtime**, отличная от UI-пула (UPM/21st) и инфраструктурного (claude-md-management) — поэтому отдельная нумерация. Pending Sentry instance deployment в Yandex Cloud (зависит от Б-1 ООО registration P0).
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"last_read_at": "2026-05-19T00:00:00+03:00",
|
||||
"read_count_last_period": 0,
|
||||
"last_read_at": "2026-05-23T08:47:32.141Z",
|
||||
"read_count_last_period": 1,
|
||||
"period_start": "2026-05-19T00:00:00+03:00"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Brain Status (auto-generated)
|
||||
|
||||
Last updated: 2026-05-23T07:16:50.771Z
|
||||
Last updated: 2026-05-23T09:06:52.759Z
|
||||
|
||||
| Контролёр | Состояние | Детали |
|
||||
|---|---|---|
|
||||
@@ -8,15 +8,15 @@ Last updated: 2026-05-23T07:16:50.771Z
|
||||
| C2 Cross-ref consistency | ✅ | [cross-ref-checker] OK — 0 drift in 4 files |
|
||||
| C3 Observer-of-observer | ✅ | [observer-of-observer] OK — last read 0 week(s) ago |
|
||||
| C4 Сигнальный статус | ✅ | This file (self-reference) |
|
||||
| C5 Observer-coverage | ⚠️ | 110 episode(s) this month · Stop-hook + post-commit OK · 39 missed activation(s) — see /brain-retro |
|
||||
| C5 Observer-coverage | ⚠️ | 126 episode(s) this month · Stop-hook + post-commit OK · 16 missed activation(s) — see /brain-retro |
|
||||
| C6 Chain map sync | ✅ | [chain-map-checker] OK — 16 chains in sync |
|
||||
|
||||
## Метрики (информационные, не алерты)
|
||||
|
||||
- Observer evidence: 110 episodes this month, 0 observer_error markers, 39 PII matches before filter
|
||||
- Observer evidence: 126 episodes this month, 0 observer_error markers, 51 PII matches before filter
|
||||
- Legacy v1 episodes (not in factor analysis): 5
|
||||
- Last /brain-retro: 4 day(s) ago
|
||||
- Использование узлов: см. `/brain-retro` (раз в спринт). missed_activations: 39. **Неиспользованные узлы — не алерт, если профильной задачи не было** (Pravila §16.4 v1.36; capability-readiness; см. memory `feedback_brain_unused_tools_not_problem` — outside-repo memory store).
|
||||
- Last /brain-retro: 0 day(s) ago
|
||||
- Использование узлов: см. `/brain-retro` (раз в спринт). missed_activations: 16. **Неиспользованные узлы — не алерт, если профильной задачи не было** (Pravila §16.4 v1.36; capability-readiness; см. memory `feedback_brain_unused_tools_not_problem` — outside-repo memory store).
|
||||
|
||||
## Алерт-индикаторы
|
||||
|
||||
|
||||
@@ -0,0 +1,226 @@
|
||||
# Brain-retro #3 — весь май 2026 (полный срез)
|
||||
|
||||
**Дата:** 2026-05-23 (~11:50 MSK).
|
||||
**Период:** весь май 2026 — 2026-05-19T05:18Z .. 2026-05-23T08:47Z (121 строк JSONL; 116 v2 + 5 v1 пропущено).
|
||||
**Анализатор:** `node tools/brain-retro-analyzer.mjs docs/observer/episodes-2026-05.jsonl` + `tools/missed-activations.mjs`.
|
||||
**Уровень анализа:** обзорный по запросу заказчика; экономия 100%.
|
||||
**Отношение к предыдущему ретро:** надстройка над [2026-05-20-brain-retro-v2.md](2026-05-20-brain-retro-v2.md) (23 v2-эпизода, 2026-05-20T17:55 MSK). Здесь — дельта в 105 v2-эпизодов (22 task_id) после cutoff 2026-05-20T08:58:44Z, итого 116 v2 + 61 task_ref.
|
||||
|
||||
> `episodeCount=116`, `v1SkippedCount=5`, `observerErrorCount=0`. Цифры по 116 v2-эпизодам, если не отмечено иное.
|
||||
|
||||
---
|
||||
|
||||
## Period & context
|
||||
|
||||
19.05–23.05.2026 (5 дней) — самый плотный 5-дневный спринт мая. Параллельно шли:
|
||||
|
||||
- **A8 infosec-tooling** (21.05): #68 ZAP + #70 Ward установлены портативно; push `3fc5501`. Открытые эндпоинты закрыты `2a34ee8` + SSRF-гард `6933ddc`.
|
||||
- **C1 marketing-tooling** (22.05): 10 узлов #74-83, push `a0e47bc6`; нормативка v1.39/v2.27/v2.23/v3.22.
|
||||
- **pg_audit#28 + pg_anonymizer#29** на проде liderra.ru (22.05): push `527a779`.
|
||||
- **Audit journaling closure** (22.05, 9+ дыр): P0+P1 done, push `3f7c1e40`, 22 коммита, выкачено на прод.
|
||||
- **Серверный hardening** (22.05 по SSH): HTTPS+HSTS, fail2ban, бэкапы cron, ModSecurity CRS DetectionOnly. SEC-3/SEC-5 ждут YC-консоль.
|
||||
- **Регистрация email+phone** (22.05): фича в feat/test-deploy `0e31783`, на проде Yandex 360 SMTP.
|
||||
- **7 дыр аудита follow-up** (23.05): #7 (RLS dev↔prod) + #1 (hash-chain validator) DONE+на проде; lefthook починен.
|
||||
- **QA-прогон чек-листа** (23.05): 5 qa-tenants 11-15, B-01 by-design, два деплоя.
|
||||
|
||||
---
|
||||
|
||||
## Macro метрики дельты (vs ретро #2)
|
||||
|
||||
| метрика | ретро #2 | ретро #3 | дельта |
|
||||
|---|---|---|---|
|
||||
| v2-эпизоды (накопл.) | 23 | 116 | +93 |
|
||||
| уникальных task_id | 7 | 61 | +54 |
|
||||
| skill-инвокации | 6 | 19 | +13 |
|
||||
| observer_error | 0 | 0 | — |
|
||||
| schema_version v1 skipped | 5 | 5 | — |
|
||||
|
||||
Сильный рост скил-инвокаций в дельте (+13: writing-plans×3, systematic-debugging×3, TDD×3, regression×1, verify×1, security-go-live×1, brainstorming×1, dispatching-parallel-agents×1, executing-plans×1, process-analysis×1, verification-before-completion×1). Дисциплина выросла — спринты A8/C1/audit-journaling шли через структурированные skills.
|
||||
|
||||
---
|
||||
|
||||
## Path-type distribution (n=116)
|
||||
|
||||
| path_type | count | % |
|
||||
|---|---|---|
|
||||
| improvised | 95 | 81.9% |
|
||||
| regulated | 16 | 13.8% |
|
||||
| mixed | 4 | 3.4% |
|
||||
| alternative | 1 | 0.9% |
|
||||
|
||||
Regulated +0.8 п.п. vs ретро #2 (13.0 → 13.8%) — рост в абсолютных числах в 5×.
|
||||
|
||||
---
|
||||
|
||||
## Outcome (inferred) distribution
|
||||
|
||||
| outcome | count | % |
|
||||
|---|---|---|
|
||||
| soft_success | 53 | 45.7% |
|
||||
| success | 38 | 32.8% |
|
||||
| unknown (хвост сессий) | 23 | 19.8% |
|
||||
| blocked | 2 | 1.7% |
|
||||
|
||||
`prompt_signal` сигналов: 42 new_task / 65 neutral / 7 approval / 2 **correction** (1.7% rework rate — здоровый низкий уровень).
|
||||
|
||||
---
|
||||
|
||||
## Factor matrix highlights
|
||||
|
||||
### decision_provenance — кто решает?
|
||||
|
||||
| provenance | count | success | soft_success | blocked |
|
||||
|---|---|---|---|---|
|
||||
| autonomous | 86 | 27 | 36 | 2 |
|
||||
| user_directed_method | 3 | 1 | 2 | — |
|
||||
| user_chose_from_options | 27 | 10 | 15 | — |
|
||||
|
||||
`user_chose_from_options=27` — сильный паттерн collaborative-choice (A/B/C → выбор заказчика). `user_directed_method` остаётся редким (3, healthy — заказчик НЕ навязывает методы).
|
||||
|
||||
### economy_level
|
||||
|
||||
| economy_level | success | soft_success | blocked |
|
||||
|---|---|---|---|
|
||||
| null | 4 | 2 | — |
|
||||
| 0 | 1 | — | 1 |
|
||||
| 5 | 4 | 1 | — |
|
||||
| 100 | 29 | 50 | 1 |
|
||||
|
||||
Доминирует уровень 100 (стандарт); `0` дал единственный blocked. Никаких аномалий.
|
||||
|
||||
### post_compaction × session_segment
|
||||
|
||||
Post-compaction эпизодов 43, исходов нормально (14 success / 22 soft_success). Late-segment всего 11 — длинные сессии редки.
|
||||
|
||||
---
|
||||
|
||||
## Missed activations (Pravila §16.4 v1.36 conditional rule)
|
||||
|
||||
**Total: 40** (из 44 v2-эпизодов с непустым классификационным мэппингом, `node_chosen='direct'`; экспект-узлы все non-dormant).
|
||||
|
||||
### By classification
|
||||
|
||||
| classification | episodes | bypassed nodes |
|
||||
|---|---|---|
|
||||
| question | 17 | #60 context7 |
|
||||
| memory-sync | 8 | #33 claude-md-management |
|
||||
| feature | 5 | #19 Superpowers |
|
||||
| bugfix | 4 | #18 Pest, #34 Sentry |
|
||||
| planning | 2 | #19, #41 CCPM, #42 product-management |
|
||||
| refactor | 1 | #11/#12/#43/#64/#65 |
|
||||
| cleanup | 1 | #11/#12 |
|
||||
| monitoring | 1 | #34/#35 Redis |
|
||||
| analysis | 1 | #25/#39/#53 |
|
||||
|
||||
### Анализ — ЧТО ИЗ ЭТОГО реально промах vs шум классификатора
|
||||
|
||||
- **#60 context7 (17 question)** — большая часть «question» в логах это разговорные уточнения с заказчиком («что выбираем», «а ты пробовал», «делай»), **не** library-docs-вопросы. Текущий маппинг `question → [#60]` слишком широкий. **Кандидат:** сузить — либо разделить классификатор (`question_lib_docs` vs `question_conversational`), либо снять `#60` из маппинга и оставить пустой массив до появления узкого классификатора. Сейчас 17 «промахов» — шум.
|
||||
- **#33 claude-md-management (8 memory-sync)** — `memory-sync` в эпизодах = правки `memory/*.md` (auto-memory system), а **не** правки CLAUDE.md. `#33` относится к `CLAUDE.md` (§5 п.10 hard-rule), не к memory-файлам. **Кандидат:** очистить маппинг `memory-sync → []` ИЛИ переименовать в `claude-md-edit` и оставить только для правок CLAUDE.md.
|
||||
- **#19 Superpowers (5 feature + 2 planning)** — это **реальные промахи**: feature-задачи без `brainstorming` / `writing-plans`. Сверка по дельте: новых features в дельте было ~5 (A8 install, C1 plugin enable, pg_audit setup и т.д.) — большинство шли autonomous direct. Возможно стоит фиксировать, особенно после Pravila §12 hard-rule. **Кандидат:** мягкий сигнал в STATUS.md (не дальше), решение за заказчиком.
|
||||
- **#18 Pest / #34 Sentry (4 bugfix)** — Pest для bugfix очевиден, но Sentry на проде ещё не деплоен (Б-1). #34 в DEFERRED не записан, но фактически бесполезен. **Кандидат:** проверить `tools/.node-dormancy.json` — должен ли #34 быть `dormant: true` до Sentry-деплоя?
|
||||
|
||||
### Кандидаты на пересмотр observer-classification-map.json
|
||||
|
||||
| key | текущее значение | предлагаемая правка | обоснование |
|
||||
|---|---|---|---|
|
||||
| `question` | `["#60"]` | `[]` | разговорные вопросы ≠ library-docs-lookup; ложноположительных 17×, прав один-два максимум |
|
||||
| `memory-sync` | `["#33"]` | `[]` | #33 канал ТОЛЬКО для CLAUDE.md (§5 п.10), а не memory/*.md (auto-memory не пинует через #33) |
|
||||
| `bugfix` | `["#18","#34"]` | оставить или `["#18"]` пока Sentry не работает | проверить, не стоит ли пометить #34 dormant до Б-1 |
|
||||
|
||||
---
|
||||
|
||||
## Causal chains
|
||||
|
||||
23 цепочки shared-files обнаружено (≥5 минутный интервал, общие файлы в task_size). Ключевые:
|
||||
|
||||
- **`ЭТАЛОН.md`** — 6+ цепочек 20.05 (правки эталона за день). Ожидаемо — день большого обновления эталона.
|
||||
- **`SyncSupplierProjectJob.php` / `SyncSupplierProjectsJob.php`** — цепочка 20→22.05 (Plan 5 supplier-sync fix → retry-storm fix `0c9357a`).
|
||||
- **`AppLayout.vue`** — 20.05 две правки.
|
||||
|
||||
Нет «error→fix loop» цепочек, которые бы указывали на повторяющийся баг.
|
||||
|
||||
---
|
||||
|
||||
## Skill invocations (delta, n=13)
|
||||
|
||||
| skill | times |
|
||||
|---|---|
|
||||
| superpowers:writing-plans | 3 |
|
||||
| superpowers:systematic-debugging | 3 |
|
||||
| superpowers:test-driven-development | 3 |
|
||||
| superpowers:verification-before-completion | 1 |
|
||||
| superpowers:brainstorming | 1 |
|
||||
| superpowers:dispatching-parallel-agents | 1 |
|
||||
| superpowers:executing-plans | 1 |
|
||||
| regression | 1 |
|
||||
| verify | 1 |
|
||||
| security-go-live | 1 |
|
||||
| process-analysis | 1 |
|
||||
| brain-retro | 0 (сейчас 1, после записи) |
|
||||
|
||||
Покрытие L1-L15 chain'ов: L1=4, L8=4, L15=1, L3=1 (security-go-live). Большая часть — direct.
|
||||
|
||||
---
|
||||
|
||||
## Errors / retries / time_burn (delta)
|
||||
|
||||
133 errors / 116 retries / 17 time_burn events. Кажется много, но распределено по 105 эпизодов — в среднем ~1.3 error/episode. Спринты A8 install (curl/tar quirks), pg_audit build (Rust/pgrx), audit journaling (миграции), 7-дыр follow-up (lefthook quirks) генерировали много retry в Bash без скрытых проблем.
|
||||
|
||||
---
|
||||
|
||||
## Candidates for owner review
|
||||
|
||||
> Все ниже — кандидаты, не правки. Применять только по явному «делай» от заказчика.
|
||||
|
||||
### A. observer-classification-map.json (`tools/observer-classification-map.json`)
|
||||
|
||||
**A1.** `question → []` (сейчас `["#60"]`). Сузить классификатор или снять #60.
|
||||
|
||||
- **Why:** 17 разговорных question-эпизодов ловятся как missed-activation к context7. Шум.
|
||||
- **Rejection-option:** оставить как есть и считать missed-activations информационным шумом, не сигналом.
|
||||
|
||||
**A2.** `memory-sync → []` (сейчас `["#33"]`).
|
||||
|
||||
- **Why:** #33 claude-md-management — канал ТОЛЬКО для CLAUDE.md (Pravila §5 п.10), а не memory/*.md. Auto-memory system пинует напрямую.
|
||||
- **Rejection-option:** переименовать классификатор в `claude-md-edit` и сохранить #33.
|
||||
|
||||
### B. node-dormancy.json (`tools/.node-dormancy.json`)
|
||||
|
||||
**B1.** Проверить #34 Sentry MCP — должен ли быть `dormant: true` до Б-1 (Sentry instance не задеплоен на проде, использовать нельзя).
|
||||
|
||||
- **Why:** missed-activation для bugfix включает #34, но #34 фактически нерабочий до Б-1.
|
||||
- **Rejection-option:** оставить — Sentry MCP установлен в Claude и теоретически доступен; «прод не задеплоен» не равно «инструмент dormant».
|
||||
|
||||
### C. STATUS.md C5 missed-activations
|
||||
|
||||
**C1.** Surface 40 missed activations с разбивкой по классификации в STATUS.md (текущий статус-генератор уже это умеет — после обновления маппинга цифра упадёт до ~15).
|
||||
|
||||
- **Why:** наглядная метрика «промахов роутинга» в дашборде.
|
||||
- **Rejection-option:** не surface, оставить только в brain-retro заметках.
|
||||
|
||||
### D. Pravila §12 — feature без Superpowers
|
||||
|
||||
**D1.** Зафиксировать в feedback-memory правило «feature/planning-задачи ИДУТ через Superpowers writing-plans, даже если задача кажется простой» — сейчас 7 feature/planning-эпизодов в дельте прошли direct.
|
||||
|
||||
- **Why:** Pravila §12 hard-rule предписывает skill-инвокацию первой для 14 типов; feature/planning в списке.
|
||||
- **Rejection-option:** считать «autonomous direct для маленьких feature нормой», не фиксировать.
|
||||
|
||||
### E. Авто-обновление observer-classification-map после прочтения этого retro
|
||||
|
||||
- Маппинг живёт в `tools/observer-classification-map.json`. Кандидаты A1/A2 — однострочные правки.
|
||||
- НЕ автоматизирую — жду явного «делай A1 / делай A2 / делай оба».
|
||||
|
||||
---
|
||||
|
||||
## Behavioral rule check (Pravila §16.4)
|
||||
|
||||
- «Не использован ≠ проблема» — соблюдено: я различаю **capability-readiness** (`other` без рекомендаций, 69 эпизодов) от **missed activation** (40 эпизодов с маппингом + direct + non-dormant). Только последние сурфейсятся как сигнал.
|
||||
|
||||
---
|
||||
|
||||
## Что НЕ меняется этим retro
|
||||
|
||||
- НЕ редактирую `tools/observer-classification-map.json`, `tools/.node-dormancy.json`, STATUS.md политики, нормативку, code.
|
||||
- НЕ пишу в episodes-*.jsonl (read-only).
|
||||
- НЕ trigger'у auto-memory.
|
||||
- STATUS.md перегенерируется через `node tools/status-md-generator.mjs` (см. шаг 8a процедуры — выполняется ниже).
|
||||
@@ -27,7 +27,7 @@
|
||||
"#31": false,
|
||||
"#32": false,
|
||||
"#33": false,
|
||||
"#34": false,
|
||||
"#34": true,
|
||||
"#35": false,
|
||||
"#36": false,
|
||||
"#37": false,
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"$schema_version": 1,
|
||||
"description": "Mapping from observer transcript-parser task_classification values to recommended Tooling Прил.Н node IDs. Source of truth for missed-activation detection (Pravila §16.4 conditional rule). 'other' deliberately empty — no recommendation, never counts as missed. DEFERRED-узлы filtered out by .node-dormancy.json at runtime. Classifier vocabulary is Claude's free judgment when writing the episode (no hardcoded enum) — adding a key here makes it 'blessed'. 'security' added 22.05.2026 (A8 follow-up): use when the PURPOSE of the task is verifying or improving security (scans, hardening, audits, threat modeling, go-live gates); NOT for bug-fixes that happen to be in security-relevant code (those stay 'bugfix'). 'marketing' added 22.05.2026 (C1 follow-up): use when the PURPOSE of the task is Лидерра's own marketing/lead-generation (content, SEO, campaigns, RU-channels, landing conversion, marketing-side 152-FZ); NOT for product features, billing flows, or PII-code audits.",
|
||||
"description": "Mapping from observer transcript-parser task_classification values to recommended Tooling Прил.Н node IDs. Source of truth for missed-activation detection (Pravila §16.4 conditional rule). 'other' deliberately empty — no recommendation, never counts as missed. DEFERRED-узлы filtered out by .node-dormancy.json at runtime. Classifier vocabulary is Claude's free judgment when writing the episode (no hardcoded enum) — adding a key here makes it 'blessed'. 'security' added 22.05.2026 (A8 follow-up): use when the PURPOSE of the task is verifying or improving security (scans, hardening, audits, threat modeling, go-live gates); NOT for bug-fixes that happen to be in security-relevant code (those stay 'bugfix'). 'marketing' added 22.05.2026 (C1 follow-up): use when the PURPOSE of the task is Лидерра's own marketing/lead-generation (content, SEO, campaigns, RU-channels, landing conversion, marketing-side 152-FZ); NOT for product features, billing flows, or PII-code audits. 'question' emptied 23.05.2026 (brain-retro #3 A1): conversational Russian Q&A («делай», «а», уточнения) was producing 17/40 false-positive missed-activations against #60 context7 — context7 is for library-docs lookup, not chat. 'memory-sync' emptied 23.05.2026 (brain-retro #3 A2): #33 claude-md-management is the channel for CLAUDE.md edits (Pravila §5 п.10), NOT for memory/*.md (auto-memory writes natively); was producing 8/40 false-positive missed-activations.",
|
||||
"map": {
|
||||
"refactor": ["#11", "#12", "#43", "#64", "#65"],
|
||||
"bugfix": ["#18", "#34"],
|
||||
"feature": ["#19"],
|
||||
"planning": ["#19", "#41", "#42"],
|
||||
"memory-sync": ["#33"],
|
||||
"memory-sync": [],
|
||||
"monitoring": ["#34", "#35"],
|
||||
"analysis": ["#25", "#39", "#53"],
|
||||
"security": ["#73", "#69", "#68", "#70", "#71", "#72"],
|
||||
"marketing": ["#74", "#77", "#75", "#76", "#78", "#79", "#80", "#81"],
|
||||
"cleanup": ["#11", "#12"],
|
||||
"question": ["#60"],
|
||||
"question": [],
|
||||
"other": []
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user