Packages
A config-driven dev tool for Elixir projects to manage AGENTS.md files and agent skills from dependencies
Current section
42 Versions
Jump to
Current section
42 Versions
Compare versions
4
files changed
+40
additions
-19
deletions
| @@ -5,6 +5,15 @@ See [Conventional Commits](Https://conventionalcommits.org) for commit guideline | |
| 5 5 | |
| 6 6 | <!-- changelog --> |
| 7 7 | |
| 8 | + ## v0.1.1 (2025-05-24) |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + ### Improvements: |
| 14 | + |
| 15 | + * only suggest top-level deps |
| 16 | + |
| 8 17 | ## v0.1.0 (2025-05-24) |
| @@ -6,7 +6,7 @@ | |
| 6 6 | {<<"GitHub">>,<<"https://github.com/ash-project/ash_graphql">>}, |
| 7 7 | {<<"Website">>,<<"https://ash-hq.org">>}]}. |
| 8 8 | {<<"name">>,<<"usage_rules">>}. |
| 9 | - {<<"version">>,<<"0.1.0">>}. |
| 9 | + {<<"version">>,<<"0.1.1">>}. |
| 10 10 | {<<"description">>, |
| 11 11 | <<"A dev tool for Elixir projects to gather LLM usage rules from dependencies">>}. |
| 12 12 | {<<"elixir">>,<<"~> 1.18">>}. |
| @@ -93,9 +93,16 @@ if Code.ensure_loaded?(Igniter) do | |
| 93 93 | # Add all usage-rules.md files from deps directory to igniter |
| 94 94 | igniter = Igniter.include_glob(igniter, "deps/*/usage-rules.md") |
| 95 95 | |
| 96 | + top_level_deps = |
| 97 | + Mix.Project.get().project()[:deps] |> Enum.map(&elem(&1, 0)) |
| 98 | + |
| 96 99 | # Get all deps from both Mix.Project.deps_paths and Igniter rewrite sources |
| 97 100 | mix_deps = |
| 98 | - Enum.map(Mix.Project.deps_paths(), fn {dep, path} -> |
| 101 | + Mix.Project.deps_paths() |
| 102 | + |> Enum.filter(fn {dep, _path} -> |
| 103 | + dep in top_level_deps |
| 104 | + end) |
| 105 | + |> Enum.map(fn {dep, path} -> |
| 99 106 | {dep, Path.relative_to_cwd(path)} |
| 100 107 | end) |
| 101 108 | |
| @@ -151,24 +158,28 @@ if Code.ensure_loaded?(Igniter) do | |
| 151 158 | end |
| 152 159 | |
| 153 160 | defp get_deps_from_igniter(igniter) do |
| 154 | - igniter.rewrite.sources |
| 155 | - |> Enum.filter(fn {path, _source} -> |
| 156 | - String.match?(path, ~r|^deps/[^/]+/usage-rules\.md$|) |
| 157 | - end) |
| 158 | - |> Enum.map(fn {path, _source} -> |
| 159 | - # Extract package name from deps/package_name/usage-rules.md |
| 160 | - package_name = |
| 161 | - path |
| 162 | - |> String.split("/") |
| 163 | - |> Enum.at(1) |
| 164 | - |> String.to_atom() |
| 161 | + if igniter.assigns[:test_mode?] do |
| 162 | + igniter.rewrite.sources |
| 163 | + |> Enum.filter(fn {path, _source} -> |
| 164 | + String.match?(path, ~r|^deps/[^/]+/usage-rules\.md$|) |
| 165 | + end) |
| 166 | + |> Enum.map(fn {path, _source} -> |
| 167 | + # Extract package name from deps/package_name/usage-rules.md |
| 168 | + package_name = |
| 169 | + path |
| 170 | + |> String.split("/") |
| 171 | + |> Enum.at(1) |
| 172 | + |> String.to_atom() |
| 165 173 | |
| 166 | - # Extract package path from deps/package_name/usage-rules.md |
| 167 | - package_path = Path.dirname(path) |
| 174 | + # Extract package path from deps/package_name/usage-rules.md |
| 175 | + package_path = Path.dirname(path) |
| 168 176 | |
| 169 | - {package_name, package_path} |
| 170 | - end) |
| 171 | - |> Enum.uniq() |
| 177 | + {package_name, package_path} |
| 178 | + end) |
| 179 | + |> Enum.uniq() |
| 180 | + else |
| 181 | + [] |
| 182 | + end |
| 172 183 | end |
| 173 184 | |
| 174 185 | defp add_usage_error(igniter) do |
| @@ -1,7 +1,7 @@ | |
| 1 1 | defmodule UsageRules.MixProject do |
| 2 2 | use Mix.Project |
| 3 3 | |
| 4 | - @version "0.1.0" |
| 4 | + @version "0.1.1" |
| 5 5 | @description """ |
| 6 6 | A dev tool for Elixir projects to gather LLM usage rules from dependencies |
| 7 7 | """ |
| @@ -90,6 +90,7 @@ defmodule UsageRules.MixProject do | |
| 90 90 | {:credo, ">= 0.0.0", only: [:dev, :test], runtime: false}, |
| 91 91 | {:dialyxir, ">= 0.0.0", only: [:dev, :test], runtime: false}, |
| 92 92 | {:sobelow, ">= 0.0.0", only: [:dev, :test], runtime: false}, |
| 93 | + {:mix_audit, ">= 0.0.0", only: [:dev, :test], runtime: false}, |
| 93 94 | {:git_ops, "~> 2.0", only: [:dev]} |
| 94 95 | ] |
| 95 96 | end |