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 提醒
测试门禁
安全四项自检:
- SQL 防护 --- 参数化查询,禁止拼接
- 权限验证 --- 接口鉴权,数据隔离
- 敏感信息 --- 禁止硬编码密钥/凭证
- 输入验证 --- 类型/长度/格式校验
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/ |
技术方案 |