hiiro 0.1.351 → 0.1.352

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0586a9cc0e070785c9a0ef12282146ed71172875e706480d3dca6d663f5a46e8'
4
- data.tar.gz: ffec55f5b2ce8882cb06189dedf5e29ccb75a3b8214a76fc72e7dc460851f2cd
3
+ metadata.gz: 16ba8062d4d8f261771beb98b5baad695b43d05f6f0be4f8ebcc0f8e18a6e89b
4
+ data.tar.gz: b756598368c4faa85ec332df703e4f2e859f84bcdf2c68319dc1b5ce48c6d7ab
5
5
  SHA512:
6
- metadata.gz: e40c167924bce7ac225b17e0fd7c82855c0d6034e66814c4b3e4897ee00dc80b9214b52dafe4d3a98c7916b0194c0a7d4b234e9f55a5a51fd0d73329315132ee
7
- data.tar.gz: 994e44431c7a4dc5a15a2eaaa0ffa6c9b0382229b5d84dac1521c56129b599c08316e124511e6f5cf830e7189ab326672e599c228c11b7ddb7776be42c86bfdc
6
+ metadata.gz: 417c7bc005bbe71d9fc62a9cab04616c78005aad16f9604eb98f5aee6cfbe42a19bbbf789f04fb0a452c3ebea7e323155a7432d380f03f6b42cb0be3d4b66260
7
+ data.tar.gz: 2b0b553966be3f3cfd4d457afa62b7c8021b9633d5eaa92ded65ad808d41256de9216ab495c474fcbad27c3a479f3ff530ad69fe4c6f91457d06f4db213946b6
data/AGENTS.md ADDED
@@ -0,0 +1 @@
1
+ CLAUDE.md
data/CHANGELOG.md CHANGED
@@ -2,9 +2,16 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.1.352] - 2026-04-24
6
+
7
+ ### Added
8
+ - `h claude all|agents|commands|skills` now support `--absolute/-a` to print absolute tool paths; skill matches resolve to `SKILL.md`
9
+
5
10
  ### Fixed
6
11
  - `h capture path <num>` now prints the path of the Nth most recent capture (was always printing the captures dir regardless of args)
7
12
  - `h capture new` / `h capture file` now record to the DB even when interrupted (Ctrl-C, exception) so partial captures show up in `h capture ls`. Interrupted captures display with the existing `?` glyph and `(exit interrupted)` message.
13
+ - `h pane splitv/splith` subcommand mappings corrected
14
+ - Corrected `REPO_PATH` constant from `.bare` to `.git`
8
15
 
9
16
  ## [0.1.350] - 2026-04-18
10
17
 
@@ -316,4 +323,4 @@
316
323
  - `h db cleanup` subcommand to preview and prune duplicate rows from SQLite tables
317
324
 
318
325
  ### Fixed
319
- - Prevent duplicate pinned_prs during import with `insert_conflict` and per-row rescue
326
+ - Prevent duplicate pinned_prs during import with `insert_conflict` and per-row rescue
data/README.md CHANGED
@@ -93,6 +93,8 @@ h ping
93
93
  | `h window` | Tmux window management |
94
94
  | `h wtree` | Git worktree management |
95
95
 
96
+ `h claude agents|commands|skills -a` prints the absolute file path for each matching `.claude` tool, including `SKILL.md` for skills.
97
+
96
98
  ## Abbreviations
97
99
 
98
100
  Any subcommand can be abbreviated as long as the prefix uniquely matches:
