Skip to content

Instantly share code, notes, and snippets.

View ericclemmons's full-sized avatar
🏠
Working from home

Eric Clemmons ericclemmons

🏠
Working from home
View GitHub Profile
@ericclemmons
ericclemmons / AGENTS.md
Last active August 14, 2026 21:08
/docs/adr/* + .agents/skills/record-architecture-decisions/SKILL.md

Architecture Decision Records

Repository history and durable technical decisions are recorded in docs/adr/.

Before completing any non-trivial implementation thread or merge request, use the repository's record-architecture-decisions skill to evaluate whether the work produced a durable architectural decision.

When a decision is ADR-worthy, add a small record under docs/adr/ in the same merge request. Capture the constraints and evidence available at the time, including failed or rejected approaches that explain why the practical solution differed from the ideal one. If no ADR is needed, say so explicitly in the final handoff.

@ericclemmons
ericclemmons / README.md
Last active June 25, 2026 03:32
durable: tmux-backed local persistent sessions

durable

A tiny tmux wrapper for local, durable terminal sessions.

It creates or resumes a tmux session based on the current folder or git worktree, git branch when available, and the command role. The goal is to make local shells and long-running tools feel more like SSH sessions: close the terminal tab, reopen later, and resume the same process.

New sessions are named:

durable____
@ericclemmons
ericclemmons / .claude-commands-today.md
Created January 8, 2026 23:30
`/today` in Raycast to kick off `today` skill
description Sync Twitter bookmarks to Obsidian vault with metadata and embedded media
allowed-tools Bash(bird:*), Read, Write, Edit, Glob, Grep, AskUserQuestion, WebFetch

Sync Twitter Bookmarks

Fetches Twitter bookmarks using the Bird CLI and creates/updates notes in the Bookmarks/ folder with full metadata and embedded media.

Sources to Sync:

#!/usr/bin/env bash
set -euo pipefail
COMMIT_MSG_FILE="$1"
COMMIT_SOURCE="${2-}"
# Allow opting out for a single commit or CI.
if [ "${OPENCODE_COMMIT_MSG_DISABLE:-}" = "1" ]; then
exit 0
@ericclemmons
ericclemmons / WorkerProject.ts
Created October 15, 2025 15:20
Alchemy resource for Worker Builds
import { Resource, type Context } from "alchemy";
import { CloudflareApi, createCloudflareApi } from "alchemy/cloudflare";
const DEFAULT_BUILD_COMMAND = "";
const DEFAULT_PREVIEW_DEPLOY_COMMAND = "npx wrangler versions upload";
const DEFAULT_PRODUCTION_DEPLOY_COMMAND = "npx wrangler deploy";
const DEFAULT_ROOT_DIRECTORY = "/";
interface JsonResponse<T> {
success: boolean;
// https://alchemy.run/concepts/resource/
import alchemy, { Resource, type Context } from "alchemy";
import {
CloudflareApi,
createCloudflareApi,
type AiGatewayResource,
type R2BucketResource,
} from "alchemy/cloudflare";
{
"meta": { "theme": "even" },
"basics": {
"name": "Eric Clemmons",
"label": "Open-source author and technical leader",
"email": "eric@clemmons.family",
"phone": "(832) 414-7673",
"url": "https://ericclemmons.com",
"summary": "Open-source author and technical leader specializing in full-stack applications with ergonomic APIs. 17+ years of experience scaling engineering teams and delivering high-impact solutions that drive measurable business outcomes. Expert in navigating ambiguity for remote & hybrid teams by working backwards from user experience, with a proven track record of reducing costs while improving performance and developer productivity.",
"location": {
// @ts-check
/**
* Run `tsc` and pipe output to this script. All errors will write a `@ts-expect-error` comment into the source.
*
* Usage:
*
* tsc --noEmit --project ... | ./ts-expect-error.js
*
* Example (from the monorepo root):
@ericclemmons
ericclemmons / codegen.ts
Created April 22, 2024 04:41
graphql-codgen config for the best fully-typed, client-side GraphQL experience with TypeScript
import type {CodegenConfig} from '@graphql-codegen/cli';
const config: CodegenConfig = {
config: {
namingConvention: {
// Ensure enum values are the same as their name, not a number or camelCased
enumValues: 'keep',
},
},
schema: ['src/**/schema.graphql'],
# https://github.com/dependabot/fetch-metadata#enabling-auto-merge
name: Auto-merge Dependabot
on: pull_request_target
permissions:
pull-requests: write
contents: write
jobs: