Skip to content

Instantly share code, notes, and snippets.

View pwright's full-sized avatar
💭

Paul Wright pwright

💭
  • Ireland
View GitHub Profile

Using worktrees for AI workflows with two repos

The Concept

You have your "source" repos sitting in ~/repos. Instead of messy stashing or constant branch switching, you’re going to project specific branches into a clean folder called featureA.

This allows your main repos to stay on main (or whatever stable branch they need) while you do the heavy lifting in your feature-specific workspace.

The Setup

ChatKeeper Conversation Export Normalizer

chatkeeper 1.3.0 accepts a top-level conversations.json, but newer ChatGPT exports split conversations across files such as conversations-000.json, conversations-001.json, and so on.

If you only care about conversations, the easiest fix is to merge those shards back into a single conversations.json and build a minimal zip containing only that file.

The script for that is:

  • /home/paulwright/Downloads/chats/chatkeeper-normalize-conversations.sh
{
"id": "kubernetes-observability",
"title": "Observability in Kubernetes",
"abstract": "End users and operators need fast answers about service health, performance, and failures. In Kubernetes this is delivered via dashboards, explorers, and alerting that sit on top of signal stores (metrics, logs, traces). These stores are fed by collection and processing pipelines (agents, collectors, aggregators) that rely on Kubernetes primitives and underlying infrastructure (compute, storage, networking).",
"categories": [
{
"id": "experience",
"title": "User Experience",
"items": [
{
{
"id": "skupper-tutorial-flow",
"title": "Skupper Tutorial Steps",
"abstract": "A step-by-step dependency map for the Skupper Hello World tutorial, tracing from platform setup to application access and cleanup.",
"categories": [
{
"id": "network",
"title": "Skupper Network",
"items": [
{
[
{
"id": "tutors-dev-platform",
"title": "Tutors.dev Platform Value Chain",
"abstract": "The Tutors.dev platform enables users to discover, access, and interact with educational content through a rich catalogue and course delivery system. Its value chain spans user experience, content lifecycle management, platform services, and foundational infrastructure.",
"categories": [
{
"id": "experience",
"title": "User Experience",
"items": [
@pwright
pwright / ai.bs
Last active December 7, 2025 21:24
[{
"id": "ai-index-map",
"title": "AI Systems",
"abstract": "This index map represents the full series of AI value-chain maps as higher-level components, double click an item to navigate to that map.",
"categories": [
{
"id": "domain-eng-apps",
"title": "Domain & Engineering Applications",
"items": [
{
javascript:(function(){try{var rawLink=document.querySelector('a[href*="/raw/"]');if(!rawLink){alert('Raw link not found on this page.');return;}var u=new URL(rawLink.href);var parts=u.pathname.split('/').filter(Boolean);if(parts.length<4){window.open(rawLink.href,'_blank');return;}var user=parts[0];var gistId=parts[1];var filename=parts.slice(4).join('/');var latest='https://gist.githubusercontent.com/'+user+'/'+gistId+'/raw/'+filename;console.log('Latest raw URL:',latest);if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(latest).then(function(){alert('Copied latest raw URL:\n'+latest);},function(){window.prompt('Latest raw URL (copy manually):',latest);});}else{window.prompt('Latest raw URL (copy manually):',latest);}}catch(e){console.error(e);alert('Failed: '+e);}})();
{
"id": "idiots",
"title": "Surrounded by Idiots (Thomas Erikson)",
"abstract": "Thomas Erikson’s Surrounded by Idiots presents a framework for understanding human behavior and improving communication through a color-based personality model. Drawing on the DISC behavioral theory, Erikson categorizes people into four main types:<ul>\n<li>Red (dominant and results-oriented)\n<li>Yellow (inspiring and sociable)\n<li>Green (patient and caring)\n<li>Blue (analytical and detail-focused).\n</ul>The book argues that most conflicts and misunderstandings stem not from malice or ignorance, but from differing communication styles and perspectives. By recognizing these patterns, readers can adapt their approach to better connect with others—whether in personal relationships or professional environments. Although the model simplifies complex personalities, Erikson uses practical examples and humor to make the concepts accessible, encouraging empathy and self-awareness as keys to more effective interaction.",
"categ
{
"id": "got-themes-characters-full",
"title": "Game of Thrones – Themes, Characters & Power Dynamics",
"abstract": "Game of Thrones explores the pursuit of power, identity, and destiny across interconnected characters and houses. These visible themes manifest through the ambitions and struggles of major figures, political structures, and supernatural forces that shape the world of Westeros and beyond.",
"categories": [
{
"id": "themes",
"title": "Themes (User Value)",
"items": [
{ "id": "power-and-legitimacy", "name": "Power & Legitimacy", "deps": ["the-crown", "great-houses", "daenerys-targaryen", "cersei-lannister"] },
{
"id": "diagram-file-types",
"title": "Diagram File Types Blockscape",
"abstract": "Users author and consume diagrams in formats like PlantUML, Mermaid, SVG, and DOT. These formats rely on modeling semantics, layout calculation, and vector rendering provided by engines and libraries implemented in specific programming languages. https://gist.githubusercontent.com/pwright/462e221d2ecfa768842f5c85808fac84/raw/c11ad20f0145bf102c35720eca3d725b39e27c25/types.bs",
"categories": [
{
"id": "user-formats",
"title": "Diagram Formats",
"items": [
{ "id": "plantuml-format", "name": "PlantUML (.puml)", "deps": ["text-modeling", "layout-engine", "styling-theming"] },