{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://hivemind.dev/schema/configs/2.0.0",
  "title": "Hivemind Configs",
  "description": "IDE-facing JSON Schema for .hivemind/configs.json generated from the runtime config contract.",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "default": "./configs.schema.json",
      "description": "Relative path to the shipped Hivemind config JSON Schema."
    },
    "conversation_language": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "vi",
        "zh",
        "fr",
        "ja",
        "ko",
        "de",
        "es",
        "th",
        "id"
      ]
    },
    "documents_and_artifacts_language": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "vi",
        "zh",
        "fr",
        "ja",
        "ko",
        "de",
        "es",
        "th",
        "id"
      ]
    },
    "document_paths": {
      "default": [
        ".planning/"
      ],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "mode": {
      "default": "expert-advisor",
      "type": "string",
      "enum": [
        "expert-advisor",
        "hivemind-powered",
        "free-style"
      ]
    },
    "user_expert_level": {
      "default": "intermediate-high-level",
      "type": "string",
      "enum": [
        "clumsy-vibecoder",
        "beginner-friendly",
        "intermediate-high-level",
        "architecture-driven",
        "absolute-expert"
      ]
    },
    "delegation_systems": {
      "default": {
        "native_task": true,
        "delegate_task": true,
        "background_delegation": true
      },
      "type": "object",
      "properties": {
        "native_task": {
          "default": true,
          "type": "boolean"
        },
        "delegate_task": {
          "default": true,
          "type": "boolean"
        },
        "background_delegation": {
          "default": true,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "parallelization": {
      "default": true,
      "type": "boolean"
    },
    "atomic_commit": {
      "default": true,
      "type": "boolean"
    },
    "commit_docs": {
      "default": true,
      "type": "boolean"
    },
    "workflow": {
      "default": {
        "research": true,
        "cross_session_tasks_dependencies_validation": false,
        "trajectory_control": false,
        "advanced_continuity_validation": false,
        "task_plus_enabled": false,
        "plan_check": true,
        "verifier": true,
        "ui_phase": false,
        "ui_safety_gate": false,
        "ai_integration_phase": false,
        "research_before_questions": true,
        "discuss_mode": "sufficient-phase-discussion",
        "use_worktrees": false
      },
      "type": "object",
      "properties": {
        "research": {
          "default": true,
          "type": "boolean"
        },
        "cross_session_tasks_dependencies_validation": {
          "default": false,
          "type": "boolean"
        },
        "trajectory_control": {
          "default": false,
          "type": "boolean"
        },
        "advanced_continuity_validation": {
          "default": false,
          "type": "boolean"
        },
        "task_plus_enabled": {
          "default": false,
          "type": "boolean"
        },
        "plan_check": {
          "default": true,
          "type": "boolean"
        },
        "verifier": {
          "default": true,
          "type": "boolean"
        },
        "ui_phase": {
          "default": false,
          "type": "boolean"
        },
        "ui_safety_gate": {
          "default": false,
          "type": "boolean"
        },
        "ai_integration_phase": {
          "default": false,
          "type": "boolean"
        },
        "research_before_questions": {
          "default": true,
          "type": "boolean"
        },
        "discuss_mode": {
          "default": "sufficient-phase-discussion",
          "type": "string",
          "enum": [
            "sufficient-phase-discussion",
            "intensive-phase-discussion",
            "skip-phase-discussion"
          ]
        },
        "use_worktrees": {
          "default": false,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "governance": {
      "default": {
        "rules": []
      },
      "type": "object",
      "properties": {
        "rules": {
          "default": [],
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "condition": {
                "type": "object",
                "properties": {
                  "toolNames": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sessionIDs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "depth": {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "number"
                      },
                      "max": {
                        "type": "number"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": {}
              },
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "allow",
                      "warn",
                      "block",
                      "escalate",
                      "needs_jit_grant"
                    ]
                  },
                  "escalation": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "additionalProperties": {}
              },
              "enabled": {
                "default": true,
                "type": "boolean"
              }
            },
            "additionalProperties": false
          }
        },
        "naming_standards": {
          "type": "object",
          "properties": {
            "allowed_frameworks": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "allowed_classifications": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "naming_format": {
              "type": "string"
            },
            "max_title_length": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "agent_configs": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "description": {
                "type": "string"
              },
              "allowedCommands": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "tools": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "temperature": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "command_agent_mappings": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "agent": {
                "type": "string"
              },
              "workflow": {
                "type": "string"
              },
              "description": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "templates": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "description": {
                "type": "string"
              },
              "content": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "tool_registry": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "permissions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "guardrail_level": {
      "type": "string",
      "enum": [
        "strict",
        "moderate",
        "permissive"
      ]
    },
    "delegation_mode": {
      "type": "string",
      "enum": [
        "waiter",
        "direct",
        "autonomous"
      ]
    },
    "tool_access_pattern": {
      "type": "string",
      "enum": [
        "restricted",
        "standard",
        "full"
      ]
    },
    "skill_filter": {
      "type": "string",
      "enum": [
        "curated",
        "domain",
        "full"
      ]
    }
  },
  "additionalProperties": false
}
