使用 LLM 进行开发

可复制给 LLM、供应商中立的 Turboism 开发上下文。

向 LLM 寻求 Turboism 开发协助时,开发者仍对代码质量、验证过程和最终结果负责。请先遵守以下要求,再展开并复制完整的 Markdown 上下文。

开发者要求

遵守代码规范

  • 阅读并遵守当前仓库的贡献说明、模块约定和已有代码风格,不要让 LLM 自行假定规范。
  • 开发者必须亲自审查自己编写、修改或采纳的全部代码,确认它符合公共 SDK、权限、安全和版本边界。
  • 提交前运行项目要求的格式检查、静态检查、测试和构建;LLM 的说明不能代替检查结果。

完成实机测试

  • 对自己编写或采纳的代码完成实机测试。涉及插件、运行时或宿主集成的改动,必须在获准使用且与目标版本相符的实际环境中验证,不能只依赖模拟、编译成功或 LLM 的判断。
  • 使用专门的测试资料,核对加载、主要行为、失败处理和清理结果;不要用未经授权的用户资料进行测试。
  • 记录测试环境、相关版本、操作步骤和实际结果。未完成实机测试时,应明确说明未测试,不得声称改动已经可用。
# Turboism 开发上下文

## 角色与范围

你正在协助 Turboism 开发。Turboism 是一个基于 Java 的集成与插件框架。LLM 的输出只是草稿,不是已验证的代码、文档或已完成的贡献。在行动前,必须在当前源码、构建配置、测试和文档中核实未知事实。

产品文档在运行时必须独立于应用、学习和插件项目。不要把修改宿主安装作为开发或测试的捷径。编辑前,确定负责改动的模块、其公共契约和现有测试。

## 扩展边界

Turboism 有三条不同的扩展路径:

1. **Java 插件**是在进程内运行的插件,具有 Java SDK 生命周期、manifest、权限和服务。
2. **GraalJS 脚本**是受限脚本,由 Java 插件通过 `PluginContext.scripts()` 发现,并通过 `ScriptService.run` 显式运行;仅被发现不会执行脚本。
3. **MCP** 是第一方 Preview 插件,向可信的本地外部客户端提供经过认证的 loopback Streamable HTTP。

ACP 仅与 fx 在内部使用,不是第四种扩展路径。代码库以 Java 17 为目标。保持 Java、GraalJS、MCP 和 ACP 的边界。不要因为相邻的 capability 看似有用,就用一条路径替代另一条。

## 开发原则

- 先阅读相关代码,并检查已有 issue 和插件。避免重复开发;适用时复用既有行为。
- 如果通用框架能力或公共 SDK 能满足需要,应优先使用。插件应提供独立功能,而不是重复公共功能。
- 分别检查精确的版本范围、所需 capability 或 provider、已声明的 permission,以及当前 session 和生命周期状态。通过一项检查不表示其他检查已经通过。
- 保护用户资料。不要向 LLM 或在贡献中暴露私有材料、凭据、个人数据或其他机密内容。
- 保持供应商中立。除非有经过单独核实的项目决定,不要将设计或文档绑定到特定 LLM 供应商或模型。

## 贡献与验证

保持改动聚焦;行为变化时,添加或更新有针对性的测试。提交贡献前,开发者必须亲自阅读 diff、检查改动并检查和测试结果。不能只凭 LLM 声称工作正确、完成或已经测试。

先运行最小的相关测试。如果当前仓库提供以下命令,运行聚焦测试、`devCheck``checkCompletedCommit`

```bash
./gradlew focusedTest
./gradlew devCheck
./gradlew checkCompletedCommit
```

对于文档站点改动,还要运行文档 lint、类型检查和生产构建:

```bash
npm run lint
npm run typecheck
npm run build
```

如果命令、任务、模块或契约不存在,请先从当前源码或构建配置确认,再提出替代方案。

## 项目内容规范

这些规范适用于为本项目及其社区设计或提交的内容;不规范项目外的私人用途。

- 不要重复内容。
- 不要设计或提交政治宣传、色情内容,或不适合项目社区的敏感内容,包括仇恨、骚扰、违法或侵害隐私的材料。
- 保持英文、中文和日文文档语义一致。未经核实,不要宣称发布状态、下载、兼容性、安装步骤、API 签名或可用性。

## 工作指令

说明每项重要主张的源码依据,区分已验证的事实与假设;事实未知时,停止并检查源码。保持既有边界和约定,然后提交改动供人工审查。