-
Notifications
You must be signed in to change notification settings - Fork 0
Blind 75: BST Kth Smallest Element #121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Learn moreAll Green is an AI agent that automatically: ✅ Addresses code review comments ✅ Fixes failing CI checks ✅ Resolves merge conflicts |
|
@codex review |
1 similar comment
|
@codex review |
📝 WalkthroughWalkthroughAdded a new Binary Search Tree problem ("Kth Smallest Element") to the GreatFrontEnd Blind 75 challenges collection. Includes TypeScript implementation using iterative in-order traversal, comprehensive test suite, and problem documentation. Updated progress trackers in root and category-level README files. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Claude finished @pertrai1's task in 1m 28s —— View job Code Review Complete ✅Great implementation of the BST Kth Smallest Element problem! The solution is correct, well-commented, and uses an efficient iterative approach. Here's my detailed review: ✅ CorrectnessThe solution correctly implements an iterative in-order traversal to find the kth smallest element. It handles all edge cases properly:
The test suite is comprehensive with 11 test cases covering various tree structures. 📊 Complexity AnalysisTime Complexity: O(h + k) ✅
Space Complexity: O(h) ✅
The complexity annotations in 🎯 Algorithm Pattern: Iterative In-Order TraversalWhy this pattern works: Pattern breakdown:
This pattern is superior to the recursive approach because:
💡 Key InsightThe BST property + in-order traversal = sorted sequence By leveraging the BST invariant (left < root < right), in-order traversal naturally produces elements in ascending order. Instead of sorting the entire tree into an array (O(n) space), we can use iterative traversal to find the kth element in O(h) space. 🔍 Code Quality ReviewStrengths:
Minor observations:
🔄 Alternative Approaches1. Recursive In-Order Traversalfunction kthSmallest(root: TreeNode | null, k: number): number {
const result = { count: 0, value: -1 };
function inorder(node: TreeNode | null) {
if (!node || result.count >= k) return;
inorder(node.left);
result.count++;
if (result.count === k) {
result.value = node.val;
return;
}
inorder(node.right);
}
inorder(root);
return result.value;
}Trade-offs:
2. Morris Traversal (O(1) space)// Uses threaded binary tree technique
// Time: O(n), Space: O(1)Trade-offs:
Your iterative solution is optimal for interview settings: it's efficient, clear, and demonstrates solid understanding of tree traversal patterns. 🎓 Learning SummaryPattern Family: Tree Traversal (In-Order DFS) When to use this pattern:
Related Problems for Practice:
Common Mistakes to Avoid:
Interview Tips:
📝 SummaryVerdict: ✅ Excellent implementation This is a textbook-quality solution that demonstrates:
The solution is optimal for time complexity and uses the right pattern. No changes needed! |
|
To use Codex here, create a Codex account and connect to github. |
1 similar comment
|
To use Codex here, create a Codex account and connect to github. |
🧮 Solution AnalysisPR: Blind 75: BST Kth Smallest Element 📊 Code Quality ResultsESLint Analysis
Issues by file:
🔍 Complexity Analysisbst-kth-smallest📋 Analysis Results: 🔍 Automated Complexity Analysis
File: greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts Time ComplexityEstimated: O(1)
Space ComplexityEstimated: O(1) Data Structures Used
Code Metrics
Recommendations
bst-kth-smallest.test📋 Analysis Results: 🔍 Automated Complexity Analysis
File: greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.test.ts Time ComplexityEstimated: O(1)
Space ComplexityEstimated: O(1) Code Metrics
Recommendations
💡 Analysis Tips
📁 Analysis Files CreatedDetailed analysis files have been automatically generated and committed to 🎯 Next Steps
Analysis generated for PR files only |
✅ Test ResultsTests have been executed for this pull request. 📊 Coverage Summary
Check the workflow logs for detailed test output. |
|
🤖 Gemini Code Review (Model: Here's a review of the 1. Pattern IdentificationThis solution utilizes In-order Traversal of a Binary Search Tree (BST). The key property of a BST is that an in-order traversal (Left -> Node -> Right) visits nodes in ascending order of their values. The implementation specifically uses an iterative in-order traversal with an explicit stack. 2. Complexity Verification
3. Key InsightThe fundamental insight for solving this problem efficiently is leveraging the in-order traversal property of a Binary Search Tree. An in-order traversal of a BST yields all its node values in sorted (ascending) order. Therefore, to find the 4. Edge Case AnalysisThe current solution handles most common edge cases correctly due to the robust nature of iterative in-order traversal:
5. Learning Points
6. Code Quality
7. Alternative Approaches
|
|
🤖 Gemini Code Review (Model: Here's a review of your 1. Pattern IdentificationThis solution primarily uses Tree Traversal, specifically an Iterative In-order Traversal using a stack.
2. Complexity Verification
3. Key InsightThe key insight is leveraging the in-order traversal property of a Binary Search Tree. Because an in-order traversal visits nodes in ascending order, if we simply perform an in-order traversal and keep a counter, the 4. Edge Case AnalysisThe current solution handles most standard edge cases correctly:
Potential Edge Case / Constraint Consideration:
5. Learning Points
6. Code QualityThe code quality is good:
7. Alternative Approaches
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds a solution for the "BST Kth Smallest Element" problem to the Blind 75 collection. The implementation uses an iterative in-order traversal approach to find the kth smallest element in a binary search tree with O(h+k) time complexity and O(h) space complexity.
- Implements an efficient iterative solution using a stack-based in-order traversal
- Includes comprehensive test suite with 11 test cases covering edge cases (single node, skewed trees, balanced trees)
- Updates progress tracking across multiple README files (4/75 problems completed)
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts |
Implements iterative in-order traversal solution with proper TypeScript types and JSDoc complexity annotations |
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.test.ts |
Adds comprehensive test suite with 11 test cases covering various tree structures and k values |
greatfrontend/blind-75/trees/bst-kth-smallest/README.md |
Provides problem description, examples, and constraints (contains spelling errors and unclear documentation) |
greatfrontend/blind-75/README.md |
Updates Blind 75 progress tracker from 3/75 to 4/75 and adds Trees category entry |
README.md |
Updates GreatFrontEnd problems count from 8 to 9 and Blind 75 from 3/75 to 4/75 |
| @@ -0,0 +1,41 @@ | |||
| # Binary Search Tree Kth Smallest Element | |||
|
|
|||
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`k`-th smallest value in the BST. The smallest value in the tree is 1. | |||
Copilot
AI
Dec 29, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem statement says "The smallest value in the tree is 1" which is confusing and incorrect. This statement seems to suggest that the minimum value in the BST is always 1, which is not true based on the examples and constraints. This should clarify that "k" starts from 1 (i.e., k=1 means the smallest element), not that the tree's minimum value is 1.
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`k`-th smallest value in the BST. The smallest value in the tree is 1. | |
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`-th smallest value in the BST (where `k = 1` corresponds to the smallest element). |
| @@ -0,0 +1,41 @@ | |||
| # Binary Search Tree Kth Smallest Element | |||
|
|
|||
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`k`-th smallest value in the BST. The smallest value in the tree is 1. | |||
Copilot
AI
Dec 29, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a typo in the problem description. The backtick character is duplicated after "k" making it read "kk-th" instead of just "k-th".
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`k`-th smallest value in the BST. The smallest value in the tree is 1. | |
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`-th smallest value in the BST. The smallest value in the tree is 1. |
|
|
||
| ## Input | ||
|
|
||
| - `root: TreeNode`: Root node of the tree. Examples display a level-order traversale of the tree |
Copilot
AI
Dec 29, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a spelling error: "traversale" should be "traversal".
| - `root: TreeNode`: Root node of the tree. Examples display a level-order traversale of the tree | |
| - `root: TreeNode`: Root node of the tree. Examples display a level-order traversal of the tree |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (1)
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts (1)
10-31: Correct iterative in-order traversal implementation.The algorithm correctly finds the kth smallest element using an iterative in-order traversal. The logic is clear and well-commented.
Optional: Consider safer handling of stack.pop()
Line 23 uses the non-null assertion operator
!which assumes the stack is never empty. While the problem constraints guaranteekis valid (1 ≤ k ≤ number of nodes), you could make this more explicit for robustness:- root = stack.pop()!; + const node = stack.pop(); + if (!node) { + throw new Error('Invalid k: exceeds number of nodes in tree'); + } + root = node;This trades brevity for better error handling and maintains full type safety, though it's optional given the guaranteed constraints.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
README.mdgreatfrontend/blind-75/README.mdgreatfrontend/blind-75/trees/bst-kth-smallest/README.mdgreatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.test.tsgreatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts
🧰 Additional context used
📓 Path-based instructions (5)
**/*.ts
📄 CodeRabbit inference engine (AGENTS.md)
**/*.ts: Use explicit type annotations for function parameters and return types in TypeScript solutions
Follow strict TypeScript configuration with ES2020 target and CommonJS modules in TypeScript solutions
Enforce full type safety in TypeScript solutions
Files:
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.test.tsgreatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts
**/*.{js,ts}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{js,ts}: Use clear, descriptive variable names across all solutions
Add comments for non-obvious logic or algorithm steps in code
Keep functions focused and single-purpose across all solutions
Prefer readability over cleverness in code implementation
**/*.{js,ts}: Use descriptive variable names; single letters likei,j,kare acceptable for loop iterators and standard mathematical contexts
Add comments for complex logic, but prefer self-documenting code with clear logic
Minimize external dependencies and keep solutions self-contained
**/*.{js,ts}: Use clear, descriptive variable names (not just i, j, k unless in simple loops) and add comments for non-obvious logic or algorithm steps
Keep functions focused and single-purpose, preferring readability over cleverness
Use const by default, let only when reassignment needed; avoid var except for LeetCode solution function definitions
Use modern ES6+ syntax (arrow functions, destructuring, spread operators) where appropriate
Prefer built-in methods (.map(), .filter(), .reduce()) when appropriate and use strict equality (===) over loose equality (==)
Files:
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.test.tsgreatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*.{ts,tsx}: Use explicit type annotations for function parameters and return types in TypeScript
Follow strict TypeScript configuration as defined in tsconfig.json with ES2020 target and CommonJS modules
Files:
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.test.tsgreatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts
**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
**/*.md: Create comprehensive documentation guides for arrays, trees, graphs, heaps, and other data structures
Document reusable code templates for common algorithmic patterns
Maintain Big O complexity cheatsheets and references
Files:
README.mdgreatfrontend/blind-75/trees/bst-kth-smallest/README.mdgreatfrontend/blind-75/README.md
**/README.md
📄 CodeRabbit inference engine (CLAUDE.md)
Each problem directory should include a README.md containing: problem title and difficulty badge, link to the problem on the respective platform, problem description, examples and constraints
Files:
README.mdgreatfrontend/blind-75/trees/bst-kth-smallest/README.mdgreatfrontend/blind-75/README.md
🧠 Learnings (3)
📚 Learning: 2025-12-02T17:56:01.747Z
Learnt from: CR
Repo: pertrai1/coding-challenges PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-02T17:56:01.747Z
Learning: Applies to GreatFrontEnd/**/*.{js,ts} : Evaluate the public API for clarity and usability, check for consistent naming conventions, verify parameter validation and error handling in GreatFrontEnd solutions
Applied to files:
README.md
📚 Learning: 2025-12-02T17:56:01.747Z
Learnt from: CR
Repo: pertrai1/coding-challenges PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-02T17:56:01.747Z
Learning: Applies to GreatFrontEnd/**/*.{js,ts} : Check for unnecessary re-renders or DOM manipulations, verify efficient data structure usage for UI updates in GreatFrontEnd solutions
Applied to files:
README.md
📚 Learning: 2025-11-26T14:46:46.097Z
Learnt from: CR
Repo: pertrai1/coding-challenges PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-26T14:46:46.097Z
Learning: Applies to [0-9]*-*/*.md : Problem README files should include: problem title with difficulty badge, problem description from LeetCode, examples with inputs/outputs, and constraints
Applied to files:
greatfrontend/blind-75/trees/bst-kth-smallest/README.md
🪛 LanguageTool
greatfrontend/blind-75/trees/bst-kth-smallest/README.md
[grammar] ~19-~19: Ensure spelling is correct
Context: ...he tree. Examples display a level-order traversale of the tree - k: number: A positive i...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Upload results
- GitHub Check: review
🔇 Additional comments (6)
README.md (1)
10-10: Progress tracker updates look correct!The increments from 8 to 9 GreatFrontEnd problems and 3/75 to 4/75 Blind 75 problems accurately reflect the addition of the new BST Kth Smallest Element problem.
Also applies to: 47-47
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.ts (2)
1-5: Clean TreeNode interface definition.The interface follows TypeScript best practices with explicit types for all properties.
6-9: Accurate complexity analysis.The space and time complexity annotations are correct:
- O(h) space for the stack holding at most h nodes (tree height)
- O(h + k) time for traversing to the leftmost node plus visiting k nodes
greatfrontend/blind-75/README.md (1)
7-7: Progress updates and problem entry are accurate.The status updates correctly reflect the completion of one new Trees problem, and the new entry follows the established format with proper path and difficulty level.
Also applies to: 28-30
greatfrontend/blind-75/trees/bst-kth-smallest/README.md (1)
1-41: Well-structured problem documentation.The README follows the repository conventions with clear problem description, TreeNode interface definition, input specifications, examples, and constraints.
greatfrontend/blind-75/trees/bst-kth-smallest/bst-kth-smallest.test.ts (1)
1-193: Excellent comprehensive test suite!The tests thoroughly validate the implementation across multiple dimensions:
- Edge cases: Single node, minimum (k=1), maximum values
- Tree shapes: Left-skewed, right-skewed, balanced BSTs
- Various k values: First, middle, and last positions
- Reference examples: LeetCode test cases for cross-verification
- Clear documentation: ASCII tree diagrams aid understanding
The test coverage gives high confidence in the correctness of the implementation.
| @@ -0,0 +1,41 @@ | |||
| # Binary Search Tree Kth Smallest Element | |||
|
|
|||
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`k`-th smallest value in the BST. The smallest value in the tree is 1. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix typo in problem description.
There's a duplicated backtick in the text: "kk-th" should be "k`-th".
🔎 Proposed fix
-Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`k`-th smallest value in the BST. The smallest value in the tree is 1.
+Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`-th smallest value in the BST. The smallest value in the tree is 1.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`k`-th smallest value in the BST. The smallest value in the tree is 1. | |
| Given the `root` node of a binary search tree (BST) and an integer `k`, write a function to find and return the `k`-th smallest value in the BST. The smallest value in the tree is 1. |
🤖 Prompt for AI Agents
In greatfrontend/blind-75/trees/bst-kth-smallest/README.md around line 3, fix
the typo in the problem description where "`k`k`-th" appears; replace it with
the correct "`k`-th" so the sentence reads "find and return the `k`-th smallest
value in the BST." Ensure only the duplicated backtick and extra 'k' are removed
and the rest of the sentence remains unchanged.
|
|
||
| ## Input | ||
|
|
||
| - `root: TreeNode`: Root node of the tree. Examples display a level-order traversale of the tree |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix spelling error.
"traversale" should be "traversal".
🔎 Proposed fix
-- `root: TreeNode`: Root node of the tree. Examples display a level-order traversale of the tree
+- `root: TreeNode`: Root node of the tree. Examples display a level-order traversal of the tree📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - `root: TreeNode`: Root node of the tree. Examples display a level-order traversale of the tree | |
| - `root: TreeNode`: Root node of the tree. Examples display a level-order traversal of the tree |
🧰 Tools
🪛 LanguageTool
[grammar] ~19-~19: Ensure spelling is correct
Context: ...he tree. Examples display a level-order traversale of the tree - k: number: A positive i...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
In greatfrontend/blind-75/trees/bst-kth-smallest/README.md around line 19, fix
the spelling mistake in the parameter description by replacing the word
"traversale" with "traversal" so the sentence reads "...Examples display a
level-order traversal of the tree."
|
@codex review |
|
Claude finished @pertrai1's task in 1m 34s —— View job Code Review Complete ✅Great work on implementing the BST Kth Smallest Element problem! This is a well-executed solution with excellent test coverage. Here's my detailed review: ✅ 1. CorrectnessVerdict: Correct - The solution properly implements iterative in-order traversal to find the kth smallest element. Edge Cases Verified:
The test suite is outstanding with 11 comprehensive test cases covering all edge cases and tree structures. This gives high confidence in correctness. 📊 2. Complexity AnalysisTime Complexity: O(h + k) ✅ CORRECT
Space Complexity: O(h) ✅ CORRECT
The complexity annotations in 🎯 3. Pattern Identification & Learning FocusPrimary Pattern: Iterative In-Order Traversal (DFS)Why this pattern works: The key insight is that in-order traversal of a BST visits nodes in ascending sorted order (left → root → right). By leveraging the BST property where
Why this approach is optimal for this problem:
Key Insight Breakdown:
This fundamental property transforms the problem from "find kth smallest in a tree" to "count k nodes during in-order traversal." The iterative stack-based approach gives us fine-grained control to stop exactly at the kth element. The Two-Phase Algorithm:
💻 4. Code QualityStrengths:
Best Practices Followed:
Minor Observations:
These are documentation issues only - the code itself is excellent! 🔄 5. Alternative ApproachesApproach 1: Recursive In-Order Traversalfunction kthSmallest(root: TreeNode | null, k: number): number {
let count = 0;
let result = -1;
function inorder(node: TreeNode | null) {
if (!node || count >= k) return;
inorder(node.left);
count++;
if (count === k) {
result = node.val;
return;
}
inorder(node.right);
}
inorder(root);
return result;
}Trade-offs:
Approach 2: Morris Traversal (Advanced)Trade-offs:
Approach 3: Augmented BSTModify each node to store left subtree size. Allows O(h) lookup by comparing k with subtree sizes.
Recommendation: Your iterative in-order traversal is the optimal balance of clarity, efficiency, and interview-friendliness. 📚 6. Related Problems for PracticeThese problems use the same or similar patterns: Same Pattern (In-Order Traversal):
Related BST Problems:
|
|
To use Codex here, create a Codex account and connect to github. |
|
🤖 Gemini Code Review (Model: Here's a detailed review of your 1. Pattern IdentificationThis solution utilizes the In-order Traversal pattern, specifically an iterative in-order traversal using a stack. The key property of a Binary Search Tree (BST) is that an in-order traversal (left, root, right) visits nodes in ascending order of their values. This makes it ideal for finding the k-th smallest element. 2. Complexity Verification
3. Key InsightThe fundamental insight for this problem is leveraging the inherent sorted property of a Binary Search Tree (BST) during an in-order traversal. If you traverse a BST in-order (left child, current node, right child), the values of the nodes are visited in strictly increasing order. Therefore, to find the k-th smallest element, you simply need to perform an in-order traversal and stop after visiting 4. Edge Case AnalysisThe current solution is robust and should handle the following edge cases correctly:
5. Learning Points
6. Code Quality
7. Alternative Approaches
Your current iterative solution is a standard and efficient approach for this problem without modifying the tree structure. |
📅 Spaced Repetition Reviews Scheduled!Great job solving #GFE-960f - Bst Kth Smallest! 🎉 To help you retain this knowledge long-term, I've scheduled 5 review sessions using spaced repetition:
What to expect:
🧠 Why Spaced Repetition?Research shows that reviewing material at increasing intervals dramatically improves retention. This adaptive scheduling ensures optimal spacing based on when you actually complete each review! Check |
Problem: #GFE-960f - Bst Kth Smallest PR: #121 First review scheduled (subsequent reviews auto-scheduled on completion) [skip ci]

Summary by CodeRabbit
New Features
Documentation
Progress: GreatFrontEnd problems solved increased to 9; Blind 75 progress updated to 4/75; Trees category now at 1/12.
✏️ Tip: You can customize this high-level summary in your review settings.