Quality
Review completed cook work. Emit a stage_message event with your assessment. See references/stage-message-schema.md for the event schema.
Operate fully autonomously. Never ask the user.
Step 0 -- Load Principles
Read brain/principles.md and follow every [[wikilink]] . These govern the review. Do NOT skip this.
Assessment Pipeline
Run in order. Stop early and reject on any high-severity finding.
- Scope Check
-
Read the plan phase the cook was assigned (from the cook's initial prompt or mise context).
-
Run git diff --stat and git log --oneline for the cook's commits.
-
Flag files changed outside the plan phase's stated scope as scope violations.
- Code Quality
-
go vet ./... and go test ./... must pass.
-
Run sh scripts/lint-arch.sh if it exists.
-
Check error handling follows project conventions (failure-state messages, not expectation messages).
- Principle Compliance
-
For each changed file, check against loaded principles.
-
Common violations: bolted-on changes instead of redesign (redesign-from-first-principles), missing verification (prove-it-works), unnecessarily added complexity (subtract-before-you-add).
- Test Evidence
-
New behavior must have new tests.
-
Tests must assert outcomes, not implementation details.
-
Check coverage of edge cases mentioned in the plan phase.
- Runtime Verification
-
If the plan phase specifies runtime checks, verify they were performed.
-
"It compiles" is not verification.
Verdict
Emit a stage_message event with your assessment:
noodle event emit --session $NOODLE_SESSION_ID stage_message --payload '<json>'
Accept: Emit with blocking: false . The pipeline continues and the scheduler sees the green light.
{ "message": "All checks pass. Tests green, scope clean.", "blocking": false }
Reject: Emit with blocking: true (or omit blocking ). The scheduler reads findings and decides (retry, add oops stage, or abort).
{ "message": "Rejected: 3 high issues. [1] Missing test for edge case in handleCompletion. [2] Scope violation: modified cook_merge.go outside plan phase scope. [3] Error message uses expectation form.", "blocking": true }
Write the message as natural language the scheduler can act on. Include specific file paths, line context, and principle violations so the scheduler can brief the retry cook.
Non-blocking Issues
Issues that don't warrant rejection (style nits, minor improvements, documentation gaps): file as backlog items via the backlog adapter.
Principles
-
[[prove-it-works]]
-
[[outcome-oriented-execution]]