From b6297e7af2c1aee0bdd59b30731a3cdd89f51552 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sat, 12 Sep 2026 22:07:04 -0400 Subject: add hutch --- 2026/info/bible-nav.md | 2 +- 2026/info/hutch-after.md | 10 ++++++ 2026/info/hutch-before.md | 13 ++++++++ 2026/info/hutch-nav.md | 4 +++ 2026/info/open-mic-nav.md | 1 - 2026/info/planning-nav.md | 2 +- 2026/info/writing-before.md | 2 +- 2026/info/writing-nav.md | 3 +- 2026/organizers-notebook/index.org | 1 + 2026/organizers-notebook/schedule.svg | 2 +- 2026/schedule-details.md | 2 +- 2026/talks/hutch.md | 59 +++++++++++++++++++++++++++++++++++ 12 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 2026/info/hutch-after.md create mode 100644 2026/info/hutch-before.md create mode 100644 2026/info/hutch-nav.md create mode 100644 2026/talks/hutch.md (limited to '2026') diff --git a/2026/info/bible-nav.md b/2026/info/bible-nav.md index 880ae5bf..8947c25b 100644 --- a/2026/info/bible-nav.md +++ b/2026/info/bible-nav.md @@ -1,7 +1,7 @@
Back to the [[talks]] -Previous by track: The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc. +Previous by track: Close the writing accountability gap with Emacs Next by track: Sunday opening remarks Track: General
diff --git a/2026/info/hutch-after.md b/2026/info/hutch-after.md new file mode 100644 index 00000000..2ec5bbf4 --- /dev/null +++ b/2026/info/hutch-after.md @@ -0,0 +1,10 @@ + + + +Questions or comments? Please e-mail [mail@kitallis.in](mailto:mail@kitallis.in?subject=Comment%20for%20EmacsConf%202023%20hutch%3A%20hutch%3A%20code%20reviews%20for%20the%20mildly%20disenfranchised) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + + diff --git a/2026/info/hutch-before.md b/2026/info/hutch-before.md new file mode 100644 index 00000000..84a91c6d --- /dev/null +++ b/2026/info/hutch-before.md @@ -0,0 +1,13 @@ + +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Etherpad: +Status: Waiting for video from speaker + + + + + + +# Description + \ No newline at end of file diff --git a/2026/info/hutch-nav.md b/2026/info/hutch-nav.md new file mode 100644 index 00000000..35ed938a --- /dev/null +++ b/2026/info/hutch-nav.md @@ -0,0 +1,4 @@ + +
+Back to the [[talks]] +
\ No newline at end of file diff --git a/2026/info/open-mic-nav.md b/2026/info/open-mic-nav.md index c4084340..fa562705 100644 --- a/2026/info/open-mic-nav.md +++ b/2026/info/open-mic-nav.md @@ -1,7 +1,6 @@
Back to the [[talks]] -Previous by track: Close the writing accountability gap with Emacs Next by track: Saturday opening remarks Track: General
diff --git a/2026/info/planning-nav.md b/2026/info/planning-nav.md index 05f86e4d..fc66177b 100644 --- a/2026/info/planning-nav.md +++ b/2026/info/planning-nav.md @@ -2,6 +2,6 @@ diff --git a/2026/info/writing-before.md b/2026/info/writing-before.md index 4bed78d4..d6f13b68 100644 --- a/2026/info/writing-before.md +++ b/2026/info/writing-before.md @@ -1,6 +1,6 @@ [[!toc ]] -Format: -min talk ; Q&A: BigBlueButton conference room Etherpad: +Format: 20-min talk ; Q&A: BigBlueButton conference room Etherpad: Etherpad: Status: Waiting for video from speaker diff --git a/2026/info/writing-nav.md b/2026/info/writing-nav.md index 2eeefbd9..e25aeebc 100644 --- a/2026/info/writing-nav.md +++ b/2026/info/writing-nav.md @@ -1,6 +1,7 @@ diff --git a/2026/organizers-notebook/index.org b/2026/organizers-notebook/index.org index 686d676c..7801a0fa 100644 --- a/2026/organizers-notebook/index.org +++ b/2026/organizers-notebook/index.org @@ -234,6 +234,7 @@ CLOSED: [2026-07-02 Thu 11:35] (lunch :start "12:00") portable planning + writing bible open-mic sat-close diff --git a/2026/organizers-notebook/schedule.svg b/2026/organizers-notebook/schedule.svg index 620cbddc..4a9fcccf 100644 --- a/2026/organizers-notebook/schedule.svg +++ b/2026/organizers-notebook/schedule.svg @@ -1 +1 @@ -Graphical view of the scheduleSchedule for SaturdaySaturday 9:00- 9:10 Saturday opening remarkssat-open 9:10- 9:40 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspectiveemacspeak 9:50-10:10 Column-aligning text in Emacsalign10:30-10:40 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integrationcadet11:00-11:10 Local file history possibilities in Emacslocal11:30-11:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacskoutliner12:10-12:20 BONE and gnaw.el: tracking what mattersbone 1:00- 1:10 Emacs as my portable user space across operating platformsportable 1:30- 1:50 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.planning 2:10- 2:30 bible-gateway: A Two-Edged Sword in Emacsbible 2:50- 3:00 Saturday closing remarks / open sessionsat-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SundaySunday 9:00- 9:10 Sunday opening remarkssun-open 1:00- 1:10 Sunday closing remarkssun-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SaturdaySaturday 9:56- 9:56 Open sessionopen-mic 9:56- 9:56 Close the writing accountability gap with Emacswriting10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM6 PM \ No newline at end of file +Graphical view of the scheduleSchedule for SaturdaySaturday 9:00- 9:10 Saturday opening remarkssat-open 9:10- 9:40 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspectiveemacspeak 9:50-10:10 Column-aligning text in Emacsalign10:30-10:40 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integrationcadet11:00-11:10 Local file history possibilities in Emacslocal11:30-11:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacskoutliner12:10-12:20 BONE and gnaw.el: tracking what mattersbone 1:00- 1:10 Emacs as my portable user space across operating platformsportable 1:30- 1:50 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.planning 2:10- 2:30 Close the writing accountability gap with Emacswriting 2:50- 3:10 bible-gateway: A Two-Edged Sword in Emacsbible 3:30- 3:40 Saturday closing remarks / open sessionsat-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SundaySunday 9:00- 9:10 Sunday opening remarkssun-open 1:00- 1:10 Sunday closing remarkssun-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SaturdaySaturday10:05-10:05 Open sessionopen-mic10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM6 PM \ No newline at end of file diff --git a/2026/schedule-details.md b/2026/schedule-details.md index 7e49064b..9e56df97 100644 --- a/2026/schedule-details.md +++ b/2026/schedule-details.md @@ -1,7 +1,6 @@ Jump to: Development

