aircana 4.0.0.rc7 → 4.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 489eb3cac6e8dd65e76c68face964aa5df829fb40fddcc39e9dcdb94ab586d6e
4
- data.tar.gz: 0bfcbd248a5dddb988145bcd0e5936829e6ccd4ead1e86649aa2d84aab8d5262
3
+ metadata.gz: 88a6c73e9f844f63006c9dceb81c13966e44439daebe95d8b80dc43a0ff989fb
4
+ data.tar.gz: 84025bb240a2dd785b0bb656cdf3687f701b08344484a3267570158fc5914e6e
5
5
  SHA512:
6
- metadata.gz: 7c68ab337911f7b6758985c102de295569fa272d1145845e25b18febab8e8d8717378555ced3055981a156f501de2cd079afd8b64321156ef609cfa8f2a30365
7
- data.tar.gz: 0b8d1b2850dd4ca250993180e74591880e5ff58fcc9db712fc0df3ef8b9a2053cac89ebc0f9d4f5ed2829bb397bdc61fb41498a37e5379118bd8d676e2b430cc
6
+ metadata.gz: a23dfe484aab695cab0cd7056cad1e50a1726b2e1253aadf86037d3657f26809e747b4787cc8c2c750bcb6073cf594e4c8b76040a02f3264ab20e5c43c1c245b
7
+ data.tar.gz: ff518237a2fcb050342a4e73527f40bf7fc44235789f47155b3fd3b3de7c90deb67bca548dfc70a427c524bf1d2a97fe018cfe66f3c559d75d415eb041e98ddf
data/.rspec_status CHANGED
@@ -1,192 +1,189 @@
1
- example_id | status | run_time |
2
- ----------------------------------------------------------------- | ------ | --------------- |
3
- ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.00919 seconds |
4
- ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00264 seconds |
5
- ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.01276 seconds |
6
- ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00426 seconds |
7
- ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.003 seconds |
8
- ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00353 seconds |
9
- ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00366 seconds |
10
- ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00151 seconds |
11
- ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00178 seconds |
12
- ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00157 seconds |
13
- ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00139 seconds |
14
- ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00135 seconds |
15
- ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00332 seconds |
16
- ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00424 seconds |
17
- ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00556 seconds |
18
- ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.004 seconds |
19
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00039 seconds |
20
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00206 seconds |
21
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.00124 seconds |
22
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.00225 seconds |
23
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.00206 seconds |
24
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00171 seconds |
25
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00046 seconds |
26
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00226 seconds |
27
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00124 seconds |
28
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.00034 seconds |
29
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00025 seconds |
30
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00218 seconds |
31
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00113 seconds |
32
- ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00018 seconds |
33
- ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00011 seconds |
34
- ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00007 seconds |
35
- ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00007 seconds |
36
- ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00007 seconds |
37
- ./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00007 seconds |
38
- ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00007 seconds |
39
- ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00242 seconds |
40
- ./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.00021 seconds |
41
- ./spec/aircana/configuration_spec.rb[1:7:3:1] | passed | 0.0002 seconds |
42
- ./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.00009 seconds |
43
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.0025 seconds |
44
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00062 seconds |
45
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00108 seconds |
46
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00033 seconds |
47
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.0002 seconds |
48
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00018 seconds |
49
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00034 seconds |
50
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.0004 seconds |
51
- ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.0005 seconds |
52
- ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00036 seconds |
53
- ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00041 seconds |
54
- ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00053 seconds |
55
- ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00059 seconds |
56
- ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00046 seconds |
57
- ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00088 seconds |
58
- ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00054 seconds |
59
- ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00107 seconds |
60
- ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00112 seconds |
61
- ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00118 seconds |
62
- ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.001 seconds |
63
- ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00095 seconds |
64
- ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00093 seconds |
65
- ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00022 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.00092 seconds |
68
- ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.0009 seconds |
69
- ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.0002 seconds |
70
- ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00084 seconds |
71
- ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00028 seconds |
72
- ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00025 seconds |
73
- ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00021 seconds |
74
- ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00022 seconds |
75
- ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00022 seconds |
76
- ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.0002 seconds |
77
- ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.0002 seconds |
78
- ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00019 seconds |
79
- ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00019 seconds |
80
- ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00019 seconds |
81
- ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.0002 seconds |
82
- ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00112 seconds |
83
- ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.00108 seconds |
84
- ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00021 seconds |
85
- ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00028 seconds |
86
- ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00012 seconds |
87
- ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00011 seconds |
88
- ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00011 seconds |
89
- ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00015 seconds |
90
- ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00011 seconds |
91
- ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00017 seconds |
92
- ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00026 seconds |
93
- ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00042 seconds |
94
- ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00016 seconds |
95
- ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.0002 seconds |
96
- ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00012 seconds |
97
- ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00011 seconds |
98
- ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00011 seconds |
99
- ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.0012 seconds |
100
- ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00013 seconds |
101
- ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00031 seconds |
102
- ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00024 seconds |
103
- ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00023 seconds |
104
- ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00022 seconds |
105
- ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00022 seconds |
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.00017 seconds |
108
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
109
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00018 seconds |
110
- ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.0002 seconds |
111
- ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.0002 seconds |
112
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.0001 seconds |
113
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0001 seconds |
114
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.0001 seconds |
115
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0001 seconds |
116
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00007 seconds |
117
- ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00004 seconds |
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.00035 seconds |
120
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00018 seconds |
121
- ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00009 seconds |
122
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00008 seconds |
123
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00003 seconds |
124
- ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00044 seconds |
125
- ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.0003 seconds |
126
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00034 seconds |
127
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00024 seconds |
128
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00024 seconds |
129
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00008 seconds |
130
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00007 seconds |
131
- ./spec/aircana/generators/record_command_generator_spec.rb[1:1:1] | passed | 0.00019 seconds |
132
- ./spec/aircana/generators/record_command_generator_spec.rb[1:2:1] | passed | 0.00069 seconds |
133
- ./spec/aircana/generators/record_command_generator_spec.rb[1:2:2] | passed | 0.00017 seconds |
134
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00037 seconds |
135
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00021 seconds |
136
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.0002 seconds |
137
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.00038 seconds |
138
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00033 seconds |
139
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00028 seconds |
140
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.00019 seconds |
141
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.0002 seconds |
142
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00023 seconds |
143
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.00018 seconds |
144
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00019 seconds |
145
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.0002 seconds |
146
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.0002 seconds |
147
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.00022 seconds |
148
- ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.00019 seconds |
149
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.00019 seconds |
150
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00019 seconds |
151
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.0002 seconds |
152
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.00019 seconds |
153
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.00022 seconds |
154
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00023 seconds |
155
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.00037 seconds |
156
- ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00132 seconds |
157
- ./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00116 seconds |
158
- ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00006 seconds |
159
- ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00004 seconds |
160
- ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00004 seconds |
161
- ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00004 seconds |
162
- ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00003 seconds |
163
- ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00004 seconds |
164
- ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00003 seconds |
165
- ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00003 seconds |
166
- ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00003 seconds |
167
- ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
168
- ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00003 seconds |
169
- ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00003 seconds |
170
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00049 seconds |
171
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00033 seconds |
172
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00029 seconds |
173
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00029 seconds |
174
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00274 seconds |
175
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.0003 seconds |
176
- ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00067 seconds |
177
- ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00028 seconds |
178
- ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00046 seconds |
179
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00019 seconds |
180
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00018 seconds |
181
- ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00026 seconds |
182
- ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00048 seconds |
183
- ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00052 seconds |
184
- ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00026 seconds |
185
- ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00019 seconds |
186
- ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00017 seconds |
187
- ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00018 seconds |
188
- ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.0002 seconds |
189
- ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00024 seconds |
190
- ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00021 seconds |
191
- ./spec/aircana_spec.rb[1:1] | passed | 0.00003 seconds |
192
- ./spec/aircana_spec.rb[1:2] | passed | 0.00088 seconds |
1
+ example_id | status | run_time |
2
+ --------------------------------------------------------------- | ------ | --------------- |
3
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.00981 seconds |
4
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00396 seconds |
5
+ ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.01071 seconds |
6
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00333 seconds |
7
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.00279 seconds |
8
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00298 seconds |
9
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00325 seconds |
10
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00152 seconds |
11
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.0014 seconds |
12
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00141 seconds |
13
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00139 seconds |
14
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00138 seconds |
15
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.0028 seconds |
16
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00405 seconds |
17
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00467 seconds |
18
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00396 seconds |
19
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00039 seconds |
20
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00152 seconds |
21
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.0011 seconds |
22
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.00176 seconds |
23
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.0018 seconds |
24
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00174 seconds |
25
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00028 seconds |
26
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00167 seconds |
27
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00071 seconds |
28
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.0002 seconds |
29
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00023 seconds |
30
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00198 seconds |
31
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00114 seconds |
32
+ ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00016 seconds |
33
+ ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00015 seconds |
34
+ ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00011 seconds |
35
+ ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00008 seconds |
36
+ ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00009 seconds |
37
+ ./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00008 seconds |
38
+ ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00008 seconds |
39
+ ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00023 seconds |
40
+ ./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.0024 seconds |
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.0001 seconds |
43
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00309 seconds |
44
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00084 seconds |
45
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00145 seconds |
46
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00026 seconds |
47
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00019 seconds |
48
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00018 seconds |
49
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00056 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.00054 seconds |
52
+ ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00051 seconds |
53
+ ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00041 seconds |
54
+ ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00033 seconds |
55
+ ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00038 seconds |
56
+ ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00039 seconds |
57
+ ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00063 seconds |
58
+ ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00041 seconds |
59
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00109 seconds |
60
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00089 seconds |
61
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00103 seconds |
62
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00118 seconds |
63
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00106 seconds |
64
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00135 seconds |
65
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.0003 seconds |
66
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.0011 seconds |
67
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00101 seconds |
68
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00102 seconds |
69
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.0004 seconds |
70
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00098 seconds |
71
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00023 seconds |
72
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00024 seconds |
73
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00036 seconds |
74
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00021 seconds |
75
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00024 seconds |
76
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00024 seconds |
77
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.0002 seconds |
78
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00139 seconds |
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.00035 seconds |
81
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00572 seconds |
82
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00113 seconds |
83
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.0009 seconds |
84
+ ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00023 seconds |
85
+ ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00021 seconds |
86
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00015 seconds |
87
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00012 seconds |
88
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00011 seconds |
89
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00028 seconds |
90
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.0002 seconds |
91
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00025 seconds |
92
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00028 seconds |
93
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00025 seconds |
94
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00016 seconds |
95
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.0002 seconds |
96
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00012 seconds |
97
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.0002 seconds |
98
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00012 seconds |
99
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00037 seconds |
100
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.0001 seconds |
101
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00028 seconds |
102
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00023 seconds |
103
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00026 seconds |
104
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00021 seconds |
105
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.0001 seconds |
106
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.0001 seconds |
107
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00015 seconds |
108
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
109
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00017 seconds |
110
+ ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00018 seconds |
111
+ ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00019 seconds |
112
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.0001 seconds |
113
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0001 seconds |
114
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.0001 seconds |
115
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.00009 seconds |
116
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00007 seconds |
117
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
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.00033 seconds |
120
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00018 seconds |
121
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00008 seconds |
122
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00009 seconds |
123
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00003 seconds |
124
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00047 seconds |
125
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00012 seconds |
126
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00034 seconds |
127
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00028 seconds |
128
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00027 seconds |
129
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00008 seconds |
130
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00006 seconds |
131
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00032 seconds |
132
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00021 seconds |
133
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.00032 seconds |
134
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.00046 seconds |
135
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00033 seconds |
136
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00029 seconds |
137
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.0002 seconds |
138
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.00022 seconds |
139
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00019 seconds |
140
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.00017 seconds |
141
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00019 seconds |
142
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.00018 seconds |
143
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.00017 seconds |
144
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.00022 seconds |
145
+ ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.0002 seconds |
146
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.0002 seconds |
147
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00018 seconds |
148
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.00018 seconds |
149
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.0002 seconds |
150
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.0002 seconds |
151
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00019 seconds |
152
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.00018 seconds |
153
+ ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00113 seconds |
154
+ ./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00095 seconds |
155
+ ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00007 seconds |
156
+ ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00004 seconds |
157
+ ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00007 seconds |
158
+ ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00004 seconds |
159
+ ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00003 seconds |
160
+ ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00003 seconds |
161
+ ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00003 seconds |
162
+ ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00003 seconds |
163
+ ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00003 seconds |
164
+ ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
165
+ ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00003 seconds |
166
+ ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00003 seconds |
167
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00046 seconds |
168
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00033 seconds |
169
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.0003 seconds |
170
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00268 seconds |
171
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.0004 seconds |
172
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00029 seconds |
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.0003 seconds |
175
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00029 seconds |
176
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.0002 seconds |
177
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00041 seconds |
178
+ ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.0003 seconds |
179
+ ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.0004 seconds |
180
+ ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.0007 seconds |
181
+ ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.0002 seconds |
182
+ ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.0002 seconds |
183
+ ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00027 seconds |
184
+ ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00019 seconds |
185
+ ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.0002 seconds |
186
+ ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00025 seconds |
187
+ ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00016 seconds |
188
+ ./spec/aircana_spec.rb[1:1] | passed | 0.00003 seconds |
189
+ ./spec/aircana_spec.rb[1:2] | passed | 0.00087 seconds |
data/CHANGELOG.md CHANGED
@@ -7,6 +7,69 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [4.2.0] - 2025-10-31
11
+
12
+ ### Changed
13
+ - **BREAKING**: `/ask-expert` command now uses Skills instead of agents
14
+ - Uses Skill tool for faster knowledge access with shared context
15
+ - Skills are named like "Learn Backend API", "Learn Database Design"
16
+ - Better for quick Q&A scenarios
17
+ - `/plan` command continues using agents with Task tool
18
+ - Maintains separate contexts per agent for better planning isolation
19
+ - Uses Task tool with subagent_type parameter
20
+
21
+ ## [4.1.0] - 2025-10-31
22
+
23
+ ### Removed
24
+ - **BREAKING**: Removed obsolete slash commands: `/execute`, `/record`, `/review`, `/apply-feedback`
25
+ - Only `/plan` and `/ask-expert` commands remain
26
+ - `/plan` command simplified to focus on strategic planning with expert consultation
27
+ - Workflow commands removed as they were incompatible with new subagent → skill architecture
28
+ - Removed Jira MCP tool integration from `doctor` command
29
+ - Jira integration only used by removed workflow commands
30
+ - Simplified doctor health checks
31
+
32
+ ### Changed
33
+ - Updated `doctor` command terminology from "agents" to "knowledge bases" (KBs)
34
+ - Updated command generators to only include `plan` and `ask-expert`
35
+ - `/plan` command now requires user to be in Claude Code planning mode
36
+ - `/plan` command uses coordinator pattern to identify and consult relevant expert agents
37
+
38
+ ### Documentation
39
+ - Updated README.md to remove obsolete workflow documentation
40
+ - Updated CLAUDE.md with current command generator list
41
+ - Added new "Slash Commands" section documenting `/ask-expert` and `/plan`
42
+
43
+ ## [4.0.0] - 2025-10-31
44
+
45
+ ### Changed
46
+ - **BREAKING**: Renamed "agents" to "knowledge bases" (KBs) throughout the system
47
+ - Command renamed: `aircana agents` → `aircana kb`
48
+ - Terminology updated to reflect purpose: curated domain knowledge for Claude Code
49
+ - All commands now use KB terminology: `create`, `refresh`, `list`, `add-url`, `refresh-all`
50
+
51
+ ### Added
52
+ - Comprehensive Confluence macro preprocessing for better content extraction
53
+ - Converts panel macros to blockquotes
54
+ - Converts info/note/warning macros to formatted blockquotes with emoji indicators
55
+ - Strips Confluence-specific XML tags while preserving content
56
+ - Fixes missing code examples from knowledge bases
57
+
58
+ ### Fixed
59
+ - Knowledge base creation UX improvements
60
+ - Better prompts that guide users naturally toward topic naming
61
+ - Prevents duplicate "Learn" prefix in generated skill names
62
+ - SKILL.md generation now happens after content is fetched
63
+ - Empty knowledge base warnings added
64
+ - Proper file references in SKILL.md
65
+ - Filename strategy improvements
66
+ - Matches disk files to manifest summaries
67
+ - Correct file references in generated skills
68
+
69
+ ### Removed
70
+ - Agent-specific terminology and templates
71
+ - Unused agent management commands and hooks
72
+
10
73
  ## [4.0.0.rc2] - 2025-10-17
