aircana 4.0.0.rc3 → 4.0.0.rc4

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: 9b2fec86c0c227e148b87d3e5d766fc779e3e34a6c73f3ebec1f88e427c206bc
4
- data.tar.gz: 3aaa80f749a685e2731b3b7d8ae2c799f2d1a90f58ac017b81784b6393663b87
3
+ metadata.gz: e8d5be7386f157583696f07f41414c21556900adfde8849e19d54057e3f5755e
4
+ data.tar.gz: 390ffd1596c5e7057fd457b165a4efa2c6a6bd067149948d0d2fc6812ee891da
5
5
  SHA512:
6
- metadata.gz: 8f36f796567c9fdea27472ef87a983e19c0a431afa6567fa05480456cd2417d35a8d63a2ec64735a0c070682c6b5851f9a24d099a02556adb4221d06f50ce6be
7
- data.tar.gz: 0416c54bac24f71275e9c34c5f83711b1312f7abf47b6df1bcef62213d9813b3708761c67e8cbece574051c26a8ff418b9f686ceb50bff85e9951959c35ff201
6
+ metadata.gz: 290926c71151382da45dd70d9a820d31d94d6df32e30ae38eba014c05e9300730d58f9a05c6032f07facd705babec3b02b53c13231ec5c871fbbeb884d906788
7
+ data.tar.gz: d9fce8dce7b118b534d8cae0717c233b61fd58c7b0bf168ad7345dff645955fed7c71b6f034c78a14abaddade1ae2b8b226aaac9eabc00fd9228bac7f80707e4
data/.rspec_status CHANGED
@@ -1,192 +1,192 @@
1
1
  example_id | status | run_time |
2
2
  ----------------------------------------------------------------- | ------ | --------------- |
3
- ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.01432 seconds |
4
- ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00218 seconds |
5
- ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.00396 seconds |
6
- ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00157 seconds |
7
- ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.00122 seconds |
8
- ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00126 seconds |
9
- ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00131 seconds |
10
- ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00109 seconds |
11
- ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00103 seconds |
12
- ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.0009 seconds |
13
- ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00094 seconds |
14
- ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00094 seconds |
15
- ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00178 seconds |
16
- ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00212 seconds |
17
- ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00235 seconds |
18
- ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00195 seconds |
19
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00026 seconds |
20
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00047 seconds |
21
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.00029 seconds |
22
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.00077 seconds |
23
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.00083 seconds |
24
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00063 seconds |
25
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00019 seconds |
26
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00077 seconds |
3
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.0061 seconds |
4
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00207 seconds |
5
+ ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.00318 seconds |
6
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00165 seconds |
7
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.00129 seconds |
8
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00134 seconds |
9
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00135 seconds |
10
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00099 seconds |
11
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00093 seconds |
12
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00096 seconds |
13
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00692 seconds |
14
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.0011 seconds |
15
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00285 seconds |
16
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00215 seconds |
17
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00264 seconds |
18
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00213 seconds |
19
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00028 seconds |
20
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00049 seconds |
21
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.00028 seconds |
22
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.00087 seconds |
23
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.00087 seconds |
24
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00064 seconds |
25
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00016 seconds |
26
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00076 seconds |
27
27
  ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00014 seconds |
28
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.00725 seconds |
29
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00012 seconds |
30
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00096 seconds |
31
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00021 seconds |
32
- ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.0001 seconds |
28
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.00007 seconds |
29
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00007 seconds |
30
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00084 seconds |
31
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00018 seconds |
32
+ ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00009 seconds |
33
33
  ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00005 seconds |
34
34
  ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00004 seconds |
35
35
  ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00004 seconds |
36
36
  ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00004 seconds |
37
37
  ./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00004 seconds |
38
- ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00067 seconds |
39
- ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00023 seconds |
38
+ ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00004 seconds |
39
+ ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00021 seconds |
40
40
  ./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.00017 seconds |
41
- ./spec/aircana/configuration_spec.rb[1:7:3:1] | passed | 0.00016 seconds |
41
+ ./spec/aircana/configuration_spec.rb[1:7:3:1] | passed | 0.00017 seconds |
42
42
  ./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.00005 seconds |
43
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00389 seconds |
44
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00077 seconds |
45
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00171 seconds |
43
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00243 seconds |
44
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.0053 seconds |
45
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00175 seconds |
46
46
  ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00034 seconds |
