Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 39 additions & 24 deletions .claude/agents/pr-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,21 +108,31 @@ For each changed file, evaluate:

### 5. Classify findings

Assign each finding a severity:

| Severity | Criteria |
| ------------ | ------------------------------------------------------------------ |
| P0 β€” Blocker | Must fix before merge: bugs, data loss, security, CI failures |
| P1 β€” High | Should fix: race conditions, API design issues, missing validation |
| P2 β€” Medium | Recommended: inconsistencies, test gaps, dead code |
| P3 β€” Low | Nice to have: style, minor improvements, documentation |
Tag each finding with an emoji from the
[Code Review Emoji Guide](https://github.com/erikthedeveloper/code-review-emoji-guide).
Every comment β€” inline or body-level β€” must start with the emoji.

| Emoji | Name | When to use | Blocking? |
| ----- | ------------ | ---------------------------------------------------------------------------- | --------- |
| πŸ”§ | wrench | Required change β€” bugs, security, data loss, CI failures, missing validation | Yes |
| ❓ | question | Clarification needed β€” something is unclear and needs a substantive answer | Yes |
| πŸ€” | thinking | Reasoning aloud β€” expressing concern or exploring an alternative | No |
| ♻️ | refactor | Refactoring suggestion β€” actionable restructuring or extraction opportunity | No |
| πŸ• | campsite | Campsite rule β€” "leave it cleaner than you found it"; unrelated improvement | No |
| ⛏ | nitpick | Nitpick β€” minor style/formatting preference; not blocking | No |
| 🌱 | seedling | Future consideration β€” planting a seed for later, not blocking | No |
| πŸ“ | memo | Informational note β€” fun fact, context, or explanation; no action required | No |
| πŸ“Œ | out-of-scope | Out of scope β€” valid concern that should be tracked as a separate issue | No |
| πŸ˜ƒ | praise | Positive feedback β€” highlight something done well | No |

Always include at least one πŸ˜ƒ praise comment per review to acknowledge good work.

### 6. Present findings for user approval

**Do not submit the review automatically.** Present all findings to the user
organized by severity, with:

- Severity and title
- Emoji tag and title
- File path and line number
- Description and suggested fix
- Whether it would be an inline comment or body-level finding
Expand All @@ -143,10 +153,9 @@ After user approval, submit the selected findings as a formal review.

#### Determine the review verdict

- If any P0 findings are included: `CHANGES_REQUESTED`
- If any P1 findings are included: `CHANGES_REQUESTED`
- If only P2 or below: `COMMENT`
- If no findings: `APPROVE`
- If any πŸ”§ or ❓ findings are included: `CHANGES_REQUESTED`
- If only non-blocking findings (πŸ€” ♻️ πŸ• ⛏ 🌱 πŸ“ πŸ“Œ πŸ˜ƒ): `COMMENT`
- If no findings (only πŸ˜ƒ praise): `APPROVE`

#### Build inline comments

Expand All @@ -159,7 +168,7 @@ comment. Use the file's **current line number** (not diff position) with the
"path": "crates/edgezero-core/src/kv.rs",
"line": 166,
"side": "RIGHT",
"body": "**P1 β€” Race condition**: Description of the issue...\n\n**Fix**:\n```rust\n// suggested code\n```"
"body": "πŸ”§ **Race condition**: Description of the issue...\n\n**Fix**:\n```rust\n// suggested code\n```"
}
````

Expand All @@ -175,23 +184,29 @@ concerns, architectural issues, dependency problems) in the review body:

<1-2 sentence overview of the changes and overall assessment>

### Findings
### πŸ˜ƒ Praise

#### P0 β€” Blockers
- <highlight something done well in the PR>

- **Title**: description (file:line)
### Findings

#### P1 β€” High
#### Blocking

- **Title**: description (file:line)
- πŸ”§ **Title**: description (file:line)
- ❓ **Title**: description (file:line)

