{
  "schema_version": 1,
  "diagram_type": "architecture",
  "meta": {
    "title": "Sonnet: документы → реализация → проверка",
    "quality_profile": "showcase",
    "viewBox": [
      1210,
      740
    ],
    "repository": {
      "url": "https://github.com/krus210/freelance-marketplace",
      "revision": "7a6f26a63b8fc24355f30ee026a0fb8f047a3965"
    }
  },
  "components": [
    {
      "id": "map",
      "type": "backend",
      "label": "SERVICE_MAP.yaml",
      "sublabel": "Связи и инварианты сервиса",
      "pos": [
        55,
        110
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "services/task-service/docs/SERVICE_MAP.yaml",
          "line": 1,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "archplan",
      "type": "backend",
      "label": "*.archplan.md",
      "sublabel": "Решения и изменения контрактов",
      "pos": [
        480,
        110
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "docs/plans/2026-06-11-smart-task-reassignment.archplan.md",
          "line": 1,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "codingplan",
      "type": "backend",
      "label": "*.codingplan.md",
      "sublabel": "Задачи и проверка соответствия",
      "pos": [
        905,
        110
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "docs/plans/2026-06-11-smart-task-reassignment.codingplan.md",
          "line": 1,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "code",
      "type": "backend",
      "label": "Go + proto",
      "sublabel": "Фича в четырёх сервисах",
      "pos": [
        905,
        420
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "services/matching-service/usecase/matching.go",
          "line": 96,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "tests",
      "type": "backend",
      "label": "Тесты EC-001…015",
      "sublabel": "Проверки граничных случаев",
      "pos": [
        480,
        420
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "services/matching-service/usecase/matching_reassign_test.go",
          "line": 1,
          "label": "Открыть код / документ"
        }
      ]
    },
    {
      "id": "docs",
      "type": "backend",
      "label": "ARCHITECTURE.md",
      "sublabel": "Описание из SERVICE_MAP",
      "pos": [
        55,
        420
      ],
      "size": [
        250,
        82
      ],
      "sources": [
        {
          "path": "services/task-service/docs/ARCHITECTURE.md",
          "line": 1,
          "label": "Открыть код / документ"
        },
        {
          "path": "services/task-service/docs/diagrams/sequence.mmd",
          "label": "Сгенерированная sequence"
        }
      ]
    }
  ],
  "connections": [
    {
      "to": "archplan",
      "label": "вход планирования",
      "from": "map"
    },
    {
      "to": "codingplan",
      "label": "декомпозиция",
      "from": "archplan"
    },
    {
      "to": "code",
      "label": "реализация",
      "from": "codingplan",
      "labelAt": [
        1030,
        290
      ]
    },
    {
      "to": "tests",
      "label": "проверяется",
      "from": "code"
    },
    {
      "to": "docs",
      "label": "sync генерирует",
      "from": "map",
      "labelAt": [
        180,
        290
      ]
    }
  ],
  "cards": [
    {
      "dot": "amber",
      "title": "Снимок прогона",
      "items": [
        "Ветка task_3; commit 7a6f26a.",
        "Отчёт автора и внешнее ревью — отдельные свидетельства, ссылки в шпаргалке."
      ]
    }
  ]
}