47
47
  ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00026 seconds |
48
48
  ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00024 seconds |
49
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00051 seconds |
50
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00051 seconds |
51
- ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.0003 seconds |
52
- ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00016 seconds |
53
- ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00012 seconds |
54
- ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00011 seconds |
49
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00046 seconds |
50
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00074 seconds |
51
+ ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00024 seconds |
52
+ ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00014 seconds |
53
+ ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00011 seconds |
54
+ ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00012 seconds |
55
55
  ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00011 seconds |
56
- ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00012 seconds |
57
- ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00015 seconds |
58
- ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00013 seconds |
59
- ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00022 seconds |
60
- ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00017 seconds |
61
- ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00015 seconds |
56
+ ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00011 seconds |
57
+ ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00017 seconds |
58
+ ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00014 seconds |
59
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00021 seconds |
60
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00026 seconds |
61
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00016 seconds |
62
62
  ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00017 seconds |
63
63
  ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00015 seconds |
64
- ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00016 seconds |
65
- ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00019 seconds |
66
- ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00021 seconds |
67
- ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00017 seconds |
68
- ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00016 seconds |
64
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00015 seconds |
65
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00007 seconds |
66
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00016 seconds |
67
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00016 seconds |
68
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00015 seconds |
69
69
  ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00007 seconds |
70
- ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00014 seconds |
71
- ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00007 seconds |
72
- ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00009 seconds |
73
- ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00008 seconds |
70
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00013 seconds |
71
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00006 seconds |
72
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00008 seconds |
73
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00007 seconds |
74
74
  ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00007 seconds |
75
- ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00007 seconds |
75
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00019 seconds |
76
76
  ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00007 seconds |
77
77
  ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00007 seconds |
78
78
  ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00007 seconds |
79
79
  ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00007 seconds |
80
- ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00007 seconds |
81
- ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00007 seconds |
82
- ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00015 seconds |
83
- ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.00014 seconds |
84
- ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00021 seconds |
80
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00006 seconds |
81
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00006 seconds |
82
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00014 seconds |
83
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.00013 seconds |
84
+ ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00019 seconds |
85
85
  ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00023 seconds |
86
- ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00017 seconds |
87
- ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00014 seconds |
86
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00027 seconds |
87
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00015 seconds |
88
88
  ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00013 seconds |
89
- ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.0002 seconds |
90
- ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00015 seconds |
91
- ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00021 seconds |
92
- ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00042 seconds |
93
- ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00031 seconds |
94
- ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00022 seconds |
89
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00018 seconds |
90
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00014 seconds |
91
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.0002 seconds |
92
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00031 seconds |
93
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.0003 seconds |
94
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00032 seconds |
95
95
  ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.00028 seconds |
96
96
  ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00016 seconds |
97
- ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00016 seconds |
97
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00015 seconds |
98
98
  ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00014 seconds |
99
- ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00055 seconds |
100
- ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00016 seconds |
101
- ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00037 seconds |
99
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00054 seconds |
100
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00015 seconds |
101
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00041 seconds |
102
102
  ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.0003 seconds |
103
- ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00029 seconds |
103
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00028 seconds |
104
104
  ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00028 seconds |
105
105
  ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00015 seconds |
106
106
  ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00013 seconds |
107
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00022 seconds |
108
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.0002 seconds |
109
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00024 seconds |
107
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00021 seconds |
108
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00019 seconds |
109
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00022 seconds |
110
110
  ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00028 seconds |
111
- ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00029 seconds |
112
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00015 seconds |
113
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.00014 seconds |
114
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00013 seconds |
115
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.00012 seconds |
111
+ ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00027 seconds |
112
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00014 seconds |
113
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.00013 seconds |
114
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00017 seconds |
115
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.00013 seconds |
116
116
  ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.0001 seconds |
117
117
  ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00004 seconds |
118
118
  ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00003 seconds |
119
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00048 seconds |
119
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00047 seconds |
120
120
  ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00024 seconds |
121
- ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00016 seconds |
121
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00012 seconds |
122
122
  ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00012 seconds |
123
123
  ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00004 seconds |