11
74
 
12
75
  ### Fixed
data/CLAUDE.md CHANGED
@@ -97,7 +97,7 @@ Aircana is a Ruby gem that creates and manages Claude Code plugins with knowledg
97
97
  - **Generators** (`lib/aircana/generators/`): ERB-based template generation
98
98
  - `base_generator.rb`: Base class with ERB rendering and file writing
99
99
  - `skills_generator.rb`: Knowledge base file generation (Markdown format)
100
- - Command generators: plan, execute, record, review, apply_feedback, ask_expert
100
+ - Command generators: plan, ask_expert
101
101
  - `hooks_generator.rb`: Hook script generation
102
102
  - Templates location: `lib/aircana/templates/`
103
103
 
data/README.md CHANGED
@@ -91,7 +91,7 @@ aircana plugin validate
91
91
 
92
92
  - Use the `/ask-expert` command to consult multiple specialized experts
93
93
 
94
- - Set up the development workflow with plan, execute, review, and apply-feedback commands
94
+ - Use the `/plan` command to create strategic implementation plans with expert consultation
95
95
 
96
96
  - Explore other tools by running `aircana --help`
97
97
 
@@ -391,108 +391,48 @@ At Instructure this means you can easily configure Claude Code to send you slack
391
391
  - Knowledge bases should contain 5-20 highly relevant documents, not 100+ loosely related ones
