代码风格指南注入器Skill styleguide

此技能用于自动化检测项目使用的编程语言,并根据检测结果将对应的代码风格指南注入到项目的CLAUDE.md文件中,以提供一致的编码规范。关键词:代码风格指南、自动化、项目语言检测、CLAUDE.md、开发工具。

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

name: styleguide description: 检测项目语言并将代码风格指南注入到CLAUDE.md中。为所有Claude代码交互提供一致的编码约定。 argument-hint: “[–remove]” allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion disable-model-invocation: true

Styleguide — 代码风格指南注入

检测项目语言,选择匹配的风格指南,并将它们注入到宿主项目的CLAUDE.md中。

参数

$ARGUMENTS

  • --remove: 从CLAUDE.md中移除注入的代码风格部分并退出。
  • 默认(无参数): 检测语言并注入/更新风格指南。

步骤 1: 处理 --remove

如果$ARGUMENTS包含--remove:

  1. 读取项目的CLAUDE.md
  2. 查找标记<!-- maestro:code-styleguides:start --><!-- maestro:code-styleguides:end -->
  3. 如果找到,移除标记之间及包括标记的所有内容(加上任何周围的空行)
  4. 写入更新后的文件
  5. 报告:“已从CLAUDE.md中移除代码风格指南”
  6. 停止。

如果标记未找到,报告:"在CLAUDE.md中未找到代码风格指南"并停止。

步骤 2: 检测项目语言

扫描项目根目录以确定使用哪些语言。收集所有匹配项——一个项目可以使用多种语言。

检测规则(检查所有,收集匹配项):

配置文件 语言 指南文件
package.json JavaScript javascript.md
tsconfig.jsontsconfig*.json TypeScript typescript.md
pyproject.tomlsetup.pyrequirements.txtPipfile Python python.md
go.mod Go go.md
CMakeLists.txtsrc/中的*.cpp/*.cc/*.cxx C++ cpp.md
*.csproj*.sln C# csharp.md
pubspec.yaml Dart dart.md
根目录或src/中的*.html 或 根目录或src/中的*.css/*.scss HTML/CSS html-css.md

使用Glob检查每个配置文件。尽可能并行运行这些检查:

Glob(pattern: "package.json")
Glob(pattern: "tsconfig*.json")
Glob(pattern: "pyproject.toml")
Glob(pattern: "setup.py")
Glob(pattern: "requirements.txt")
Glob(pattern: "Pipfile")
Glob(pattern: "go.mod")
Glob(pattern: "CMakeLists.txt")
Glob(pattern: "*.csproj")
Glob(pattern: "*.sln")
Glob(pattern: "pubspec.yaml")

TypeScript细化: 如果找到package.json,也检查tsconfig.json。如果两者都存在,包括JavaScript和TypeScript指南。如果只有package.json存在(无tsconfig),只包括JavaScript。

如果未检测到语言: 询问用户要包括哪些语言:

AskUserQuestion(
  questions: [{
    question: "未检测到语言配置文件。该项目使用哪些语言?",
    header: "选择语言",
    options: [
      { label: "JavaScript", description: "Google JavaScript风格指南" },
      { label: "TypeScript", description: "Google TypeScript风格指南" },
      { label: "Python", description: "Google Python风格指南" },
      { label: "Go", description: "Effective Go" },
      { label: "C++", description: "Google C++风格指南" },
      { label: "C#", description: "Google C#风格指南" },
      { label: "Dart", description: "Effective Dart" },
      { label: "HTML/CSS", description: "Google HTML/CSS风格指南" }
    ],
    multiSelect: true
  }]
)

步骤 3: 与用户确认

呈现检测到的语言并请求确认:

AskUserQuestion(
  questions: [{
    question: "检测到的语言:{list}。将这些风格指南注入到CLAUDE.md中吗?",
    header: "确认风格指南",
    options: [
      { label: "是,注入", description: "添加检测到的语言的风格指南+通用原则" },
      { label: "自定义", description: "让我选择要包括的语言" },
      { label: "取消", description: "不修改CLAUDE.md" }
    ],
    multiSelect: false
  }]
)

当选择"自定义"时: 显示步骤2后备中的多选语言选择器。 当选择"取消"时: 停止而不修改任何内容。

步骤 4: 组装风格指南部分

构建注入内容:

  1. 以开始标记开头:<!-- maestro:code-styleguides:start -->
  2. 添加节标题:## 代码风格指南
  3. 添加注释:<!-- 由Maestro /styleguide自动生成。请勿手动编辑。重新运行/styleguide以更新。 -->
  4. 添加归属:> 来源: [conductor风格指南](https://github.com/gemini-cli-extensions/conductor/tree/main/templates/code_styleguides)
  5. 从Maestro插件的风格指南库中读取并附加general.md
  6. 对于每个检测到的语言,读取并附加相应的指南文件
  7. 以结束标记结尾:<!-- maestro:code-styleguides:end -->

定位指南文件: 指南模板位于此技能的references/目录中(.claude/skills/styleguide/references/)。要找到它们:

# 首先尝试项目路径(如果Maestro是当前项目)
ls .claude/skills/styleguide/references/ 2>/dev/null

# 回退到全局插件路径
find ~/.claude/plugins/marketplaces -path "*/maestro/.claude/skills/styleguide/references" -type d 2>/dev/null

首先尝试项目路径,然后回退到全局插件路径。

组装内容示例:

<!-- maestro:code-styleguides:start -->
## 代码风格指南

<!-- 由Maestro /styleguide自动生成。请勿手动编辑。重新运行/styleguide以更新。 -->

> 来源: [conductor风格指南](https://github.com/gemini-cli-extensions/conductor/tree/main/templates/code_styleguides)

{general.md的内容}

{typescript.md的内容}

{python.md的内容}
<!-- maestro:code-styleguides:end -->

步骤 5: 注入到CLAUDE.md中

如果项目根目录中存在CLAUDE.md:

  1. 读取文件
  2. 检查标记是否已存在(<!-- maestro:code-styleguides:start --><!-- maestro:code-styleguides:end -->
    • 如果找到标记: 用新的组装内容替换标记之间及包括标记的所有内容
    • 如果没有标记: 在文件末尾附加组装内容,前面加一个空行
  3. 写入更新后的文件

如果CLAUDE.md不存在:

  1. 创建CLAUDE.md,包含最小头部和组装内容:
    # 项目
    
    {组装风格指南内容}
    

步骤 6: 报告

输出摘要:

## 已注入风格指南

**语言**: {语言列表}
**文件**: CLAUDE.md
**包括的指南**:
- 通用代码风格原则
- {语言1}风格指南
- {语言2}风格指南
- ...

要更新:`/styleguide`
要移除:`/styleguide --remove`