124
- ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.0006 seconds |
125
- ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.0002 seconds |
126
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00038 seconds |
127
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00033 seconds |
128
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00032 seconds |
129
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00013 seconds |
130
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00009 seconds |
124
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00059 seconds |
125
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00019 seconds |
126
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00352 seconds |
127
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00035 seconds |
128
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00033 seconds |
129
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00014 seconds |
130
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.0001 seconds |
131
131
  ./spec/aircana/generators/record_command_generator_spec.rb[1:1:1] | passed | 0.00026 seconds |
132
- ./spec/aircana/generators/record_command_generator_spec.rb[1:2:1] | passed | 0.00043 seconds |
132
+ ./spec/aircana/generators/record_command_generator_spec.rb[1:2:1] | passed | 0.00095 seconds |
133
133
  ./spec/aircana/generators/record_command_generator_spec.rb[1:2:2] | passed | 0.00013 seconds |
134
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00013 seconds |
134
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00016 seconds |
135
135
  ./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00008 seconds |
136
136
  ./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.00007 seconds |
137
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.0002 seconds |
138
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00023 seconds |
137
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.00021 seconds |
138
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00022 seconds |
139
139
  ./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00018 seconds |
140
140
  ./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.00008 seconds |
141
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.0001 seconds |
141
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.00032 seconds |
142
142
  ./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00008 seconds |
143
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.00007 seconds |
144
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00009 seconds |
145
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.00007 seconds |
143
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.00006 seconds |
144
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00007 seconds |
145
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.00006 seconds |
146
146
  ./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.00006 seconds |
147
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.00007 seconds |
148
- ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.00007 seconds |
149
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.00009 seconds |
150
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00008 seconds |
151
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.00011 seconds |
152
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.00008 seconds |
147
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.00005 seconds |
148
+ ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.00006 seconds |
149
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.00007 seconds |
150
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00007 seconds |
151
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.00007 seconds |
152
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.00007 seconds |
153
153
  ./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.00007 seconds |
154
154
  ./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00007 seconds |
155
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.00007 seconds |
156
- ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00038 seconds |
155
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.00006 seconds |
156
+ ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00055 seconds |
157
157
  ./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00032 seconds |
158
- ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00526 seconds |
159
- ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00007 seconds |
160
- ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00006 seconds |
158
+ ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00009 seconds |
159
+ ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00005 seconds |
160
+ ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00005 seconds |
161
161
  ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00005 seconds |
162
162
  ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00004 seconds |
163
163
  ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00004 seconds |
164
164
  ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00004 seconds |
165
165
  ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00004 seconds |
166
166
  ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00004 seconds |
167
- ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00004 seconds |
167
+ ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
168
168
  ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00004 seconds |
169
169
  ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00004 seconds |
170
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00131 seconds |
170
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00067 seconds |
171
171
  ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00045 seconds |
172
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00039 seconds |
173
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00083 seconds |
174
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00054 seconds |
175
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00076 seconds |
176
- ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00045 seconds |
177
- ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00041 seconds |
178
- ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00057 seconds |
179
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00028 seconds |
172
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00041 seconds |
173
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00041 seconds |
174
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00047 seconds |
175
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.0004 seconds |
176
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00047 seconds |
177
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00042 seconds |
178
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00041 seconds |
179
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00027 seconds |
180
180
  ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00025 seconds |
181
181
  ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00038 seconds |
182
- ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00068 seconds |
183
- ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00088 seconds |
184
- ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00044 seconds |
185
- ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00027 seconds |
186
- ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00025 seconds |
187
- ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00026 seconds |
188
- ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00031 seconds |
189
- ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00034 seconds |
190
- ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00034 seconds |
182
+ ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00053 seconds |
183
+ ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.0008 seconds |
184
+ ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00028 seconds |
185
+ ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00026 seconds |
186
+ ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00024 seconds |
187
+ ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00027 seconds |
188
+ ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00029 seconds |
189
+ ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00035 seconds |
190
+ ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00021 seconds |
191
191
  ./spec/aircana_spec.rb[1:1] | passed | 0.00004 seconds |
192
- ./spec/aircana_spec.rb[1:2] | passed | 0.00064 seconds |
192
+ ./spec/aircana_spec.rb[1:2] | passed | 0.0006 seconds |
data/CLAUDE.md CHANGED
@@ -104,9 +104,10 @@ Aircana is a Ruby gem that creates and manages Claude Code plugins with knowledg
104
104
  - **Configuration** (`lib/aircana/configuration.rb`): Path resolution system
