harnex 0.2.1 → 0.2.2
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 +4 -4
- data/README.md +4 -4
- data/lib/harnex/cli.rb +1 -1
- data/lib/harnex/commands/skills.rb +10 -22
- data/lib/harnex/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f5551eb9f757a6028039163377a2a10bd044132513b582d50c94a5ababde1b4
|
|
4
|
+
data.tar.gz: 82a6b0e9d329c94b40c2ee79ea4bd0a153cce8e5a246c208e27d7eee702d22f4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cf269eb8b5bbf171154f0530d26f3135866e966e085c386326183432c4cf6b0c5cdd45f3585dd5632c7bd0db4098a54193c4d815bf4e1ab8256aa22c4f1aec9f
|
|
7
|
+
data.tar.gz: be798ec3085903e0851d7cd20b31789eed202b076774a144ed8038d23d1d61aa12ac8c9489b04370498f3108d2138672a3db2a36ba4efdb3b7c1e7763b219626
|
data/README.md
CHANGED
|
@@ -15,11 +15,11 @@ Requires **Ruby 3.x**. No other dependencies.
|
|
|
15
15
|
Then install workflow skills into your repo so agents can use them:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
harnex skills install
|
|
18
|
+
harnex skills install
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
This adds orchestration skills (
|
|
22
|
-
|
|
21
|
+
This adds orchestration skills (dispatch, chain-implement) that Claude
|
|
22
|
+
Code and Codex pick up automatically.
|
|
23
23
|
|
|
24
24
|
## What it does
|
|
25
25
|
|
|
@@ -100,7 +100,7 @@ Harnex ships workflow skills that automate this pattern:
|
|
|
100
100
|
Install skills into your repo so agents can use them:
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
|
-
harnex skills install
|
|
103
|
+
harnex skills install
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
## All commands
|
data/lib/harnex/cli.rb
CHANGED
|
@@ -3,11 +3,11 @@ require "fileutils"
|
|
|
3
3
|
module Harnex
|
|
4
4
|
class Skills
|
|
5
5
|
SKILLS_ROOT = File.expand_path("../../../../skills", __FILE__)
|
|
6
|
-
|
|
6
|
+
INSTALL_SKILLS = %w[dispatch chain-implement].freeze
|
|
7
7
|
|
|
8
8
|
def self.usage
|
|
9
9
|
<<~TEXT
|
|
10
|
-
Usage: harnex skills install [
|
|
10
|
+
Usage: harnex skills install [--global]
|
|
11
11
|
|
|
12
12
|
Subcommands:
|
|
13
13
|
install Install bundled skills into the current repo
|
|
@@ -16,12 +16,9 @@ module Harnex
|
|
|
16
16
|
--global Install to ~/.claude/skills and ~/.codex/skills
|
|
17
17
|
instead of the current repo
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Installs: #{INSTALL_SKILLS.join(', ')}
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
Pass one or more skill names to install specific skills.
|
|
23
|
-
|
|
24
|
-
Without --global, copies the skill to .claude/skills/<skill>/
|
|
21
|
+
Without --global, copies each skill to .claude/skills/<skill>/
|
|
25
22
|
in the current repo and symlinks .codex/skills/<skill> to it.
|
|
26
23
|
|
|
27
24
|
With --global, symlinks both ~/.claude/skills/<skill> and
|
|
@@ -29,10 +26,6 @@ module Harnex
|
|
|
29
26
|
TEXT
|
|
30
27
|
end
|
|
31
28
|
|
|
32
|
-
def self.bundled_skill_names
|
|
33
|
-
Dir.children(SKILLS_ROOT).select { |name| File.directory?(File.join(SKILLS_ROOT, name)) }.sort
|
|
34
|
-
end
|
|
35
|
-
|
|
36
29
|
def initialize(argv)
|
|
37
30
|
@argv = argv.dup
|
|
38
31
|
end
|
|
@@ -70,7 +63,6 @@ module Harnex
|
|
|
70
63
|
private
|
|
71
64
|
|
|
72
65
|
def parse_install_args(args)
|
|
73
|
-
skill_names = []
|
|
74
66
|
global = false
|
|
75
67
|
help = false
|
|
76
68
|
|
|
@@ -83,25 +75,21 @@ module Harnex
|
|
|
83
75
|
when /\A-/
|
|
84
76
|
raise "harnex skills: unknown option #{arg.inspect}"
|
|
85
77
|
else
|
|
86
|
-
|
|
78
|
+
warn("harnex skills install: unexpected argument #{arg.inspect}")
|
|
79
|
+
raise "harnex skills install takes no positional arguments"
|
|
87
80
|
end
|
|
88
81
|
end
|
|
89
82
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
[skill_names, global, help]
|
|
83
|
+
[INSTALL_SKILLS, global, help]
|
|
93
84
|
end
|
|
94
85
|
|
|
95
86
|
def resolve_skill_source(skill_name)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
File.join(SKILLS_ROOT, skill_name)
|
|
87
|
+
path = File.join(SKILLS_ROOT, skill_name)
|
|
88
|
+
File.directory?(path) ? path : nil
|
|
99
89
|
end
|
|
100
90
|
|
|
101
91
|
def missing_skill(skill_name)
|
|
102
|
-
warn("harnex skills:
|
|
103
|
-
available = self.class.bundled_skill_names
|
|
104
|
-
warn("available skills: #{available.join(', ')}") unless available.empty?
|
|
92
|
+
warn("harnex skills: bundled skill #{skill_name.inspect} not found at #{SKILLS_ROOT}")
|
|
105
93
|
1
|
|
106
94
|
end
|
|
107
95
|
|
data/lib/harnex/version.rb
CHANGED