# Init

Initialize plugin in a project, install Iron Laws, auto-activation rules, and...

- Repository: https://github.com/oliver-kriska/claude-elixir-phoenix (572 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add oliver-kriska/claude-elixir-phoenix --skill init -g -a claude-code -y`
Codex: `npx skills add oliver-kriska/claude-elixir-phoenix --skill init -g -a codex -y`
Cursor: `npx skills add oliver-kriska/claude-elixir-phoenix --skill init -g -a cursor -y`
Gemini CLI: `npx skills add oliver-kriska/claude-elixir-phoenix --skill init -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add oliver-kriska/claude-elixir-phoenix`

## Description

Initialize plugin in a project, install Iron Laws, auto-activation rules, and reference auto-loading into CLAUDE.md. Use when setting up or updating the plugin.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Plugin Initialization

Install the Elixir/Phoenix plugin's behavioral instructions into the project's CLAUDE.md.

## Usage

```
/phx:init           # First-time installation
/phx:init --update  # Update existing installation with latest rules
```

## Iron Laws

1. **NEVER overwrite content outside plugin markers**, User-written CLAUDE.md rules must be preserved verbatim
2. **Always detect stack before generating**, Never assume Phoenix/Ecto versions
3. **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.*"~>` in `mix.exs`
- Ecto version: search for `ecto.*"~>` in `mix.exs`
- Oban: search for `"oban"` and `"oban_pro"` in `mix.exs`
- Frameworks: search for `"ash"`, `"surface"` in `mix.exs`
- Tidewave: search for `"tidewave"` in `mix.exs`
- Project size: use Glob to count `lib/**/*.ex` files

### Step 3: Handle Installation Modes

**Mode A: Fresh Install** (no CLAUDE.md or no markers)

1. Create/append to CLAUDE.md
2. Insert full behavioral instructions between markers
3. Include only relevant sections based on detected stack

**Mode B: Update** (`--update` flag or markers exist)

1. Find content between `<!-- ELIXIR-PHOENIX-PLUGIN:START -->` and `<!-- ELIXIR-PHOENIX-PLUGIN:END -->`
2. Replace with latest behavioral instructions
3. Preserve everything outside the markers

In both modes, CLAUDE.md content outside the plugin markers, user-written rules, project conventions, other plugin sections, stays verbatim (Iron Law 1)

### Step 4: Generate Content

Write the following structure to CLAUDE.md:

The rest: https://github.com/oliver-kriska/claude-elixir-phoenix/blob/HEAD/plugins/elixir-phoenix/skills/init/SKILL.md
