ticket: route workflow template non-goals cleanup

This commit is contained in:
Keisuke Hirata 2026-06-08 10:50:39 +09:00
parent 17248b5eca
commit b45d8f1f6e
No known key found for this signature in database
3 changed files with 202 additions and 0 deletions

View File

@ -0,0 +1,80 @@
---
id: '20260608-014602-remove-non-goals-from-workflow-templates'
slug: 'remove-non-goals-from-workflow-templates'
title: 'Remove Non-goals from workflow templates'
status: 'open'
kind: 'task'
priority: 'P2'
labels: ['workflow', 'prompt', 'ticket', 'orchestration', 'cleanup']
workflow_state: 'inprogress'
created_at: '2026-06-08T01:46:02Z'
updated_at: '2026-06-08T01:50:34Z'
assignee: null
legacy_ticket: null
queued_by: 'workspace-panel'
queued_at: '2026-06-08T01:48:07Z'
---
## Background
Current workflow templates repeatedly ask for `Non-goals` or `Non-goals / constraints`:
- `ticket-intake-workflow.md` asks `やらないことは何か。`
- Ticket draft templates include `Non-goals:`.
- IntentPacket templates include `Non-goals / constraints: 今回やらないこと、触ってはいけない場所。`
- Orchestrator evidence checks combine `Non-goals / invariants`.
This wording encourages agents to fill a broad exclusion list with unrelated, obvious, or generic non-actions. It also mixes distinct concepts:
- binding decisions / invariants;
- implementation latitude;
- scope/authority boundaries;
- escalation conditions;
- adjacent work that belongs to another Ticket.
The result is noisy Tickets and intent packets where obvious unrelated exclusions obscure the actual implementation boundary.
## Goal
Remove `Non-goals` as a workflow section and simplify intent boundaries around two concepts:
1. `Binding decisions / invariants`
2. `Implementation latitude`
## Requirements
- Remove `Non-goals` / `Non-goals / constraints` sections from workflow templates and intent packet examples.
- Remove broad prompts such as `やらないことは何か。` from Intake requirements gathering.
- Do not replace `Non-goals` with another broad optional exclusion bucket unless explicitly needed.
- Use `Binding decisions / invariants` for:
- explicit human/Orchestrator/Ticket decisions;
- authority/design boundaries;
- constraints the coder/reviewer must respect;
- places/concepts that must not be changed when they are truly relevant.
- Use `Implementation latitude` for:
- local tactics the coder may decide through investigation;
- file/helper/test organization flexibility;
- bounded uncertainty that reviewer can judge against intent and invariants.
- If adjacent excluded work must be mentioned, express it as a concrete binding decision or escalation condition rather than a generic `Non-goals` list.
- Update affected workflows:
- `.yoi/workflow/ticket-intake-workflow.md`
- `.yoi/workflow/ticket-orchestrator-routing.md`
- `.yoi/workflow/ticket-preflight-workflow.md`
- `.yoi/workflow/multi-agent-workflow.md`
- Update any prompt tests or role prompt guidance that expects `Non-goals` in intent packets.
- Keep reviewer guidance focused on recorded intent, binding decisions/invariants, implementation latitude, acceptance criteria, and explicit escalation conditions.
## Non-requirements
- Do not redesign the Ticket state machine in this ticket.
- Do not remove escalation conditions or validation sections.
- Do not remove the ability to state a concrete exclusion when it is genuinely a binding decision.
## Acceptance criteria
- Workflow templates no longer include a `Non-goals` / `Non-goals / constraints` section.
- IntentPacket examples use `Binding decisions / invariants` and `Implementation latitude` to express boundaries.
- Intake guidance no longer asks agents to enumerate generic `やらないこと`.
- Generated Tickets/intent packets are less likely to include unrelated obvious exclusions.
- Tests/docs/prompts that reference the old section are updated.
- `target/debug/yoi ticket doctor`, focused prompt/workflow tests if any, `cargo fmt --check`, and `git diff --check` pass.

View File

