SuperAPI AI 工具集

project-structure

编程与开发

查看项目

更新于 10-16 03:36

技能介绍

用途:把 TypeScript 或 Swift 仓库压缩为单个地图文件,便于智能体一次载入完成全局侦察与候选枚举,实现位于同目录 map.ts。TS 使用仅解析的 TS 编译器,不做类型检查,约 8k 文件耗时约 5 秒,从目标仓库解析 typescript 包,回退到技能目录;Swift 使用 map.ts 内置的零依赖正则/花括号深度扫描器。需 Node ≥23.6(原生类型剥离)或 npx tsx。.ts/.tsx 与 .swift 按扩展名识别,同一仓库可混用。

用法:node <技能目录>/map.ts <repoRoot> [flags]。输出一个地图文件(默认 cwd 下 project-structure-map.txt),stdout 另打印 JSON 统计行(files、symbols、bytes、approxTokens)。常用参数:--out <file> 指定输出;--mode dense|skeleton|exports|sigs|full(默认 dense),dense 为按目录分组、每文件一行,skeleton 每行一个符号仅名称,exports 给出带完整类型签名的导出符号(仅 TS),sigs、full 同理(TS-only,Swift 文件回退为 dense 行);--include a,b,c 限定相对 repoRoot 的路径(含嵌套子目录);--boundary x,y 仅列出边界目录的子模块名与 package.json 一行描述;--include-tests 保留测试文件;--no-docs 去除文档注释;--fn-consts-only 丢弃非函数常量导出;--re-counts 折叠再导出路径为计数;--max-per-kind N 限制每类符号数量;--members(仅 Swift)额外输出一层方法/属性;--public-only(仅 Swift)仅保留 open/public 符号。

适用场景:先以 dense 全仓库地图做侦察,再用 --mode exports --include <子系统>(TS)或 --members --include <子系统>(Swift)做重构决策;大仓库可配合边界与计数压缩以适配上下文窗口。地图结论属线索而非定论,行动前应用 grep 复核路径与主张。限制:Swift 扫描器假设每行一个声明,同行成员或分号分隔的第二个声明不会输出;裸 /…/ 正则字面量不被屏蔽,可能使花括号深度失步;字符串插值内注释/原始字面量、emoji 标识符、#if 分支为尽力而为。类型模式仅在 TS 生效,Swift 回退。修改 map.ts 后可运行 node selftest.mjs 对照样例自测。