Files
Inbox/Prompt模板/06_Agent创造与生成模板库.md

21 KiB
Raw Permalink Blame History

F. 类别六“从0到1”创造与生成 (Creation & Scaffolding)

模板索引 (Index)

模板ID 核心用途 使用场景 / 关键词
F-1: 模块与服务创建
F1 自然语言项目初始化 项目脚手架, 目录结构, CMake初始化
F2 基于设计文档模块脚手架 TDD解析, 接口/实现骨架, Stub生成
F3 MVP/服务原型生成 gRPC/REST原型, 服务器+客户端, 构建脚本
F-2: 任务与功能实现
F4 跨文件特性实现 接口+实现+测试联动, 纵向切片
F5 新模块测试套件生成 gtest/gmock, Fixture, Mock依赖
F-3: 基础设施与环境创建
F6 基础设施即代码(IaC)生成 Dockerfile, compose, CI配置
F7 适配层/绑定代码生成 pybind11, 头文件解析, API绑定

子类别 F-1: 模块与服务创建 (Module & Service Scaffolding)


模板名称: F1: 基于自然语言的项目工作区初始化 适用场景: D4 (Agent) 模式。项目启动的“第0步”。将一个高层级的自然语言想法“我要做一个XX项目”直接转化为一个标准化的、包含目录结构和基础配置文件的工作区。 内嵌原则: [原则二:任务解构] (D4)、[原则八:决定论][原则五:上下文即燃料]

[Prompt 模板]

角色你是一个项目脚手架生成机器人Project Scaffolding Bot。

任务:请根据我的“项目描述”,在 @workspace 中初始化一个全新的项目结构。

== 项目描述 ==
1.  项目名称 (Project Name) [例如RadarSignalSimulator]
2.  核心语言 (Language) [例如C++]
3.  构建系统 (Build System) [例如CMake (现代C++17标准)]
4.  项目类型 (Type) [例如:可执行程序 (Executable)]
5.  (可选) 核心依赖: [例如Boost, gtest (用于测试)]

== 执行计划 (Execution Plan) ==
1.  创建根目录: 在 @workspace 中创建 [项目名称] 根目录。
2.  创建目录结构 (Directory Structure)
    - 在 [项目名称]/ 下创建 src/ (用于源代码)
    - 在 [项目名称]/ 下创建 include/ (用于头文件)
    - 在 [项目名称]/ 下创建 tests/ (用于测试)
    - 在 [项目名称]/ 下创建 docs/ (用于文档)
    - 在 [项目名称]/ 下创建 scripts/ (用于辅助脚本)
3.  生成 .gitignore
    - 在 [项目名称]/ 根目录创建 .gitignore 文件。
    - 必须填入适用于 [语言] 和 [构建系统] 的标准模板内容 (例如:忽略 build/, *.o, *.exe, *.out)。
4.  生成 README.md
    - 在 [项目名称]/ 根目录创建 README.md。
    - 必须包含一级标题 #[项目名称] 和“快速上手”章节的占位符。
5.  生成构建系统骨架 (Build System Scaffolding)
    - 在 [项目名称]/ 根目录创建 CMakeLists.txt。
    - 必须包含cmake_minimum_required, project(...), set(CMAKE_CXX_STANDARD 17), add_executable(...), 以及 find_package (针对 [核心依赖]) 的占位符。
    - (可选) 在 [项目名称]/tests/ 下创建 CMakeLists.txt (用于 gtest)。
6.  生成“Hello World”骨架
    - 创建 [项目名称]/src/main.cpp。
    - 必须包含一个最小可运行的 main 函数 (例如:打印 "Hello, [项目名称]!")。

== 最终约束 ==
- 严格按照上述计划创建目录和文件,严禁添加任何未提及的文件。
- 生成的文件内容必须是健壮的、遵循最佳实践的“骨架”代码。

填充指南:

  • [项目描述]这是核心燃料。用户必须提供清晰的项目名称、语言和构建系统Agent才能生成匹配的脚手架。
  • 使用指南: 这是“从0到0.1”的模板,它负责建立结构,后续的 F2F3 模板则负责在结构中填充内容。


模板名称: F2: 基于设计文档的模块脚手架生成 适用场景: D4 (Agent) 模式。在项目结构F1已存在后根据详细的TDD技术设计文档自动生成一个新模块所需的全部C++文件骨架。 内嵌原则: [原则二:任务解构] (D4)、[原则五:上下文即燃料] (设计文档是核心)、[原则七:结构化输出]

