Skip to content

Instantly share code, notes, and snippets.

View steipete's full-sized avatar
🤖
beep boop

Peter Steinberger steipete

🤖
beep boop
View GitHub Profile
@steipete
steipete / agent.md
Created October 14, 2025 14:41
Agent rules for git
  • Delete unused or obsolete files when your changes make them irrelevant (refactors, feature removals, etc.), and revert files only when the change is yours or explicitly requested. If a git operation leaves you unsure about other agents' in-flight work, stop and coordinate instead of deleting.
  • Before attempting to delete a file to resolve a local type/lint failure, stop and ask the user. Other agents are often editing adjacent files; deleting their work to silence an error is never acceptable without explicit approval.
  • NEVER edit .env or any environment variable files—only the user may change them.
  • Coordinate with other agents before removing their in-progress edits—don't revert or delete work you didn't author unless everyone agrees.
  • Moving/renaming and restoring files is allowed.
  • ABSOLUTELY NEVER run destructive git operations (e.g., git reset --hard, rm, git checkout/git restore to an older commit) unless the user gives an explicit, written instruction in this conversation. Treat t
#!/usr/bin/env bun
"use strict";
const fs = require("fs");
const { execSync } = require("child_process");
const path = require("path");
// ANSI color constants
const c = {
cy: '\033[36m', // cyan
@steipete
steipete / README.md
Created January 5, 2026 11:05
Zeno skill wrapper for Clawdbot

Zeno Skill for Clawdbot

A wrapper skill that integrates Zeno recursive codebase analysis with Clawdbot.

Quick Start

  1. Copy this folder to ~/.clawdbot/skills/zeno/
  2. Clone the main Zeno repo for runtime configs:

git clone https://github.com/anth0nylawrence/zeno.git /tmp/zeno-upstream

Claude Fans Threw a Funeral for Anthropic's Retired AI Model

By Kylie Robison
Business | August 5, 2025

Roughly 200 people gathered in San Francisco on Saturday to mourn the loss of Claude 3 Sonnet, an older AI model that Anthropic recently killed.


On July 21 at 9 am PT, Anthropic retired Claude 3 Sonnet, a lightweight model known for being quick and cost-effective. On Saturday, in a large warehouse in San Francisco's SOMA district, more than 200 people gathered to mourn its passing.

@steipete
steipete / committer
Created October 18, 2025 17:26
Simple commit script so agents don't f*ck up. Disallow other git commands. (except status/diff)
#!/usr/bin/env bash
set -euo pipefail
usage() {
printf 'Usage: %s "commit message" "file" ["file" ...]\n' "$(basename "$0")" >&2
exit 2
}
if [ "$#" -lt 2 ]; then

Perfect—let’s make the whole guide Swift‑native and wire it to gpt-5-codex as the default model. This version shows the Responses API tool‑calling loop, built‑in tools (web search), custom tools, structured outputs (text.format), and streaming.

Why gpt-5-codex? It’s a GPT‑5 variant optimized for agentic coding and is Responses‑only—built to drive coding agents (think Codex/CLI/IDE workflows). ([OpenAI][1]) Structured outputs + function/tool calling + previous_response_id are the core building blocks in Responses. ([OpenAI Platform][2]) Prompting tips for this model differ slightly from plain GPT‑5; the cookbook notes it’s Responses‑only and has a few behavior differences. ([OpenAI Cookbook][3])


TL;DR setup

@steipete
steipete / swift-testing-playbook.md
Last active January 15, 2026 11:54
The Ultimate Swift Testing Playbook (feed it your agents for better tests!)

The Ultimate Swift Testing Playbook (2024 WWDC Edition, expanded with Apple docs from June 2025)

Updated with info from https://developer.apple.com/documentation/testing fetched via Firecrawl on June 7, 2025.

See also my blog: See also my blog post: https://steipete.me/posts/2025/migrating-700-tests-to-swift-testing

A hands-on, comprehensive guide for migrating from XCTest to Swift Testing and mastering the new framework. This playbook integrates the latest patterns and best practices from WWDC 2024 and official Apple documentation to make your tests more powerful, expressive, and maintainable.


1. Migration & Tooling Baseline

@steipete
steipete / mcp_call.py
Last active January 1, 2026 13:56
Use MCPs via CLI commands. Enable agents to add/remove/load MCPs on demand, progressive disclosure. No more context cluttering.
#!/usr/bin/env python3
"""MCP helper CLI using definitions from config/mcp_servers.json.
This script powers the `pnpm mcp:*` helpers. Typical invocations:
pnpm mcp:list
pnpm mcp:list chrome-devtools --schema
pnpm mcp:call playwright.browser_tabs action=list
pnpm mcp:call chrome-devtools.evaluate_script --args '{"function":"() => document.title"}'
pnpm mcp:call context7.get_library_docs topic=hooks tokens=1500
@steipete
steipete / windsurf-auto-continue.js
Last active December 17, 2025 08:55
Windsurf Auto Continue press button JS. Windsurf Menu Help -> Toggle Developer Tools -> Paste into Console.
// Windsurf Auto Press Continue v13.2 (with added logging)
(() => {
const SCRIPT_NAME = 'Windsurf Auto Press Continue v13.2 (logged)'; // Updated name for clarity
let intervalId = null, lastClick = 0;
// --- Config ---
const BTN_SELECTORS = 'span[class*="bg-ide-button-secondary-background"]';
const BTN_TEXT_STARTS_WITH = 'continue';
const SIDEBAR_SELECTOR = null;
const COOLDOWN_MS = 3000;
@steipete
steipete / opencode.json
Last active December 11, 2025 03:27
How to configure opencode with Cerebras Qwen 3 Coder 480B (it's so fast!)
{
"$schema": "https://opencode.ai/config.json",
"model": "cerebras/qwen-3-coder-480b",
"provider": {
"cerebras": {
"api": "https://api.cerebras.ai/v1",
"npm": "@ai-sdk/openai-compatible",
"name": "Cerebras",
"env": [],
"options": {