StackAnalyzerSkill stack-analyzer

Stack Analyzer 技能是一个元技能,用于分析项目的技术栈,并推荐或搭建适合AI辅助开发的技能。它能够自动检测项目中使用的编程语言、框架、测试框架、数据库和构建工具,并根据这些信息推荐相应的技能。此外,它还可以在项目仓库中搭建项目特定的技能,以增强开发效率和项目质量。

DevOps 0 次安装 0 次浏览 更新于 3/3/2026

Stack Analyzer 技能

一个元技能,用于分析项目的技术支持栈,并为 AI 辅助开发推荐或搭建适当的技能。此技能在 /ai-dev-kit:setup 期间自动运行,但也可以在手动调用。

设计原则

插件隔离

不留痕迹:ai-dev-kit 插件必须能够完全移除,不留任何痕迹。这项技能执行以下操作:

组件 位置 卸载时
通用技能 plugins/ai-dev-kit/skills/ 随插件一起移除
项目特定技能 目标仓库 .claude/skills/ 用户选择
生成的清单 .claude/skills/_generated.json 用户选择

通用性

所有 ai-dev-kit 技能都是框架通用的,不针对任何特定代码库:

模式 正确 错误
BAML 技能 通用 BAML 模式 CodeGraph-DE 特定 DTOs
Supabase 技能 一般最佳实践 特定于 Book-Vetting 的查询
Schema 对齐 适用于任何 ORM 假设特定模型

变量

变量 默认值 描述
AUTO_ACTIVATE false 自动激活推荐的通用技能
SCAFFOLD_SKILLS false 在目标仓库中搭建项目特定技能
OUTPUT_REPORT true 生成推荐报告
MANIFEST_PATH .claude/skills/_generated.json 生成清单的路径

指令

MANDATORY - 按照以下工作流程顺序进行。

  1. 运行 library-detection 技能以获取项目栈
  2. 将检测到的栈与技能推荐匹配
  3. 报告推荐的通用技能
  4. 可选择性地搭建项目特定技能
  5. 如果创建了技能,则更新生成的清单

红旗 - 停止并重新考虑

如果你即将:

  • 为特定代码库创建技能(与通用模式相对)
  • 将项目特定技能放在插件目录中
  • 跳过生成清单的更新
  • 为未检测到的技术推荐技能

停止 -> 验证检测结果 -> 使用通用模式 -> 然后继续

工作流程

1. 检测项目栈

首先调用 library-detection 技能:

读取并执行 plugins/ai-dev-kit/skills/library-detection/SKILL.md

这将返回:
- 语言(typescript, python 等)
- 框架(react, fastapi 等)
- 测试框架(vitest, pytest 等)
- 数据库(postgresql, sqlite 等)
- 构建工具(vite, uv 等)

2. 与技能推荐匹配

./config/recommendations.yaml 加载推荐,并匹配:

对于每个检测到的技术:
  IF 匹配技能激活规则:
    添加到 recommended_skills 列表
  IF 匹配搭建模板规则:
    添加到 scaffold_candidates 列表

3. 生成报告

创建推荐报告:

# 堆栈分析报告

## 检测到的栈
- **语言**:TypeScript, Python
- **框架**:Next.js, FastAPI
- **数据库**:PostgreSQL(通过 Supabase)
- **测试**:Vitest, Pytest
- **AI/ML**:BAML

## 推荐的通用技能(插件中)

| 技能 | 原因 | 状态 |
|-------|--------|--------|
| baml-integration | 在 baml_src/ 中检测到 BAML | 激活 |
| supabase-patterns | 发现 Supabase 依赖 | 激活 |
| schema-alignment | 检测到 SQLAlchemy | 激活 |

## 项目特定技能(可搭建)

| 模板 | 触发器 | 输出 |
|----------|---------|--------|
| project-research | 发现 3 个研究子代理 | .claude/skills/{project}-research/ |
| project-domain | 在 src/models/ 中发现模型 | .claude/skills/{project}-domain/ |

4. 搭建项目特定技能(如果启用)

对于每个搭建候选:

# 1. 将模板复制到目标仓库
cp -r ./templates/{template}/ ${TARGET_REPO}/.claude/skills/{project}-{template}/