@ -0,0 +1,122 @@
<!-- event: create author: LocalTicketBackend at: 2026-06-08T01:46:02Z -->
## Created
Created by LocalTicketBackend create.
---
<!-- event: decision author: intake at: 2026-06-08T01:46:53Z -->
## Decision
Intake classification: this existing Ticket is sufficiently specified for Orchestrator routing.
- readiness: implementation_ready
- needs_preflight: false
- risk_flags: [workflow-prompts]
Rationale: the requested change is constrained to workflow/prompt wording and intent packet examples; it preserves escalation conditions, validation, concrete exclusions as binding decisions, and the Ticket state machine. No authority boundary, persistence, public API, security, or storage migration decision is left for a coder to make silently.
---
<!-- event: intake_summary author: intake at: 2026-06-08T01:46:58Z -->
## Intake summary
Existing Ticket refined and classified as implementation_ready. Scope is removal of generic Non-goals/Non-goals constraints sections and broad non-goal prompts from workflow templates and intent packet examples, replacing boundary expression with Binding decisions / invariants plus Implementation latitude. Preserve escalation conditions, validation, concrete exclusions as binding decisions, and the Ticket state machine. needs_preflight=false; risk_flags=[workflow-prompts].
---
<!-- event: state_changed author: intake at: 2026-06-08T01:46:58Z from: intake to: ready reason: intake_ready field: workflow_state -->
## State changed
Intake complete: requirements, acceptance criteria, implementation boundaries, validation, and routing signals are sufficient for Orchestrator review/queueing.
---
<!-- event: state_changed author: workspace-panel at: 2026-06-08T01:48:07Z from: ready to: queued reason: queued field: workflow_state -->
## State changed
Ticket queued for Orchestrator routing.
---
<!-- event: decision author: orchestrator at: 2026-06-08T01:50:29Z -->
## Decision
Routing decision: implementation_ready
Reason:
- Intake classified this Ticket as `implementation_ready`, `needs_preflight=false`; the requested change is scoped to workflow/prompt wording and intent packet examples.
- Requirements and acceptance criteria are observable: remove generic `Non-goals` / `Non-goals / constraints` workflow sections and broad `やらないことは何か。` prompts, while preserving concrete boundaries as `Binding decisions / invariants`, `Implementation latitude`, escalation conditions, and validation.
- The code/workflow search shows the active maintained workflow-template hits are concentrated in `.yoi/workflow/{ticket-intake-workflow.md,ticket-orchestrator-routing.md,ticket-preflight-workflow.md,multi-agent-workflow.md}`. Historic Ticket artifacts contain old wording and should not be rewritten.
- Remaining uncertainty is bounded text/test cleanup, not a design-boundary decision.
Evidence checked:
- Ticket body and thread, including intake decision and queued event.
- Workspace state: current main workspace has only this new Ticket record uncommitted; runtime workspace identity bundle is in a separate worktree/re-review and should remain isolated.
- Code/workflow search for `Non-goals`, `Non-goals / constraints`, `Non-goals / invariants`, and `やらないことは何か。`.
- Ticket doctor: 0 errors.
IntentPacket:
Intent:
- Remove generic `Non-goals` workflow-template language and make workflow examples express boundaries through concrete invariants and implementation latitude instead.
Binding decisions / invariants:
- Do not rewrite historic closed/open Ticket threads or artifacts just because they contain old `Non-goals` text.
- Preserve the ability to state a concrete exclusion when it is genuinely a binding decision, invariant, authority boundary, or escalation condition.
- Preserve escalation conditions, validation sections, reviewer guidance, and the Ticket workflow/state model.
- Maintained workflow templates should avoid broad optional exclusion buckets that invite generic unrelated lists.
Requirements / acceptance criteria:
- Remove `Non-goals` / `Non-goals / constraints` sections from maintained workflow templates and IntentPacket examples.
- Remove Intake prompts such as `やらないことは何か。` that ask agents to enumerate generic non-goals.
- Replace relevant boundary examples with `Binding decisions / invariants` and `Implementation latitude` language.
- Keep reviewer guidance focused on recorded intent, binding decisions/invariants, implementation latitude, acceptance criteria, and explicit escalation conditions.
- Update prompt/workflow tests or role prompt guidance if any maintained test expects old section names.
Implementation latitude:
- Coder may choose exact wording, section order, and whether a specific concrete exclusion is better expressed as an invariant or escalation condition.
- Coder may update adjacent maintained workflow-template wording where needed for consistency, but should avoid broad documentation churn.
Escalate if:
- A workflow genuinely requires a separate broad exclusion bucket after rewriting.
- Removing old wording would obscure a real authority boundary rather than clarify it.
- Required updates extend beyond maintained workflow/prompt templates into historic Ticket artifacts or unrelated docs.
Validation:
- Search maintained workflows/prompts for old generic section names and broad `やらないこと` prompt.
- Run focused prompt/workflow tests if present.
- `target/debug/yoi ticket doctor` or `cargo run -q -p yoi -- ticket doctor`.
- `cargo fmt --check` only if Rust/test code changes.
- `git diff --check`.
- `nix build .#yoi` is required if runtime resources/prompts packaged into the product are changed; if only `.yoi/workflow` project records change, explain why Nix build was omitted.
Current code map:
- `.yoi/workflow/ticket-intake-workflow.md`
- `.yoi/workflow/ticket-orchestrator-routing.md`
- `.yoi/workflow/ticket-preflight-workflow.md`
- `.yoi/workflow/multi-agent-workflow.md`
- Search broader maintained prompt/test paths for old labels before reporting.
Critical risks / reviewer focus:
- Do not simply rename `Non-goals` to another generic exclusion bucket.
- Do not remove concrete authority boundaries or escalation conditions.
- Do not edit historical Ticket records as part of cleanup.
- Ensure workflow examples still give coder/reviewer enough boundary information.
---
<!-- event: state_changed author: orchestrator at: 2026-06-08T01:50:34Z from: queued to: inprogress reason: orchestrator_acceptance field: workflow_state -->
## State changed
Accepted queued implementation after reading the Ticket, workspace state, and maintained workflow-template hits. This acceptance precedes worktree creation and coder/reviewer Pod spawning.
---