Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
280 changes: 280 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,280 @@
# Enables IDE autocompletion for this config file
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

# Language for CodeRabbit's review comments
language: en

# Enable experimental features (currently not using any specific early_access features)
early_access: true

chat:
# CodeRabbit will automatically respond to @coderabbitai mentions in PR comments
auto_reply: true

issue_enrichment:
labeling:
auto_apply_labels: true
labeling_instructions:
- label: bug
instructions: Issues reporting bugs, errors, crashes, incorrect behavior, or unexpected results. This includes runtime errors, logic errors, broken functionality, regressions, and any deviation from expected or documented behavior.
- label: enhancement
instructions: Feature requests, improvements to existing functionality, performance optimizations, refactoring suggestions, UI/UX enhancements, and any suggestions to make the project better or add new capabilities.
- label: documentation
instructions: Documentation updates, additions, corrections, or clarifications needed. This includes missing docs, outdated information, unclear instructions, API documentation, code examples, README improvements, and any requests for better explanations or guides.
planning:
enabled: true
auto_planning:
enabled: true
labels:
- "plan-me" # Auto-plan issues with this label
- "feature" # Also auto-plan these
- "!no-plan" # Never auto-plan issues with this label

reviews:
profile: assertive # Options: chill (focuses on significant issues, less nitpicky about style), assertive (more thorough, flags style issues and minor improvements too)

auto_review:
# Automatically trigger reviews when PRs are opened or updated
enabled: true
# Skip auto-review if PR title contains these keywords
ignore_title_keywords:
- "WIP"
# Don't auto-review draft PRs
drafts: false
# Only auto-review PRs targeting these branches
base_branches:
- main
- develop

# Include a high-level summary at the start of each review
high_level_summary: true

# Generate sequence diagrams for complex code flows
sequence_diagrams: true

# Include poems in reviews
poem: true

# Show review completion status
review_status: true

# Keep the walkthrough section expanded by default
collapse_walkthrough: false

# Include summary of all changed files
changed_files_summary: true

# Automatically request changes on the PR (just leave comments)
request_changes_workflow: true
Comment on lines +67 to +68
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Misleading comment contradicts the actual behavior.

The inline comment says "(just leave comments)", but request_changes_workflow: true does the opposite — it submits Request Changes reviews that block the PR, then auto-approves once all comments are resolved. Either flip the value to false if you only want non-blocking comments, or fix the comment.

Proposed fix (if intent is to document correctly)
-  # Automatically request changes on the PR (just leave comments)
-  request_changes_workflow: true
+  # Submit "Request Changes" reviews; auto-approve once all comments are resolved
+  request_changes_workflow: true
📝 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.

Suggested change
# Automatically request changes on the PR (just leave comments)
request_changes_workflow: true
# Submit "Request Changes" reviews; auto-approve once all comments are resolved
request_changes_workflow: true
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.coderabbit.yaml around lines 67 - 68, The inline comment is misleading
relative to the setting request_changes_workflow: update the configuration or
the comment so they match: either set request_changes_workflow to false if you
want only non-blocking comments, or keep it true and change the parenthetical
note to explain that it will submit blocking "Request Changes" reviews and will
auto-approve when comments are resolved; modify the line containing
request_changes_workflow to reflect the chosen behavior and update the adjacent
comment text accordingly.


# Pre-merge checks to enforce before merging PRs
pre_merge_checks:
description:
# Validate that PR has a proper description
mode: warning # Options: off, warning, error
docstrings:
# Disable docstring coverage checks (let's assume we don't need them)
mode: off

# Exclude these paths from reviews (build artifacts and dependencies)
path_filters:
- "!**/node_modules/**" # npm dependencies
- "!**/android/**" # Native Android build files
- "!**/ios/**" # Native iOS build files
- "!**/.expo/**" # Expo build cache
- "!**/.expo-shared/**" # Expo shared config
- "!**/dist/**" # Build output

# Use the following tools when reviewing
tools:
shellcheck:
enabled: true
ruff:
enabled: true
markdownlint:
enabled: true
github-checks:
enabled: true
timeout_ms: 90000
languagetool:
enabled: true
enabled_only: false
level: default
biome:
enabled: true
hadolint:
enabled: true
swiftlint:
enabled: true
phpstan:
enabled: true
level: default
golangci-lint:
enabled: true
yamllint:
enabled: true
gitleaks:
enabled: true
checkov:
enabled: true
detekt:
enabled: true
eslint:
enabled: true

