项目简介

'Claude' 是一个为 Elixir 语言设计的集成库,旨在提升 Anthropic 的 Claude Code 大型语言模型 (LLM) 在编写 Elixir 代码时的效率和质量。它通过自动执行代码格式化检查、编译错误检测,并整合项目最佳实践等上下文信息,以标准化的方式提供给 Claude Code,确保其生成的代码符合项目规范,减少后期修正成本。

主要功能点

  • 智能钩子: 自动在代码修改、提交等关键环节触发检查,包括代码格式化、编译错误捕获等,确保代码质量。
  • 子代理: 允许创建专业的 AI 助手,这些助手能够根据项目依赖自动集成其最佳实践,为 Claude Code 提供领域特定的专业指导。
  • MCP 服务器支持: 能够与 Phoenix 等 Elixir 开发工具无缝集成,通过配置自动生成 Model Context Protocol (MCP) 服务器定义,为 LLM 客户端提供丰富的、结构化的项目上下文信息。
  • 最佳实践: 自动同步项目依赖库的用法规则到 'CLAUDE.md' 文件,确保 Claude Code 在编写代码时遵循所有相关库的特定规范和最佳实践。

安装步骤

  1. 环境要求:
    • 确保您的系统已安装 Elixir 1.18 或更高版本。
    • 安装 Anthropic 的 Claude Code CLI 工具。
    • 您的项目必须是一个 Mix 项目。
  2. 通过 Igniter 安装: 在您的 Mix 项目根目录下,运行以下命令:
    mix igniter.install claude
    此命令将自动执行以下操作:
    • 将 'claude' 添加到您的项目依赖中。
    • 生成 '.claude.exs' 配置文件。
    • 在 '.claude/settings.json' 中配置相关钩子。
    • 在 '.claude/agents/' 目录中生成子代理。
    • 将用法规则同步到 'CLAUDE.md' 文件。
    • 如果配置了 MCP 服务器,将创建或更新 '.mcp.json' 文件。

服务器配置(供MCP客户端使用)

'Claude' 库会根据您的项目配置(特别是 '.claude.exs' 文件中的 'mcp_servers' 选项),自动生成或更新 '.mcp.json' 文件。该文件包含了 MCP 服务器的启动命令和参数,供 LLM 客户端(如 Claude Code CLI)读取并连接。

例如,如果您在 '.claude.exs' 中配置了 'tidewave' 作为 MCP 服务器,生成的 '.mcp.json' 文件可能包含以下结构:

{
  "servers": [
    {
      "name": "tidewave",             // 服务器名称,标识该MCP服务器
      "command": "mix",               // 启动服务器所使用的命令
      "args": ["tidewave.start"],     // 启动命令的参数,用于执行具体服务器的启动逻辑
      "description": "为 Phoenix 项目提供上下文,包括数据库访问、Schema 信息和 LiveView 组件详情。" // 服务器功能简要描述
    }
    // 根据项目依赖和您在 '.claude.exs' 中的配置,这里可能会自动生成更多 MCP 服务器的定义,
    // 例如用于数据库访问、测试或文档生成的服务器。
  ]
}

这些配置信息由 'Claude' 库自动生成,LLM 客户端会利用 'command' 和 'args' 来启动并与对应的 MCP 服务器进行通信,获取项目上下文和执行工具。用户通常不需要手动修改此文件。

基本使用方法

安装完成后,'Claude' 库将自动集成到您的 Elixir 开发工作流中。当您使用 Claude Code 编写或修改代码时:

  1. 自动反馈: 如果 Claude Code 写入的代码存在格式问题或编译错误,'Claude' 库会通过钩子系统立即检测到,并向 Claude Code 提供即时反馈。
  2. 智能修正: Claude Code 可以根据这些反馈自动调整和修正其生成的代码,直到代码符合项目的质量标准。
  3. 上下文感知: Claude Code 在生成代码时会受益于 'Claude' 提供的上下文信息(如用法规则、子代理的最佳实践和 MCP 服务器提供的项目结构与数据访问能力),从而生成更准确、更符合项目约定的代码。 这个过程是自动的,无需人工干预,极大地提升了 LLM 在 Elixir 项目中的代码生成效率和准确性。

信息

分类

开发者工具