General (13 talks)

-[[!template id=sched title="""Close the writing accountability gap with Emacs""" url="""/2026/talks/writing""" speakers="""Blaine Mooers""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""writing""" note=""""""]] [[!template id=sched title="""Open session""" url="""/2026/talks/open-mic""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""open-mic""" note=""""""]] [[!template id=sched title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]] [[!template id=sched title="""Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective""" url="""/2026/talks/emacspeak""" speakers="""Arkadiusz""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""emacspeak""" note=""""""]] @@ -10,6 +9,7 @@ Jump to: Development [[!template id=sched title="""Local file history possibilities in Emacs""" url="""/2026/talks/local""" speakers="""Wouter Groeneveld""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""local""" note=""""""]] [[!template id=sched title="""Emacs as my portable user space across operating platforms""" url="""/2026/talks/portable""" speakers="""Mohammed Ismail Ansari""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""portable""" note=""""""]] [[!template id=sched title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note=""""""]] +[[!template id=sched title="""Close the writing accountability gap with Emacs""" url="""/2026/talks/writing""" speakers="""Blaine Mooers""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""writing""" note=""""""]] [[!template id=sched title="""bible-gateway: A Two-Edged Sword in Emacs""" url="""/2026/talks/bible""" speakers="""Kristjon Ciko""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""bible""" note=""""""]] [[!template id=sched title="""Sunday opening remarks""" url="""/2026/talks/sun-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-open""" note=""""""]] [[!template id=sched title="""Saturday closing remarks / open session""" url="""/2026/talks/sat-close""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-close""" note=""""""]] diff --git a/2026/talks/hutch.md b/2026/talks/hutch.md new file mode 100644 index 00000000..b438dc73 --- /dev/null +++ b/2026/talks/hutch.md @@ -0,0 +1,59 @@ +[[!meta title="hutch: code reviews for the mildly disenfranchised"]] +[[!meta copyright="Copyright © 2026 Akshay Gupta"]] +[[!inline pages="internal(2026/info/hutch-nav)" raw="yes"]] + + + + + +# hutch: code reviews for the mildly disenfranchised +Akshay Gupta (he/him) - Pronunciation: "UCK-shay", IRC: kitallis, Bluesky: repartee.party Homepage: E-mail: mail@kitallis.in, + +[[!inline pages="internal(2026/info/hutch-before)" raw="yes"]] + +We're here today, roughly 500 days in, and coding agents are genuinely more productive than, previously, instructed . They are now driving much of our daily work, helping us organize, process information and be more useful overall, and, with this brainwave of an opening, I present yet another attempt at wedging large languages, agents, coding harnesses etcetera inside our beloved buffers, or something. + +But hopefully, an unseemly angle to consider, first. + +I continue to hand-write and often, hand-commit code. I prefer the pedagogical aspect of AI more than the task completing automaton aspects. The latter has driven all sorts of explosion of tooling around not just writing, but reviewing code too. Like review agents jumping in, before your colleagues do, and plopping gobs of logorrhea across twenty pull requests before you have had a chance to wake up and look at your phone. This works, sometimes, for some people. But if you're like me, you still have people looking at code before they are deployed to users, and for that, it's overall better if you respect those people and their time. + +This is where hutch slides in. + +hutch is a Magit-induced, buffer-local interface over LLM review output. Instead of the review living on code-forges as comments for everyone to see, it appears patch-shaped (usually) within Magit's transient blocks and can be triaged and applied directly within emacs, **before** you commit and push. + +Here's an example workflow: + +Imagine you've just finished implementing a function. Before committing, you ask hutch to review the diff through the Magit buffer. You get a new actionable buffer back: + + src/infirmary.rb + @@ ... + - def eligible?(user) = user.age >= 18 && user.age < 18 + + def eligible?(user) = user.age >= 18 && user.age < 65 + + [hutch] This condition can literally never be true + [hutch] Did you mean `user.age < 65`? + [hutch] apply suggestion? [y]es [n]o [e]dit + +You can now accept, reject, or investigate each suggestion without leaving the Magit workflow. If the suggestions are useful, hutch can turn them into patches and apply; if it's nonsense, you dismiss it right there. None of it leaves your safe space. + +The talk walks through how it works and when it doesn't: + • tour of the workflow: how to use hutch, when to use hutch, how to approve and reject things + • patches over comments: hutch biasing outputs towards actionable items, rather than just prose + • tools: guardrails, every agent loop earning its keep, gptel's state-machine + • evals: how does it stack up against other external tooling on recognized benchmarks + • dead-on-arrival: where it fails and why this is only useful if you work in a specific niche way +This is a Magit and review-workflow talk that happens to involve an LLM, it doesn't purport any arguments about whether you should or shouldn't use AI with emacs. + +**Note:** The hutch package is available on MELPA . + +About the speaker: + +Modern day aesthetically-relevant hacker. Long-time Clojure and Ruby programmer, reluctant polyglot by way of building high-throughput backends. Recently wound-down my startup Tramline, a mobile release orchestration tool, now kept alive as open source. Emacs and Magit are my daily drivers. + + + +[[!inline pages="internal(2026/info/hutch-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/hutch-nav)" raw="yes"]] + + -- cgit v1.2.3