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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b82396dc00ae89da402caac13c3676fcd153b08cb57d3b7a90ad89741f9dcc35
4
+ data.tar.gz: f41220f9de17f6a441284da8faa2b5bdeeda271914b1ad50fc4c04bec746958d
5
+ SHA512:
6
+ metadata.gz: d67f62b415608b416992a9370d9e2f7bcc275ddb15364327c792f7796cc90497f1c76e63c31da50ef93f806879cc7c539182ebefd392eab1c4c1da1d25b5c96e
7
+ data.tar.gz: 77225d85b87a7f03f2edff892768a09682f6e4928e76350b5fee7a13a2128e108abd12ad18e333ce9196f807d98f71bafe18b533f6d08a2e036d4537a2a89fa5
@@ -0,0 +1,10 @@
1
+ ---
2
+ # Guide Sources Protocol Configuration for ace-review gem
3
+ name: ace-review
4
+ type: gem
5
+ description: Guides from ace-review gem
6
+ priority: 10
7
+ config:
8
+ relative_path: handbook/guides
9
+ pattern: "*.g.md"
10
+ enabled: true
@@ -0,0 +1,36 @@
1
+ ---
2
+ # Prompt Sources Protocol Configuration for ace-review gem
3
+ # This enables prompt discovery from the installed ace-review gem
4
+
5
+ name: ace-review
6
+ type: gem
7
+ description: Review prompts and focus modules from ace-review gem
8
+ priority: 10
9
+
10
+ # Configuration for prompt discovery within the gem
11
+ config:
12
+ # Relative path within the gem (default: handbook/prompts)
13
+ relative_path: handbook/prompts
14
+
15
+ # Pattern for finding prompt files (supports both *.md and *.prompt.md)
16
+ pattern: "*.md"
17
+
18
+ # Enable discovery
19
+ enabled: true
20
+
21
+ # Categories of prompts available
22
+ categories:
23
+ - base # Core system prompts
24
+ - format # Output format modules
25
+ - focus # Review focus modules (architecture, languages, quality, etc.)
26
+ - guidelines # Style and tone guidelines
27
+
28
+ # Notes for users
29
+ notes: |
30
+ ace-review provides modular prompts for code review composition:
31
+ - Base: System prompts for review foundation
32
+ - Format: Standard, detailed, or compact output formats
33
+ - Focus: Specific review areas like security, performance, architecture
34
+ - Guidelines: Tone, icons, and style guides
35
+
36
+ Use prompt:// URIs to reference these prompts in your review configurations.
@@ -0,0 +1,10 @@
1
+ ---
2
+ # Template Sources Protocol Configuration for ace-review gem
3
+ name: ace-review
4
+ type: gem
5
+ description: Templates from ace-review gem
6
+ priority: 10
7
+ config:
8
+ relative_path: handbook/templates
9
+ pattern: "**/*.template.md"
10
+ enabled: true
@@ -0,0 +1,19 @@
1
+ ---
2
+ # WFI Sources Protocol Configuration for ace-review gem
3
+ # This enables workflow discovery from the installed ace-review gem
4
+
5
+ name: ace-review
6
+ type: gem
7
+ description: Code review workflow instructions from ace-review gem
8
+ priority: 10
9
+
10
+ # Configuration for workflow discovery within the gem
11
+ config:
12
+ # Relative path within the gem (default: handbook/workflow-instructions)
13
+ relative_path: handbook/workflow-instructions
14
+
15
+ # Pattern for finding workflow files (default: *.wf.md)
16
+ pattern: "*.wf.md"
17
+
18
+ # Enable discovery
19
+ enabled: true
@@ -0,0 +1,79 @@
1
+ # ace-review configuration file
2
+ # This file defines default settings and presets for code reviews
3
+ #
4
+ # Configuration Options:
5
+ # ---------------------
6
+ # preset - Default preset when --preset not specified (default: "code-valid")
7
+ # model - Default LLM model for reviews (default: "codex:codex@ro")
8
+ # output_format - Output format for reviews (default: "markdown")
9
+ # context - Default context preset (default: "project")
10
+ # max_concurrent_models - Max parallel LLM queries for multi-model execution (default: 3)
11
+ # auto_execute - Auto-execute LLM query without confirmation (default: false)
12
+ # gh_timeout - Timeout for GitHub CLI operations in seconds (default: 30)
13
+ # gh_simple_timeout - Timeout for simple gh commands like --version, auth status (default: 10)
14
+ # llm_timeout - Timeout for LLM queries in seconds (default: 900)
15
+ #
16
+ # Environment Variables:
17
+ # ---------------------
18
+ # ACE_DEBUG / DEBUG - Enable debug output (set to "1")
19
+ # ACE_REVIEW_DEBUG - Enable detailed composition debugging (set to "1")
20
+
21
+ # Default project documentation files for auto-context extraction
22
+ # These files are checked when context: "project" or context: "auto" is used
23
+ # Order matters: first found files are used first
24
+ project_docs:
25
+ - "README.md"
26
+ - "docs/architecture.md"
27
+ - "docs/vision.md"
28
+ - "docs/blueprint.md"
29
+ - ".github/CONTRIBUTING.md"
30
+ - "ARCHITECTURE.md"
31
+
32
+ # Default settings applied to all reviews unless overridden
33
+ defaults:
34
+ preset: "code-valid" # Default preset when --preset not specified
35
+ model: "codex:codex@ro"
36
+ output_format: "markdown"
37
+ bundle: "project"
38
+ max_concurrent_models: 3 # Max parallel LLM queries for multi-model execution
39
+ auto_execute: false # Set to true to auto-execute LLM query without confirmation
40
+ gh_timeout: 30 # Timeout for GitHub CLI operations in seconds
41
+ gh_simple_timeout: 10 # Timeout for simple gh commands (--version, auth status)
42
+ llm_timeout: 900 # Timeout for LLM queries in seconds (15 minutes)
43
+
44
+ # Subject strategy configuration
45
+ # Controls how large diffs are handled when they exceed model context limits
46
+ #
47
+ # Strategy Types:
48
+ # - adaptive (default): Auto-selects full or chunked based on model capabilities
49
+ # - full: Send complete diff in single request (for large context models)
50
+ # - chunked: Split diff at file boundaries (for smaller context models)
51
+ #
52
+ # Example:
53
+ # subject_strategy:
54
+ # type: adaptive # or: full, chunked
55
+ # headroom: 0.15 # Reserve 15% for system prompt (default)
56
+ # chunking:
57
+ # max_tokens_per_chunk: 100000 # Max tokens per chunk
58
+ # include_change_summary: true # Include file summary in each chunk
59
+
60
+ # Storage configuration
61
+ # storage:
62
+ # # Where to store review outputs
63
+ # # Detection order (if not specified):
64
+ # # 1. Try: $(ace-task release --path reviews)
65
+ # # 2. Fallback: .ace-local/review/sessions/
66
+ # # You can override with custom path (supports %{release} placeholder):
67
+ # base_path: ".ace-tasks/%{release}/reviews"
68
+ # auto_organize: true
69
+
70
+ # Feedback extraction configuration
71
+ # Feedback items are extracted from review reports for tracking and verification
72
+ feedback:
73
+ enabled: true # Enable feedback extraction (default: true)
74
+ synthesis_model: gemini:flash-latest@ro # Model for synthesizing feedback items
75
+ fallback_models: # Fallback models if primary synthesis fails
76
+ - claude:sonnet
77
+
78
+ # Review presets - load from .ace/review/presets/*.yml
79
+ # Individual preset files provide better organization and shareability
@@ -0,0 +1,64 @@
1
+ # Fit - quality review: structure, performance, architecture, standards
2
+
3
+ description: "Quality review - is the code well-structured and maintainable?"
4
+
5
+ instructions:
6
+ base: "prompt://base/system"
7
+ bundle:
8
+ sections:
9
+ format:
10
+ title: "Format Guidelines"
11
+ description: "Detailed output formatting and structure guidelines"
12
+ files:
13
+ - "prompt://format/detailed"
14
+ quality_focus:
15
+ title: "Quality Review Focus"
16
+ description: "Structure, standards adherence, and test coverage"
17
+ files:
18
+ - "prompt://focus/phase/quality"
19
+ security_focus:
20
+ title: "Security Review Focus"
21
+ description: "Security vulnerability and risk analysis"
22
+ files:
23
+ - "prompt://focus/quality/security"
24
+ performance_focus:
25
+ title: "Performance Review Focus"
26
+ description: "Performance optimization and resource management"
27
+ files:
28
+ - "prompt://focus/quality/performance"
29
+ architecture_focus:
30
+ title: "Architecture Review Focus"
31
+ description: "ATOM architecture compliance and design patterns"
32
+ files:
33
+ - "prompt://focus/architecture/atom"
34
+ test_focus:
35
+ title: "Test Coverage Focus"
36
+ description: "Test coverage patterns and quality"
37
+ files:
38
+ - "prompt://focus/scope/tests"
39
+ ruby_focus:
40
+ title: "Ruby Language Focus"
41
+ description: "Ruby-specific idioms and conventions"
42
+ files:
43
+ - "prompt://focus/languages/ruby"
44
+ communication:
45
+ title: "Communication Style"
46
+ description: "Professional communication guidelines"
47
+ files:
48
+ - "prompt://guidelines/tone"
49
+ visual_indicators:
50
+ title: "Visual Indicators"
51
+ description: "Icons and visual markers for quick scanning"
52
+ files:
53
+ - "prompt://guidelines/icons"
54
+ project_context:
55
+ title: "Project Context"
56
+ description: "Project information and background"
57
+ presets:
58
+ - "project"
59
+
60
+ bundle: "project"
61
+
62
+ models:
63
+ - claude:opus@ro
64
+ - codex:gpt@ro
@@ -0,0 +1,44 @@
1
+ # Shine - polish review: simplification, clarity, readability (all non-blocking)
2
+
3
+ description: "Polish review - can we simplify and improve clarity?"
4
+
5
+ instructions:
6
+ base: "prompt://base/system"
7
+ bundle:
8
+ sections:
9
+ format:
10
+ title: "Format Guidelines"
11
+ description: "Standard output formatting for non-blocking suggestions"
12
+ files:
13
+ - "prompt://format/standard"
14
+ polish_focus:
15
+ title: "Polish Review Focus"
16
+ description: "Simplification, naming, dead code, and readability suggestions"
17
+ files:
18
+ - "prompt://focus/phase/polish"
19
+ docs_focus:
20
+ title: "Documentation Focus"
21
+ description: "Documentation completeness and standards"
22
+ files:
23
+ - "prompt://focus/scope/docs"
24
+ communication:
25
+ title: "Communication Style"
26
+ description: "Professional communication guidelines"
27
+ files:
28
+ - "prompt://guidelines/tone"
29
+ visual_indicators:
30
+ title: "Visual Indicators"
31
+ description: "Icons and visual markers for quick scanning"
32
+ files:
33
+ - "prompt://guidelines/icons"
34
+ project_context:
35
+ title: "Project Context"
36
+ description: "Project information and background"
37
+ presets:
38
+ - "project"
39
+
40
+ bundle: "project"
41
+
42
+ models:
43
+ - claude:opus@ro
44
+ - codex:gpt@ro
@@ -0,0 +1,39 @@
1
+ # Valid - correctness review: logic errors, bugs, missing functionality
2
+
3
+ description: "Correctness review - does the code work correctly?"
4
+
5
+ instructions:
6
+ base: "prompt://base/system"
7
+ bundle:
8
+ sections:
9
+ format:
10
+ title: "Format Guidelines"
11
+ description: "Detailed output formatting and structure guidelines"
12
+ files:
13
+ - "prompt://format/detailed"
14
+ correctness_focus:
15
+ title: "Correctness Review Focus"
16
+ description: "Logic errors, missing functionality, and bug detection"
17
+ files:
18
+ - "prompt://focus/phase/correctness"
19
+ communication:
20
+ title: "Communication Style"
21
+ description: "Professional communication guidelines"
22
+ files:
23
+ - "prompt://guidelines/tone"
24
+ visual_indicators:
25
+ title: "Visual Indicators"
26
+ description: "Icons and visual markers for quick scanning"
27
+ files:
28
+ - "prompt://guidelines/icons"
29
+ project_context:
30
+ title: "Project Context"
31
+ description: "Project information and background"
32
+ presets:
33
+ - "project"
34
+
35
+ bundle: "project"
36
+
37
+ models:
38
+ - claude:opus@ro
39
+ - codex:gpt@ro
@@ -0,0 +1,42 @@
1
+ # Documentation review - completeness and clarity
2
+
3
+ description: "Documentation review - completeness and clarity"
4
+
5
+ instructions:
6
+ base: "prompt://base/system"
7
+ bundle:
8
+ sections:
9
+ format:
10
+ title: "Format Guidelines"
11
+ description: "Standard output formatting and structure guidelines"
12
+ files:
13
+ - "prompt://format/standard"
14
+ docs_focus:
15
+ title: "Documentation Focus"
16
+ description: "Documentation completeness and clarity review"
17
+ files:
18
+ - "prompt://focus/scope/docs"
19
+ guidelines:
20
+ title: "Communication Guidelines"
21
+ description: "Professional communication style"
22
+ files:
23
+ - "prompt://guidelines/tone"
24
+ project_docs:
25
+ title: "Project Documentation"
26
+ description: "Main project documentation for context"
27
+ files:
28
+ - "README.md"
29
+
30
+ bundle: "project"
31
+
32
+ models:
33
+ - codex:codex@ro
34
+
35
+ subject:
36
+ bundle:
37
+ sections:
38
+ documentation_files:
39
+ title: "Documentation Files"
40
+ description: "Documentation files to review"
41
+ files:
42
+ - "**/*.md"
@@ -0,0 +1,37 @@
1
+ # Specification review - clarity, completeness, and feasibility
2
+
3
+ description: "Specification review - goal clarity, usage expectations, tests, completeness"
4
+
5
+ instructions:
6
+ base: "prompt://base/system"
7
+ bundle:
8
+ sections:
9
+ format:
10
+ title: "Format Guidelines"
11
+ description: "Standard output formatting and structure guidelines"
12
+ files:
13
+ - "prompt://format/standard"
14
+ spec_focus:
15
+ title: "Specification Focus"
16
+ description: "Specification clarity, completeness, and feasibility review"
17
+ files:
18
+ - "prompt://focus/scope/spec"
19
+ guidelines:
20
+ title: "Communication Guidelines"
21
+ description: "Professional communication style"
22
+ files:
23
+ - "prompt://guidelines/tone"
24
+
25
+ bundle: "project"
26
+
27
+ models:
28
+ - codex:codex@ro
29
+
30
+ subject:
31
+ bundle:
32
+ sections:
33
+ spec_changes:
34
+ title: "Specification Changes"
35
+ description: "Specification files to review"
36
+ commands:
37
+ - "git diff origin/main...HEAD -- '**/*.s.md'"