skills/shared/project-profiling/SKILL.md
扫描项目文件和目录结构,推断技术栈和架构模式,通过交互确认生成项目画像文件(AGENTS.md)。适用于项目初始化阶段。
npx skillsauth add leikegeek/coding-exoskeleton project-profilingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
扫描当前业务项目的文件结构、构建配置和已有文档,推断技术栈和架构模式,通过交互式确认生成标准化的项目画像文件(AGENTS.md),为后续所有流程提供持久化的项目上下文。
按优先级扫描以下文件,确定语言和构建工具:
| 文件 | 语言 | 构建工具 |
|------|------|----------|
| pom.xml | Java | Maven |
| build.gradle / build.gradle.kts | Java/Kotlin | Gradle |
| package.json | JavaScript/TypeScript | npm/yarn/pnpm |
| go.mod | Go | Go Modules |
| Cargo.toml | Rust | Cargo |
| pyproject.toml / setup.py / requirements.txt | Python | pip/poetry |
| *.csproj / *.sln | C# | .NET |
| Gemfile | Ruby | Bundler |
从依赖声明中识别主要框架:
Java 生态:
pom.xml 中包含 com.alibaba.cola → COLA 架构pom.xml 中包含 org.springframework.boot → Spring Bootpom.xml 中包含 io.quarkus → QuarkusJavaScript/TypeScript 生态:
package.json 中包含 vue + vite / @vitejs/plugin-vue → frontend-vue3package.json 中包含 react + umi / umi-plugin-react → frontend-react-umipackage.json 中包含 react → React(自定义前端)package.json 中包含 vue → Vue(自定义前端)package.json 中包含 next → Next.jspackage.json 中包含 express / koa / nestjs → Node.js 后端Python 生态:
requirements.txt 或 pyproject.toml 中包含 django → Djangofastapi → FastAPIflask → Flask扫描顶层和二级目录,推断架构模式:
| 目录特征 | 架构模式 |
|----------|----------|
| adapter/ + application/ + domain/ + infrastructure/ | COLA |
| controller/ + service/ + dao/ 或 repository/ | MVC 分层 |
| src/ + components/ + views/ | Vue 前端组件化 |
| src/ + pages/ + config/router.config.js | React Umi 前端组件化 |
| cmd/ + internal/ + pkg/ | Go 标准布局 |
| src/ + tests/ + benches/ | Rust 标准布局 |
从依赖和测试目录推断:
| 标志 | 测试框架 |
|------|----------|
| junit-jupiter / junit-platform | JUnit 5 |
| testng | TestNG |
| jest / vitest | Jest / Vitest |
| pytest | pytest |
| testing (Go 标准库) | Go testing |
README.md:提取项目描述.cursor/rules/ 下的规则文件:理解已有规范.gitignore:辅助判断项目类型匹配条件:pom.xml 存在 + com.alibaba.cola 依赖 + COLA 目录结构
激活的专项规范:
skills/backend-common/* + skills/cola-java/cola-architecture/(COLA 架构方案设计)、skills/cola-java/cola-naming/(COLA 命名规范)、skills/cola-java/common-components/rules/backend-common/* + rules/cola-java/cola-architecture.mdc、rules/cola-java/java-naming.mdc、rules/cola-java/transaction-executor.mdc、rules/cola-java/mq-consumer.mdc、rules/cola-java/performance.mdcAGENTS.md 预填内容:
@Transactional匹配条件:package.json 存在 + vue + vite / @vitejs/plugin-vue,常见目录包含 src/views、src/components、src/stores
激活的专项规范:
skills/frontend-common/* + skills/frontend-vue3/*rules/frontend-common/* + rules/frontend-vue3/*AGENTS.md 预填内容:
匹配条件:package.json 存在 + react + umi / umi-plugin-react,常见目录包含 config/router.config.js、src/pages、src/models
激活的专项规范:
skills/frontend-common/* + skills/frontend-react-umi/*rules/frontend-common/* + rules/frontend-react-umi/*AGENTS.md 预填内容:
src/utils/request 与 src/services/modules 优先匹配条件:不符合任何预设 Profile,或用户主动选择自定义
激活的专项规范:仅 skills/shared/* 和 rules/shared/*
AGENTS.md 预填内容:基于扫描结果填写,未识别的字段标记为 [待补充] 并交互确认
扫描完成后,按以下顺序确认或补充信息:
如果 /init 预检发现业务项目已存在 AGENTS.md,个人本地配置仍必须单独检查;项目画像的“跳过/增量/覆盖”不应隐式跳过 ~/.cursor/coding-exoskeleton/user-config.json 的配置入口。
feat(SV-xxxxx): 描述SV-\d+;JIRA 项目可设为 [A-Z]+-\d+,GitHub 可设为 #\d+以下信息属于开发者个人配置,只能写入 ~/.cursor/coding-exoskeleton/user-config.json,不得写入业务项目或 AGENTS.md:
@author)git config --global user.emailfalse;仅当团队要求在 commit message 追加作者说明时开启若用户未填写作者显示名,默认读取 git config --global user.name;仍为空则跳过作者注释生成。
触发规则:
AGENTS.md 且用户选择“仅配置个人作者信息”时,只执行本节,不扫描或改写项目画像。AGENTS.md 且用户选择“增量更新”时,仍执行本节的配置检查。/init 的“仅配置个人作者信息”进入本节。---
techStack: {profile_id}
---
# {项目名称}
## 项目简介
{一段简短描述,说明项目的业务目标和定位}
## 技术栈
- **语言**:{语言及版本}
- **框架**:{主要框架及版本}
- **架构**:{架构模式及分层说明}
- **构建工具**:{构建工具}
- **测试框架**:{测试框架}
- **数据库**:{如已知}
## 模块结构
{自动扫描生成的模块列表,格式如下}
\```
project-root/
├── module-a/ # 模块A说明
├── module-b/ # 模块B说明
└── ...
\```
## 编码规范
{基于 Profile 预填或用户补充}
- 命名规范:{概要}
- 分层/组件边界:{概要}
- 质量与性能约束:{概要}
- 其他:{团队特殊约定}
## 协作约定
- **分支策略**:{Git Flow / Trunk-based / 其他}
- **commit 格式**:`feat(SV-xxxxx): 描述`
- **需求编号格式**:{SV-12345 或团队自定义格式}
- **需求编号正则**:{如 `SV-\d+`、`[A-Z]+-\d+`、`#\d+` 等,用于自动匹配识别}
AGENTS.md:保存到业务项目根目录.cursor/harness-config.json 中的 techStack 字段更新~/.cursor/coding-exoskeleton/user-config.json:可选的全局个人配置(作者名、邮箱等),不进入业务仓库AGENTS.md 只记录项目共享画像,不记录开发者个人作者名、邮箱或签名偏好。.cursor/harness-config.json 只记录项目级 harness 配置,不记录个人作者信息。~/.cursor/coding-exoskeleton/user-config.json,位于业务项目之外,天然不会被 git 提交。@author,只能读取全局个人配置或 git 全局配置,不得从项目文档推断。development
将本地 /code 流程产物、Git 可获取变更或 GitLab Merge Request 链接归一化为统一 AuditContext,供 audit-reviewer 执行业务、质量、安全一体化审计。
tools
在 Vue 3 项目中新增或改造弹窗、表单、导入流程、编辑回填、保存提交和关闭刷新链路时使用。强调独立 Dialog、本地表单状态和封装组件优先。
development
在 Vue 3 + TypeScript 项目中新增或修改 SFC、组合式逻辑、Element Plus/Sh* 包装组件、表格和页面组件时使用。强调 Composition API、组件契约和最小改动。
development
在 Vue 3 项目中接入 swagger/codegen 生成 API、核对生成目录、临时补充接口或替换页面内请求时使用。强调不手改生成物和契约收敛。