【我的一次AI -Vibe Coding 能力评估记录】

Vibe Coding 能力与会话执行介绍

项目 :NRD ELN(电子实验记录本)

技术栈 :Vue 3 + SpreadJS 17 | .NET 8 + SqlSugar + Oracle

AI 工具链 :Cursor IDE + Graphify 知识图谱 + MCP Server

更新日期:2026-06-13


一、会话执行流程

每一次 AI 辅助开发的会话,都遵循以下标准流程:
#mermaid-svg-E7NnJ5PYybwGAiNJ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-E7NnJ5PYybwGAiNJ .error-icon{fill:#552222;}#mermaid-svg-E7NnJ5PYybwGAiNJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-E7NnJ5PYybwGAiNJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .marker.cross{stroke:#333333;}#mermaid-svg-E7NnJ5PYybwGAiNJ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-E7NnJ5PYybwGAiNJ p{margin:0;}#mermaid-svg-E7NnJ5PYybwGAiNJ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .cluster-label text{fill:#333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .cluster-label span{color:#333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .cluster-label span p{background-color:transparent;}#mermaid-svg-E7NnJ5PYybwGAiNJ .label text,#mermaid-svg-E7NnJ5PYybwGAiNJ span{fill:#333;color:#333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .node rect,#mermaid-svg-E7NnJ5PYybwGAiNJ .node circle,#mermaid-svg-E7NnJ5PYybwGAiNJ .node ellipse,#mermaid-svg-E7NnJ5PYybwGAiNJ .node polygon,#mermaid-svg-E7NnJ5PYybwGAiNJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-E7NnJ5PYybwGAiNJ .rough-node .label text,#mermaid-svg-E7NnJ5PYybwGAiNJ .node .label text,#mermaid-svg-E7NnJ5PYybwGAiNJ .image-shape .label,#mermaid-svg-E7NnJ5PYybwGAiNJ .icon-shape .label{text-anchor:middle;}#mermaid-svg-E7NnJ5PYybwGAiNJ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-E7NnJ5PYybwGAiNJ .rough-node .label,#mermaid-svg-E7NnJ5PYybwGAiNJ .node .label,#mermaid-svg-E7NnJ5PYybwGAiNJ .image-shape .label,#mermaid-svg-E7NnJ5PYybwGAiNJ .icon-shape .label{text-align:center;}#mermaid-svg-E7NnJ5PYybwGAiNJ .node.clickable{cursor:pointer;}#mermaid-svg-E7NnJ5PYybwGAiNJ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .arrowheadPath{fill:#333333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-E7NnJ5PYybwGAiNJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-E7NnJ5PYybwGAiNJ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-E7NnJ5PYybwGAiNJ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-E7NnJ5PYybwGAiNJ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-E7NnJ5PYybwGAiNJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-E7NnJ5PYybwGAiNJ .cluster text{fill:#333;}#mermaid-svg-E7NnJ5PYybwGAiNJ .cluster span{color:#333;}#mermaid-svg-E7NnJ5PYybwGAiNJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-E7NnJ5PYybwGAiNJ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-E7NnJ5PYybwGAiNJ rect.text{fill:none;stroke-width:0;}#mermaid-svg-E7NnJ5PYybwGAiNJ .icon-shape,#mermaid-svg-E7NnJ5PYybwGAiNJ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-E7NnJ5PYybwGAiNJ .icon-shape p,#mermaid-svg-E7NnJ5PYybwGAiNJ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-E7NnJ5PYybwGAiNJ .icon-shape .label rect,#mermaid-svg-E7NnJ5PYybwGAiNJ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-E7NnJ5PYybwGAiNJ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-E7NnJ5PYybwGAiNJ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-E7NnJ5PYybwGAiNJ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} hotfix
feature / structural
用户输入需求
路由器分类与图谱查询
量级判定
创建 CHG → 直改路径
编排路径
初始化 1 条任务看板
五道门执行
规格工程师:写 Spec/CHG
规划工程师:写 Plan + 拆 Tasks
编排器:初始化看板 + 派发 Agent
TDD:先写测试
实现:编码
测试:lint + build + test
安全:自检四项
AC 验收:逐条对照
汇总结果
刷新任务看板
更新知识图谱
输出会话轨迹

关键节点说明

