aircana 2.0.0.rc1 → 2.0.0.rc2

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: a9788177d75d4b58131a6c9a42784a3de5bc72d640ac603af0e541e8e7d38acf
4
- data.tar.gz: bcce34699b133ffacfe248fd3eb6b37d3a0f261eb4f39452b535c8907b41b1ac
3
+ metadata.gz: f7dcf887b992fec745661b8a572ed862262484d34da96b76463e01e33be7a219
4
+ data.tar.gz: b7976487a2341c9f57c9d14fb4653aa4b1eedea4948407834e2e288e49809f97
5
5
  SHA512:
6
- metadata.gz: e326b82f64dd2fa758d3937a8bc3c5912c8328a14d4dc633177a9a711f58e5593d0ea99664cfb31f50cccde7c9a0ded14693f3d8661cf30e4b4dcb31d0365540
7
- data.tar.gz: c2f8f03ee444af0e3a6b509d5dfeac076a4b8cfec8b4f30d5982887216da29ea907d37f423d71be9ec03be68471a7e5f485f1d2eaf17e867ed6da49ddce457a3
6
+ metadata.gz: eea7f918a959f3c5e0e85c991d99b1aab5af27d81cee79adf63599dad5286dfc819c3b24fe8a955eca008824edf5232fd2418bdd89d5b146487a28549834c0fa
7
+ data.tar.gz: 6168c0065c8d10e961ea89a1048888b4a106b39a6d184f323d7530fb3e34ed9f9d511e06af1c608473395297ea38f71814c4c0771bd7d9b6cb5b3b20b3a1477a
data/.rspec_status CHANGED
@@ -1,191 +1,191 @@
1
- example_id | status | run_time |
2
- --------------------------------------------------------------------- | ------ | --------------- |
3
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.01055 seconds |
4
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.00194 seconds |
5
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.00157 seconds |
6
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:2:1] | passed | 0.0012 seconds |
7
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:3:1] | passed | 0.00049 seconds |
8
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:3:2] | passed | 0.00032 seconds |
9
- ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:1] | passed | 0.00048 seconds |
10
- ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:2] | passed | 0.0005 seconds |
11
- ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:3:1] | passed | 0.00047 seconds |
12
- ./spec/aircana/cli/commands/agents_spec.rb[1:2:2:1] | passed | 0.00034 seconds |
13
- ./spec/aircana/cli/commands/agents_spec.rb[1:2:3:1] | passed | 0.00036 seconds |
14
- ./spec/aircana/cli/commands/agents_spec.rb[1:2:4:1] | passed | 0.00037 seconds |
15
- ./spec/aircana/cli/commands/agents_spec.rb[1:3:1] | passed | 0.00087 seconds |
16
- ./spec/aircana/cli/commands/agents_spec.rb[1:3:2] | passed | 0.00051 seconds |
17
- ./spec/aircana/cli/commands/agents_spec.rb[1:3:3] | passed | 0.00048 seconds |
18
- ./spec/aircana/cli/commands/agents_spec.rb[1:4:1] | passed | 0.00023 seconds |
19
- ./spec/aircana/cli/commands/agents_spec.rb[1:5:1:1] | passed | 0.00035 seconds |
20
- ./spec/aircana/cli/commands/agents_spec.rb[1:5:2:1] | passed | 0.00034 seconds |
21
- ./spec/aircana/cli/commands/agents_spec.rb[1:5:3:1] | passed | 0.00069 seconds |
22
- ./spec/aircana/cli/commands/agents_spec.rb[1:5:3:2] | passed | 0.00074 seconds |
23
- ./spec/aircana/cli/commands/agents_spec.rb[1:5:3:3] | passed | 0.00075 seconds |
24
- ./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.00101 seconds |
25
- ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.00079 seconds |
26
- ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.00125 seconds |
27
- ./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.0007 seconds |
28
- ./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.00085 seconds |
29
- ./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.00061 seconds |
30
- ./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.00144 seconds |
31
- ./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.00188 seconds |
32
- ./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.00147 seconds |
33
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.00078 seconds |
34
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.00092 seconds |
35
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.00128 seconds |
36
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:4:1] | passed | 0.00095 seconds |
37
- ./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.0007 seconds |
38
- ./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.00252 seconds |
39
- ./spec/aircana/cli/commands/hooks_spec.rb[1:7:1] | passed | 0.00079 seconds |
40
- ./spec/aircana/cli/commands/install_spec.rb[1:1:1] | passed | 0.00456 seconds |
41
- ./spec/aircana/cli/commands/install_spec.rb[1:1:2] | passed | 0.00205 seconds |
42
- ./spec/aircana/cli/commands/install_spec.rb[1:2:1:1] | passed | 0.01019 seconds |
43
- ./spec/aircana/cli/commands/install_spec.rb[1:2:2:1] | passed | 0.00596 seconds |
44
- ./spec/aircana/cli/commands/install_spec.rb[1:2:3:1] | passed | 0.00574 seconds |
45
- ./spec/aircana/cli/commands/install_spec.rb[1:2:4:1] | passed | 0.00515 seconds |
46
- ./spec/aircana/cli/commands/install_spec.rb[1:3:1] | passed | 0.00313 seconds |
47
- ./spec/aircana/cli/commands/install_spec.rb[1:3:2:1] | passed | 0.00271 seconds |
48
- ./spec/aircana/cli/commands/install_spec.rb[1:3:3:1] | passed | 0.00286 seconds |
49
- ./spec/aircana/cli/commands/install_spec.rb[1:3:4:1] | passed | 0.00303 seconds |
50
- ./spec/aircana/cli/commands/install_spec.rb[1:4:1] | passed | 0.00114 seconds |
51
- ./spec/aircana/cli/commands/install_spec.rb[1:4:2] | passed | 0.00106 seconds |
52
- ./spec/aircana/cli/commands/install_spec.rb[1:4:3] | passed | 0.00111 seconds |
53
- ./spec/aircana/cli/commands/install_spec.rb[1:4:4] | passed | 0.00099 seconds |
54
- ./spec/aircana/cli/commands/install_spec.rb[1:4:5] | passed | 0.00089 seconds |
55
- ./spec/aircana/cli/commands/install_spec.rb[1:5:1:1] | passed | 0.00136 seconds |
56
- ./spec/aircana/cli/commands/install_spec.rb[1:5:2:1] | passed | 0.00108 seconds |
57
- ./spec/aircana/cli/commands/install_spec.rb[1:5:3:1] | passed | 0.0012 seconds |
58
- ./spec/aircana/cli/commands/install_spec.rb[1:6:1] | passed | 0.0011 seconds |
59
- ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00016 seconds |
60
- ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00009 seconds |
61
- ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00007 seconds |
62
- ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00007 seconds |
63
- ./spec/aircana/configuration_spec.rb[1:4:2] | passed | 0.00007 seconds |
64
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00209 seconds |
65
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00054 seconds |
66
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00131 seconds |
67
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00019 seconds |
68
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00013 seconds |
69
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00012 seconds |
70
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00041 seconds |
71
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00049 seconds |
72
- ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00166 seconds |
73
- ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.0014 seconds |
74
- ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00148 seconds |
75
- ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00129 seconds |
76
- ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00127 seconds |
77
- ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00164 seconds |
78
- ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00194 seconds |
79
- ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00141 seconds |
80
- ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00126 seconds |
81
- ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00107 seconds |
82
- ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00106 seconds |
83
- ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00098 seconds |
84
- ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00151 seconds |
85
- ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00027 seconds |
86
- ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00096 seconds |
87
- ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00093 seconds |
88
- ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00335 seconds |
89
- ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00026 seconds |
90
- ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00094 seconds |
91
- ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00022 seconds |
92
- ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00024 seconds |
93
- ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00021 seconds |
94
- ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00018 seconds |
95
- ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00019 seconds |
96
- ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00019 seconds |
97
- ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00022 seconds |
98
- ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00021 seconds |
99
- ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00092 seconds |
100
- ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00091 seconds |
101
- ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00107 seconds |
102
- ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.0002 seconds |
103
- ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00017 seconds |
104
- ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00011 seconds |
105
- ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.0001 seconds |
106
- ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.0001 seconds |
107
- ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00027 seconds |
108
- ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00013 seconds |
109
- ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00019 seconds |
110
- ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.0003 seconds |
111
- ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00031 seconds |
112
- ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00037 seconds |
113
- ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.0003 seconds |
114
- ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00014 seconds |
115
- ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00013 seconds |
116
- ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00012 seconds |
117
- ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00094 seconds |
118
- ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00016 seconds |
119
- ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00035 seconds |
120
- ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.0003 seconds |
121
- ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00024 seconds |
122
- ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00023 seconds |
123
- ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00021 seconds |
124
- ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00011 seconds |
125
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00017 seconds |
126
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
127
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00018 seconds |
128
- ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.0002 seconds |
129
- ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00029 seconds |
130
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00011 seconds |
131
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0001 seconds |
132
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.0001 seconds |
133
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0001 seconds |
134
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00007 seconds |
135
- ./spec/aircana/generators/agents_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
136
- ./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.00015 seconds |
137
- ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
138
- ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.00004 seconds |
139
- ./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.00004 seconds |
140
- ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
141
- ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00003 seconds |
142
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00038 seconds |
143
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00031 seconds |
144
- ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00009 seconds |
145
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00009 seconds |
146
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00003 seconds |
147
- ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00046 seconds |
148
- ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00014 seconds |
149
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00034 seconds |
150
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00026 seconds |
151
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00025 seconds |
152
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00015 seconds |
153
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00007 seconds |
154
- ./spec/aircana/generators/write_plan_command_generator_spec.rb[1:1:1] | passed | 0.00021 seconds |
155
- ./spec/aircana/generators/write_plan_command_generator_spec.rb[1:2:1] | passed | 0.00076 seconds |
156
- ./spec/aircana/generators/write_plan_command_generator_spec.rb[1:2:2] | passed | 0.00017 seconds |
157
- ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00007 seconds |
158
- ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00006 seconds |
159
- ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00004 seconds |
160
- ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00004 seconds |
161
- ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00003 seconds |
162
- ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00003 seconds |
163
- ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00003 seconds |
164
- ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00003 seconds |
165
- ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00003 seconds |
166
- ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
167
- ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00003 seconds |
168
- ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00003 seconds |
169
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00044 seconds |
170
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00034 seconds |
171
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00031 seconds |
172
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00032 seconds |
173
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00036 seconds |
174
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00031 seconds |
175
- ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00034 seconds |
176
- ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.0003 seconds |
177
- ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.0003 seconds |
178
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00021 seconds |
179
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.0002 seconds |
180
- ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00032 seconds |
181
- ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00045 seconds |
182
- ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00062 seconds |
183
- ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00021 seconds |
184
- ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.0002 seconds |
185
- ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00019 seconds |
186
- ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00022 seconds |
187
- ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00022 seconds |
188
- ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00027 seconds |
189
- ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00018 seconds |
190
- ./spec/aircana_spec.rb[1:1] | passed | 0.00003 seconds |
191
- ./spec/aircana_spec.rb[1:2] | passed | 0.00088 seconds |
1
+ example_id | status | run_time |
2
+ ----------------------------------------------------------------- | ------ | --------------- |
3
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.02328 seconds |
4
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.00053 seconds |
5
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.00034 seconds |
6
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:2:1] | passed | 0.00129 seconds |
7
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:3:1] | passed | 0.00038 seconds |
8
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:3:2] | passed | 0.00033 seconds |
9
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:1] | passed | 0.00048 seconds |
10
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:2] | passed | 0.00045 seconds |
11
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:3:1] | passed | 0.00049 seconds |
12
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:2:1] | passed | 0.00036 seconds |
13
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:3:1] | passed | 0.00036 seconds |
14
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:4:1] | passed | 0.0004 seconds |
15
+ ./spec/aircana/cli/commands/agents_spec.rb[1:3:1] | passed | 0.00101 seconds |
16
+ ./spec/aircana/cli/commands/agents_spec.rb[1:3:2] | passed | 0.00153 seconds |
17
+ ./spec/aircana/cli/commands/agents_spec.rb[1:3:3] | passed | 0.00093 seconds |
18
+ ./spec/aircana/cli/commands/agents_spec.rb[1:4:1] | passed | 0.00027 seconds |
19
+ ./spec/aircana/cli/commands/agents_spec.rb[1:5:1:1] | passed | 0.00036 seconds |
20
+ ./spec/aircana/cli/commands/agents_spec.rb[1:5:2:1] | passed | 0.00066 seconds |
21
+ ./spec/aircana/cli/commands/agents_spec.rb[1:5:3:1] | passed | 0.00089 seconds |
22
+ ./spec/aircana/cli/commands/agents_spec.rb[1:5:3:2] | passed | 0.00083 seconds |
23
+ ./spec/aircana/cli/commands/agents_spec.rb[1:5:3:3] | passed | 0.00079 seconds |
24
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.00123 seconds |
25
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.00098 seconds |
26
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.00145 seconds |
27
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.00077 seconds |
28
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.00088 seconds |
29
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.00075 seconds |
30
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.00178 seconds |
31
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.00418 seconds |
32
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.0017 seconds |
33
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.00067 seconds |
34
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.00091 seconds |
35
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.00149 seconds |
36
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:4:1] | passed | 0.00108 seconds |
37
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.0007 seconds |
38
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.0024 seconds |
39
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:7:1] | passed | 0.00067 seconds |
40
+ ./spec/aircana/cli/commands/install_spec.rb[1:1:1] | passed | 0.00258 seconds |
41
+ ./spec/aircana/cli/commands/install_spec.rb[1:1:2] | passed | 0.00206 seconds |
42
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:1:1] | passed | 0.01198 seconds |
43
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:2:1] | passed | 0.00669 seconds |
44
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:3:1] | passed | 0.00602 seconds |
45
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:4:1] | passed | 0.01396 seconds |
46
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:1] | passed | 0.0036 seconds |
47
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:2:1] | passed | 0.00293 seconds |
48
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:3:1] | passed | 0.00367 seconds |
49
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:4:1] | passed | 0.0034 seconds |
50
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:1] | passed | 0.00099 seconds |
51
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:2] | passed | 0.00092 seconds |
52
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:3] | passed | 0.00118 seconds |
53
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:4] | passed | 0.00109 seconds |
54
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:5] | passed | 0.00094 seconds |
55
+ ./spec/aircana/cli/commands/install_spec.rb[1:5:1:1] | passed | 0.00115 seconds |
56
+ ./spec/aircana/cli/commands/install_spec.rb[1:5:2:1] | passed | 0.00107 seconds |
57
+ ./spec/aircana/cli/commands/install_spec.rb[1:5:3:1] | passed | 0.00168 seconds |
58
+ ./spec/aircana/cli/commands/install_spec.rb[1:6:1] | passed | 0.00153 seconds |
59
+ ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00022 seconds |
60
+ ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00016 seconds |
61
+ ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00011 seconds |
62
+ ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00011 seconds |
63
+ ./spec/aircana/configuration_spec.rb[1:4:2] | passed | 0.0001 seconds |
64
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00415 seconds |
65
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00058 seconds |
66
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00157 seconds |
67
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00017 seconds |
68
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00013 seconds |
69
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00012 seconds |
70
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00037 seconds |
71
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00057 seconds |
72
+ ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00154 seconds |
73
+ ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00125 seconds |
74
+ ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00122 seconds |
75
+ ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00126 seconds |
76
+ ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00122 seconds |
77
+ ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00144 seconds |
78
+ ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00221 seconds |
79
+ ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00154 seconds |
80
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.0012 seconds |
81
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00125 seconds |
82
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00119 seconds |
83
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00103 seconds |
84
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00101 seconds |
85
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00023 seconds |
86
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00098 seconds |
87
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.0012 seconds |
88
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00106 seconds |
89
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00024 seconds |
90
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00135 seconds |
91
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00023 seconds |
92
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00024 seconds |
93
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00021 seconds |
94
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.0002 seconds |
95
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00039 seconds |
96
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00038 seconds |
97
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00033 seconds |
98
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00028 seconds |
99
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00114 seconds |
100
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00133 seconds |
101
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00123 seconds |
102
+ ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00022 seconds |
103
+ ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00019 seconds |
104
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00012 seconds |
105
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.0001 seconds |
106
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.0001 seconds |
107
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00018 seconds |
108
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00013 seconds |
109
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00018 seconds |
110
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.0004 seconds |
111
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00028 seconds |
112
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00018 seconds |
113
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.00031 seconds |
114
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00013 seconds |
115
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00011 seconds |
116
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00011 seconds |
117
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00072 seconds |
118
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00025 seconds |
119
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00033 seconds |
120
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00026 seconds |
121
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00023 seconds |
122
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00021 seconds |
123
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00011 seconds |
124
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.0001 seconds |
125
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00016 seconds |
126
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
127
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00018 seconds |
128
+ ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.0002 seconds |
129
+ ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00019 seconds |
130
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00011 seconds |
131
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0001 seconds |
132
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.0001 seconds |
133
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0001 seconds |
134
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00008 seconds |
135
+ ./spec/aircana/generators/agents_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
136
+ ./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.00016 seconds |
137
+ ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
138
+ ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.00004 seconds |
139
+ ./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.00004 seconds |
140
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
141
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00002 seconds |
142
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00037 seconds |
143
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00019 seconds |
144
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00009 seconds |
145
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00009 seconds |
146
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00003 seconds |
147
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00048 seconds |
148
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00013 seconds |
149
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00033 seconds |
150
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00028 seconds |
151
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00028 seconds |
152
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00009 seconds |
153
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00007 seconds |
154
+ ./spec/aircana/generators/record_command_generator_spec.rb[1:1:1] | passed | 0.00021 seconds |
155
+ ./spec/aircana/generators/record_command_generator_spec.rb[1:2:1] | passed | 0.00079 seconds |
156
+ ./spec/aircana/generators/record_command_generator_spec.rb[1:2:2] | passed | 0.0001 seconds |
157
+ ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00006 seconds |
158
+ ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00004 seconds |
159
+ ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00004 seconds |
160
+ ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00004 seconds |
161
+ ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00003 seconds |
162
+ ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00003 seconds |
163
+ ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00007 seconds |
164
+ ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00003 seconds |
165
+ ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00003 seconds |
166
+ ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
167
+ ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00003 seconds |
168
+ ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00003 seconds |
169
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00042 seconds |
170
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00032 seconds |
171
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.0003 seconds |
172
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00029 seconds |
173
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00034 seconds |
174
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00028 seconds |
175
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00033 seconds |
176
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.0003 seconds |
177
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00258 seconds |
178
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00022 seconds |
179
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00019 seconds |
180
+ ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00063 seconds |
181
+ ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00039 seconds |
182
+ ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.0007 seconds |
183
+ ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00019 seconds |
184
+ ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00018 seconds |
185
+ ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00023 seconds |
186
+ ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00019 seconds |
187
+ ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00041 seconds |
188
+ ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00035 seconds |
189
+ ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00019 seconds |
190
+ ./spec/aircana_spec.rb[1:1] | passed | 0.00003 seconds |
191
+ ./spec/aircana_spec.rb[1:2] | passed | 0.00091 seconds |
data/README.md CHANGED
@@ -13,7 +13,7 @@ Subagent generation for improved context window management.
13
13
 
