@oprdev/pi-roast-mode
v0.1.5
Published
Pi extension that adds a read-only /roast collaboration mode.
Maintainers
Readme
🔥 pi-roast-mode — Read-only Roast for Pi
@oprdev/pi-roast-mode adds a read-only /roast collaboration mode to Pi. Roast mode questions, criticizes, and ranks the real flaws in a codebase — from the repository, with evidence — and produces an actionable hit list before any code mutation happens.
✨ Features
- Adds a state-aware
/roastlaunch and management menu, plus/roast startfor direct activation. - Adds
--roastto start a session in Roast mode. - Enables built-in read-only tools by default while Roast mode is active.
- Disables extension and custom tools by default, with persistent pre-start Settings and a staged
/roast toolscompatibility shortcut for explicit user-risk opt-in. - Blocks
update_plan, mutating built-in tools, and unsafebashforms such as writes, substitutions, background jobs, dependency installs, and mutating Git commands. - Injects Roast mode instructions: ground every finding in evidence, rank by impact, propose the minimal concrete fix, and never pad a roast.
- Adds required
roast_mode_questionandroast_mode_completetools for structured questions and a decision-complete roast. - Presents the complete roast and lets you act on it, start a fresh linked session carrying only the approved roast, or export, save, stay, or discard.
- Exports ready, saved, or active roast outcomes with
/roast export [path]. - Shows Roast mode state in Pi's statusline as
roast active,roast ready,roast saved, orroast acting. - Persists Roast mode, one session-local saved outcome, and active follow-up state so resume and compaction retain the exact accepted roast.
📦 Install
pi install npm:@oprdev/pi-roast-modeTry without installing permanently:
pi -e npm:@oprdev/pi-roast-modeTry this package locally from the repository root:
pi -e ./package.json🚀 Usage
/roast
/roast start
/roast <prompt>
/roast tools
/roast show
/roast finish
/roast implement
/roast save
/roast export [path]
/roast exitIn TUI and RPC, use bare /roast to open the menu for the current Roast state. When Roast mode is off and no roast is stored, the launch menu shows the effective next-start tools and offers Start Roast mode, Choose tools, then start…, Settings, and How Roast mode works. Settings edits the persistent defaults for later workflows.
Use /roast start to enter Roast mode directly without sending a model message. Use /roast <prompt> to enter Roast mode and immediately submit <prompt> as the first Roast user message. /roast show displays the stored roast without starting a model turn. /roast finish asks the agent to complete the roast or ask one remaining material question; /roast save stores a completed roast for later and leaves Roast mode; /roast export [path] writes it to Markdown.
When Roast mode is active, the agent reads the files, runs read-only checks, and produces a ranked, evidence-backed roast. It does not edit files or implement a fix.
⚙️ Settings
Open Settings from an inactive /roast menu to edit the flat group of workflow choices: Roast style, Roast scope, Roast thinking, Roast tools, After Implement, Export destination, and Roast mode shortcut. The manual settings file is $PI_CODING_AGENT_DIR/pi-roast-mode.json.
Roast scope sets the review surface. codebase roasts everything; diff restricts the review to the current changes (git diff plus git diff --staged). In diff scope every finding cites the exact changed lines, and pre-existing code is only read for context, never roasted.
Roast style sets the tone and depth of the roast. All styles propose fixes; only the strictness and wording differ. Every reply also opens with an acknowledgment phrase (e.g. "Good catch!" or "Absolutely.") regardless of style:
| Style | Tone |
|---|---|
| 🦆 soft | Gentle, constructive, educational — every finding is a teaching moment |
| 🧑💻 mid | Experienced, practical, direct — the milder option |
| 🔥 hard | Deep, uncompromising — the new default. Knife-edged: professional enough to trust, sharp enough to remember |
| 🗿 linus | Ruthless, no mercy — brutal but evidence-backed, and the question phrasing bites too. Questions are mandatory before completing: you always get a say on the highest-impact findings |
{
"thinkingLevel": "inherit",
"roastStyle": "hard",
"roastScope": "codebase",
"defaultRoastTools": ["read", "bash", "grep", "find", "ls"],
"implementationRoastRetention": "keep",
"defaultRoastExportPath": "ROAST.md"
}🗂️ Package layout
packages/pi-roast-mode/
├── src/
│ ├── index.ts # Pi package entrypoint
│ ├── roast-mode.ts # Extension registration, mode state, and UI loading boundary
│ └── *.ts # Prompt, policy, question, message, and menu modules
├── README.md
├── LICENSE
├── tsconfig.json
└── package.json🔎 Keywords
Pi extension, Pi coding agent, roast, code review, evidence-based critique, actionable findings.
🙏 Acknowledgments
This project builds on pi-extensions, the collection of Pi extensions that served as the base and inspiration for this work. Thank you for the solid foundation.
📄 License
MIT. See LICENSE.