# 2. 在 SKILL.md 中添加生成头
echo "<!-- Generated by ai-dev-kit:recommend-skills on $(date) -->" | \
  cat - ./templates/{template}/SKILL.md > temp && mv temp SKILL.md

# 3. 使用项目名称自定义
sed -i "s/{project}/${PROJECT_NAME}/g" SKILL.md

5. 更新生成的清单

创建或更新 .claude/skills/_generated.json

{
  "generated_by": "ai-dev-kit:recommend-skills",
  "generated_at": "2025-12-24T10:00:00Z",
  "plugin_version": "1.0.0",
  "skills_created": [
    {
      "path": ".claude/skills/book-vetting-research/",
      "template": "project-research",
      "created_at": "2025-12-24T10:00:00Z"
    }
  ],
  "docs_created": [
    "ai-docs/libraries/baml/"
  ],
  "cleanup_instructions": "These files were generated by ai-dev-kit. You may delete them after uninstalling the plugin."
}

技能推荐规则

通用技能(激活)

技能 检测标准
baml-integration baml_src/**/*.baml 存在 OR baml-py/baml 依赖
supabase-patterns supabase 依赖 OR supabase/migrations/ 存在
schema-alignment sqlalchemy/prisma/django/alembic 检测到
treesitter-patterns tree-sitter/tree_sitter 依赖
security-audit 总是推荐用于生产代码库

项目特定技能(搭建)

模板 检测标准
project-research .claude/commands/**/research/** OR subagent.*research 模式
project-domain src/models/** OR services/domain/** 存在
project-testing 标准框架之外的自定义测试模式

模板

project-research

针对有研究型子代理的项目:

templates/project-research/
├── SKILL.md          # 自定义研究模式
├── cookbook/
│   └── research-workflow.md
└── reference/
    └── source-types.md

project-domain

针对有丰富领域模型的项目:

templates/project-domain/
├── SKILL.md          # 领域词汇和模式
├── cookbook/
│   └── entity-relationships.md
└── reference/
    └── domain-glossary.md

project-testing

针对有自定义测试需求的项目:

templates/project-testing/
├── SKILL.md          # 自定义测试模式
├── cookbook/
│   └── test-fixtures.md
└── reference/
    └── coverage-requirements.md

集成

与 /ai-dev-kit:setup 集成

在棕地设置期间自动运行:

1. 用户运行:/ai-dev-kit:setup
2. 设置调用:stack-analyzer 技能
3. 堆栈分析器:
   - 检测栈
   - 显示推荐
   - 提示:"激活推荐的技能? [y/N]"
   - 如果是,标记技能为激活
   - 提示:"搭建项目特定技能? [y/N]"
   - 如果是,创建目标仓库中的能力
4. 设置继续执行其余步骤

与 /ai-dev-kit:recommend-skills 集成

直接调用:

# 仅报告(无更改)
/ai-dev-kit:recommend-skills

# 自动激活通用技能
/ai-dev-kit:recommend-skills --auto-activate

# 搭建项目特定技能
/ai-dev-kit:recommend-skills --scaffold

# 所有选项
/ai-dev-kit:recommend-skills --auto-activate --scaffold --output=report.md

输出架构

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "detected_stack": {
      "type": "object",
      "description": "来自 library-detection 技能的输出"
    },
    "recommended_skills": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "skill": {"type": "string"},
          "reason": {"type": "string"},
          "status": {"enum": ["recommended", "active", "not_applicable"]}
        }
      }
    },
    "scaffold_candidates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "template": {"type": "string"},
          "trigger": {"type": "string"},
          "output_path": {"type": "string"},
          "created": {"type": "boolean"}
        }
      }
    },
    "manifest_updated": {"type": "boolean"},
    "manifest_path": {"type": "string"}
  }
}

## 卸载时的清理

当 ai-dev-kit 插件被移除时,通知用户:

```markdown
## ai-dev-kit 卸载通知

以下文件由 ai-dev-kit 生成,并在卸载后保留:

**项目特定技能:**
- .claude/skills/book-vetting-research/
- .claude/skills/book-vetting-domain/

**文档:**
- ai-docs/libraries/baml/
- ai-docs/libraries/supabase/

查看 .claude/skills/_generated.json 获取完整列表。

如果不再需要,这些文件可以安全删除。