VibeKit
Igniter installer for Elixir Vibe project conventions.
It patches new or existing Mix projects with the strict shared mix ci shape used across Elixir Vibe packages:
ci: [
"compile --warnings-as-errors",
"format --check-formatted",
"test",
"credo --strict",
"dialyzer",
"ex_dna --max-clones 0",
"reach.check --arch --smells"
]
It also adds def cli, do: [preferred_envs: [ci: :test]], quality-tool dependencies, a baseline .reach.exs, and a .credo.exs that enables the ExSlop recommended plugin checks:
%{
configs: [
%{
name: "default",
plugins: [{ExSlop, []}]
}
]
}
Dependency versions are resolved through Igniter from the latest Hex releases at install time. The generated .reach.exs starts as []; add project-specific layer and boundary policies as the project architecture settles.
Usage
Create a new project with the conventions installed immediately:
mix igniter.new my_lib --install vibe_kitFor local development before the package is published:
mix igniter.new my_lib --install vibe_kit@path:/Users/dannote/Development/vibe_kitInstall into an existing project:
mix igniter.install vibe_kitOptions
The strict defaults can be disabled when a project needs a lighter setup:
mix igniter.install vibe_kit --no-reach
mix igniter.install vibe_kit --no-strict-clones
mix igniter.install vibe_kit --no-ex-slopOptionally add agent instruction files:
mix igniter.install vibe_kit --agents-md
mix igniter.install vibe_kit --claude-mdOptions can be combined:
mix igniter.new my_lib \
--install vibe_kit \
--no-reach \
--no-ex-slop \
--agents-mdInstallation
Add the package to projects that should expose the installer task:
def deps do
[
{:vibe_kit, "~> 0.1.0"}
]
end