getAIRole
Retrieve AI role definitions and permissions from the AI_ROLE_MATRIX.yaml file to understand access levels and capabilities for specific AI systems.
Instructions
π v6: Get AI role and permissions from AI_ROLE_MATRIX.yaml
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| aiName | Yes | AI name to check |
Implementation Reference
- src/tools/v6-tools.js:62-111 (handler)Core handler function that defines and returns AI roles, permissions, modifiable folders, and responsibilities based on the aiName parameter.export async function getAIRole({ aiName }) { const roles = { cursor: { type: 'code_writer', permissions: ['write: 03_ACTIVE', 'test: 04_TEST'], canModify: ['03_ACTIVE', '04_TEST'], cannotModify: ['01_CONFIG', '07_META'], responsibilities: ['μ½λ μμ±', 'ν μ€νΈ μμ±', 'λ²κ·Έ μμ '] }, claude: { type: 'reviewer', permissions: ['review: 03_ACTIVE', 'document: 00_DOCS'], canModify: ['00_DOCS'], cannotModify: ['03_ACTIVE', '01_CONFIG'], responsibilities: ['μ½λ 리뷰', 'λ¬Έμ μμ±', 'μν€ν μ² κ²μ¦'] }, chatgpt: { type: 'architect', permissions: ['structure: 00_DOCS', 'rule: 07_META'], canModify: ['00_DOCS', '07_META'], cannotModify: ['03_ACTIVE', '01_CONFIG'], responsibilities: ['ꡬ쑰 μ€κ³', 'νμΌλͺ μμ±', 'μμ‘΄μ± κ΄λ¦¬'] }, windsurf: { type: 'assistant', permissions: ['read: all', 'write: 03_ACTIVE'], canModify: ['03_ACTIVE'], cannotModify: ['01_CONFIG', '07_META'], responsibilities: ['μ½λ 리ν©ν λ§', 'μ±λ₯ μ΅μ ν'] }, human: { type: 'supervisor', permissions: ['override: all', 'approve: all'], canModify: ['all'], cannotModify: [], responsibilities: ['μ΅μ’ μΉμΈ', '보μ μ€μ ', 'νλ‘μ νΈ λ°©ν₯'] } }; const role = roles[aiName]; if (!role) { return { error: `Unknown AI: ${aiName}`, availableAIs: Object.keys(roles) }; } return { aiName, ...role, description: `${aiName} is a ${role.type} with ${role.permissions.length} permissions` }; }
- src/index.js:354-368 (schema)Tool registration including name, description, and input schema defining the aiName parameter with allowed enum values.{ name: 'getAIRole', description: 'π v6: Get AI role and permissions from AI_ROLE_MATRIX.yaml', inputSchema: { type: 'object', properties: { aiName: { type: 'string', description: 'AI name to check', enum: ['cursor', 'claude', 'chatgpt', 'windsurf', 'human'] } }, required: ['aiName'] } },
- src/index.js:650-652 (registration)Registration in the tool dispatcher switch statement that calls the getAIRole handler with arguments.case 'getAIRole': result = await getAIRole(args); break;
- src/tools/index.js:816-816 (registration)Re-export of getAIRole from v6-tools.js to make it available in tools/index.js.getAIRole,
- src/index.js:35-35 (registration)Import of getAIRole function from tools/index.js into the main server file.getAIRole,