392
392
  - Use descriptions to clearly define boundaries and expertise areas
393
393
 
394
- ## Development Workflow
394
+ ## Slash Commands
395
395
 
396
- Aircana provides a complete development lifecycle through five integrated slash commands:
396
+ Aircana provides two powerful slash commands that leverage your expert knowledge bases:
397
397
 
398
- ```mermaid
399
- stateDiagram-v2
400
- [*] --> Plan: /plan
401
- Plan --> Record: /record
402
- Record --> Execute: /execute
403
- Execute --> Review: /review
404
- Review --> ApplyFeedback: /apply-feedback
405
- ApplyFeedback --> Review: More issues found
406
- ApplyFeedback --> [*]: Satisfied
407
- ```
408
-
409
- ### Quick Overview
410
-
411
- 1. **`/plan`** - Create strategic implementation plan
412
- 2. **`/record`** - Save plan to Jira ticket
413
- 3. **`/execute`** - Implement plan and create commit
414
- 4. **`/review`** - Adversarial code review with expert feedback
415
- 5. **`/apply-feedback`** - Apply review changes and amend commit
416
-
417
- ### Command Details
418
-
419
- #### 1. `/plan` - Strategic Planning
420
-
421
- Creates a high-level implementation plan by:
422
- - Asking you to specify relevant files and directories
423
- - Consulting specialized sub-agents for domain expertise
424
- - Sharing research context to avoid duplicate work
425
- - Generating a focused strategic plan (what to do, not how)
426
- - Creating actionable todo checklist
427
-
428
- The planner focuses on architecture decisions and approach, avoiding exhaustive code implementations.
429
-
430
- #### 2. `/record` - Save to Jira
431
-
432
- Records your approved plan to a Jira ticket by:
433
- - Taking the ticket key/ID as input
434
- - Delegating to the `jira` sub-agent for MCP operations
435
- - Storing the plan in the ticket description or comments
436
-
437
- This creates a traceable link between planning and execution.
438
-
439
- #### 3. `/execute` - Implementation
440
-
441
- Executes the strategic plan by:
442
- - Reading the plan from the Jira ticket
443
- - Creating detailed implementation todo list
444
- - Presenting plan for your approval
445
- - Implementing changes sequentially
446
- - Writing unit tests (delegates to test-writing sub-agent if available)
447
- - Running tests to verify implementation
448
- - Creating git commit (delegates to git-ops sub-agent if available)
398
+ ### `/ask-expert` - Expert Consultation
449
399
 