14
14
  Agent-accessible knowledge bases sourced from Confluence or public websites, backed by manifest files.
15
15
 
16
- Development workflow with plan, record, and execute phases (record and execute phases are in progress).
16
+ Complete development workflow with five phases: plan, record, execute, review, and apply-feedback.
17
17
 
18
18
  SQS integration for features like Slack notifications and messages.
19
19
 
@@ -62,6 +62,108 @@ To start using your agents with domain-specific knowledge, follow the agent work
62
62
 
63
63
  - Explore other tools by running `aircana --help`
64
64
 
65
+ ## Development Workflow
66
+
67
+ Aircana provides a complete development lifecycle through five integrated slash commands:
68
+
69
+ ```mermaid
70
+ stateDiagram-v2
71
+ [*] --> Plan: /air-plan
72
+ Plan --> Record: /air-record
73
+ Record --> Execute: /air-execute
74
+ Execute --> Review: /air-review
75
+ Review --> ApplyFeedback: /air-apply-feedback
76
+ ApplyFeedback --> Review: More issues found
77
+ ApplyFeedback --> [*]: Satisfied
78
+ ```
79
+
80
+ ### Quick Overview
81
+
82
+ 1. **`/air-plan`** - Create strategic implementation plan
83
+ 2. **`/air-record`** - Save plan to Jira ticket
84
+ 3. **`/air-execute`** - Implement plan and create commit
85
+ 4. **`/air-review`** - Adversarial code review with expert feedback
86
+ 5. **`/air-apply-feedback`** - Apply review changes and amend commit
87
+
88
+ ### Command Details
89
+
90
+ #### 1. `/air-plan` - Strategic Planning
91
+
92
+ Creates a high-level implementation plan by:
93
+ - Asking you to specify relevant files and directories
94
+ - Consulting specialized sub-agents for domain expertise
95
+ - Sharing research context to avoid duplicate work
96
+ - Generating a focused strategic plan (what to do, not how)
97
+ - Creating actionable todo checklist
98
+
99
+ The planner focuses on architecture decisions and approach, avoiding exhaustive code implementations.
100
+
101
+ #### 2. `/air-record` - Save to Jira
102
+
103
+ Records your approved plan to a Jira ticket by:
104
+ - Taking the ticket key/ID as input
105
+ - Delegating to the `jira` sub-agent for MCP operations
106
+ - Storing the plan in the ticket description or comments
107
+
108
+ This creates a traceable link between planning and execution.
109
+
110
+ #### 3. `/air-execute` - Implementation
111
+
112
+ Executes the strategic plan by:
113
+ - Reading the plan from the Jira ticket
114
+ - Creating detailed implementation todo list
115
+ - Presenting plan for your approval
116
+ - Implementing changes sequentially
117
+ - Writing unit tests (delegates to test-writing sub-agent if available)
118
+ - Running tests to verify implementation
119
+ - Creating git commit (delegates to git-ops sub-agent if available)
120
+
121
+ After commit creation, suggests running `/air-review`.
122
+
123
+ #### 4. `/air-review` - Adversarial Review
124
+
125
+ Conducts comprehensive code review of HEAD commit by:
126
+ - Analyzing changed files to identify technical domains
127
+ - Using sub-agent-coordinator to select relevant expert agents
128
+ - Presenting changes to experts in parallel
129
+ - Synthesizing feedback organized by severity (Critical/Important/Suggestions)
130
+ - Storing review output for next step
131
+
132
+ Explicitly states "Reviewing: <commit message>" and ends with "Run /air-apply-feedback".
133
+
134
+ #### 5. `/air-apply-feedback` - Apply Changes
135
+
136
+ Applies code review feedback by:
137
+ - Reading review output from conversation context
138
+ - Creating prioritized change plan (critical issues first)
139
+ - Presenting plan for your approval
140
+ - Applying approved changes
141
+ - Re-running unit tests
142
+ - Fixing any test failures
143
+ - **Amending HEAD commit** with improvements using `git commit --amend --no-edit`
144
+
145
+ This preserves the original commit message while incorporating review improvements in a single commit.
146
+
147
+ ### Usage Example
148
+
149
+ ```bash
150
+ # 1. Start planning
151
+ /air-plan
152
+ > Specify relevant files: src/api/, spec/api/
153
+
154
+ # 2. Save plan to ticket
155
+ /air-record PROJ-123
156
+
157
+ # 3. Execute implementation
158
+ /air-execute PROJ-123
159
+
160
+ # 4. Review the commit
161
+ /air-review
162
+
163
+ # 5. Apply feedback
164
+ /air-apply-feedback
165
+ ```
166
+
65
167
  ## Key Concepts
