--- name: code-review description: Generic code review that auto-detects tech stack and delegates to appropriate framework-specific orchestrator argument-hint: "[PR #/URL | --staged | --branch | files...]" allowed-tools: Bash Read Grep Glob Task --- # Code Review Generic code review command that detects your project's tech stack and delegates to the appropriate framework-specific review orchestrator. ## Config ``` TECH_STACK = config_read("tech_stack", "generic") ``` ```bash DEFAULT_BRANCH=$(git remote show origin | grep 'HEAD branch' | awk '{print $NF}') ``` ## Arguments $ARGUMENTS **Scope modes:** - `#123` or GitHub URL → PR changes - (no args) → unstaged changes (working directory) - `--staged` → staged changes only - `--branch` → current branch vs default branch - `path/to/file ...` → specific files ## Step 1: Detect Tech Stack Use "Tech stack" from Context above. If empty, auto-detect from project files: ### Auto-Detection Fallback If not configured in `.agents.yml`, detect from project files: | Detection | Tech Stack | |-----------|------------| | `Gemfile` exists | `rails` | | `pyproject.toml` or `requirements.txt` exists | `python` | | `package.json` exists (no Gemfile) | `javascript` | | None of the above | `generic` | ```bash # Detection commands [ -f Gemfile ] && echo "rails" [ -f pyproject.toml ] || [ -f requirements.txt ] && echo "python" [ -f package.json ] && echo "javascript" ``` ## Step 2: Gather Changed Files Based on scope from arguments: ```bash # Default (unstaged changes) git diff --name-only --diff-filter=d # Staged mode git diff --cached --name-only --diff-filter=d # Branch mode (use "Default branch" from Context) git diff ...HEAD --name-only --diff-filter=d # PR mode gh pr diff --name-only ``` ## Step 3: Delegate to Framework Orchestrator Based on detected tech stack, invoke the appropriate orchestrator agent via Task tool: ### Rails Projects ``` Task: majestic-rails:review/code-review-orchestrator Prompt: "Review these Rails files. Scope: [scope mode] Changed files: [file list]" ``` ### Python Projects ``` Task: majestic-python:review/code-review-orchestrator Prompt: "Review these Python files. Scope: [scope mode] Changed files: [file list]" ``` ### JavaScript Projects (Not Yet Supported) ```markdown **Tech Stack:** JavaScript JavaScript code review orchestrator is not yet available. For now, you can run the generic simplicity reviewer: `Task(subagent_type: "simplicity-reviewer") [files]` Or configure `tech_stack: generic` in AGENTS.md to use generic reviewers. ``` ### Generic Projects For unknown or generic tech stacks, run minimal reviewers directly: 1. Load project topics (if configured) 2. **Run both reviewers in parallel:** 3. Synthesize output ``` # Run these tasks in parallel: Task 1: majestic-engineer:review/simplicity-reviewer Prompt: "Review these files for YAGNI violations, unnecessary complexity: [file list]" ``` ## Step 4: Report Results The orchestrator will return a synthesized report. Present it to the user with: 1. **Status** - BLOCKED / NEEDS CHANGES / APPROVED 2. **Summary** - Key findings by severity (P1/P2/P3) 3. **Details** - Full agent reports in collapsible sections ## Tech Stack Configuration To explicitly set your tech stack (recommended for multi-language projects), add to `AGENTS.md`: ```markdown ## Project Configuration tech_stack: rails # rails | python | javascript | generic ``` ## Examples ```bash # Review unstaged changes (auto-detect tech stack) Skill("code-review") # Review staged changes Skill("code-review") --staged # Review current branch vs main Skill("code-review") --branch # Review a PR Skill("code-review") #123 # Review specific files Skill("code-review") app/models/user.rb app/controllers/users_controller.rb ```