7 things I don't do (manually) any more

After a few months with Sketch, these are things I rarely do by hand any more. Sketch's diff view makes it easy to review what Sketch has suggested, so I start with prompting Sketch, and then I review what it's done.

1. Rebases/Merges

Co-worker snuck that big refactor in and you're staring at a wall of merge markers. Ask Sketch to do it.

Rebase onto origin/main

2. Grafana Dashboards and Prometheus Queries

Added some metrics in the last deploy and need to build out the dashboard? Start using Infrastructure as Code for Dashboards, and ask Sketch to do it. Review the results and iterate. Give Sketch API keys to talk to Grafana.

In the last commit, I added some prometheus metrics. Update the foo dashboard to include them. Take screenshots. Here's the Grafana URL and API key...

3. One-off SQL Queries

"Here's my schema … . Write a SQL query to show me daily active users based on messages table."
My database is in /tmp/foo.db; produce a chart with daily active users based on the messages table. Use Marimo, altair, and start a web server serving that, so I can look at it.

4. Build Failures

Use your discretion on whether it's the kind of build failure that is amenable to this, though.

Run make and fix the errors.
Previous commit changed behavior of X; update the tests accordingly.
Playwright tests are failing; fix them.

5. Add ESLint to a Project

Trust me, adding the eslint rules, and then adding all the ignores for the existing code, taking care to find out that JSX comment syntax makes the ignore comments tricky to automate, is a pain. Sketch does it fine.

Add "eslint" and "eslint-typescript" to this project. Add ignore directives that affect the following line to all existing problems, with a "#add-eslint" marker for each one. Run eslint (and prettier and typescript) until there are no errors.

6. Writing GitHub Actions Workflows

Look, I like writing shell in YAML as much as anyone else…

add a github workflow to run the playwright tests

7. Git Bisect

"Running the web server and visiting /foo is busted. Figure out which commit broke it."