450
- After commit creation, suggests running `/review`.
400
+ Consults multiple specialized knowledge bases to answer questions by:
401
+ - Using a coordinator to identify relevant expert agents
402
+ - Running expert consultations in parallel for efficiency
403
+ - Synthesizing responses into a comprehensive answer
404
+ - Citing which experts contributed specific insights
405
+ - Providing follow-up guidance when needed
451
406
 
452
- #### 4. `/review` - Adversarial Review
453
-
454
- Conducts comprehensive code review of HEAD commit by:
455
- - Analyzing changed files to identify technical domains
456
- - Using sub-agent-coordinator to select relevant expert agents
457
- - Presenting changes to experts in parallel
458
- - Synthesizing feedback organized by severity (Critical/Important/Suggestions)
459
- - Storing review output for next step
460
-
461
- Explicitly states "Reviewing: <commit message>" and ends with "Run /apply-feedback".
462
-
463
- #### 5. `/apply-feedback` - Apply Changes
464
-
465
- Applies code review feedback by:
466
- - Reading review output from conversation context
467
- - Creating prioritized change plan (critical issues first)
468
- - Presenting plan for your approval
469
- - Applying approved changes
470
- - Re-running unit tests
471
- - Fixing any test failures
472
- - **Amending HEAD commit** with improvements using `git commit --amend --no-edit`
473
-
474
- This preserves the original commit message while incorporating review improvements in a single commit.
475
-
476
- ### Usage Example
407
+ **Example usage:**
408
+ ```
409
+ /ask-expert How should I implement caching for our API?
410
+ /ask-expert What are the best practices for database migrations?
411
+ ```
477
412
 
478
- ```bash
479
- # 1. Start planning
480
- /plan
481
- > Specify relevant files: src/api/, spec/api/
413
+ The command automatically selects the most relevant experts based on your question and the knowledge bases available in your plugin.
482
414
 
483
- # 2. Save plan to ticket
484
- /record PROJ-123
415
+ ### `/plan` - Strategic Planning
485
416
 
486
- # 3. Execute implementation
487
- /execute PROJ-123
417
+ Creates strategic implementation plans by consulting domain experts. This command:
418
+ - Verifies you're in Claude Code planning mode
419
+ - Uses a coordinator to identify relevant expert agents
420
+ - Consults experts in parallel for their domain-specific insights
421
+ - Synthesizes expert input into a unified strategic plan
422
+ - Presents the plan as numbered implementation steps
423
+ - Focuses on high-level guidance (not exhaustive code implementations)
488
424
 
489
- # 4. Review the commit
490
- /review
425
+ **Example usage:**
426
+ ```
427
+ # First, put Claude Code into planning mode, then:
428
+ /plan Add authentication to the user API
491
429
 
