TypeScript 最佳实践
TypeScript 最佳实践。在读取或编辑任意 .ts、.tsx 文件时使用。
使用场景/文件系统与本地项目
读写项目文件、执行本地命令的基础能力。几乎所有开发工作流的底座。
共匹配 1,510 个资源 · 第 24 / 32 页
文件系统 MCP 是本地开发工作流的底座:让 AI 列出目录、读取与创建文件、搜索代码、批量重命名与移动。官方参考实现 @modelcontextprotocol/server-filesystem 提供了带权限白名单的基础工具集,几乎所有「AI 改代码」场景都以它为第一块拼图。
配合 Shell / 终端类 MCP,AI 可以完成「读项目 → 改代码 → 跑构建 → 看报错」的完整闭环;配合 Git MCP 则能做分支操作与历史检索。注意:能力越强越要圈边界——只把需要的项目目录加入 allowed dirs,敏感路径(密钥、生产配置)绝不暴露。
在 Cursor / Claude Code / VS Code 中,Filesystem MCP 常与内置文件工具重叠。实践建议:编辑器内置工具负责当前项目,Filesystem MCP 负责跨目录任务(如同时操作多个仓库或生成物输出目录)。
TypeScript 最佳实践。在读取或编辑任意 .ts、.tsx 文件时使用。
把可用的 agent 原型带至 Microsoft Foundry 上可扩展、可观测的生产部署。涵盖部署模式(客户端托管、托管 agent、agent 工作流)、agent 生命周期、模型路由、响应缓存、评估门禁、人工审批环节、基于 OpenTelemetry 的可观测性、成本优化,以及用 AI Smoke Test 动作对已部署 agent 做冒烟测试。基于《AI Agents for Beginners》第 16 课。适用于:将 agent 部署到生产、为 agent 扩容、Microsoft Foundry 托管 agent、Foundry Agent Service、模型路由、响应缓存、评估门禁、发布门禁、人工审批工作流、agent 可观测性、agent 追踪、agent 成本优化、对托管 agent 做冒烟测试、生产客服 agent。不适用于:初次构建 agent(请从第 01 课开始)、在本地设备上运行 agent(用 local-ai-agents / 第 17 课)、与 agent 无关的 Azure 基础设施开通、非 Foundry 的部署目标。
长文写作的机构口吻:清晰、直接、自然、适合朗读。用于语气打磨、遣词调整、重写,或处理读起来像公司公文/AI 味道的文字。
把可用的 agent 原型带至 Microsoft Foundry 上可扩展、可观测的生产部署。涵盖部署模式(客户端托管、托管 agent、agent 工作流)、agent 生命周期、模型路由、响应缓存、评估门禁、人工审批环节、基于 OpenTelemetry 的可观测性、成本优化,以及用 AI Smoke Test 动作对已部署 agent 做冒烟测试。基于《AI Agents for Beginners》第 16 课。适用于:将 agent 部署到生产、为 agent 扩容、Microsoft Foundry 托管 agent、Foundry Agent Service、模型路由、响应缓存、评估门禁、发布门禁、人工审批工作流、agent 可观测性、agent 追踪、agent 成本优化、对托管 agent 做冒烟测试、生产客服 agent。不适用于:初次构建 agent(请从第 01 课开始)、在本地设备上运行 agent(用 local-ai-agents / 第 17 课)、与 agent 无关的 Azure 基础设施开通、非 Foundry 的部署目标。
当开发者要为 Opik 的某个功能、页面或分支添加、编写或创建端到端测试时使用——例如「为实验对比页添加 e2e 测试」「为刚做的功能写测试」「这个分支的 e2e 测试」「给数据集条目流程加测试」。在 tests_end_to_end/e2e/ 中跑完整个循环——分析功能与前端代码、用 Playwright MCP 探索真实 UI、编写 Page Object Model + spec,并在本地运行直到通过。
重构 Langfuse 前端代码中可避免的 useEffect 用法。适用于:新增、评审或删除 effect;用查询数据初始化表单或本地 UI 状态;同步客户端与服务端状态;把 mutation 或异步工作流移出组件;清理某个前端子模块的全部 effect;或评审某个 effect 是否有合理的外部系统职责。
在构建、修改或重构 Langfuse 大型前端特性时使用:虚拟列表、大表格、controller 组件、特性局部状态、Zustand store、行选择、高频 UI 状态以及渲染性能问题。在编写任何 useEffect(尤其是把拉取到的数据同步进 state 的那种)、把已加载数据接入表单 initialValues/defaultValues、或添加 useCallback/useMemo 之前也应先阅读。
Langfuse 共享的代码审查流程。在审查 PR、分支、diff 或本地改动以确认正确性、回归、风险与缺失测试时使用。先从 references/review-checklist.md 中的仓库专属审查规则入手,并在改动涉及相应领域时结合各包的 AGENTS.md 及相关共享技能。
把任何 Operate 页面从 operate/client/ 迁移到 orchestration cluster webapp 时使用。务必先阅读 frontend-migrator——本技能补充 Operate 专属覆盖规则、迁移循环协议与逐页面的上下文。
React/TypeScript 应用的前端开发准则。包含 Suspense、懒加载、useSuspenseQuery、按 features 目录组织文件、MUI v7 样式、TanStack Router、性能优化与 TypeScript 最佳实践等现代模式。在创建组件、页面、功能模块、拉取数据、写样式、路由或处理前端代码时使用。
移除分支改动或明确文件列表中的 AI 生成代码异味(slop)。先用回归测试锁定行为,再通过批次为 5 的并行 deep agent 执行分类清理,最后用质量门禁验证。覆盖 10 类 slop,包括性能等价性、过度复杂(对象标注、if/elif 分支链)与超大模块(250+ 有效 LOC,并强制做模块化重构)。当用户要求 “remove slop”“clean AI code”“deslop”“clean up AI-generated code”“remove AI slop” 或清理近期改动中 AI 生成模式时务必使用。触发词:remove ai slops、clean ai code、deslop、cleanup AI generated、remove AI slop、clean up AI-generated code、strip slop、ai-slop cleanup。
如何为 agent-native 应用或模板写出优秀的 agent 指令:AGENTS.md、skills 及工具/动作描述。在撰写或评审 AGENTS.md、编写 SKILL.md、措辞 action 描述,或决定内容该放指令、skill 还是记忆时使用。
按写作指南审查或撰写文档/文案。当被要求“审查我的文档”“检查写作风格”“审计文案”“评审文档语气语调”“对照写作手册检查此页”时使用——并在编写或编辑 docs/src/content/docs/ 下的内容时主动应用,这是本仓库的默认文档风格。
查找并读取 Code OSS 开发版构建中带时间戳的进程日志,包括 main.log、renderer.log、扩展宿主日志与 agenthost.log。若日志来自 Export Agent Host Debug Logs 导出的压缩包,请改用 agent-host-logs。
适用于任何编码任务(编写、重构、修复、审查)的偷懒资深开发模式:YAGNI、标准库优先、不做未经要求的抽象。不适用于非编码请求。
对照安全基线评审 MCP(Model Context Protocol)server、客户端与工具处理器的实现源码——认证、会话、限流、输入 schema 校验、官方 SDK 使用、RCE 向量及 OWASP MCP Top 10——产出带文件/行证据的报告。适用场景:发布前评审 MCP server 实现的安全性;对照基线控制项(MCP-01 至 MCP-05)与 OWASP MCP Top 10 检查 server;审计工具中的 RCE 向量(命令/代码注入、不安全反序列化、路径穿越、SSTI、依赖劫持、SSRF);验证网络暴露 server 的认证、会话、限流与输入校验;评审处理不可信 server 响应和会话 ID 的 MCP 客户端代码;以及"帮我做这个 MCP server 的安全评审""我的 MCP server 实现安全吗"之类请求。
制定并执行将项目从 mem0 开源/自托管 SDK(本地 Memory 类)迁移到 mem0 Platform 托管 SDK(MemoryClient 类)的方案。当开发者想把 mem0 从 OSS/自托管迁移到托管 API 时使用,例如"把 mem0 设置迁移到平台""从自托管 mem0 切换到 MemoryClient""改用 mem0 API key 而非本地 Qdrant""把 mem0 迁到云端/托管服务""用平台配置替换本地向量库+嵌入器配置"。适用于 Python(from mem0 import Memory → from mem0 import MemoryClient)和 TypeScript/JavaScript(import { Memory } from "mem0ai/oss" → import MemoryClient from "mem0ai")。即使用户没说"迁移"二字,但明显希望现有 mem0 集成改为访问托管平台时也应触发。先产出可审阅的迁移计划,经开发者确认后执行。
面向 Django/Optimo 风格仓库的严格后端预提交与原子提交技能。强制本地 AGENTS.md / CLAUDE.md、pre-commit 钩子、.security/* 辅助工具以及 Monty 的后端工程品味——提交信息中不带 AI 签名。
在 Agent Framework 仓库开发 Python 代码的标准、约定与模式。在编写或修改 python/ 目录下的 Python 源文件时使用。
用清爽的重构取代层层淤积。当一次变更暴露出重复概念、本地适配器、过时的职责归属、兼容性包装、平行抽象,或某个不断堆积众多职责的超大模块,或任何代码区域出现“先糊上去再说”的压力时使用。
端到端讲解当前分支的完整逻辑与流程,让毫无前置知识的人也能理解、审查并复现。从分支 diff 界定变更范围,追踪其触达的每一层流程(前端工具/hook/组件、Java controller/service/endpoint、Python 引擎、配置、i18n、测试),产出带 Mermaid 图(时序/流程/架构)、可点击引用的带注释文件地图、前后行为对比、涉及 UI 时的截图、「本地试跑」章节与边界情况/风险的自包含走查文档。当被要求做功能或分支走查、「解释这个分支做了什么」、设计/逻辑说明、PR 审查者上手或交接文档时使用。加 --html 可同时输出渲染的 HTML 版;--no-screens 跳过截图。
测试文件约定:setup 函数、工厂、Result 断言助手、组织方式、类型测试、命名,以及删除低价值测试。使用场景:「写测试」「加个测试」「修这个测试」「删测试」「清理测试」「审查测试」,或修改 *.test.ts 文件。
解释、优化、编写并记录 SQL 查询。当需要解释某个 SQL 查询、优化慢 SQL、把 SQL 转译成给非技术干系人看的通俗表达、依据自然语言描述写出查询或产出查询文档时使用。产出通俗解释、带注释的优化查询,或涵盖输出结构、假设与已知限制的数据字典。支持 PostgreSQL、MySQL、BigQuery、Snowflake 和标准 SQL。
判定新测试是否值得存在并强制其高效,保护 CI 不被低价值测试堆爆。在新增或大幅修改任何 pytest、Jest、Playwright 测试之前——即 agent 或工程师准备为新功能、bug 修复、PR 写测试时使用。前置两道门槛:价值门槛(每个测试必须能捕获现有测试未覆盖的真实回归;通过公共接口测行为而非实现细节;近似重复折叠为参数化用例)与效率门槛(确定性、隔离、快;选最便宜的测试层级;用 Django TestCase 而非 TransactionTestCase;不许 sleep、不许真实联网)。含"不要写它"决策树。修复既有 flaky 测试用 /fixing-flaky-tests;若本门槛判定需要 Playwright 测试,用 /playwright-test 处理写法。
Phoenix AI 可观测性平台的前端开发准则。在 app/ 目录编写、审查或修改 React 组件、TypeScript 代码、样式或 UI 功能时使用。任何前端任务都会触发——新组件、UI 变更、样式、无障碍修复、表单处理或组件重构。用户询问本项目前端约定或组件模式时也使用。设计系统规则(错误展示、布局、对话框、令牌)请改用 phoenix-design 技能。
Golang 的安全最佳实践与漏洞预防,覆盖注入(SQL、命令、XSS)、加密、文件系统安全、网络安全、Cookie、密钥管理、内存安全与日志。在编写、评审或审计 Go 代码安全性,或处理涉及加密、I/O、密钥管理、用户输入、鉴权的风险代码时应用,也包含安全工具的配置。
为后端 Django 项目创建集成 Ralph Wiggum Loop 的结构化计划目录。生成 PLAN.md(任务索引)、任务文件与 RALPH-PROMPT.md(供 ralph-loop 使用的实际提示词)。用于需要质量闸门与验证的严谨迭代式实现。
Next.js 16 App Router 页面混合静态与动态内容——Cache Components 模型下的 Partial Prerendering(PPR)。涵盖:用 cacheComponents 启用 PPR(已移除的 experimental.ppr / experimental_ppr 标志)、默认动态的渲染模型反转、Suspense 的静态外壳/动态空洞边界、'use cache' 指令(自动键、cacheLife/cacheTag、children/action 透传、运行时值作 props、无服务器环境的持久性)、异步运行时 API 与 connection() 制造非确定性、页面组合(从单个空洞到并行仪表盘,再到用 use() 把 Promise 流式传入 Client Component),以及表单/向导中用 updateTag 实现读己之写并保持 Activity 状态。触发词:PPR、cacheComponents、'use cache'、Suspense 流式渲染、部分预渲染或静态外壳工作——即使未明确点名。
只要在 Actual Budget 仓库中新增、撰写、起草或修复一条发布说明,就使用本技能。它就是随代码改动一起发布的 changelog 条目,以 Markdown 文件形式存放在 `upcoming-release-notes/`。触发请求如添加发布说明、写 changelog 条目、为这个 PR 或改动补发布说明、创建 upcoming release note,或在本仓库完成一个面向用户的改动、下一步自然就是补发布说明的任何时刻。这些说明是给人读的,因此必须短、用平实语言、不含技术细节。写成 commit message 风格或带实现术语,产出会在评审中被退回重写。
使用 KIND(Kubernetes IN Docker)搭建并管理本地 Kubernetes 集群。在本地测试 Kubernetes 应用或开发云原生工作负载时使用。
编写、脚手架化或修改 Nuclear 插件时使用。涵盖插件结构、manifest、入口点、provider 类型、可用 API 与发布。触发语包括 create a plugin、write a plugin、plugin scaffold、streaming provider、metadata provider。
在移交前验证 ioredis 的代码变更。当 agent 变更或审查运行时 TypeScript、Redis 命令支持、生成的 typings、测试、与行为关联的文档、构建工具、发布敏感文件,或任何需要选择并运行正确本地验证命令的任务时使用。
使用 TRL(Transformer Reinforcement Learning)或 Unsloth,配合 Hugging Face Jobs 基础设施训练或微调语言模型与视觉模型。涵盖 SFT、DPO、GRPO 与奖励建模训练方法,以及用于本地部署的 GGUF 转换。
为清晰度简化代码。在不改变行为的前提下为清晰而重构时使用;当代码能工作但比应有的更难阅读、维护或扩展时使用;当审查的代码积累了不必要的复杂度时使用。
对当前 git diff 或明确文件范围进行并行的只读多代理审查,发现行为回归、安全或隐私风险、性能与可靠性问题、契约或测试覆盖缺口。当用户要求 review swarm、并行审查、diff 审查时使用。
针对 git diff 或明确文件范围审查复用性、代码质量、效率、清晰度与规范问题,随后可选择性应用安全的 Codex 修复。当用户要求“简化代码”“审查改动的代码”“检查代码复用”“审查代码质量”时使用。
针对使用查询/缓存层的 React 或 React Native 应用写路径的可移植、框架无关规范。固化乐观更新的完整生命周期(取消进行中的查询 → 快照所有受影响缓存 → 立即打补丁 → 出错时原样回滚 → 完成后失效刷新……)
为任意 REST API 生成客户端 SDK 代码、API 封装库、请求/响应模型及语言专属的使用模式。当用户要求“生成 SDK”“编写客户端库”“创建 API 封装”“从我的 API 生成 TypeScript 类型”“写一个 Python……”时使用。
本 monorepo 的测试实践——在单元与端到端测试之间取舍、测试文件位置、tsconfig.test.json 的角色、如何驱动 Playwright、如何编写/适配 UI/端到端测试,以及该用哪个测试运行器(vitest 还是 jest)。当用户要求添加、编写或扩展测试、补充覆盖率、创建测试文件、在新包里搭建测试、提到 vitest/jest,或引用既有 *.test.ts 文件时,必须先调用本技能再做任何代码搜索或文件读取。同等适用于单元测试与端到端/UI 测试——后者会路由到 Playwright-MCP 优先的探索流程,与常规代码搜索工作流不同。
审计代码库或目录的安全问题(硬编码密钥、注入、不安全反序列化、弱加密、授权缺口),并输出结构化发现报告。当用户要求安全审查、审计或检查代码漏洞时使用。仅报告——绝不修改。
在本仓库中调试 Cursor 客户端 Agent/本地模式/工具/后端存储/Provider 回放失败时使用,尤其是状态/上下文历史存储重构之后:只读分诊已安装的应用包、将已安装客户端行为与仓库代码关联、把用户提供 id 映射到会话/请求/模型调用证据、从调试日志回放 Provider 请求,或快速定位当前的客户端/后端/协议/日志文件
在提取、格式化、刷新或调查 .cursor-app-formatted 下已安装 Cursor.app 包的只读格式化快照时使用;包括 git-ignore 规则、快照生成工作流,以及只查看格式化代码、不修补快照或已安装应用的规则
为新功能、既有代码重构,或包、设计、架构、基础设施升级创建新的实施计划文件。
执行业务 pod 中销售环节的一次 tick(ADR-164 §4.1,Phase 2)。加载 templates/sales.json,按 pod-schema 校验,在 ruflo 的 agent 注册表中解析 agent,通过 Phase-2 基于文件的占位账本预留预算(原子 SQLite 记账留待 ADR-164.1 的 Phase 3),为每个 agent 构造 dry-run prompt,经 federation_bbs_publish 的 JSONL 存储把摘要信封发布到 sales room,并输出结构化 {podName, tickId, agentsRan, totalUsd, envelopeId, status} 行供 /loop 摄取。默认 dry-run;--live 留给 Phase 3。
如何组织前端代码——关注点分离(UI / 逻辑 / 数据 / 类型)、文件职责、状态分层、API 服务、Schema 验证,以及 React/Next 和 Vue 的框架规范。提供结构规则,非视觉设计。
如何编写 DESIGN.md 文件——在任何 UI 构建前必须存在的机器可读设计令牌 + 人类理由格式。YAML front-matter 令牌架构(颜色、字体、间距、圆角、组件)、类型系统、令牌引用及标准章节顺序。
当你(AI Agent)在 Windows 上运行且处于 WSL 之外(Git Bash/MSYS/PowerShell shell)并需要执行任何 docker / docker compose 命令时使用。Docker Desktop 运行在 WSL2 引擎上,因此命令必须通过 wsl.exe 在 WSL 内重新执行——从 Windows shell 在网络/SMB 盘(Z:、UNC)上运行会破坏 bind-mount 路径。若你的 shell 已在 WSL 内则不适用。触发词:docker、docker compose、docker-compose、container、bind mount、volume、'is a directory'、mount source wrong、Windows + Docker Desktop、WSL
CSS 应该放在哪里。Claude 默认会堆一个巨大的 <style> 块或散落 style="..." 属性,而不是把样式放进 .css 文件并链接。在构建或编辑网页/组件,或即将编写 style 属性或嵌入式样式块时使用。涵盖默认使用外部样式表、为何内联 style 属性是个陷阱,以及内联确实正确的少数场景(通过自定义属性传动态值、关键 CSS、单文件产物、邮件)。
默认不会。官方实现要求启动时显式传入允许访问的目录列表,AI 只能触达这些路径。这也是它比裸 Shell 更安全的原因。
跨项目目录、批量文件整理、无编辑器的脚本环境(如 CLI Agent 操作仓库外路径)时才需要;单项目内编辑用内置工具更省 token。
用版本控制兜底(删除可回滚)、只挂载必要目录、要求 AI 删除前列出目标清单确认,破坏性批量操作放沙箱先演练。