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
[alias] | |
s = status | |
b = branch | |
c = commit -m | |
d = diff | |
co = checkout | |
a = add | |
p = push | |
l = pull | |
f = fetch |
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
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) |
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): |
<?php | |
namespace App\Traits; | |
use Illuminate\Support\Facades\DB; | |
trait MySQLUpsert | |
{ | |
/** | |
* Single call to insert/update based on any duplicate key (primary, unique, etc.) |
class tower_of_hanoi: | |
tower1 = None | |
tower2 = None | |
tower3 = None | |
def __init__(self, n): | |
self.tower1 = Stack | |
self.tower2 = Stack | |
self.tower3 = Stack | |
class Node: | |
visited = None | |
data = None | |
adjacent = None | |
def __init__(self, value): | |
self.data = value | |
self.adjacent = [] | |
self.visited = False |