492
- # 5. Apply feedback
493
- /apply-feedback
430
+ # Or provide task as argument:
431
+ /plan "Refactor the database layer for better performance"
494
432
  ```
495
433
 
434
+ The plan focuses on strategic decisions, architecture considerations, and approach—leveraging the collective expertise of your knowledge bases to create well-informed implementation guidance.
435
+
496
436
  ## Configuration (Optional)
497
437
 
498
438
  ### Confluence Setup (Optional)
@@ -11,7 +11,6 @@ module Aircana
11
11
 
12
12
  if claude_available?
13
13
  log_success("claude", "Claude Code installed")
14
- check_mcp_tools
15
14
  else
16
15
  log_failure("claude", "Claude Code not installed")
17
16
  log_remedy("Install Claude Code from: https://claude.ai/download")
@@ -21,26 +20,6 @@ module Aircana
21
20
  check_claude_directories
22
21
  end
23
22
 
24
- def check_mcp_tools
25
- claude_path = find_claude_path
26
- return unless claude_path
27
-
28
- check_jira_mcp_tool(claude_path)
29
- rescue StandardError => e
30
- log_warning("MCP Jira", "Could not check MCP tool: #{e.message}")
31
- end
32
-
33
- def check_jira_mcp_tool(claude_path)
34
- result = `#{claude_path} mcp get jira 2>&1`
35
- if mcp_tool_installed?(result)
36
- log_success("MCP Jira", "Atlassian/Jira MCP tool installed")
37
- else
38
- log_failure("MCP Jira", "Atlassian/Jira MCP tool not found")
39
- log_remedy("Install with: claude mcp add --transport sse atlassian https://mcp.atlassian.com/v1/sse")
40
- @issues_found = true
41
- end
42
- end
43
-
44
23
  def check_claude_directories
45
24
  project_claude = File.join(Dir.pwd, ".claude")
46
25
  if Dir.exist?(project_claude)
@@ -63,13 +42,13 @@ module Aircana
63
42
  def check_agents_status
64
43
  agents_dir = File.join(Dir.pwd, ".claude", "agents")
65
44
  if Dir.exist?(agents_dir) && !Dir.empty?(agents_dir)
66
- agent_count = Dir.glob(File.join(agents_dir, "*.md")).size
67
- log_success("agents", "#{agent_count} agent(s) configured")
45
+ kb_count = Dir.glob(File.join(agents_dir, "*.md")).size
46
+ log_success("KBs", "#{kb_count} knowledge base(s) configured")
68
47
  elsif Dir.exist?(agents_dir)
69
- log_info("agents", "Agents directory exists but is empty")
48
+ log_info("KBs", "Knowledge bases directory exists but is empty")
70
49
  else
71
- log_info("agents", "No agents configured yet")
72
- log_remedy("Create agents with: aircana agents create")
50
+ log_info("KBs", "No knowledge bases configured yet")
51
+ log_remedy("Create knowledge bases with: aircana kb create")
73
52
  end
74
53
  end
75
54
  end
@@ -90,7 +69,7 @@ module Aircana
90
69
  else
91
70
  log_info("Confluence", "Not configured")
92
71
  log_remedy("Set CONFLUENCE_BASE_URL, CONFLUENCE_USERNAME, " \
93
- "and CONFLUENCE_API_TOKEN for agent knowledge refresh")
72
+ "and CONFLUENCE_API_TOKEN for knowledge base refresh")
94
73
  end
95
74
  end
96
75
 
@@ -51,10 +51,6 @@ module Aircana
51
51
  nil
52
52
  end
53
53
 
54
- def mcp_tool_installed?(result)
55
- $CHILD_STATUS.success? && !result.include?("not found") && !result.include?("error")
56
- end
57
-
58
54
  def detect_os
59
55
  return "macOS" if RUBY_PLATFORM.match?(/darwin/)
60
56
  return "Ubuntu/Debian" if File.exist?("/etc/debian_version")
@@ -1,12 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Commands that reference old agent system - commented out for now
4
- # require_relative "../../generators/plan_command_generator"
5
- # require_relative "../../generators/record_command_generator"
6
- # require_relative "../../generators/execute_command_generator"
7
- # require_relative "../../generators/review_command_generator"
8
- # require_relative "../../generators/apply_feedback_command_generator"
9
- # require_relative "../../generators/ask_expert_command_generator"
3
+ require_relative "../../generators/plan_command_generator"
4
+ require_relative "../../generators/ask_expert_command_generator"
10
5
  require_relative "../../generators/hooks_generator"
11
6
 
12
7
  module Aircana
@@ -14,18 +9,10 @@ module Aircana
14
9
  module Generate
15
10
  class << self
16
11
  def generators
17
- # No default commands for now - they referenced the old agent system
18
- @generators ||= []
19
-
20
- # TODO: Re-enable these when we have a new command system
21
- # @generators ||= [
22
- # Aircana::Generators::PlanCommandGenerator.new,
23
- # Aircana::Generators::RecordCommandGenerator.new,
24
- # Aircana::Generators::ExecuteCommandGenerator.new,
25
- # Aircana::Generators::ReviewCommandGenerator.new,
26
- # Aircana::Generators::ApplyFeedbackCommandGenerator.new,
27
- # Aircana::Generators::AskExpertCommandGenerator.new
28
- # ]
12
+ @generators ||= [
13
+ Aircana::Generators::PlanCommandGenerator.new,
14
+ Aircana::Generators::AskExpertCommandGenerator.new
15
+ ]
29
16
  end
30
17
 
31
18
  def run