105
105
  - Plugin root detection via environment variables (AIRCANA_PLUGIN_ROOT, CLAUDE_PLUGIN_ROOT)
106
106
  - Plugin-aware paths (commands, skills, hooks directories)
107
- - Global vs plugin-local knowledge storage
107
+ - Conditional skills directory location:
108
+ - Plugin mode (has `.claude-plugin/plugin.json`): `skills/` (Claude Code standard)
109
+ - Non-plugin mode (one-off usage): `.claude/skills/` (local development)
108
110
  - Automatic plugin name extraction from plugin.json
109
- - Resolves to `~/.claude/skills/<kb-name>/` for knowledge storage
110
111
 
111
112
  - **LLM Integration**:
112
113
  - `llm/claude_client.rb`: Claude API client for web title generation
@@ -126,32 +127,39 @@ Aircana is a Ruby gem that creates and manages Claude Code plugins with knowledg
126
127
  - **Commands**: Custom slash commands for workflow automation
127
128
 
128
129
  ### File Organization
129
- - **Plugin Structure**:
130
+ - **Plugin Structure** (when in plugin mode):
130
131
  - `.claude-plugin/plugin.json` - Plugin manifest with metadata and versioning
131
- - `agents/` - Knowledge base markdown files (skill definitions)
132
+ - `agents/` - Knowledge base manifests (metadata about knowledge sources)
132
133
  - `agents/<kb-name>/manifest.json` - Tracks knowledge sources per KB
133
- - `agents/<kb-name>/knowledge/` - Local knowledge base content (if KB type is "local")
134
+ - `skills/` - Knowledge base SKILL.md files (Claude Code reads from here)
135
+ - `skills/<kb-name>/SKILL.md` - Main skill definition file
136
+ - `skills/<kb-name>/*.md` - Knowledge content (Confluence pages, web articles)
134
137
  - `commands/` - Slash command markdown files
135
138
  - `hooks/` - hooks.json manifest defining hook configurations
136
139
  - `scripts/` - Hook scripts and utility scripts
137
140
 
141
+ - **Non-Plugin Structure** (one-off usage outside a plugin):
142
+ - `.claude/skills/` - All KB files stored here
143
+ - `.claude/skills/<kb-name>/manifest.json` - KB manifest
144
+ - `.claude/skills/<kb-name>/SKILL.md` - Skill definition
145
+ - `.claude/skills/<kb-name>/*.md` - Knowledge content
146
+
138
147
  - **Global Configuration**:
139
148
  - `~/.aircana/` - Global Aircana configuration directory
140
149
  - `~/.aircana/aircana.out/` - Generated templates output directory
141
- - `~/.claude/skills/` - Runtime knowledge base storage
142
150
 
143
151
  - **Knowledge Storage Architecture**:
144
- - **Remote KBs (not version controlled)**: `~/.claude/skills/<kb-name>/`
145
- - Actual knowledge base content (Markdown files)
146
- - Refreshed via `aircana kb refresh`
147
- - Excluded from version control to avoid bloat/sensitivity
148
- - **Local KBs (version controlled)**: `agents/<kb-name>/knowledge/`
149
- - Version-controlled knowledge content in plugin repository
150
- - Auto-synced to `~/.claude/skills/<kb-name>/` via SessionStart hook
151
- - Teams can collaborate on knowledge directly in Git
152
- - **Plugin-local manifests (version controlled)**: `agents/<kb-name>/manifest.json`
153
- - Tracks knowledge sources (Confluence labels, web URLs)
154
- - Specifies KB type ("local" or "remote")
152
+ - **Plugin Mode**:
153
+ - Manifests: `agents/<kb-name>/manifest.json` (version controlled)
154
+ - SKILL.md: `skills/<kb-name>/SKILL.md` (version controlled or gitignored based on KB type)
155
+ - Knowledge content: `skills/<kb-name>/*.md`
156
+ - Remote KBs: `skills/<kb-name>/` added to .gitignore (not version controlled)
157
+ - Local KBs: `skills/<kb-name>/` version controlled (team collaboration)
158
+ - **Non-Plugin Mode**:
159
+ - Everything in `.claude/skills/<kb-name>/`:
160
+ - `manifest.json` - KB manifest
161
+ - `SKILL.md` - Skill definition
162
+ - `*.md` - Knowledge content
155
163
  - Team members can refresh knowledge independently
