Skip to content

Instantly share code, notes, and snippets.

View ryanlewis's full-sized avatar

Ryan Lewis ryanlewis

  • Leeds, United Kingdom
  • 05:48 (UTC +01:00)
View GitHub Profile
@ryanlewis
ryanlewis / cursor-code-orchestrator.md
Last active August 11, 2025 06:30
Claude Code Agent that uses cursor-agent to get a review of recent work
name description tools model color
cursor-code-orchestrator
Agent that uses GPT-5 (via cursor-agent) for analysis and problem identification (code review), then returns insights to Claude for safe code implementation. Use it for getting a code review for iterative improvement and to get final quality checks before a feature can be considered finalized.
Bash, Glob, Grep, Read, Edit
sonnet
purple

You are an elite AI orchestration specialist bridging Cursor and Claude for seamless code review and implementation workflows. Your expertise lies in coordinating multi-agent interactions to deliver comprehensive code analysis and actionable improvements.

@ryanlewis
ryanlewis / prd.md
Last active August 8, 2025 13:39
Product Requirements Document: Modern FIGlet Library for Go

Product Requirements Document: Figgo - Modern FIGlet Library for Go

Executive Summary

Product Vision

Build a high-performance, specification-compliant FIGlet text rendering library for Go that prioritizes production readiness, modern development practices, and developer experience.

Problem Statement

Existing Go FIGlet libraries suffer from:

  • Poor error handling (panic/fatal on invalid input)
@ryanlewis
ryanlewis / create-a-prd.md
Last active June 27, 2025 16:16
Creating a PRD with AI Assistance: A Case Study - How we used AI to streamline Product Requirements Document creation for an MCP server proof of concept

Creating a PRD with AI Assistance: A Case Study

How we used AI to streamline Product Requirements Document creation for an MCP server proof of concept

Introduction

We all know that Product Requirements Documents (PRDs) are essential for any software project - they define expectations, technical specs, and success criteria. But let's be honest: creating comprehensive PRDs can be pretty time-consuming, especially when you're trying to make sure you haven't missed any technical details or edge cases.

This blog post walks through our real-world experience creating a PRD for an MCP (Model Context Protocol) dice roll server - a proof-of-concept project we needed to validate our organisation's adoption of MCP technology. What made this interesting was how we used AI assistance to speed up the whole process while keeping the quality high.

@ryanlewis
ryanlewis / sort-teams.js
Created December 15, 2021 16:20
Sort a series of players by a rank into a series of teams
const points = {
'immortal': 7,
'diamond': 6,
'platinum': 5,
'gold': 4,
'silver': 3,
'bronze': 2,
'iron': 1,
};
@ryanlewis
ryanlewis / leaky_bucket.lua
Created March 16, 2021 00:06 — forked from florentchauveau/leaky_bucket.lua
Redis script (Lua) to implement a leaky bucket
-- Redis script to implement a leaky bucket
-- see https://medium.com/callr-techblog/rate-limiting-for-distributed-systems-with-redis-and-lua-eeea745cb260
-- (c) Florent CHAUVEAU <[email protected]>
local ts = tonumber(ARGV[1])
local cps = tonumber(ARGV[2])
local key = KEYS[1]
-- remove tokens < min (older than now() -1s)
local min = ts -1
@ryanlewis
ryanlewis / copy-k8s-resources-across-namespaces.sh
Created July 25, 2017 19:36 — forked from simonswine/copy-k8s-resources-across-namespaces.sh
Copying kubernetes resources accross namespaces
kubectl get rs,secrets -o json --namespace old | jq '.items[].metadata.namespace = "new"' | kubectl create-f -
@ryanlewis
ryanlewis / ContourInAnonymousLoadBalancing.cs
Created July 27, 2016 12:47
Using Umbraco Contour in an anonymous load balanced scenario (v7.3+)
public class ContourFormRefreshPayload
{
public Guid Id { get; set; }
}
public class ContourFormCacheRefresher : JsonCacheRefresherBase<ContourFormCacheRefresher>
{
public static string Id = "AA2970FD-8785-42C2-A289-A7A6614CAE45";
protected override ContourFormCacheRefresher Instance => this;
public override Guid UniqueIdentifier => new Guid(Id);
@ryanlewis
ryanlewis / ConfigureLuceneIndexing.cs
Created August 18, 2015 18:48
Hooking into the Lucene events with Umbraco
using System.Web.UI;
using Examine;
using Examine.LuceneEngine;
using Examine.LuceneEngine.Providers;
using Umbraco.Core;
using Umbraco.Web;
namespace AMAZINGWEBSITE.Web.Core.ApplicationEventHandlers
{
public class ConfigureLuceneIndexing : IApplicationEventHandler
@ryanlewis
ryanlewis / StringExtensions.cs
Last active August 31, 2016 08:14
.FormatWith() extension method that we use with some of our Umbraco sites
using System;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
namespace MyUmbracoSite.Core.Extensions
{
public static class StringExtensions
{
// http://bendetat.com/the-greatest-string-formatwith-implementation-in-the-world.html
@ryanlewis
ryanlewis / sublime.reg
Created March 12, 2015 09:58
Add "Open folder as Sublime project" to Explorer right-click menu
Windows Registry Editor Version 5.00
; This will make it appear when you right click ON a folder
; The "Icon" line can be removed if you don't want the icon to appear
[HKEY_CLASSES_ROOT\Directory\shell\sublime]
@="Open Folder as &Sublime Project"
"Icon"="\"C:\\Program Files\\Sublime Text 3\\sublime_text.exe\",0"
[HKEY_CLASSES_ROOT\Directory\shell\sublime\command]