cc-os/plugins/os-adr/bin/adr-find

31 lines
997 B
Plaintext
Raw Normal View History

#!/usr/bin/env ruby
# Deterministic ADR retrieval (layers 1-3). AI judgment belongs in the `find`
# skill, applied only to this command's output.
#
# Usage: adr-find [--root DIR] [--paths a,b] [--components x,y] [--all-statuses]
# -> JSON {"candidates": [{id, title, status, date, file, matched_on}]}
require "json"
require_relative "../lib/adr"
root = Dir.pwd
paths = []
components = []
all_statuses = false
ARGV.each_with_index do |arg, i|
case arg
when "--root" then root = ARGV[i + 1]
when "--paths" then paths = ARGV[i + 1].to_s.split(",")
when "--components" then components = ARGV[i + 1].to_s.split(",")
when "--all-statuses" then all_statuses = true
end
end
repo = Adr::Repository.new(root: root)
finder = Adr::Finder.new(
repository: repo,
graph_path: File.join(root, "graphify-out", "graph.json")
)
candidates = finder.find(paths: paths, components: components, all_statuses: all_statuses)
puts JSON.pretty_generate("candidates" => candidates)