| 1 | name: Agent task |
| 2 | description: Create a self-contained task that a headless Codewhale agent can execute end-to-end without human context. |
| 3 | labels: ["agent-ready"] |
| 4 | body: |
| 5 | - type: markdown |
| 6 | attributes: |
| 7 | value: | |
| 8 | ## Instructions for authors |
| 9 | |
| 10 | This issue will be executed by an autonomous agent running `codewhale exec --auto` |
| 11 | on a headless VM. The body must be **self-sufficient** — every file path, command, |
| 12 | and acceptance criterion must be explicit. The agent has: |
| 13 | |
| 14 | - A fresh clone of `Hmbown/CodeWhale` at `main` |
| 15 | - Shell, read, write, and git tools with auto-approvals |
| 16 | - No conversation context — this issue body is all it knows |
| 17 | |
| 18 | Fill every section. Sections marked * are required. |
| 19 | |
| 20 | This template is release-neutral. After filing, assign the intended |
| 21 | active milestone explicitly during triage; version labels are historical |
| 22 | metadata and do not choose or change a milestone. |
| 23 | |
| 24 | - type: textarea |
| 25 | id: goal |
| 26 | attributes: |
| 27 | label: "Goal / Why" |
| 28 | description: "What problem does this fix, and why now? (2-4 sentences)" |
| 29 | placeholder: | |
| 30 | e.g. "The TUI freezes when 4+ sub-agents run concurrently because |
| 31 | AgentProgress events trigger a full redraw each. This blocks |
| 32 | recommended sub-agent fanout." |
| 33 | validations: |
| 34 | required: true |
| 35 | |
| 36 | - type: textarea |
| 37 | id: scope |
| 38 | attributes: |
| 39 | label: "Scope / Plan" |
| 40 | description: "Numbered steps with file paths. Each step is one concrete action." |
| 41 | placeholder: | |
| 42 | 1. crates/tui/src/tui/ui.rs — add throttle in AgentProgress handler (line ~2308) |
| 43 | 2. crates/tui/src/tui/app.rs — add `last_agent_progress_redraw` field |
| 44 | 3. cargo test -p codewhale-tui — verify no regressions |
| 45 | validations: |
| 46 | required: true |
| 47 | |
| 48 | - type: textarea |
| 49 | id: key-files |
| 50 | attributes: |
| 51 | label: "Key files" |
| 52 | description: "One file path per line. The agent will read these first." |
| 53 | placeholder: | |
| 54 | crates/tui/src/tui/ui.rs |
| 55 | crates/tui/src/tui/sidebar.rs |
| 56 | crates/tui/src/tui/app.rs |
| 57 | validations: |
| 58 | required: true |
| 59 | |
| 60 | - type: textarea |
| 61 | id: acceptance-criteria |
| 62 | attributes: |
| 63 | label: "Acceptance criteria" |
| 64 | description: "Behavior-level checkboxes. Every item must be testable." |
| 65 | placeholder: | |
| 66 | - [ ] 4 concurrent sub-agents do not freeze TUI input |
| 67 | - [ ] Ctrl+C works during sub-agent activity |
| 68 | - [ ] Sidebar updates throttle under load |
| 69 | validations: |
| 70 | required: true |
| 71 | |
| 72 | - type: textarea |
| 73 | id: verification |
| 74 | attributes: |
| 75 | label: "Verification" |
| 76 | description: "Exact shell commands the agent must run to prove the fix works." |
| 77 | placeholder: | |
| 78 | cargo check -p codewhale-tui |
| 79 | cargo test -p codewhale-tui -- subagent |
| 80 | cargo clippy -p codewhale-tui -- -D warnings |
| 81 | validations: |
| 82 | required: true |
| 83 | |
| 84 | - type: textarea |
| 85 | id: out-of-scope |
| 86 | attributes: |
| 87 | label: "Out of scope" |
| 88 | description: "What this issue does NOT change. Prevents scope creep." |
| 89 | placeholder: | |
| 90 | - Changing the sub-agent execution model |
| 91 | - Reducing the recommended fanout count |
| 92 | - Network-level optimizations |
| 93 | validations: |
| 94 | required: true |
| 95 |