节点 说明
路由器 每次会话第一入口,负责问题分类、图谱查询、量级判定
量级判定 hotfix(纯新增/修复)→ 直改;feature/structural → 需 Plan + 编排
五道门 TDD → 实现 → 测试 → 安全 → AC,每个 Task 必须全部通过
会话轨迹 结束时输出 JSONL 格式的执行记录,支持事后回溯

二、各项能力协作关系

💡 通俗理解:把 AI 辅助开发想象成一个工程队------

  • D3 上下文工程 = 📡 导航员(告诉大家"在哪、做什么")
  • D2 工程方法 = 📏 监理(确保流程合规,不允许偷工减料)
  • D1 技术编码 = 🔨 施工队(实际写代码的人)
  • D4 安全与治理 = 🛡️ 安全员(全程巡查,发现隐患立即喊停)
  • D5 组织赋能 = 📚 培训部(沉淀经验,让新人也能快速上手)
    #mermaid-svg-gLwK1qvQYYsgaAMU{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-gLwK1qvQYYsgaAMU .error-icon{fill:#552222;}#mermaid-svg-gLwK1qvQYYsgaAMU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gLwK1qvQYYsgaAMU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gLwK1qvQYYsgaAMU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gLwK1qvQYYsgaAMU .marker.cross{stroke:#333333;}#mermaid-svg-gLwK1qvQYYsgaAMU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gLwK1qvQYYsgaAMU p{margin:0;}#mermaid-svg-gLwK1qvQYYsgaAMU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-gLwK1qvQYYsgaAMU .cluster-label text{fill:#333;}#mermaid-svg-gLwK1qvQYYsgaAMU .cluster-label span{color:#333;}#mermaid-svg-gLwK1qvQYYsgaAMU .cluster-label span p{background-color:transparent;}#mermaid-svg-gLwK1qvQYYsgaAMU .label text,#mermaid-svg-gLwK1qvQYYsgaAMU span{fill:#333;color:#333;}#mermaid-svg-gLwK1qvQYYsgaAMU .node rect,#mermaid-svg-gLwK1qvQYYsgaAMU .node circle,#mermaid-svg-gLwK1qvQYYsgaAMU .node ellipse,#mermaid-svg-gLwK1qvQYYsgaAMU .node polygon,#mermaid-svg-gLwK1qvQYYsgaAMU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gLwK1qvQYYsgaAMU .rough-node .label text,#mermaid-svg-gLwK1qvQYYsgaAMU .node .label text,#mermaid-svg-gLwK1qvQYYsgaAMU .image-shape .label,#mermaid-svg-gLwK1qvQYYsgaAMU .icon-shape .label{text-anchor:middle;}#mermaid-svg-gLwK1qvQYYsgaAMU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-gLwK1qvQYYsgaAMU .rough-node .label,#mermaid-svg-gLwK1qvQYYsgaAMU .node .label,#mermaid-svg-gLwK1qvQYYsgaAMU .image-shape .label,#mermaid-svg-gLwK1qvQYYsgaAMU .icon-shape .label{text-align:center;}#mermaid-svg-gLwK1qvQYYsgaAMU .node.clickable{cursor:pointer;}#mermaid-svg-gLwK1qvQYYsgaAMU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-gLwK1qvQYYsgaAMU .arrowheadPath{fill:#333333;}#mermaid-svg-gLwK1qvQYYsgaAMU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-gLwK1qvQYYsgaAMU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-gLwK1qvQYYsgaAMU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gLwK1qvQYYsgaAMU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-gLwK1qvQYYsgaAMU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gLwK1qvQYYsgaAMU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-gLwK1qvQYYsgaAMU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-gLwK1qvQYYsgaAMU .cluster text{fill:#333;}#mermaid-svg-gLwK1qvQYYsgaAMU .cluster span{color:#333;}#mermaid-svg-gLwK1qvQYYsgaAMU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-gLwK1qvQYYsgaAMU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-gLwK1qvQYYsgaAMU rect.text{fill:none;stroke-width:0;}#mermaid-svg-gLwK1qvQYYsgaAMU .icon-shape,#mermaid-svg-gLwK1qvQYYsgaAMU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gLwK1qvQYYsgaAMU .icon-shape p,#mermaid-svg-gLwK1qvQYYsgaAMU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-gLwK1qvQYYsgaAMU .icon-shape .label rect,#mermaid-svg-gLwK1qvQYYsgaAMU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gLwK1qvQYYsgaAMU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-gLwK1qvQYYsgaAMU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-gLwK1qvQYYsgaAMU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 告诉去哪
    分配任务
    全程巡查
    全程巡查
    全程巡查
    产出经验
    反哺改进
    反哺改进
    用户需求
    📡 D3 上下文工程

