建议:run 模式增加构建过程的可追溯性
背景:意图驱动编程的实践需求
我在"意图驱动编程"的实践中使用 iceCoder:
- 我定义意图(如"实现 Studio v0.0.6 教学管理做实")
- iceCoder 自主执行构建
- 我评审最终产出
但中间的构建过程是黑箱——我不知道系统是怎么理解我的意图、做了什么决策、为什么选择某个方案。
这不是进度条的问题。我需要理解系统是怎么被构建出来的。
现状:内部已有但未暴露的信息
阅读源码后发现,iceCoder 内部实际上记录了丰富的构建信息,但几乎全部没有暴露给用户:
1. Intent 理解层
src/types/runtime-snapshot.ts 中定义了:
type TaskIntent = 'question' | 'inspect' | 'edit' | 'debug' | 'test' | 'refactor' | 'docs';
type TaskPhase = 'intent' | 'context' | 'editing' | 'verification' | 'final';
系统把我的自然语言任务归类到了一个 TaskIntent,但我不知道它归类成了什么。如果它把我的"实现教学管理"归类为 edit 而我希望是 refactor,中间的偏差我无从知晓。
2. 上下文搜集层
TaskGraphBuilder(src/harness/task-graph-builder.ts)会做 repo shape discovery、复杂度评估、文件扫描。它读了哪些文件来做决策?这些是我关心的。
3. 任务图执行层
TaskGraph(src/harness/task-graph.ts)有完整的节点状态跟踪:
type TaskNodeStatus = 'pending' | 'running' | 'done' | 'failed' | 'skipped';
每个节点有 title、type(inspect/read/edit/verify)、evidence(关联路径)。这套数据可以渲染出完整的构建过程,但目前只在内存中,没有输出。
4. 对齐检测层
GoalDriftConfig(src/types/supervisor.ts)有对齐检测机制:
interface GoalDriftConfig {
alignmentThreshold: number;
consecutiveRoundsBelow: number;
jaccardMinGoalOverlap?: number;
}
系统在内部检测执行是否偏离了目标,但这个检测结果用户看不到。
建议方案
利用 TaskGraph 和 TaskState 中已有的数据,在 run 模式结束后(或通过 --verbose 实时)输出一份构建过程记录,包含以下层级:
输出示例
Task: 实现 Studio v0.0.6 教学管理
Intent: edit (由系统自动归类)
Phase: intent → context → editing → verification → final
Files Read:
lib/models/class_teaching.dart (现有模式参考)
lib/services/data_service.dart (现有服务模式参考)
lib/models/enums.dart (枚举模式参考)
Construction Steps:
[模型层]
✅ Create Student → lib/models/student.dart (3 files written)
✅ Create Teacher → lib/models/teacher.dart
✅ Create Assessment → lib/models/assessment.dart
✅ Create Submission → lib/models/submission.dart
✅ Extend ClassTeaching → lib/models/class_teaching.dart (+teacherIds/studentIds)
✅ Add enums → lib/models/enums.dart (+AssessmentType/SubmissionStatus)
[服务层]
✅ Create AssessmentService → lib/services/assessment_service.dart
✅ Extend CourseDataService → lib/services/data_service.dart (+class CRUD)
[UI层]
✅ Refactor ClassScreen → lib/screens/class_screen.dart (detail page)
✅ Create AssessmentList → lib/screens/assessment_list_screen.dart
✅ Create AssessmentDetail → lib/screens/assessment_detail_screen.dart
Verification:
✅ flutter test → 143 tests passed
✅ dart analyze → No issues found
Alignment: 92% (above threshold) — intent preserved
数据来源(全是已有的)
| 输出内容 |
数据来源 |
| Intent 分类 |
TaskState.intent / TaskIntent 枚举 |
| Phase 转换 |
TaskState.phase |
| 读取的文件列表 |
TaskState.filesRead |
| 写入的文件列表 |
TaskState.filesChanged |
| 执行命令 |
TaskState.commandsRun |
| 步骤进度 |
TaskGraph.nodes[].status + cursor |
| 对齐评分 |
GoalDriftConfig.alignmentThreshold + 运行时 alignment 值 |
| 验证结果 |
VerificationStatus |
实现方式
- 运行中(
--verbose 或默认):每完成一个 TaskGraph 节点,输出一行 ✅/🔄 状态
- 运行后(总是):在 final message 中附一份结构化摘要
不需要新增数据采集,只需要把内存中已有的 TaskState 和 TaskGraph 格式化输出。
补充说明
我知道 HarnessLogger 和 terminal-ui.ts 已经输出了 [harness] 日志和 🔧 工具调用行。
但这些是AI 行为日志(粒度是每次工具调用),不是系统构建过程记录(粒度是每个逻辑步骤 + 意图 + 决策)。我需要的不是更多的日志行,而是将已有的 TaskGraph 节点级别的结构化信息渲染给人看。
建议:run 模式增加构建过程的可追溯性
背景:意图驱动编程的实践需求
我在"意图驱动编程"的实践中使用 iceCoder:
但中间的构建过程是黑箱——我不知道系统是怎么理解我的意图、做了什么决策、为什么选择某个方案。
这不是进度条的问题。我需要理解系统是怎么被构建出来的。
现状:内部已有但未暴露的信息
阅读源码后发现,iceCoder 内部实际上记录了丰富的构建信息,但几乎全部没有暴露给用户:
1. Intent 理解层
src/types/runtime-snapshot.ts中定义了:系统把我的自然语言任务归类到了一个
TaskIntent,但我不知道它归类成了什么。如果它把我的"实现教学管理"归类为edit而我希望是refactor,中间的偏差我无从知晓。2. 上下文搜集层
TaskGraphBuilder(src/harness/task-graph-builder.ts)会做 repo shape discovery、复杂度评估、文件扫描。它读了哪些文件来做决策?这些是我关心的。3. 任务图执行层
TaskGraph(src/harness/task-graph.ts)有完整的节点状态跟踪:每个节点有
title、type(inspect/read/edit/verify)、evidence(关联路径)。这套数据可以渲染出完整的构建过程,但目前只在内存中,没有输出。4. 对齐检测层
GoalDriftConfig(src/types/supervisor.ts)有对齐检测机制:系统在内部检测执行是否偏离了目标,但这个检测结果用户看不到。
建议方案
利用 TaskGraph 和 TaskState 中已有的数据,在
run模式结束后(或通过--verbose实时)输出一份构建过程记录,包含以下层级:输出示例
数据来源(全是已有的)
TaskState.intent/TaskIntent枚举TaskState.phaseTaskState.filesReadTaskState.filesChangedTaskState.commandsRunTaskGraph.nodes[].status+cursorGoalDriftConfig.alignmentThreshold+ 运行时 alignment 值VerificationStatus实现方式
--verbose或默认):每完成一个 TaskGraph 节点,输出一行 ✅/🔄 状态不需要新增数据采集,只需要把内存中已有的
TaskState和TaskGraph格式化输出。补充说明
我知道
HarnessLogger和terminal-ui.ts已经输出了[harness]日志和🔧工具调用行。但这些是AI 行为日志(粒度是每次工具调用),不是系统构建过程记录(粒度是每个逻辑步骤 + 意图 + 决策)。我需要的不是更多的日志行,而是将已有的 TaskGraph 节点级别的结构化信息渲染给人看。