yoi/.yoi/tickets/00001KXKJGYGD/thread.md

330 lines
18 KiB
Markdown

<!-- event: create author: "yoi ticket" at: 2026-07-15T19:02:13Z -->
## 作成
LocalTicketBackend によって作成されました。
---
<!-- event: intake_summary author: hare at: 2026-07-15T19:27:11Z -->
## Intake summary
Marked ready by `yoi ticket state`.
---
<!-- event: state_changed author: "yoi ticket" at: 2026-07-15T19:27:11Z from: planning to: ready reason: cli_state field: state -->
## State changed
Marked ready by `yoi ticket state`.
---
<!-- event: state_changed author: workspace-panel at: 2026-07-15T19:54:36Z from: ready to: queued reason: queued field: state -->
## State changed
Ticket を `workspace-panel` が queued にしました。
---
<!-- event: decision author: orchestrator at: 2026-07-15T19:55:37Z -->
## Decision
Routing decision: implementation_ready
Reason:
- Ticket は前回の broad Skills support scope から修正され、今回は Workflow tracking / Workflow resource / Workflow invocation path の削除に範囲が限定されている。
- Skills support は incoming dependent Ticket `00001KXKMX0QM``depends_on` として後続に分離されており、この Ticket 自身の blocker ではない。
- `TicketRelationQuery(00001KXKJGYGD)` は incoming dependency のみで、outgoing blocker はない。
- `TicketOrchestrationPlanQuery(00001KXKJGYGD)` は事前 record なし。今回 accepted plan を記録した。
- `TicketList(inprogress)` は 0 件。
- Orchestrator worktree `/home/hare/Projects/yoi/.worktree/orchestration` は clean で、既存 implementation worktree/branch は見当たらない。
Evidence checked:
- Ticket body / thread / relations / artifacts。
- `TicketRelationQuery`, `TicketOrchestrationPlanQuery`, `TicketList(inprogress)`
- Orchestrator worktree / branch / worktree state。
- Previous broad scope was corrected: current title is `Remove workflow tracking and workflow resources` and body says Agent Skills is separate follow-up。
IntentPacket:
Intent:
- Legacy Workflow tracking/resource/invocation machinery を削除する。
- ActiveWorkflow obligation state と model-visible ActiveWorkflow tools を取り除く。
- Workflow resource authority と `/workflow-slug` invocation を廃止し、prompt/docs から Workflow 固有 wording を削除する。
Binding decisions / invariants:
- この Ticket では first-class Skills support を実装しない。Skills は dependent follow-up Ticket `00001KXKMX0QM` の責務。
- Workflow を scheduler / state machine / script / external-state automation layer として残さない。
- `ActiveWorkflowList` / `ActiveWorkflowComplete` / `ActiveWorkflowCancel` は model-visible tool schema から削除する。
- Worker durable state / snapshot / compaction / rehydration / system-item extension から active workflow snapshot / obligation を削除する。
- `resources/workflows` / `.yoi/workflow` は長期 authority として扱わない。
- Ticket / Worker / workdir / queue などの外部状態制御は typed feature/tool surface に残す。
- 既存 session に ActiveWorkflow storage がある場合は、初期実装では ignore / drop / diagnostic の bounded 方針にし、過剰な migration layer を作らない。
Requirements / acceptance criteria:
- ActiveWorkflow tools が schema から消えている。
- active workflow state が Worker snapshot / compaction / rehydration に残らない。
- Workflow resource discovery / invocation path が削除されている。
- Workflow prompt wording / resident workflow advertisement が消えている。
- Workflow 関連 crate/resource/API/test が削除または不要な互換なしに整理されている。
- External state control は feature/tool surface に残る。
- affected tests と `nix build .#yoi` が通る。
Implementation latitude:
- 既存 Workflow crate/resource を削除するか、必要最小限の型削除/rename にするかは dependency graph に応じて選んでよい。
- Persisted old ActiveWorkflow state は bounded compatibility として無視/drop/diagnostic のどれかを選び、設計が大きくなる場合は escalation。
- Prompt/docs cleanup の具体的な文言は Workflow authority を広告しない範囲で local tactic とする。
Escalate if:
- ActiveWorkflow state removal が destructive session migration や broad compatibility layer を必要とする場合。
- Skills support を同時実装しないと build/API が成立しない場合。
- `/slug` など user-facing invocation の代替設計をこの Ticket 内で固定する必要が出た場合。
- Workflow に external-state authority を残さないと既存 feature が動かない場合。
Validation:
- `rg "ActiveWorkflow|active_workflow|Active workflow"` with remaining hits explained or removed。
- `rg "resources/workflows|\.yoi/workflow|workflow invocation|Resident workflows"` with remaining hits explained or removed。
- `git diff --check`
- affected crate tests such as `cargo test -p worker --lib --tests`, `cargo test -p session-store --lib --tests`, `cargo test -p yoi --tests` if CLI/input touched, and workflow crate tests if crate remains。
- `cargo check -p yoi`
- `yoi ticket doctor`
- `nix build .#yoi --no-link`
Current code map / likely touch points:
- `crates/worker/src/active_workflow.rs`, `crates/worker/src/workflow`, `crates/worker/src/controller.rs`, `crates/worker/src/worker.rs`, `crates/worker/src/prompt/*`
- `crates/workflow/*`, `resources/workflows/*`, `resources/prompts/*`
- `crates/protocol/src/lib.rs`, `crates/session-store/src/system_item.rs`
- CLI/TUI input path for `/slug` workflow invocation if present。
- docs mentioning Workflow / ActiveWorkflow / resident workflows。
Critical risks / reviewer focus:
- ActiveWorkflow tools/state still present under renamed or hidden paths。
- Workflow resource discovery/invocation surviving as hidden active path。
- Prompt/docs still advertising Workflow obligations or resident workflows。
- Accidentally implementing broad Skills support in this Ticket instead of leaving it to dependent follow-up。
- Ticket queue / Worker spawn / workdir management logic being moved into Workflow/Skill rather than remaining typed tools/features。
Next action:
- Record `queued -> inprogress`, create dedicated implementation worktree, and route to sibling Coder Pod。
---
<!-- event: state_changed author: orchestrator at: 2026-07-15T19:55:42Z from: queued to: inprogress reason: accepted_for_implementation field: state -->
## State changed
Dashboard queue authorization was inspected, no blockers were found, and an accepted plan was recorded. Moving queued Ticket to inprogress before creating worktree or spawning role Pods.
---
<!-- event: implementation_report author: orchestrator at: 2026-07-15T20:46:17Z -->
## Implementation report
Implementation progress report:
- Coder Pod `yoi-coder-00001KXKJGYGD-workflow-removal` completed implementation in `/home/hare/Projects/yoi/.worktree/00001KXKJGYGD-remove-workflow-tracking` on branch `work/00001KXKJGYGD-remove-workflow-tracking`
- Implementation commit: `d801b2698bb1b3d07e0d49af71b2e4777efd3f6e` (`refactor: remove workflow machinery`)。
- Orchestrator inspected worktree status, branch log, commit stats, `git diff --check 83ad7506..HEAD`, and grep checks for ActiveWorkflow / Workflow resource references. Worktree was clean and diff check passed。
Implementation summary:
- Removed model-visible `ActiveWorkflowList`, `ActiveWorkflowComplete`, and `ActiveWorkflowCancel` tools。
- Removed Worker active-workflow durable state, extension snapshotting, compaction/rehydration handling, and prompt re-injection paths。
- Removed Workflow registry/resource loading and `/workflow-slug` invocation behavior。
- Deleted `crates/workflow` crate and tracked `resources/workflows` resources。
- Removed `WorkflowInvoke` from protocol/TUI/web generated protocol surfaces and slash workflow completion behavior。
- Removed `.yoi/workflow` memory/workspace authority and workflow usage-source handling。
- Updated prompts/docs/config/role launch code to remove resident workflow and workflow invocation wording。
- Updated Ticket role launch/config handling to use typed role launch prompts without workflow slugs。
- Added bounded old-session handling: old persisted `kind: "workflow"` `SystemItem`s deserialize as `LegacyIgnored` and replay only a non-authority ignore diagnostic。
- Confirmed broad first-class Skills support was not implemented in this Ticket。
Files/resources touched include:
- `crates/worker/src/active_workflow.rs` removed。
- `crates/worker/src/workflow/mod.rs` removed。
- `crates/workflow/*` removed。
- `resources/workflows/*` removed。
- Protocol/TUI/web generated protocol surfaces updated。
- Prompt/docs/config references updated。
Coder-reported validation passed:
- `rg "ActiveWorkflow|active_workflow|Active workflow"`: no matches。
- `rg "resources/workflows|\\.yoi/workflow|workflow invocation|Resident workflows"`: no matches。
- `git diff --check`
- `cargo test -p session-store --lib --tests`
- `cargo test -p worker --lib --tests`
- `cargo test -p yoi --tests`
- `cargo check -p yoi`
- `yoi ticket doctor`
- `nix build .#yoi --no-link`
Next action:
- Route to external Reviewer Pod before merge/close decisions。
---
<!-- event: review author: reviewer at: 2026-07-15T20:53:02Z status: request_changes -->
## Review: request changes
External review result: request_changes
Evidence reviewed:
- Implementation worktree was clean。
- `rg "ActiveWorkflow|active_workflow|Active workflow"` and `rg "resources/workflows|\\.yoi/workflow|workflow invocation|Resident workflows"` were clean。
Blockers:
1. `WorkflowInvoke` web/generated surfaces remain active。
- `web/workspace/src/lib/generated/protocol.ts:82` still includes `{ kind: "workflow_invoke", slug: string }`
- `web/workspace/src/lib/workspace/console/composer-command.ts:191` still emits `workflow_invoke`
- `web/workspace/src/lib/workspace/console/model.ts:322` still handles it。
- `composer-command.test.ts:28` still expects it。
- This violates workflow resource/invocation removal acceptance。
2. Relevant tests fail after removal。
- `cargo test -p ticket --lib scaffold_config_includes_backend_and_all_fixed_roles -- --nocapture` fails because `crates/ticket/src/config.rs:1115-1120` still asserts role `workflow = ...`
- `cargo test -p tui --lib live_system_item_workflow_appends_system_message_block -- --nocapture` fails because `crates/tui/src/app.rs:3326-3340` still expects legacy workflow SystemItem rendering instead of ignored/drop/diagnostic behavior。
- This violates validation acceptance。
3. Stale docs/config wording remains。
- `docs/manifest.toml:283-293` still documents loading `skills.directories` “as Workflows,” conflicting with prompt/docs cleanup and Workflow authority removal。
Non-blocking note:
- Core Rust ActiveWorkflow/resource deletions appear largely in place, and broad new Skills support was not introduced in the inspected diff。
---
<!-- event: implementation_report author: orchestrator at: 2026-07-15T21:07:01Z -->
## Implementation report
Follow-up implementation progress report after request_changes:
- Coder Pod `yoi-coder-00001KXKJGYGD-workflow-removal` completed the focused review-blocker fix in `/home/hare/Projects/yoi/.worktree/00001KXKJGYGD-remove-workflow-tracking`
- Follow-up commit: `d30dca2d99812f457324b91fd3549f4f126b6d7c` (`fix: remove remaining workflow invoke surfaces`)。
- Orchestrator inspected worktree status, branch log, commit stats, `git diff --check 83ad7506..HEAD`, and grep checks. Worktree was clean and diff check passed。
Fix summary:
- Removed stale web `workflow_invoke` surfaces:
- `web/workspace/src/lib/generated/protocol.ts`
- `web/workspace/src/lib/workspace/console/composer-command.ts`
- `web/workspace/src/lib/workspace/console/model.ts`
- `web/workspace/src/lib/workspace/console/composer-command.test.ts`
- Updated generated TypeScript protocol to match Rust protocol without `WorkflowInvoke`
- Removed stale Ticket role scaffold test expectation for `workflow = ...`
- Replaced stale TUI workflow SystemItem rendering test with legacy workflow SystemItem ignore-path test。
- Removed docs/config wording that advertised loading Skills as Workflows。
- Stabilized Worker discovery restore-planning test by sharing the runtime-dir sandbox used by allocation tests。
Coder-reported validation passed:
- `rg "ActiveWorkflow|active_workflow|Active workflow"`: no matches。
- `rg "resources/workflows|\\.yoi/workflow|workflow invocation|Resident workflows|workflow_invoke"`: no matches。
- `git diff --check`
- `cargo test -p ticket --lib scaffold_config_includes_backend_and_all_fixed_roles -- --nocapture`
- `cargo test -p tui --lib live_legacy_workflow_system_item_is_ignored -- --nocapture`
- `cargo test -p session-store --lib --tests`
- `cargo test -p worker --lib --tests`
- `cargo test -p yoi --tests`
- `cd web/workspace && deno task check && deno task test`
- `cargo check -p yoi`
- `yoi ticket doctor`
- `nix build .#yoi --no-link`
Knowledge removal Ticket `00001KXKP2A71` remains queued and will be re-routed after this Workflow removal Ticket is merged/closed, per human preference to proceed after completion rather than combined branch。
---
<!-- event: review author: reviewer at: 2026-07-15T21:10:11Z status: request_changes -->
## Review: request changes
Focused re-review result: request_changes
Evidence:
- Prior Rust/TUI test blockers are fixed:
- `cargo test -p ticket --lib scaffold_config_includes_backend_and_all_fixed_roles` passes。
- `cargo test -p tui --lib live_legacy_workflow_system_item_is_ignored` passes。
- `ActiveWorkflow` / workflow resource greps over `crates web resources docs` are clean。
- `workflow_invoke` is removed from generated protocol/composer/model。
- Legacy workflow SystemItems are ignored in TUI。
- `docs/manifest.toml` no longer says Skills load “as Workflows”。
Remaining blocker:
- Slash workflow completion path remains active, violating acceptance item for removing workflow resource/invocation/completion surfaces。
- `web/workspace/src/lib/workspace/console/composer-completion.ts:1,4,38,82-83` still treats `/` as workflow completion。
- `web/workspace/src/lib/workspace/console/composer-completion.test.ts:35` still asserts `completionTokenAt("run /work")?.kind === "workflow"`
- `web/workspace/src/routes/w/[workspaceId]/+page.svelte:354-361` still posts `token.kind` to the completions endpoint, and result type still allows `"workflow"` at `+page.svelte:48-49`
- `crates/protocol/src/lib.rs:604-608,619` comments still advertise `/ -> Workflow` and workflow resolvers。
Blocker: remove the remaining slash workflow completion surface and stale protocol comments/types, without introducing hidden Workflow compatibility。
---
<!-- event: implementation_report author: orchestrator at: 2026-07-15T21:23:24Z -->
## Implementation report
Second follow-up implementation progress report after request_changes:
- Coder Pod `yoi-coder-00001KXKJGYGD-workflow-removal` completed the remaining slash workflow completion fix。
- Follow-up commit: `0b56052a447adeb12ee641f1136d121431fbd798` (`fix: remove workflow completion surface`)。
- Orchestrator inspected worktree status, branch log, commit stats, and `git diff --check 83ad7506..HEAD`; worktree was clean and diff check passed。
Fix summary:
- Removed `/` as a web console completion sigil。
- Web console completions now only recognize commands, file refs, and Knowledge refs。
- Removed `workflow` from web console completion result typing。
- Updated route-side completion response typing to exclude `workflow`
- Updated web completion tests so slash text remains plain text / no completion token。
- Removed stale Workflow completion/resolver wording from protocol comments。
- Did not add hidden Workflow compatibility or broad Skills replacement。
Coder-reported validation passed:
- `rg "ActiveWorkflow|active_workflow|Active workflow"`: no matches。
- Focused completion-surface grep for `workflow_invoke`, workflow completion kind, slash Workflow resolver wording, `resources/workflows`, `.yoi/workflow`, `workflow invocation`, `Resident workflows`: no matches。
- Focused web/protocol grep for `kind.*workflow`: no matches; remaining project-wide `kind: "workflow"` mentions are only legacy persisted `SystemItem` ignore tests for bounded compatibility。
- `git diff --check`
- `cd web/workspace && deno task check && deno task test`
- `cargo test -p yoi --tests`
- `cargo check -p yoi`
- `yoi ticket doctor`
- `nix build .#yoi --no-link`
Next action:
- Request focused re-review of the remaining workflow completion blocker and overall acceptance before merge/close decisions。
---
<!-- event: review author: reviewer at: 2026-07-15T21:25:42Z status: request_changes -->
## Review: request changes
Focused re-review result: request_changes
Evidence:
- Slash workflow completion blocker appears fixed。
- Focused greps for `workflow_invoke`, workflow completion/resolver wording, `kind.*workflow`, `resources/workflows`, `.yoi/workflow`, `workflow invocation`, and `Resident workflows` in protocol/web/resources/docs were clean。
- Web console completion no longer exposes workflow invocation。
- ActiveWorkflow/resource greps remain clean。
- Reviewer did not see broad new Skills support beyond existing manifest/config docs。
Remaining blocker:
- A stale TUI unit test still uses a legacy `"kind": "workflow"` SystemItem as an active task-store snapshot carrier and now fails because workflow SystemItems are ignored。
- Location: `crates/tui/src/app.rs:3568-3600`, including comment at `3587-3588`, JSON kind at `3591`
- Failing command: `cargo test -p tui --lib live_system_snapshot_replaces_task_store -- --nocapture`
- Failure at `crates/tui/src/app.rs:3599` (`left: 1`, `right: 4`)。
- This leaves relevant tests failing and contradicts bounded legacy workflow behavior / test cleanup expectation。
Required fix:
- Update the test fixture to use a non-legacy active SystemItem kind or otherwise align it with workflow ignore semantics。
---