SuperAPI AI 工具集

sb-flows

测试与质量

查看项目

更新于 10-16 01:13

技能介绍

用途:sb-flows 是审计中的“连接”部分。仅凭路由列表无法证明覆盖度,它还要提取导航边,以及侧边栏/页头/页脚等持久导航来源——这些从每个页面都可能出现,却对页面正文扫描不可见,是最常见的审计遗漏。映射前先加载 references/flow-capture.md。

主要能力:1) 通用首轮提取,输出 .storybook/flows.json(路由 + 边 + navSources);2) 生成 AppFlowGraph 与 JourneyGraph 包装组件(含 icons.tsx);3) 模板 extract-app-graph.mjs 渲染实际应用图,带 ACTION 标签的边、深层 store/service 追踪、角色泳道与组件列表,输出 app-graph.json 与 component-pages.json。

必要用法: SKILL=${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}} CORE=${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}} "$SKILL/scripts/extract-flows.sh" "$CORE/scripts/scaffold-wrapper.sh" --flow cp "$SKILL/templates/extract-app-graph.mjs" .storybook/scripts/extract-app-graph.mjs node .storybook/scripts/extract-app-graph.mjs 复制模板后需按本仓库的 router/nav/role-gate 调整其中 3 个标记块(ADAPT-1/2/3)再运行。若存在导航栏,执行提取器打印的 sweep 提醒;若打印 ⚠ LIKELY UNDER-EXTRACTION,应把 flows.json 视为草稿,不要信任 edgeCount,而要阅读未匹配调用点恢复真实边。深层边需沿导入图回溯到路由页面,模板 moduleOrigins 支持 re-export 感知。

验证:每条边都须有 file:line 出处,无法归因的记录进 unresolvedEdges/dynamicCallSites,不得编造空边;检查 unresolvedEdges 是否小而理由合理,抽查若干 module-trace 边。

建模:AppFlowGraph 展示全应用路由图(角色泳道、着色边、覆盖着色、点击到 story);JourneyGraph 展示单个流程的旅程图,按 storyId 链接到各状态 story。二者支持注入 icons 属性,不使用 emoji;主题通过应用 token 变量适配明暗,仅数据编码保持固定色。角色需逐一探索,同一应用对不同角色是不同图。页面/流程应以真实宽度渲染(layout: 'fullscreen' 加桌面与移动视口),每个状态单独全宽 story,命名采用 N · label 并以 storyId 关联。

适用场景:应用地图梳理、流程展示、覆盖度与角色越权审计。

限制:资料未提供收费、平台、价格与效果信息;提取结果依赖脚本对导航写法的解析能力,遇到未支持的写法需人工补齐并回馈到 extract-flows.sh。