Repository navigation
feat(vibe): Encode review lessons from the first two vibe feature PRs - #305
Merged
Merged
Conversation
- Guardrails reviewer gains concrete checks with evidence: main-sync capability removal on every merge, flag retirement against a recorded hold, leftovers after an extraction, slots without a shared owner, private copies, host key literals, casts, Version History, prose in compile-only repairs, lost and stale story IDs, and checks nobody asked for. - Adversarial reviewer checks acceptance criteria per surface, selection accounting, host-capability gates and their web and Desktop parity, and per-row enum parsing. - Storybook decomposer, change and verify workers carry the matching build rules: one Version History entry, story states on the consumed component, paging-helper fixtures, test lanes, oracles and lineage, the sort-order test, containerized e2e and the CI tier doc. - Nothing agent-written goes into public docs: the docs-draft exception is retired and the inventory reports any docs change in every phase. - PR body files are named per ticket and read back before gh. - Seven review-lessons eval cases for Claude and Codex, and a contract test file for the rules. Testing: vibe pytest (291 pass), inventory node tests (21 pass), Claude evals 7 of 7 Risks: Longer handoff reviews
- Keep both eval paragraphs in the README and count both sets of cases in the Codex runner test and README. - Point unspecified selection handling at "Precedent before asking". - An outdated plugin's version question comes first, alone; the new session's endings line goes in the first reply after the answer. - Release vibe 1.0.54. Testing: vibe pytest (303 pass), full pytest (2367 pass), ruff, pyright, node suites, manifest tests; Claude and Codex evals on the new cases Risks: None identified
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.
Purpose
Operator ruling, 2026-10-16: encode the mistakes found reviewing the first two vibe feature pull requests in symphony-alpha (#8885 grouped list sections, #8886 bulk add tag), from both builders' own reports and both independent reviews. Every lesson lands in the agent or reference section that owns the behavior. Where a rule already existed and was not followed, the owner now runs a concrete check and quotes its evidence instead of restating the rule.
What changed
agents/vibe-guardrails-reviewer.md). Check 1 grepspackages/app/shared(shared/authincluded) and existinguse-*hooks before a new hook or inline query. Check 4 blocks retyped wording a shared helper renders, and any docs change. Check 7 blocks casts (stories included) and host key literals. Check 8 adds slot-without-owner (the ISS-12137 selection red flag), private copies, and a leftovers sweep over every deleted, renamed or extracted file. Check 9 blocks unasked gates and widened shared test helpers, tests named after deleted modules, and production-code oracles. Check 10 reads compile-only repairs word by word, allows one Version History entry at the next version with no duplicate-key special case, blocks whole-page Composites, and blocks lost story IDs and stale references to them. New check 13: capability removal on every main-sync merge. New check 14: flag retirement reads the linked tickets' comments, and a recorded hold is a blocking engineering decision.rghits and Version History entries.dagger call e-2-e, and.github/pr-test-event-tiers.mdbefore any CI claim. Handoff step 7 runs check 13 on its own main sync.quality-loop.md: each acceptance criterion has aSurfaces:line and is met only per surface.handoff-inventory.mjsreports any docs change as outside the allowed paths in every phase, and the ticket's Feature docs line only lists pages for a human to update.gh pr create/edit(environment worker, seed PR worker, cl-execute).Commands run
uv run pytest plugins/: 2367 passed, 3 skipped.uv run ruff check .anduv run pyright: clean.node --testover every plugin test file: 412 tests; one cl-sweep black-box test hit an EPIPE while evals ran in parallel and passes alone on this branch and on main.tools/plugin-manifests: typecheck and 6 tests pass.test_vibe_review_lessons_contract.py: 18 cases, 17 fail on 1.0.53. The inventory docs test fails on 1.0.53.--tag review-lessons --tag version-check: Claude Sonnet 12 of 12; Codex runner 9 of 9 on the new and version cases. On 1.0.53 the docs case fails on both harnesses; the other six review cases also pass there because the prompt hands the reviewer the evidence the new checks collect.