Skip to content

[FEATURE]: Improve /init, /review, /new, /terminal commands for guided AGENTS.md setup #25655

@LifetimeVip

Description

@LifetimeVip

Feature Verification

功能需求描述

本 Issue 聚焦于引导式 AGENTS.md 设置流程,与 #19341(修复 /init 截断 bug)互为补充。

#19341 的区别:


1. 改进 /init 命令:引导式 AGENTS.md 设置

目标: 生成的 AGENTS.md 遵循"每一行都应回答:如果没有帮助,智能体会不会遗漏这些信息?"原则。

建议的交互流程:

用户执行 /init
↓
OpenCode 分析项目结构(package.json、tsconfig、CI 配置等)
↓
弹出交互式提示,按顺序确认:
  1. "检测到构建命令:`bun run build`,是否正确?"
  2. "检测到测试命令:`bun test`,是否正确?"
  3. "是否有特殊的 lint/格式化命令?"
  4. "项目有哪些非常规的开发者命令?"
  5. "多包边界:是否包含多个子包?(列出检测到的包)"
  6. "框架特性:是否使用特殊框架/工具链?(如 Tauri、SolidJS)"
  7. "测试注意事项:是否需要特殊环境/前置条件?"
↓
生成 AGENTS.md,包含:
  - 准确的开发者命令(尤其是非常规命令)
  - 如何运行单个测试或聚焦验证
  - 多包仓库边界和入口点
  - 框架特性和项目特定风格规范
  - 引用重要的现有说明文档(CLAUDE.md、.cursorrules 等)
↓
预览并允许用户编辑/调整

AGENTS.md 应包含的高价值信息(示例):

## 开发者命令
- `bun dev` - 启动开发服务器
- `bun run build` - 构建生产版本
- `bun test packages/opencode/src/cli/cmd/tui/` - 运行单个包的测试
- `bun run lint && bun run typecheck` - 提交前必做

## 架构要点
- `packages/opencode` - 核心业务逻辑和服务器
- `packages/app` - 共享 Web UI 组件(SolidJS)
- `packages/desktop` - Tauri 原生桌面应用
- `packages/plugin` - `@opencode-ai/plugin` 源码

## 测试
- 运行所有测试:`bun test`
- 单个测试文件:`bun test path/to/test.ts`
- 需要预启动的服务:先运行 `bun dev` 再测试

## 框架特性
- TUI 使用 SolidJS + opentui
- 桌面应用使用 Tauri(需 Rust 工具链)
- 生成代码:运行 `./script/generate.ts` 重新生成 SDK

2. 新增 /review 斜杠命令

当前状态: /review 不是斜杠命令,只能通过命令面板访问。

建议改进:

  • 添加 /review 作为正式的斜杠命令
  • 语法:/review [commit|branch|pr]
  • 未提供参数时,默认显示未提交的更改(最常用场景)
  • 示例:
    • /review → 显示未提交的更改
    • /review HEAD~3 → 显示最近 3 次提交的更改
    • /review main..feature → 显示分支差异
    • /review pr 123 → 显示 PR improvement: initial setup #123 的更改

3. /new/terminal 命令

这两个命令已存在,建议确认是否需要改进:

  • /new - 新建会话(已存在,可能需要别名或说明)
  • /terminal - 切换终端显示(已存在,可能需要说明终端用途)

补充信息

为什么需要引导式设置?

  • 当前 /init 生成的内容可能过于冗长或包含低价值信息
  • 不同项目需要不同的上下文信息(前端 vs 后端 vs 全栈)
  • 智能体不应该遗漏关键信息,但也不应该被无用信息淹没

实施建议:

  • 修改 /init 命令实现,添加交互式提示逻辑
  • packages/opencode/src/cli/cmd/tui/ 中添加引导式流程
  • 参考 AGENTS.md 编写规则(高信噪比、可验证、仓库特定)

此改进将帮助未来的 OpenCode 会话快速上手,避免重复犯错。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions