harnex 0.2.0 → 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 +10 -1
- data/lib/harnex/cli.rb +1 -1
- data/lib/harnex/commands/skills.rb +10 -22
- data/lib/harnex/version.rb +1 -1
- metadata +5 -5
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
|
@@ -12,6 +12,15 @@ gem install harnex
|
|
|
12
12
|
|
|
13
13
|
Requires **Ruby 3.x**. No other dependencies.
|
|
14
14
|
|
|
15
|
+
Then install workflow skills into your repo so agents can use them:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
harnex skills install
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
This adds orchestration skills (dispatch, chain-implement) that Claude
|
|
22
|
+
Code and Codex pick up automatically.
|
|
23
|
+
|
|
15
24
|
## What it does
|
|
16
25
|
|
|
17
26
|
```bash
|
|
@@ -91,7 +100,7 @@ Harnex ships workflow skills that automate this pattern:
|
|
|
91
100
|
Install skills into your repo so agents can use them:
|
|
92
101
|
|
|
93
102
|
```bash
|
|
94
|
-
harnex skills install
|
|
103
|
+
harnex skills install
|
|
95
104
|
```
|
|
96
105
|
|
|
97
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
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: harnex
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jikku Jose
|
|
@@ -59,13 +59,13 @@ files:
|
|
|
59
59
|
- skills/dispatch/SKILL.md
|
|
60
60
|
- skills/harnex/SKILL.md
|
|
61
61
|
- skills/open/SKILL.md
|
|
62
|
-
homepage: https://github.com/
|
|
62
|
+
homepage: https://github.com/jikkuatwork/harnex
|
|
63
63
|
licenses:
|
|
64
64
|
- MIT
|
|
65
65
|
metadata:
|
|
66
|
-
homepage_uri: https://github.com/
|
|
67
|
-
source_code_uri: https://github.com/
|
|
68
|
-
bug_tracker_uri: https://github.com/
|
|
66
|
+
homepage_uri: https://github.com/jikkuatwork/harnex
|
|
67
|
+
source_code_uri: https://github.com/jikkuatwork/harnex
|
|
68
|
+
bug_tracker_uri: https://github.com/jikkuatwork/harnex/issues
|
|
69
69
|
post_install_message:
|
|
70
70
|
rdoc_options: []
|
|
71
71
|
require_paths:
|