|
| 1 | +--- |
| 2 | +name: Bug Report |
| 3 | +about: Report a bug with enough detail for autonomous agent diagnosis and fix |
| 4 | +title: "fix: " |
| 5 | +labels: ["bug"] |
| 6 | +assignees: "" |
| 7 | +--- |
| 8 | + |
| 9 | +## Metadata |
| 10 | + |
| 11 | +> **IMPORTANT**: The very first step should _ALWAYS_ be validating this metadata section to maintain a **CLEAN** development workflow. |
| 12 | +
|
| 13 | +```yml |
| 14 | +pull_request_title: "FROM fix/[issue#]-[shortdesc] TO development" |
| 15 | +branch: "fix/[issue#]-[shortdesc]" |
| 16 | +worktree_path: "$WORKSPACE/.worktrees/fix-[issue#]" |
| 17 | +``` |
| 18 | +
|
| 19 | +--- |
| 20 | +
|
| 21 | +## User Stories |
| 22 | +
|
| 23 | +<!-- Define the broken experience from the user's perspective FIRST. Every story follows the format: |
| 24 | + "As a [role], I expect [expected behavior] when [action], but instead [actual behavior]." |
| 25 | + These stories ground the bug in real user impact and guide the fix toward the right outcome. --> |
| 26 | +
|
| 27 | +- As a **[role]**, I expect **[expected behavior]** when **[action]**, but instead **[actual behavior]**. |
| 28 | +- As a **[role]**, I expect **[expected behavior]** when **[action]**, but instead **[actual behavior]**. |
| 29 | +
|
| 30 | +--- |
| 31 | +
|
| 32 | +## Summary |
| 33 | +
|
| 34 | +<!-- Brief additional context beyond the user stories. What's broken at a technical level? --> |
| 35 | +
|
| 36 | +
|
| 37 | +
|
| 38 | +### Severity |
| 39 | +
|
| 40 | +<!-- How impactful is this bug? --> |
| 41 | +
|
| 42 | +- [ ] **Critical** — Blocks core functionality, data loss, or security issue |
| 43 | +- [ ] **High** — Major feature broken, no workaround |
| 44 | +- [ ] **Medium** — Feature partially broken, workaround exists |
| 45 | +- [ ] **Low** — Cosmetic, minor inconvenience |
| 46 | +
|
| 47 | +--- |
| 48 | +
|
| 49 | +## Steps to Reproduce |
| 50 | +
|
| 51 | +<!-- Numbered steps an agent or human can follow to trigger the bug deterministically. --> |
| 52 | +
|
| 53 | +1. |
| 54 | +2. |
| 55 | +3. |
| 56 | +
|
| 57 | +### Expected Behavior |
| 58 | +
|
| 59 | +<!-- What SHOULD happen? --> |
| 60 | +
|
| 61 | +
|
| 62 | +
|
| 63 | +### Actual Behavior |
| 64 | +
|
| 65 | +<!-- What ACTUALLY happens? Include error messages, stack traces, or screenshots. --> |
| 66 | +
|
| 67 | +
|
| 68 | +
|
| 69 | +### Visual Evidence |
| 70 | +
|
| 71 | +<!-- Screenshots, screen recordings, or logs. Paste error output in a code block. --> |
| 72 | +
|
| 73 | +``` |
| 74 | +# Error output / stack trace |
| 75 | +``` |
| 76 | + |
| 77 | +--- |
| 78 | + |
| 79 | +## Environment |
| 80 | + |
| 81 | +| Detail | Value | |
| 82 | +|--------|-------| |
| 83 | +| Branch / Commit | <!-- e.g., `development @ abc1234` --> | |
| 84 | +| Browser | <!-- e.g., Chrome 120, Firefox 121, N/A for backend --> | |
| 85 | +| OS | <!-- e.g., macOS 15, Ubuntu 24.04 --> | |
| 86 | +| Node version | <!-- e.g., 20.x --> | |
| 87 | +| Python version | <!-- e.g., 3.12.x --> | |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +## Affected Files |
| 92 | + |
| 93 | +<!-- Files/functions where the bug likely originates. Describe the ROLE each plays. --> |
| 94 | + |
| 95 | +| File | Function(s) | Role / Relevance | |
| 96 | +|------|-------------|------------------| |
| 97 | +| `backend/src/...` | `function_name()` | _e.g., Route handler that returns malformed response_ | |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +## Root Cause Hypothesis |
| 102 | + |
| 103 | +<!-- Best guess at what's causing the bug. If unknown, say so — the agent will investigate. --> |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +## Architectural Context |
| 110 | + |
| 111 | +<!-- Any relevant context about how the broken feature is wired up. Prevents the agent from making incorrect assumptions during the fix. --> |
| 112 | + |
| 113 | +- **Source of truth**: <!-- e.g., Backend store, NOT localStorage --> |
| 114 | +- **State flow**: <!-- e.g., API → React Query cache → component --> |
| 115 | +- **Related services**: <!-- e.g., MemoryService, LangGraph Store --> |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## Development Setup |
| 120 | + |
| 121 | +### Dependencies |
| 122 | + |
| 123 | +| Service | Address | Notes | |
| 124 | +|---------|---------|-------| |
| 125 | +| Redis | `localhost:6379` | Docker container | |
| 126 | +| Postgres | `localhost:5432` | Docker container | |
| 127 | + |
| 128 | +### Commands |
| 129 | + |
| 130 | +```bash |
| 131 | +# See package.json for scripts |
| 132 | +``` |
| 133 | + |
| 134 | +### Wiki |
| 135 | + |
| 136 | +> **⚠️ IMPORTANT:** If the fix requires documentation updates, the wiki lives in a **separate repo**. Changes to `@wiki` must be committed directly to the wiki repo, **not** the main project repo. |
| 137 | +
|
| 138 | +--- |
| 139 | + |
| 140 | +## Design Principles |
| 141 | + |
| 142 | +- Fix the root cause, not the symptom. |
| 143 | +- _ALWAYS_ look at the current codebase first — achieve the fix in the **least amount of changes**. |
| 144 | +- TDD-first: write a failing test that reproduces the bug, then fix it. |
| 145 | +- No regressions — existing tests must continue to pass. |
| 146 | + |
| 147 | +--- |
| 148 | + |
| 149 | +## Validation Tools |
| 150 | + |
| 151 | +<!-- Explicit tool callouts for verifying the fix. --> |
| 152 | + |
| 153 | +- [ ] Load `agent-browser` skill with screenshots to validate E2E. This validates test assumptions for completion promise. |
| 154 | + |
| 155 | +--- |
| 156 | + |
| 157 | +## Acceptance Criteria |
| 158 | + |
| 159 | +<!-- Every criterion must be binary — testable by an agent with a pass/fail outcome. --> |
| 160 | + |
| 161 | +- [ ] Bug is no longer reproducible following the steps above |
| 162 | +- [ ] A regression test is added that covers this specific bug |
| 163 | +- [ ] All previous & new tests pass, validated using `agent-browser` CLI |
| 164 | +- [ ] Fix follows existing repo/service/route patterns (e.g., BaseRepo, ServiceContext) |
| 165 | +- [ ] No new dependencies added beyond what's already in the project (or justified in PR description) |
| 166 | +- [ ] Related documentation updated in the **wiki repo** if applicable (committed directly to wiki repo) |
| 167 | +- [ ] <!-- Add bug-specific criteria --> |
0 commit comments