66
168
 
67
169
  ### Subagents
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../../generators/plan_command_generator"
4
- require_relative "../../generators/write_plan_command_generator"
4
+ require_relative "../../generators/record_command_generator"
5
+ require_relative "../../generators/execute_command_generator"
6
+ require_relative "../../generators/review_command_generator"
7
+ require_relative "../../generators/apply_feedback_command_generator"
5
8
  require_relative "../../generators/ask_expert_command_generator"
6
9
  require_relative "../../generators/agents_generator"
7
10
  require_relative "../../generators/hooks_generator"
@@ -14,7 +17,10 @@ module Aircana
14
17
  def generators
15
18
  @generators ||= [
16
19
  Aircana::Generators::PlanCommandGenerator.new,
17
- Aircana::Generators::WritePlanCommandGenerator.new,
20
+ Aircana::Generators::RecordCommandGenerator.new,
21
+ Aircana::Generators::ExecuteCommandGenerator.new,
22
+ Aircana::Generators::ReviewCommandGenerator.new,
23
+ Aircana::Generators::ApplyFeedbackCommandGenerator.new,
18
24
  Aircana::Generators::AskExpertCommandGenerator.new
19
25
  ]
20
26
  end
@@ -0,0 +1,26 @@
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", "air-apply-feedback.md")
23
+ end
24
+ end
25
+ end
26
+ end
@@ -4,7 +4,7 @@ require_relative "../generators"
4
4
 
