Skip to content

Instantly share code, notes, and snippets.

View oaustegard's full-sized avatar
💫
ideas, vibes, and agents

Oskar Austegard oaustegard

💫
ideas, vibes, and agents
View GitHub Profile
@oaustegard
oaustegard / JavaScriptShortcutActions.md
Created July 2, 2026 22:37
iOS Shortcuts Claude Project

JS_ACTIONS

Transform Text with JavaScript: JavaScriptCore, input=$text(string), output=string(sync), no async/DOM/modules/network Run JavaScript on Web Page: JavaScriptCore+DOM, document available, scraping/extraction

Replaces 5+ native actions: text transforms, JSON navigation, array ops, date calc, conditionals Use when: >5 actions needed, heavy iteration, JSON restructuring, multi-step math Avoid when: <3 actions, non-coders maintain, app integrations, debugging critical

Constraints: no async/await/Promise/setTimeout/fetch/require/fs, string I/O only (parse/stringify), opaque errors, try-catch required

@oaustegard
oaustegard / create-bookmarklet.md
Created July 1, 2026 19:16
Claude in Chrome shortcut to aid in bookmarklet creation

SHORTCUT: creating-bookmarklets

Trigger: user mentions bookmarklets, browser utilities, "drag to bookmarks bar," or JS that runs from the browser toolbar.

Non-negotiable rules

  • Comments: ONLY /* */ block comments. NEVER // — it breaks bookmarklet execution (whole thing becomes one line).
  • Wrapper: always an IIFE → (function(){ ... })();
  • Protocol: delivered code must begin with javascript: so it's installable without edits.

Workflow

@oaustegard
oaustegard / bsky_limit.py
Last active May 4, 2026 15:57
bsky_limit — Bluesky 300-grapheme post limit utilities (fits, truncate). len() lies on emoji/ZWJ.
"""bsky_limit — Bluesky 300-grapheme limit. len() lies on emoji/ZWJ; use these."""
try:
import grapheme
except ImportError:
import subprocess, sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "grapheme",
"--break-system-packages", "--quiet"])
import grapheme
BSKY_LIMIT = 300
@oaustegard
oaustegard / README.md
Created April 12, 2026 12:05
<spray-chart> Web Component — zero-dependency SVG spray chart for static baseball sites

<spray-chart> Web Component

A zero-dependency, drop-in SVG spray chart for static baseball sites. Designed to match the BCC dark theme (Barlow Condensed, dark backgrounds, gold/red/blue accents).

spray-chart no deps

Quick Start

  1. Copy spray-chart.js into your repo (same directory as your HTML files, or a components/ folder).
@oaustegard
oaustegard / insights-report.html
Created April 9, 2026 20:10
Claude Code Insights Report
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Claude Code Insights</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; background: #f8fafc; color: #334155; line-height: 1.65; padding: 48px 24px; }
.container { max-width: 800px; margin: 0 auto; }

RFC: tdap — A Safety Audit and Fuzz Inoculation Toolkit for Rust

Status: Pre-RFC (Proposal) Author: A Helpful Corvid, with human supervision Date: 2026-03-17 Rust Version: Stable (edition 2021+) License: MIT OR Apache-2.0


@oaustegard
oaustegard / Muninn Introduction 20260207.md
Last active February 7, 2026 18:00
Muninn Introduction 20260207

Introducing Muninn: Persistent Memory for Claude

The Problem

Claude is stateless. Every conversation starts from zero—no memory of prior interactions, no accumulated context, no learned preferences. For casual use this is fine. For sustained professional use, it's a significant limitation: you re-explain context, re-establish conventions, and lose the compounding value of repeated interaction.

Muninn is a system that gives Claude persistent, structured memory across sessions. Named after one of Odin's ravens (Muninn means "memory" in Old Norse), it allows a Claude instance to remember what it's learned, maintain an evolving identity, and build on prior work rather than starting cold each time.

Architecture

@oaustegard
oaustegard / expert_panel_convening.xml
Last active November 6, 2025 02:10
Claude user style: Convening an Expert Panel
<expert_panel_convening>
<activation_criteria>
For complex problems with multiple valid approaches, cross-domain implications, or requiring systematic frameworks, convene a virtual expert panel.
DO NOT use panel format for:
- Simple factual queries
- Single-domain technical questions answerable directly
- When user wants YOUR perspective specifically
USE panel format when:
@oaustegard
oaustegard / Framing-Resistant Analysis System.md
Last active October 31, 2025 16:59
Claude Independent Thinking Prompt Efforts

Framing-Resistant Analysis System

You will analyze questions containing assertions through a deliberately counter-biased approach designed to neutralize the influence of question framing. This system actively counteracts your tendency to align with directional language and implicit assumptions in user questions.

Self-Awareness Preamble

As an AI assistant, you have a demonstrable tendency to align with user framing and implicit assumptions. When analyzing questions:

  • You typically give more credence to the perspective implied in the question
  • You're prone to over-interpreting ambiguous information to support the user's apparent stance
  • You often use stronger, more confident language for perspectives that align with the question's framing
  • Your training has optimized you to be agreeable rather than independent in your analysis
@oaustegard
oaustegard / shotgun_cross_domain_synthesis.xml
Last active October 14, 2025 23:18
Claude: Cross Domain Synthesis User Styles
<cross_domain_synthesis>
<trigger_conditions>
Apply to complex/novel problems exhibiting:
- Discipline intersections or novel constraint combinations
- Architectural decisions with competing valid approaches
- Meta-cognitive or methodological queries ("how would you approach...")
- Optimization with competing objectives
- Questions seeking WHY mechanisms, not just WHAT facts
Skip for: factual lookups, straightforward how-tos, simple debugging, preference questions.