Skip to content

Instantly share code, notes, and snippets.

@evandhoffman
evandhoffman / README.md.md
Last active July 3, 2026 15:12
README.md prompt

Analyze this repository and create or update its README.md. The README is primarily for humans. Agent-specific guidance lives in AGENTS.md — do not duplicate it; link to it once.

Priorities, in order (structure the README this way):

  1. What this is — 2–4 sentences: purpose, product surface (CLI/API/library/ app/infra), runtime model.
  2. Usage — how to use the software. This is the main help page. First identify the product type(s) from evidence, then adapt:
  • CLI tool: commands, flags, examples, exit codes if evident.
@evandhoffman
evandhoffman / agentsmd.md
Last active July 3, 2026 14:49
Agents.md prompt

Analyze this repository and create or update its AGENTS.md files. Each AGENTS.md is symlinked to CLAUDE.md and GEMINI.md, so all guidance must be tool-neutral and apply to any AI coding agent.

This is a monorepo. Produce a root AGENTS.md with cross-cutting rules and a map of components, plus a short AGENTS.md per component (backend/, ios/, android/, etc.) containing only that component's commands and conventions. Only components with a distinct build/test/lint workflow get their own file — do not create one per directory. Do not duplicate root content in section files.

#!/usr/bin/env python3
"""
Manages quality definitions and profile assignments in Radarr and Sonarr.
Usage:
python3 set-quality-limits.py # set size limits
python3 set-quality-limits.py --dry-run # preview size limit changes
python3 set-quality-limits.py --assign-profile Any # assign profile to all content
python3 set-quality-limits.py --check-scores Any # verify custom format scores in a profile
python3 set-quality-limits.py --refresh # trigger Refresh & Scan for all content
@evandhoffman
evandhoffman / weight.py
Created June 6, 2025 12:13
Extract weight from healthkit export.xml and export it to json & CSV
import xml.etree.ElementTree as ET
import logging
import re
import json
import csv
from dateutil import parser as date_parser
from datetime import datetime
def extract_body_weight_records(xml_path):
weights = {}
@evandhoffman
evandhoffman / delete.js
Last active November 10, 2021 13:16
Delete your discord messages in a channel older than a specific date
// Lifted partially from https://gist.github.com/orion-v/95cb48fa73808cdc5c589fe415cc65f1
// and https://github.com/vegeta897/snow-stamp/blob/main/src/convert.js#L2
const DISCORD_EPOCH = 1420070400000
function dateToPostId(date) {
return (date - DISCORD_EPOCH) * 4194304
//return new Date(snowflake / 4194304 + epoch)
}
# Jimb - Havoc - 2020-04-16 13:01 - US/Doomhammer
# SimC Addon 1.12.5
# Requires SimulationCraft 820-01 or newer
demonhunter="Jimb"
level=120
race=night_elf
region=us
server=doomhammer
role=attack
# Cellen - Retribution - 2020-04-02 10:17 - US/Doomhammer
# SimC Addon 1.12.5
# Requires SimulationCraft 820-01 or newer
paladin="Cellen"
level=120
race=human
region=us
server=doomhammer
role=attack
@evandhoffman
evandhoffman / simc khal.txt
Last active June 16, 2020 19:56
simc khal
# Khalshazar - Assassination - 2020-06-16 15:56 - US/Doomhammer
# SimC Addon 1.12.5
# Requires SimulationCraft 820-01 or newer
rogue="Khalshazar"
level=120
race=dark_iron_dwarf
region=us
server=doomhammer
role=attack
@evandhoffman
evandhoffman / SimpleHTTPServerWithUpload.py
Created December 6, 2018 17:56 — forked from UniIsland/SimpleHTTPServerWithUpload.py
Simple Python Http Server with Upload
#!/usr/bin/env python
"""Simple HTTP Server With Upload.
This module builds on BaseHTTPServer by implementing the standard GET
and HEAD requests in a fairly straightforward manner.
"""
@evandhoffman
evandhoffman / inovelli.txt
Created March 2, 2018 00:12
inovelli.txt
evan@lunix /hass/config % grep Node006 OZW_Log.txt
2018-02-26 10:59:17.849 Detail, Node006, Received: 0x01, 0x18, 0x00, 0x04, 0x00, 0x06, 0x12, 0x32, 0x02, 0xa1, 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b
2018-02-26 11:49:24.528 Detail, Node006, Received: 0x01, 0x18, 0x00, 0x04, 0x00, 0x06, 0x12, 0x32, 0x02, 0xa1, 0x6c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e
2018-03-01 19:02:28.974 Info, Node006, Network Key Not Set - Secure Option is not required
2018-03-01 19:02:28.976 Info, Node006, Basic device class (0x04) - Routing Slave
2018-03-01 19:02:28.976 Info, Node006, Generic device Class (0x10) - Binary Switch
2018-03-01 19:02:28.976 Info, Node006, Specific device class (0x01) - Binary Power Switch
2018-03-01 19:02:28.976 Info, Node006, COMMAND_CLASS_BASIC will be mapped to COMMAND_CLASS_SWITCH_BINARY
2018-03-01 19:02:28.976 Info, Node006, Mandatory Command Classes for Node 6:
2018-03-01 19: