30 lines
2.2 KiB
Markdown
30 lines
2.2 KiB
Markdown
# Review: Workflow crate extraction
|
|
|
|
## 対象
|
|
|
|
- Ticket: `tickets/workflow-crate-extraction.md`
|
|
- Branch: `workflow-crate-extraction`
|
|
- Reviewed commit: `7db4146 refactor: extract workflow crate`
|
|
|
|
## 確認内容
|
|
|
|
- `crates/workflow/` が workspace member として追加され、Workflow loader / registry / frontmatter schema / Skill ingestion / human-edit linter / workflow scope deny helper を持つ。
|
|
- `WorkflowRecord`, `WorkflowRegistry`, `WorkflowSource`, `WorkflowLoadError`, `ResidentWorkflowEntry`, `ShadowedSkill`, `WorkflowFrontmatter`, `SkillRecord`, `load_workflows`, `load_skills_from_dir` は `workflow` crate から export される。
|
|
- workflow crate は memory crate へは `WorkspaceLayout` のためだけに依存している。Workflow 用 slug / lint error / frontmatter split は workflow crate 側に持ち、memory crate の workflow-specific API へ依存していない。
|
|
- memory crate から `workflow.rs`, `skill.rs`, `schema/workflow.rs` と re-export が削除されている。
|
|
- memory linter から `lint_workflow` が削除され、human-edit workflow linter は `workflow::WorkflowLinter` に移っている。
|
|
- memory scope deny は memory / knowledge のみを表明し、workflow crate が `.insomnia/workflow/` の deny を表明する。Pod 起動時に両方を合成している。
|
|
- pod 側の Workflow registry / resident workflow / Skill ingestion / system prompt rendering / workflow resolver は `workflow_crate` を直接 import する形に更新されている。
|
|
- ticket 範囲外の Workflow schema 変更、resolver 機能変更、bundled default Workflow、reasoning / prune 変更は入っていない。
|
|
|
|
## 検証
|
|
|
|
- `cargo test -p workflow -p memory -p pod` passed
|
|
- `cargo fmt --check` failed due existing unrelated rustfmt diffs in `llm-worker`, `session-store`, and `tui`; this ticket's changed files were formatted directly with `rustfmt --edition 2024`.
|
|
|
|
## 判断
|
|
|
|
Approve.
|
|
|
|
Workflow domain code is now isolated in `crates/workflow/`, memory no longer re-exports or owns Workflow / Skill modules, and scope deny composition is explicit between memory and workflow. The remaining dependency on memory is limited to `WorkspaceLayout`, matching the ticket's allowed design point.
|