Skip to content

Instantly share code, notes, and snippets.

View peat's full-sized avatar
🤓

Peat Bakke peat

🤓
View GitHub Profile
@peat
peat / bookkeeper-playbook.md
Created September 9, 2026 19:03
Claude Code Bookkeeper Playbook

Claude Code Bookkeeper Playbook

From Peat Bakke · peat@peat.org · Bluesky @peat.org

Fair warning: this is a very nerdy work in progress. It describes a system I built for my own household and my own small business, and it reflects my situation, my banks, and my tolerance for plain-text ledgers. It is not accounting, tax, or legal advice. If you run with it, you do so at your own risk, and please keep a real CPA in the loop.

That said, I'm happy to chat. Questions, feedback, and "here's what broke" reports are all welcome by email or on Bluesky.

A reconstruction guide for building a personal + small-business bookkeeping system that Claude Code operates. Give this whole document to Claude Code in an empty repository and work through it phase by phase (see Part 15, Build order).

Keybase proof

I hereby claim:

  • I am peat on github.
  • I am peat (https://keybase.io/peat) on keybase.
  • I have a public key ASC9lLkXvhz1GS6yTqkMobWjU1gqaiz6OoYHWhtR4PbZPAo

To claim this, I am signing this object:

@peat
peat / derp.txt
Created October 2, 2016 22:58
Third Party CC Scam
The third party CC scam works like this.
There are three parties involved:
a) The innocent buyer.
b) The innocent seller.
c) The con artist.
Here's how it works:

Keybase proof

I hereby claim:

  • I am peat on github.
  • I am peat (https://keybase.io/peat) on keybase.
  • I have a public key whose fingerprint is 82FD 6E9D AC05 DF53 9B24 304C 4DCA 622A C4C4 D8AA

To claim this, I am signing this object:

@peat
peat / gist:6617458
Last active December 23, 2015 09:49
SMALL_WORDS = %w{a an and as at but by en for if in of on or the to v v. via vs vs.}
def titleize( sentence )
capped_words = sentence.downcase.split(" ").map do |word|
SMALL_WORDS.include?(word) ? word : word.capitalize
end
capped_words[0] = capped_words[0].capitalize unless capped_words.empty?
capped_words.join(" ")
<link rel="openid.server" href="https://indieauth.com/openid" />
<link rel="openid.delegate" href="http://peat.org/" />
<a href="https://github.com/peat" rel="me">GitHub</a>
<a href="https://twitter.com/peat" rel="me">Twitter</a>
<a href="sms:+15037014135" rel="me">SMS</a>
FOO=/long/path/to/some/file.rb
echo ${FOO##*/}
@peat
peat / examples.clj
Last active April 26, 2017 13:20
Fun with Clojure and Futures.
; To run these examples (assuming you have homebrew installed):
;
; $ brew install leiningen
; ...
; $ lein repl
;
; ... this drops you into the Clojure REPL (Read, Evaluate, Print, Loop).
;
; Copy and paste the lines below and play around.
@peat
peat / gitbump.sh
Last active December 18, 2015 21:59
A simple shell script to pull updates for all of your repos.
#!/bin/sh
#
# Pulls updates for your repos, including registered submodules.
#
# Put this file in the directory containing all yer git repos.
GITS=`find . -type d -name .git`
START=`pwd`
for i in $GITS; do