Replaces half of #4384 (pull #4495 went three review rounds; its branch has a working version to start from).
Done:
[ ] Each row on /review carries one line: "The crew advises: <verdict> — <reason>" from the latest crew recommendation on that ask, or "The crew has not advised yet" when none exists. Text is escaped.
[ ] §5 components only; bun scripts/design-lint.ts is clean.
[ ] test/review-page.test.ts seeds one ask with a recommendation and one without and asserts both lines; it fails without the change.
[ ] README.md's Review paragraph (about line 451) describes a row as it now is: title, repository, age, why, and the crew's advice. /asks is unchanged.
Files: src/web/studio/review_page.ts, test/review-page.test.ts, README.md.
Risk: keep the page a single pass over the asks; no extra query per row.
Replaces half of #4384 (pull #4495 went three review rounds; its branch has a working version to start from).
Done:
/reviewcarries one line: "The crew advises: <verdict> — <reason>" from the latest crew recommendation on that ask, or "The crew has not advised yet" when none exists. Text is escaped.bun scripts/design-lint.tsis clean.test/review-page.test.tsseeds one ask with a recommendation and one without and asserts both lines; it fails without the change./asksis unchanged.Files: src/web/studio/review_page.ts, test/review-page.test.ts, README.md. Risk: keep the page a single pass over the asks; no extra query per row.