CRIPS的工程化开发方法六大典型问题的处理

4 阅读4分钟

CRIPS的工程化开发方法六大典型问题的处理

在实施 CRISP 原则(Context, Role, Issue, Scope, Preference)进行 AI 辅助开发(如在 Trae 平台中使用 GLM-4.7)时,尽管该框架能显著提升任务规划质量,但在实际操作中仍存在若干高频、易忽视的常见问题。这些问题往往导致 Plan 输出模糊、偏离目标,甚至引发无效或有害的代码修改。

以下是 CRISP 实施中的六大典型问题及其具体表现、根源分析与应对策略


1. Context 模糊或缺失 → “AI 不知道你在哪个技术宇宙”

  • 表现

    • AI 建议使用 Vue 语法,但项目是 React;
    • 推荐 localStorage,但小程序环境不支持;
    • 忽略平台限制(如微信小程序主线程不能处理大图)。
  • 根源
    开发者默认“模型应该知道”,未显式声明技术栈、运行环境或架构约束。

  • 对策
    ✅ 强制填写 技术三元组[框架] + [状态管理] + [运行平台]
    ✅ 对特殊限制加粗标注:“仅支持微信小程序基础库 2.20.0+”


2. Role 泛化 → “AI 以通用程序员身份思考”

  • 表现

    • 给出教科书式解决方案,忽略性能/兼容性;
    • 未考虑前端工程化规范(如未处理组件卸载);
    • 建议引入新依赖,违反团队约定。
  • 根源
    角色描述为“开发者”“工程师”等宽泛称谓,未激活特定领域知识。

  • 对策
    ✅ 使用 复合专业角色

    “你是一名熟悉 Taro 小程序性能瓶颈的前端架构师,特别关注异步状态与内存泄漏”
    ✅ 在 Role 中嵌入 质量属性优先级:如“稳定性 > 代码简洁性”


3. Issue 描述主观或不可观测 → “问题无法复现”

  • 表现

    • “试衣有时卡顿”“偶尔出错”;
    • 缺少触发条件、预期结果与实际偏差对比;
    • 未提供错误日志或用户路径。
  • 根源
    用体验性语言代替工程化问题定义,AI 无法构建因果链。

  • 对策
    ✅ 采用 When–Then–But–Should 四段式

    When 用户快速连续上传两张图片(<500ms 间隔),
    Then 第二张的 loading 状态覆盖第一张,
    But 第一张请求完成后仍尝试 setState,
    Should 每次上传应独立管理状态并取消过期请求。
    

    ✅ 附上 控制台报错 / 用户操作录屏关键词


4. Scope 过宽或缺失 → “AI 试图重写整个系统”

  • 表现

    • Plan 包含“重构状态管理”“引入 Redux”等过度方案;
    • @SOLO Coder 修改了无关文件;
    • 修复一个 bug 却改动 5 个模块。
  • 根源
    未明确限定修改边界,AI 默认“最优解”可能涉及架构调整。

  • 对策
    ✅ 显式列出 允许修改的文件与函数

    “仅限:src/pages/tryon/index.tsx (handleUpload, renderResult)”
    ✅ 使用 否定式范围声明
    “不涉及后端 API、不修改公共组件库”


5. Preference 被忽略 → “生成理想但不可落地的方案”

  • 表现

    • 建议使用新库(如 RxJS),但团队禁止;
    • 采用实验性语法(如 React Server Components),不兼容当前构建链;
    • 未考虑测试覆盖率要求。
  • 根源
    开发者认为“AI 应该知道团队规范”,但模型无上下文记忆。

  • 对策
    ✅ 在 Preference 中明确 “必须 / 禁止”清单

    - 必须:使用 AbortController 取消请求  
    - 禁止:引入任何新第三方依赖  
    - 必须:保持函数纯度,便于单元测试
    

6. CRISP 各要素割裂 → “整体逻辑不自洽”

  • 表现

    • Context 说用 Zustand,Role 却按 Redux 思维提建议;
    • Issue 要求最小改动,Plan 却设计全新 Hook;
    • Preference 要求高性能,但方案增加渲染层级。
  • 根源
    各要素由不同人编写或临时拼凑,缺乏一致性校验。

  • 对策
    交叉验证法:写完 CRISP 后自问:

    • “这个 Role 是否能解决这个 Issue?”
    • “这个 Scope 是否足以实现 Preference?”
      ✅ 使用 模板强制对齐(见下文)

附:CRISP 自检 Checklist(实施前必查)

要素检查项
Context□ 是否包含框架、状态管理、平台、关键版本?
Role□ 是否具体到技术领域 + 质量关注点?
Issue□ 是否可用“当…时,出现…,但应…”复现?是否附错误信息?
Scope□ 是否列出具体文件/函数?是否明确排除无关模块?
Preference□ 是否有“必须/禁止”项?是否与团队规范一致?
一致性□ 所有要素是否逻辑自洽?(如:Role 的能力能否在 Scope 内解决问题?)

总结

CRISP 不是填空题,而是工程思维的结构化表达
常见问题的本质,是人类模糊认知与 AI 精确执行之间的鸿沟
通过模板化输入、要素交叉验证与强制约束声明,可将这一鸿沟转化为高效协作的桥梁。