@@ -1,44 +1,36 @@
1
1
  <%= helpers.model_instructions(
2
- "You are coordinating expert consultation to answer a question by leveraging multiple specialized sub-agents. Follow this precise workflow:
2
+ "You are coordinating expert consultation to answer a question by leveraging specialized knowledge bases through Skills. Follow this precise workflow:
3
3
 
4
4
  STEP 1: QUESTION VALIDATION
5
5
  #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: \"What is your question?\" and wait for their response before proceeding.' : "Question to analyze: \"#{$ARGUMENTS}\""}
6
6
 
7
- STEP 2: COORDINATION PHASE
8
- Use the Task tool with subagent_type 'sub-agent-coordinator' to analyze the question and identify relevant sub-agents. Provide the coordinator with the complete question context.
7
+ STEP 2: IDENTIFY RELEVANT SkillS
8
+ Analyze the question and identify which available Skills are most relevant:
9
+ - Select 1-3 Skills whose expertise best matches the question
10
+ - Consider Skills whose knowledge domains complement each other
11
+ - If no Skills are clearly relevant, explain this to the user
9
12
 
10
- STEP 3: PARALLEL EXPERT CONSULTATION
11
- Based on the coordinator's recommendations, use the Task tool to consult each identified relevant sub-agent in parallel. For each agent:
12
- - Use the appropriate subagent_type for each recommended agent
13
- - Provide the original question plus any agent-specific context the coordinator suggested
14
- - Execute multiple Task tool calls in a single message for parallel processing
13
+ STEP 3: PARALLEL Skill CONSULTATION
14
+ For each Skill in parallel:
15
+ - Ask the skill to answer their question using their specialized knowledge
15
16
 
16
17
  STEP 4: SYNTHESIS AND RESPONSE
17
- After receiving responses from all consulted agents:
18
- - Analyze and synthesize the expert feedback
18
+ After receiving responses from all consulted Skills:
19
+ - Analyze and synthesize the knowledge retrieved
19
20
  - Identify common themes, conflicting viewpoints, and complementary insights
20
- - Provide a comprehensive answer that leverages the collective expertise
21
- - Cite which agents contributed specific insights where relevant
22
- - Note any areas where experts disagreed and provide your assessment
21
+ - Provide a comprehensive answer that leverages the collective knowledge
22
+ - Cite which Skills contributed specific insights where relevant
23
+ - Note any areas where information conflicted and provide your assessment
23
24
 
24
25
  STEP 5: FOLLOW-UP GUIDANCE
25
- If the question requires further clarification or the expert responses suggest additional considerations:
26
+ If the question requires further clarification or the knowledge suggests additional considerations:
26
27
  - Suggest specific follow-up questions
27
- - Recommend additional agents to consult if needed
28
- - Provide guidance on next steps based on the expert consensus
28
+ - Recommend additional Skills to consult if needed
29
+ - Provide guidance on next steps based on the knowledge retrieved
29
30
 
30
31
  IMPORTANT EXECUTION NOTES:
31
- - Always start with the sub-agent-coordinator for proper agent selection
32
- - Use parallel Task tool execution when consulting multiple agents (single message with multiple tool calls)
33
- - Ensure each agent receives context appropriate to their expertise domain
34
- - Synthesize responses rather than simply concatenating them
32
+ - Use parallel Skill tool execution when consulting multiple Skills (single message with multiple tool calls)
33
+ - Synthesize knowledge rather than simply concatenating responses
35
34
  - Maintain focus on providing actionable, comprehensive answers
36
-
37
- EXAMPLE PARALLEL EXECUTION:
38
- If coordinator recommends agents A, B, and C, send one message with three Task tool calls:
39
- 1. Task(subagent_type='agent-A', prompt='[question + A-specific context]')
40
- 2. Task(subagent_type='agent-B', prompt='[question + B-specific context]')
41
- 3. Task(subagent_type='agent-C', prompt='[question + C-specific context]')
42
-
43
- This approach ensures you leverage the full expertise available while maintaining efficient coordination."
44
- ) %>
35
+ - If no relevant Skills exist, provide a direct answer based on your general knowledge
36
+ ) %>
@@ -1,35 +1,58 @@
1
1
  <%= helpers.model_instructions(
2
- "First, ask the user to specify relevant files, directories, or areas of the codebase to examine for this planning task.
3
-
4
- Then use the Task tool with subagent_type 'planner' to invoke the planner agent with the following explicit instructions:
5
-
6
- STEP 1: CREATE TODO LIST FILE
7
- First, create a todo list file with the following tasks enumerated in order:
8
-
9
- 1. Ask user for relevant files and context (if not already provided)
10
- 2. Use Task tool with subagent_type 'jira' to verify Jira ticket information (or ask user to create/provide ticket)
11
- 3. Perform targeted initial research on user-specified files
12
- 4. Consult relevant sub-agents with research context (run in parallel when possible)
13
- 5. Create high-level strategic implementation plan
14
- 6. Iterate with user feedback
15
- 7. Suggest user runs '/record' command to save the plan to Jira ticket
16
-
17
- STEP 2: EXECUTE EACH TASK IN ORDER
18
- Work through each task in the todo list sequentially:
19
- - Mark each task as 'in_progress' when you start it
20
- - Mark each task as 'completed' when finished
21
- - Continue until all tasks are done
22
-
23
- IMPORTANT CONTEXT-SHARING PROTOCOL:
24
- - When consulting sub-agents, explicitly provide: files already searched, files already read, key findings, and specific focus area
25
- - This prevents sub-agents from duplicating research work
26
-
27
- IMPORTANT PLAN CONSTRAINTS:
28
- - Focus on strategic, high-level implementation guidance
29
- - NO rollout plans, effort estimates, or exhaustive code implementations
30
- - Small code examples (5-10 lines) are OK to illustrate concepts
31
-
32
- User specified relevant files/areas: #{$USER_FILES || '[User will specify]'}
33
-
34
- #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user to provide a Jira ticket or task description.' : "Plan for Jira ticket: $ARGUMENTS"}"
35
- ) %>
2
+ "You are helping the user create a strategic implementation plan by consulting domain experts. Follow this workflow:
3
+
4
+ STEP 1: PLANNING MODE CHECK
5
+ Verify the user is in Claude Code planning mode. If not, tell them:
6
+ \"Please put Claude Code into planning mode first, then describe what you want to plan.\"
7
+
8
+ STEP 2: TASK VALIDATION
9
+ #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: \"What would you like to plan?\" and wait for their response before proceeding.' : "Task to plan: \"#{$ARGUMENTS}\""}
10
+
11
+ STEP 3: IDENTIFY RELEVANT EXPERT AGENTS
12
+ Analyze the task and identify which expert agents from the agents/ directory should contribute to this plan:
13
+ - Review available agent descriptions to understand each agent's domain expertise
14
+ - Select 1-3 agents whose expertise is most relevant to the planning task
15
+ - Consider agents whose knowledge domains complement each other for comprehensive planning
16
+ - If no agents are clearly relevant, create the plan using your general knowledge
17
+
18
+ STEP 4: PARALLEL EXPERT CONSULTATION
19
+ Use the Task tool to consult each identified relevant agent in parallel. For each agent:
20
+ - Use the agent's name as the subagent_type parameter
21
+ - Provide the task description plus any agent-specific context
22
+ - Execute multiple Task tool calls in a single message for parallel processing
23
+ - Example: If agents 'backend-api' and 'database-design' are relevant:
24
+ - Task(subagent_type='backend-api', prompt='[task + API planning context]')
25
+ - Task(subagent_type='database-design', prompt='[task + database planning context]')
26
+
27
+ STEP 5: SYNTHESIZE STRATEGIC PLAN
28
+ After receiving input from all expert agents (or using general knowledge if no agents exist):
29
+ - Integrate expert insights into a unified, coherent plan
30
+ - Organize the plan as a numbered list of implementation steps/tasks
31
+ - Include specific guidance from experts where relevant (cite which agent provided which insight)
32
+ - Address any conflicting recommendations and provide your assessment
33
+ - Focus on strategic, high-level guidance (no exhaustive code implementations)
34
+ - Small code examples (5-10 lines) are OK to illustrate key concepts
35
+
36
+ STEP 6: PRESENT PLAN
37
+ Present the synthesized plan to the user with:
38
+ - Clear implementation steps numbered in logical order
39
+ - Expert contributions attributed appropriately (if agents were consulted)
40
+ - Any important considerations or trade-offs identified
41
+ - Suggested next steps for beginning implementation
42
+
43
+ IMPORTANT EXECUTION NOTES:
44
+ - Identify relevant agents based on their descriptions and the task domain
45
+ - Use parallel Task tool execution when consulting multiple agents (single message with multiple tool calls)
46
+ - Ensure each agent receives context appropriate to their expertise domain
47
+ - Synthesize insights rather than simply concatenating agent responses
48
+ - Keep the plan strategic and actionable
49
+ - If no relevant agents exist, provide a solid plan based on your general knowledge and best practices
50
+
51
+ EXAMPLE PARALLEL EXECUTION:
52
+ If 'backend-api', 'frontend-design', and 'testing' agents are relevant, send one message with three Task tool calls:
53
+ 1. Task(subagent_type='backend-api', prompt='[task + backend planning context]')
54
+ 2. Task(subagent_type='frontend-design', prompt='[task + frontend planning context]')
55
+ 3. Task(subagent_type='testing', prompt='[task + testing strategy context]')
56
+
57
+ This approach ensures you leverage available expert knowledge while remaining functional for planning even without specialized agents."
58
+ ) %>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Aircana
4
- VERSION = "4.0.0.rc7"
4
+ VERSION = "4.2.0"
5
5
  end
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.0.0.rc7
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Dransfield
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-10-24 00:00:00.000000000 Z
10
+ date: 2025-10-31 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: httparty
@@ -143,15 +143,11 @@ files:
143
143
  - lib/aircana/fzf_helper.rb
