kiro-review
Boundary terminology continuity:
- discovery identifies
Boundary Candidates
- design fixes
Boundary Commitments
- tasks constrain execution with
_Boundary:_
- review rejects concrete
Boundary Violations
- After an implementer reports
READY_FOR_REVIEW
- After remediation for a rejected review
- Before marking a task
[x]
- Before accepting a task into feature-level validation
Do not use this skill to invent missing requirements or silently reinterpret the spec.
Inputs
Provide:
- Task ID and exact task text from
tasks.md
- Relevant requirement section numbers
- Relevant design section numbers
- Spec file paths (
requirements.md, design.md, optionally tasks.md)
- The implementer's status report
- The task
_Boundary:_ scope constraints
- Validation commands discovered by the controller
- Relevant steering excerpts when applicable
- Relevant
## Implementation Notes entries when applicable
Outputs
Return one of:
Also return:
- Mechanical results
- Findings with severity
- Required remediation
- One-sentence summary
Use the language specified in spec.json.
First Action
Run git diff to inspect the actual code changes. If the diff is large or ambiguous, read the changed files directly. Do not trust the implementer report as source of truth.
Core Principle
Read the spec yourself. Read the diff yourself. Verify mechanically where possible. Reject on concrete failures rather than interpretive optimism.
The main review question is not just "does it work?" but "does it stay inside the approved responsibility boundary without hiding new coupling?"
Mechanical Checks
Run these checks and use the result as primary signal.
1. Regression Safety
- Run the project's canonical test suite using the validation commands discovered by the controller.
- If tests fail, reject.
2. No Residual Placeholder Markers
- Check changed files for
TBD, TODO, FIXME, HACK, XXX.
- Reject if new placeholder markers were introduced without explicit task justification.
3. No Hardcoded Secrets
- Check changed files for hardcoded secrets or credentials.
- Reject if concrete secret patterns are introduced.
4. Boundary Respect
- Compare changed files against the task
_Boundary:_ scope.
- Reject if the change spills outside the approved boundary without explicit justification.
- Reject if the implementation introduces hidden cross-boundary coordination inside what should be a local task.
5. RED Phase Evidence
- For behavioral tasks, verify that the implementer status report includes
RED_PHASE_OUTPUT.
- Reject if RED evidence is missing, empty, or unrelated to the task's acceptance criteria.
6. Runtime-Sensitive Static Checks
- If the project already has lint or equivalent static analysis for the touched stack, run the relevant command for the task boundary.
- Pay attention to patterns that can survive typecheck/build yet fail at runtime: type-only imports used as values, missing namespace value imports for qualified-name access, unresolved globals, and newly introduced runtime-sensitive dependencies without matching boot/runtime handling.
- If no project lint command exists, perform a targeted diff-based spot check in the changed files for those patterns.
- Reject on concrete findings that create a realistic boot-time or module-load failure.
Judgment Checks
7. Reality Check
- Confirm the implementation is real production code, not a placeholder, stub, fake path, or deferred-work shell.
8. Acceptance Criteria Coverage
- Read the task description and confirm all aspects are implemented, not only the primary happy path.
9. Requirements Alignment
- Read the referenced sections in
requirements.md.
- Confirm each requirement is satisfied by concrete observable behavior.
- Use original section numbers only.
10. Design Alignment
- Read the referenced sections in
design.md.
- Confirm the implementation uses the prescribed structures, interfaces, and dependency direction.
- Reject silent substitutions for design-mandated choices.
10.5 Boundary Audit
- Compare the implementation against the design's boundary commitments and out-of-boundary statements.
- Reject if downstream-specific behavior is pushed into an upstream boundary for convenience.
- Reject if the implementation creates new hidden dependencies, shared ownership, or undeclared coupling across adjacent boundaries.
- Reject if a task that is not an explicit integration task now behaves like one.
11. Test Quality
- Confirm tests prove the required behavior rather than only scaffolding.
- Confirm tests would fail if the implementation were removed or broken.
12. Error Handling
- Confirm relevant failure paths are handled and not silently swallowed.
Severity Model
Use:
Critical for broken functionality, invalid verification, data loss, security risk, or major scope violation
Important for required fixes before acceptance
Suggestion for non-blocking improvements
FYI for informational notes
Stop / Escalate
Escalate instead of papering over the issue when:
- The approved spec is ambiguous in a correctness-critical way
- The design conflicts with what is technically possible
- Required evidence cannot be gathered
- The implementation only works by silently deviating from approved scope
- Boundary ownership cannot be determined cleanly from requirements, design, and task scope
Common Rationalizations
| Rationalization |
Reality |
| “Tests pass, so approve” |
Passing tests do not prove spec compliance or boundary respect. |
| “The extra behavior is useful” |
Extra behavior outside approved scope is still drift. |
| “The implementer said RED was done” |
RED must be evidenced, not asserted. |
| “This gap is small enough to let through” |
Real gaps must be rejected or escalated. |
Output Format
## Review Verdict
- VERDICT: APPROVED | REJECTED
- TASK: <task-id>
- MECHANICAL_RESULTS:
- Tests: PASS | FAIL (command and exit code)
- TBD/TODO grep: CLEAN | <count> matches
- Secrets grep: CLEAN | <count> matches
- Static checks: PASS | FAIL | SPOT_CHECKED
- Boundary: WITHIN | <files outside boundary>
- Boundary audit: CLEAN | <spillover / hidden dependency findings>
- RED phase: VERIFIED | MISSING | N/A
- FINDINGS:
1. <specific finding with exact files/spec refs>
- REMEDIATION: <mandatory if REJECTED>
- SUMMARY: <one sentence>
1---2name: kiro-review3description: Review a task implementation against approved specs, task boundaries, and verification evidence. Use after an implementer finishes a task, after remediation, or before accepting a task as complete.4---5
6# kiro-review
7
8<background_information>
9This skill performs task-local adversarial review. It verifies that the implementation is real, complete, bounded, aligned with approved requirements and design, and supported by mechanical verification evidence.
10
11Boundary terminology continuity:
12- discovery identifies `Boundary Candidates`
13- design fixes `Boundary Commitments`
14- tasks constrain execution with `_Boundary:_`
15- review rejects concrete `Boundary Violations`
16</background_information>
17
18<instructions>
19## When to Use
20
21- After an implementer reports `READY_FOR_REVIEW`
22- After remediation for a rejected review
23- Before marking a task `[x]`
24- Before accepting a task into feature-level validation
25
26Do not use this skill to invent missing requirements or silently reinterpret the spec.
27
28## Inputs
29
30Provide:
31- Task ID and exact task text from `tasks.md`
32- Relevant requirement section numbers
33- Relevant design section numbers
34- Spec file paths (`requirements.md`, `design.md`, optionally `tasks.md`)
35- The implementer's status report
36- The task `_Boundary:_` scope constraints
37- Validation commands discovered by the controller
38- Relevant steering excerpts when applicable
39- Relevant `## Implementation Notes` entries when applicable
40
41## Outputs
42
43Return one of:
44- `APPROVED`
45- `REJECTED`
46
47Also return:
48- Mechanical results
49- Findings with severity
50- Required remediation
51- One-sentence summary
52
53Use the language specified in `spec.json`.
54
55## First Action
56
57Run `git diff` to inspect the actual code changes. If the diff is large or ambiguous, read the changed files directly. Do not trust the implementer report as source of truth.
58
59## Core Principle
60
61Read the spec yourself. Read the diff yourself. Verify mechanically where possible. Reject on concrete failures rather than interpretive optimism.
62The main review question is not just "does it work?" but "does it stay inside the approved responsibility boundary without hiding new coupling?"
63
64## Mechanical Checks
65
66Run these checks and use the result as primary signal.
67
68### 1. Regression Safety
69- Run the project's canonical test suite using the validation commands discovered by the controller.
70- If tests fail, reject.
71
72### 2. No Residual Placeholder Markers
73- Check changed files for `TBD`, `TODO`, `FIXME`, `HACK`, `XXX`.
74- Reject if new placeholder markers were introduced without explicit task justification.
75
76### 3. No Hardcoded Secrets
77- Check changed files for hardcoded secrets or credentials.
78- Reject if concrete secret patterns are introduced.
79
80### 4. Boundary Respect
81- Compare changed files against the task `_Boundary:_` scope.
82- Reject if the change spills outside the approved boundary without explicit justification.
83- Reject if the implementation introduces hidden cross-boundary coordination inside what should be a local task.
84
85### 5. RED Phase Evidence
86- For behavioral tasks, verify that the implementer status report includes `RED_PHASE_OUTPUT`.
87- Reject if RED evidence is missing, empty, or unrelated to the task's acceptance criteria.
88
89### 6. Runtime-Sensitive Static Checks
90- If the project already has lint or equivalent static analysis for the touched stack, run the relevant command for the task boundary.
91- Pay attention to patterns that can survive typecheck/build yet fail at runtime: type-only imports used as values, missing namespace value imports for qualified-name access, unresolved globals, and newly introduced runtime-sensitive dependencies without matching boot/runtime handling.
92- If no project lint command exists, perform a targeted diff-based spot check in the changed files for those patterns.
93- Reject on concrete findings that create a realistic boot-time or module-load failure.
94
95## Judgment Checks
96
97### 7. Reality Check
98- Confirm the implementation is real production code, not a placeholder, stub, fake path, or deferred-work shell.
99
100### 8. Acceptance Criteria Coverage
101- Read the task description and confirm all aspects are implemented, not only the primary happy path.
102
103### 9. Requirements Alignment
104- Read the referenced sections in `requirements.md`.
105- Confirm each requirement is satisfied by concrete observable behavior.
106- Use original section numbers only.
107
108### 10. Design Alignment
109- Read the referenced sections in `design.md`.
110- Confirm the implementation uses the prescribed structures, interfaces, and dependency direction.
111- Reject silent substitutions for design-mandated choices.
112
113### 10.5 Boundary Audit
114- Compare the implementation against the design's boundary commitments and out-of-boundary statements.
115- Reject if downstream-specific behavior is pushed into an upstream boundary for convenience.
116- Reject if the implementation creates new hidden dependencies, shared ownership, or undeclared coupling across adjacent boundaries.
117- Reject if a task that is not an explicit integration task now behaves like one.
118
119### 11. Test Quality
120- Confirm tests prove the required behavior rather than only scaffolding.
121- Confirm tests would fail if the implementation were removed or broken.
122
123### 12. Error Handling
124- Confirm relevant failure paths are handled and not silently swallowed.
125
126## Severity Model
127
128Use:
129- `Critical` for broken functionality, invalid verification, data loss, security risk, or major scope violation
130- `Important` for required fixes before acceptance
131- `Suggestion` for non-blocking improvements
132- `FYI` for informational notes
133
134## Stop / Escalate
135
136Escalate instead of papering over the issue when:
137- The approved spec is ambiguous in a correctness-critical way
138- The design conflicts with what is technically possible
139- Required evidence cannot be gathered
140- The implementation only works by silently deviating from approved scope
141- Boundary ownership cannot be determined cleanly from requirements, design, and task scope
142
143## Common Rationalizations
144
145| Rationalization | Reality |
146|---|---|
147| “Tests pass, so approve” | Passing tests do not prove spec compliance or boundary respect. |
148| “The extra behavior is useful” | Extra behavior outside approved scope is still drift. |
149| “The implementer said RED was done” | RED must be evidenced, not asserted. |
150| “This gap is small enough to let through” | Real gaps must be rejected or escalated. |
151
152## Output Format
153
154```md
155## Review Verdict
156- VERDICT: APPROVED | REJECTED
157- TASK: <task-id>
158- MECHANICAL_RESULTS:
159 - Tests: PASS | FAIL (command and exit code)
160 - TBD/TODO grep: CLEAN | <count> matches
161 - Secrets grep: CLEAN | <count> matches
162 - Static checks: PASS | FAIL | SPOT_CHECKED
163 - Boundary: WITHIN | <files outside boundary>
164 - Boundary audit: CLEAN | <spillover / hidden dependency findings>
165 - RED phase: VERIFIED | MISSING | N/A
166- FINDINGS:
167 1. <specific finding with exact files/spec refs>
168- REMEDIATION: <mandatory if REJECTED>
169- SUMMARY: <one sentence>
170```
171</instructions>