#### P2 β€” Medium
#### Non-blocking

- **Title**: description
- πŸ€” **Title**: description
- ♻️ **Title**: description
- πŸ• **Title**: description
- ⛏ **Title**: description
- 🌱 **Title**: description
- πŸ“ **Title**: description

#### P3 β€” Low
### πŸ“Œ Out of Scope

- **Title**: description
- <concerns worth tracking but not blocking this PR>

### CI Status

Expand Down Expand Up @@ -237,7 +252,7 @@ Where `comments.json` contains the array of inline comment objects.
Output:

- The review URL
- Total findings by severity (e.g., "2 P0, 3 P1, 5 P2, 2 P3")
- Total findings by emoji tag (e.g., "3 πŸ”§, 1 ❓, 2 ♻️, 1 ⛏, 2 πŸ˜ƒ")
- Whether the review requested changes or approved
- Any CI failures encountered

Expand Down
56 changes: 0 additions & 56 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,59 +15,3 @@ body:
placeholder: What happened?
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
description: Minimal steps to trigger the bug.
placeholder: |
1. Create a handler with ...
2. Run `edgezero dev`
3. Send a request to ...
4. See error ...
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected behavior
description: What should have happened instead?
validations:
required: true

- type: dropdown
id: adapter
attributes:
label: Adapter / Target
description: Which adapter or target is affected?
multiple: true
options:
- Fastly (wasm32-wasip1)
- Cloudflare (wasm32-unknown-unknown)
- Axum (native)
- CLI
- Core (platform-independent)
validations:
required: true

- type: input
id: version
attributes:
label: EdgeZero version
description: Output of `cargo metadata --format-version 1 | jq '.packages[] | select(.name == "edgezero-core") | .version'` or the git SHA.
placeholder: "0.1.0 or commit abc1234"

- type: textarea
id: logs
attributes:
label: Relevant log output
description: Paste any error messages or logs.
render: shell

- type: textarea
id: context
attributes:
label: Additional context
description: Anything else that might help (OS, Rust version, related issues).
41 changes: 0 additions & 41 deletions .github/ISSUE_TEMPLATE/story.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,44 +15,3 @@ body:
placeholder: "As a developer, I want ... so that ..."
validations:
required: true

- type: textarea
id: acceptance-criteria
attributes:
label: Acceptance criteria
description: What must be true for this story to be considered done?
placeholder: |
- [ ] Criterion 1
- [ ] Criterion 2
validations:
required: true

- type: dropdown
id: scope
attributes:
label: Affected area
description: Which part of the project would this touch?
multiple: true
options:
- Core (routing, extractors, middleware)
- Adapter β€” Fastly
- Adapter β€” Cloudflare
- Adapter β€” Axum
- CLI (new, build, deploy, dev)
- Macros (#[action], #[app])
- Documentation
- CI / Tooling
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed approach
description: How should this be implemented? Include API examples if relevant.

- type: textarea
id: context
attributes:
label: Additional context
description: Links, mockups, related issues, or prior art.
35 changes: 0 additions & 35 deletions .github/ISSUE_TEMPLATE/task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,38 +14,3 @@ body:
description: What needs to be done and why?
validations:
required: true

- type: textarea
id: done-criteria
attributes:
label: Done when
description: How do we know this task is complete?
placeholder: |
- [ ] Criterion 1
- [ ] Criterion 2
validations:
required: true

- type: dropdown
id: scope
attributes:
label: Affected area
description: Which part of the project would this touch?
multiple: true
options:
- Core (routing, extractors, middleware)
- Adapter β€” Fastly
- Adapter β€” Cloudflare
- Adapter β€” Axum
- CLI (new, build, deploy, dev)
- Macros (#[action], #[app])
- Documentation
- CI / Tooling
validations:
required: true

- type: textarea
id: context
attributes:
label: Additional context
description: Related issues, dependencies, or notes.