Skip to content

[review companion] feat(omp): add native Oh My Pi (OMP) extension - #1

Open
andrebrait wants to merge 1 commit into
review/2390-basefrom
feat/omp-extension
Open

andrebrait wants to merge 1 commit into
review/2390-basefrom
feat/omp-extension

Conversation

@andrebrait

@andrebrait andrebrait commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Review-only companion for obra#2390 (obra#2390). Same head (feat/omp-extension @ 6194c2e) against the same upstream base (obra/superpowers dev @ c5cc551), so the diff is identical. Do not merge; findings are applied to the upstream PR.

@coderabbitai review

Summary by CodeRabbit

  • New Features
    • Added Oh My Pi support that provides the using-superpowers guidance on each model request, including after compaction or branch summaries, with mappings for the task and todo tools.
  • Documentation
    • Added Oh My Pi installation instructions and a reference integration guide, including options for installing the plugin or linking a local checkout.

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: a1d78062-6d48-4d39-814c-78804dc1ba96

📥 Commits

Reviewing files that changed from the base of the PR and between c5cc551 and 6194c2e.

📒 Files selected for processing (5)
  • .omp/extensions/superpowers.ts
  • README.md
  • docs/porting-to-a-new-harness.md
  • package.json
  • tests/omp/test-omp-extension.mjs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Adds an Oh My Pi extension that loads the bundled using-superpowers skill before agent runs and injects it into agent context. Adds package configuration, installation and porting documentation, and tests for injection, refresh, failures, and session changes.

Changes

Oh My Pi integration

Layer / File(s) Summary
Register OMP and format the bootstrap
.omp/extensions/superpowers.ts, package.json, README.md, docs/porting-to-a-new-harness.md
Registers the OMP extension, resolves and formats the bundled skill with OMP tool mappings, and documents OMP setup and behavior.
Load and inject the bootstrap
.omp/extensions/superpowers.ts, tests/omp/test-omp-extension.mjs
Loads the skill before agent runs, clears cached bootstrap data on session lifecycle events, discards stale reads, and injects a marked user message after leading summaries. Tests cover injection, refresh, load failures, quoted text, and session changes.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant OMP
  participant superpowersOmpExtension
  participant SkillFile as using-superpowers/SKILL.md
  participant AgentContext
  OMP->>superpowersOmpExtension: before_agent_start
  superpowersOmpExtension->>SkillFile: read skill
  SkillFile-->>superpowersOmpExtension: skill text
  OMP->>superpowersOmpExtension: provide agent context
  superpowersOmpExtension->>AgentContext: insert marked bootstrap after leading summaries
Loading

Suggested reviewers: obra

Merge Risk: ⚪ Minimal · up to 6194c

No concrete merge-blocking risk was identified in the OMP integration. Normal checks remain appropriate.

Security Architecture Review

Security architecture risk: 🟡 Moderate · up to 6194c

The new integration repeatedly supplies skill instructions to OMP agents. Its session-reset safeguards are substantial, but the review could not establish who may attach the message marker used to remove prior instructions or what permissions OMP applies to tools.

Retained concerns

  • Medium · security · inferred: The context hook removes any message carrying its boolean bootstrap marker, without verifying that this extension created it. If another message producer can set that property, a legitimate message could be silently omitted from a provider request. Runtime metadata ownership, and thus attacker reachability, remain unverified.
Security review details

Security Blast Radius

  • inferred — Exposure is bounded to OMP sessions that load the installed or linked package, but within those sessions the bootstrap reaches every provider request handled by this extension. No cross-service access is established.

Security Findings and Attack Paths

  • inferred — A producer able to place superpowersBootstrap: true on an otherwise legitimate context message could cause its removal. Quoting the bootstrap text alone does not do so; whether less-trusted producers can set message properties in OMP is not established.

Trust Boundaries and Controls

  • observed — The extension transfers installed-package skill content into model context and names OMP tools in its instructions. It reads a fixed path, rejects an empty body, and prevents stale asynchronous reads from committing; host-side authorization for subsequent tool calls is not shown.

Resilience and Maintainability Implications

  • observed — Session lifecycle resets and generation checks limit stale bootstrap reuse, while failures clear the cached value and can recover on a later run. The cached state is extension-instance-wide; the runtime's concurrent-session contract is unavailable.

Hardening Proposals

  • proposed — Establish OMP's message-metadata ownership contract before relying on the boolean marker to remove messages; if other producers can set it, use an ownership mechanism that cannot discard their messages.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 2 files. (3 skipped: 3… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: adding a native Oh My Pi extension. It is concise and specific.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 2 files. (3 skipped: 3 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

@andrebrait

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant