{
  "$schema": "../schemas/roles.schema.json",
  "$comment": "Role definitions for team collaboration",

  "roles": {
    "team-lead": {
      "displayName": "Team Lead",
      "description": "Full access to all features, manages team settings and approvals",
      "permissions": [
        "read",
        "write",
        "execute",
        "approve",
        "configure",
        "manage-members",
        "manage-knowledge",
        "manage-sessions"
      ],
      "capabilities": {
        "can_approve_plans": true,
        "can_modify_team_config": true,
        "can_add_members": true,
        "can_remove_members": true,
        "can_access_all_sessions": true,
        "can_override_policies": true
      },
      "context_access": {
        "shared_knowledge": "full",
        "session_history": "all",
        "sensitive_configs": true
      }
    },

    "senior-developer": {
      "displayName": "Senior Developer",
      "description": "Full development access with plan approval capabilities",
      "permissions": [
        "read",
        "write",
        "execute",
        "approve"
      ],
      "capabilities": {
        "can_approve_plans": true,
        "can_modify_team_config": false,
        "can_add_members": false,
        "can_remove_members": false,
        "can_access_all_sessions": true,
        "can_override_policies": false
      },
      "context_access": {
        "shared_knowledge": "full",
        "session_history": "team",
        "sensitive_configs": false
      }
    },

    "developer": {
      "displayName": "Developer",
      "description": "Standard development access for implementing features and fixes",
      "permissions": [
        "read",
        "write",
        "execute"
      ],
      "capabilities": {
        "can_approve_plans": false,
        "can_modify_team_config": false,
        "can_add_members": false,
        "can_remove_members": false,
        "can_access_all_sessions": false,
        "can_override_policies": false
      },
      "context_access": {
        "shared_knowledge": "full",
        "session_history": "own",
        "sensitive_configs": false
      }
    },

    "reviewer": {
      "displayName": "Code Reviewer",
      "description": "Read access with approval capabilities for code review",
      "permissions": [
        "read",
        "approve"
      ],
      "capabilities": {
        "can_approve_plans": true,
        "can_modify_team_config": false,
        "can_add_members": false,
        "can_remove_members": false,
        "can_access_all_sessions": true,
        "can_override_policies": false
      },
      "context_access": {
        "shared_knowledge": "read-only",
        "session_history": "team",
        "sensitive_configs": false
      }
    },

    "observer": {
      "displayName": "Observer",
      "description": "Read-only access for monitoring and learning",
      "permissions": [
        "read"
      ],
      "capabilities": {
        "can_approve_plans": false,
        "can_modify_team_config": false,
        "can_add_members": false,
        "can_remove_members": false,
        "can_access_all_sessions": false,
        "can_override_policies": false
      },
      "context_access": {
        "shared_knowledge": "read-only",
        "session_history": "none",
        "sensitive_configs": false
      }
    }
  },

  "permission_definitions": {
    "read": "View files, documentation, and session history",
    "write": "Create and modify files, documentation",
    "execute": "Run commands, scripts, and Claude Code operations",
    "approve": "Approve plans, pull requests, and changes",
    "configure": "Modify project and team configuration",
    "manage-members": "Add, remove, and modify team members",
    "manage-knowledge": "Create, edit, and delete shared knowledge",
    "manage-sessions": "Access and manage all team sessions"
  },

  "default_role": "developer",

  "role_hierarchy": [
    "team-lead",
    "senior-developer",
    "developer",
    "reviewer",
    "observer"
  ]
}
