Дмитрий
f32366279f
feat(security): webhook DNS-rebind пиннинг + аддитивный HMAC supplier-webhook — edge/P2 go-live
...
WebhookUrlGuard::safeDeliveryIp один резолв + CURLOPT_RESOLVE пиннинг в test(); supplier-webhook принимает HMAC X-Webhook-Signature как альтернативу URL-секрету + secretless-маршрут. Аддитивно, backward-compat. 6 новых тестов GREEN; 5 падений webhook-сюиты pre-existing (Phase-3 B-regex + CsvWebhookRaceTest), подтверждено baseline без моих файлов.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 20:21:11 +03:00
Дмитрий
00cef7635b
docs(superpowers): спеки и планы церемоний синка квинтета v2.47 и починки lychee-ссылок
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 20:04:11 +03:00
Дмитрий
fdb1c1cca2
feat(security): per-IP route-throttle на auth-эндпоинтах — P1 go-live
...
Именованные лимитеры auth-login/auth-2fa/auth-password (perMinute 20 by IP) в AppServiceProvider; throttle-middleware на login/forgot/reset/2fa-verify/recovery в web.php. Закрывает per-IP объёмный перебор. Pest tests/Feature/Auth 97/97 GREEN.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:56:23 +03:00
Дмитрий
408a44a53a
docs: починка 12 битых относительных .md-ссылок долг lychee — корректные относительные пути и снятие ссылок на отсутствующие цели
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:55:37 +03:00
Дмитрий
7414b51523
feat(pdn): правила маскирования ПДн pg_anonymizer на проде — SECURITY LABEL на ПДн-колонки + план применения — закрытие остатка B2
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:33:58 +03:00
Дмитрий
dea02e402d
feat(security): CSP Report-Only под Vue+Vuetify SPA — 2-я ZAP Medium go-live
...
Report-Only политика в middleware SecurityHeaders; Pest 6/6 GREEN.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 19:30:51 +03:00
Дмитрий
a617de3bde
docs(superpowers): отчёт осмотра портала + баг-доки стены (walk/read-block) — для claude-brain
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 17:54:50 +03:00
Дмитрий
db469fbb89
feat(pdn): ретеншен ПДн удалённых лидов — анонимизация soft-deleted сделок — F-P1
...
152-ФЗ блокер B1/F-P1: телефоны и имена контактов soft-deleted сделок не
вычищались и хранились бессрочно. Добавлена плановая команда-ретеншен.
Команда pd:scrub-soft-deleted-deals анонимизирует phone/contact_name/phones
сделок с deleted_at старше N дней; N из system_settings
pd_scrub_soft_deleted_deals_days, по умолчанию no-op — юр.срок не зашит в код.
Значения затирания идентичны PdErasureService. Cross-tenant через
pgsql_supplier BYPASSRLS, идемпотентно, summary-запись в pd_processing_log
системным актором. Планировщик ежедневно 03:30 МСК с heartbeat.
Схема v8.41: partial index deals_deleted_at_index ON deals deleted_at WHERE
deleted_at IS NOT NULL для дешёвой выборки; счётчик индексов 120 на 121.
F-T2 проверен: /api/admin за middleware saas-admin fail-closed 503 — кодовой
правки не требует.
TDD: 4 Pest ScrubSoftDeletedDealsCommandTest GREEN. Escape-per-write — печать
церемонии не опечатывала план.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 17:24:48 +03:00
Дмитрий
714d6885f9
feat(security): middleware безопасных HTTP-заголовков — закрытие ZAP Medium anti-clickjacking
...
X-Frame-Options SAMEORIGIN + X-Content-Type-Options nosniff + Referrer-Policy на все web-ответы (go-live аудит 17.06). CSP вынесен отдельно (SPA Vue+Vuetify). TDD-тест на публичном /.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 17:12:32 +03:00
Дмитрий
3bf5eaed81
docs(security): аудит доведён до конца + поправка по верификации кода + баги стены
...
Прогон всех 5 сканеров: gitleaks 0 / Semgrep 0 / Ward 2(dev) / Nuclei 0(medium+) / ZAP 0(high). pg_anonymizer не установлен (факт). Три ложных P0 сняты проверкой кода (E9/E18/admin/SSRF закрыты). Вердикт NO-GO держат F-P1, pg_anonymizer, прод-.env. Трекер открытых вопросов + файл-баг (чтение под стеной, десинк F-J, зацикл наставника) для claude-brain.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 16:25:23 +03:00
Дмитрий
b65066f17c
docs(security): go-live security gate отчёт 17.06 + уроки прогона в wall-guide
...
Прогон security-go-live на main, локальная цель 127.0.0.1:8000 — вердикт NO-GO.
Блокеры: pg_anonymizer не установлен (ПДн в дампах), F-P1 (телефоны лидов не
вычищаются по сроку), P0 из STRIDE (SAAS_ADMIN_TEST_BYPASS / SSRF webhooks-test /
открытые ручки). Nuclei чисто (1 info php). Semgrep/ZAP — PENDING.
Гайд стены: новый раздел уроков — читать контекст до печати плана, запасной
канал вставки в чат, недетерминизм судьи и рассинхрон указателя F-J.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 14:34:39 +03:00
Дмитрий
ca7ff37b8d
docs: GUIDE стены - Фикс 1 теперь подписанные вердикты участников
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 13:34:38 +03:00
Дмитрий
9d8188cd65
feat: wall - подписанные строки вердиктов роутера наставника и судьи во всплытии
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 13:16:32 +03:00
Дмитрий
59831cf7dc
imitation phase1 merge
...
# Conflicts:
# app/app/Console/Commands/PhoneRangesImportCommand.php
# app/app/Jobs/RouteSupplierLeadJob.php
# app/app/Services/LeadRegionResolver.php
# app/database/migrations/2026_05_31_100000_create_phone_ranges_and_resolution_log.php
# app/tests/Feature/Console/PhoneRangesImportCommandTest.php
# app/tests/Feature/Jobs/RouteSupplierLeadJobTest.php
# app/tests/Feature/PartitionsCreateMonthsTest.php
# cspell-words.txt
# docs/observer/STATUS.md
# tools/enforce-powershell-gate.test.mjs
# tools/enforce-router-gate.mjs
# tools/enforce-router-gate.test.mjs
# tools/enforce-tdd-gate.test.mjs
# tools/enforce-tdd-real-test-verifier.mjs
# tools/enforce-tdd-real-test-verifier.test.mjs
# tools/enforce-verify-record.test.mjs
# tools/mcp-tool-classifier.test.mjs
# tools/shell-content-rules.test.mjs
2026-06-17 08:03:35 +03:00
Дмитрий
989afff5ad
F-3 type: 3 vue-tsc TS2345 в region-тестах - cast findComponent к VueWrapper any + props - vue-tsc чисто
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 04:38:55 +03:00
Дмитрий
b87d9208ca
F-2 refactor: цвет stat-success вынесен из инлайна в scoped-правило по прецеденту .sep - тест TenantsStatsHeader зелёный
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 03:35:48 +03:00
Дмитрий
d39a10cd2e
F-2 a11y Tenants: label поиска по ИНН + AA-класс stat-success счётчика активных - 2 теста зелёные, регрессия 946 passed
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 03:17:32 +03:00
Дмитрий
c99bae63bb
docs session 2026-06-16: bug-file deploy-commit-not-executable-under-wall для claude-brain + удалены черновики spec v1 v2 деплоя F-1
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 16:51:07 +03:00
Дмитрий
9f575fa683
docs deploy: F-1 CVE vendor-апдейт выполнен на проде - спека v3 + план + runbook
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 16:31:57 +03:00
Дмитрий
6c4de31505
docs session 2026-06-16: F-4 baseline, gitea push, wall push lesson, mentor bug, F-1 deploy runbook, lead-region already-in-main finding, etalon update
2026-06-16 15:57:06 +03:00
Дмитрий
b1cb3580f7
docs router-mentor: оглавление + рецепт escape + дедуп
2026-06-16 15:37:07 +03:00
Дмитрий
c2004e40d0
docs router-mentor: gitea backup health-probe ceremony spec+plan, server verified alive
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 13:50:05 +03:00
Дмитрий
9171f1dc60
chore: regenerate larastan baseline - absorb lead-region drift
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 13:43:12 +03:00
Дмитрий
8c54cf91aa
docs router-mentor: wall guide refresh - fix1/2/3 + F-J/F-K + commit reality
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:55:38 +03:00
Дмитрий
e80f465c83
fix: 152-FZ erasure - surgical scrub of deals.phones JSONB plus email no-op, F-P1b
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:54:45 +03:00
Дмитрий
4fed9dbf97
docs router-mentor: worklog finale - fix3 done + F-K + revert incident for brain
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:22:27 +03:00
Дмитрий
f67acb2186
feat router-mentor: arbitration fixes 1+2+3 - verdict visibility, round-memory judge-self-history and mentor-re-eval, owner-seal arbitration; 29/29 tools green
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:13:52 +03:00
Дмитрий
e4c920aebf
docs: lead-region merge runbook + domain-blockers F-T1/F-T2/F-P1 verification
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 09:04:00 +03:00
Дмитрий
cdd3cbfa3b
feat: research-tooling Perplexity Pack #87-89 — registry/router/normative sync + ADR-019
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 15:44:42 +03:00
Дмитрий
4edc0b6bd4
docs mentor: git-approval commit recipe in GUIDE
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 13:43:42 +03:00
Дмитрий
5f099eaaa0
docs mentor: escape-door activation note in GUIDE
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 13:34:13 +03:00
Дмитрий
8329f679fb
docs(mentor): гайд стены — floor-safe планы + judge-timeout 90с (уроки 14.06)
...
Частые ошибки +floor-safe планы (не ставить node -e/curl/rm-rf/PS-write/runtime-write Bash-шагами плана — пол блокирует, стена после Δ7+ встаёт колом, escape не двигает указатель; файловые операции — Write/Edit). Async-нота: per-attempt таймаут тяжёлых LLM 30с→90с.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 11:00:06 +03:00
Дмитрий
d796457f9a
docs(research): спека интеграции Perplexity Pack (off-phase research-tooling)
2026-06-14 08:55:55 +03:00
Дмитрий
88191eba2b
docs(mentor): гайд стены — maintenance toggle + рецепт коммита со STATUS.md
...
Ещё два пользовательских пункта (по запросу владельца): (A) maintenance — точные шаги выключить/включить стену через settings.json hooks; (D) если lefthook ругается на STATUS.md — git restore --staged --worktree перед commit. Согласовано.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 08:07:26 +03:00
Дмитрий
a4f478c2ba
docs(mentor): гайд стены — перезапуск≠сброс плана + память/правила требуют разрешения
...
Два пользовательских пункта по итогам сессии 14.06: (B) перезапуск Claude Code перечитывает settings.json, но не сбрасывает застрявшую печать/сессию — сброс через досрочное завершение или новую церемонию с другим именем; (C) запись в память/правила про саму стену by-design требует escape владельца или maintenance. Согласовано владельцем (в+с).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 08:03:18 +03:00
Дмитрий
a49b39833d
docs(mentor): процедура escape владельца (FLOOR-ESCAPE токен) в гайд стены
...
Зафиксирована процедура разового подписанного пропуска floor_escape: владелец пишет метку FLOOR-ESCAPE: <action> в ответе AskUser, среда подписывает ключом, окно 5 мин, одноразовый. Формат canonicalAction (bash/powershell/skill/write/mcp). Найдено по запросу владельца «расскажи и отметь в инструкции» (сессия 14.06).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 07:04:26 +03:00
Дмитрий
4f9d735e4d
revert(wall): откат Post-advance — PostToolUse не срабатывает на упавшем Bash
...
Live-смоук: PostToolUse не запускается на exit≠0 → Post не двигает указатель на RED-шагах. Код возвращён к Pre-advance (3928 GREEN). Спека/план помечены ОТВЕРГНУТО. Настоящий фикс desync = перестановка skill-discipline перед supreme-gate.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 06:11:11 +03:00
Дмитрий
ad76cdf496
fix(wall): supreme-gate сдвигает указатель на PostToolUse (фикс рассинхрона)
...
Pre-такт = ворота + журнал-намерение (без сдвига); Post-такт = сдвиг по подтверждённому исполнению. Лечит desync при блоке поздним хуком / user-deny. +runGatePre/runGatePost/isPostEvent, runGate → compat-обёртка. Регрессия tools-only 3938 passed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 05:34:33 +03:00
Дмитрий
af14d00988
docs(mentor): спека робастного фикса supreme-gate — сдвиг указателя на PostToolUse
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 05:09:32 +03:00
Дмитрий
e0442ef71c
feat(mentor): тупой судья навыков + фикс роутера prefilter-bypass
...
- router: classify({skipPrefilter}) — наставник зовёт мозг роутера мимо detectMicro
(ловил 'format' подстрокой в имени модуля → роутер не доходил до LLM); recommendedChainOf
в on-plan-write маппит node/recommended_node/recommended_chain (рекомендация не теряется)
- skills в ПОДПИСАННУЮ печать (Вариант 1): sealablePlan/freezePlan/sealPlan
- стена: isPlanDeclaredSkill — объявленный в опломбированном плане навык вызываем (снимает дедлок)
- enforce-domain-skill-discipline (новый хук): объявил → обязан вызвать (журнал M1) до
первого мутирующего шага; поверх готового domain-skill-discipline
- гайд docs/superpowers/router-mentor-wall-GUIDE.md + дизайн/план-доки
- регрессия tools-only 3928 passed + 2 skip, 0 регрессий
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 04:08:53 +03:00
Дмитрий
52e116ecee
docs(mentor): спека+план мержа роутер↔наставник + протокол сессии Р1-Р9 + l1-l2 redesign
...
Design-of-record для коммита cd1c4609 (мерж роутера в наставника):
- specs/plans 2026-06-13-router-mentor-merge-* (спека простым языком + 9-задачный TDD-план)
- session-protocol-2026-06-13 (решения Р1-Р9, записи только по команде владельца)
- specs/plans 2026-06-13-l1-l2-negotiation-redesign-* (redesign согласования, Фазы 0-6)
- cspell-words.txt +8 терминов (скилам/грепом/Пивот/таймаутил/эмбеддинги/мержа/стэк/вызыватель)
- markdownlint MD032 авто-фикс (пустые строки вокруг списков)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 11:42:09 +03:00
Дмитрий
2a50c91882
feat(mentor): degraded-судья диагностируем — cause(no_key/transport_error)+errorType+at
...
Разбор «перемежающегося degraded судьи» по systematic-debugging: действующего
бага нет (ключ SET, 28/28 вердиктов чистые, degraded-строки несверяемы — at:null,
без парного WARN). Гипотеза «retry/таймаут» не подтверждена → таймаут не трогали.
Вместо этого закрыта слепота диагностики (TDD, под maintenance):
- callJudgeModel различает no_key vs transport_error+errorType (classifyLLMError);
- причина протекает в вердикт → warnJudgeUnavailable (+cause/error_type/at) и seal-запись;
- main() передаёт nowMs: Date.now() → seal/verdict/warn больше не at:null (логи сверяемы).
Файлы: tools/seal-log.mjs, tools/enforce-judge-gate.mjs. +9 тестов; 2 exact-match
приведены к новому контракту. Регрессия tools-only 3829 GREEN (база 3820), 0 регрессий.
cspell-words.txt +8 терминов. Роадмап: секция «Печать M7» + degraded-наблюдаемость.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 04:12:53 +03:00
Дмитрий
c149eef224
docs(mentor): roadmap двухуровневые переговоры (волны 1-7) + cspell
2026-06-12 19:35:46 +03:00
Дмитрий
155e9dc24a
docs(mentor): two-level negotiation spec-v2 (anchored) + plans
2026-06-12 19:15:48 +03:00
Дмитрий
09620f368e
feat(m7): re-plan на ходу (impl-карвут) + эскалация судьи (escape-honor + счётчик NO-GO) + docs-хвост
2026-06-12 15:48:17 +03:00
Дмитрий
a83e383648
docs(mentor): тест-гейт Ф8 пройден 3754+2 GREEN + пусковой рецепт регрессии (npx, не app/node_modules — баг vitest 4.1.5 на out-of-root)
2026-06-12 11:10:42 +03:00
Дмитрий
33e486efcf
docs(mentor): роадмап — хвосты вычеркнуты (env-фикс был в fb4f179b, Связано: в шаблоне) + журнал bugs.md в репо + observer refresh
2026-06-12 10:52:24 +03:00
Дмитрий
e523b1ec49
docs(mentor): инцидент 12.06 — вход Фазы 8 на main, баннер в handoff #5 , судьба d1ad4e85 (cherry-pick только внутри Ф8) + cspell словоформы + observer refresh
2026-06-12 10:45:53 +03:00
Дмитрий
fb4f179bb1
chore(mentor): роадмап эпика 2026-06-12 + env ROUTER_LLM_BASE_URL в observer-self-assessment-api (зеркало транспорт-фикса, TDD) + cspell словоформы. Регрессия tools 3754 GREEN
2026-06-12 08:14:35 +03:00
Дмитрий
6af37af7c0
fix(mentor): smoke этап 4 пройден — деталь ошибки транспорта в catch вердикта + env ROUTER_LLM_BASE_URL в дефолте callAnthropicAPI (смена оператора на aitunnel) + контракт массива строк в промпте plan_points_addressed (F-C3); runbook этап 4 + env-таблица + блок смены оператора; smoke-план; cspell +aitunnel и словоформы. Регрессия tools 3753 GREEN
2026-06-12 07:55:31 +03:00