Inspiration: Claude Code's feedback drafting. At a high-signal moment the model drafts a report; it is queued locally and nothing is sent. A non-modal card then shows Bug report drafted: <title> with 1 to review · 2 to send · 0 to dismiss.
What already exists on main
- Draft tool.
tools/github/report.rs has draft and read, a 32 KB cap, redaction for disclosure, and per-session anchored storage.
/feedback command. commands/groups/core/feedback.rs handles bug, review and edit, and /feedback with no argument opens feedback_picker.rs.
- Feedback skill. It files with
gh, and only after the person approves.
- The gap: a draft only happens when the person types
/feedback bug.
Slices
F1. Model-initiated drafting
- The
draft tool description names the high-signal moments:
- a reproducible product failure that was just resolved or abandoned
- a missing capability that blocked a reasonable request
- the person clearly frustrated
- the model's own behavior going wrong: a confident answer later retracted, stopping short, refusing something reasonable, too many questions, or scope creep
- Rules the model must follow:
- never announce the draft or interrupt the work
- at most one draft per distinct issue
- sourced facts only, with the person's words quoted exactly
- people named by role, never by name or handle
- no secrets
- Fields:
kind (bug | idea | missing_capability), area, failure_mode (for model-behavior reports), task_category, and the details bullets What happened / What the user said / Repro / Evidence / Cause (verified only).
- The queue is capped at 10 drafts per install.
F2. One-key card
F3. Send, only on the person's keypress
- Product bugs, ideas and missing capabilities: search for duplicates, then
gh issue create -R Hmbown/Codewhale. Without gh, open a prefilled issue URL.
- Anything security-shaped: routed to the private advisory form, never a public issue.
- Model-behavior reports (
failure_mode set): go to a private intake, not the public tracker. They are prompt and eval data. This needs a founder decision on the endpoint.
- Every send writes a receipt and reports the resulting URL.
Tests
draft_is_queued_not_sent
card_keys_review_send_dismiss
send_requires_person_keypress_not_model_tool
security_shaped_draft_routes_to_advisory
model_behavior_draft_routes_private
queue_caps_at_ten
typeahead_does_not_answer_card
- redaction tests carried over from
report.rs
Release: 0.10.2 candidate (after C1's card and footer infrastructure). Size: F1 S, F2 M, F3 M.
Inspiration: Claude Code's feedback drafting. At a high-signal moment the model drafts a report; it is queued locally and nothing is sent. A non-modal card then shows
Bug report drafted: <title>with1 to review · 2 to send · 0 to dismiss.What already exists on main
tools/github/report.rshasdraftandread, a 32 KB cap, redaction for disclosure, and per-session anchored storage./feedbackcommand.commands/groups/core/feedback.rshandlesbug,reviewandedit, and/feedbackwith no argument opensfeedback_picker.rs.gh, and only after the person approves./feedback bug.Slices
F1. Model-initiated drafting
drafttool description names the high-signal moments:kind(bug | idea | missing_capability),area,failure_mode(for model-behavior reports),task_category, and the details bullets What happened / What the user said / Repro / Evidence / Cause (verified only).F2. One-key card
1review (opens the draft, which can be edited through the existing/feedback edit),2send,0dismiss.F3. Send, only on the person's keypress
gh issue create -R Hmbown/Codewhale. Withoutgh, open a prefilled issue URL.failure_modeset): go to a private intake, not the public tracker. They are prompt and eval data. This needs a founder decision on the endpoint.Tests
draft_is_queued_not_sentcard_keys_review_send_dismisssend_requires_person_keypress_not_model_toolsecurity_shaped_draft_routes_to_advisorymodel_behavior_draft_routes_privatequeue_caps_at_tentypeahead_does_not_answer_cardreport.rsRelease: 0.10.2 candidate (after C1's card and footer infrastructure). Size: F1 S, F2 M, F3 M.