yoi/.yoi/tickets/00001KTG16J8R/item.md

58 lines
2.9 KiB
Markdown

---
title: "Scaffold explicit Ticket role profiles in init config"
state: "closed"
created_at: "2026-06-07T03:14:39Z"
updated_at: "2026-06-07T04:05:15Z"
---
## Background
Fallback audit found that `.yoi/ticket.config.toml` can currently contain only backend settings. In that case Ticket config parsing succeeds, but fixed Ticket role profiles fall back to `inherit`, which top-level Panel/CLI Ticket role launch rejects. This causes Panel Intake / Orchestrator launch failures such as:
```text
Ticket role profile 'inherit' cannot be used for top-level launch execution; configure a concrete role profile selector
```
The desired policy is to distinguish explicit builtin preset selection from implicit runtime fallback. It is acceptable for init/scaffold to generate a working config that explicitly names builtin presets. It is not acceptable for runtime to silently fill missing role config with builtin/default/inherit.
## Goal
Make project init/scaffold generate a complete, explicit Ticket role configuration suitable for Panel Intake and Orchestrator launch.
## Requirements
- Locate or introduce the init/scaffold path that creates `.yoi/ticket.config.toml` for a workspace.
- Generate explicit backend config:
- `[backend] provider = "builtin:yoi_local"`
- `root = ".yoi/tickets"`
- Generate explicit fixed role tables for at least:
- `[roles.intake]`
- `[roles.orchestrator]`
- `[roles.coder]`
- `[roles.reviewer]`
- `[roles.investigator]`
- Each role table must include a concrete `profile`, not `inherit`.
- Minimal initial implementation may explicitly use `builtin:default` if role-specific builtin profiles are not ready yet.
- If role-specific builtin profiles are introduced, use explicit selectors such as `builtin:ticket-intake`, `builtin:ticket-orchestrator`, etc.
- Each role table should include explicit `workflow` for readability and reproducibility:
- intake: `ticket-intake-workflow`
- orchestrator: `ticket-orchestrator-routing`
- coder/reviewer: `multi-agent-workflow` or the agreed workflow for those roles
- investigator: the agreed read/investigation workflow
- Generated config must pass Ticket role launch validation for Panel Intake and workspace Orchestrator.
- Do not implement runtime fallback from missing role profiles to builtin presets in this ticket.
## Non-goals
- Making builtin role profiles an implicit runtime fallback.
- Allowing `inherit` for top-level Ticket role launch.
- Redesigning provider/model fallback policy.
- Implementing full Companion lifecycle.
## Acceptance criteria
- A newly initialized workspace has explicit concrete Ticket role profiles in `.yoi/ticket.config.toml`.
- Panel Intake launch planning does not fail because generated role profile is `inherit` or missing.
- Workspace Orchestrator launch planning does not fail because generated role profile is `inherit` or missing.
- Tests cover generated config shape and successful role-launch validation against the scaffolded config.