Conversation
The review charter and load-run skill were framed entirely around a web
"server", so a workflow declaring no serve recipe made the reviewer
narrate a justification for the absent server ("no server came up, by
design...") instead of just presenting the diff. Shelbi reviews web,
desktop, and mobile apps; the review workspace is about bringing up
whatever the workflow declares.
Guiding principle: if the workflow doesn't say how to bring something up,
the reviewer brings nothing up and says nothing about it — it presents
the diff and hands off.
Changes:
- default_review.md.template + load_run_detection.SKILL.md: medium-neutral
"review recipe" vocabulary throughout; dropped "serve recipe" /
"diff-only" / "framework default port" / "port 3000" framing. No-recipe
branch now brings nothing up and narrates nothing (removed the "say so
in your summary" and "why no server came up" instructions). Guard
against launching an undeclared app is kept, reframed medium-neutrally.
- workspace.rs: renamed the injected dispatch-prompt section header
`## Review serve recipe` -> `## Review recipe` so prose and injection
stay in sync. This is prompt text only; the workflow `review:` YAML
schema key is unchanged (it already supports non-web mediums via its
optional url/ready fields).
- config_upgrade.rs: added a NeedsJudgment sniffer over the review agent's
instructions + load-run skill surfaces that detects the legacy
server-centric wording ("serve recipe" / "diff-only" / "why no server
came up") and hands the orchestrator a finding to repair its own copy.
Classified NeedsJudgment (not AutoHeal) because these are prose a project
may have forked and customized, so a mechanical rewrite risks local
edits. Existing projects self-heal on next boot.
- Updated the pinned charter/skill test assertions and added no-recipe /
medium-neutral coverage; new sniffer tests assert legacy->NeedsJudgment,
new wording->clean, and the shipped defaults->clean.
Decision not asked about: kept every internal Rust "diff-only" / "serve
recipe" identifier and the site docs describing the `review:` config
mechanism as-is, per the scope decision to change reviewer prose/behavior
only and leave the workflow schema untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
jlong
deleted the
jlong/review-make-the-default-reviewer-medium-agnostic-bring-something-up-only-if-the-workflow-declares-how-else-do-nothing-silently
branch
August 16, 2026 21:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task
The default reviewer instructions are framed entirely around a web "server", so when a workflow declares no serve recipe the review agent narrates a justification for the absent server ("No server came up, by design — 1. no serve recipe... 2. native macOS app...") instead of just presenting the diff. Shelbi reviews web, desktop, AND mobile apps; the review workspace is about bringing up whatever the user wants to review, not a server specifically. Guiding principle (user, 2026-08-16): if the workflow does not specify how to bring something up, the reviewer does nothing and does not mention it — it presents the diff and hands off.
Scope decision (user, 2026-08-16): Behavior + prose only. Generalize the vocabulary and behavior in the reviewer prose; keep the existing workflow
review:recipe mechanism and schema unchanged (it already supports an optional URL / ready-probe, so it works for non-server mediums). Do NOT rename the workflow schema field. Pair with a config-upgrade sniffer so existing projects self-heal.Current Behavior
crates/shelbi-state/src/default_review.md.template:## Review serve recipesection, warns aboutframework default port/port 3000.Observed 2026-08-16 in the
contextstoreproject's review pane (taskrust-rewrite): the agent produced a two-reason explanation of why no server came up, inferred the app is native macOS AppKit, etc. — all noise for a project that simply declares no recipe.Expected Behavior
Medium-agnostic reviewer:
Technical Details / Deliverables
crates/shelbi-state/src/default_review.md.template:## Review serve recipesection that the dispatch-prompt builder injects (seeagent_workspaces.rs/workflow.rs). If the template's section name is generalized (e.g.## Review recipe), rename the injected header to match so prose and injection stay in sync. This is prompt text only — the workflow YAML schema key stays unchanged.crates/shelbi-state/src/skills/load_run_detection.SKILL.md(currently "Running the review serve recipe" / diff-only framing).crates/shelbi-state/src/agent_workspaces.rsthat pinDEFAULT_REVIEW_INSTRUCTIONS.contains("Review serve recipe")/"diff-only"andDEFAULT_REVIEW_LOAD_RUN_SKILL.contains("Review serve recipe")to the new wording; add a test asserting the no-recipe path instructs bringing nothing up with no server narration.NeedsJudgment) incrates/shelbi-cli/src/commands/config_upgrade.rsover the review agent's instructions surface (project.<name>.agent.<agent>.instructions, and the review skill surface if enumerated inconfig_surfaces.rs): detect the old server-centric reviewer wording (e.g. "why no server came up" / "serve recipe" diff-only framing) and hand the orchestrator a boot finding to repair its own copy. Existing projects (contextstore included) self-heal on next boot. (See the AGENTS.md "Changing shipped defaults" guardrail — a default change without a sniffer doesn't reach existing installs.)Acceptance Criteria
NeedsJudgmentconfig-upgrade finding on hub start / reload; a project already on the new wording produces none.cargo build/test/clippygreen; updated + new tests inagent_workspaces.rspass.Auto-opened by Shelbi — review at: /Users/jlong/.shelbi/projects/shelbi/tasks/review-make-the-default-reviewer-medium-agnostic-bring-something-up-only-if-the-workflow-declares-how-else-do-nothing-silently.md