{"id":50172802,"url":"https://github.com/elixir-vibe/vibe_kit","last_synced_at":"2026-05-29T04:01:08.847Z","repository":{"id":359560888,"uuid":"1246638175","full_name":"elixir-vibe/vibe_kit","owner":"elixir-vibe","description":"Igniter installer for Elixir Vibe project conventions","archived":false,"fork":false,"pushed_at":"2026-05-24T22:53:48.000Z","size":23,"stargazers_count":20,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-05-26T01:02:47.345Z","etag":null,"topics":["code-quality","credo","dialyzer","elixir","ex-dna","ex-slop","igniter","mix","project-template","reach"],"latest_commit_sha":null,"homepage":"https://hex.pm/packages/vibe_kit","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elixir-vibe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-22T11:52:39.000Z","updated_at":"2026-05-25T16:05:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"e5982904-bf16-49e8-89b2-16a5dfe1d7b4","html_url":"https://github.com/elixir-vibe/vibe_kit","commit_stats":null,"previous_names":["elixir-vibe/vibe_kit"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/elixir-vibe/vibe_kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-vibe%2Fvibe_kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-vibe%2Fvibe_kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-vibe%2Fvibe_kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-vibe%2Fvibe_kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elixir-vibe","download_url":"https://codeload.github.com/elixir-vibe/vibe_kit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-vibe%2Fvibe_kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33546836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-quality","credo","dialyzer","elixir","ex-dna","ex-slop","igniter","mix","project-template","reach"],"created_at":"2026-05-25T00:14:29.373Z","updated_at":"2026-05-27T02:00:36.694Z","avatar_url":"https://github.com/elixir-vibe.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VibeKit\n\nVibeKit bootstraps a strict, ready-to-run quality setup for Elixir projects.\n\nIt is an [Igniter](https://hex.pm/packages/igniter) installer that adds a `mix ci` alias, quality-tool dependencies, and baseline config files for Credo, Dialyzer, ExDNA, ExSlop, and Reach.\n\nVibeKit comes from the [Elixir Vibe](https://github.com/elixir-vibe) ecosystem: a set of Elixir-native tools for AI-assisted coding, AST-aware code intelligence, architecture checks, duplicate detection, and generated-code quality. The tools are useful independently; VibeKit wires the quality-focused ones into new or existing projects with one command.\n\n## Quick start\n\nInstall VibeKit into an existing Mix project:\n\n```sh\nmix igniter.install vibe_kit\n```\n\nOr create a new project with VibeKit applied immediately:\n\n```sh\nmix igniter.new my_lib --install vibe_kit\n```\n\nAfter installation, run the full check suite with:\n\n```sh\nmix ci\n```\n\n## What gets added\n\nBy default, VibeKit adds this `mix ci` pipeline:\n\n```elixir\nci: [\n  \"compile --warnings-as-errors\",\n  \"format --check-formatted\",\n  \"test\",\n  \"credo --strict\",\n  \"dialyzer\",\n  \"ex_dna --max-clones 0\",\n  \"reach.check --arch --smells\"\n]\n```\n\nIt also adds:\n\n- `def cli, do: [preferred_envs: [ci: :test]]`\n- latest Hex versions of the quality-tool dependencies\n- `.credo.exs` with ExSlop's recommended plugin checks enabled\n- `.reach.exs` as a starting point for Reach architecture policy\n\nThe generated `.reach.exs` starts as:\n\n```elixir\n[]\n```\n\nAdd project-specific layer, boundary, source, and call policies as the architecture settles.\n\n## Included tools\n\n| Tool | What VibeKit uses it for |\n| --- | --- |\n| [Credo](https://hex.pm/packages/credo) | General static analysis and style checks |\n| [Dialyxir](https://hex.pm/packages/dialyxir) | Dialyzer integration for success typing |\n| [ExDNA](https://hex.pm/packages/ex_dna) | AST-aware duplicate-code detection with a zero-clone default |\n| [ExSlop](https://hex.pm/packages/ex_slop) | Credo plugin checks for common low-quality generated-code patterns |\n| [Reach](https://hex.pm/packages/reach) | Architecture policy and cross-function smell checks |\n\nOther Elixir Vibe packages include [ExAST](https://hex.pm/packages/ex_ast) for AST-aware search/replace and [ProgramFacts](https://hex.pm/packages/program_facts) for analyzer fixtures.\n\n## Options\n\nThe strict defaults can be disabled for projects that need a lighter setup:\n\n```sh\nmix igniter.install vibe_kit --no-reach\nmix igniter.install vibe_kit --no-strict-clones\nmix igniter.install vibe_kit --no-ex-slop\n```\n\nOptional agent instruction files can be generated too:\n\n```sh\nmix igniter.install vibe_kit --agents-md\nmix igniter.install vibe_kit --claude-md\n```\n\nOptions can be combined:\n\n```sh\nmix igniter.new my_lib \\\n  --install vibe_kit \\\n  --no-reach \\\n  --no-ex-slop \\\n  --agents-md\n```\n\n## Generated ExSlop config\n\nVibeKit enables ExSlop through Credo's plugin mechanism:\n\n```elixir\n%{\n  configs: [\n    %{\n      name: \"default\",\n      plugins: [{ExSlop, []}]\n    }\n  ]\n}\n```\n\nThis enables ExSlop's recommended high-signal checks automatically.\n\n## Keeping the installer available\n\n`mix igniter.install vibe_kit` adds the project conventions and does not require VibeKit to remain as a runtime dependency. If a project should keep the installer task available, add VibeKit explicitly:\n\n```elixir\ndef deps do\n  [\n    {:vibe_kit, \"~\u003e 0.1.1\", only: [:dev, :test], runtime: false}\n  ]\nend\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felixir-vibe%2Fvibe_kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felixir-vibe%2Fvibe_kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felixir-vibe%2Fvibe_kit/lists"}