5
5
  module Aircana
6
6
  module Generators
7
- class WritePlanCommandGenerator < BaseGenerator
7
+ class ExecuteCommandGenerator < BaseGenerator
8
8
  def initialize(file_in: nil, file_out: nil)
9
9
  super(
10
10
  file_in: file_in || default_template_path,
@@ -15,11 +15,11 @@ module Aircana
15
15
  private
16
16
 
17
17
  def default_template_path
18
- File.join(File.dirname(__FILE__), "..", "templates", "commands", "write_plan.erb")
18
+ File.join(File.dirname(__FILE__), "..", "templates", "commands", "execute.erb")
19
19
  end
20
20
 
21
21
  def default_output_path
22
- File.join(Aircana.configuration.output_dir, "commands", "air-write-plan.md")
22
+ File.join(Aircana.configuration.output_dir, "commands", "air-execute.md")
23
23
  end
24
24
  end
25
25
  end
@@ -0,0 +1,26 @@
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", "air-record.md")
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
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", "air-review.md")
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: apply-feedback
3
+ description: Applies code review feedback by making recommended changes and amending the HEAD commit
4
+ model: inherit
5
+ color: cyan
6
+ ---
7
+
8
+ <%= helpers.model_instructions("You are a Code Review Feedback Application Agent that implements recommended changes from code reviews and amends the HEAD commit.
9
+
10
+ MANDATORY WORKFLOW:
11
+
12
+ STEP 1: CREATE TODO LIST FILE
13
+ First, create a todo list file with the following tasks enumerated in order:
14
+
15
+ 1. Parse review feedback from conversation context
16
+ 2. Create prioritized todo list of changes (critical first, then important, then suggestions)
17
+ 3. Present change plan to user for approval
18
+ 4. Apply approved changes using appropriate tools
19
+ 5. Re-run unit tests to verify changes
20
+ 6. Fix any test failures
21
+ 7. Amend HEAD commit with improvements
22
+ 8. Summarize changes made
23
+
24
+ STEP 2: EXECUTE EACH TASK IN ORDER
25
+ Work through each task in the todo list sequentially:
26
+ - Mark each task as 'in_progress' when you start it
27
+ - Mark each task as 'completed' when finished
28
+ - Continue until all tasks are done
29
+
30
+ TASK DETAILS:
31
+
32
+ 1. PARSE FEEDBACK: Extract review feedback from conversation:
33
+ - Look for review output from previous /air-review command
34
+ - Parse feedback organized by severity (Critical / Important / Suggestions)
35
+ - Extract actionable items with file, line, issue, and recommendation
36
+ - If no review feedback found in context, inform user and exit
37
+
38
+ 2. CHANGE PLANNING: Create prioritized implementation plan:
39
+ - List all critical issues to fix (must be addressed)
40
+ - List all important improvements (should be addressed)
41
+ - List suggestions (optional, ask user if they want these)
42
+ - Organize by file for efficient editing
43
+ - Enter Claude Code planning mode for this step
44
+ - Create clear, actionable todo items
45
+
46
+ 3. USER APPROVAL: Present plan and get confirmation:
47
+ - Show organized list of changes to be made
48
+ - Ask if user wants to include suggestions or just critical/important
49
+ - Explicitly ask for approval before proceeding
50
+ - Wait for user confirmation
51
+
52
+ 4. APPLY CHANGES: Implement approved feedback:
53
+ - Use appropriate tools (Read, Edit, Write, Bash)
54
+ - Work through changes file by file
55
+ - Mark each change as completed after applying
56
+ - Preserve existing code style and patterns
57
+ - Make targeted changes without unnecessary refactoring
58
+
59
+ 5. TEST EXECUTION: Verify changes don't break tests:
60
+ - Run project's test command (e.g., bundle exec rspec, npm test, etc.)
61
+ - Check if all tests pass
62
+ - If tests pass, proceed to commit
63
+
64
+ 6. FIX TEST FAILURES: Address any failing tests:
65
+ - If tests fail, analyze failures
66
+ - Fix implementation issues causing failures
67
+ - Re-run tests until all pass
68
+ - Do not proceed to commit until tests pass
69
+
70
+ 7. AMEND COMMIT: Update HEAD commit with improvements:
71
+ - Run: git add -A to stage all changes
72
+ - Run: git commit --amend --no-edit to amend HEAD commit
73
+ - This preserves original commit message while incorporating improvements
74
+ - Verify commit was successfully amended
75
+
76
+ 8. SUMMARY: Report what was done:
77
+ - List all changes applied by category (critical/important/suggestions)
78
+ - Note any feedback items not addressed and why
79
+ - Confirm HEAD commit was amended with improvements
80
+ - Mention that commit now includes both implementation and review improvements
81
+
82
+ IMPORTANT INSTRUCTIONS:
83
+ - ALWAYS start by creating the todo list file before doing any other work
84
+ - Execute tasks in the exact order specified in the todo list
85
+ - Prioritize critical issues - must be fixed
86
+ - Get user approval before making changes
87
+ - Ensure tests pass before amending commit
88
+ - Use 'git commit --amend --no-edit' to preserve original commit message
89
+ - Focus on implementing review feedback, not redesigning code", important: true) %>
90
+
91
+ Always check your knowledge base first for code improvement and refactoring best practices.
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: executor
3
+ description: Implementation execution agent that reads plans from Jira and executes them with user approval
4
+ model: inherit
5
+ color: green
6
+ ---
7
+
8
+ <%= helpers.model_instructions("You are an Implementation Execution Agent that reads strategic implementation plans from Jira tickets and executes them with user approval.
9
+
10
+ MANDATORY WORKFLOW:
11
+
12
+ STEP 1: CREATE TODO LIST FILE
13
+ First, create a todo list file with the following tasks enumerated in order:
14
+
15
+ 1. Use Task tool with subagent_type 'jira' to read the implementation plan from the specified Jira ticket
16
+ 2. Review and validate plan structure (should contain frontmatter and todo checklist)
17
+ 3. Enter Claude Code planning mode to create detailed execution todo list from strategic plan
18
+ 4. Present execution plan to user for approval
19
+ 5. Execute approved implementation tasks sequentially
20
+ 6. Write unit tests (delegate to test-writing sub-agent if available)
21
+ 7. Run unit tests to verify implementation
22
+ 8. Create git commit (delegate to git-ops sub-agent if available)
23
+
24
+ STEP 2: EXECUTE EACH TASK IN ORDER
25
+ Work through each task in the todo list sequentially:
26
+ - Mark each task as 'in_progress' when you start it
27
+ - Mark each task as 'completed' when finished
28
+ - Continue until all tasks are done
29
+
30
+ TASK DETAILS:
31
+
32
+ 1. JIRA INTEGRATION: Always delegate Jira operations to the 'jira' sub-agent using Task tool with subagent_type 'jira'. Request the full implementation plan content including:
33
+ - Plan frontmatter (consulted sub-agents, relevant files)
34
+ - Strategic implementation steps (todo checklist format)
35
+ - Any architectural decisions or trade-offs documented
36
+
37
+ 2. PLAN VALIDATION: Verify the plan contains:
38
+ - Proper markdown frontmatter with metadata
39
+ - Implementation steps in todo checklist format using `[ ]`
40
+ - Clear actionable items
41
+ - If plan is missing or malformed, inform user and exit
42
+
43
+ 3. EXECUTION PLANNING: Transform strategic plan into detailed execution todos:
44
+ - Break down high-level plan steps into specific implementation tasks
45
+ - Add file paths and line numbers where relevant
46
+ - Include testing and verification steps
47
+ - Sequence tasks logically with dependencies
48
+ - Enter Claude Code planning mode for this step
49
+
50
+ 4. USER APPROVAL: Present the detailed execution plan and explicitly ask for user approval before proceeding. Wait for confirmation.
51
+
52
+ 5. IMPLEMENTATION EXECUTION: Once approved, work through execution todos:
53
+ - Use appropriate tools (Read, Write, Edit, Bash, etc.)
54
+ - Mark each execution task as completed after finishing
55
+ - Create commits at logical checkpoints
56
+ - Focus on implementing the WHAT defined in the strategic plan
57
+
58
+ 6. TEST WRITING: Write unit tests for the implementation:
59
+ - Check if a test-writing sub-agent exists (look for agents with 'test' in name/description)
60
+ - If found, delegate test writing to that sub-agent using Task tool
61
+ - Provide implementation context: files changed, new functionality added, edge cases to cover
62
+ - If no test sub-agent exists, write tests directly following project conventions
63
+
64
+ 7. TEST EXECUTION: Run unit tests to verify implementation:
65
+ - Use project's test command (e.g., bundle exec rspec, npm test, etc.)
66
+ - Fix any failing tests
67
+ - Ensure all tests pass before marking work complete
68
+
69
+ 8. GIT COMMIT: Create a git commit for the implementation:
70
+ - Check if a git-ops sub-agent exists (look for agents with 'git' in name/description)
71
+ - If found, delegate commit creation to that sub-agent using Task tool
72
+ - Provide context: Jira ticket key, summary of changes, files modified
73
+ - If no git-ops agent exists, create commit directly using Bash tool
74
+ - Commit message should reference Jira ticket and describe implementation
75
+ - After successful commit, suggest user runs '/air-review' command to review changes
76
+
77
+ IMPORTANT INSTRUCTIONS:
78
+ - ALWAYS start by creating the todo list file before doing any other work
79
+ - Execute tasks in the exact order specified in the todo list
80
+ - The strategic plan tells you WHAT to do, you determine HOW to do it
81
+ - Focus on implementation, not redesign - follow the plan's architecture decisions
82
+ - Get user approval before executing implementation tasks", important: true) %>
83
+
84
+ Always check your knowledge base first for execution-specific guidance and best practices.
@@ -5,24 +5,20 @@ model: inherit
5
5
  color: blue
6
6
  ---
7
7
 
8
- <%= helpers.model_instructions("You are a Strategic Project Planning Agent that creates comprehensive implementation plans by integrating with Jira tickets and leveraging other specialized sub-agents' knowledge.
8
+ <%= helpers.model_instructions("You are a Strategic Project Planning Agent that creates focused, high-level implementation plans by gathering user input, performing targeted research, and consulting specialized sub-agents.
9
9
 
10
10
  MANDATORY WORKFLOW:
11
11
 
12
12
  STEP 1: CREATE TODO LIST FILE
13
13
  First, create a todo list file with the following tasks enumerated in order:
14
14
 
15
- 1. Use Task tool with subagent_type 'jira' to verify Jira ticket information (or ask user to create/provide ticket)
16
- 2. Gather requirements from ticket or user description
17
- 3. Identify relevant files mentioned by user and read them for context
18
- 4. Identify all available Claude Code sub-agents that can help with planning
19
- 5. Consult each relevant sub-agent for specialized input (run in parallel when possible)
20
- 6. Enter Claude Code planning mode and synthesize all gathered information
21
- 7. Create comprehensive implementation plan
22
- 8. Present plan to user for feedback and iteration
23
- 9. Finalize plan incorporating user feedback and technical considerations
24
- 10. Suggest user runs '/air-write-plan' command to save the plan to Jira ticket
25
- 11. Notify the user planning is complete. Do not begin implementation
15
+ 1. Ask user for relevant files and context
16
+ 2. Use Task tool with subagent_type 'jira' to verify Jira ticket information (or ask user to create/provide ticket)
17
+ 3. Perform targeted initial research on user-specified files
18
+ 4. Consult relevant sub-agents with research context (run in parallel when possible)
19
+ 5. Create high-level strategic implementation plan
20
+ 6. Iterate with user feedback
21
+ 7. Suggest user runs '/air-record' command to save the plan to Jira ticket
26
22
 
27
23
  STEP 2: EXECUTE EACH TASK IN ORDER
28
24
  Work through each task in the todo list sequentially:
@@ -31,15 +27,45 @@ Work through each task in the todo list sequentially:
31
27
  - Continue until all tasks are done
32
28
 
33
29
  TASK DETAILS:
34
- - JIRA INTEGRATION: Always delegate Jira operations to the 'jira' sub-agent using Task tool with subagent_type 'jira'. If user doesn't have jira mcp tool, prompt them to run `aircana doctor`
35
- - SUB-AGENT CONSULTATION: Always ask sub-agents to consult their knowledge bases on the file system for specialized input
36
- - PLANNING MODE: Enter Claude Code planning mode to synthesize information and create the plan
37
- - PLAN OUTPUT: Final plan should be markdown with frontmatter (consulted sub-agents, relevant files) and body with implementation steps as todo list using `[]` format
30
+
31
+ 1. USER INPUT: Ask user to specify relevant files, directories, or areas of codebase to examine. If user already mentioned files, use those. Otherwise ask: \"What files or areas of the codebase should I examine?\"
32
+
33
+ 2. JIRA INTEGRATION: Always delegate Jira operations to the 'jira' sub-agent using Task tool with subagent_type 'jira'. If user doesn't have jira mcp tool, prompt them to run `aircana doctor`
34
+
35
+ 3. TARGETED RESEARCH: Search and read ONLY files user mentioned or closely related patterns. Document everything for sub-agents:
36
+ - File search patterns used
37
+ - Files read (with paths)
38
+ - Key findings from research
39
+ Keep research minimal and targeted
40
+
41
+ 4. SUB-AGENT CONSULTATION: For EACH sub-agent you consult, explicitly provide in your prompt:
42
+ - Files already searched: [list specific patterns like \"**/*auth*.rb\"]
43
+ - Files already read: [list specific paths]
44
+ - Key findings from initial research
45
+ - Specific question or focus area (to avoid duplicating your research)
46
+ - Ask sub-agents to consult their knowledge bases for specialized input
47
+ Run consultations in parallel when possible
48
+
49
+ 5. PLAN CREATION: Enter Claude Code planning mode and create strategic implementation plan:
50
+ - Focus on WHAT needs to be done (high-level strategy)
51
+ - Small code examples OK (5-10 lines max to illustrate concepts)
52
+ - NO large code blocks or complete implementations
53
+ - NO rollout/deployment plans
54
+ - NO time/effort estimates
55
+ - Structure as actionable todo checklist using `[ ]` format
56
+ - Include architectural decisions and trade-offs
57
+ - Plans should guide implementation, not replace it
58
+
59
+ 6. PLAN OUTPUT: Final plan must be markdown with:
60
+ - Frontmatter: consulted sub-agents, relevant files examined
61
+ - Body: Implementation steps as todo checklist
62
+ - Focus on strategy and approach, not exhaustive details
38
63
 
39
64
  IMPORTANT INSTRUCTIONS:
40
65
  - ALWAYS start by creating the todo list file before doing any other work
41
66
  - Execute tasks in the exact order specified in the todo list
42
- - Leverage specialized sub-agent expertise rather than working in isolation
43
- - Focus on creating implementable, step-by-step plans", important: true) %>
67
+ - Share research context with sub-agents to prevent duplicate work
68
+ - Keep plans strategic and high-level - bare minimum for excellent implementation guidance
69
+ - Do NOT create rollout plans, effort estimates, or write implementation code", important: true) %>
44
70
 
45
71
  Always identify available sub-agents and leverage their specialized knowledge to create more comprehensive and accurate plans.
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: reviewer
3
+ description: Adversarial code review agent that coordinates expert agents to review HEAD commit
4
+ model: inherit
5
+ color: yellow
6
+ ---
7
+
8
+ <%= helpers.model_instructions("You are an Adversarial Code Review Agent that coordinates multiple expert agents to provide comprehensive feedback on the HEAD commit.
9
+
10
+ MANDATORY WORKFLOW:
11
+
12
+ STEP 1: CREATE TODO LIST FILE
13
+ First, create a todo list file with the following tasks enumerated in order:
14
+
15
+ 1. Get HEAD commit details and message
16
+ 2. Get commit changes using git show
17
+ 3. Announce review with commit message
18
+ 4. Analyze changed files and identify technical domains
19
+ 5. Use Task tool with subagent_type 'sub-agent-coordinator' to identify relevant expert agents
20
+ 6. Present changes to each expert agent in parallel for review
21
+ 7. Synthesize feedback organized by severity
22
+ 8. Present comprehensive review report
23
+ 9. Suggest running '/air-apply-feedback' command
24
+
25
+ STEP 2: EXECUTE EACH TASK IN ORDER
26
+ Work through each task in the todo list sequentially:
27
+ - Mark each task as 'in_progress' when you start it
28
+ - Mark each task as 'completed' when finished
29
+ - Continue until all tasks are done
30
+
31
+ TASK DETAILS:
32
+
33
+ 1. COMMIT DETAILS: Get HEAD commit information:
34
+ - Run: git log -1 --pretty=format:\"%s\" to get commit message subject
35
+ - Store commit message for reference
36
+
37
+ 2. COMMIT CHANGES: Get the actual changes:
38
+ - Run: git show HEAD to get full diff
39
+ - Parse to identify changed files and specific changes
40
+ - Note additions, deletions, and modifications
41
+
42
+ 3. ANNOUNCEMENT: Clearly state what is being reviewed:
43
+ - Output: \"Reviewing: <first line of commit message>\"
44
+ - This helps user understand what commit is under review
45
+
46
+ 4. DOMAIN ANALYSIS: Analyze the changes to identify technical areas:
47
+ - List all changed files with paths
48
+ - Identify domains: authentication, database, API, frontend, backend, testing, etc.
49
+ - Note complexity and scope of changes
50
+ - Prepare summary for sub-agent-coordinator
51
+
52
+ 5. EXPERT COORDINATION: Delegate to sub-agent-coordinator:
53
+ - Use Task tool with subagent_type 'sub-agent-coordinator'
54
+ - Provide: list of changed files, domains identified, change summary
55
+ - Request: selection of 2-5 most relevant expert agents for review
56
+ - Get back: list of agents with rationale for selection
57
+
58
+ 6. PARALLEL EXPERT REVIEW: Consult each selected expert in parallel:
59
+ - Use Task tool for EACH expert agent identified
60
+ - Provide to each expert:
61
+ * Full git diff output
62
+ * Their specific domain of focus
63
+ * Request feedback on: bugs, security issues, performance, best practices, edge cases
64
+ - Execute all expert consultations in parallel for efficiency
65
+ - Gather all expert responses
66
+
67
+ 7. FEEDBACK SYNTHESIS: Organize all feedback by severity:
68
+ - Critical: Security issues, bugs that could cause failures, data loss risks
69
+ - Important: Performance issues, code quality problems, missing edge cases
70
+ - Suggestions: Style improvements, refactoring opportunities, minor optimizations
71
+ - For each item include: severity, file, line (if applicable), issue, recommendation
72
+ - Remove duplicate feedback from multiple experts
73
+ - Prioritize actionable feedback
74
+
75
+ 8. REVIEW REPORT: Present comprehensive review results:
76
+ - Start with overall assessment (approve with changes / needs revision / critical issues)
77
+ - List feedback organized by severity
78
+ - Provide clear, actionable recommendations
79
+ - Store this output in conversation context for apply-feedback agent
80
+
81
+ 9. NEXT STEPS: End with clear instruction:
82
+ - Output: \"Run /air-apply-feedback to apply recommended changes\"
83
+ - This guides user to next step in workflow
84
+
85
+ IMPORTANT INSTRUCTIONS:
86
+ - ALWAYS start by creating the todo list file before doing any other work
87
+ - Execute tasks in the exact order specified in the todo list
88
+ - Always review HEAD commit (most recent commit)
89
+ - Coordinate with sub-agent-coordinator to get best expert selection
90
+ - Run expert consultations in parallel for speed
91
+ - Focus on adversarial review - find issues, don't just validate
92
+ - Organize feedback clearly for apply-feedback agent to parse", important: true) %>
93
+
94
+ Always check your knowledge base first for code review best practices and guidelines.
@@ -0,0 +1,17 @@
1
+ <%= helpers.model_instructions(
2
+ "Use the Task tool with subagent_type 'apply-feedback' to apply code review feedback from the previous /air-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 /air-review."
17
+ ) %>
@@ -0,0 +1,15 @@
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,20 +1,18 @@
1
1
  <%= helpers.model_instructions(
2
- "Use the Task tool with subagent_type 'planner' to invoke the planner agent with the following explicit 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:
3
5
 
4
6
  STEP 1: CREATE TODO LIST FILE
5
7
  First, create a todo list file with the following tasks enumerated in order:
6
8
 
7
- 1. Use Task tool with subagent_type 'jira' to verify Jira ticket information (or ask user to create/provide ticket)
8
- 2. Gather requirements from ticket or user description
9
- 3. Identify relevant files mentioned by user and read them for context
10
- 4. Identify all available Claude Code sub-agents that can help with planning
11
- 5. Consult each relevant sub-agent for specialized input (run in parallel when possible)
12
- 6. Enter Claude Code planning mode and synthesize all gathered information
13
- 7. Create comprehensive implementation plan
14
- 8. Present plan to user for feedback and iteration
15
- 9. Finalize plan incorporating user feedback and technical considerations
16
- 10. Suggest user runs '/air-write-plan' command to save the plan to Jira ticket
17
- 11. Notify the user planning is complete. Do not begin implementation
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 '/air-record' command to save the plan to Jira ticket
18
16
 
19
17
  STEP 2: EXECUTE EACH TASK IN ORDER
20
18
  Work through each task in the todo list sequentially:
@@ -22,7 +20,16 @@ Work through each task in the todo list sequentially:
22
20
  - Mark each task as 'completed' when finished
23
21
  - Continue until all tasks are done
24
22
 
25
- IMPORTANT: Always delegate Jira operations to the 'jira' sub-agent using Task tool with subagent_type 'jira'.
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]'}
26
33
 
27
- #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user to provide a Jira ticket or create a comprehensive implementation plan.' : "Plan for Jira ticket: $ARGUMENTS"}"
34
+ #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user to provide a Jira ticket or task description.' : "Plan for Jira ticket: $ARGUMENTS"}"
28
35
  ) %>
@@ -0,0 +1,14 @@
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 '/air-apply-feedback' to apply recommended changes
12
+
13
+ IMPORTANT: The review agent will automatically review the HEAD commit. No arguments needed."
14
+ ) %>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Aircana
4
- VERSION = "2.0.0.rc1"
4
+ VERSION = "2.0.0.rc2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aircana
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc1
4
+ version: 2.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Dransfield
@@ -142,13 +142,16 @@ files:
142
142
  - lib/aircana/fzf_helper.rb
143
143
  - lib/aircana/generators.rb
144
144
  - lib/aircana/generators/agents_generator.rb
145
+ - lib/aircana/generators/apply_feedback_command_generator.rb
145
146
  - lib/aircana/generators/ask_expert_command_generator.rb
146
147
  - lib/aircana/generators/base_generator.rb
148
+ - lib/aircana/generators/execute_command_generator.rb
147
149
  - lib/aircana/generators/helpers.rb
148
150
  - lib/aircana/generators/hooks_generator.rb
149
151
  - lib/aircana/generators/plan_command_generator.rb
150
152
  - lib/aircana/generators/project_config_generator.rb
151
- - lib/aircana/generators/write_plan_command_generator.rb
153
+ - lib/aircana/generators/record_command_generator.rb
154
+ - lib/aircana/generators/review_command_generator.rb
152
155
  - lib/aircana/human_logger.rb
153
156
  - lib/aircana/initializers.rb
154
157
  - lib/aircana/llm/claude_client.rb
@@ -156,12 +159,18 @@ files:
156
159
  - lib/aircana/symlink_manager.rb
157
160
  - lib/aircana/system_checker.rb
158
161
  - lib/aircana/templates/agents/base_agent.erb
162
+ - lib/aircana/templates/agents/defaults/apply_feedback.erb
163
+ - lib/aircana/templates/agents/defaults/executor.erb
159
164
  - lib/aircana/templates/agents/defaults/jira.erb
160
165
  - lib/aircana/templates/agents/defaults/planner.erb
166
+ - lib/aircana/templates/agents/defaults/reviewer.erb
161
167
  - lib/aircana/templates/agents/defaults/sub-agent-coordinator.erb
168
+ - lib/aircana/templates/commands/apply_feedback.erb
162
169
  - lib/aircana/templates/commands/ask_expert.erb
170
+ - lib/aircana/templates/commands/execute.erb
163
171
  - lib/aircana/templates/commands/plan.erb
164
- - lib/aircana/templates/commands/write_plan.erb
172
+ - lib/aircana/templates/commands/record.erb
173
+ - lib/aircana/templates/commands/review.erb
165
174
  - lib/aircana/templates/hooks/bundle_install.erb
166
175
  - lib/aircana/templates/hooks/notification_sqs.erb
167
176
  - lib/aircana/templates/hooks/post_tool_use.erb