用途:在 TypeScript 或 JavaScript 工作区中决定文件与文件夹的创建、移动、拆分和归类位置,采用分形树结构组织源码,降低认知负担。该技能基于 HASH 的文件组织方法。
主要能力与规则:
- 文件与文件夹统一使用 kebab-case 命名,如 create-worker-factory.ts、button.tsx,即使 React 组件也不用 PascalCase 或 camelCase。
- 不创建 index.ts/index.tsx 等索引文件,改用有意义的显式入口文件,如 schema.ts。
- 每个文件视为一个迷你库,暴露一个或多个语义一致的具名导出,文件名概括其用途;单一主导出时以该导出命名;除非框架或外部 API 要求,避免默认导出。
- 文件过大时,在旁边创建同名文件夹存放私有实现,仅由该同名文件导入其私有子树,保持 API 边界。
- 多个同级分支共用的资源放在最近的 shared/ 文件夹,且尽量放深,只覆盖当前消费者,不为假设的未来复用提前上移。
- 工作区内使用相对导入,不引入本地别名;跨工作区用包名导入。
- 单元测试与被测文件同目录,如 foo.ts 与 foo.test.ts;私有拆分文件逻辑复杂时可单独加测试。
- 按代码当前关系组织,而非推测的未来复用;避免宽泛的 components、hooks、utils、types、services 文件夹。
使用方式:在创建或调整 TS/JS 文件与文件夹前,按决策清单判断文件代表的语义概念、命名、私有子树、共享位置、导入方式与测试位置。
适用场景:模块、组件、hooks、辅助函数、类型、测试、脚本与入口文件的组织。
限制:仅针对 TypeScript 与 JavaScript 源码;具体工具集成方式、安装命令与配置暂未提供。