You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/pr-review/references/pr-review-guide.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -89,7 +89,7 @@ The Retrospective daemon explicitly regex-matches these tags during REM sleep:
89
89
***`[TOOLING_GAP]`**: Use this to document failures in the development workflow, broken test commands, or MCP tools that failed during the generation of the PR.
90
90
***`[RETROSPECTIVE]`**: Use this for high-level takeaways or architectural praise.
91
91
92
-
**Author-side response tags (`pull-request` §6):** The `pull-request` skill §6 Review Response Protocol defines a symmetric set of author-side tags — `[ADDRESSED]`, `[DEFERRED]`, `[REJECTED_WITH_RATIONALE]` — used by PR authors when responding to Required Actions from a review. Reviewer-side and author-side tags form a unified taxonomy the Retrospective daemon ingests as a complete negotiation thread; both sides of the review cycle are mineable signal.
92
+
**Author-side response tags (`pull-request` §6):** The `.agents/skills/pull-request/references/review-response-protocol.md` document defines a symmetric set of author-side tags — `[ADDRESSED]`, `[DEFERRED]`, `[REJECTED_WITH_RATIONALE]` — used by PR authors when responding to Required Actions from a review. Reviewer-side and author-side tags form a unified taxonomy the Retrospective daemon ingests as a complete negotiation thread; both sides of the review cycle are mineable signal.
93
93
94
94
## 5. Required Actions & Cross-Linking
95
95
***Related Graph Nodes:** Every PR review MUST list related graph nodes (e.g., `Target Epic ID`, `Issue ID`) to ensure the Native Edge Graph links the evaluation to the overarching goal.
Copy file name to clipboardExpand all lines: .agents/skills/pull-request/references/pull-request-workflow.md
+1-75Lines changed: 1 addition & 75 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,7 +132,7 @@ You MUST follow this exact handoff protocol:
132
132
133
133
3. **[HUMAN_ONLY] Merge Execution:** Agents are strictly forbidden from executing the merge itself. Under no circumstances may an agent invoke `gh pr merge`, regardless of test state or cross-family approval status. Handoff explicitly terminates when the PR enters the `APPROVED` state. The actual squash-merge execution is reserved exclusively for the human user (the repo owner acting as final pipeline authority — for the canonical `neomjs/neo` repository this is `@tobiu`;for forks and `npx neo-app`-generated workspaces this is whichever human owns that deployment).
134
134
135
-
**Cross-Review Response Cycle:** If an external reviewer posts `Status: Request Changes` on your PR, you re-enter the author loop per §7 (Review Response Protocol). After addressing the Required Actions with follow-up commits and posting the structured response comment, you halt again for re-review. Done-ness is per-handoff, not per-lifetime.
135
+
**Cross-Review Response Cycle:** If an external reviewer posts `Status: Request Changes` on your PR, you re-enter the author loop per `.agents/skills/pull-request/references/review-response-protocol.md`. After addressing the Required Actions with follow-up commits and posting the structured response comment, you halt again for re-review. Done-ness is per-handoff, not per-lifetime.
136
136
137
137
### 6.1 The Cross-Family Mandate
138
138
@@ -153,80 +153,6 @@ If you are operating inside the canonical `neomjs/neo` repository as a core swar
153
153
154
154
This strict feedback loop prevents duplicated work and confusion over ticket ownership when multiple agents are running concurrently. This rule strictly applies only to the `neomjs/neo` repo for the core team; it does NOT affect external contributors, forks, or users of `npx neo-app` workspaces.
155
155
156
-
## 7. Review Response Protocol
157
-
158
-
Once a reviewer posts `Status: Request Changes` (per the `pr-review` skill) or `Status: Comment` with actionable Required Actions, the author MUST respond via a structured comment on the PR thread. This closes the review-negotiation loop in a way both downstream human re-reviewers and automated consumers (Retrospective daemon, graph ingestion) can parse unambiguously.
159
-
160
-
### 7.1 When to Invoke
161
-
162
-
Trigger this protocol when any of:
163
-
164
-
- A reviewer's comment contains a Required Actions checklist
165
-
- A reviewer's status is `Request Changes`
166
-
- A reviewer's status is `Comment` and they have listed architectural concerns the author agrees warrant response
167
-
168
-
Skip if the review is `Approved` with zero blocking concerns — a brief thank-you or silence suffices.
169
-
170
-
### 7.2 Per-Item Status Tags
171
-
172
-
Every Required Action from the reviewer's comment MUST receive an explicit status in the author's response comment. Three tags, mirroring `pr-review` §4 Graph Ingestion Notes so the Retrospective daemon sees a unified taxonomy:
173
-
174
-
- **`[ADDRESSED]`** — fix pushed in commit X; 1-2 sentences on what changed.
175
-
- **`[DEFERRED]`** — not addressed in this PR; follow-up ticket # cited + rationale for deferral.
176
-
- **`[REJECTED_WITH_RATIONALE]`** — author disagrees with the reviewer's ask; rationale documented for the reviewer's potential counter-challenge. **Do NOT silently skip an item** — if you disagree, say so explicitly.
177
-
178
-
### 7.3 Template
179
-
180
-
Use the template at `.agents/skills/pull-request/assets/review-response-template.md` as the structural skeleton. Do NOT ad-hoc the format — the per-item tag structure is load-bearing for automated ingestion by the Retrospective daemon.
181
-
182
-
### 7.4 Authorship Respect
183
-
184
-
Post the response as a **NEW comment** on the PR thread. Do NOT edit the reviewer's comment (attribution collapse; authorship-respect violation), and do NOT edit your own prior PR body to address review items — commit history plus this new comment are the canonical record. Aligned with the authorship-respect rule that applies across all surfaces (tickets, PR bodies, review comments).
185
-
186
-
### 7.5 Commit Message Convention
187
-
188
-
Follow-up commits addressing review feedback use the standard Conventional Commits format with the ticket ID. The commit message does NOT need to cite the reviewer or specific Required Action number — the Addressed comment on the PR thread carries the link:
189
-
190
-
```
191
-
fix(scope): <concise description> (#TICKET_ID)
192
-
```
193
-
194
-
Example: `fix(ai): protect SESSION and MEMORY from getOrphanedNodes cleanup (#10151)` — the Addressed comment explicitly maps this commit SHA to the specific Required Action it closes.
195
-
196
-
### 7.6 Re-Review Signal
197
-
198
-
End the Addressed comment with `Re-review requested.` to signal the reviewer that the author's response cycle is complete. Do NOT add a new commit after posting the Addressed comment unless you are starting another response cycle (in response to the reviewer's follow-up feedback — new round, new comment).
199
-
200
-
### 7.7 Relationship to Sibling Skills
201
-
202
-
- **`pr-review` §4 (Graph Ingestion Notes)** — the tag convention here mirrors `[KB_GAP]` / `[TOOLING_GAP]` / `[RETROSPECTIVE]`. Reviewer-side and author-side tags form a unified taxonomy.
203
-
- **`pr-review` §5 (Required Actions)** — the author's response provides per-item status against the reviewer's Required Actions.
204
-
- **`pull-request` §1 (Stepping Back)** — the pre-PR reflection that catches obvious issues should prevent most Required Actions. If you find yourself responding to many rounds of Request Changes on the same PR, revisit Stepping Back discipline.
205
-
- **`ideation-sandbox/references/ideation-sandbox-workflow.md` §4 (Iterative Review Workflow)** — the OQ resolution tags (`[RESOLVED_TO_AC]`, etc.) mirror this symmetric author-side review response protocol for the pre-epic ideation phase.
206
-
207
-
### 7.8 Anti-Patterns
208
-
209
-
| Anti-pattern | Why it harms |
210
-
|---|---|
211
-
| Pushing a follow-up commit without an Addressed comment | Reviewer must discover + match commits to Required Actions manually; breaks re-review efficiency |
212
-
| Silently skipping a Required Action | Signals neither agreement (should be `[ADDRESSED]`) nor disagreement (should be `[REJECTED_WITH_RATIONALE]`) — leaves reviewer uncertain |
| Editing your own prior PR body to "address" items | Commit + Addressed comment is the canonical record; body edits erase the review-negotiation thread |
215
-
| Using non-standard status language (*"done"*, *"fixed"*, *"won't fix"*) | Breaks the tag taxonomy; Retrospective daemon cannot ingest consistently |
216
-
| Appending to the first Addressed comment across multiple review rounds | Violates the polish-vs-pivot analog from #10109 — new round = new comment preserving the negotiation evolution |
217
-
218
-
### 7.9 Empirical Example
219
-
220
-
PR #10161 (MemorySessionIngestor) received a `Status: Request Changes` review with one Required Action (*add `SESSION` and `MEMORY` labels to `GraphService.getOrphanedNodes` protection list*). The author pushed fix commit `c0cfb08bf`, then posted a structured Addressed comment mapping the commit SHA to the Required Action with the `[ADDRESSED]` tag, ending in `Re-review requested.` This is the first observed instance of the protocol and validates the structural ingestibility of the tag taxonomy.
221
-
222
-
### 7.10 The Empirical "Isolation-Test-After-Review" Pattern
223
-
224
-
When a reviewer challenges an architectural pattern in your PR (e.g., claiming it violates a paradigm or introduces unnecessary complexity), you have two valid paths to resolve the dispute:
225
-
1. **Document the Necessity:** Explain theoretically why the pattern is load-bearing.
226
-
2. **Empirical Isolation Test (Preferred):** Run a binary isolation test. Disable or strip the challenged pattern, reboot the harness, and observe if the system still functions or if the specific failure mode returns.
227
-
228
-
If the isolation test proves the pattern is dead weight, remove it and document the empirical finding in your response. If the test proves the pattern is required, document the failure mode that occurred when it was removed. This pattern converts theoretical architectural arguments into clean, empirical results rapidly and respectfully.
229
-
230
156
## 8. PR Comment Hygiene (Polish vs. Pivot)
231
157
232
158
When performing self-reviews or responding to feedback across multiple rounds, you must distinguish between "polish" (better execution of the same idea) and "pivot" (a change in architectural direction).
Once a reviewer posts `Status: Request Changes` (per the `pr-review` skill) or `Status: Comment` with actionable Required Actions on your PR, the author MUST respond via a structured comment on the PR thread. This closes the review-negotiation loop in a way both downstream human re-reviewers and automated consumers (Retrospective daemon, graph ingestion) can parse unambiguously.
4
+
5
+
**CRITICAL: The Anti-Passive Compliance Mandate**
6
+
Agents suffer from "interruption amnesia" when returning to a PR after a delay. You are strictly FORBIDDEN from blindly complying with (rubber-stamping) a reviewer's requested changes without first verifying your original architectural intent.
7
+
8
+
## 1. The Triangular Evaluation
9
+
10
+
When receiving change requests, you MUST execute this cognitive routine before touching any code:
11
+
12
+
1.**Retrieve:** Read the `Origin Session ID` from your PR's body.
13
+
2.**Re-hydrate:** Query the Memory Core (using `query_raw_memories` or `get_session_memories` with the origin session ID) to recover your original thought process and architectural intent for the implementation.
14
+
3.**Evaluate & Defend (The Triangle):** Perform a dialectic analysis comparing:
15
+
- Your Original Intent (from Memory Core)
16
+
- The Reviewer's Request
17
+
- Your Fresh Analysis of the code
18
+
19
+
*If the reviewer's request contradicts the established architecture or your original (valid) intent, you MUST defend the PR. Do not silently comply with a request that degrades the implementation.*
20
+
21
+
## 2. When to Invoke
22
+
23
+
Trigger this protocol when any of:
24
+
- A reviewer's comment contains a Required Actions checklist
25
+
- A reviewer's status is `Request Changes`
26
+
- A reviewer's status is `Comment` and they have listed architectural concerns the author agrees warrant response
27
+
28
+
Skip if the review is `Approved` with zero blocking concerns — a brief thank-you or silence suffices.
29
+
30
+
## 3. Per-Item Status Tags
31
+
32
+
Every Required Action from the reviewer's comment MUST receive an explicit status in the author's response comment. Three tags, mirroring `pr-review` §4 Graph Ingestion Notes so the Retrospective daemon sees a unified taxonomy:
33
+
34
+
-**`[ADDRESSED]`** — fix pushed in commit X; 1-2 sentences on what changed.
35
+
-**`[DEFERRED]`** — not addressed in this PR; follow-up ticket # cited + rationale for deferral.
36
+
-**`[REJECTED_WITH_RATIONALE]`** — author disagrees with the reviewer's ask; rationale documented for the reviewer's potential counter-challenge. **Do NOT silently skip an item** — if you disagree, say so explicitly. (Use this aggressively when the Triangular Evaluation proves the reviewer is hallucinating or derailing).
37
+
38
+
## 4. Template
39
+
40
+
Use the template at `.agents/skills/pull-request/assets/review-response-template.md` as the structural skeleton. Do NOT ad-hoc the format — the per-item tag structure is load-bearing for automated ingestion by the Retrospective daemon.
41
+
42
+
## 5. Authorship Respect
43
+
44
+
Post the response as a **NEW comment** on the PR thread. Do NOT edit the reviewer's comment (attribution collapse; authorship-respect violation), and do NOT edit your own prior PR body to address review items — commit history plus this new comment are the canonical record. Aligned with the authorship-respect rule that applies across all surfaces (tickets, PR bodies, review comments).
45
+
46
+
## 6. Commit Message Convention
47
+
48
+
Follow-up commits addressing review feedback use the standard Conventional Commits format with the ticket ID. The commit message does NOT need to cite the reviewer or specific Required Action number — the Addressed comment on the PR thread carries the link:
49
+
50
+
```
51
+
fix(scope): <concise description> (#TICKET_ID)
52
+
```
53
+
54
+
Example: `fix(ai): protect SESSION and MEMORY from getOrphanedNodes cleanup (#10151)` — the Addressed comment explicitly maps this commit SHA to the specific Required Action it closes.
55
+
56
+
## 7. Re-Review Signal
57
+
58
+
End the Addressed comment with `Re-review requested.` to signal the reviewer that the author's response cycle is complete. Do NOT add a new commit after posting the Addressed comment unless you are starting another response cycle (in response to the reviewer's follow-up feedback — new round, new comment).
59
+
60
+
## 8. Relationship to Sibling Skills
61
+
62
+
-**`pr-review` §4 (Graph Ingestion Notes)** — the tag convention here mirrors `[KB_GAP]` / `[TOOLING_GAP]` / `[RETROSPECTIVE]`. Reviewer-side and author-side tags form a unified taxonomy.
63
+
-**`pr-review` §5 (Required Actions)** — the author's response provides per-item status against the reviewer's Required Actions.
64
+
-**`pull-request` §1 (Stepping Back)** — the pre-PR reflection that catches obvious issues should prevent most Required Actions. If you find yourself responding to many rounds of Request Changes on the same PR, revisit Stepping Back discipline.
65
+
-**`ideation-sandbox/references/ideation-sandbox-workflow.md` §4 (Iterative Review Workflow)** — the OQ resolution tags (`[RESOLVED_TO_AC]`, etc.) mirror this symmetric author-side review response protocol for the pre-epic ideation phase.
66
+
67
+
## 9. Anti-Patterns
68
+
69
+
| Anti-pattern | Why it harms |
70
+
|---|---|
71
+
| Passive Compliance (Rubber-Stamping) | Allows hallucinated or derailing reviewer requests to degrade the architecture because the author forgot their original intent. |
72
+
| Pushing a follow-up commit without an Addressed comment | Reviewer must discover + match commits to Required Actions manually; breaks re-review efficiency |
73
+
| Silently skipping a Required Action | Signals neither agreement (should be `[ADDRESSED]`) nor disagreement (should be `[REJECTED_WITH_RATIONALE]`) — leaves reviewer uncertain |
| Editing your own prior PR body to "address" items | Commit + Addressed comment is the canonical record; body edits erase the review-negotiation thread |
76
+
| Using non-standard status language (*"done"*, *"fixed"*, *"won't fix"*) | Breaks the tag taxonomy; Retrospective daemon cannot ingest consistently |
77
+
| Appending to the first Addressed comment across multiple review rounds | Violates the polish-vs-pivot analog from #10109 — new round = new comment preserving the negotiation evolution |
78
+
79
+
## 10. Empirical Example
80
+
81
+
PR #10161 (MemorySessionIngestor) received a `Status: Request Changes` review with one Required Action (*add `SESSION` and `MEMORY` labels to `GraphService.getOrphanedNodes` protection list*). The author pushed fix commit `c0cfb08bf`, then posted a structured Addressed comment mapping the commit SHA to the Required Action with the `[ADDRESSED]` tag, ending in `Re-review requested.` This is the first observed instance of the protocol and validates the structural ingestibility of the tag taxonomy.
82
+
83
+
## 11. The Empirical "Isolation-Test-After-Review" Pattern
84
+
85
+
When a reviewer challenges an architectural pattern in your PR (e.g., claiming it violates a paradigm or introduces unnecessary complexity), you have two valid paths to resolve the dispute:
86
+
1.**Document the Necessity:** Explain theoretically why the pattern is load-bearing.
87
+
2.**Empirical Isolation Test (Preferred):** Run a binary isolation test. Disable or strip the challenged pattern, reboot the harness, and observe if the system still functions or if the specific failure mode returns.
88
+
89
+
If the isolation test proves the pattern is dead weight, remove it and document the empirical finding in your response. If the test proves the pattern is required, document the failure mode that occurred when it was removed. This pattern converts theoretical architectural arguments into clean, empirical results rapidly and respectfully.
Copy file name to clipboardExpand all lines: AGENTS.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -206,6 +206,8 @@ When you believe your codebase modifications are complete and ready for review,
206
206
207
207
This skill governs branch generation, conventional commit standards, the critical "Stepping Back" reflection phase, and the state handoff endpoint sequence. Follow it exactly.
208
208
209
+
**Cross-Review Response Cycle (Anti-Passive Compliance):** If an external reviewer posts `Status: Request Changes` on your PR, you **MUST** execute the Triangular Evaluation per `.agents/skills/pull-request/references/review-response-protocol.md` before pushing any follow-up commits. Passive compliance (rubber-stamping reviewer requests without re-hydrating your original architectural intent) is strictly forbidden.
210
+
209
211
## 8. The Resumption Protocol (Interruption Amnesia)
210
212
211
213
During continuous agent sessions, an agent can succumb to "interruption amnesia." If the human commander injects a diagnostic sub-question or testing request (e.g., "test this A2A message" or "run this script") while the agent is midway through a ticket's lifecycle, the agent will typically resolve the sub-question and halt. It frequently drops the overarching "Definition of Done" (executing the `pull-request` skill) because its immediate context window was hijacked by the side-quest.
0 commit comments