ace-review 0.49.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.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/nav/protocols/guide-sources/ace-review.yml +10 -0
  3. data/.ace-defaults/nav/protocols/prompt-sources/ace-review.yml +36 -0
  4. data/.ace-defaults/nav/protocols/tmpl-sources/ace-review.yml +10 -0
  5. data/.ace-defaults/nav/protocols/wfi-sources/ace-review.yml +19 -0
  6. data/.ace-defaults/review/config.yml +79 -0
  7. data/.ace-defaults/review/presets/code-fit.yml +64 -0
  8. data/.ace-defaults/review/presets/code-shine.yml +44 -0
  9. data/.ace-defaults/review/presets/code-valid.yml +39 -0
  10. data/.ace-defaults/review/presets/docs.yml +42 -0
  11. data/.ace-defaults/review/presets/spec.yml +37 -0
  12. data/CHANGELOG.md +1780 -0
  13. data/LICENSE +21 -0
  14. data/README.md +42 -0
  15. data/Rakefile +14 -0
  16. data/exe/ace-review +27 -0
  17. data/exe/ace-review-feedback +17 -0
  18. data/handbook/guides/code-review-process.g.md +234 -0
  19. data/handbook/prompts/base/sections.md +23 -0
  20. data/handbook/prompts/base/system.md +60 -0
  21. data/handbook/prompts/focus/architecture/atom.md +30 -0
  22. data/handbook/prompts/focus/architecture/reflection.md +60 -0
  23. data/handbook/prompts/focus/frameworks/rails.md +40 -0
  24. data/handbook/prompts/focus/frameworks/vue-firebase.md +45 -0
  25. data/handbook/prompts/focus/languages/ruby.md +50 -0
  26. data/handbook/prompts/focus/phase/correctness.md +51 -0
  27. data/handbook/prompts/focus/phase/polish.md +43 -0
  28. data/handbook/prompts/focus/phase/quality.md +42 -0
  29. data/handbook/prompts/focus/quality/performance.md +48 -0
  30. data/handbook/prompts/focus/quality/security.md +47 -0
  31. data/handbook/prompts/focus/scope/docs.md +38 -0
  32. data/handbook/prompts/focus/scope/spec.md +58 -0
  33. data/handbook/prompts/focus/scope/tests.md +36 -0
  34. data/handbook/prompts/format/compact.md +12 -0
  35. data/handbook/prompts/format/detailed.md +39 -0
  36. data/handbook/prompts/format/standard.md +16 -0
  37. data/handbook/prompts/guidelines/icons.md +19 -0
  38. data/handbook/prompts/guidelines/tone.md +21 -0
  39. data/handbook/prompts/synthesis-review-reports.system.md +318 -0
  40. data/handbook/prompts/synthesize-feedback.system.md +147 -0
  41. data/handbook/skills/as-review-apply-feedback/SKILL.md +39 -0
  42. data/handbook/skills/as-review-package/SKILL.md +36 -0
  43. data/handbook/skills/as-review-pr/SKILL.md +38 -0
  44. data/handbook/skills/as-review-run/SKILL.md +30 -0
  45. data/handbook/skills/as-review-verify-feedback/SKILL.md +31 -0
  46. data/handbook/templates/review-tasks/task-review-summary.template.md +148 -0
  47. data/handbook/workflow-instructions/review/apply-feedback.wf.md +212 -0
  48. data/handbook/workflow-instructions/review/package.wf.md +16 -0
  49. data/handbook/workflow-instructions/review/pr.wf.md +284 -0
  50. data/handbook/workflow-instructions/review/run.wf.md +262 -0
  51. data/handbook/workflow-instructions/review/verify-feedback.wf.md +286 -0
  52. data/lib/ace/review/atoms/context_limit_resolver.rb +162 -0
  53. data/lib/ace/review/atoms/diff_boundary_finder.rb +133 -0
  54. data/lib/ace/review/atoms/feedback_id_generator.rb +66 -0
  55. data/lib/ace/review/atoms/feedback_slug_generator.rb +61 -0
  56. data/lib/ace/review/atoms/feedback_state_validator.rb +98 -0
  57. data/lib/ace/review/atoms/pr_comment_formatter.rb +325 -0
  58. data/lib/ace/review/atoms/preset_validator.rb +103 -0
  59. data/lib/ace/review/atoms/priority_filter.rb +115 -0
  60. data/lib/ace/review/atoms/retry_with_backoff.rb +75 -0
  61. data/lib/ace/review/atoms/slug_generator.rb +50 -0
  62. data/lib/ace/review/atoms/token_estimator.rb +86 -0
  63. data/lib/ace/review/cli/commands/feedback/create.rb +173 -0
  64. data/lib/ace/review/cli/commands/feedback/list.rb +280 -0
  65. data/lib/ace/review/cli/commands/feedback/resolve.rb +109 -0
  66. data/lib/ace/review/cli/commands/feedback/session_discovery.rb +70 -0
  67. data/lib/ace/review/cli/commands/feedback/show.rb +177 -0
  68. data/lib/ace/review/cli/commands/feedback/skip.rb +125 -0
  69. data/lib/ace/review/cli/commands/feedback/verify.rb +149 -0
  70. data/lib/ace/review/cli/commands/feedback.rb +79 -0
  71. data/lib/ace/review/cli/commands/review.rb +378 -0
  72. data/lib/ace/review/cli/feedback_cli.rb +71 -0
  73. data/lib/ace/review/cli.rb +103 -0
  74. data/lib/ace/review/errors.rb +146 -0
  75. data/lib/ace/review/models/feedback_item.rb +216 -0
  76. data/lib/ace/review/models/review_options.rb +208 -0
  77. data/lib/ace/review/models/reviewer.rb +181 -0
  78. data/lib/ace/review/molecules/context_composer.rb +123 -0
  79. data/lib/ace/review/molecules/context_extractor.rb +159 -0
  80. data/lib/ace/review/molecules/feedback_directory_manager.rb +183 -0
  81. data/lib/ace/review/molecules/feedback_file_reader.rb +178 -0
  82. data/lib/ace/review/molecules/feedback_file_writer.rb +210 -0
  83. data/lib/ace/review/molecules/feedback_synthesizer.rb +588 -0
  84. data/lib/ace/review/molecules/gh_cli_executor.rb +124 -0
  85. data/lib/ace/review/molecules/gh_comment_poster.rb +205 -0
  86. data/lib/ace/review/molecules/gh_comment_resolver.rb +199 -0
  87. data/lib/ace/review/molecules/gh_pr_comment_fetcher.rb +408 -0
  88. data/lib/ace/review/molecules/gh_pr_fetcher.rb +240 -0
  89. data/lib/ace/review/molecules/llm_executor.rb +142 -0
  90. data/lib/ace/review/molecules/multi_model_executor.rb +278 -0
  91. data/lib/ace/review/molecules/nav_prompt_resolver.rb +145 -0
  92. data/lib/ace/review/molecules/pr_task_spec_resolver.rb +58 -0
  93. data/lib/ace/review/molecules/preset_manager.rb +494 -0
  94. data/lib/ace/review/molecules/prompt_composer.rb +76 -0
  95. data/lib/ace/review/molecules/prompt_resolver.rb +168 -0
  96. data/lib/ace/review/molecules/strategies/adaptive_strategy.rb +193 -0
  97. data/lib/ace/review/molecules/strategies/chunked_strategy.rb +459 -0
  98. data/lib/ace/review/molecules/strategies/full_strategy.rb +114 -0
  99. data/lib/ace/review/molecules/subject_extractor.rb +315 -0
  100. data/lib/ace/review/molecules/subject_filter.rb +199 -0
  101. data/lib/ace/review/molecules/subject_strategy.rb +96 -0
  102. data/lib/ace/review/molecules/task_report_saver.rb +161 -0
  103. data/lib/ace/review/molecules/task_resolver.rb +48 -0
  104. data/lib/ace/review/organisms/feedback_manager.rb +386 -0
  105. data/lib/ace/review/organisms/review_manager.rb +1059 -0
  106. data/lib/ace/review/version.rb +7 -0
  107. data/lib/ace/review.rb +135 -0
  108. metadata +351 -0
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Ace
4
+ module Review
5
+ VERSION = "0.49.0"
6
+ end
7
+ end
data/lib/ace/review.rb ADDED
@@ -0,0 +1,135 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Load ace-config for configuration cascade management
4
+ require "ace/support/config"
5
+
6
+ # Try to load ace-bundle if available (required for full functionality)
7
+ begin
8
+ require "ace/bundle"
9
+ rescue LoadError
10
+ # ace-bundle is required for context processing
11
+ # Will raise MissingDependencyError when needed
12
+ end
13
+
14
+ # Load ace-git (required dependency for git operations)
15
+ require "ace/git"
16
+
17
+ require_relative "review/version"
18
+ require_relative "review/errors"
19
+
20
+ # Require atoms
21
+ require_relative "review/atoms/context_limit_resolver"
22
+ require_relative "review/atoms/diff_boundary_finder"
23
+ require_relative "review/atoms/feedback_id_generator"
24
+ require_relative "review/atoms/feedback_slug_generator"
25
+ require_relative "review/atoms/feedback_state_validator"
26
+ require_relative "review/atoms/pr_comment_formatter"
27
+ require_relative "review/atoms/preset_validator"
28
+ require_relative "review/atoms/priority_filter"
29
+ require_relative "review/atoms/slug_generator"
30
+ require_relative "review/atoms/token_estimator"
31
+
32
+ # Require all necessary components explicitly
33
+ require_relative "review/molecules/context_composer"
34
+ require_relative "review/molecules/context_extractor"
35
+ require_relative "review/molecules/llm_executor"
36
+ require_relative "review/molecules/preset_manager"
37
+ require_relative "review/molecules/prompt_composer"
38
+ require_relative "review/molecules/nav_prompt_resolver"
39
+ require_relative "review/molecules/subject_extractor"
40
+ require_relative "review/molecules/gh_cli_executor"
41
+ require_relative "review/molecules/gh_pr_fetcher"
42
+ require_relative "review/molecules/gh_pr_comment_fetcher"
43
+ require_relative "review/molecules/gh_comment_poster"
44
+ require_relative "review/molecules/gh_comment_resolver"
45
+ require_relative "review/molecules/multi_model_executor"
46
+ require_relative "review/molecules/feedback_file_writer"
47
+ require_relative "review/molecules/feedback_file_reader"
48
+ require_relative "review/molecules/feedback_directory_manager"
49
+ require_relative "review/molecules/feedback_synthesizer"
50
+ require_relative "review/molecules/subject_filter"
51
+ require_relative "review/molecules/subject_strategy"
52
+ require_relative "review/molecules/pr_task_spec_resolver"
53
+
54
+ require_relative "review/organisms/review_manager"
55
+ require_relative "review/organisms/feedback_manager"
56
+
57
+ require_relative "review/models/review_options"
58
+ require_relative "review/models/feedback_item"
59
+ require_relative "review/models/reviewer"
60
+
61
+ require_relative "review/cli"
62
+ require_relative "review/cli/feedback_cli"
63
+
64
+ module Ace
65
+ module Review
66
+ # Define module namespaces
67
+ module Atoms; end
68
+ module Molecules; end
69
+ module Organisms; end
70
+ module Models; end
71
+ module Commands; end
72
+
73
+ class << self
74
+ # Configuration accessor
75
+ # Follows ADR-022: Configuration Default and Override Pattern
76
+ # Uses Ace::Support::Config.create() for configuration cascade resolution
77
+ def config
78
+ @config ||= begin
79
+ gem_root = Gem.loaded_specs["ace-review"]&.gem_dir ||
80
+ File.expand_path("../..", __dir__)
81
+
82
+ resolver = Ace::Support::Config.create(
83
+ config_dir: ".ace",
84
+ defaults_dir: ".ace-defaults",
85
+ gem_path: gem_root
86
+ )
87
+
88
+ # Resolve config for review namespace
89
+ config = resolver.resolve_namespace("review")
90
+ config.data
91
+ rescue => e
92
+ warn "Warning: Could not load ace-review config: #{e.message}" if debug?
93
+ # Fall back to gem defaults instead of empty hash to prevent silent config erasure
94
+ load_gem_defaults_fallback
95
+ end
96
+ end
97
+
98
+ private
99
+
100
+ # Load gem defaults directly as fallback when cascade resolution fails
101
+ # This ensures configuration is never silently erased due to YAML errors
102
+ # or user config issues
103
+ def load_gem_defaults_fallback
104
+ gem_root = Gem.loaded_specs["ace-review"]&.gem_dir ||
105
+ File.expand_path("../..", __dir__)
106
+ defaults_path = File.join(gem_root, ".ace-defaults", "review", "config.yml")
107
+
108
+ return {} unless File.exist?(defaults_path)
109
+
110
+ YAML.safe_load_file(defaults_path, permitted_classes: [Date], aliases: true) || {}
111
+ rescue Psych::SyntaxError, Errno::ENOENT, Errno::EACCES
112
+ {} # Only return empty hash if even defaults fail to load
113
+ end
114
+
115
+ public
116
+
117
+ # Get configuration value with dot notation
118
+ def get(*keys)
119
+ keys.reduce(config) do |hash, key|
120
+ hash.is_a?(Hash) ? hash[key.to_s] : nil
121
+ end
122
+ end
123
+
124
+ # Reset cached configuration (useful for testing)
125
+ def reset_config!
126
+ @config = nil
127
+ end
128
+
129
+ # Check if running in debug mode
130
+ def debug?
131
+ ENV["ACE_DEBUG"] == "1" || ENV["DEBUG"] == "1"
132
+ end
133
+ end
134
+ end
135
+ end
metadata ADDED
@@ -0,0 +1,351 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ace-review
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.49.0
5
+ platform: ruby
6
+ authors:
7
+ - Michal Czyz
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: ace-support-cli
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '0.3'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '0.3'
26
+ - !ruby/object:Gem::Dependency
27
+ name: ace-support-config
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.7'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.7'
40
+ - !ruby/object:Gem::Dependency
41
+ name: ace-b36ts
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.7'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.7'
54
+ - !ruby/object:Gem::Dependency
55
+ name: ace-support-core
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.24'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.24'
68
+ - !ruby/object:Gem::Dependency
69
+ name: ace-bundle
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.31'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.31'
82
+ - !ruby/object:Gem::Dependency
83
+ name: ace-git
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.11'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.11'
96
+ - !ruby/object:Gem::Dependency
97
+ name: ace-support-nav
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.18'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.18'
110
+ - !ruby/object:Gem::Dependency
111
+ name: ace-llm
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.23'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.23'
124
+ - !ruby/object:Gem::Dependency
125
+ name: ace-task
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.11'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.11'
138
+ - !ruby/object:Gem::Dependency
139
+ name: ace-support-test-helpers
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0.12'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.12'
152
+ - !ruby/object:Gem::Dependency
153
+ name: bundler
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '2.0'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '2.0'
166
+ - !ruby/object:Gem::Dependency
167
+ name: minitest
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '5.0'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '5.0'
180
+ - !ruby/object:Gem::Dependency
181
+ name: rake
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '13.0'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '13.0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: rubocop
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '1.21'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '1.21'
208
+ description: Run focused, repeatable code reviews using configurable presets and multiple
209
+ LLM models in parallel. Findings become trackable feedback items with a verify-apply-resolve
210
+ lifecycle.
211
+ email:
212
+ - mc@cs3b.com
213
+ executables:
214
+ - ace-review
215
+ - ace-review-feedback
216
+ extensions: []
217
+ extra_rdoc_files: []
218
+ files:
219
+ - ".ace-defaults/nav/protocols/guide-sources/ace-review.yml"
220
+ - ".ace-defaults/nav/protocols/prompt-sources/ace-review.yml"
221
+ - ".ace-defaults/nav/protocols/tmpl-sources/ace-review.yml"
222
+ - ".ace-defaults/nav/protocols/wfi-sources/ace-review.yml"
223
+ - ".ace-defaults/review/config.yml"
224
+ - ".ace-defaults/review/presets/code-fit.yml"
225
+ - ".ace-defaults/review/presets/code-shine.yml"
226
+ - ".ace-defaults/review/presets/code-valid.yml"
227
+ - ".ace-defaults/review/presets/docs.yml"
228
+ - ".ace-defaults/review/presets/spec.yml"
229
+ - CHANGELOG.md
230
+ - LICENSE
231
+ - README.md
232
+ - Rakefile
233
+ - exe/ace-review
234
+ - exe/ace-review-feedback
235
+ - handbook/guides/code-review-process.g.md
236
+ - handbook/prompts/base/sections.md
237
+ - handbook/prompts/base/system.md
238
+ - handbook/prompts/focus/architecture/atom.md
239
+ - handbook/prompts/focus/architecture/reflection.md
240
+ - handbook/prompts/focus/frameworks/rails.md
241
+ - handbook/prompts/focus/frameworks/vue-firebase.md
242
+ - handbook/prompts/focus/languages/ruby.md
243
+ - handbook/prompts/focus/phase/correctness.md
244
+ - handbook/prompts/focus/phase/polish.md
245
+ - handbook/prompts/focus/phase/quality.md
246
+ - handbook/prompts/focus/quality/performance.md
247
+ - handbook/prompts/focus/quality/security.md
248
+ - handbook/prompts/focus/scope/docs.md
249
+ - handbook/prompts/focus/scope/spec.md
250
+ - handbook/prompts/focus/scope/tests.md
251
+ - handbook/prompts/format/compact.md
252
+ - handbook/prompts/format/detailed.md
253
+ - handbook/prompts/format/standard.md
254
+ - handbook/prompts/guidelines/icons.md
255
+ - handbook/prompts/guidelines/tone.md
256
+ - handbook/prompts/synthesis-review-reports.system.md
257
+ - handbook/prompts/synthesize-feedback.system.md
258
+ - handbook/skills/as-review-apply-feedback/SKILL.md
259
+ - handbook/skills/as-review-package/SKILL.md
260
+ - handbook/skills/as-review-pr/SKILL.md
261
+ - handbook/skills/as-review-run/SKILL.md
262
+ - handbook/skills/as-review-verify-feedback/SKILL.md
263
+ - handbook/templates/review-tasks/task-review-summary.template.md
264
+ - handbook/workflow-instructions/review/apply-feedback.wf.md
265
+ - handbook/workflow-instructions/review/package.wf.md
266
+ - handbook/workflow-instructions/review/pr.wf.md
267
+ - handbook/workflow-instructions/review/run.wf.md
268
+ - handbook/workflow-instructions/review/verify-feedback.wf.md
269
+ - lib/ace/review.rb
270
+ - lib/ace/review/atoms/context_limit_resolver.rb
271
+ - lib/ace/review/atoms/diff_boundary_finder.rb
272
+ - lib/ace/review/atoms/feedback_id_generator.rb
273
+ - lib/ace/review/atoms/feedback_slug_generator.rb
274
+ - lib/ace/review/atoms/feedback_state_validator.rb
275
+ - lib/ace/review/atoms/pr_comment_formatter.rb
276
+ - lib/ace/review/atoms/preset_validator.rb
277
+ - lib/ace/review/atoms/priority_filter.rb
278
+ - lib/ace/review/atoms/retry_with_backoff.rb
279
+ - lib/ace/review/atoms/slug_generator.rb
280
+ - lib/ace/review/atoms/token_estimator.rb
281
+ - lib/ace/review/cli.rb
282
+ - lib/ace/review/cli/commands/feedback.rb
283
+ - lib/ace/review/cli/commands/feedback/create.rb
284
+ - lib/ace/review/cli/commands/feedback/list.rb
285
+ - lib/ace/review/cli/commands/feedback/resolve.rb
286
+ - lib/ace/review/cli/commands/feedback/session_discovery.rb
287
+ - lib/ace/review/cli/commands/feedback/show.rb
288
+ - lib/ace/review/cli/commands/feedback/skip.rb
289
+ - lib/ace/review/cli/commands/feedback/verify.rb
290
+ - lib/ace/review/cli/commands/review.rb
291
+ - lib/ace/review/cli/feedback_cli.rb
292
+ - lib/ace/review/errors.rb
293
+ - lib/ace/review/models/feedback_item.rb
294
+ - lib/ace/review/models/review_options.rb
295
+ - lib/ace/review/models/reviewer.rb
296
+ - lib/ace/review/molecules/context_composer.rb
297
+ - lib/ace/review/molecules/context_extractor.rb
298
+ - lib/ace/review/molecules/feedback_directory_manager.rb
299
+ - lib/ace/review/molecules/feedback_file_reader.rb
300
+ - lib/ace/review/molecules/feedback_file_writer.rb
301
+ - lib/ace/review/molecules/feedback_synthesizer.rb
302
+ - lib/ace/review/molecules/gh_cli_executor.rb
303
+ - lib/ace/review/molecules/gh_comment_poster.rb
304
+ - lib/ace/review/molecules/gh_comment_resolver.rb
305
+ - lib/ace/review/molecules/gh_pr_comment_fetcher.rb
306
+ - lib/ace/review/molecules/gh_pr_fetcher.rb
307
+ - lib/ace/review/molecules/llm_executor.rb
308
+ - lib/ace/review/molecules/multi_model_executor.rb
309
+ - lib/ace/review/molecules/nav_prompt_resolver.rb
310
+ - lib/ace/review/molecules/pr_task_spec_resolver.rb
311
+ - lib/ace/review/molecules/preset_manager.rb
312
+ - lib/ace/review/molecules/prompt_composer.rb
313
+ - lib/ace/review/molecules/prompt_resolver.rb
314
+ - lib/ace/review/molecules/strategies/adaptive_strategy.rb
315
+ - lib/ace/review/molecules/strategies/chunked_strategy.rb
316
+ - lib/ace/review/molecules/strategies/full_strategy.rb
317
+ - lib/ace/review/molecules/subject_extractor.rb
318
+ - lib/ace/review/molecules/subject_filter.rb
319
+ - lib/ace/review/molecules/subject_strategy.rb
320
+ - lib/ace/review/molecules/task_report_saver.rb
321
+ - lib/ace/review/molecules/task_resolver.rb
322
+ - lib/ace/review/organisms/feedback_manager.rb
323
+ - lib/ace/review/organisms/review_manager.rb
324
+ - lib/ace/review/version.rb
325
+ homepage: https://github.com/cs3b/ace
326
+ licenses:
327
+ - MIT
328
+ metadata:
329
+ allowed_push_host: https://rubygems.org
330
+ homepage_uri: https://github.com/cs3b/ace
331
+ source_code_uri: https://github.com/cs3b/ace
332
+ changelog_uri: https://github.com/cs3b/ace/blob/main/ace-review/CHANGELOG.md
333
+ rdoc_options: []
334
+ require_paths:
335
+ - lib
336
+ required_ruby_version: !ruby/object:Gem::Requirement
337
+ requirements:
338
+ - - ">="
339
+ - !ruby/object:Gem::Version
340
+ version: 3.2.0
341
+ required_rubygems_version: !ruby/object:Gem::Requirement
342
+ requirements:
343
+ - - ">="
344
+ - !ruby/object:Gem::Version
345
+ version: '0'
346
+ requirements: []
347
+ rubygems_version: 3.6.9
348
+ specification_version: 4
349
+ summary: Multi-model code review with preset-based analysis — for PRs, tasks, and
350
+ packages
351
+ test_files: []