← Files 立地診断 mini|ROGNALIAARCHIVED FILE

skills/location-diagnosis-mini/references/report.schema.json

10.6 KB · Oct 4, 2026 · 12:30 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rognalia.com/schemas/location-diagnosis-mini-report-v2.json",
  "title": "ROGNALIA Location Diagnosis Mini Report",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "address",
    "business",
    "research_date",
    "evaluation",
    "conclusion",
    "assumptions",
    "strengths",
    "concerns",
    "flip_conditions",
    "coverage",
    "baselines",
    "research_axes",
    "industry_analysis",
    "risks",
    "field_checks",
    "additional_data",
    "sources"
  ],
  "properties": {
    "schema_version": { "const": "2.1" },
    "address": { "type": "string", "minLength": 5, "maxLength": 180 },
    "business": { "type": "string", "minLength": 1, "maxLength": 80 },
    "research_date": { "type": "string", "format": "date" },
    "evaluation": {
      "type": "object",
      "additionalProperties": false,
      "required": ["rating", "label", "confidence"],
      "properties": {
        "rating": { "type": "integer", "minimum": 1, "maximum": 5 },
        "label": {
          "enum": ["見送り推奨", "見送り寄り", "条件次第", "前向きに検討", "積極検討"]
        },
        "confidence": { "enum": ["high", "medium", "low"] }
      }
    },
    "conclusion": { "type": "string", "minLength": 1, "maxLength": 200 },
    "assumptions": {
      "type": "array",
      "maxItems": 3,
      "items": { "type": "string", "minLength": 1, "maxLength": 100 }
    },
    "strengths": {
      "type": "array",
      "minItems": 1,
      "maxItems": 3,
      "items": { "$ref": "#/$defs/evidence_item" }
    },
    "concerns": {
      "type": "array",
      "minItems": 1,
      "maxItems": 3,
      "items": { "$ref": "#/$defs/evidence_item" }
    },
    "flip_conditions": {
      "type": "array",
      "minItems": 1,
      "maxItems": 3,
      "items": { "type": "string", "minLength": 1, "maxLength": 100 }
    },
    "coverage": {
      "type": "object",
      "additionalProperties": false,
      "required": ["axes_completed", "opened_source_count", "critical_unknown_count", "summary"],
      "properties": {
        "axes_completed": { "const": 8 },
        "opened_source_count": { "type": "integer", "minimum": 1, "maximum": 32 },
        "critical_unknown_count": { "type": "integer", "minimum": 0, "maximum": 12 },
        "summary": { "type": "string", "minLength": 1, "maxLength": 120 }
      }
    },
    "baselines": {
      "type": "array",
      "minItems": 4,
      "maxItems": 4,
      "items": { "$ref": "#/$defs/baseline" }
    },
    "research_axes": {
      "type": "array",
      "minItems": 8,
      "maxItems": 8,
      "items": { "$ref": "#/$defs/research_axis" }
    },
    "industry_analysis": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "lens",
        "customer_purpose",
        "movement_mode",
        "demand_periods",
        "direct_competition",
        "substitute_competition",
        "synergies",
        "fit_observations",
        "competition_observations"
      ],
      "properties": {
        "lens": { "type": "string", "minLength": 1, "maxLength": 100 },
        "customer_purpose": { "type": "string", "minLength": 1, "maxLength": 100 },
        "movement_mode": { "type": "string", "minLength": 1, "maxLength": 50 },
        "demand_periods": { "$ref": "#/$defs/short_string_list" },
        "direct_competition": { "$ref": "#/$defs/evidence_item_list" },
        "substitute_competition": { "$ref": "#/$defs/evidence_item_list" },
        "synergies": { "$ref": "#/$defs/evidence_item_list" },
        "fit_observations": {
          "type": "array",
          "minItems": 1,
          "maxItems": 4,
          "items": { "$ref": "#/$defs/evidence_item" }
        },
        "competition_observations": {
          "type": "array",
          "minItems": 1,
          "maxItems": 4,
          "items": { "$ref": "#/$defs/evidence_item" }
        }
      }
    },
    "risks": {
      "type": "object",
      "additionalProperties": false,
      "required": ["confirmed_blockers", "conflicts", "critical_unknowns"],
      "properties": {
        "confirmed_blockers": {
          "type": "array",
          "maxItems": 3,
          "items": { "$ref": "#/$defs/evidence_item" }
        },
        "conflicts": {
          "type": "array",
          "maxItems": 3,
          "items": { "$ref": "#/$defs/evidence_item" }
        },
        "critical_unknowns": {
          "type": "array",
          "maxItems": 5,
          "items": { "$ref": "#/$defs/evidence_item" }
        }
      }
    },
    "field_checks": {
      "type": "array",
      "minItems": 5,
      "maxItems": 5,
      "items": { "type": "string", "minLength": 1, "maxLength": 90 }
    },
    "additional_data": {
      "type": "array",
      "minItems": 1,
      "maxItems": 3,
      "items": { "$ref": "#/$defs/additional_data" }
    },
    "sources": {
      "type": "array",
      "minItems": 1,
      "maxItems": 32,
      "items": { "$ref": "#/$defs/source" }
    }
  },
  "$defs": {
    "evidence_status": {
      "enum": ["confirmed", "estimated", "reference", "not_found", "field_check"]
    },
    "metric_acquisition_status": {
      "enum": ["取得済み", "上位地域で代替", "地点照合が必要", "初期診断では未取得", "対象外"]
    },
    "baseline_acquisition_status": {
      "enum": ["取得済み", "上位地域で代替", "地点照合が必要", "一部未取得", "初期診断では未取得", "対象外"]
    },
    "source_ids": {
      "type": "array",
      "maxItems": 6,
      "uniqueItems": true,
      "items": { "type": "string", "pattern": "^S[1-9][0-9]?$" }
    },
    "evidence_item": {
      "type": "object",
      "additionalProperties": false,
      "required": ["title", "detail", "status", "source_ids"],
      "properties": {
        "title": { "type": "string", "minLength": 1, "maxLength": 28 },
        "detail": { "type": "string", "minLength": 1, "maxLength": 110 },
        "status": { "$ref": "#/$defs/evidence_status" },
        "source_ids": { "$ref": "#/$defs/source_ids" }
      }
    },
    "evidence_item_list": {
      "type": "array",
      "maxItems": 4,
      "items": { "$ref": "#/$defs/evidence_item" }
    },
    "short_string_list": {
      "type": "array",
      "maxItems": 4,
      "items": { "type": "string", "minLength": 1, "maxLength": 60 }
    },
    "metric": {
      "type": "object",
      "additionalProperties": false,
      "required": ["name", "display_value", "as_of", "geography", "acquisition_status", "source_ids"],
      "properties": {
        "name": { "type": "string", "minLength": 1, "maxLength": 40 },
        "display_value": { "type": "string", "minLength": 1, "maxLength": 40 },
        "numeric_value": { "type": ["number", "null"], "minimum": 0 },
        "unit": { "type": "string", "maxLength": 20 },
        "as_of": { "type": "string", "minLength": 1, "maxLength": 40 },
        "geography": { "type": "string", "minLength": 1, "maxLength": 80 },
        "acquisition_status": { "$ref": "#/$defs/metric_acquisition_status" },
        "source_ids": { "$ref": "#/$defs/source_ids" }
      }
    },
    "chart_item": {
      "type": "object",
      "additionalProperties": false,
      "required": ["label", "value", "display_value"],
      "properties": {
        "label": { "type": "string", "minLength": 1, "maxLength": 30 },
        "value": { "type": "number", "minimum": 0 },
        "display_value": { "type": "string", "minLength": 1, "maxLength": 30 }
      }
    },
    "chart": {
      "type": ["object", "null"],
      "additionalProperties": false,
      "required": ["type", "title", "unit", "as_of", "geography", "source_ids", "items"],
      "properties": {
        "type": { "enum": ["bar_pair", "stacked_share"] },
        "title": { "type": "string", "minLength": 1, "maxLength": 50 },
        "unit": { "type": "string", "maxLength": 20 },
        "as_of": { "type": "string", "minLength": 1, "maxLength": 50 },
        "geography": { "type": "string", "minLength": 1, "maxLength": 80 },
        "source_ids": { "$ref": "#/$defs/source_ids" },
        "items": {
          "type": "array",
          "minItems": 2,
          "maxItems": 4,
          "items": { "$ref": "#/$defs/chart_item" }
        }
      }
    },
    "baseline": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "title", "acquisition_status", "summary", "metrics", "chart"],
      "properties": {
        "id": { "enum": ["D1", "D2", "D3", "D4"] },
        "title": { "type": "string", "minLength": 1, "maxLength": 40 },
        "acquisition_status": { "$ref": "#/$defs/baseline_acquisition_status" },
        "summary": { "type": "string", "minLength": 1, "maxLength": 130 },
        "metrics": {
          "type": "array",
          "maxItems": 5,
          "items": { "$ref": "#/$defs/metric" }
        },
        "chart": { "$ref": "#/$defs/chart" }
      }
    },
    "research_axis": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "title", "status", "finding", "meaning", "source_ids"],
      "properties": {
        "id": { "enum": ["R1", "R2", "R3", "R4", "R5", "R6", "R7", "R8"] },
        "title": { "type": "string", "minLength": 1, "maxLength": 40 },
        "status": { "$ref": "#/$defs/evidence_status" },
        "finding": { "type": "string", "minLength": 1, "maxLength": 140 },
        "meaning": { "type": "string", "minLength": 1, "maxLength": 100 },
        "source_ids": { "$ref": "#/$defs/source_ids" }
      }
    },
    "additional_data": {
      "type": "object",
      "additionalProperties": false,
      "required": ["name", "method", "decision_use"],
      "properties": {
        "name": { "type": "string", "minLength": 1, "maxLength": 50 },
        "method": { "type": "string", "minLength": 1, "maxLength": 90 },
        "decision_use": { "type": "string", "minLength": 1, "maxLength": 90 }
      }
    },
    "source": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "title", "url", "publisher", "checked_at", "as_of", "supports"],
      "properties": {
        "id": { "type": "string", "pattern": "^S[1-9][0-9]?$" },
        "title": { "type": "string", "minLength": 1, "maxLength": 100 },
        "url": { "type": "string", "pattern": "^https?://" },
        "publisher": { "type": "string", "minLength": 1, "maxLength": 80 },
        "checked_at": { "type": "string", "format": "date" },
        "as_of": { "type": "string", "minLength": 1, "maxLength": 50 },
        "supports": {
          "type": "array",
          "minItems": 1,
          "maxItems": 8,
          "uniqueItems": true,
          "items": { "type": "string", "pattern": "^(R[1-8]|D[1-4])$" }
        }
      }
    }
  }
}

SHA-256: 561f3fb25d7a32739bb3d6f2fea234cf2aad1ee0a13b98538d492bf932cbfd92