data/bin/h-claude CHANGED
@@ -17,11 +17,26 @@ opts = Hiiro::Options.setup {
17
17
 
18
18
  tool_opts = Hiiro::Options.setup {
19
19
  flag(:full, short: :f, default: false, desc: 'fulltext search - full grep file or dir')
20
+ flag(:absolute, short: :a, default: false, desc: 'print absolute path to matching tool file')
20
21
  flag(:verbose, short: :v, default: false, desc: 'display claude dirs in stderr')
21
22
  flag(:veryverbose, short: :V, default: false, desc: 'display all stderr messages')
22
23
  }
23
24
 
24
- def glob_path(glob, bname=nil, opts:)
25
+ def tool_file(path, skill: false)
26
+ return path unless skill
27
+
28
+ path / 'SKILL.md'
29
+ end
30
+
31
+ def display_tool_path(path, bname: nil, opts:, skill: false)
32
+ target = tool_file(path, skill: skill)
33
+ return target if opts.absolute
34
+ return path.basename if skill
35
+
36
+ target.basename(bname.to_s)
37
+ end
38
+
39
+ def glob_path(glob, bname=nil, opts:, skill: false)
25
40
  filters = opts.args
26
41
  fulltext = opts.full
27
42
  bname ||= ''
@@ -46,6 +61,7 @@ def glob_path(glob, bname=nil, opts:)
46
61
  cmd = ['egrep', *more_args, '-m1', re_s, f.to_s]
47
62
  kwcmd = { out: File.open('/dev/null', 'w') }
48
63
  base_f = f.basename(bname)
64
+ display_f = display_tool_path(f, bname: bname, opts: opts, skill: skill)
49
65
 
50
66
  matches =
51
67
  if fulltext
@@ -55,7 +71,7 @@ def glob_path(glob, bname=nil, opts:)
55
71
  end
56
72
 
57
73
  if matches
58
- puts base_f
74
+ puts display_f
59
75
  else
60
76
  $stderr.puts "SKIPPING #{base_f}" if opts.veryverbose
61
77
  end
@@ -74,7 +90,7 @@ def collect_files(glob, bname=nil, opts:, skill: false)
74
90
  claude_paths.flat_map { |path| path.glob(glob) }.filter_map do |f|
75
91
  base_f = f.basename(bname.to_s)
76
92
  next unless base_f.to_s.match?(re)
77
- target = skill ? f / 'SKILL.md' : f
93
+ target = tool_file(f, skill: skill)
78
94
  target if target.exist?
79
95
  end
80
96
  end
@@ -171,7 +187,7 @@ add_subcmd(:env) { |*args|
171
187
  opts = tool_opts.parse(args)
172
188
  glob_path('agents/*.md', '.md', opts: opts)
173
189
  glob_path('commands/*.md', '.md', opts: opts)
174
- glob_path('skills/*/', opts: opts)
190
+ glob_path('skills/*/', opts: opts, skill: true)
175
191
  }
176
192
 
177
193
  add_subcmd(:agents) { |*args|
@@ -186,7 +202,7 @@ add_subcmd(:env) { |*args|
186
202
 
187
203
  add_subcmd(:skills) { |*args|
188
204
  opts = tool_opts.parse(args)
189
- glob_path('skills/*/', opts: opts)
205
+ glob_path('skills/*/', opts: opts, skill: true)
190
206
  }
191
207
 
192
208
  add_subcmd(:vim) { |*args|
data/bin/h-pane CHANGED
@@ -61,7 +61,7 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
61
61
  system('tmux', 'split-window', *args)
62
62
  }
63
63
 
64
- add_subcmd(:splitv) { |*args|
64
+ add_subcmd(:hsplit, :splith) { |*args|
65
65
  if args.empty?
66
66
  tmux.split_window(horizontal: false)
67
67
  else
@@ -69,7 +69,7 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
69
69
  end
70
70
  }
71
71
 
72
- add_subcmd(:splith) { |*args|
72
+ add_subcmd(:vsplit, :splitv) { |*args|
73
73
  if args.empty?
74
74
  tmux.split_window(horizontal: true)
75
75
  else
data/docs/h-claude.md CHANGED
@@ -77,6 +77,7 @@ List agent, command, and skill files found in `.claude/` directories from the cu
77
77
  | Flag | Short | Description |
78
78
  |------|-------|-------------|
79
79
  | `--full` | `-f` | Full text search (grep inside files) |
80
+ | `--absolute` | `-a` | Print the absolute path to each matching tool file (`SKILL.md` for skills) |
80
81
  | `--verbose` | `-v` | Show `.claude` paths being searched |
81
82
  | `--veryverbose` | `-V` | Show all paths including skipped |
82
83
 
@@ -85,7 +86,9 @@ List agent, command, and skill files found in `.claude/` directories from the cu
85
86
  ```bash
86
87
  h claude all
87
88
  h claude agents fetch
89
+ h claude agents -a fetch
88
90
  h claude commands refactor
91
+ h claude skills -a review
89
92
  h claude skills -f "pull request"
90
93
  ```
91
94
 
@@ -333,7 +336,7 @@ h claude vadd "Write tests for foo"
333
336
 
334
337
  ### vim
335
338
 
336
- Open matching agent, command, and skill files in your editor. Uses the same filter logic as `all`.
339
+ Open matching agent, command, and skill files in your editor. Uses the same filter logic and search flags as `all`; matches are opened via their absolute file paths.
337
340
 
338
341
  **Examples**
339
342
 
data/lib/hiiro/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Hiiro
2
- VERSION = "0.1.351"
2
+ VERSION = "0.1.352"
3
3
  end
data/lib/hiiro.rb CHANGED
@@ -63,7 +63,7 @@ end
63
63
 
64
64
  class Hiiro
65
65
  WORK_DIR = File.join(Dir.home, 'work')
66
- REPO_PATH = File.join(WORK_DIR, '.bare')
66
+ REPO_PATH = File.join(WORK_DIR, '.git')
67
67
 
68
68
  def self.init(*oargs, plugins: [], logging: false, tasks: false, task_scope: nil, **values, &block)
69
69
  load_env
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiiro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.351
4
+ version: 0.1.352
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Toyota
@@ -119,6 +119,7 @@ extra_rdoc_files: []
119
119
  files:
120
120
  - ".DS_Store"
121
121
  - ".config/.keep"
122
+ - AGENTS.md
122
123
  - CHANGELOG.md
123
124
  - CLAUDE.md
124
125
  - LICENSE