导航:查图谱、定位代码、提供上下文
📏 D2 工程方法

监理:定流程、设门禁、拆任务
🔨 D1 技术编码

施工:写代码、跑测试、交付功能
🛡️ D4 安全与治理

安全员:审查代码、拦截风险
📚 D5 组织赋能

培训部:沉淀模板、记录轨迹

协作逻辑一句话总结

复制代码
导航员定位 → 监理定规则 → 施工队干活 → 安全员全程盯 → 培训部沉淀经验反哺全员

具体协作方式

从 → 到 协作内容
D3 → D2 图谱查询结果决定走"直改"还是"编排"路径
D2 → D1 SDD 门禁确保编码前有规范、有方案、有看板
D4 → 全员 安全规范 + Hook 提醒贯穿设计/实现/测试每一步
D1 → D5 每次实施产出任务看板 + 会话轨迹,积累团队知识
D5 → D3/D2 模板标准化输入,轨迹分析改进流程

三、能力体系总览

3.1 核心组件一览

#mermaid-svg-bDWcN1tFqPuD6C9I{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-bDWcN1tFqPuD6C9I .error-icon{fill:#552222;}#mermaid-svg-bDWcN1tFqPuD6C9I .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bDWcN1tFqPuD6C9I .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bDWcN1tFqPuD6C9I .marker.cross{stroke:#333333;}#mermaid-svg-bDWcN1tFqPuD6C9I svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bDWcN1tFqPuD6C9I p{margin:0;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge{stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .section--1 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section--1 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section--1 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section--1 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section--1 text{fill:#ffffff;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth--1{stroke-width:17;}#mermaid-svg-bDWcN1tFqPuD6C9I .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-0 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-0 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-0 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-0 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-0 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-0{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-0{stroke-width:14;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-1 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-1 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-1 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-1 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-1 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-1{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-1{stroke-width:11;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 text{fill:#ffffff;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-2{stroke-width:8;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-3 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-3 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-3 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-3 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-3 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-3{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-3{stroke-width:5;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-4 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-4 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-4 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-4 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-4 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-4{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-4{stroke-width:2;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-5 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-5 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-5 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-5 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-5 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-5{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-5{stroke-width:-1;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-6 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-6 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-6 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-6 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-6 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-6{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-6{stroke-width:-4;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-7 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-7 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-7 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-7 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-7 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-7{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-7{stroke-width:-7;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-8 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-8 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-8 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-8 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-8 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-8{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-8{stroke-width:-10;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-9 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-9 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-9 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-9 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-9 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-9{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-9{stroke-width:-13;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-10 rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-10 path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-10 circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-10 polygon,#mermaid-svg-bDWcN1tFqPuD6C9I .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-10 text{fill:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .node-icon-10{font-size:40px;color:black;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .edge-depth-10{stroke-width:-16;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled circle,#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:lightgray;}#mermaid-svg-bDWcN1tFqPuD6C9I .disabled text{fill:#efefef;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-root rect,#mermaid-svg-bDWcN1tFqPuD6C9I .section-root path,#mermaid-svg-bDWcN1tFqPuD6C9I .section-root circle,#mermaid-svg-bDWcN1tFqPuD6C9I .section-root polygon{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-bDWcN1tFqPuD6C9I .section-root text{fill:#ffffff;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-root span{color:#ffffff;}#mermaid-svg-bDWcN1tFqPuD6C9I .section-2 span{color:#ffffff;}#mermaid-svg-bDWcN1tFqPuD6C9I .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-bDWcN1tFqPuD6C9I .edge{fill:none;}#mermaid-svg-bDWcN1tFqPuD6C9I .mindmap-node-label{dy:1em;alignment-baseline:middle;text-anchor:middle;dominant-baseline:middle;text-align:center;}#mermaid-svg-bDWcN1tFqPuD6C9I :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Vibe Coding
Rules 规则层
00-core 核心原则
01-sdd-gates SDD门禁
02-agent-git Git授权
03-security 安全规范
04-testing-gates 测试门禁
05-graphify-entry 图谱入口
10~12 代码风格
Skills 技能层
00-router 路由器
10-domain 领域索引
20-capabilities 工程能力
30-orchestrators 编排器
40-roles 角色定义
50-query 查表工具
60-template 模板设计
Hooks 自动化层
guard-claude-shell 结构变更守卫
guard-sdd-implement 编码前门禁
hint-sdd-security 安全提醒
hint-nrd-business-tests 测试提醒
remind-spec-history 规范提醒
Infrastructure 基础设施
Graphify 知识图谱
MCP Server
任务看板
会话轨迹

