aircana 3.0.0.rc1 → 3.0.0.rc3
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/.claude-plugin/plugin.json +7 -0
- data/.rspec_status +150 -153
- data/.rubocop.yml +12 -0
- data/CHANGELOG.md +24 -2
- data/CLAUDE.md +50 -19
- data/README.md +132 -55
- data/agents/apply_feedback.md +92 -0
- data/agents/executor.md +85 -0
- data/agents/jira.md +46 -0
- data/agents/planner.md +64 -0
- data/agents/reviewer.md +95 -0
- data/agents/sub-agent-coordinator.md +91 -0
- data/agents/test-agent/manifest.json +15 -0
- data/commands/air-apply-feedback.md +15 -0
- data/commands/air-ask-expert.md +42 -0
- data/commands/air-execute.md +13 -0
- data/commands/air-plan.md +33 -0
- data/commands/air-record.md +17 -0
- data/commands/air-review.md +12 -0
- data/commands/sample-command.md +1 -0
- data/hooks/hooks.json +31 -0
- data/lib/aircana/cli/app.rb +32 -4
- data/lib/aircana/cli/commands/agents.rb +41 -9
- data/lib/aircana/cli/commands/doctor_checks.rb +2 -3
- data/lib/aircana/cli/commands/hooks.rb +4 -4
- data/lib/aircana/cli/commands/init.rb +261 -0
- data/lib/aircana/cli/commands/plugin.rb +157 -0
- data/lib/aircana/cli/help_formatter.rb +1 -1
- data/lib/aircana/configuration.rb +29 -3
- data/lib/aircana/generators/agents_generator.rb +3 -2
- data/lib/aircana/hooks_manifest.rb +189 -0
- data/lib/aircana/plugin_manifest.rb +146 -0
- data/lib/aircana/system_checker.rb +0 -1
- data/lib/aircana/templates/agents/base_agent.erb +2 -2
- data/lib/aircana/templates/hooks/user_prompt_submit.erb +0 -6
- data/lib/aircana/version.rb +1 -1
- data/spec_target_1760205040_181/agents/test-agent/manifest.json +15 -0
- data/spec_target_1760205220_486/agents/test-agent/manifest.json +15 -0
- data/spec_target_1760205379_250/agents/test-agent/manifest.json +15 -0
- data/spec_target_1760205601_652/agents/test-agent/manifest.json +15 -0
- data/spec_target_1760205608_135/agents/test-agent/manifest.json +15 -0
- data/spec_target_1760205654_952/agents/test-agent/manifest.json +15 -0
- metadata +27 -2
- data/lib/aircana/cli/commands/install.rb +0 -169
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1856482e2cdb70b17ed29f8ebb42c1ec8091b5f57bc5809cdd5cf6b6faaa93d
|
4
|
+
data.tar.gz: b496244c5598c5266a2a7a815daea6132a4a37faf269ff2736afacf547d3f821
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce54c8ade79ac94582530ff6f7ebfb26a2ff6a0deee9067f69fa483fcf13e882a0b0c014ff6607d011f44b878d29c236b7e41be7ca36d0dacbe0539c9252b4a0
|
7
|
+
data.tar.gz: 5e70187e226e397bd4e3b0bea3331bd39500d0941fa9e5fc590aa835bc9457371c2230aa4197045b9acd7a3ecc930949de98c835bfff2a1c7c57a1b868ab52ee
|
data/.rspec_status
CHANGED
@@ -1,164 +1,161 @@
|
|
1
1
|
example_id | status | run_time |
|
2
2
|
----------------------------------------------------------------- | ------ | --------------- |
|
3
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.
|
4
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.
|
5
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.
|
3
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.00431 seconds |
|
4
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.00055 seconds |
|
5
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.00049 seconds |
|
6
6
|
./spec/aircana/cli/commands/agents_spec.rb[1:1:2:1] | passed | 0.00099 seconds |
|
7
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:1] | passed | 0.
|
8
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:2] | passed | 0.
|
9
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:1] | passed | 0.
|
10
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:2] | passed | 0.
|
11
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:3:1] | passed | 0.
|
12
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:2:1] | passed | 0.
|
13
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:3:1] | passed | 0.
|
14
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:4:1] | passed | 0.
|
15
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:3:1] | passed | 0.
|
16
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:3:2] | passed | 0.
|
17
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:3:3] | passed | 0.
|
18
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:4:1] | passed | 0.
|
19
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:1:1] | passed | 0.
|
20
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:2:1] | passed | 0.
|
21
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:1] | passed | 0.
|
22
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:2] | passed | 0.
|
23
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:3] | passed | 0.
|
24
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.
|
25
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.
|
26
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.
|
27
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.
|
28
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.
|
29
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.
|
30
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.
|
31
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.
|
32
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.
|
33
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.
|
34
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.
|
35
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.
|
7
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:1] | passed | 0.00048 seconds |
|
8
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:2] | passed | 0.00044 seconds |
|
9
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:1] | passed | 0.00062 seconds |
|
10
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:2] | passed | 0.00059 seconds |
|
11
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:3:1] | passed | 0.0007 seconds |
|
12
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:2:1] | passed | 0.00046 seconds |
|
13
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:3:1] | passed | 0.00047 seconds |
|
14
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:4:1] | passed | 0.00051 seconds |
|
15
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:3:1] | passed | 0.00085 seconds |
|
16
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:3:2] | passed | 0.00062 seconds |
|
17
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:3:3] | passed | 0.00066 seconds |
|
18
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:4:1] | passed | 0.00028 seconds |
|
19
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:1:1] | passed | 0.0005 seconds |
|
20
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:2:1] | passed | 0.00843 seconds |
|
21
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:1] | passed | 0.00134 seconds |
|
22
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:2] | passed | 0.00119 seconds |
|
23
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:3] | passed | 0.00118 seconds |
|
24
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.00081 seconds |
|
25
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.00077 seconds |
|
26
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.00071 seconds |
|
27
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.00051 seconds |
|
28
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.00066 seconds |
|
29
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.00043 seconds |
|
30
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.00095 seconds |
|
31
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.00146 seconds |
|
32
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.00111 seconds |
|
33
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.00046 seconds |
|
34
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.00051 seconds |
|
35
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.00055 seconds |
|
36
36
|
./spec/aircana/cli/commands/hooks_spec.rb[1:5:4:1] | passed | 0.00049 seconds |
|
37
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.
|
38
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.
|
37
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.00043 seconds |
|
38
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.00121 seconds |
|
39
39
|
./spec/aircana/cli/commands/hooks_spec.rb[1:7:1] | passed | 0.00043 seconds |
|
40
|
-
./spec/aircana/cli/commands/
|
41
|
-
./spec/aircana/cli/commands/
|
42
|
-
./spec/aircana/cli/commands/
|
43
|
-
./spec/aircana/cli/commands/
|
44
|
-
./spec/aircana/cli/commands/
|
45
|
-
./spec/aircana/cli/commands/
|
46
|
-
./spec/aircana/cli/commands/
|
47
|
-
./spec/aircana/cli/commands/
|
48
|
-
./spec/aircana/cli/commands/
|
49
|
-
./spec/aircana/cli/commands/
|
50
|
-
./spec/aircana/cli/commands/
|
51
|
-
./spec/aircana/cli/commands/
|
52
|
-
./spec/aircana/cli/commands/
|
53
|
-
./spec/aircana/cli/commands/
|
54
|
-
./spec/aircana/cli/commands/
|
55
|
-
./spec/aircana/cli/commands/
|
56
|
-
./spec/aircana/
|
57
|
-
./spec/aircana/cli/commands/install_spec.rb[1:5:3:1] | passed | 0.00057 seconds |
|
58
|
-
./spec/aircana/cli/commands/install_spec.rb[1:6:1] | passed | 0.00052 seconds |
|
59
|
-
./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00009 seconds |
|
40
|
+
./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.00182 seconds |
|
41
|
+
./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00814 seconds |
|
42
|
+
./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.00347 seconds |
|
43
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00127 seconds |
|
44
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.0012 seconds |
|
45
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00111 seconds |
|
46
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00124 seconds |
|
47
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00076 seconds |
|
48
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00089 seconds |
|
49
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00077 seconds |
|
50
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00074 seconds |
|
51
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00085 seconds |
|
52
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00166 seconds |
|
53
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00186 seconds |
|
54
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00197 seconds |
|
55
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00759 seconds |
|
56
|
+
./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.0001 seconds |
|
60
57
|
./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00005 seconds |
|
61
58
|
./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
62
59
|
./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00004 seconds |
|
63
60
|
./spec/aircana/configuration_spec.rb[1:4:2] | passed | 0.00004 seconds |
|
64
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.
|
65
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.
|
66
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.
|
67
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.
|
68
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.
|
69
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.
|
70
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.
|
71
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.
|
72
|
-
./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.
|
61
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00212 seconds |
|
62
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00051 seconds |
|
63
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00124 seconds |
|
64
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00025 seconds |
|
65
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00032 seconds |
|
66
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00016 seconds |
|
67
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00043 seconds |
|
68
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00044 seconds |
|
69
|
+
./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00035 seconds |
|
73
70
|
./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00019 seconds |
|
74
|
-
./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.
|
75
|
-
./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.
|
71
|
+
./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00016 seconds |
|
72
|
+
./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00015 seconds |
|
76
73
|
./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00016 seconds |
|
77
|
-
./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.
|
74
|
+
./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00037 seconds |
|
78
75
|
./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00022 seconds |
|
79
|
-
./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.
|
76
|
+
./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00017 seconds |
|
80
77
|
./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00019 seconds |
|
81
78
|
./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00016 seconds |
|
82
79
|
./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00017 seconds |
|
83
|
-
./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.
|
84
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.
|
85
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.
|
86
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.
|
80
|
+
./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00014 seconds |
|
81
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00015 seconds |
|
82
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00011 seconds |
|
83
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00016 seconds |
|
87
84
|
./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00016 seconds |
|
88
|
-
./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.
|
89
|
-
./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.
|
90
|
-
./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.
|
85
|
+
./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00015 seconds |
|
86
|
+
./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00019 seconds |
|
87
|
+
./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00014 seconds |
|
91
88
|
./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00007 seconds |
|
92
89
|
./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00008 seconds |
|
93
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.
|
94
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.
|
95
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.
|
96
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.
|
97
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.
|
98
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.
|
99
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.
|
100
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.
|
101
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.
|
102
|
-
./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.
|
103
|
-
./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.
|
104
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.
|
105
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.
|
106
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.
|
107
|
-
./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.
|
108
|
-
./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.
|
109
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.
|
110
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.
|
111
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.
|
112
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.
|
113
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.
|
114
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.
|
115
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.
|
116
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.
|
117
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.
|
118
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.
|
119
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.
|
120
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.
|
121
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.
|
122
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.
|
123
|
-
./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.
|
124
|
-
./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.
|
125
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.
|
126
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.
|
127
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.
|
128
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.
|
129
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.
|
130
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.
|
131
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.
|
132
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.
|
133
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.
|
90
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00008 seconds |
|
91
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00007 seconds |
|
92
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00007 seconds |
|
93
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00007 seconds |
|
94
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00007 seconds |
|
95
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00007 seconds |
|
96
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00026 seconds |
|
97
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00016 seconds |
|
98
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00064 seconds |
|
99
|
+
./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.0008 seconds |
|
100
|
+
./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00067 seconds |
|
101
|
+
./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00061 seconds |
|
102
|
+
./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00107 seconds |
|
103
|
+
./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00039 seconds |
|
104
|
+
./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00053 seconds |
|
105
|
+
./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00047 seconds |
|
106
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.0004 seconds |
|
107
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00135 seconds |
|
108
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00183 seconds |
|
109
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00122 seconds |
|
110
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.00116 seconds |
|
111
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00057 seconds |
|
112
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00089 seconds |
|
113
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00061 seconds |
|
114
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00196 seconds |
|
115
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00063 seconds |
|
116
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00202 seconds |
|
117
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.0007 seconds |
|
118
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00121 seconds |
|
119
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00029 seconds |
|
120
|
+
./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00016 seconds |
|
121
|
+
./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00014 seconds |
|
122
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00023 seconds |
|
123
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00064 seconds |
|
124
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00024 seconds |
|
125
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00027 seconds |
|
126
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00032 seconds |
|
127
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00015 seconds |
|
128
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.00013 seconds |
|
129
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00013 seconds |
|
130
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.00012 seconds |
|
134
131
|
./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.0001 seconds |
|
135
132
|
./spec/aircana/generators/agents_generator_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
136
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.
|
137
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.
|
138
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.
|
139
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.
|
133
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.0002 seconds |
|
134
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.00007 seconds |
|
135
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.00005 seconds |
|
136
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.00006 seconds |
|
140
137
|
./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
141
138
|
./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
142
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.
|
143
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.
|
144
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.
|
145
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.
|
146
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.
|
147
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.
|
148
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.
|
149
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.
|
150
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.
|
139
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00053 seconds |
|
140
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00025 seconds |
|
141
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00011 seconds |
|
142
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00013 seconds |
|
143
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00005 seconds |
|
144
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00071 seconds |
|
145
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00021 seconds |
|
146
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00044 seconds |
|
147
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00046 seconds |
|
151
148
|
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00032 seconds |
|
152
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.
|
149
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00013 seconds |
|
153
150
|
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00009 seconds |
|
154
|
-
./spec/aircana/generators/record_command_generator_spec.rb[1:1:1] | passed | 0.
|
151
|
+
./spec/aircana/generators/record_command_generator_spec.rb[1:1:1] | passed | 0.00025 seconds |
|
155
152
|
./spec/aircana/generators/record_command_generator_spec.rb[1:2:1] | passed | 0.00046 seconds |
|
156
|
-
./spec/aircana/generators/record_command_generator_spec.rb[1:2:2] | passed | 0.
|
153
|
+
./spec/aircana/generators/record_command_generator_spec.rb[1:2:2] | passed | 0.00012 seconds |
|
157
154
|
./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00009 seconds |
|
158
155
|
./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00005 seconds |
|
159
156
|
./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00005 seconds |
|
160
|
-
./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.
|
161
|
-
./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.
|
157
|
+
./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00014 seconds |
|
158
|
+
./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00004 seconds |
|
162
159
|
./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00004 seconds |
|
163
160
|
./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00004 seconds |
|
164
161
|
./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00004 seconds |
|
@@ -167,25 +164,25 @@ example_id | status | run
|
|
167
164
|
./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00004 seconds |
|
168
165
|
./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00004 seconds |
|
169
166
|
./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00053 seconds |
|
170
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.
|
171
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.
|
167
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00044 seconds |
|
168
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.0004 seconds |
|
172
169
|
./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00041 seconds |
|
173
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.
|
174
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.
|
175
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.
|
176
|
-
./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.
|
177
|
-
./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.
|
178
|
-
./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.
|
179
|
-
./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.
|
180
|
-
./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.
|
181
|
-
./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.
|
182
|
-
./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.
|
183
|
-
./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.
|
184
|
-
./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.
|
170
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.0005 seconds |
|
171
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00042 seconds |
|
172
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00047 seconds |
|
173
|
+
./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00044 seconds |
|
174
|
+
./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00042 seconds |
|
175
|
+
./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00029 seconds |
|
176
|
+
./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00254 seconds |
|
177
|
+
./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.0004 seconds |
|
178
|
+
./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.0009 seconds |
|
179
|
+
./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00102 seconds |
|
180
|
+
./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00027 seconds |
|
181
|
+
./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00032 seconds |
|
185
182
|
./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00024 seconds |
|
186
|
-
./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.
|
187
|
-
./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.
|
188
|
-
./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.
|
189
|
-
./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.
|
190
|
-
./spec/aircana_spec.rb[1:1] | passed | 0.
|
191
|
-
./spec/aircana_spec.rb[1:2] | passed | 0.
|
183
|
+
./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00041 seconds |
|
184
|
+
./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00031 seconds |
|
185
|
+
./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00034 seconds |
|
186
|
+
./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.0002 seconds |
|
187
|
+
./spec/aircana_spec.rb[1:1] | passed | 0.00004 seconds |
|
188
|
+
./spec/aircana_spec.rb[1:2] | passed | 0.00067 seconds |
|
data/.rubocop.yml
CHANGED
@@ -29,9 +29,11 @@ Metrics/ClassLength:
|
|
29
29
|
- 'lib/aircana/cli/commands/add_directory.rb'
|
30
30
|
- 'lib/aircana/cli/commands/hooks.rb'
|
31
31
|
- 'lib/aircana/cli/commands/install.rb'
|
32
|
+
- 'lib/aircana/cli/commands/plugin.rb'
|
32
33
|
- 'lib/aircana/contexts/confluence.rb'
|
33
34
|
- 'lib/aircana/contexts/manifest.rb'
|
34
35
|
- 'lib/aircana/symlink_manager.rb'
|
36
|
+
- 'lib/aircana/hooks_manifest.rb'
|
35
37
|
|
36
38
|
Metrics/ModuleLength:
|
37
39
|
Exclude:
|
@@ -44,24 +46,34 @@ Metrics/MethodLength:
|
|
44
46
|
- 'lib/aircana/cli/commands/hooks.rb'
|
45
47
|
- 'lib/aircana/cli/commands/install.rb'
|
46
48
|
- 'lib/aircana/cli/commands/project.rb'
|
49
|
+
- 'lib/aircana/cli/commands/init.rb'
|
47
50
|
- 'lib/aircana/generators/project_config_generator.rb'
|
48
51
|
- 'lib/aircana/symlink_manager.rb'
|
49
52
|
- 'lib/aircana/contexts/confluence.rb'
|
50
53
|
- 'lib/aircana/contexts/manifest.rb'
|
54
|
+
- 'lib/aircana/hooks_manifest.rb'
|
55
|
+
- 'lib/aircana/plugin_manifest.rb'
|
51
56
|
|
52
57
|
Metrics/AbcSize:
|
53
58
|
Exclude:
|
54
59
|
- 'lib/aircana/cli/commands/hooks.rb'
|
55
60
|
- 'lib/aircana/cli/commands/install.rb'
|
56
61
|
- 'lib/aircana/cli/commands/project.rb'
|
62
|
+
- 'lib/aircana/cli/commands/init.rb'
|
57
63
|
- 'lib/aircana/symlink_manager.rb'
|
64
|
+
- 'lib/aircana/plugin_manifest.rb'
|
58
65
|
|
59
66
|
Metrics/CyclomaticComplexity:
|
60
67
|
Exclude:
|
61
68
|
- 'lib/aircana/cli/commands/hooks.rb'
|
62
69
|
- 'lib/aircana/cli/commands/project.rb'
|
70
|
+
- 'lib/aircana/cli/commands/plugin.rb'
|
63
71
|
|
64
72
|
Metrics/PerceivedComplexity:
|
65
73
|
Exclude:
|
66
74
|
- 'lib/aircana/cli/commands/hooks.rb'
|
67
75
|
- 'lib/aircana/cli/commands/project.rb'
|
76
|
+
- 'lib/aircana/cli/commands/plugin.rb'
|
77
|
+
|
78
|
+
Naming/PredicateMethod:
|
79
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -7,21 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
### Added
|
11
|
+
- Directory parameter support for `init` command
|
12
|
+
- Can now specify target directory: `aircana init /path/to/project`
|
13
|
+
- Automatically creates directory if it doesn't exist
|
14
|
+
- Defaults to current directory when no path specified
|
15
|
+
|
10
16
|
### Changed
|
17
|
+
- **BREAKING**: Renamed `aircana install` command to `aircana init`
|
18
|
+
- More intuitive naming aligned with standard CLI conventions
|
19
|
+
- All documentation and help text updated
|
11
20
|
- **BREAKING**: Agent knowledge bases and manifests moved from `.aircana/agents/` to `.claude/agents/`
|
12
21
|
- Agent files and their knowledge are now co-located in the `.claude/agents/` directory
|
13
22
|
- This consolidates all Claude Code artifacts in one location
|
23
|
+
- **BREAKING**: Hook scripts moved from `.aircana/hooks/` to `.claude/hooks/`
|
24
|
+
- All Claude Code project artifacts now consolidated in `.claude/` directory
|
25
|
+
- Global Aircana configuration remains in `~/.aircana`
|
26
|
+
|
27
|
+
### Removed
|
28
|
+
- Removed `relevant_files` feature from user_prompt_submit hook template
|
29
|
+
- Feature was not widely used and added unnecessary complexity
|
14
30
|
|
15
31
|
### Migration Guide
|
16
32
|
To upgrade from a previous version:
|
17
|
-
1.
|
33
|
+
1. Update any scripts or documentation that reference `aircana install` to use `aircana init` instead
|
34
|
+
2. Move existing agent knowledge and hooks manually:
|
18
35
|
```bash
|
36
|
+
# Move agent knowledge
|
19
37
|
mv .aircana/agents/*/* .claude/agents/
|
38
|
+
# Move hooks
|
39
|
+
mv .aircana/hooks/* .claude/hooks/
|
20
40
|
```
|
21
|
-
|
41
|
+
3. Or refresh all agent knowledge from sources and regenerate hooks:
|
22
42
|
```bash
|
23
43
|
aircana agents refresh-all
|
44
|
+
aircana init
|
24
45
|
```
|
46
|
+
4. Remove the old `.aircana` directory if no longer needed (keeping `~/.aircana` for global config)
|
25
47
|
|
26
48
|
## [1.5.0] - 2025-09-28
|
27
49
|
|
data/CLAUDE.md
CHANGED
@@ -25,57 +25,88 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
25
25
|
- `bundle exec rake release` - Release new version (updates version, creates git tag, pushes to rubygems)
|
26
26
|
|
27
27
|
### Aircana CLI Commands
|
28
|
-
|
29
|
-
|
30
|
-
- `aircana
|
31
|
-
- `aircana
|
32
|
-
- `aircana
|
28
|
+
|
29
|
+
**Plugin Management:**
|
30
|
+
- `aircana init [DIRECTORY]` - Initialize a Claude Code plugin in specified directory (defaults to current)
|
31
|
+
- `aircana init --plugin-name NAME` - Initialize with custom plugin name
|
32
|
+
- `aircana plugin info` - Display plugin information
|
33
|
+
- `aircana plugin update` - Update plugin metadata interactively
|
34
|
+
- `aircana plugin version` - Show current version
|
35
|
+
- `aircana plugin version bump [major|minor|patch]` - Bump semantic version
|
36
|
+
- `aircana plugin version set` - Set specific version
|
37
|
+
- `aircana plugin validate` - Validate plugin structure and manifests
|
38
|
+
|
39
|
+
**Agent Management:**
|
33
40
|
- `aircana agents create` - Create a new agent interactively
|
41
|
+
- `aircana agents list` - List all configured agents
|
34
42
|
- `aircana agents refresh <agent>` - Refresh agent knowledge from Confluence and web sources
|
35
43
|
- `aircana agents refresh-all` - Refresh knowledge for all configured agents
|
36
44
|
- `aircana agents add-url <agent> <url>` - Add a web URL to an agent's knowledge base
|
45
|
+
|
46
|
+
**Hook Management:**
|
37
47
|
- `aircana hooks list` - List all available hooks
|
38
48
|
- `aircana hooks enable <hook>` - Enable a specific hook
|
39
49
|
- `aircana hooks disable <hook>` - Disable a specific hook
|
40
50
|
- `aircana hooks create` - Create custom hook
|
41
51
|
- `aircana hooks status` - Show hook configuration status
|
42
52
|
|
53
|
+
**System:**
|
54
|
+
- `aircana doctor` - Check system health and dependencies
|
55
|
+
- `aircana doctor --verbose` - Show detailed dependency information
|
56
|
+
- `aircana generate` - Generate plugin components from templates
|
57
|
+
- `aircana dump-context <agent_name>` - Dump context for specified agent
|
58
|
+
|
43
59
|
## Architecture
|
44
60
|
|
45
61
|
### Core Structure
|
46
|
-
Aircana is a Ruby gem that
|
62
|
+
Aircana is a Ruby gem that creates and manages Claude Code plugins. The main components:
|
47
63
|
|
48
64
|
- **CLI Layer** (`lib/aircana/cli/`): Thor-based command line interface with subcommands
|
49
65
|
- `app.rb`: Main Thor application defining all commands
|
50
66
|
- `subcommand.rb`: Base class for subcommands
|
51
67
|
- `shell_command.rb`: Shell command execution utilities
|
52
68
|
- `commands/`: Individual command implementations
|
53
|
-
-
|
69
|
+
- `init.rb`: Plugin initialization
|
70
|
+
- `plugin.rb`: Plugin metadata management
|
71
|
+
- `agents.rb`: Agent CRUD operations
|
72
|
+
- `hooks.rb`: Hook management
|
73
|
+
- **Plugin Management**:
|
74
|
+
- `plugin_manifest.rb`: Manages `.claude-plugin/plugin.json`
|
75
|
+
- `hooks_manifest.rb`: Manages `hooks/hooks.json`
|
76
|
+
- **Contexts** (`lib/aircana/contexts/`): Manages knowledge sources
|
54
77
|
- `confluence.rb`: Handles Confluence page fetching and caching
|
55
78
|
- `confluence_content.rb`: Processes Confluence content
|
56
79
|
- `web.rb`: Handles web URL fetching and HTML to Markdown conversion
|
57
|
-
- `
|
80
|
+
- `manifest.rb`: Tracks knowledge sources per agent
|
58
81
|
- **Generators** (`lib/aircana/generators/`): Template generation system
|
59
82
|
- `base_generator.rb`: Base class for all generators
|
60
83
|
- `agents_generator.rb`: Generates agent configurations
|
61
|
-
-
|
62
|
-
- **Configuration** (`lib/aircana/configuration.rb`): Centralized configuration management
|
84
|
+
- Command generators: Generate slash commands from templates
|
85
|
+
- **Configuration** (`lib/aircana/configuration.rb`): Centralized configuration management with plugin-aware paths
|
63
86
|
- **Support Classes**:
|
64
87
|
- `human_logger.rb`: User-friendly logging output
|
65
88
|
- `system_checker.rb`: Dependency validation
|
66
|
-
- `agent.rb`: Agent model and persistence
|
67
89
|
|
68
90
|
### Key Concepts
|
69
|
-
- **
|
70
|
-
- **
|
71
|
-
- **
|
91
|
+
- **Plugins**: Distributable Claude Code extensions with manifests, agents, commands, and hooks
|
92
|
+
- **Plugin Manifests**: JSON files defining plugin metadata (`.claude-plugin/plugin.json`)
|
93
|
+
- **Agents**: Domain-specific experts with dedicated knowledge bases and context windows
|
94
|
+
- **Knowledge Bases**: Curated documentation from Confluence and web sources
|
95
|
+
- **Hooks**: Event-driven automation through `hooks/hooks.json`
|
96
|
+
- **Commands**: Custom slash commands for workflow automation
|
72
97
|
|
73
98
|
### File Organization
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
99
|
+
- **Plugin Structure**:
|
100
|
+
- `.claude-plugin/plugin.json` - Plugin manifest with metadata and versioning
|
101
|
+
- `agents/` - Agent markdown files and their knowledge directories
|
102
|
+
- `commands/` - Slash command markdown files
|
103
|
+
- `hooks/` - Hook scripts and hooks.json manifest
|
104
|
+
- **Configuration**:
|
105
|
+
- `~/.aircana` - Global Aircana configuration
|
106
|
+
- `~/.aircana/aircana.out` - Generated templates output directory
|
107
|
+
- **Agent Knowledge**:
|
108
|
+
- `agents/<agent_name>/knowledge/` - Cached knowledge base content
|
109
|
+
- `agents/<agent_name>/manifest.json` - Tracks knowledge sources
|
79
110
|
|
80
111
|
### Dependencies
|
81
112
|
- Thor (~> 0.19.1) for CLI framework
|