Skip to content

Instantly share code, notes, and snippets.

View armcknight's full-sized avatar
πŸ”οΈ

Andrew McKnight armcknight

πŸ”οΈ
View GitHub Profile
@armcknight
armcknight / init.lua
Created January 8, 2026 00:45
XcodeSCStatus.spoon
--- === XcodeSCStatus ===
---
--- Toggle Xcode's "Files with source-control status" checkbox in the Project Navigator.
---
--- Requires Accessibility permissions for Hammerspoon.
local obj = {}
obj.__index = obj
obj.name = "XcodeSCStatus"
@armcknight
armcknight / start.md
Last active January 8, 2026 02:07
Claude start command

If the current branch name corresponds to a linear task:

  1. Run linctl issue view to fetch the full details of the current issue based on the branch name
  2. Read the title, description, and any other relevant content from the ticket output
  3. Run linctl issue update $issueID --state "In Progress" to update the issue to 'In Progress' state
  4. Based on the ticket content, create a comprehensive plan using the TodoWrite tool to track all the work needed to complete this issue
  5. Do steps 1-3 silently without mentioning them unless there's an error
  6. After creating the plan, present it to the user and ask if they'd like to proceed or adjust the plan

If we're not on a branch corresponding to a linear task, like main, do nothing.

@armcknight
armcknight / merge.md
Last active January 8, 2026 02:08
Claude merge command
  • Look at the diff between the branch $argv[1] and main and write a summary of all the changes to be used as the commit message for a merge commit.
  • Then, checkout main and merge the branch $argv[1] in, using that message for the merge commit.
    • Use the --squash option to make a single commit on main.
    • If there are conflicts, resolve them.
    • Use the conventional commit format, scoping to specific components when possible like fix(AutofixStatusView): <message> or feat(seer setup): <message>.
  • Run linctl issue update $issueID --state "In Review" to mark the associated Linear issue as "In Review".
  • Add an entry to CHANGELOG.md under the "Unreleased" section, unless $argv[2] is something like "skip-changelog". Ask for user to confirm the changelog changes, giving an opportunity to tailor them, then roll the change into the same merge commit.
@armcknight
armcknight / work.fish
Last active January 8, 2026 00:44
LLM Fish shell automation
function work -d "Unified worktree and terminal session manager"
if test (count $argv) -eq 0
echo "Usage: work <command> [args]"
echo "Commands:"
echo " start <branch> - Create worktree, copy .env files, and start tmux session"
echo " term - Start tmux dev session named after current git branch"
echo " finish <branch> - Complete worktree: cleanup .env files, remove worktree, and delete branch"
return 1
end
@armcknight
armcknight / dev.yml
Created January 8, 2026 00:36
LLM Tmuxinator config
name: dev
root: <%= Dir.pwd %>
enable_pane_titles: true
windows:
- <%= "#{Dir.pwd.split('/').last} - #{`git branch --show-current`.strip.gsub('/', '-')}" %>:
layout: main-vertical-mirrored
panes:
- claude:
- claude --continue || claude
@armcknight
armcknight / xcode_to_github.sh
Created March 12, 2025 01:08 — forked from mr-fixit/xcode_to_github.sh
generates the github URL of the topmost file in xcode
#!/bin/zsh
# this script outputs the github URL of the frontmost file in Xcode.
# v0.2
which jq || echo install jq with \'brew install jq\'; exit 1
TUPLE=$(osascript << HERE
tell application "Xcode"
set doc to document 1 whose name ends with (word -1 of (get name of window 1))
set currentLines to selected paragraph range of doc
Your post advocates a
( ) technical ( ) legislative ( ) market-based ( ) vigilante
approach to fighting spam. Your idea will not work. Here is why it won't work. (One or more of the following may apply to your particular idea, and it may have other flaws which used to vary from state to state before a bad federal law was passed.)
( ) Spammers can easily use it to harvest email addresses
( ) Mailing lists and other legitimate email uses would be affected
( ) No one will be able to find the guy or collect the money
( ) It is defenseless against brute force attacks
@armcknight
armcknight / twitter-og-logo.svg
Last active July 24, 2023 19:14
Twitter OG Logo
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@armcknight
armcknight / twitter-larry-bird-behind-the-scenes.svg
Created July 24, 2023 19:09
Twitter Larry Bird Behind the Scenes
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@armcknight
armcknight / twitter-larry.svg
Created July 24, 2023 19:06
Twitter Larry Bird SVG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.