144
144
  - lib/aircana/generators.rb
145
145
  - lib/aircana/generators/agents_generator.rb
146
- - lib/aircana/generators/apply_feedback_command_generator.rb
147
146
  - lib/aircana/generators/ask_expert_command_generator.rb
148
147
  - lib/aircana/generators/base_generator.rb
149
- - lib/aircana/generators/execute_command_generator.rb
150
148
  - lib/aircana/generators/helpers.rb
151
149
  - lib/aircana/generators/hooks_generator.rb
152
150
  - lib/aircana/generators/plan_command_generator.rb
153
- - lib/aircana/generators/record_command_generator.rb
154
- - lib/aircana/generators/review_command_generator.rb
155
151
  - lib/aircana/generators/skills_generator.rb
156
152
  - lib/aircana/hooks_manifest.rb
157
153
  - lib/aircana/human_logger.rb
@@ -161,12 +157,8 @@ files:
161
157
  - lib/aircana/progress_tracker.rb
162
158
  - lib/aircana/system_checker.rb
163
159
  - lib/aircana/templates/agents/base_agent.erb
164
- - lib/aircana/templates/commands/apply_feedback.erb
165
160
  - lib/aircana/templates/commands/ask_expert.erb
166
- - lib/aircana/templates/commands/execute.erb
167
161
  - lib/aircana/templates/commands/plan.erb
168
- - lib/aircana/templates/commands/record.erb
169
- - lib/aircana/templates/commands/review.erb
170
162
  - lib/aircana/templates/hooks/bundle_install.erb
171
163
  - lib/aircana/templates/hooks/notification_sqs.erb
