summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-07-18plans: add Immich 3.x upgrade runbook (plan only)Paul Buetow
Written upgrade runbook for moving the f3s Immich install from v2.7.5 to 3.x. Documents current state, mandatory ZFS-snapshot + pg_dumpall backups, the pgvecto.rs -> VectorChord migration required before 3.x, step-by-step two-stage procedure, verification, and rollback. No live changes were made. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18plans: add f3s skill split plan (us0)Paul Buetow
Plan to sub-divide the oversized f3s skill (38 references, ~4846 lines) into six focused sibling skills (f3s-storage, f3s-k3s, f3s-observability, f3s-raspberry-pi, f3s-workloads, f3s-dtail), leaving f3s as a slim hub index. Documents exact file moves, DRY canonical homes, cross-link fixes, execution order, and risks. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18tmux: add Prefix+X to kill current session and attach to nextPaul Buetow
Bind Prefix+X to capture the current session name, switch the client to the next available session (switch-client -n), then kill the old session. Switching before killing keeps the client attached instead of detaching it. Placed next to the other session-management bindings and commented with the ordering rationale. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18update promptsPaul Buetow
2026-07-18immich-export: export second-quarter imagesPaul Buetow
2026-07-13betterPaul Buetow
2026-07-12scripts: stabilize-video — delete original .MOV after successful stabilizePaul Buetow
The source .MOV is removed only when the stabilized output decodes cleanly in the verify pass, so a failed encode never loses the original.
2026-07-12scripts: stabilize-video — fix EXIT trap unbound var under set -uPaul Buetow
trf_dir was declared local in main(), so the EXIT trap referencing it fired after main returned — under set -u that became an unbound variable error and the script exited non-zero even though stabilization succeeded. Hoist trf_dir to script scope and guard the trap.
2026-07-12scripts: stabilize-video — 2-pass vidstab + VAAPI HEVC for Fujifilm .MOV clipsPaul Buetow
Reusable wrapper around the workflow from the fujifilm-video-stabilization skill: parallel pass-1 motion detection, serial pass-2 stabilize+sharpen+encode on Intel VAAPI (software libx265 fallback), skip-existing outputs, and a decode/size verification pass at the end. Usage: stabilize-video [DIR] # all *.MOV in DIR stabilize-video ~/Videos stabilize-video clip1.MOV clip2.MOV # explicit files Outputs stabilised-<base>.mp4 next to each source.
2026-07-10Import Fujifilm RAW and video filesPaul Buetow
2026-07-10skills: pkgrepo — FreeBSD persistent host key, OpenBSD rc_bg, 2026-07-10 statePaul Buetow
- FreeBSD: host key now persistent in /var/db/dserver (cleanvar purged the old /var/run location every boot); document the migrate-first upgrade order for pre-2026-07-10 packages and that the rc.d precmd now repopulates the key cache on every start (manual re-run only needed when authorized_keys changed without a restart) - OpenBSD: rc.d uses rc_bg=YES + plain rc_cmd since 2026-07-10 (the old 'rc_cmd $1 &' hid rc_pre failures from rcctl); note that the FREEBSD_HOST=f0.wg0 override applies to all dtail-* targets - NetBSD: drop the outdated "unlike FreeBSD" volatile-key comparison - Verification table: f0-f2 and fishfinger reverified 2026-07-10 with host key identity preserved; f3 unreachable (still on old package), blowfish still on the older package Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10skills: pkgrepo — fix OpenBSD upgrade doc (fec2f9d attribution, restart step)Paul Buetow
fec2f9d is the dtail server-side fix (absolute CacheDir resolution independent of CWD), not a FreeBSD template bug — the FreeBSD template never used relative paths. Also make the pre-2026-07-10 upgrade procedure an explicit ordered list: migrate the host key first, then reinstall, then rcctl restart — neither pkg_add nor Rex restarts a running daemon, and after a reboot the old host key is already gone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10skills: pkgrepo — OpenBSD dserver absolute paths, persistent host keyPaul Buetow
Document the 2026-07-10 OpenBSD dtail package changes: absolute CacheDir/HostKeyFile, host key migration to /var/db/dserver, rc_pre key-cache refresh, same-version reinstall procedure, and the f0.wg0 Makefile override needed from the WireGuard VPN. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09skills: pkgrepo — NetBSD dserver host key now persistent, user-creation gotchaPaul Buetow
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09add netbsdPaul Buetow
2026-07-09skills: f3s dserver.d — add NetBSD pi0/pi1 build/deploy pointerPaul Buetow
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09skills: pkgrepo + f3s — NetBSD DTail pipeline and pi0/pi1 deploymentPaul Buetow
pi0/pi1 (NetBSD 10.1 aarch64) now run dserver from the custom pkgrepo: - pkgrepo: NetBSD repo layout (netbsd/10.1/packages/aarch64, unsigned, pkg_summary.gz), client setup via pkg_add URL, make dtail-netbsd pipeline (cross-compile on Linux, pkg_create natively on pi0), manual packaging reference, install/update steps + gotchas, verification state 2026-07-09 - f3s: pi0/pi1 host-role rows, rc.d service list + npf port 2222, removed stale 'pi0/pi1 do not run DTail' claims Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08update promptsPaul Buetow
2026-07-08update promptsPaul Buetow
2026-07-06fixPaul Buetow
2026-07-03f3s: add ychat deployment referencePaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019f299f-7596-73b6-ba71-0f71fcd3c131 Co-authored-by: Amp <amp@ampcode.com>
2026-07-03sync skills: wireguardmeshgenerator now has full NetBSD supportPaul Buetow
Updates the pi0/pi1 WireGuard docs to reflect that wireguardmeshgenerator generates and installs their tun0.conf + rc.d/wireguard script directly now, closing the previously-documented gap where both nodes' configs were manually-maintained exceptions outside the generator. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03sync skills: drop Rocky->NetBSD migration narrative from pi0/pi1 docsPaul Buetow
Trims dates, "reinstalled"/"converted"/"validated twice" framing, and forward-looking "next conversion" language from the f3s/pkgrepo skill docs. Keeps only current-state reference material: pi0 and pi1 run NetBSD, and how their services (WireGuard, bozohttpd, uptimed, npf, content sync, goprecords) are installed and configured. bootstrap-netbsd-pi.md is reframed from a migration runbook into a plain service-reference doc. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03sync skills: pi0/pi1 NetBSD migration docs, new bootstrap-netbsd-pi runbookPaul Buetow
pi0 and pi1 were both reinstalled from Rocky Linux to NetBSD 10.1 this session. Adds the reusable conversion runbook (bootstrap-netbsd-pi.md) and updates every f3s/pkgrepo reference that assumed pi0/pi1 were still Rocky (WireGuard setup, DTail client lists, pkgrepo URLs/build host, goprecords automation, wol-f3s doas behavior), plus documents the bugs found along the way: no native wg(4) on this platform, uptimed's dual-file read bug, bozohttpd's -V fallback redirect leaking the system hostname. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-02Remove hexai-tmux-edit referencesPaul Buetow
hexai dropped the tmux-edit popup editor feature; drop the tmux keybinding, update-tool lists, and the orphaned tmux-edit-send script that duplicated it but was no longer bound to anything. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-06-29Merge branch 'master' of ssh://r0:30022/repos/dotfilesPaul Buetow
2026-06-29sync skills: add fujifilm-video-stabilization skill for X100VPaul Buetow
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28sync skills: add skill-maintenance skill + shared DRY referencesPaul Buetow
- New skill: skill-maintenance (SKILL.md + 4 references: best-practices, dry-across-skills, sub-division, audit-checklist) encoding the Agent Skills spec rules, cross-skill DRY, and the f3s/rocky-vm-setup sub-division pattern. - agent-task-management/references/verification-honesty.md: canonical home for the general verification-honesty discipline (linked from go-best-practices). - blog-writing-style/references/gemtext-conventions.md: shared foo.zone gemtext conventions (linked from compose-blog-post, update-blog-post, blog-writing-style). - blog-writing-style/references/patterns-and-examples.md: foo.zone LLM-pattern catalog + rewrite examples extracted from blog-writing-style SKILL.md. - f3s/references/{console-jetkvm-shutdown,shelly-plug}.md: referenced by f3s/SKILL.md (previously untracked).
2026-06-28sharablePaul Buetow
2026-06-28UpdatePaul Buetow
2026-06-28f3s: add console-jetkvm-shutdown and Shelly Plug referencesPaul Buetow
2026-06-28home-backup: include .config/google-chrome againPaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019f0cc8-1a8f-71ab-8a1c-914d7cdb055a Co-authored-by: Amp <amp@ampcode.com>
2026-06-28home-backup: exclude .config/google-chromePaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019f0cc8-1a8f-71ab-8a1c-914d7cdb055a Co-authored-by: Amp <amp@ampcode.com>
2026-06-28Add home-backup script with daily systemd timerPaul Buetow
Backs up ~ to encrypted ZFS dataset on f2 (zdata/enc/earth-backup) via rsync over SSH. Excludes caches, trash, build artifacts, git checkouts, syncthing, and media libraries. Adds systemd user service+timer (daily) and enables it via Rex home_systemd_user task. Amp-Thread-ID: https://ampcode.com/threads/T-019f0cc8-1a8f-71ab-8a1c-914d7cdb055a Co-authored-by: Amp <amp@ampcode.com>
2026-06-27scripts/wol-f3s: Power off rack fans after host shutdownPaul Buetow
2026-06-26turn on fans as wellPaul Buetow
2026-06-22new reference herePaul Buetow
2026-06-22UpdatePaul Buetow
2026-06-22update promptsPaul Buetow
2026-06-20f3s: fix WireGuard key mismatch — f3 now reachable from fishfinger/blowfishPaul Buetow
Corrected mutual pubkey and PSK mismatch between f3 and both OpenBSD gateways. f3 is now reachable directly via WireGuard from fishfinger or blowfish without the double-hop workaround. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20f3s: update to FreeBSD 15.1-RELEASE, document 15.1 breaking changesPaul Buetow
- Current version bump: 15.0-RELEASE → 15.1-RELEASE - Added breaking changes section for 15.1: ZFS sysctl rename (vfs.zfs.min_auto_ashift → vfs.zfs.vdev.min_auto_ashift), libzfs7/libzpool7 SONAME bump, if_bridge/if_epair MAC change, CARP failover + NFS sink dataset readonly fix - Updated minor upgrade example: two-pass flow with correct PAGER=cat workarounds, doas env-var handling via doas sh -c, sysctl rename step - Noted carpcontrol.sh fixes: readonly flip on MASTER + rollback on BACKUP (commits 6c13b6a + c9f06a2 in conf repo) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20taskwarrior: DRY up export/import into symmetric label helpersPaul Buetow
The export path passed a file_label argument that was always identical to the tag (TASK_EXPORT_TAG/TASK_EXPORT_TAG, rocky/rocky), and the import path duplicated the find | while read | import/rm block once per source. Collapse both into a single 'list of labels' model: - _taskwarrior::export_tag drops the redundant file_label; the tag name is the file label. - New _taskwarrior::import_label imports+removes all files for one label, replacing the two copy-pasted blocks. - export loops over [$TASK_EXPORT_TAG rocky]; import loops over [$TASK_IMPORT_TAG (hostname)]. The rocky routing (export by tag name, import by hostname match) is now explicit and symmetric. Behaviour is unchanged; verified with a stubbed-task/hostname harness covering the rocky host, a non-rocky host, and label isolation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20c-best-practices skill: split oversized SKILL.md into references/Paul Buetow
The prior worker extracted the style sections into four references/ files (naming-and-formatting, files-and-headers, module-organization, code-body-conventions) but was interrupted before slimming SKILL.md, leaving the content duplicated. Resume: slim SKILL.md to intro, When-to-Use, a reference index, and the Quick Checklist summary (187 -> 44 lines). Content moved verbatim; nothing dropped. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19music-collection skill: split oversized SKILL.md into references/Paul Buetow
Reorganize the 217-line SKILL.md into a slim 50-line entry point (purpose, principles, core workflow, reference index, quick reference) plus four focused references, matching the f3s / llm-benchmark-comparison pattern. Pure reorganization; all content preserved. References: - beets-layout-and-dedup.md (layout, sorting, duplicates plugin) - navidrome-rescan.md (full scan on host and in Kubernetes) - cmus-reindex.md (lib.pl/cache, offline and live re-index) - tiddl-downloads.md (auth, batch loops, quality/output config) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19llm-benchmark-comparison: split oversized SKILL.md into references/Paul Buetow
Reorganize the skill to follow the f3s / blog-writing-style pattern: a slim SKILL.md (purpose, trigger, inputs, core workflow, reference index) plus three focused reference files. Pure reorganization — all content preserved verbatim. - references/search-and-sourcing.md: search endpoints, per-model queries, source trust order, source endpoint URLs (workflow steps 2-3) - references/benchmarks-catalog.md: per-model fields-to-capture table and the 2026 benchmark glossary - references/output-and-analysis.md: comparison table structure, analysis sections, anti-patterns, output format, output shape (workflow steps 4-7) SKILL.md drops from 225 to 86 lines. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19skills: split oversized SKILL.md files into references/ (f3s pattern)Paul Buetow
Break up the three most monolithic flat skills into a slim SKILL.md plus a references/ directory of focused sub-files, matching the f3s and agent-task-management structure. Pure reorganization: all content and meaning preserved, only moved behind a reference index with resolving links. - blog-writing-style (619->216): extract the Wikipedia-based 'Signs of AI writing' deep catalog into references/signs-of-ai-writing.md. - check-shopping-status (319->135): extract references/imap-scan-script.md (steps 1-3 Python) and references/amazon-cdp.md (CDP login helper). - photo-processing (232->155): extract references/auto-enhance.md (standalone ImageMagick auto-enhance script). Adds notes/skills-review-2026-06-19.md with the full inventory and the follow-up task IDs (dq0, eq0, fq0) for the remaining oversized skills. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19f3s skill: document reusable r-node Rex deploy mechanismPaul Buetow
Add references/r-node-deploy.md describing the Rex nfs_mount_monitor rollout to r0/r1/r2: group/root/parallelism-3 conventions, idempotent file/on_change reload flow, and systemctl/journalctl verification, so conf-project agents don't re-derive the rollout each task. Wire it into SKILL.md's reference index. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19go-best-practices: document slow/timeout-exceeding test suitesPaul Buetow
Add a section on handling test suites that work but exceed the go-test/mage/command timeout (e.g. mage integrationTest > 30m): which focused subset to run (-short/-run/build tags, touched packages), how to annotate that the full suite was intentionally skipped, and the acceptance implications (focused subset is not full verification). Cross-references the 8q0 missing-toolchain section rather than restating it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19go-best-practices: add env preflight and verification honesty sectionPaul Buetow
Document how agents should handle a local toolchain that cannot build or test the project (e.g. missing libbpf bpf/bpf.h headers, missing flutter/dart). Preflight the build/test path before trusting it, run the smallest verifying subset that works, annotate the blocker via ask annotate, and never claim full verification that did not run. Scoped to MISSING/incomplete toolchains; slow/long-running test suites are covered separately by task 9q0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19agent-task-management: add 'stay within task scope' rule forbidding edits to ↵Paul Buetow
vendored/upstream deps A sub-agent patched a vendored dependency (libbpfgo) and the change had to be reverted. When completing a task appears to require changing a vendored, generated, or upstream dependency, that is a scope boundary: flag it as a blocker (annotate + report) instead of patching the dep. Added to 2-start-task.md with a pointer from SKILL.md; cross-references the complete-task commit hygiene and stalled-worker recovery rather than restating them. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>