156
164
  - Format:
157
165
  ```json
@@ -232,9 +240,9 @@ end
232
240
 
233
241
  **Manifest-Based Knowledge Tracking**:
234
242
  Each knowledge base has a `manifest.json` that tracks knowledge sources:
235
- - Version controlled: `agents/<kb-name>/manifest.json` (sources metadata, KB type)
236
- - Remote KBs: Content stored in `~/.claude/skills/<kb-name>/` (not version controlled)
237
- - Local KBs: Content stored in `agents/<kb-name>/knowledge/` (version controlled), synced to `~/.claude/skills/`
243
+ - Plugin mode: Stored in `agents/<kb-name>/manifest.json` (version controlled)
244
+ - Non-plugin mode: Stored in `.claude/skills/<kb-name>/manifest.json`
245
+ - Contains KB type (remote/local), source URLs, Confluence labels
238
246
  - Team members run `aircana kb refresh` to sync remote knowledge locally
239
247
 
240
248
  **Plugin-Aware Path Resolution**:
@@ -278,6 +286,5 @@ Knowledge bases can sync content from multiple sources:
278
286
  - Manifest schema version 1.0
279
287
  - `aircana kb refresh <kb-name>` refreshes all sources (Confluence + web) for remote KBs
280
288
  - `aircana kb refresh-all` refreshes all configured remote knowledge bases
281
- - Remote KB content stored as Markdown in `~/.claude/skills/<kb-name>/`
282
- - Local KB content stored in `agents/<kb-name>/knowledge/`, synced to `~/.claude/skills/<kb-name>/`
283
- - Knowledge paths referenced in skill files use tilde notation: `~/.claude/skills/.../`
289
+ - **Plugin mode**: KB content stored in `skills/<kb-name>/`
290
+ - **Non-plugin mode**: KB content stored in `.claude/skills/<kb-name>/`
@@ -57,10 +57,10 @@ module Aircana
57
57
  Aircana.configuration.instance_variable_set(:@plugin_manifest_dir,
58
58
  File.join(target_dir, ".claude-plugin"))
59
59
  Aircana.configuration.instance_variable_set(:@commands_dir, File.join(target_dir, "commands"))
60
- Aircana.configuration.instance_variable_set(:@agents_dir, File.join(target_dir, "agents"))
60
+ Aircana.configuration.instance_variable_set(:@skills_dir, File.join(target_dir, "skills"))
61
+ Aircana.configuration.instance_variable_set(:@kb_knowledge_dir, File.join(target_dir, "skills"))
61
62
  Aircana.configuration.instance_variable_set(:@hooks_dir, File.join(target_dir, "hooks"))
62
63
  Aircana.configuration.instance_variable_set(:@scripts_dir, File.join(target_dir, "scripts"))
63
- Aircana.configuration.instance_variable_set(:@agent_knowledge_dir, File.join(target_dir, "agents"))
64
64
 
65
65
  yield
66
66
  ensure
@@ -71,11 +71,17 @@ module Aircana
71
71
  File.join(original_plugin_root, ".claude-plugin"))
72
72
  Aircana.configuration.instance_variable_set(:@commands_dir,
73
73
  File.join(original_plugin_root, "commands"))
74
- Aircana.configuration.instance_variable_set(:@agents_dir, File.join(original_plugin_root, "agents"))
74
+ # Restore skills_dir based on whether original_plugin_root is a plugin
75
+ original_plugin_mode = File.exist?(File.join(original_plugin_root, ".claude-plugin", "plugin.json"))
76
+ original_skills_dir = if original_plugin_mode
77
+ File.join(original_plugin_root, "skills")
78
+ else
79
+ File.join(original_plugin_root, ".claude", "skills")
80
+ end
81
+ Aircana.configuration.instance_variable_set(:@skills_dir, original_skills_dir)
82
+ Aircana.configuration.instance_variable_set(:@kb_knowledge_dir, original_skills_dir)
75
83
  Aircana.configuration.instance_variable_set(:@hooks_dir, File.join(original_plugin_root, "hooks"))
76
84
  Aircana.configuration.instance_variable_set(:@scripts_dir, File.join(original_plugin_root, "scripts"))
77
- Aircana.configuration.instance_variable_set(:@agent_knowledge_dir,
78
- File.join(original_plugin_root, "agents"))
79
85
  end
80
86
  end
81
87
 
@@ -109,7 +115,7 @@ module Aircana
109
115
 
110
116
  def create_plugin_structure(target_dir)
111
117
  # Create plugin directories
112
- [".claude-plugin", "commands", "agents", "hooks", "scripts"].each do |dir|
118
+ [".claude-plugin", "commands", "agents", "skills", "hooks", "scripts"].each do |dir|
113
119
  dir_path = File.join(target_dir, dir)
114
120
  Aircana.create_dir_if_needed(dir_path)
115
121
  Aircana.human_logger.info("Created directory: #{dir}/")
@@ -237,7 +243,8 @@ module Aircana
237
243
  Aircana.human_logger.info("\nPlugin structure:")
238
244
  Aircana.human_logger.info(" .claude-plugin/plugin.json - Plugin metadata")
239
245
  Aircana.human_logger.info(" commands/ - Slash commands")
240
- Aircana.human_logger.info(" agents/ - Knowledge bases")
246
+ Aircana.human_logger.info(" agents/ - Knowledge base manifests")
247
+ Aircana.human_logger.info(" skills/ - Knowledge base SKILL.md files")
241
248
  Aircana.human_logger.info(" hooks/ - Event hook configurations")
242
249
  Aircana.human_logger.info(" scripts/ - Hook scripts and utilities")
243
250
  Aircana.human_logger.info("\nNext steps:")
@@ -284,11 +284,21 @@ module Aircana
284
284
  end
285
285
 
286
286
  def remote_knowledge_pattern
287
- ".claude/skills/*/*.md"
287
+ # Pattern depends on whether we're in a plugin
288
+ if Aircana.configuration.plugin_mode?
289
+ "skills/*/*.md"
290
+ else
291
+ ".claude/skills/*/*.md"
292
+ end
288
293
  end
289
294
 
290
295
  def local_knowledge_negation_pattern
291
- "!.claude/skills/*/*.md"
296
+ # Negation pattern depends on whether we're in a plugin
297
+ if Aircana.configuration.plugin_mode?
298
+ "!skills/*/*.md"
299
+ else
300
+ "!.claude/skills/*/*.md"
301
+ end
292
302
  end
293
303
 
294
304
  def gitignore_has_pattern?(gitignore_path, pattern)
@@ -69,17 +69,28 @@ module Aircana
69
69
  @output_dir = File.join(@global_dir, "aircana.out")
70
70
  end
71
71
 
72
+ # rubocop:disable Metrics/MethodLength
72
73
  def setup_plugin_paths
73
74
  # Plugin root can be set via AIRCANA_PLUGIN_ROOT (for hooks) or CLAUDE_PLUGIN_ROOT,
74
75
  # otherwise defaults to the current project directory
75
76
  @plugin_root = ENV.fetch("AIRCANA_PLUGIN_ROOT", ENV.fetch("CLAUDE_PLUGIN_ROOT", @project_dir))
76
77
  @plugin_manifest_dir = File.join(@plugin_root, ".claude-plugin")
77
78
  @commands_dir = File.join(@plugin_root, "commands")
78
- @skills_dir = File.join(@plugin_root, ".claude", "skills")
79
+
80
+ # Skills directory location depends on whether we're in a plugin
81
+ # Plugin mode: skills/ (Claude Code standard location)
82
+ # Non-plugin mode: .claude/skills/ (local development/one-off usage)
83
+ @skills_dir = if plugin_mode?
84
+ File.join(@plugin_root, "skills")
85
+ else
86
+ File.join(@plugin_root, ".claude", "skills")
87
+ end
88
+
79
89
  @hooks_dir = File.join(@plugin_root, "hooks")
80
90
  @scripts_dir = File.join(@plugin_root, "scripts")
81
91
  @kb_knowledge_dir = @skills_dir
82
92
  end
93
+ # rubocop:enable Metrics/MethodLength
83
94
 
84
95
  def setup_claude_code_paths
85
96
  @claude_code_config_path = File.join(Dir.home, ".claude")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Aircana
4
- VERSION = "4.0.0.rc3"
4
+ VERSION = "4.0.0.rc4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aircana
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.rc3
4
+ version: 4.0.0.rc4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Dransfield