{
  "schema_version": 1,
  "diagram_type": "architecture",
  "meta": {
    "title": "Archspec: где выполняются проверки",
    "quality_profile": "showcase",
    "viewBox": [
      1210,
      740
    ],
    "repository": {
      "url": "https://github.com/krus210/archspec",
      "revision": "cbcfe19edb4ad604ef00027a3794f91161b45871"
    }
  },
  "components": [
    {
      "id": "map",
      "type": "backend",
      "label": "SERVICE_MAP.yaml",
      "sublabel": "Изменение контракта",
      "pos": [
        55,
        105
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "skills/architecture-sync/templates/SERVICE_MAP.template.yaml",
          "line": 1,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "schema",
      "type": "backend",
      "label": "validate_servicemap.py",
      "sublabel": "JSON Schema + TODO в strict",
      "pos": [
        480,
        105
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "skills/architecture-sync/scripts/validate_servicemap.py",
          "line": 20,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "sync",
      "type": "backend",
      "label": "sync.py",
      "sublabel": "Генерирует Mermaid и Markdown",
      "pos": [
        905,
        105
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "skills/architecture-sync/scripts/sync.py",
          "line": 1,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "commit",
      "type": "backend",
      "label": "git commit",
      "sublabel": "Установленный pre-commit",
      "pos": [
        55,
        435
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "hooks/pre-commit/install_hooks.sh",
          "line": 15,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "runner",
      "type": "backend",
      "label": "run_all_checks.py",
      "sublabel": "10 групп проверок",
      "pos": [
        480,
        435
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "hooks/pre-commit/run_all_checks.py",
          "line": 26,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "push",
      "type": "backend",
      "label": "git push",
      "sublabel": "Drift + изменения контракта",
      "pos": [
        905,
        435
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "hooks/pre-push/run_all_pushchecks.py",
          "line": 14,
          "label": "Открыть код / документ"
        }
      ]
    }
  ],
  "connections": [
    {
      "to": "schema",
      "label": "sync вызывает",
      "from": "map"
    },
    {
      "to": "sync",
      "label": "валидный YAML",
      "from": "schema"
    },
    {
      "to": "runner",
      "label": "запускает",
      "from": "commit"
    }
  ],
  "cards": [
    {
      "dot": "amber",
      "title": "Независимые точки запуска",
      "items": [
        "Верх: /archspec:sync. Низ: события Git после установки хуков.",
        "pre-push не вызывается pre-commit; /validate запускается отдельно."
      ]
    }
  ]
}