Elixir/Phoenix插件初始化Skill phx:init

这个技能用于初始化Elixir/Phoenix插件,在项目中安装自动激活规则到CLAUDE.md文件,支持复杂度检测、面试模式、Iron Laws强制执行和引用自动加载,适用于Web后端开发环境。关键词包括Elixir, Phoenix, 插件初始化, 自动激活, 复杂度检测, CLAUDE.md, 后端开发。

后端开发 0 次安装 0 次浏览 更新于 3/11/2026

名称: phx:init 描述: 在项目中初始化Elixir/Phoenix插件。将自动激活规则安装到CLAUDE.md中,用于复杂度检测、面试模式、Iron Laws强制执行和引用自动加载。 参数提示: [–update]

插件初始化

将Elixir/Phoenix插件的行为指令安装到项目的CLAUDE.md中。

使用方法

/phx:init           # 首次安装
/phx:init --update  # 用最新规则更新现有安装

工作流程

步骤 1: 检查现有 CLAUDE.md

# 检查CLAUDE.md是否存在
ls -la CLAUDE.md 2>/dev/null

# 检查现有插件安装
grep -q "ELIXIR-PHOENIX-PLUGIN:START" CLAUDE.md 2>/dev/null

步骤 2: 检测项目栈

扫描项目以定制注入的指令:

# Phoenix版本
grep -oP 'phoenix.*"~> \\K[0-9.]+' mix.exs 2>/dev/null || echo "unknown"

# Ecto版本
grep -oP 'ecto.*"~> \\K[0-9.]+' mix.exs 2>/dev/null || echo "unknown"

# Oban检测
grep -q '\"oban\"' mix.exs && echo "oban"
grep -q '\"oban_pro\"' mix.exs && echo "oban_pro"

# 框架检测
grep -q '\"ash\"' mix.exs && echo "ash"
grep -q '\"surface\"' mix.exs && echo "surface"

# Tidewave检测
grep -q '\"tidewave\"' mix.exs && echo "tidewave"

# 项目大小
find lib -name "*.ex" 2>/dev/null | wc -l

步骤 3: 处理安装模式

模式 A: 全新安装 (没有CLAUDE.md或没有标记)

  1. 创建/追加到CLAUDE.md
  2. 在标记之间插入完整行为指令
  3. 仅包括基于检测栈的相关部分

模式 B: 更新 (--update 标志或标记存在)

  1. 找到 <!-- ELIXIR-PHOENIX-PLUGIN:START --><!-- ELIXIR-PHOENIX-PLUGIN:END --> 之间的内容
  2. 用最新行为指令替换
  3. 保留标记外的所有内容

步骤 4: 生成内容

将以下结构写入CLAUDE.md

<!-- ELIXIR-PHOENIX-PLUGIN:START -->
<!-- Last updated: {date} | Plugin version: 1.0 | Stack: Phoenix {version}, Ecto {version}, {optional: Oban, Tidewave} -->

# Elixir/Phoenix Plugin - Auto-Activation Rules

{Include all sections from the Content Template below, filtered by detected stack}

<!-- ELIXIR-PHOENIX-PLUGIN:END -->

步骤 5: 输出摘要

✅ Elixir/Phoenix插件已初始化

检测到的栈:
- Phoenix {version}
- Ecto {version}
- {Oban标准 | Oban Pro | 未检测}
- {Tidewave ✓ | Tidewave未检测}
- {Ash框架检测到 - Ecto模式禁用 | 未检测}

添加到CLAUDE.md:
- 自动激活规则(复杂度检测、面试模式)
- 代理触发模式({n} 个代理可用)
- 引用自动加载({n} 个引用文档)
- Iron Laws强制执行({n} 条法律)
- 验证规则

运行 /phx:init --update 以在插件更新后更新。
运行 /phx:audit 以进行完整项目健康检查。

内容模板

要注入的确切内容在 references/injectable-template.md 中。

关键结构:

  1. 7步强制程序 — Claude Code 必须在每次响应前执行
  2. Iron Laws — 在违规时停止行为
  3. 条件部分 — 根据检测到的栈包括:
    • {OBAN_SECTION} — 如果检测到Oban(非Pro)
    • {OBAN_PRO_SECTION} — 如果检测到Oban Pro
    • {ASH_SECTION} — 如果检测到Ash框架
    • {TIDEWAVE_SECTION} — 如果检测到Tidewave
  4. 验证 — 代码更改后强制进行
  5. 快速参考 — 技能路由表

占位符替换:

占位符 来源
{DATE} 当前日期
{PHOENIX_VERSION} 来自mix.exs
{ECTO_VERSION} 来自mix.exs
{OPTIONAL_STACK} 检测到的可选依赖

有关所有占位符和条件部分的完整模板,请参阅 references/injectable-template.md

验证

运行 /phx:init 后:

  1. 检查CLAUDE.md是否包含标记
  2. 验证检测到的栈与实际项目匹配
  3. 新会话应该:
    • 在给定任务时自动检测复杂度
    • 在Iron Law违规时停止
    • 基于任务提供相关工作流程

错误处理

场景 操作
CLAUDE.md只读 错误:“无法修改CLAUDE.md - 检查权限”
标记损坏 警告,提供删除并重新安装的选项
Phoenix版本未知 使用保守默认值(启用所有功能)
不是Elixir项目 错误:“未找到mix.exs - 这是一个Elixir项目吗?”

与其他命令的关系

命令 何时使用
/phx:init 首次使用,或插件更新后
/phx:audit 定期项目健康检查
/phx:verify 代码更改后