config: add workspace role profiles
This commit is contained in:
parent
383b655072
commit
b5861e6bf2
21
.yoi/profiles.toml
Normal file
21
.yoi/profiles.toml
Normal 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
44
.yoi/profiles/_base.lua
Normal 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
7
.yoi/profiles/coder.lua
Normal 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",
|
||||
}
|
||||
7
.yoi/profiles/companion.lua
Normal file
7
.yoi/profiles/companion.lua
Normal 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
7
.yoi/profiles/intake.lua
Normal 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",
|
||||
}
|
||||
7
.yoi/profiles/orchestrator.lua
Normal file
7
.yoi/profiles/orchestrator.lua
Normal 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",
|
||||
}
|
||||
7
.yoi/profiles/reviewer.lua
Normal file
7
.yoi/profiles/reviewer.lua
Normal 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",
|
||||
}
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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 project’s 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.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<!-- event: create author: LocalTicketBackend at: 2026-06-07T08:43:44Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by LocalTicketBackend create.
|
||||
|
||||
---
|
||||
Loading…
Reference in New Issue
Block a user