phx-init
Initialize plugin in a project — install Iron Laws, auto-activation rules,
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Plugin Initialization
Install the Elixir/Phoenix plugin's behavioral instructions into the project's CLAUDE.md.
Usage
/skill:phx-init # First-time installation
/skill:phx-init --update # Update existing installation with latest rules
Iron Laws
- NEVER overwrite content outside plugin markers — User-written CLAUDE.md rules must be preserved verbatim
- Always detect stack before generating — Never assume Phoenix/Ecto versions
- Always validate after installation — Verify markers present and stack correct
Workflow
Step 1: Check Existing CLAUDE.md
Use Glob to check if CLAUDE.md exists. Then use Grep to check for existing ELIXIR-PHOENIX-PLUGIN:START marker in CLAUDE.md.
Step 2: Detect Project Stack
Scan the project to customize the injected instructions:
Read mix.exs and use Grep to extract:
- Phoenix version: search for
phoenix.*"~>inmix.exs - Ecto version: search for
ecto.*"~>inmix.exs - Oban: search for
"oban"and"oban_pro"inmix.exs - Frameworks: search for
"ash","surface"inmix.exs - Tidewave: search for
"tidewave"inmix.exs - Project size: use Glob to count
lib/**/*.exfiles
Step 3: Handle Installation Modes
Mode A: Fresh Install (no CLAUDE.md or no markers)
- Create/append to CLAUDE.md
- Insert full behavioral instructions between markers
- Include only relevant sections based on detected stack
Mode B: Update (--update flag or markers exist)
- Find content between
<!-- ELIXIR-PHOENIX-PLUGIN:START -->and<!-- ELIXIR-PHOENIX-PLUGIN:END --> - Replace with latest behavioral instructions
- Preserve everything outside the markers
CRITICAL: NEVER overwrite or delete existing CLAUDE.md content outside the plugin markers — user-written rules, project conventions, and other plugin sections must be preserved verbatim
Step 4: Generate Content
Write the following structure to 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 -->
Step 4b: Offer Codex Review Guidelines (optional)
If command -v codex succeeds (or the user asks): offer to install a
managed ## Review guidelines block into the project's AGENTS.md —
honored by BOTH codex exec review locally and the Codex cloud PR
reviewer. Follow the install rules and exact block in
references/codex-review-guidelines.md: markers
ELIXIR-PHOENIX-REVIEW-GUIDELINES:START/END, upsert in place on
--update, never touch content outside markers, and STOP to ask if an
unmanaged ## Review guidelines section already exists. When codex is
absent and not requested, skip silently — never mention codex to users
who don't have it.
Step 5: Output Summary
✅ Elixir/Phoenix plugin initialized
Detected stack:
- Phoenix {version}
- Ecto {version}
- {Oban standard | Oban Pro | not detected}
- {Tidewave ✓ | Tidewave not detected}
- {Ash Framework detected - Ecto patterns disabled | not detected}
Added to CLAUDE.md:
- Auto-activation rules (complexity detection, interview mode)
- Agent trigger patterns ({n} agents available)
- Reference auto-loading ({n} reference docs)
- Iron Laws enforcement ({n} laws)
- Verification rules
{- Codex review guidelines → AGENTS.md (only if installed in Step 4b)}
Run /skill:phx-init --update after plugin updates.
Run /skill:phx-audit for a full project health check.
Content Template
The exact content to inject is in references/injectable-template.md.
Key structure:
- Routing table — which
/skill:phx-*command fits which kind of request - Iron Laws — STOP behavior on violations
- Conditional Sections — Include based on detected stack:
{OBAN_SECTION}— If Oban detected (not Pro){OBAN_PRO_SECTION}— If Oban Pro detected{ASH_SECTION}— If Ash Framework detected{TIDEWAVE_SECTION}— If Tidewave detected
- Verification — Mandatory after code changes
- Quick Reference — Skill routing table
Placeholder substitution:
| Placeholder | Source |
|-------------|--------|
| {DATE} | Current date |
| {PHOENIX_VERSION} | From mix.exs |
| {ECTO_VERSION} | From mix.exs |
| {OPTIONAL_STACK} | Detected optional deps |
See references/injectable-template.md for full template with all placeholders and conditional sections.
Validation
After running /skill:phx-init:
- Check CLAUDE.md contains markers
- Verify detected stack matches actual project
- New session should:
- Auto-detect complexity when given tasks
- Stop on Iron Law violations
- Offer relevant workflows based on task
Error Handling
| Scenario | Action |
|----------|--------|
| CLAUDE.md read-only | Error: "Cannot modify CLAUDE.md - check permissions" |
| Markers corrupted | Warn, offer to remove and reinstall |
| Unknown Phoenix version | Use conservative defaults (all features enabled) |
| Not an Elixir project | Error: "No mix.exs found - is this an Elixir project?" |
Relationship to Other Commands
| Command | When to Use |
|---------|-------------|
| /skill:phx-init | First time, or after plugin updates |
| /skill:phx-audit | Periodic project health check |
| /skill:phx-verify | After code changes |
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
同名技能的其他版本
有 5 个不同仓库或目录里都有叫 phx-init 的技能。它们内容并不相同,别混用:
- oliver-kriska/claude-elixir-phoenix — Initialize plugin in a project — install Iron Laws, auto-activation rules,
- oliver-kriska/claude-elixir-phoenix — Initialize plugin in a project — install Iron Laws, auto-activation;
- oliver-kriska/claude-elixir-phoenix — Initialize plugin in a project — install Iron Laws, auto-activation rules,
- oliver-kriska/claude-elixir-phoenix — Initialize plugin in a project — install Iron Laws, auto-activation rules,