3.2 各能力详细介绍

🔀 路由器(00-router-skill)
项目 说明
定位 每次会话的第一入口
功能 问题分类 → 图谱查询 → 量级判定 → 路由分发
输出 `图谱:<词>
`量级:<hotfix/feature/structural>
约束 禁止跳过分类;feature/structural 禁止直改
📋 SDD 四阶段工作流(30-sdd-workflow)

#mermaid-svg-c0ZTCRtGRQmC08Yl{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-c0ZTCRtGRQmC08Yl .error-icon{fill:#552222;}#mermaid-svg-c0ZTCRtGRQmC08Yl .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-c0ZTCRtGRQmC08Yl .marker{fill:#333333;stroke:#333333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .marker.cross{stroke:#333333;}#mermaid-svg-c0ZTCRtGRQmC08Yl svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-c0ZTCRtGRQmC08Yl p{margin:0;}#mermaid-svg-c0ZTCRtGRQmC08Yl .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .cluster-label text{fill:#333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .cluster-label span{color:#333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .cluster-label span p{background-color:transparent;}#mermaid-svg-c0ZTCRtGRQmC08Yl .label text,#mermaid-svg-c0ZTCRtGRQmC08Yl span{fill:#333;color:#333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .node rect,#mermaid-svg-c0ZTCRtGRQmC08Yl .node circle,#mermaid-svg-c0ZTCRtGRQmC08Yl .node ellipse,#mermaid-svg-c0ZTCRtGRQmC08Yl .node polygon,#mermaid-svg-c0ZTCRtGRQmC08Yl .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-c0ZTCRtGRQmC08Yl .rough-node .label text,#mermaid-svg-c0ZTCRtGRQmC08Yl .node .label text,#mermaid-svg-c0ZTCRtGRQmC08Yl .image-shape .label,#mermaid-svg-c0ZTCRtGRQmC08Yl .icon-shape .label{text-anchor:middle;}#mermaid-svg-c0ZTCRtGRQmC08Yl .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-c0ZTCRtGRQmC08Yl .rough-node .label,#mermaid-svg-c0ZTCRtGRQmC08Yl .node .label,#mermaid-svg-c0ZTCRtGRQmC08Yl .image-shape .label,#mermaid-svg-c0ZTCRtGRQmC08Yl .icon-shape .label{text-align:center;}#mermaid-svg-c0ZTCRtGRQmC08Yl .node.clickable{cursor:pointer;}#mermaid-svg-c0ZTCRtGRQmC08Yl .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .arrowheadPath{fill:#333333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-c0ZTCRtGRQmC08Yl .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-c0ZTCRtGRQmC08Yl .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-c0ZTCRtGRQmC08Yl .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-c0ZTCRtGRQmC08Yl .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-c0ZTCRtGRQmC08Yl .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-c0ZTCRtGRQmC08Yl .cluster text{fill:#333;}#mermaid-svg-c0ZTCRtGRQmC08Yl .cluster span{color:#333;}#mermaid-svg-c0ZTCRtGRQmC08Yl div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-c0ZTCRtGRQmC08Yl .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-c0ZTCRtGRQmC08Yl rect.text{fill:none;stroke-width:0;}#mermaid-svg-c0ZTCRtGRQmC08Yl .icon-shape,#mermaid-svg-c0ZTCRtGRQmC08Yl .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-c0ZTCRtGRQmC08Yl .icon-shape p,#mermaid-svg-c0ZTCRtGRQmC08Yl .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-c0ZTCRtGRQmC08Yl .icon-shape .label rect,#mermaid-svg-c0ZTCRtGRQmC08Yl .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-c0ZTCRtGRQmC08Yl .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-c0ZTCRtGRQmC08Yl .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-c0ZTCRtGRQmC08Yl :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 产物
产物
产物
产物
规范 Specify
方案 Plan
任务 Tasks
实施 Implement
Spec/CHG 文档
Plan + 评审记录
任务看板 JSON
代码 + 测试 + 轨迹