# Apply the following labels to PRs
labeling_instructions:
- label: Python Lang
instructions: Apply when the PR/MR contains changes to python source-code
- label: Solidity Lang
instructions: Apply when the PR/MR contains changes to solidity source-code
- label: Typescript Lang
instructions: Apply when the PR/MR contains changes to javascript or typescript source-code
- label: Ergoscript Lang
instructions: Apply when the PR/MR contains changes to ergoscript source-code
- label: Bash Lang
instructions: >-
Apply when the PR/MR contains changes to shell-scripts or BASH code
snippets
- label: Make Lang
instructions: >-
Apply when the PR/MR contains changes to the file `Makefile` or makefile
code snippets
- label: Documentation
instructions: >-
Apply whenever project documentation (namely markdown source-code) is
updated by the PR/MR
- label: Linter
instructions: >-
Apply when the purpose of the PR/MR is related to fixing the feedback
from a linter

# Review instructions that apply to all files
instructions: >-
- Verify that documentation and comments are free of spelling mistakes
- Ensure that test code is automated, comprehensive, and follows testing best practices
- Verify that all critical functionality is covered by tests
- Confirm that the code meets the project's requirements and objectives
- Confirm that copyright years are up-to date whenever a file is changed
- Point out redundant obvious comments that do not add clarity to the code
- Ensure that comments are concise and suggest more concise comment statements if possible
- Discourage usage of verbose comment styles such as NatSpec
- Look for code duplication
- Suggest code completions when:
- seeing a TODO comment
- seeing a FIXME comment
Comment on lines +152 to +165
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# First, let's look at the file structure to understand the repo
echo "=== Repository structure ==="
git ls-files | head -20

echo -e "\n=== Looking for schema definitions or documentation ==="
fd -t f '\.(schema|md|yaml|yml|json)$' | grep -iE '(schema|config|coderabbit|doc)' | head -20

echo -e "\n=== Checking the actual .coderabbit.yaml file ==="
if [ -f ".coderabbit.yaml" ]; then
  wc -l .coderabbit.yaml
  echo "--- File exists, checking around lines 152-165 ---"
  sed -n '145,170p' .coderabbit.yaml
fi

Repository: AOSSIE-Org/OrgExplorer

Length of output: 2036


🏁 Script executed:

#!/bin/bash
# Search for any schema definition or documentation about reviews properties
echo "=== Searching for schema definitions ==="
find . -type f \( -name "*.json" -o -name "*.md" \) | xargs grep -l "additionalProperties" 2>/dev/null | head -10

echo -e "\n=== Searching for examples of reviews configuration ==="
rg -A 5 'reviews\s*:' --type yaml --type md 2>/dev/null | head -40

echo -e "\n=== Searching for path_instructions usage ==="
rg 'path_instructions' --type yaml --type md 2>/dev/null | head -20

Repository: AOSSIE-Org/OrgExplorer

Length of output: 631


🌐 Web query:

CodeRabbit .coderabbit.yaml schema reviews instructions property

💡 Result:

