补充DirectProject Skill提及输入规范
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 1m47s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m5s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m11s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m13s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m24s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m54s
Project CI / Frontend tests (pull_request) Failing after 4m32s
Project CI / Native shell tests (pull_request) Successful in 8m0s

更新聊天输入主规范并增加 Skill 提及边界

新增 Skill 提及里程碑与小切片实施计划
This commit is contained in:
2026-09-15 16:46:40 +08:00
parent 17716347e2
commit 23819d699c
3 changed files with 74 additions and 2 deletions
@@ -0,0 +1,27 @@
# 【实施计划】DirectProject Skill 提及输入提示
| 字段 | 值 |
| --- | --- |
| Milestone | `docs/project-memory/plans/【里程碑】DirectProject Skill提及输入提示-2026-09-15.md` |
| Status | in-progress |
| Owner | Codex |
## 代码边界
- 前端:`features/project-workspace/ResourceReferenceInput.tsx`、`ResourceReferenceNode.tsx`、`resourceReferences.ts`、生成绑定及聊天入口透传。
- Rust:`agent/direct_codex_user_item/model.rs`、`validation.rs`、`wire.rs`、`codex_app_server/mod.rs` 与对应测试。
- 文档:父规范与本里程碑/实施计划。
## 小切片顺序
1. 先扩展前端 Skill catalog/节点/草稿 content,保持素材行为不变并补前端测试。
2. 扩展 canonical Rust part 与 ts-rs 绑定,补序列化和失败校验测试。
3. 接通 Codex wire `type: skill` 转换和受控路径解析,补历史/重放测试。
4. 完成入口透传、定向验证和文档证据;每个切片单独中文提交。
## 验证与回滚
- `npm --prefix apps/ai-game-creator-shell run typecheck`
- 相关 Vitest 与 `cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml direct_codex`
- `npm run check:encoding`、`npm run check:doc-index`、`git diff --check`
- 每个切片只改计划列出的文件;若 Codex wire 协议或 Skill catalog 来源不确定,停在该切片并先更新规范。
@@ -0,0 +1,43 @@
# 【里程碑】DirectProject Skill 提及输入提示
| 字段 | 值 |
| --- | --- |
| Version | 1.0 |
| Status | proposed |
| Date | 2026-09-15 |
| Parent Spec | `docs/【功能说明】AGC聊天素材引用-2026-09-08.md` |
## 目标
在现有 Lexical `ResourceReferenceInput` 中增加 Codex 风格 `$skill-name` 提及。用户选择 Skill 后,编辑器保留与文本相对顺序一致的原子节点;DirectProject canonical user item 保存稳定 Skill 名称,Rust 只允许当前已启用且 app-server 已发现的 Skill,并在 `turn/start` 转换为 Codex 原生 `type: "skill"` 输入项。
## 范围
- Skill 候选数据从当前 DirectProject 的已启用 Skill catalog 派生。
- `$` typeahead 菜单、键盘选择、鼠标选择、Esc/Enter 交互与现有 `@` 菜单一致。
- Skill inline 节点和 `content[]` 顺序恢复。
- canonical `agc_skill_reference` part 的 ts-rs 类型、Rust 校验、历史写入与 Codex wire 转换。
- 现有素材、运行区域、assistant、附件和工具 activity 行为保持不变。
## 不在范围内
- Skill 导入、启用、禁用、重命名和 app-server `skills/list` 生命周期改造。
- 普通自然语言自动分类 Skill;只支持显式 `$skill-name` 选择。
- Skill 正文预加载、Skill 内容编辑或新的权限/工具能力。
- SpacetimeDB、HTTP API 和 assistant item 协议变更。
## 验收标准
- [ ] 输入 `$` 可显示并过滤可用 Skill,候选项显示名称和描述。
- [ ] 选择 Skill 后插入原子 `$name` chip,文本与素材/运行区域的相对顺序保持不变。
- [ ] canonical user item 只保存 Skill 稳定名称,不保存正文、凭据或宿主私密路径。
- [ ] Rust 拒绝未知、禁用、未发现或名称非法的 Skill;失败时不写历史、不启动回合。
- [ ] 合法 Skill 在 Codex wire input 中生成 `type: "skill"`、`name`、受控 `path`,顺序与 canonical content 一致。
- [ ] 无 Skill 的旧消息、素材引用和标准 `response_item` 读取行为不变。
## 证据要求
- 前端:Lexical 草稿顺序、候选过滤、chip 原子性与 `$`/`@` 共存测试。
- Rust:模型序列化、Skill catalog 校验、wire 转换、失败关闭和历史重放测试。
- 运行时:DirectProject app-server smoke(环境可用时)。
- 门禁:相关 Vitest、AGC Rust 定向测试、`npm run check:encoding`、`npm run check:doc-index`、`git diff --check`。