阶段 入口条件 产物 出口条件
规范 图谱行已输出 Spec/CHG(含 AC + 安全声明) 状态 Approved
方案 Spec Approved Plan(含架构/影响/Tasks) 用户确认
任务 Plan 确认 任务看板初始化 看板与 CHG 一致
实施 G1~G5 全通过 代码 + 测试 + 看板刷新 + 轨迹 所有 AC 覆盖
🎭 六大角色
角色 图标 职责
规格工程师 👷 写 Spec/CHG,制定验收标准
规划工程师 💂 写 Plan,拆解 Tasks
后端工程师 🧔 实现后端代码与测试
前端工程师 🧝 实现前端代码与测试
测试工程师 🧙 补充测试与验收
代码审查员 🕵 风险审查与结论汇总
🪝 自动化 Hooks

#mermaid-svg-etKDnLsmbmSOhKLk{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-etKDnLsmbmSOhKLk .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-etKDnLsmbmSOhKLk .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-etKDnLsmbmSOhKLk .error-icon{fill:#552222;}#mermaid-svg-etKDnLsmbmSOhKLk .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-etKDnLsmbmSOhKLk .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-etKDnLsmbmSOhKLk .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-etKDnLsmbmSOhKLk .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-etKDnLsmbmSOhKLk .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-etKDnLsmbmSOhKLk .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-etKDnLsmbmSOhKLk .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-etKDnLsmbmSOhKLk .marker{fill:#333333;stroke:#333333;}#mermaid-svg-etKDnLsmbmSOhKLk .marker.cross{stroke:#333333;}#mermaid-svg-etKDnLsmbmSOhKLk svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-etKDnLsmbmSOhKLk p{margin:0;}#mermaid-svg-etKDnLsmbmSOhKLk .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-etKDnLsmbmSOhKLk .cluster-label text{fill:#333;}#mermaid-svg-etKDnLsmbmSOhKLk .cluster-label span{color:#333;}#mermaid-svg-etKDnLsmbmSOhKLk .cluster-label span p{background-color:transparent;}#mermaid-svg-etKDnLsmbmSOhKLk .label text,#mermaid-svg-etKDnLsmbmSOhKLk span{fill:#333;color:#333;}#mermaid-svg-etKDnLsmbmSOhKLk .node rect,#mermaid-svg-etKDnLsmbmSOhKLk .node circle,#mermaid-svg-etKDnLsmbmSOhKLk .node ellipse,#mermaid-svg-etKDnLsmbmSOhKLk .node polygon,#mermaid-svg-etKDnLsmbmSOhKLk .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-etKDnLsmbmSOhKLk .rough-node .label text,#mermaid-svg-etKDnLsmbmSOhKLk .node .label text,#mermaid-svg-etKDnLsmbmSOhKLk .image-shape .label,#mermaid-svg-etKDnLsmbmSOhKLk .icon-shape .label{text-anchor:middle;}#mermaid-svg-etKDnLsmbmSOhKLk .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-etKDnLsmbmSOhKLk .rough-node .label,#mermaid-svg-etKDnLsmbmSOhKLk .node .label,#mermaid-svg-etKDnLsmbmSOhKLk .image-shape .label,#mermaid-svg-etKDnLsmbmSOhKLk .icon-shape .label{text-align:center;}#mermaid-svg-etKDnLsmbmSOhKLk .node.clickable{cursor:pointer;}#mermaid-svg-etKDnLsmbmSOhKLk .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-etKDnLsmbmSOhKLk .arrowheadPath{fill:#333333;}#mermaid-svg-etKDnLsmbmSOhKLk .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-etKDnLsmbmSOhKLk .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-etKDnLsmbmSOhKLk .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-etKDnLsmbmSOhKLk .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-etKDnLsmbmSOhKLk .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-etKDnLsmbmSOhKLk .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-etKDnLsmbmSOhKLk .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-etKDnLsmbmSOhKLk .cluster text{fill:#333;}#mermaid-svg-etKDnLsmbmSOhKLk .cluster span{color:#333;}#mermaid-svg-etKDnLsmbmSOhKLk div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-etKDnLsmbmSOhKLk .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-etKDnLsmbmSOhKLk rect.text{fill:none;stroke-width:0;}#mermaid-svg-etKDnLsmbmSOhKLk .icon-shape,#mermaid-svg-etKDnLsmbmSOhKLk .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-etKDnLsmbmSOhKLk .icon-shape p,#mermaid-svg-etKDnLsmbmSOhKLk .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-etKDnLsmbmSOhKLk .icon-shape .label rect,#mermaid-svg-etKDnLsmbmSOhKLk .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-etKDnLsmbmSOhKLk .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-etKDnLsmbmSOhKLk .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-etKDnLsmbmSOhKLk :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 结构变更命令
普通命令
写业务文件
缺失
通过
用户操作
beforeShell
提醒同步 CLAUDE.md
放行
preToolUse
检查 Spec + Plan + 看板
阻止编写
执行写入
postToolUse
安全自检提示
业务测试提示
规范历史提醒