In CodeRabbit’s .coderabbit.yaml (schema: https://coderabbit.ai/integrations/schema.v2.json), there is no top-level reviews.instructions field; instead, “instructions” appears in these reviews properties: [1][2]

  • reviews.high_level_summary_instructions: string (defaults to "") — customizes the high-level summary content/format. [1]
  • reviews.auto_title_instructions: string (defaults to "") — customizes PR title generation. [1]
  • reviews.labeling_instructions: array of objects (defaults to []) where each item has:
    • label: string
    • instructions: string (max length 3000) [1]
  • reviews.path_instructions: array of objects (defaults to []) where each item has:
    • path: string (glob)
    • instructions: string (max length 20000) [1]

Sources: CodeRabbit YAML config (schema URL) [2], CodeRabbit configuration reference (updated 2026-02-11) [1].


reviews.instructions is not a valid configuration key — these review instructions will be silently ignored.

CodeRabbit's schema does not recognize instructions as a direct property under reviews. The valid properties are high_level_summary_instructions, auto_title_instructions, labeling_instructions, and path_instructions. To apply general review instructions across all files, move this configuration to path_instructions with a catch-all glob pattern **:

Proposed fix
-  # Review instructions that apply to all files
-  instructions: >-
-    - Verify that documentation and comments are free of spelling mistakes
-    - Ensure that test code is automated, comprehensive, and follows testing best practices
-    - Verify that all critical functionality is covered by tests
-    - Confirm that the code meets the project's requirements and objectives
-    - Confirm that copyright years are up-to date whenever a file is changed
-    - Point out redundant obvious comments that do not add clarity to the code
-    - Ensure that comments are concise and suggest more concise comment statements if possible
-    - Discourage usage of verbose comment styles such as NatSpec
-    - Look for code duplication
-    - Suggest code completions when:
-        - seeing a TODO comment
-        - seeing a FIXME comment
-
   # Custom review instructions for specific file patterns
   path_instructions:
+    # General instructions for all files
+    - path: "**"
+      instructions: |
+        - Verify that documentation and comments are free of spelling mistakes
+        - Ensure that test code is automated, comprehensive, and follows testing best practices
+        - Verify that all critical functionality is covered by tests
+        - Confirm that the code meets the project's requirements and objectives
+        - Confirm that copyright years are up-to date whenever a file is changed
+        - Point out redundant obvious comments that do not add clarity to the code
+        - Ensure that comments are concise and suggest more concise comment statements if possible
+        - Discourage usage of verbose comment styles such as NatSpec
+        - Look for code duplication
+        - Suggest code completions when:
+            - seeing a TODO comment
+            - seeing a FIXME comment
+
     # TypeScript/JavaScript files
     - path: "**/*.{ts,tsx,js,jsx}"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.coderabbit.yaml around lines 152 - 165, The reviews.instructions key is
invalid and must be moved into reviews.path_instructions using a catch-all glob;
remove or rename reviews.instructions and create reviews.path_instructions with
the glob "**" mapping to the same instruction block so the rules apply across
all files (refer to the reviews.instructions entry in the current
.coderabbit.yaml and replace it with reviews.path_instructions: { "**": <your
instruction list> } while preserving the original instruction text).


# Custom review instructions for specific file patterns
path_instructions:
# TypeScript/JavaScript files
- path: "**/*.{ts,tsx,js,jsx}"
instructions: |
NextJS:
- Ensure that "use client" is being used
- Ensure that only features that allow pure client-side rendering are used
- NextJS best practices (including file structure, API routes, and static generation methods) are used.

TypeScript:
- Avoid 'any', use explicit types
- Prefer 'import type' for type imports
- Review for significant deviations from Google JavaScript style guide. Minor style issues are not a priority
- The code adheres to best practices associated with React
- The code adheres to best practices associated with React PWA
- The code adheres to best practices associated with SPA
- The code adheres to best practices recommended by lighthouse or similar tools for performance
- The code adheres to best practices associated with Node.js
- The code adheres to best practices recommended for performance

Security:
- No exposed API keys or sensitive data
- Use expo-secure-store for sensitive storage
- Validate deep linking configurations
- Check for common security vulnerabilities such as:
- SQL Injection
- XSS (Cross-Site Scripting)
- CSRF (Cross-Site Request Forgery)
- Insecure dependencies
- Sensitive data exposure
Comment on lines +170 to +197
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Contradictory NextJS guidance — enforcing "use client" everywhere undermines server components.

Lines 173–174 instruct the reviewer to ensure "use client" is always used and that only pure client-side rendering features are used. This contradicts Next.js App Router best practices, where server components are the default and preferred for performance. Blanket "use client" guidance will produce false-positive review comments on every server component.

Additionally, this block mixes Expo/React Native concerns (Line 190: expo-secure-store, Line 191: deep linking) with Next.js web concerns, which are distinct platforms. Consider splitting these into separate path-instruction entries or clarifying the project's actual stack.

Suggested revision for the NextJS section
         NextJS:
-        - Ensure that "use client" is being used
-        - Ensure that only features that allow pure client-side rendering are used
-        - NextJS best practices (including file structure, API routes, and static generation methods) are used.
+        - Ensure "use client" is only added to components that require client-side interactivity (e.g., hooks, event handlers, browser APIs).
+        - Prefer server components where possible for better performance.
+        - Follow NextJS best practices (file structure, API routes, static generation methods).
📝 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.

Suggested change
- path: "**/*.{ts,tsx,js,jsx}"
instructions: |
NextJS:
- Ensure that "use client" is being used
- Ensure that only features that allow pure client-side rendering are used
- NextJS best practices (including file structure, API routes, and static generation methods) are used.
TypeScript:
- Avoid 'any', use explicit types
- Prefer 'import type' for type imports
- Review for significant deviations from Google JavaScript style guide. Minor style issues are not a priority
- The code adheres to best practices associated with React
- The code adheres to best practices associated with React PWA
- The code adheres to best practices associated with SPA
- The code adheres to best practices recommended by lighthouse or similar tools for performance
- The code adheres to best practices associated with Node.js
- The code adheres to best practices recommended for performance
Security:
- No exposed API keys or sensitive data
- Use expo-secure-store for sensitive storage
- Validate deep linking configurations
- Check for common security vulnerabilities such as:
- SQL Injection
- XSS (Cross-Site Scripting)
- CSRF (Cross-Site Request Forgery)
- Insecure dependencies
- Sensitive data exposure
- path: "**/*.{ts,tsx,js,jsx}"
instructions: |
NextJS:
- Ensure "use client" is only added to components that require client-side interactivity (e.g., hooks, event handlers, browser APIs).
- Prefer server components where possible for better performance.
- Follow NextJS best practices (file structure, API routes, static generation methods).
TypeScript:
- Avoid 'any', use explicit types
- Prefer 'import type' for type imports
- Review for significant deviations from Google JavaScript style guide. Minor style issues are not a priority
- The code adheres to best practices associated with React
- The code adheres to best practices associated with React PWA
- The code adheres to best practices associated with SPA
- The code adheres to best practices recommended by lighthouse or similar tools for performance
- The code adheres to best practices associated with Node.js
- The code adheres to best practices recommended for performance
Security:
- No exposed API keys or sensitive data
- Use expo-secure-store for sensitive storage
- Validate deep linking configurations
- Check for common security vulnerabilities such as:
- SQL Injection
- XSS (Cross-Site Scripting)
- CSRF (Cross-Site Request Forgery)
- Insecure dependencies
- Sensitive data exposure
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.coderabbit.yaml around lines 170 - 197, The NextJS guidance block currently
enforces "Ensure that \"use client\" is being used" and "only features that
allow pure client-side rendering are used" which conflicts with Next.js App
Router defaults; update the NextJS instructions (the NextJS bullet under the
path "**/*.{ts,tsx,js,jsx}") to recommend preferring server components by
default and only using "use client" when component requires client-only features
(state, effects, browser APIs); also split or remove Expo/React Native specific
security items (the Security bullets referencing "expo-secure-store" and
"Validate deep linking configurations") from this path and instead create
separate path-instruction entries for React Native/Expo files (e.g., matching
mobile-specific file patterns) or clearly mark platform-specific guidance so web
Next.js reviews do not get mobile-specific checks.


Internationalization:
- User-visible strings should be externalized to resource files (i18n)

# HTML files
- path: "**/*.html"
instructions: |
Review the HTML code against the google html style guide and point out any mismatches. Ensure that:
- The code adheres to best practices recommended by lighthouse or similar tools for performance

# CSS files
- path: "**/*.css"
instructions: |
Review the CSS code against the google css style guide and point out any mismatches. Ensure that:
- The code adheres to best practices associated with CSS.
- The code adheres to best practices recommended by lighthouse or similar tools for performance.
- The code adheres to similar naming conventions for classes, ids.

# Python files
- path: "**/*.{py}"
instructions: |
Python:
- Check for major PEP 8 violations and Python best practices.

# Solidity Smart Contract files
- path: "**/*.sol"
instructions: |
Solidity:
- Review the Solidity contracts for security vulnerabilities and adherence to best practices.
- Ensure immutability is used appropriately (e.g., `immutable` and `constant` where applicable).
- Ensure there are no unbounded loops that could lead to gas exhaustion.
- Verify correct and explicit visibility modifiers for all state variables and functions.
- Flag variables that are declared but used only once or are unnecessary.
- Identify potential gas optimization opportunities without compromising readability or security.
- Verify that any modification to contract logic includes corresponding updates to automated tests.
- Ensure failure paths and revert scenarios are explicitly handled and validated.
- Validate proper access control enforcement (e.g., Ownable, RBAC, role checks).
- Ensure consistent and correct event emission for all state-changing operations.
- Confirm architectural consistency with existing contracts (no unintended storage layout changes unless clearly documented).
- Flag major feature additions or architectural changes that were implemented without prior design discussion (if applicable).
- Flag pull requests that mix unrelated changes or multiple concerns in a single submission.
- Ensure security-sensitive logic changes are not introduced without adequate test coverage.
- Review for common smart contract vulnerabilities, including but not limited to:
- Reentrancy
- Improper input validation
- Access control bypass
- Integer overflows/underflows (if using unchecked blocks)
- Front-running risks where applicable


# Javascript/Typescript test files
- path: "**/*.test.{ts,tsx,js,jsx}"
instructions: |
Review test files for:
- Comprehensive coverage of component behavior
- Proper use of @testing-library/react-native
- Async behavior is properly tested
- Accessibility testing is included
- Test descriptions are sufficiently detailed to clarify the purpose of each test
- The tests are not tautological

# Solidity test files
- path: "**/*.test.{sol}"
instructions: |
Review test files for:
- Comprehensive coverage of contract behavior.
- Coverage of success paths, edge cases, and failure/revert scenarios.
- Proper validation of access control restrictions.
- Verification of event emissions where applicable.
- Explicit validation of state changes after each relevant function call.
- Adequate test updates whenever contract logic is modified.
- Deterministic behavior (tests should not rely on implicit execution order or shared mutable state).
- Clear and descriptive test names that reflect the intended behavior being validated.


# Asset files (images, fonts, etc.)
- path: "assets/**/*"
instructions: |
Review asset files for:
- Image optimization (appropriate size and format)
- Proper @2x and @3x variants for different screen densities
- SVG assets are optimized
- Font files are licensed and optimized
Loading