aircana 4.2.0 → 4.4.0
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/.rspec_status +184 -184
- data/CHANGELOG.md +19 -1
- data/CLAUDE.md +9 -7
- data/lib/aircana/cli/commands/kb.rb +1 -25
- data/lib/aircana/contexts/confluence.rb +20 -21
- data/lib/aircana/templates/commands/ask_expert.erb +4 -2
- data/lib/aircana/templates/commands/plan.erb +4 -2
- data/lib/aircana/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 13409388b12a773f23642e0b147b8c06237aaa5c80c1543508e379e738d1d9fd
|
|
4
|
+
data.tar.gz: d17a2b5ed044c4021e1a101feaf7c6df8d96b600b6389e14db553ed042a991cb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2aea24ee97bfe6ee52b3ace98894aec15e811fe94dcde8be8e91d21ac71aad0030a7781ea9421b83c82b57f5ff4257d3306a88bda9da7363270c03f60f84f2fa
|
|
7
|
+
data.tar.gz: ff33795e6d123b2bceaeb8edf155a24d63b2baa348bb7ebad4df79562a0593c4206da198de696f14ac74adeeb5b41d1fac4174416f6de86cd382a6d48292c954
|
data/.rspec_status
CHANGED
|
@@ -1,189 +1,189 @@
|
|
|
1
1
|
example_id | status | run_time |
|
|
2
2
|
--------------------------------------------------------------- | ------ | --------------- |
|
|
3
|
-
./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.
|
|
4
|
-
./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.
|
|
5
|
-
./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.
|
|
6
|
-
./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.
|
|
7
|
-
./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.
|
|
8
|
-
./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.
|
|
9
|
-
./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.
|
|
10
|
-
./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.
|
|
11
|
-
./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.
|
|
12
|
-
./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.
|
|
13
|
-
./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.
|
|
14
|
-
./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.
|
|
15
|
-
./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.
|
|
16
|
-
./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.
|
|
17
|
-
./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.
|
|
18
|
-
./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.
|
|
19
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.
|
|
20
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.
|
|
21
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.
|
|
22
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.
|
|
23
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.
|
|
24
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.
|
|
25
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.
|
|
26
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.
|
|
27
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.
|
|
28
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.
|
|
29
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.
|
|
30
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.
|
|
31
|
-
./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.
|
|
32
|
-
./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.
|
|
33
|
-
./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.
|
|
34
|
-
./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.
|
|
35
|
-
./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.
|
|
36
|
-
./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.
|
|
37
|
-
./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.
|
|
38
|
-
./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.
|
|
39
|
-
./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.
|
|
40
|
-
./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.
|
|
3
|
+
./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.01332 seconds |
|
|
4
|
+
./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00336 seconds |
|
|
5
|
+
./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.00484 seconds |
|
|
6
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00274 seconds |
|
|
7
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.00223 seconds |
|
|
8
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00244 seconds |
|
|
9
|
+
./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00257 seconds |
|
|
10
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00167 seconds |
|
|
11
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00492 seconds |
|
|
12
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00162 seconds |
|
|
13
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00202 seconds |
|
|
14
|
+
./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00159 seconds |
|
|
15
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00334 seconds |
|
|
16
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00409 seconds |
|
|
17
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00452 seconds |
|
|
18
|
+
./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00407 seconds |
|
|
19
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00048 seconds |
|
|
20
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00141 seconds |
|
|
21
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.002 seconds |
|
|
22
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.002 seconds |
|
|
23
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.00162 seconds |
|
|
24
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00169 seconds |
|
|
25
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00041 seconds |
|
|
26
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00178 seconds |
|
|
27
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00058 seconds |
|
|
28
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.00032 seconds |
|
|
29
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00039 seconds |
|
|
30
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00175 seconds |
|
|
31
|
+
./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00083 seconds |
|
|
32
|
+
./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00014 seconds |
|
|
33
|
+
./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00012 seconds |
|
|
34
|
+
./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00014 seconds |
|
|
35
|
+
./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00012 seconds |
|
|
36
|
+
./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00014 seconds |
|
|
37
|
+
./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00012 seconds |
|
|
38
|
+
./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00012 seconds |
|
|
39
|
+
./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00025 seconds |
|
|
40
|
+
./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.00022 seconds |
|
|
41
41
|
./spec/aircana/configuration_spec.rb[1:7:3:1] | passed | 0.00021 seconds |
|
|
42
|
-
./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.
|
|
43
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.
|
|
44
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.
|
|
45
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.
|
|
46
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.
|
|
47
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.
|
|
48
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.
|
|
49
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.
|
|
50
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.
|
|
51
|
-
./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.
|
|
52
|
-
./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.
|
|
53
|
-
./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.
|
|
54
|
-
./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.
|
|
55
|
-
./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.
|
|
56
|
-
./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.
|
|
57
|
-
./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.
|
|
58
|
-
./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.
|
|
59
|
-
./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.
|
|
60
|
-
./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.
|
|
61
|
-
./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.
|
|
62
|
-
./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.
|
|
63
|
-
./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.
|
|
64
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.
|
|
65
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.
|
|
66
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.
|
|
67
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.
|
|
68
|
-
./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.
|
|
69
|
-
./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.
|
|
70
|
-
./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.
|
|
71
|
-
./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.
|
|
72
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.
|
|
73
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.
|
|
74
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.
|
|
75
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.
|
|
76
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.
|
|
77
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.
|
|
78
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.
|
|
42
|
+
./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.00013 seconds |
|
|
43
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00376 seconds |
|
|
44
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00103 seconds |
|
|
45
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00246 seconds |
|
|
46
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00047 seconds |
|
|
47
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00044 seconds |
|
|
48
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00044 seconds |
|
|
49
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00082 seconds |
|
|
50
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00094 seconds |
|
|
51
|
+
./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00048 seconds |
|
|
52
|
+
./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.0005 seconds |
|
|
53
|
+
./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00044 seconds |
|
|
54
|
+
./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00048 seconds |
|
|
55
|
+
./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00047 seconds |
|
|
56
|
+
./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00048 seconds |
|
|
57
|
+
./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00076 seconds |
|
|
58
|
+
./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00075 seconds |
|
|
59
|
+
./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00087 seconds |
|
|
60
|
+
./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00087 seconds |
|
|
61
|
+
./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00084 seconds |
|
|
62
|
+
./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00096 seconds |
|
|
63
|
+
./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.0047 seconds |
|
|
64
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00085 seconds |
|
|
65
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00032 seconds |
|
|
66
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00088 seconds |
|
|
67
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00086 seconds |
|
|
68
|
+
./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00084 seconds |
|
|
69
|
+
./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00032 seconds |
|
|
70
|
+
./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00082 seconds |
|
|
71
|
+
./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00031 seconds |
|
|
72
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.0003 seconds |
|
|
73
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00032 seconds |
|
|
74
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00034 seconds |
|
|
75
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00031 seconds |
|
|
76
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00062 seconds |
|
|
77
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00032 seconds |
|
|
78
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00033 seconds |
|
|
79
79
|
./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00032 seconds |
|
|
80
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.
|
|
81
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.
|
|
82
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.
|
|
83
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.
|
|
84
|
-
./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.
|
|
85
|
-
./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.
|
|
86
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.
|
|
87
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.
|
|
88
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.
|
|
89
|
-
./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.
|
|
90
|
-
./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.
|
|
91
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.
|
|
92
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.
|
|
93
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.
|
|
94
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.
|
|
95
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.
|
|
96
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.
|
|
97
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.
|
|
98
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.
|
|
99
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.
|
|
100
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.
|
|
101
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.
|
|
102
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.
|
|
103
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.
|
|
104
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.
|
|
105
|
-
./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.
|
|
106
|
-
./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.
|
|
107
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.
|
|
108
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.
|
|
109
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.
|
|
110
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.
|
|
111
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.
|
|
112
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.
|
|
113
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.
|
|
114
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.
|
|
115
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.
|
|
116
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.
|
|
117
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.
|
|
118
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.
|
|
119
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.
|
|
120
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.
|
|
121
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.
|
|
122
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.
|
|
123
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.
|
|
124
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.
|
|
125
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.
|
|
126
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.
|
|
127
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.
|
|
128
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.
|
|
129
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.
|
|
130
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.
|
|
131
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.
|
|
132
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.
|
|
133
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.
|
|
134
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.
|
|
135
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.
|
|
136
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.
|
|
137
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.
|
|
138
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.
|
|
139
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.
|
|
140
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.
|
|
141
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.
|
|
142
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.
|
|
143
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.
|
|
144
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.
|
|
145
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.
|
|
146
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.
|
|
147
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.
|
|
148
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.
|
|
149
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.
|
|
150
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.
|
|
151
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.
|
|
152
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.
|
|
153
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.
|
|
154
|
-
./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.
|
|
155
|
-
./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.
|
|
156
|
-
./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.
|
|
157
|
-
./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.
|
|
158
|
-
./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.
|
|
159
|
-
./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.
|
|
160
|
-
./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.
|
|
161
|
-
./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.
|
|
162
|
-
./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.
|
|
163
|
-
./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.
|
|
164
|
-
./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.
|
|
165
|
-
./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.
|
|
166
|
-
./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.
|
|
167
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.
|
|
168
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.
|
|
169
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.
|
|
170
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.
|
|
171
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.
|
|
172
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.
|
|
80
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00032 seconds |
|
|
81
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00035 seconds |
|
|
82
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00087 seconds |
|
|
83
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.00084 seconds |
|
|
84
|
+
./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00033 seconds |
|
|
85
|
+
./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00049 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.0005 seconds |
|
|
88
|
+
./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00029 seconds |
|
|
89
|
+
./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00039 seconds |
|
|
90
|
+
./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00031 seconds |
|
|
91
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00039 seconds |
|
|
92
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00058 seconds |
|
|
93
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00063 seconds |
|
|
94
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00038 seconds |
|
|
95
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.00048 seconds |
|
|
96
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00029 seconds |
|
|
97
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00032 seconds |
|
|
98
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00031 seconds |
|
|
99
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00094 seconds |
|
|
100
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00032 seconds |
|
|
101
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.0006 seconds |
|
|
102
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00053 seconds |
|
|
103
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.0005 seconds |
|
|
104
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00051 seconds |
|
|
105
|
+
./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00027 seconds |
|
|
106
|
+
./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00028 seconds |
|
|
107
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00032 seconds |
|
|
108
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00039 seconds |
|
|
109
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00044 seconds |
|
|
110
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00072 seconds |
|
|
111
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00071 seconds |
|
|
112
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00036 seconds |
|
|
113
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.00038 seconds |
|
|
114
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00033 seconds |
|
|
115
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0003 seconds |
|
|
116
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00031 seconds |
|
|
117
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00007 seconds |
|
|
118
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00011 seconds |
|
|
119
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.0009 seconds |
|
|
120
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00052 seconds |
|
|
121
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.0003 seconds |
|
|
122
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00026 seconds |
|
|
123
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00014 seconds |
|
|
124
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.0012 seconds |
|
|
125
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00041 seconds |
|
|
126
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.0009 seconds |
|
|
127
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.0045 seconds |
|
|
128
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00084 seconds |
|
|
129
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00026 seconds |
|
|
130
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00023 seconds |
|
|
131
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00044 seconds |
|
|
132
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00034 seconds |
|
|
133
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.00031 seconds |
|
|
134
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.0005 seconds |
|
|
135
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00088 seconds |
|
|
136
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00046 seconds |
|
|
137
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.00028 seconds |
|
|
138
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.00034 seconds |
|
|
139
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00036 seconds |
|
|
140
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.0003 seconds |
|
|
141
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00031 seconds |
|
|
142
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.00025 seconds |
|
|
143
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.00028 seconds |
|
|
144
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.0003 seconds |
|
|
145
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.00028 seconds |
|
|
146
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.0003 seconds |
|
|
147
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00034 seconds |
|
|
148
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.00032 seconds |
|
|
149
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.0005 seconds |
|
|
150
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.00031 seconds |
|
|
151
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00033 seconds |
|
|
152
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.0003 seconds |
|
|
153
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00115 seconds |
|
|
154
|
+
./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00106 seconds |
|
|
155
|
+
./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00015 seconds |
|
|
156
|
+
./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00011 seconds |
|
|
157
|
+
./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00011 seconds |
|
|
158
|
+
./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00012 seconds |
|
|
159
|
+
./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00011 seconds |
|
|
160
|
+
./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00012 seconds |
|
|
161
|
+
./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00008 seconds |
|
|
162
|
+
./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00012 seconds |
|
|
163
|
+
./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00012 seconds |
|
|
164
|
+
./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00013 seconds |
|
|
165
|
+
./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00012 seconds |
|
|
166
|
+
./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00011 seconds |
|
|
167
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00098 seconds |
|
|
168
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00096 seconds |
|
|
169
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.0007 seconds |
|
|
170
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.0007 seconds |
|
|
171
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00088 seconds |
|
|
172
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00075 seconds |
|
|
173
173
|
./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00071 seconds |
|
|
174
|
-
./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.
|
|
175
|
-
./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.
|
|
176
|
-
./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.
|
|
177
|
-
./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.
|
|
178
|
-
./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.
|
|
179
|
-
./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.
|
|
180
|
-
./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.
|
|
181
|
-
./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.
|
|
182
|
-
./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.
|
|
183
|
-
./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.
|
|
184
|
-
./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.
|
|
185
|
-
./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.
|
|
186
|
-
./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.
|
|
187
|
-
./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.
|
|
188
|
-
./spec/aircana_spec.rb[1:1] | passed | 0.
|
|
189
|
-
./spec/aircana_spec.rb[1:2] | passed | 0.
|
|
174
|
+
./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00063 seconds |
|
|
175
|
+
./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00069 seconds |
|
|
176
|
+
./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00047 seconds |
|
|
177
|
+
./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00045 seconds |
|
|
178
|
+
./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00062 seconds |
|
|
179
|
+
./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00094 seconds |
|
|
180
|
+
./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00143 seconds |
|
|
181
|
+
./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00044 seconds |
|
|
182
|
+
./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.0005 seconds |
|
|
183
|
+
./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00046 seconds |
|
|
184
|
+
./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00048 seconds |
|
|
185
|
+
./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00051 seconds |
|
|
186
|
+
./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00068 seconds |
|
|
187
|
+
./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00041 seconds |
|
|
188
|
+
./spec/aircana_spec.rb[1:1] | passed | 0.00009 seconds |
|
|
189
|
+
./spec/aircana_spec.rb[1:2] | passed | 0.00094 seconds |
|
data/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,25 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [4.4.0]
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Knowledge base refresh commands now work for both local and remote KBs
|
|
12
|
+
- `aircana kb refresh <kb-name>` and `aircana kb refresh-all` now refresh local KBs
|
|
13
|
+
- Local KBs can have Confluence/web sources that need periodic refreshing
|
|
14
|
+
- Confluence sources now store the label used during creation for discovering new pages
|
|
15
|
+
- Refresh operation searches by label to find all pages, including newly added ones
|
|
16
|
+
- The distinction between "local" and "remote" is about git version control, not refresh capability
|
|
17
|
+
|
|
18
|
+
## [4.3.0] - 2025-11-10
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- Fixed ERB template syntax errors in command generators
|
|
22
|
+
- Resolved nested string interpolation issues in `plan.erb` and `ask_expert.erb` templates
|
|
23
|
+
- Templates were using complex nested `#{...}` interpolation incompatible with Ruby parser
|
|
24
|
+
- Restructured templates to use ERB variables and string concatenation
|
|
25
|
+
- Fixes "unexpected backslash" and "unterminated string" syntax errors during `aircana init`
|
|
26
|
+
- All 187 tests passing
|
|
9
27
|
|
|
10
28
|
## [4.2.0] - 2025-10-31
|
|
11
29
|
|
data/CLAUDE.md
CHANGED
|
@@ -39,14 +39,14 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
39
39
|
**Knowledge Base Management:**
|
|
40
40
|
- `aircana kb create` - Create a new knowledge base interactively
|
|
41
41
|
- `aircana kb list` - List all configured knowledge bases
|
|
42
|
-
- `aircana kb refresh <kb-name>` - Refresh knowledge base from Confluence and web sources
|
|
43
|
-
- `aircana kb refresh-all` - Refresh knowledge for all configured knowledge bases
|
|
42
|
+
- `aircana kb refresh <kb-name>` - Refresh knowledge base from Confluence and web sources (works for both local and remote KBs)
|
|
43
|
+
- `aircana kb refresh-all` - Refresh knowledge for all configured knowledge bases (both local and remote)
|
|
44
44
|
- `aircana kb add-url <kb-name> <url>` - Add a web URL to a knowledge base
|
|
45
45
|
|
|
46
46
|
**Hooks:**
|
|
47
47
|
- Hooks are automatically generated during `aircana init`
|
|
48
48
|
- Default hooks include: `session_start`, `refresh_skills`, and `notification_sqs`
|
|
49
|
-
- `refresh_skills` automatically refreshes
|
|
49
|
+
- `refresh_skills` automatically refreshes knowledge bases once per 24 hours (both local and remote)
|
|
50
50
|
- Hook scripts are stored in `scripts/` directory
|
|
51
51
|
- Hook configuration is managed via `hooks/hooks.json`
|
|
52
52
|
|
|
@@ -242,8 +242,9 @@ end
|
|
|
242
242
|
Each knowledge base has a `manifest.json` that tracks knowledge sources:
|
|
243
243
|
- Plugin mode: Stored in `agents/<kb-name>/manifest.json` (version controlled)
|
|
244
244
|
- Non-plugin mode: Stored in `.claude/skills/<kb-name>/manifest.json`
|
|
245
|
-
- Contains KB type (remote/local), source URLs, Confluence labels
|
|
246
|
-
- Team members run `aircana kb refresh` to sync
|
|
245
|
+
- Contains KB type (remote/local), source URLs, Confluence labels for discovery
|
|
246
|
+
- Team members run `aircana kb refresh` to sync knowledge from Confluence/web sources
|
|
247
|
+
- Refresh discovers new pages by searching the stored Confluence label
|
|
247
248
|
|
|
248
249
|
**Plugin-Aware Path Resolution**:
|
|
249
250
|
Configuration class detects plugin mode and resolves paths accordingly:
|
|
@@ -284,7 +285,8 @@ Knowledge bases can sync content from multiple sources:
|
|
|
284
285
|
**Unified Management:**
|
|
285
286
|
- Both source types tracked in manifest.json per knowledge base
|
|
286
287
|
- Manifest schema version 1.0
|
|
287
|
-
-
|
|
288
|
-
- `aircana kb refresh-
|
|
288
|
+
- Confluence sources include the label used for discovery, enabling refresh to find new pages
|
|
289
|
+
- `aircana kb refresh <kb-name>` refreshes all sources (Confluence + web) for any KB (local or remote)
|
|
290
|
+
- `aircana kb refresh-all` refreshes all configured knowledge bases (both local and remote)
|
|
289
291
|
- **Plugin mode**: KB content stored in `skills/<kb-name>/`
|
|
290
292
|
- **Non-plugin mode**: KB content stored in `.claude/skills/<kb-name>/`
|
|
@@ -11,24 +11,15 @@ module Aircana
|
|
|
11
11
|
module CLI
|
|
12
12
|
module KB # rubocop:disable Metrics/ModuleLength
|
|
13
13
|
class << self # rubocop:disable Metrics/ClassLength
|
|
14
|
-
# rubocop:disable Metrics/MethodLength
|
|
15
14
|
def refresh(kb_name)
|
|
16
15
|
normalized_kb_name = normalize_string(kb_name)
|
|
17
16
|
|
|
18
|
-
# Check if this is a local knowledge base
|
|
19
|
-
kb_type = Aircana::Contexts::Manifest.kb_type_from_manifest(normalized_kb_name)
|
|
20
|
-
if kb_type == "local"
|
|
21
|
-
Aircana.human_logger.info "⊘ Skipping #{normalized_kb_name} (local knowledge base - no refresh needed)"
|
|
22
|
-
return
|
|
23
|
-
end
|
|
24
|
-
|
|
25
17
|
perform_manifest_aware_refresh(normalized_kb_name)
|
|
26
18
|
regenerate_skill_md(normalized_kb_name)
|
|
27
19
|
regenerate_agent_md(normalized_kb_name)
|
|
28
20
|
rescue Aircana::Error => e
|
|
29
21
|
handle_refresh_error(normalized_kb_name, e)
|
|
30
22
|
end
|
|
31
|
-
# rubocop:enable Metrics/MethodLength
|
|
32
23
|
|
|
33
24
|
def create # rubocop:disable Metrics/MethodLength
|
|
34
25
|
prompt = TTY::Prompt.new
|
|
@@ -145,22 +136,11 @@ module Aircana
|
|
|
145
136
|
total: kb_names.size,
|
|
146
137
|
successful: 0,
|
|
147
138
|
failed: 0,
|
|
148
|
-
skipped: 0,
|
|
149
139
|
total_pages: 0,
|
|
150
|
-
failed_kbs: []
|
|
151
|
-
skipped_kbs: []
|
|
140
|
+
failed_kbs: []
|
|
152
141
|
}
|
|
153
142
|
|
|
154
143
|
kb_names.each do |kb_name|
|
|
155
|
-
# Check if this is a local knowledge base
|
|
156
|
-
kb_type = Aircana::Contexts::Manifest.kb_type_from_manifest(kb_name)
|
|
157
|
-
if kb_type == "local"
|
|
158
|
-
Aircana.human_logger.info "⊘ Skipping #{kb_name} (local knowledge base)"
|
|
159
|
-
results[:skipped] += 1
|
|
160
|
-
results[:skipped_kbs] << kb_name
|
|
161
|
-
next
|
|
162
|
-
end
|
|
163
|
-
|
|
164
144
|
result = refresh_single_kb(kb_name)
|
|
165
145
|
if result[:success]
|
|
166
146
|
results[:successful] += 1
|
|
@@ -536,10 +516,6 @@ module Aircana
|
|
|
536
516
|
Aircana.human_logger.success "✓ Successful: #{results[:successful]}/#{results[:total]} KBs"
|
|
537
517
|
Aircana.human_logger.success "✓ Total pages refreshed: #{results[:total_pages]}"
|
|
538
518
|
|
|
539
|
-
if results[:skipped].positive?
|
|
540
|
-
Aircana.human_logger.info "⊘ Skipped: #{results[:skipped]} KB(s) (local knowledge base)"
|
|
541
|
-
end
|
|
542
|
-
|
|
543
519
|
if results[:failed].positive?
|
|
544
520
|
Aircana.human_logger.error "✗ Failed: #{results[:failed]} KBs"
|
|
545
521
|
Aircana.human_logger.info ""
|
|
@@ -32,7 +32,7 @@ module Aircana
|
|
|
32
32
|
pages = search_and_log_pages(label_to_search)
|
|
33
33
|
return { pages_count: 0, sources: [] } if pages.empty?
|
|
34
34
|
|
|
35
|
-
sources = process_pages_with_manifest(pages, kb_name, kb_type)
|
|
35
|
+
sources = process_pages_with_manifest(pages, kb_name, kb_type, label_to_search)
|
|
36
36
|
create_or_update_manifest(kb_name, sources, kb_type)
|
|
37
37
|
|
|
38
38
|
{ pages_count: pages.size, sources: sources }
|
|
@@ -50,14 +50,20 @@ module Aircana
|
|
|
50
50
|
return { pages_count: 0, sources: [] } if confluence_sources.empty?
|
|
51
51
|
|
|
52
52
|
all_pages = []
|
|
53
|
+
labels_used = []
|
|
54
|
+
|
|
53
55
|
confluence_sources.each do |source|
|
|
54
|
-
|
|
56
|
+
# Use label from manifest if available, otherwise fall back to kb_name
|
|
57
|
+
label = source["label"] || kb_name
|
|
58
|
+
labels_used << label
|
|
59
|
+
pages = fetch_pages_by_label(label)
|
|
55
60
|
all_pages.concat(pages)
|
|
56
61
|
end
|
|
57
62
|
|
|
58
63
|
return { pages_count: 0, sources: [] } if all_pages.empty?
|
|
59
64
|
|
|
60
|
-
|
|
65
|
+
# Use the first label for metadata (typically there's only one Confluence source per KB)
|
|
66
|
+
updated_sources = process_pages_with_manifest(all_pages, kb_name, kb_type, labels_used.first)
|
|
61
67
|
|
|
62
68
|
{ pages_count: all_pages.size, sources: updated_sources }
|
|
63
69
|
end
|
|
@@ -76,7 +82,7 @@ module Aircana
|
|
|
76
82
|
end
|
|
77
83
|
end
|
|
78
84
|
|
|
79
|
-
def process_pages_with_manifest(pages, kb_name, kb_type = "local")
|
|
85
|
+
def process_pages_with_manifest(pages, kb_name, kb_type = "local", label = nil)
|
|
80
86
|
page_metadata = []
|
|
81
87
|
|
|
82
88
|
ProgressTracker.with_batch_progress(pages, "Processing pages") do |page, _index|
|
|
@@ -84,20 +90,11 @@ module Aircana
|
|
|
84
90
|
page_metadata << extract_page_metadata(page)
|
|
85
91
|
end
|
|
86
92
|
|
|
87
|
-
build_source_metadata(kb_name, page_metadata)
|
|
93
|
+
build_source_metadata(kb_name, page_metadata, label)
|
|
88
94
|
end
|
|
89
95
|
|
|
90
96
|
private
|
|
91
97
|
|
|
92
|
-
def fetch_pages_from_source(source)
|
|
93
|
-
case source["type"]
|
|
94
|
-
when "confluence"
|
|
95
|
-
fetch_pages_by_label(source["label"])
|
|
96
|
-
else
|
|
97
|
-
[]
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
|
|
101
98
|
def extract_page_metadata(page)
|
|
102
99
|
content = page&.dig("body", "storage", "value") || ""
|
|
103
100
|
markdown_content = convert_to_markdown(content)
|
|
@@ -137,13 +134,15 @@ module Aircana
|
|
|
137
134
|
PROMPT
|
|
138
135
|
end
|
|
139
136
|
|
|
140
|
-
def build_source_metadata(_kb_name, page_metadata)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
]
|
|
137
|
+
def build_source_metadata(_kb_name, page_metadata, label = nil)
|
|
138
|
+
source = {
|
|
139
|
+
"type" => "confluence",
|
|
140
|
+
"pages" => page_metadata
|
|
141
|
+
}
|
|
142
|
+
# Add label if provided so refresh can use it to discover new pages
|
|
143
|
+
source["label"] = label if label
|
|
144
|
+
|
|
145
|
+
[source]
|
|
147
146
|
end
|
|
148
147
|
|
|
149
148
|
def create_or_update_manifest(kb_name, sources, kb_type = "local")
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
<% question_prompt = $ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: "What is your question?" and wait for their response before proceeding.' : "Question to analyze: \"#{$ARGUMENTS}\"" %>
|
|
1
2
|
<%= helpers.model_instructions(
|
|
2
3
|
"You are coordinating expert consultation to answer a question by leveraging specialized knowledge bases through Skills. Follow this precise workflow:
|
|
3
4
|
|
|
4
5
|
STEP 1: QUESTION VALIDATION
|
|
5
|
-
|
|
6
|
+
" + question_prompt + "
|
|
7
|
+
|
|
6
8
|
|
|
7
9
|
STEP 2: IDENTIFY RELEVANT SkillS
|
|
8
10
|
Analyze the question and identify which available Skills are most relevant:
|
|
@@ -32,5 +34,5 @@ IMPORTANT EXECUTION NOTES:
|
|
|
32
34
|
- Use parallel Skill tool execution when consulting multiple Skills (single message with multiple tool calls)
|
|
33
35
|
- Synthesize knowledge rather than simply concatenating responses
|
|
34
36
|
- Maintain focus on providing actionable, comprehensive answers
|
|
35
|
-
- If no relevant Skills exist, provide a direct answer based on your general knowledge
|
|
37
|
+
- If no relevant Skills exist, provide a direct answer based on your general knowledge"
|
|
36
38
|
) %>
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
<% task_prompt = $ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: "What would you like to plan?" and wait for their response before proceeding.' : "Task to plan: \"#{$ARGUMENTS}\"" %>
|
|
1
2
|
<%= helpers.model_instructions(
|
|
2
3
|
"You are helping the user create a strategic implementation plan by consulting domain experts. Follow this workflow:
|
|
3
4
|
|
|
4
5
|
STEP 1: PLANNING MODE CHECK
|
|
5
6
|
Verify the user is in Claude Code planning mode. If not, tell them:
|
|
6
|
-
|
|
7
|
+
'Please put Claude Code into planning mode first, then describe what you want to plan.'
|
|
7
8
|
|
|
8
9
|
STEP 2: TASK VALIDATION
|
|
9
|
-
|
|
10
|
+
" + task_prompt + "
|
|
11
|
+
|
|
10
12
|
|
|
11
13
|
STEP 3: IDENTIFY RELEVANT EXPERT AGENTS
|
|
12
14
|
Analyze the task and identify which expert agents from the agents/ directory should contribute to this plan:
|
data/lib/aircana/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: aircana
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Weston Dransfield
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-01-16 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: httparty
|