Hook 触发时机 功能
guard-claude-shell Shell 命令前 检测目录变更,提醒同步 CLAUDE.md
guard-sdd-implement 写文件前 检查 Spec/Plan/看板是否就绪(G2/G3/G4)
hint-sdd-security 写后端文件后 输出安全自检清单
hint-nrd-business-tests 写业务文件后 输出业务流程测试检查清单
remind-spec-history 写 CHG 后 提醒更新 Spec 变更历史表
🗺️ Graphify 知识图谱
项目 说明
定位 项目级上下文记忆与语义检索
核心产物 graphify-out/graph.json(机器可读图谱)
MCP 集成 通过 MCP Server 暴露给 AI,支持实时查询
强制入图 新业务未命中时,同会话结束前必须完成 L0 入图
更新命令 graphify update .(增量)/ graphify update . --force(全量)
📐 模板与命令
命令/模板 说明
/new-spec 快速创建功能规格文档(Draft 状态)
/change-spec 快速创建变更设计文档
spec-fr-template 功能需求规格模板
chg-template 变更设计文档模板(含量级判定)

四、硬门禁与安全机制

编码前门禁(G1~G5)

复制代码
□ G1  输出了 图谱:... 一行
□ G2  Spec/CHG 状态 ≥ Approved;feature/structural 有 Plan
□ G3  current-task-board.json 已初始化且与 CHG 一致
□ G4  Plan 含 ## Tasks
□ G5  轨迹块已输出

安全贯穿机制

#mermaid-svg-gHAygOPn7LAoiaJZ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-gHAygOPn7LAoiaJZ .error-icon{fill:#552222;}#mermaid-svg-gHAygOPn7LAoiaJZ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gHAygOPn7LAoiaJZ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gHAygOPn7LAoiaJZ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gHAygOPn7LAoiaJZ .marker.cross{stroke:#333333;}#mermaid-svg-gHAygOPn7LAoiaJZ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gHAygOPn7LAoiaJZ p{margin:0;}#mermaid-svg-gHAygOPn7LAoiaJZ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-gHAygOPn7LAoiaJZ .cluster-label text{fill:#333;}#mermaid-svg-gHAygOPn7LAoiaJZ .cluster-label span{color:#333;}#mermaid-svg-gHAygOPn7LAoiaJZ .cluster-label span p{background-color:transparent;}#mermaid-svg-gHAygOPn7LAoiaJZ .label text,#mermaid-svg-gHAygOPn7LAoiaJZ span{fill:#333;color:#333;}#mermaid-svg-gHAygOPn7LAoiaJZ .node rect,#mermaid-svg-gHAygOPn7LAoiaJZ .node circle,#mermaid-svg-gHAygOPn7LAoiaJZ .node ellipse,#mermaid-svg-gHAygOPn7LAoiaJZ .node polygon,#mermaid-svg-gHAygOPn7LAoiaJZ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gHAygOPn7LAoiaJZ .rough-node .label text,#mermaid-svg-gHAygOPn7LAoiaJZ .node .label text,#mermaid-svg-gHAygOPn7LAoiaJZ .image-shape .label,#mermaid-svg-gHAygOPn7LAoiaJZ .icon-shape .label{text-anchor:middle;}#mermaid-svg-gHAygOPn7LAoiaJZ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-gHAygOPn7LAoiaJZ .rough-node .label,#mermaid-svg-gHAygOPn7LAoiaJZ .node .label,#mermaid-svg-gHAygOPn7LAoiaJZ .image-shape .label,#mermaid-svg-gHAygOPn7LAoiaJZ .icon-shape .label{text-align:center;}#mermaid-svg-gHAygOPn7LAoiaJZ .node.clickable{cursor:pointer;}#mermaid-svg-gHAygOPn7LAoiaJZ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-gHAygOPn7LAoiaJZ .arrowheadPath{fill:#333333;}#mermaid-svg-gHAygOPn7LAoiaJZ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-gHAygOPn7LAoiaJZ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-gHAygOPn7LAoiaJZ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gHAygOPn7LAoiaJZ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-gHAygOPn7LAoiaJZ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gHAygOPn7LAoiaJZ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-gHAygOPn7LAoiaJZ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-gHAygOPn7LAoiaJZ .cluster text{fill:#333;}#mermaid-svg-gHAygOPn7LAoiaJZ .cluster span{color:#333;}#mermaid-svg-gHAygOPn7LAoiaJZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-gHAygOPn7LAoiaJZ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-gHAygOPn7LAoiaJZ rect.text{fill:none;stroke-width:0;}#mermaid-svg-gHAygOPn7LAoiaJZ .icon-shape,#mermaid-svg-gHAygOPn7LAoiaJZ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gHAygOPn7LAoiaJZ .icon-shape p,#mermaid-svg-gHAygOPn7LAoiaJZ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-gHAygOPn7LAoiaJZ .icon-shape .label rect,#mermaid-svg-gHAygOPn7LAoiaJZ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gHAygOPn7LAoiaJZ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-gHAygOPn7LAoiaJZ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-gHAygOPn7LAoiaJZ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 安全声明
安全自检
安全测试
03-security.mdc
hint-sdd-security
04-testing-gates
设计阶段
实现阶段
测试阶段
部署阶段
规则约束
Hook 提醒
测试门禁

