Community Roles
OSTwin ships with a growing library of community-contributed roles alongside the core built-in roles. This page catalogs the role ecosystem, quality standards, and the 5-tier discovery system.
Role Categories
Roles for Unity game development pipelines:
| Role | Description |
|---|---|
game-engineer | Unity C# code generation, scene building, animation |
game-qa | Playtest validation, code review, performance testing |
game-architect | System architecture, ADRs, project context |
game-designer | Game briefs, GDDs, UX design, epics, stories |
game-producer | Sprint planning, milestone tracking, coordination |
game-devops | CI/CD pipelines, Unity Cloud Build, distribution |
game-ui-analyst | UI detection from screenshots, animation extraction |
level-designer | Level layouts, difficulty curves, progression tuning |
narrative-designer | Dialogue, lore, story arcs, localization |
sound-designer | SFX, audio middleware, music integration |
tech-artist | Shaders, VFX, animation polish, art pipeline |
ux-researcher | Playtesting, user research, analytics |
Roles for data processing and analysis:
| Role | Description |
|---|---|
data-scientist | ML models, search engines, recommendation systems |
database-architect | Schema design, query optimization, migrations |
audit | Risk investigation, data analysis, compliance review |
reporter | Structured PDF reports, data visualization |
Roles for web and mobile interfaces:
| Role | Description |
|---|---|
engineer | Full-stack implementation (instances: fe, be) |
technical-writer | Documentation, gameplay instructions |
macos-automation-engineer | macOS app control, window management, input |
Roles for orchestration and infrastructure:
| Role | Description |
|---|---|
manager | War-room orchestration, retry management, release |
qa | Code review, requirement verification, quality |
architect | System design, technical decisions, ADRs |
5-Tier Discovery System
OSTwin uses a 5-tier system to match roles to tasks:
-
Exact Name Match
If a plan specifies
Roles: game-engineer, the system looks upgame-engineerdirectly in the registry. -
Capability Matching
When
capability_matchingis enabled, the system scores roles against task requirements:Score = count(role.capabilities ∩ task.requirements) / count(task.requirements)The highest-scoring role wins.
-
Alias Resolution
Capability aliases normalize common terms:
{"sql": "database","react": "frontend","ci-cd": "infrastructure","a11y": "accessibility"} -
Assignment Rules
Default fallbacks for common task types:
Task Type Default Role taskengineerreviewqadesignarchitectorchestrationmanagerinvestigationaudit -
Dynamic Role Creation
If no existing role matches, the system can auto-create a dynamic role using
auto_create_role.sh. This generates a minimalrole.jsonandROLE.mdfrom the task description.
Quality Standards
All community roles must meet these standards:
Required
- Valid
role.jsonwith all required fields ROLE.mdprompt file with clear identity and responsibilities- Unique role name not conflicting with existing registrations
- At least one capability tag
- Registration in
registry.json
Recommended
- Descriptive
quality_gatesthat guide agent behavior - Platform restrictions if applicable (e.g.,
"platform": ["macos"]) supported_task_typeslimiting the role to appropriate work- A README.md explaining the role’s purpose and usage
Quality Gates by Category
compiles-in-unityorbuilds-cleanunit-testsortests-passlint-cleanno-hardcoded-secrets- Performance targets (e.g.,
60fps-non-negotiable)
verdict-required— must produce a clear pass/failevidence-based-review— findings must cite specific codeacceptance-criteria-met— check against definition of done
design-review— architecture must be reviewablescalability-check— design must address growth- Output-specific gates (e.g.,
brief-has-core-loop)
Submitting Community Roles
-
Develop your role following the Creating Custom Roles guide
-
Place files under
contributes/roles/contributes/roles/my-role/├── role.json└── ROLE.md -
Add the registry entry with
contributes/prefix -
Write tests that verify your role handles its expected task types
-
Open a PR with the
rolelabel againstdevelop
Built-in vs Community
| Aspect | Built-in | Community |
|---|---|---|
| Location | .agents/roles/ | contributes/roles/ |
| Stability | Guaranteed backward-compatible | Best-effort |
| Runner | Dedicated PowerShell script | Usually Start-DynamicRole.ps1 |
| Review | Core team | Community review |
| Model defaults | Configured centrally | Role-defined |