172
164
  - lib/aircana/templates/hooks/post_tool_use.erb
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../generators"
4
-
5
- module Aircana
6
- module Generators
7
- class ApplyFeedbackCommandGenerator < BaseGenerator
8
- def initialize(file_in: nil, file_out: nil)
9
- super(
10
- file_in: file_in || default_template_path,
11
- file_out: file_out || default_output_path
12
- )
13
- end
14
-
15
- private
16
-
17
- def default_template_path
18
- File.join(File.dirname(__FILE__), "..", "templates", "commands", "apply_feedback.erb")
19
- end
20
-
21
- def default_output_path
22
- File.join(Aircana.configuration.output_dir, "commands", "apply-feedback.md")
23
- end
24
- end
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../generators"
4
-
5
- module Aircana
6
- module Generators
7
- class ExecuteCommandGenerator < BaseGenerator
8
- def initialize(file_in: nil, file_out: nil)
9
- super(
10
- file_in: file_in || default_template_path,
11
- file_out: file_out || default_output_path
12
- )
13
- end
14
-
15
- private
16
-
17
- def default_template_path
18
- File.join(File.dirname(__FILE__), "..", "templates", "commands", "execute.erb")
19
- end
20
-
21
- def default_output_path
22
- File.join(Aircana.configuration.output_dir, "commands", "execute.md")
23
- end
24
- end
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../generators"
4
-
5
- module Aircana
6
- module Generators
7
- class RecordCommandGenerator < BaseGenerator
8
- def initialize(file_in: nil, file_out: nil)
9
- super(
10
- file_in: file_in || default_template_path,
11
- file_out: file_out || default_output_path
12
- )
13
- end
14
-
15
- private
16
-
17
- def default_template_path
18
- File.join(File.dirname(__FILE__), "..", "templates", "commands", "record.erb")
19
- end
20
-
21
- def default_output_path
22
- File.join(Aircana.configuration.output_dir, "commands", "record.md")
23
- end
24
- end
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../generators"
4
-
5
- module Aircana
6
- module Generators
7
- class ReviewCommandGenerator < BaseGenerator
8
- def initialize(file_in: nil, file_out: nil)
9
- super(
10
- file_in: file_in || default_template_path,
11
- file_out: file_out || default_output_path
12
- )
13
- end
14
-
15
- private
16
-
17
- def default_template_path
18
- File.join(File.dirname(__FILE__), "..", "templates", "commands", "review.erb")
19
- end
20
-
21
- def default_output_path
22
- File.join(Aircana.configuration.output_dir, "commands", "review.md")
23
- end
24
- end
25
- end
26
- end
@@ -1,17 +0,0 @@
1
- <%= helpers.model_instructions(
2
- "Use the Task tool with subagent_type 'apply-feedback' to apply code review feedback from the previous /review command.
3
-
4
- Pass the review feedback from the conversation context to the apply-feedback agent.
5
-
6
- The apply-feedback agent will:
7
- 1. Parse review feedback from the previous review
8
- 2. Create todo list of changes prioritized by severity
9
- 3. Present plan to user for approval
10
- 4. Apply approved changes
11
- 5. Re-run unit tests to verify changes
12
- 6. Fix any test failures
13
- 7. Amend the HEAD commit with improvements using 'git commit --amend --no-edit'
14
- 8. Summarize changes made
15
-
16
- IMPORTANT: This command reads the review output from the conversation context, so it must be run in the same conversation as /review."
17
- ) %>
@@ -1,15 +0,0 @@
1
- <%= helpers.model_instructions(
2
- "Use the Task tool with subagent_type 'executor' to execute the implementation plan from a Jira ticket.
3
-
4
- INSTRUCTIONS FOR EXECUTOR AGENT:
5
- #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user to provide a Jira ticket key/ID to execute.' : "Execute implementation plan from Jira ticket: $ARGUMENTS"}
6
-
7
- The executor agent will:
8
- 1. Read the plan from the Jira ticket via the 'jira' sub-agent
9
- 2. Review and validate the plan structure
10
- 3. Create a detailed execution todo list in Claude Code planning mode
11
- 4. Present the plan for your approval
12
- 5. Execute the approved implementation tasks
13
-
14
- IMPORTANT: All Jira operations are delegated to the 'jira' sub-agent using Task tool with subagent_type 'jira'."
15
- ) %>
@@ -1,19 +0,0 @@
1
- <%= helpers.model_instructions(
2
- "Use the Task tool with subagent_type 'jira' to append the implementation plan to the Jira ticket description using Jira MCP tools.
3
-
4
- INSTRUCTIONS FOR JIRA AGENT:
5
- 1. Read the implementation plan from the current context (look for recent planning output)
6
- 2. Get the current ticket description using mcp__jira__getJiraIssue with fields=[\"description\"]
7
- 3. Append the plan to the existing description under a new \"## Implementation Plan\" heading
8
- 4. Update the ticket using mcp__jira__editJiraIssue with the combined description
9
- 5. Format the appended plan section with:
10
- - Consulted sub-agents
11
- - Relevant files analyzed
12
- - Planning timestamp
13
- - Implementation steps as todo list using `[ ]` format
14
- 6. Provide the ticket URL for easy access
15
-
16
- CRITICAL: The jira sub-agent must append to the ticket description using mcp__jira__editJiraIssue (NOT create files or comments).
17
-
18
- IMPORTANT: Delegate all Jira operations to the 'jira' sub-agent using Task tool with subagent_type 'jira'. The Jira ticket key/ID is already in context."
19
- ) %>
@@ -1,14 +0,0 @@
1
- <%= helpers.model_instructions(
2
- "Use the Task tool with subagent_type 'reviewer' to conduct an adversarial code review of the HEAD commit.
3
-
4
- The reviewer agent will:
5
- 1. Get HEAD commit details and changes
6
- 2. Analyze changed files to identify technical domains
7
- 3. Use the sub-agent-coordinator to select relevant expert agents
8
- 4. Present changes to experts in parallel for review
9
- 5. Synthesize feedback organized by severity
10
- 6. Store review output for the apply-feedback command
11
- 7. Suggest running '/apply-feedback' to apply recommended changes
12
-
13
- IMPORTANT: The review agent will automatically review the HEAD commit. No arguments needed."
14
- ) %>