安全四项自检:

  1. SQL 防护 --- 参数化查询,禁止拼接
  2. 权限验证 --- 接口鉴权,数据隔离
  3. 敏感信息 --- 禁止硬编码密钥/凭证
  4. 输入验证 --- 类型/长度/格式校验

Git 提交最严约束

  • 禁止 AI 自动执行 git add / commit / push
  • 每次提交需用户明确授权
  • 提交前必须通过 lint + build + 结构同步检查

五、能力等级自评(D1~D5)

以下对照五维度能力框架,评估本项目已落地的 Vibe Coding 能力等级:

D1 技术编码(Coding & Implementation)

等级 可观察行为锚点 本项目达标情况
L1 AI 补全、单文件生成、正则/SQL/CRUD ✅ 基础能力
L2 多轮对话完成完整模块、单元测试 ≥60%、代码摘要 ✅ 已落地
L3 拆解需求为 sub-task、Plan-Mode 串联、多模型择优 ✅ SDD + 编排器
L4 定制 Lint/Test/Review Agent、跨服务重构、测试覆盖 ≥80% 部分达标(有 Review 角色 + 测试门禁,跨服务重构待验证)
L5 集团级 AI 编码范式、项目级重写 🔲 未达

当前评估:L3~L4

D2 工程方法(SDD / Eval / Agentic Workflow)

等级 可观察行为锚点 本项目达标情况
L1 列 TODO、AI 自查、知道 Plan/Agent 区别 ✅ 基础能力
L2 spec.md、端到端验证、切换 Plan/Agent/Ask ✅ 已落地
L3 SDD 模式(spec→plan→tasks→impl→eval)、Eval 用例 ✅ 完整 SDD 四阶段
L4 团队级 Eval 流水线、SDD 规范落地、多 Agent 编排 已达标(编排器 + 六角色 + 看板 + 轨迹)
L5 集团 AI-SDLC 标准 🔲 未达

当前评估:L4

D3 上下文工程(Context Engineering)

等级 可观察行为锚点 本项目达标情况
L1 知道 rules/AGENTS.md、@文件、知道 Skills ✅ 基础能力
L2 写自用 Rule、调用 Skill、@Past Chats/@Web ✅ 已落地
L3 编写可复用 Skill、配置 Hooks、管理项目/全局 Rule ✅ 7 大 Skill + 5 Hook + 10 Rule
L4 部门级 Skill/Rule 仓库、集成 MCP Server、Memory/图谱方案 部分达标(Graphify 图谱 + MCP 集成,仓库化待推广)
L5 集团级上下文治理规范 🔲 未达

当前评估:L3~L4

D4 安全与治理(Safety / Privacy / IP / Cost)

等级 可观察行为锚点 本项目达标情况
L1 密钥不进 git、不粘贴客户数据、知道幻觉 ✅ 基础能力
L2 识别安全漏洞、Lint + 静态扫描、.gitignore ✅ 已落地
L3 防御 Prompt Injection、工具白名单、Token 成本控制 已达标(Git 最严约束 + Hook 门禁 + 安全自检)
L4 LLM 可观测性、模型审计、数据分级 🔲 待建设
L5 集团红队测试 🔲 未达

