研发协作
修复 Flows 应用正确性与错误处理:查找并就地修复…
当 Flows 应用存在未处理异常、缺失 loading/error/empty 状态、未捕获的 Promise、空值访问或 useEffect 未清理等问题时,按步骤查找并直接修复。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
修复 Flows 应用正确性与错误处理:特定
解决思路
- 读取 src/main.tsx / src/App.tsx、**/hooks/*.ts、**/contexts/*.tsx、**/api/*.ts、**/services/*.ts,梳理每个异步数据源在请求失败、加载中、结果为空时的行为。
- 用 grep 搜索关键路径中的 TODO/FIXME/HACK/XXX 及 workaround/broken/known bug 标记,逐个阅读上下文并修复底层问题;若需大改架构,则替换为安全失败模式(优雅错误处理、合理回退值或明确的降级提示),修复后删除 TODO 注释。
- 用 grep 检查是否已有 ErrorBoundary/componentDidCatch/getDerivedStateFromError;若没有,安装 react-error-boundary(pnpm add react-error-boundary),创建 ErrorFallback 组件并在 App.tsx 中用 <ErrorBoundary FallbackComponent={ErrorFallback}> 包裹主内容。
- 用 grep 查找所有 async 函数和未带 .catch() 的 .then() 链;为裸 async 函数体加 try/catch(记录上下文错误并重新抛出),为 .then() 补 .catch(),为缺少 isError 处理的 useQuery/useMutation 组件补错误检查与错误 UI。
- 用 grep 查找未检查 loading 状态就渲染数据的组件(.map/.filter/.find 且无 isLoading/isPending/skeleton);为每个数据组件按顺序补上 loading(Spinner/骨架屏)、error(用户可读消息,role="alert")、empty("No results found" 等)三种状态。
- 用 grep 查找 JSON.parse、localStorage.getItem/setItem、useSearchParams/searchParams.get;用 Zod safeParse 替换 JSON.parse(x) as T,为 searchParams.get 加 ?? 回退,为 localStorage 读取加类型守卫与 try/catch 回退,禁止用 as MyType 强转外部数据。
- 用 grep 查找形如 \w+\[0\]\. 的不安全访问;为嵌套属性加可选链与空值合并(如 asset.properties?.["my-space"]?.["Asset"]?.name ?? "Unknown"),为可能 undefined 的数组加 (items ?? []),用 items.at(0)?.name ?? "—" 替代 items[0].name。
- 用 grep 检查所有 useEffect;为 addEventListener 补 removeEventListener、为 setInterval/setTimeout 补 clearInterval/clearTimeout、为 CDF streaming/SSE 补 stream.close()、为 fetch/CDF SDK 调用加 AbortController(传入 signal、返回时 abort、用 if (!controller.signal.aborted) 守卫状态更新)、为 Zustand/事件订阅补 unsubscribe。
- 为每个功能补充边界守卫:空数据加空状态检查、单项数据修复 off-by-one、达到 limit 且有更多页时加 "Load more" 或分页提示、并发请求加 AbortController 或请求 ID 过期检查、离线时给出明确错误提示;为 Atlas 工具 execute 函数在开头加参数校验(如 !args.assetId || typeof args.assetId !== "string" 时返回错误输出)。
- 输出结构化报告:按步骤总结已修复内容(编辑的文件与修复的模式),并用表格列出无法自动修复的遗留问题(Severity/File/Line/Issue/Status),无问题的步骤明确写 "No issues found",不得静默跳过。
- 最后按严重程度汇总修复内容,优先列出可能导致数据丢失、生产崩溃或误导性 UI 的遗留 HIGH 问题。
- 若某步骤未发现问题,明确说明 "No issues found",不要跳过任何步骤。
适用边界 · 注意事项
- 仅需报告问题而不需要就地修复代码时
- 需要超出本技能范围的重大架构改动或产品决策时
- 非 Flows 应用或没有 React/TypeScript 代码库时