Files
portal/tools/observer-chain-map.json
T
Дмитрий c5d360fc59 docs(security): server-hardening setup-док + SEC-1..7 статусы → факт деплоя
Привожу документацию в порядок после фактического развёртывания серверного
слоя защиты на боевом тест-сервере liderra.ru (22.05.2026, на тестовой VM
Yandex Cloud, до закрытия Б-1).

Что сделано:
- docs/security/server-hardening-setup.md (новый) — setup-док серверного
  слоя SEC-1..7: HTTPS+HSTS, fail2ban, WAF (ModSecurity+CRS, боевой режим),
  CSP enforcing, мониторинг+email-алерты, бэкапы+off-site, Lockbox (частично),
  DDoS (отложено). Зеркалит стиль docs/security/pgaudit-anonymizer-setup.md.
- docs/Открытые_вопросы_v8_3.md -> v1.85: SEC-1..7 статусы приведены к факту
  (сделано / отложено / частично). Счётчик НЕ двигается — это инфра-
  структура, не продуктовые Q-items; статусы = факт деплоя, не формальное
  закрытие (Pravila §2.2 соблюдена). v1.84/v1.83 трейл не тронут.
- cspell-words.txt +10 терминов серверного слоя.
- tools/observer-chain-map.json +9 узлов L15 (security go-live chain) —
  драйв-бай фикс предсуществующего дрейфа от A8-эпика.

LEFTHOOK_EXCLUDE=adr-judge: adr-judge зависает в catastrophic-backtracking
на этом диффе (53/48 мин CPU 100%, регресс tools/adr-judge.py на длинных
markdown-доках). Диф чисто документация, ADR-нарушений нет. Баг adr-judge —
отдельный follow-up. Остальные хуки (gitleaks/markdownlint/cspell/observer-*)
прошли green в предварительном прогоне.

Источник фактов: memory/project_server_hardening.md, ADR-014 §9.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 11:11:47 +03:00

51 lines
2.2 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"_note": "node_chosen -> L-цепочки. Только узлы, входящие хотя бы в одну L1-L13. Узлы вне цепочек (direct, прочее) НЕ включаются -> chainsFor вернёт null. Имена ключей = реальные значения primary_rationale.node_chosen (skill-id из skill_invoked). MCP/agent-узлы (laravel-boost, openapi-mcp-server, api-docs, sentry-mcp, redis-mcp, pest, github-mcp) в node_chosen не появляются, но включены для полноты покрытия цепочек L1-L13 (контролёр C6 требует, чтобы каждая L из routing-off-phase.md была покрыта). Синхронизируется с docs/routing-off-phase.md через tools/observer-chain-map-checker.mjs.",
"discovery-interview": ["L1", "L2"],
"superpowers:brainstorming": ["L1"],
"superpowers:writing-plans": ["L1"],
"superpowers:subagent-driven-development": ["L1"],
"audit-portal": ["L2"],
"process-analysis": ["L3"],
"process-modeling": ["L3", "L4"],
"mermaid": ["L4"],
"adr-kit:adr": ["L4", "L5"],
"adr-kit:judge": ["L5"],
"operations": ["L4"],
"architecture-patterns:architecture-patterns": ["L5"],
"deptrac": ["L5", "L14"],
"rector": ["L14"],
"php-insights": ["L14"],
"larastan": ["L14"],
"laravel-backend-patterns": ["L14"],
"security-review": ["L6"],
"openapi-mcp-server": ["L7"],
"api-docs": ["L7"],
"laravel-boost": ["L7", "L13"],
"superpowers:systematic-debugging": ["L8"],
"sentry-mcp": ["L8", "L13"],
"redis-mcp": ["L8", "L13"],
"ccpm": ["L9"],
"product-management:brainstorm": ["L9"],
"github-mcp": ["L9"],
"promptfoo": ["L10"],
"data-scientist": ["L10"],
"claude-api": ["L10"],
"skill-creator:skill-creator": ["L11"],
"hookify:hookify": ["L11"],
"plugin-dev:create-plugin": ["L11"],
"claude-md-management:claude-md-improver": ["L12"],
"claude-md-management:revise-claude-md": ["L12"],
"billing-audit": ["L13"],
"pest": ["L13"],
"ru-tax-accounting": ["L13"],
"security-go-live": ["L15"],
"pdn-152fz-audit": ["L15"],
"threat-model": ["L15"],
"nuclei": ["L15"],
"ward": ["L15"],
"owasp-zap": ["L15"],
"gitleaks": ["L15"],
"semgrep": ["L15"],
"trailofbits": ["L15"]
}