当前评估:L3

D5 组织赋能(Mentor / Knowledge / Culture)

等级 可观察行为锚点 本项目达标情况
L1 分享 AI 用法、演示工具配置 ✅ 基础能力
L2 1 对 1 答疑、个人最佳实践笔记 ✅ 已落地
L3 内部分享、复用产物被 ≥3 人采用、AI 周会/周报 部分达标(模板 + 看板 + 轨迹可视化,推广中)
L4 部门 AI 提效专项、方法论文档 🔲 待推进
L5 行业分享、培养 L4 🔲 未达

当前评估:L3


六、能力雷达图

#mermaid-svg-upqzTPzvrvY1B6oM{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-upqzTPzvrvY1B6oM .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-upqzTPzvrvY1B6oM .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-upqzTPzvrvY1B6oM .error-icon{fill:hsl(355.7480314961, 55.9471365639%, 60.4901960784%);}#mermaid-svg-upqzTPzvrvY1B6oM .error-text{fill:rgb(44.3832599119, 157.1167400883, 149.1277533042);stroke:rgb(44.3832599119, 157.1167400883, 149.1277533042);}#mermaid-svg-upqzTPzvrvY1B6oM .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-upqzTPzvrvY1B6oM .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-upqzTPzvrvY1B6oM .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-upqzTPzvrvY1B6oM .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-upqzTPzvrvY1B6oM .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-upqzTPzvrvY1B6oM .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-upqzTPzvrvY1B6oM .marker{fill:#0b0b0b;stroke:#0b0b0b;}#mermaid-svg-upqzTPzvrvY1B6oM .marker.cross{stroke:#0b0b0b;}#mermaid-svg-upqzTPzvrvY1B6oM svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-upqzTPzvrvY1B6oM p{margin:0;}#mermaid-svg-upqzTPzvrvY1B6oM .pieCircle{stroke:#000000;stroke-width:2px;opacity:0.7;}#mermaid-svg-upqzTPzvrvY1B6oM .pieOuterCircle{stroke:#000000;stroke-width:1px;fill:none;}#mermaid-svg-upqzTPzvrvY1B6oM .pieTitleText{text-anchor:middle;font-size:25px;fill:#000000;font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-upqzTPzvrvY1B6oM .slice{font-family:"trebuchet ms",verdana,arial,sans-serif;fill:#000000;font-size:17px;}#mermaid-svg-upqzTPzvrvY1B6oM .legend text{fill:#000000;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:17px;}#mermaid-svg-upqzTPzvrvY1B6oM :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 24% 21% 21% 18% 18% 五维度能力等级(满分 L5) D1 技术编码 (L3.5) D2 工程方法 (L4) D3 上下文工程 (L3.5) D4 安全与治理 (L3) D5 组织赋能 (L3)


七、核心优势总结

优势 体现
规范先行 所有实施必经 Spec → Plan → Tasks → Implement,禁止跳过
多层硬门禁 Git 授权、编码前检查、安全自检,环环相扣
知识图谱驱动 Graphify 主动维护项目上下文,未命中强制入图
真实 Agent 编排 多角色并发派发,严格依赖与冲突检查
实时可视化 任务看板 + 会话轨迹,支持事后回溯
安全贯穿全程 设计→实现→测试→部署,每步有检查点
可复用可扩展 模板、看板、轨迹全部机器可读,支持跨项目复制

八、文件索引

分类 关键文件 说明
核心配置 CLAUDE.md 项目总览与入口指针
.cursor/rules/ 10 条分层规则
.cursor/skills/ 7 大技能分类
.cursor/hooks.json Hook 触发配置
.cursor/mcp.json MCP 服务配置
流程定义 .cursor/skills/30-orchestrators/ SDD 编排器
.cursor/skills/20-capabilities/30-sdd-workflow/ 四阶段手册
.cursor/skills/00-router-skill/ 路由与图谱
任务管理 .cursor/trajectories/current-task-board.json 实时看板
.cursor/templates/ 文档模板库
运维工具 .cursor/check-claude-sync.ps1 结构同步检查
.cursor/hooks/ 5 个自动化脚本
知识库 graphify-out/graph.json 知识图谱
docs/specs/ 功能规格
docs/change/ 变更文档
docs/plans/ 技术方案