9.0 KiB
9.0 KiB
| name | description |
|---|---|
| 0007-context-anchoring | 上下文锚定,执行只读操作(搜索与读取),不产生代码 |
技能:上下文锚定 (Context Anchoring)
元数据 (Metadata)
- name: context-anchoring
- description: 上下文锚定,执行只读操作(搜索与读取),不产生代码
- version: 1.0.0
- author: SSOT Architect
- lastUpdated: 2026-01-15
触发与定位 (Triggers & Scope)
触发条件 (Triggers)
当以下情况发生时,AI 应当"觉醒"本技能:
- 提示词资产化完成: 完成提示词编写后,需要锚定上下文
- 代码生成前: 在生成代码前需要了解现有代码结构
- 新功能开发: 需要参考现有类似功能的实现
- 代码重构: 需要理解现有代码的架构和依赖
- 工作流阶段 4: 用户进入工作流的"上下文锚定"阶段
定位范围 (Scope)
- 适用模块: 所有 Datai 项目模块
- 影响操作: 只读操作(搜索、读取)
- 相关技能: skill-prompt-engineering, skill-execution-logging
核心指令集 (Instructions)
架构约束 (Architecture Constraints)
-
只读操作原则:
- 严禁在上下文锚定阶段产生代码
- 只允许使用搜索和读取工具
- 只允许分析现有代码,不允许修改
-
上下文锚定三步法:
- Stop & Look: 暂停生成,根据提示词策略查找文件
- Mount: 读取相关文件内容进入上下文
- Align: 分析现有代码风格,声明参考模式
-
必须分析的内容:
- 现有类似功能的实现
- 接口定义和规范
- 全局配置和常量
- 代码风格和命名规范
- 错误处理模式
- 日志记录模式
业务逻辑 SOP (Business Logic SOP)
步骤 1: Stop & Look - 停止并查找
## Stop & Look
### 暂停生成
在生成代码前,先停止生成,进行上下文分析。
### 查找策略
基于提示词中定义的搜索策略,查找以下文件:
1. 搜索关键词:[关键词1],文件类型:[文件类型]
2. 搜索关键词:[关键词2],文件类型:[文件类型]
3. 搜索关键词:[关键词3],文件类型:[文件类型]
### 搜索工具
- 使用 `SearchCodebase` 工具进行代码搜索
- 使用 `Grep` 工具进行文本搜索
- 使用 `Glob` 工具进行文件名搜索
步骤 2: Mount - 挂载上下文
## Mount - 挂载上下文
### 读取文件
根据搜索结果,读取以下文件:
1. [文件1](../../path/to/file1.java) - [说明]
2. [文件2](../../path/to/file2.java) - [说明]
3. [文件3](../../path/to/file3.java) - [说明]
### 读取工具
- 使用 `Read` 工具读取文件内容
- 使用 `LS` 工具查看目录结构
- 使用 `GetDiagnostics` 工具获取代码诊断信息
### 上下文分析
分析以下内容:
- [ ] 代码结构
- [ ] 命名规范
- [ ] 注释风格
- [ ] 错误处理
- [ ] 日志记录
- [ ] 测试覆盖
步骤 3: Align - 对齐代码风格
## Align - 对齐代码风格
### 代码风格分析
基于读取的文件,分析现有代码风格:
#### 命名规范
- 类名:[命名规范]
- 方法名:[命名规范]
- 变量名:[命名规范]
- 常量名:[命名规范]
#### 注释风格
- 类注释:[注释风格]
- 方法注释:[注释风格]
- 行内注释:[注释风格]
#### 错误处理
- 异常处理:[处理模式]
- 错误日志:[日志格式]
- 错误返回:[返回格式]
#### 日志记录
- 日志级别:[使用规范]
- 日志格式:[日志格式]
- 日志内容:[记录内容]
### 参考模式声明
我将参考以下模式进行开发:
1. **类结构**: 参考 [类名](../../path/to/Class.java)
2. **方法实现**: 参考 [方法名](../../path/to/Class.java#LXX-YY)
3. **错误处理**: 参考 [错误处理](../../path/to/Class.java#LXX-YY)
4. **日志记录**: 参考 [日志记录](../../path/to/Class.java#LXX-YY)
### 依赖分析
分析以下依赖:
- [ ] 第三方库依赖
- [ ] 内部模块依赖
- [ ] 工具类依赖
- [ ] 配置依赖
步骤 4: 创建上下文锚定记录
---
name: CONTEXT-YYYYMMDD-TaskName
description: 上下文锚定记录
---
# 上下文锚定: [任务名称]
## 元数据 (Metadata)
- **Date**: YYYY-MM-DD
- **Task**: [任务名称]
- **Related Prompt**: [PROMPT-XXX](../prompts/PROMPT-XXX.md)
- **Context Files**: [上下文文件数量]
## Stop & Look - 停止并查找
### 搜索策略
1. 搜索关键词:[关键词1],文件类型:[文件类型]
2. 搜索关键词:[关键词2],文件类型:[文件类型]
### 搜索结果
- [结果1](../../path/to/file1.java) - [说明]
- [结果2](../../path/to/file2.java) - [说明]
## Mount - 挂载上下文
### 读取的文件
| 文件 | 说明 | 关键发现 |
|------|------|----------|
| [文件1](../../path/to/file1.java) | [说明] | [关键发现] |
| [文件2](../../path/to/file2.java) | [说明] | [关键发现] |
### 代码风格分析
#### 命名规范
- 类名:[命名规范]
- 方法名:[命名规范]
- 变量名:[命名规范]
#### 注释风格
- 类注释:[注释风格]
- 方法注释:[注释风格]
#### 错误处理
- 异常处理:[处理模式]
- 错误日志:[日志格式]
#### 日志记录
- 日志级别:[使用规范]
- 日志格式:[日志格式]
## Align - 对齐代码风格
### 参考模式
1. **类结构**: 参考 [类名](../../path/to/Class.java)
2. **方法实现**: 参考 [方法名](../../path/to/Class.java#LXX-YY)
3. **错误处理**: 参考 [错误处理](../../path/to/Class.java#LXX-YY)
4. **日志记录**: 参考 [日志记录](../../path/to/Class.java#LXX-YY)
### 依赖分析
- [ ] 第三方库依赖:[依赖列表]
- [ ] 内部模块依赖:[依赖列表]
- [ ] 工具类依赖:[依赖列表]
- [ ] 配置依赖:[依赖列表]
## 相关文档 (Related Documents)
- [提示词文档](../prompts/PROMPT-XXX.md)
- [需求文档](../../requirements/REQ-XXX.md)
- [设计文档](../../design/DES-XXX.md)
工具调用 (Tool Usage)
-
搜索工具:
- 使用
SearchCodebase工具进行代码搜索 - 使用
Grep工具进行文本搜索 - 使用
Glob工具进行文件名搜索
- 使用
-
读取工具:
- 使用
Read工具读取文件内容 - 使用
LS工具查看目录结构
- 使用
-
诊断工具:
- 使用
GetDiagnostics工具获取代码诊断信息
- 使用
错误陷阱与验证 (Anti-Patterns & Checklist)
常见错误 (Anti-Patterns)
-
错误: 在上下文锚定阶段生成代码
- 后果: 违反工作流规范,可能导致代码质量低
- 修正: 严格遵守只读操作原则,不生成任何代码
-
错误: 只搜索不读取文件
- 后果: 无法深入理解代码细节
- 修正: 必须读取相关文件的完整内容
-
错误: 不分析代码风格
- 后果: 生成的代码与现有代码风格不一致
- 修正: 必须详细分析命名、注释、错误处理、日志记录等风格
-
错误: 不声明参考模式
- 后果: 无法追踪代码来源和参考依据
- 修正: 必须明确声明参考的文件和代码位置
-
错误: 忽略依赖分析
- 后果: 可能引入不必要的依赖或遗漏必要依赖
- 修正: 必须分析第三方库、内部模块、工具类和配置依赖
验收清单 (Acceptance Checklist)
- 已停止生成代码
- 已执行搜索操作
- 已读取相关文件
- 已分析代码风格
- 已声明参考模式
- 已分析依赖关系
- 已创建上下文锚定记录
- 未生成任何代码
- 未修改任何文件
Correct vs Incorrect 对比
Correct 示例
## Stop & Look - 停止并查找
### 搜索策略
1. 搜索关键词:UserService,文件类型:java
2. 搜索关键词:saveUser,文件类型:java
### 搜索结果
- UserServiceImpl.java - 用户服务实现
- UserController.java - 用户控制器
## Mount - 挂载上下文
### 读取的文件
| 文件 | 说明 | 关键发现 |
|------|------|----------|
| UserServiceImpl.java | 用户服务实现 | 使用@Transactional注解 |
| UserController.java | 用户控制器 | 使用@RestController注解 |
## Align - 对齐代码风格
### 参考模式
1. **类结构**: 参考 UserServiceImpl
2. **方法实现**: 参考 saveUser 方法
3. **错误处理**: 参考 try-catch 模式
4. **日志记录**: 参考 log.info() 模式
Incorrect 示例
## 上下文分析
搜索了 UserService 相关文件,发现了一些代码。
现在开始编写代码...
问题: 没有详细的搜索策略,没有读取文件内容,没有分析代码风格,直接开始编写代码。