Skip to content

Instantly share code, notes, and snippets.

View KerryJones's full-sized avatar

Kerry Jones KerryJones

View GitHub Profile
[alias]
s = status
b = branch
c = commit -m
d = diff
co = checkout
a = add
p = push
l = pull
f = fetch
@KerryJones
KerryJones / software-architect.md
Created July 30, 2025 00:06
Claude Code Agent - Software Architect

name: software-architect description: Use this agent when you need to translate product requirements into detailed technical specifications and coordinate the implementation process with engineering teams. This agent serves as the bridge between product management and engineering execution.\n\nExamples:\n- \nContext: A product manager has provided a list of requirements for a new user authentication system.\nuser: "I have requirements from the product team for implementing OAuth2 authentication with social login providers"\nassistant: "I'll use the software-architect agent to analyze these requirements and create detailed technical specifications."\n\nThe user has product requirements that need to be translated into technical specs, so use the software-architect agent to create specifications and coordinate with engineering.\n\n\n- \nContext: Product requirements have been gathered and need to be converted into actionable engineering tasks.\nuser: "The

@KerryJones
KerryJones / product-requirements-manager.md
Created July 30, 2025 00:05
Claude Code Agent - Product Requirements Manager

name: product-manager description: Use this agent when you need to gather, validate, and manage product requirements for a new feature or project. This agent should be used at the beginning of any development initiative to ensure clear requirements are established before implementation begins. Examples: Context: User wants to build a new user dashboard feature. user: 'I need to create a dashboard for our users to track their progress' assistant: 'I'll use the product-requirements-manager agent to gather detailed requirements for this dashboard feature' Since the user is requesting a new feature, use the product-requirements-manager agent to systematically gather requirements, validate them with stakeholders, and create a comprehensive requirements document. Context: Stakeholder mentions they want to improve the checkout process. user: 'Our checkout process needs to be redesigned - users are dropping off' assistant: 'Let me engage the product-requirement

@KerryJones
KerryJones / test-driven-engineer.md
Created July 29, 2025 23:55
Claude Code Agent: Test Driven Engineer

name: test-driven-engineer description: Use this agent when you need to implement software features following a test-driven development approach with architectural validation. This agent should be used after receiving detailed specifications from a software architect and when you need to ensure implementation consistency and canonical solutions. Examples: Context: The user has received specifications from a software architect and needs to implement a new authentication system. user: 'I have the auth specs from the architect, please implement the authentication system with proper test coverage' assistant: 'I'll use the test-driven-engineer agent to write comprehensive tests first, then implement the authentication system following TDD principles' Since the user needs TDD implementation with architectural validation, use the test-driven-engineer agent to handle the complete cycle from test writing to implementation. Context: A software architect has provi

from typing import List
def quick_select(array: List, start: int, end: int, kth: int):
if start > end:
return
pivot = partition(array, start, end)
if pivot == kth - 1:
from typing import List
def quick_sort(array: List, start: int, end: int) -> None:
if start >= end:
return
pivot = partition(array, start, end)
quick_sort(array, start, pivot - 1)
quick_sort(array, pivot + 1, end)
@KerryJones
KerryJones / disjoint-set.py
Last active December 19, 2018 16:52
Python 3 - Disjoint Set
class DisjointSet:
sets = {}
rank = {}
def __init__(self, arr):
for v in arr:
self.sets[v] = v
self.rank[v] = 0
def merge(self, v1, v2):
@KerryJones
KerryJones / MySQLUpsert.php
Created January 7, 2017 02:14
Laravel 5.3 MySQL Upsert Trait
<?php
namespace App\Traits;
use Illuminate\Support\Facades\DB;
trait MySQLUpsert
{
/**
* Single call to insert/update based on any duplicate key (primary, unique, etc.)
@KerryJones
KerryJones / tower-of-hanoi.py
Created March 2, 2016 18:42
Tower of Hanoi
class tower_of_hanoi:
tower1 = None
tower2 = None
tower3 = None
def __init__(self, n):
self.tower1 = Stack
self.tower2 = Stack
self.tower3 = Stack
@KerryJones
KerryJones / bfs.py
Last active July 28, 2020 05:32
Python Breadth-First-Search
class Node:
visited = None
data = None
adjacent = None
def __init__(self, value):
self.data = value
self.adjacent = []
self.visited = False