From d02faf5cacef05f0d9ff2bbd750b1474d22c4e8c Mon Sep 17 00:00:00 2001 From: Hans Heinemann Date: Mon, 16 Mar 2026 09:14:22 -0400 Subject: [PATCH] feat(config): expand role_registry + fix T4 default runtime Role registry additions: - T2: add ai, security, mobile domains - T3: add data, ai, security, mobile, database, devops, docs domains - T4: add data (data-engineer), embedded (firmware-engineer) - T5: add accessibility, e2e, frontend, data verifier roles TeamRunner consistency fix: - T4 briefs now default to 'coding_agent' runtime (Claude Code) per build spec: 'Claude Code as default T4 runtime' T3 can still override preferred_runtime per task --- config/role_registry.yaml | 28 ++++++++++++++++++++++------ core/team_runner.py | 4 +++- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/config/role_registry.yaml b/config/role_registry.yaml index a8c6eaa..806343b 100644 --- a/config/role_registry.yaml +++ b/config/role_registry.yaml @@ -6,12 +6,22 @@ t2: frontend: agents/engineering/engineering-software-architect.md infra: agents/engineering/engineering-devops-automator.md data: agents/engineering/engineering-data-engineer.md + ai: agents/engineering/engineering-software-architect.md + security: agents/engineering/engineering-security-engineer.md + mobile: agents/engineering/engineering-software-architect.md default: agents/engineering/engineering-software-architect.md t3: backend: agents/engineering/engineering-senior-developer.md frontend: agents/engineering/engineering-senior-developer.md infra: agents/engineering/engineering-sre.md + data: agents/engineering/engineering-data-engineer.md + ai: agents/engineering/engineering-ai-engineer.md + security: agents/engineering/engineering-security-engineer.md + mobile: agents/engineering/engineering-mobile-app-builder.md + database: agents/engineering/engineering-database-optimizer.md + devops: agents/engineering/engineering-sre.md + docs: agents/engineering/engineering-technical-writer.md default: agents/engineering/engineering-senior-developer.md t4: @@ -23,12 +33,18 @@ t4: ai: agents/engineering/engineering-ai-engineer.md security: agents/engineering/engineering-security-engineer.md docs: agents/engineering/engineering-technical-writer.md + data: agents/engineering/engineering-data-engineer.md + embedded: agents/engineering/engineering-embedded-firmware-engineer.md default: agents/engineering/engineering-senior-developer.md t5: - code: agents/engineering/engineering-code-reviewer.md - integration: agents/testing/testing-reality-checker.md - api: agents/testing/testing-api-tester.md - performance: agents/testing/testing-performance-benchmarker.md - security: agents/engineering/engineering-security-engineer.md - default: agents/engineering/engineering-code-reviewer.md + code: agents/engineering/engineering-code-reviewer.md + integration: agents/testing/testing-reality-checker.md + api: agents/testing/testing-api-tester.md + performance: agents/testing/testing-performance-benchmarker.md + security: agents/engineering/engineering-security-engineer.md + accessibility: agents/testing/testing-accessibility-auditor.md + e2e: agents/testing/testing-evidence-collector.md + frontend: agents/testing/testing-accessibility-auditor.md + data: agents/testing/testing-reality-checker.md + default: agents/engineering/engineering-code-reviewer.md diff --git a/core/team_runner.py b/core/team_runner.py index 9226419..368e8d4 100644 --- a/core/team_runner.py +++ b/core/team_runner.py @@ -554,7 +554,9 @@ class TeamRunner: briefs: list[TaskBrief] = [] for task in tasks: role = task.get("role", "default") - pref_runtime = task.get("preferred_runtime", "standard") + # T4 is the coding/implementation tier; default to coding_agent + # so implementers use Claude Code unless T3 explicitly overrides. + pref_runtime = task.get("preferred_runtime", "coding_agent") brief = parent.make_child_brief( tier=4, role=role,