config: add workspace role profiles

This commit is contained in:
Keisuke Hirata 2026-06-07 17:44:58 +09:00
parent 383b655072
commit b5861e6bf2
No known key found for this signature in database
11 changed files with 159 additions and 8 deletions

21
.yoi/profiles.toml Normal file
View File

@ -0,0 +1,21 @@
default = "project:companion"
[profile.companion]
description = "Companion role profile: GPT-5.5 with bundled default behavior"
path = "profiles/companion.lua"
[profile.intake]
description = "Intake role profile: GPT-5.5 with bundled default behavior"
path = "profiles/intake.lua"
[profile.orchestrator]
description = "Orchestrator role profile: GPT-5.5 with bundled default behavior"
path = "profiles/orchestrator.lua"
[profile.coder]
description = "Coder role profile: GPT-5.5 with bundled default behavior"
path = "profiles/coder.lua"
[profile.reviewer]
description = "Reviewer role profile: GPT-5.5 with bundled default behavior"
path = "profiles/reviewer.lua"

44
.yoi/profiles/_base.lua Normal file
View File

@ -0,0 +1,44 @@
local profile = require("yoi.profile")
local scope = require("yoi.scope")
local compact = require("yoi.compact")
return function(opts)
return profile {
slug = opts.slug,
description = opts.description,
scope = scope.workspace_write(),
session = {
record_event_trace = true,
},
worker = {
reasoning = "high",
},
model = {
ref = opts.model_ref,
},
compaction = compact.tokens {
threshold = 240000,
request_threshold = 270000,
worker_context_max_tokens = 100000,
},
memory = {
extract_threshold = 50000,
consolidation_threshold_files = 5,
consolidation_threshold_bytes = 50000,
},
web = {
enabled = true,
search = {
provider = "brave",
api_key_secret = "web/brave/default",
},
},
}
end

7
.yoi/profiles/coder.lua Normal file
View File

@ -0,0 +1,7 @@
local base = require("_base")
return base {
slug = "coder",
description = "Coder role profile: GPT-5.5 with bundled default behavior",
model_ref = "codex-oauth/gpt-5.5",
}

View File

@ -0,0 +1,7 @@
local base = require("_base")
return base {
slug = "companion",
description = "Companion role profile: GPT-5.5 with bundled default behavior",
model_ref = "codex-oauth/gpt-5.5",
}

7
.yoi/profiles/intake.lua Normal file
View File

@ -0,0 +1,7 @@
local base = require("_base")
return base {
slug = "intake",
description = "Intake role profile: GPT-5.5 with bundled default behavior",
model_ref = "codex-oauth/gpt-5.5",
}

View File

@ -0,0 +1,7 @@
local base = require("_base")
return base {
slug = "orchestrator",
description = "Orchestrator role profile: GPT-5.5 with bundled default behavior",
model_ref = "codex-oauth/gpt-5.5",
}

View File

@ -0,0 +1,7 @@
local base = require("_base")
return base {
slug = "reviewer",
description = "Reviewer role profile: GPT-5.5 with bundled default behavior",
model_ref = "codex-oauth/gpt-5.5",
}

View File

@ -3,21 +3,17 @@ provider = "builtin:yoi_local"
root = ".yoi/tickets"
[roles.intake]
profile = "builtin:default"
profile = "project:intake"
workflow = "ticket-intake-workflow"
[roles.orchestrator]
profile = "builtin:default"
profile = "project:orchestrator"
workflow = "ticket-orchestrator-routing"
[roles.coder]
profile = "builtin:default"
profile = "project:coder"
workflow = "multi-agent-workflow"
[roles.reviewer]
profile = "builtin:default"
profile = "project:reviewer"
workflow = "multi-agent-workflow"
[roles.investigator]
profile = "builtin:default"
workflow = "ticket-preflight-workflow"

View File

@ -0,0 +1,48 @@
---
id: 20260607-084344-remove-fixed-investigator-ticket-role
slug: remove-fixed-investigator-ticket-role
title: Remove fixed investigator Ticket role
status: open
kind: task
priority: P2
labels: [ticket, orchestration, role, cleanup]
workflow_state: intake
created_at: 2026-06-07T08:43:44Z
updated_at: 2026-06-07T08:43:44Z
assignee: null
legacy_ticket: null
---
## Background
`investigator` was introduced by prior AI-driven Ticket orchestration design as a fixed Ticket role alongside `intake`, `orchestrator`, `coder`, and `reviewer`. It was not part of the current desired role profile set, and the former TUI `:ticket investigate` surface has already been removed.
Investigation/read-only research remains useful, but it should be modeled as a task-specific helper Pod spawned by Intake/Orchestrator/preflight when needed, not as a permanent fixed Ticket role with workspace config/profile slots.
## Goal
Remove `investigator` as a fixed Ticket role and clean up user/project-facing references while preserving the ability for Orchestrator/preflight flows to spawn read-only investigation helper Pods as ordinary task-specific Pods.
## Requirements
- Remove `TicketRole::Investigator` from the fixed role model.
- Update Ticket config parsing/scaffold/defaults so `.yoi/ticket.config.toml` only requires/advertises:
- `intake`
- `orchestrator`
- `coder`
- `reviewer`
- Treat `[roles.investigator]` in current config according to the projects desired compatibility policy; prefer a clear config error or documented migration over silently using an unsupported role.
- Update launcher/client/TUI tests and prompt generation that currently mention or branch on `Investigator`.
- Remove docs/workflow wording that presents `investigator` as a fixed role or configured role slot.
- Preserve wording/behavior that allows Orchestrator/preflight to create read-only helper Pods for investigation when explicitly useful.
- Do not reintroduce the removed TUI `:ticket investigate` command surface.
- Do not add a generic arbitrary role registry as part of this cleanup.
## Acceptance criteria
- No runtime fixed-role enum/config/scaffold path exposes `investigator` as a Ticket role.
- `yoi ticket init` no longer emits `[roles.investigator]`.
- Project docs describe investigation as an optional helper-Pod activity under Intake/Orchestrator/preflight, not a configured Ticket role.
- Existing Ticket role launch flows for intake/orchestrator/coder/reviewer still work.
- Focused tests for `ticket::config`, `client::ticket_role`, and any affected TUI role-launch/panel paths pass.
- `target/debug/yoi ticket doctor`, `cargo fmt --check`, and `git diff --check` pass.

View File

@ -0,0 +1,7 @@
<!-- event: create author: LocalTicketBackend at: 2026-06-07T08:43:44Z -->
## Created
Created by LocalTicketBackend create.
---