[Prompt 模板]

角色你是一个“技术设计文档到代码”TDD-to-Code的生成引擎。

任务:请严格按照我提供的 [设计文档] (例如 @file:docs/Logger.md),在 @workspace 中生成对应C++模块的完整文件脚手架。

== 执行上下文 ==
1.  工作区: @workspace
2.  设计文档 (必须在调用时提供) [例如:@file:docs/Logger.md]
3.  目标根目录 (Target Root) [例如:@dir:src/modules/]

== 执行计划 (Execution Plan) ==
1.  读取 (Read) 打开并深度解析 [设计文档]。
2.  提取实体 (Extract) 从文档中提取 [模块名] (例如Logger), [接口/基类] (例如ILogger), 以及 [实现类] (例如FileLogger, ConsoleLogger, LoggerManager)。
3.  创建目录: 在 [目标根目录] 下创建 [模块名] 目录 (例如src/modules/Logger/)。
4.  循环生成文件 (Loop & Generate)
    - (a) 对于 [接口/基类] (例如 ILogger)
        - 创建 [模块名]/[接口名].h 文件。
        - 必须包含:头文件保护 (#pragma once 或 #ifndef)。
        - 必须包含:[设计文档] 中定义的所有纯虚函数 (例如 virtual void log(...) = 0;)。
        - 必须包含Doxygen 注释骨架 (@brief, @param, @return)。
    - (b) 对于 [实现类] (例如 FileLogger)
        - 创建 [模块名]/[类名].h 文件。
        - 必须包含:头文件保护。
        - 必须 public 继承自 [接口名] (例如 class FileLogger : public ILogger)。
        - 必须声明 [设计文档] 中定义的所有成员函数(添加 override和私有成员变量。
        - 必须添加 Doxygen 注释骨架。
    - (c) 对于 [实现类] (例如 FileLogger)
        - 创建 [模块名]/[类名].cpp 文件。
        - 必须 include 对应的 .h 文件。
        - 必须为所有成员函数生成“桩函数”Stub实现。
        - 桩实现规范: 必须包含 // TODO: Implement [函数名] 注释,并返回一个默认值(如 void, true, nullptr。

== 最终约束 ==
- 生成的文件必须严格匹配 [设计文档] 中定义的类名、继承关系和函数签名。
- 所有生成的 .h 和 .cpp 文件都必须包含 Doxygen 注释骨架。

填充指南:

  • 使用指南: 用户必须在调用时提供 @workspace 和设计文档的路径 (@file:...)。
  • [设计文档]这份文档的质量是否清晰、无歧义直接决定了Agent生成脚手架的质量。


模板名称: F3: [Agent模板] 最小可行产品(MVP)/服务原型生成 适用场景: D4 (Agent) 模式。用于快速启动一个特定技术栈如gRPC, REST API的“最小可行”MVP服务生成所有必需的文件API定义、服务器、客户端、构建脚本内嵌原则: [原则二:任务解构] (D4)、[原则七:结构化输出][原则五:上下文即燃料]

[Prompt 模板]

角色:你是一名精通 [技术栈, 例如gRPC 和 C++ CMake] 的全栈原型工程师。

任务:请在 @workspace 中为我生成一个 [技术栈] 的最小可行产品MVP服务原型。

== 原型需求 ==
1.  服务名称 (Service Name) [例如RadarConfigService]
2.  技术栈 (Tech Stack) [例如gRPC (C++)]
3.  核心功能 (Core RPC) [例如:定义一个 SetConfig RPC]
4.  RPC 请求 (Request) [例如ConfigData (包含 int32 param1, float param2)]
5.  RPC 响应 (Response) [例如ConfigResponse (包含 bool success)]

== 执行计划 (Execution Plan) ==
请在 @workspace 根目录下创建并填充以下文件:

1.  文件 1API 定义 (例如 [服务名称].proto)
    - 必须包含syntax = "proto3";, package ...;
    - 必须定义service [服务名称]。
    - 必须包含rpc [核心功能]([RPC 请求]) returns ([RPC 响应]);
    - 必须定义message [RPC 请求] 和 message [RPC 响应] 的结构。
2.  文件 2服务器实现 (例如 server.cpp)
    - 必须包含gRPC 和 .proto 生成的 .h 文件。
    - 必须实现:[服务名称]ServiceImpl 类,继承自 [服务名称]::Service。
    - 必须实现:[核心功能] 方法的桩函数(返回一个默认的 [RPC 响应])。
    - 必须包含main() 函数,用于启动 gRPC 服务器并监听 [端口, 例如0.0.0.0:50051]。
3.  文件 3客户端示例 (例如 client.cpp)
    - 必须包含gRPC 和 .proto 生成的 .h 文件。
    - 必须包含main() 函数。
    - 必须展示:如何创建 Channel、创建 Stub、组装 [RPC 请求]、调用 [核心功能] RPC并打印 [RPC 响应]。
4.  文件 4构建脚本 (例如 CMakeLists.txt)
    - 必须包含find_package(gRPC REQUIRED), find_package(Protobuf REQUIRED)。
    - 必须包含:用于编译 .proto 文件的 protobuf_generate_- 规则。
    - 必须包含add_executable(server server.cpp ...) 和 add_executable(client client.cpp ...)。
    - 必须包含target_link_libraries (链接 gRPC, Protobuf 等)。

== 最终约束 ==
- 生成的所有文件必须是相互关联、可编译、可运行的(假设依赖已安装)。
- 所有桩函数必须包含 // TODO: Add business logic here 注释。

填充指南:

  • [原型需求]这是核心燃料。用户必须清晰定义服务名称、技术栈和至少一个核心功能如RPC的输入输出。
  • [技术栈]:此模板可适配多种技术,如 REST API (FastAPI, Python)gRPC (Go),只需修改提示中的技术栈名称和 [执行计划] 中的文件名及库即可。

子类别 F-2: 任务与功能实现 (Feature & Task Implementation)


模板名称: F4: 跨文件特性实现 适用场景: D4 (Agent) 模式。实现一个“纵向特性”Vertical Feature Slice该特性需要同时修改多个现有的、不同角色的文件(如接口、实现、测试)。 内嵌原则: [原则二:任务解构] (D4核心)、[原则八:决定论]

[Prompt 模板]

角色你是一个遵循指令的自动化C++特性实现Agent。

任务:请严格按照以下“特性实现执行计划”,在 @workspace 中修改现有文件以实现新功能。

== 特性名称 ==
- [例如:添加“重置”功能到所有处理器]

== 执行计划 (Execution Plan) ==
你必须严格按照以下顺序和规范,修改指定的文件:

Step 1修改 [接口文件]
- 文件: [例如:@file:src/interfaces/IProcessor.h]
- 动作: 在 IProcessor 接口中,添加一个新的纯虚函数:
    [粘贴新接口签名例如virtual void reset() = 0;]

Step 2修改 [实现类A]
- 文件: [例如:@file:src/cpu/CpuProcessor.h]
- 动作: 在 CpuProcessor 类的 public 部分添加方法声明:
    [粘贴派生类声明例如void reset() override;]
- 文件: [例如:@file:src/cpu/CpuProcessor.cpp]
- 动作: 在文件末尾添加桩函数实现:
    [粘贴桩函数实现,例如:
    void CpuProcessor::reset() {
        // TODO: Implement reset logic for CPU
        m_internal_state = 0; // 示例逻辑
    }
    ]

Step 3修改 [实现类B]
- 文件: [例如:@file:src/gpu/GpuProcessor.h]
- 动作: 在 GpuProcessor 类的 public 部分添加方法声明:
    [粘贴派生类声明例如void reset() override;]
- 文件: [例如:@file:src/gpu/GpuProcessor.cpp]
- 动作: 在文件末尾添加桩函数实现:
    [粘贴桩函数实现,例如:
    void GpuProcessor::reset() {
        // TODO: Implement reset logic for GPU
        // (e.g., reset CUDA buffers)
    }
    ]

Step 4修改 [测试文件]
- 文件: [例如:@file:tests/ProcessorTest.cpp]
- 动作: 添加一个新的gtest测试用例骨架
    [粘贴测试用例骨架,例如:
    TEST(ProcessorTest, ResetFunction) {
        // TODO: Write test for reset()
        // CpuProcessor cpu;
        // cpu.reset();
        // EXPECT_EQ(cpu.getState(), 0);
    }
    ]

== 最终约束 ==
- 原子性: 必须按顺序完成所有步骤。
- 精确性: 严禁修改任何 [执行计划] 中未明确提及的文件或代码行。

填充指南:

  • 使用指南: 这是D4 Agent的“高级”用法。工程师用户扮演“架构师”负责将特性“解构”为[执行计划]。AgentAI扮演“执行者”。
  • [执行计划]这是核心燃料。工程师提供的步骤越详细、越精确包括粘贴目标代码Agent的执行成功率越高。


模板名称: F5: 新模块的“测试套件”生成 适用场景: D4 (Agent) 模式。在模块(如 NewModule.h)的核心功能已定义后,用于自动创建配套的、包含 gtestgmock 的完整测试文件(_test.cpp)。 内嵌原则: [原则二:任务解构] (D4)、[原则七:结构化输出][原则五:上下文即燃料]

[Prompt 模板]

角色你是一名精通C++ gtest 和 gmock 框架的自动化QA工程师。

任务:请为我提供的 [目标头文件] 自动生成一个完整的gtest测试套件文件。

== 执行上下文 ==
1.  工作区: @workspace
2.  目标头文件 (Source of Truth) [例如:@file:src/modules/NewModule.h]
3.  测试文件输出路径: [例如:@file:tests/NewModule_test.cpp]

== 执行计划 (Execution Plan) ==
1.  读取 (Read) 打开并深度解析 [目标头文件]。
2.  分析 (Analyze)
    - (a) 识别目标类名(例如 NewModule。
    - (b) 识别所有 public 方法(例如 methodA, methodB。
    - (c) 识别构造函数中的依赖(例如 IDependencyA- dep这些是需要Mock的目标。
3.  创建测试文件 (Create) 创建 [测试文件输出路径]。
4.  生成文件内容 (Generate)
    - (a) Includes 必须包含 gtest/gtest.h, gmock/gmock.h, 以及 [目标头文件]。
    - (b) Mock 类生成:
        - 针对 [分析] (c) 中识别的每一个依赖(例如 IDependencyA
        - 生成 Mock[依赖名] 类 (例如 class MockDependencyA : public IDependencyA { ... })。
        - 必须使用 MOCK_METHOD 宏为所有接口方法生成Mock。
    - (c) Test Fixture 生成:
        - 生成 class [模块名]Test : public ::testing::Test { ... }。
        - 必须在 SetUp() 方法中初始化Mock对象和被测类 [模块名]。
    - (d) 测试用例 (Test Cases) 生成:
        - 针对 [分析] (b) 中识别的每一个 public 方法:
        - 至少生成一个 TEST_F([模块名]Test, [方法名]_HappyPath) 骨架。
        - 至少生成一个 TEST_F([模块名]Test, [方法名]_EdgeCase) 骨架。
        - 骨架要求: 必须包含 // Arrange, // Act, // Assert 三段式注释,并添加 // TODO: ... 占位符。

== 最终约束 ==
- 必须自动识别依赖并生成 gmock 类。
- 必须为所有 public 方法生成测试用例骨架。

填充指南:

  • 使用指南: 用户调用时必须提供 @workspace@file:[目标头文件] 的路径。
  • [目标头文件]Agent将解析此文件以确定要测试什么和要Mock什么。

子类别 F-3: 基础设施与环境创建 (Infrastructure & Environment)


模板名称: F6: [Agent模板] 基础设施即代码(IaC)生成 (原F5) 适用场景: D4 (Agent) 模式。为现有的C++ CMake项目自动生成DevOps/IaC基础设施即代码所需的环境配置文件Dockerfile, docker-compose.yml, .gitlab-ci.yml内嵌原则: [原则二:任务解构] (D4)、[原则七:结构化输出][原则五:上下文即燃料]

[Prompt 模板]

角色你是一名精通DevOps、容器化Docker和CI/CDGitLab CI的SRE工程师。

任务请为我当前的C++ CMake项目在 @workspace 中生成一套标准化的IaC基础设施即代码配置文件。

== 项目上下文 ==
1.  项目类型: [例如C++ CMake 项目]
2.  构建命令 (Build) [例如cmake .. && make -j]
3.  测试命令 (Test) [例如ctest] 或 [./build/run_tests]
4.  最终产物 (Artifact) [例如:./build/my_app] (可执行文件)

== 执行计划 (Execution Plan) ==
请在 @workspace 根目录创建并填充以下文件:

1.  文件 1Dockerfile (用于生产/部署)
    - 规范: 必须使用“多阶段构建”Multi-Stage Build。
    - (a) builder 阶段:
        - FROM [基础镜像, 例如ubuntu:22.04]
        - WORKDIR /build
        - COPY . .
        - RUN [安装依赖, 例如apt-get install cmake build-essential ...]
        - RUN [构建命令]
    - (b) final 阶段:
        - FROM [轻量级镜像, 例如ubuntu:22.04-slim]
        - COPY --from=builder /build/[最终产物] /app/
        - ENTRYPOINT ["/app/[最终产物]"]
2.  文件 2docker-compose.yml (用于本地开发/测试)
    - 规范: 定义一个服务(例如 dev。
    - 必须包含 build: . (使用 Dockerfile)。
    - 必须包含 volumes: [.:/app] (挂载本地代码以实现热重载/开发)。
    - (可选) 覆盖 command: 以进行调试。
3.  文件 3.gitlab-ci.yml (用于CI/CD)
    - 规范: 必须定义 stages: [build, test]。
    - (a) build_job
        - stage: build
        - script: [安装依赖] 和 [构建命令]
        - artifacts: paths: [[最终产物]] (保存构建产物)
    - (b) test_job
        - stage: test
        - dependencies: [build_job] (依赖构建)
        - script: [测试命令]

== 最终约束 ==
- 生成的配置文件必须语法正确,并遵循 [项目上下文] 中提供的命令和路径。

填充指南:

  • [项目上下文]这是核心燃料。用户必须提供构建、测试命令和最终产物的路径AI才能生成正确的IaC脚本。


模板名称: F7: 适配层/绑定代码生成 适用场景: D4 (Agent) 模式。连接不同语言或系统。自动解析一个C++头文件并生成“适配层”或“绑定”Binding代码使其能被另一种语言如Python调用。 内嵌原则: [原则二:任务解构] (D4)、[原则五:上下文即燃料] (头文件)、[原则七:结构化输出]

[Prompt 模板]

角色:你是一名精通 [绑定技术, 例如pybind11] 和C++ API绑定的专家。

任务:请为我提供的 [目标头文件],自动生成 [绑定技术] 的C++绑定wrapper代码。

== 执行上下文 ==
1.  工作区: @workspace
2.  目标头文件 (Source of Truth) [例如:@file:src/libProcessor.h]
3.  绑定技术 (Tech) [例如pybind11]
4.  Python 模块名 (Module Name) [例如radar_processor_py]
5.  输出文件 (Output) [例如:@file:bindings/py_bindings.cpp]

== 执行计划 (Execution Plan) ==
1.  读取 (Read) 打开并深度解析 [目标头文件]。
2.  分析 (Analyze)
    - (a) 识别所有 public class [ClassName]。
    - (b) 识别 [ClassName] 的所有 public 构造函数。
    - (c) 识别 [ClassName] 的所有 public 成员函数(包括重载)。
    - (d) (可选) 识别 public enum。
3.  创建绑定文件 (Create) 创建 [输出文件]。
4.  生成文件内容 (Generate)
    - (a) Includes 必须包含 [绑定技术].h (例如 pybind11/pybind11.h) 和 [目标头文件]。
    - (b) 模块定义宏: 必须生成 [宏, 例如PYBIND11_MODULE([Python 模块名], m)] { ... }。
    - (c) 类绑定 (Class Binding)
        - 在宏内部,为 [分析] (a) 中识别的 [ClassName] 生成 py::class_... 定义。
        - (d) 构造函数绑定: 为 [分析] (b) 中识别的每个构造函数生成 .def(py::init<...>());。
        - (e) 方法绑定: 为 [分析] (c) 中识别的每个成员函数生成 .def("[python_name]", &[ClassName]::[method_name])。
        - (f) (可选) 重载处理: 必须使用 py::overload_cast 来处理C++中的函数重载。
        - (g) (可选) Enum 绑定: 为 [分析] (d) 中的 enum 生成 py::enum_ 绑定。

== 最终约束 ==
- 必须自动解析C++头文件并绑定所有 public 接口。
- 必须正确处理C++函数重载(这是最关键的风险点)。
- 生成的 .cpp 文件必须是语法正确的 [绑定技术] 代码。

填充指南:

  • 使用指南: 用户调用时必须提供 @workspace@file:[目标头文件] 以及 [绑定技术]
  • [绑定技术]:例如 pybind11, cffi (生成C头文件), JNI (生成Java JNI样板代码)。AI的能力高度依赖于其对特定绑定技术的训练深度。