QUAD Assignment Agent
Intelligent Task Assignment with Learning from Human BehaviorPart of QUADβ’ (Quick Unified Agentic Development) Methodology Β© 2025 Suman Addanke / A2 Vibe Creators LLC
Table of Contents
Overview
The Assignment Agent is responsible for:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ASSIGNMENT AGENT OVERVIEW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β SOURCE OF TRUTH (Requirement) β
β β β
β βΌ β
β ββββββββββββββββ β
β β Story Agent β Creates story with sub-tasks β
β ββββββββββββββββ β
β β β
β β event: "story.expanded" β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β ASSIGNMENT AGENT β β
β β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β β β DETECT β β ASSIGN β β LEARN β β β
β β β CIRCLE β βββΊβ PERSON β βββΊβ FROM β β β
β β β β β β β FEEDBACK β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β QUAD WEB APP: Human reviews & approves (HYBRID mode) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β Sub-tasks assigned in Jira/GitHub/Azure DevOps β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Assignment Flow
Complete Flow with All Steps
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ASSIGNMENT FLOW (Detailed) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
STEP 1: TRIGGER RECEIVED
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Trigger sources (see full list below):
β’ Jira webhook: issue.created
β’ Slack message: #requirements channel
β’ Email: from pm@company.com
β’ Story Agent event: story.expanded
Trigger payload contains:
{
source: "story-agent",
event: "story.expanded",
payload: {
story_id: "RETAIL-456",
story_title: "User Wishlist Feature",
sub_tasks: [
{ id: "ST-1", title: "Design DB schema for wishlists" },
{ id: "ST-2", title: "Build React wishlist component" },
{ id: "ST-3", title: "Create REST API endpoints" },
{ id: "ST-4", title: "Write integration tests" },
{ id: "ST-5", title: "Deploy to staging environment" }
]
}
}
STEP 2: DETECT CIRCLE FOR EACH SUB-TASK
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
For each sub_task, Assignment Agent determines circle:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Sub-Task β Detection Method β Circle β Confidence β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β "Design DB schema..." β AI analyzed β 1 β 94% β
β "Build React wishlist..." β AI analyzed β 2 β 91% β
β "Create REST API..." β AI analyzed β 2 β 88% β
β "Write integration tests..." β AI analyzed β 3 β 96% β
β "Deploy to staging..." β AI analyzed β 4 β 97% β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
STEP 3: ASSIGN PERSON WITHIN CIRCLE
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
For each sub_task, select person from circle members:
Circle 1 (Management): [Alice, Frank]
Circle 2 (Development): [Bob, Carol, Greg]
Circle 3 (QA): [Dave, Helen]
Circle 4 (Infrastructure): [Eve, Ivan]
Assignment Logic:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Sub-Task β Circle β Method β Selected β Why β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Design DB schema β 1 β Skill match β Alice β DB skill: 0.9 β
β Build React β 2 β Round-robin β Bob β Next in rotation β
β Create REST API β 2 β Learned affinity β Carol β API affinity +3 β
β Write tests β 3 β Round-robin β Dave β Next in rotation β
β Deploy staging β 4 β Round-robin β Eve β Next in rotation β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
STEP 4: PRESENT FOR APPROVAL (HYBRID MODE)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
QUAD Web App shows:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ASSIGNMENT REVIEW [Approve All] [Cancel] β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Story: "User Wishlist Feature" [RETAIL-456] β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β ST-1: Design DB schema β Circle 1 β @Alice (94% conf) [Edit βΌ]β β
β β β ST-2: Build React wishlist β Circle 2 β @Bob (91% conf) [Edit βΌ]β β
β β β ST-3: Create REST API β Circle 2 β @Carol (88% conf) [Edit βΌ]β β
β β β ST-4: Write integration testsβ Circle 3 β @Dave (96% conf) [Edit βΌ]β β
β β β ST-5: Deploy to staging β Circle 4 β @Eve (97% conf) [Edit βΌ]β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β π‘ Carol suggested for API task based on 3 previous reassignments β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
STEP 5: EXECUTE ASSIGNMENT
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
After approval, Assignment Agent:
1. Updates Jira/GitHub with assignee for each sub-task
2. Notifies assignees via Slack/Email
3. Records assignment for future learning
STEP 6: MONITOR FOR REASSIGNMENTS
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Assignment Agent watches for:
β’ Jira webhook: issue.updated (assignee changed)
β’ GitHub: issue reassigned
β’ Manual changes in any tool
When reassignment detected β LEARN (see Learning Mechanism section)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Trigger Sources (Complete Reference)
All Trigger Options with Context
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TRIGGER SOURCES (COMPLETE) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
SLACK TRIGGERS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Trigger Type β Context β Target Agent β Example β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CHANNEL MESSAGE β Specific channel β Story Agent β #requirementsβ
β CHANNEL MESSAGE β Any public channel β Story Agent β * β
β CHANNEL MESSAGE β Private channel β Story Agent β #core-team β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DIRECT MESSAGE β From specific person β Any agent β @PM-John β
β DIRECT MESSAGE β From any person β Any agent β * β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β THREAD REPLY β In specific thread β Story Agent β Thread ID β
β THREAD REPLY β Any thread β Story Agent β * β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MENTION β @QUAD mentioned β Route by cmd β @QUAD expand β
β MENTION β @StoryAgent mentioned β Story Agent β @StoryAgent β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β EMOJI REACTION β Specific emoji β Custom β :rocket: β
β EMOJI REACTION β On specific channel β Custom β :approve: β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FILE SHARED β In specific channel β Doc Agent β #docs β
β FILE SHARED β File type filter β Doc Agent β .pdf, .md β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Configuration Example:
yaml
slack:
triggers:
# Monitor specific channel for requirements
requirements-channel:
type: CHANNEL_MESSAGE
channel: "#requirements"
filter:
contains_keywords: [requirement, story, feature, need]
target_agent: story-agent
context:
project: auto-detect # From channel topic or message
priority: P2 # Default priority
# Monitor PM direct messages pm-directs: type: DIRECT_MESSAGE from: - "@john.pm" - "@sarah.pm" target_agent: story-agent context: source: "PM Direct" priority: P1
# React to approve emoji emoji-approval: type: EMOJI_REACTION emoji: ":white_check_mark:" channel: "#pr-reviews" target_agent: deploy-agent context: action: "approve-and-merge"
# Any mention of @QUAD bot quad-mention: type: MENTION mention: "@QUAD" target_agent: router # Routes based on command
2. EMAIL TRIGGERS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Trigger Type β Context β Target Agent β Example β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FROM SPECIFIC PERSON β Exact email β Story Agent β pm@company β
β FROM DOMAIN β Wildcard domain β Story Agent β *@client.com β
β FROM GROUP β Distribution list β Story Agent β pms@company β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TO SPECIFIC ADDRESS β Sent to this inbox β Any agent β req@company β
β TO GROUP β Sent to group β Any agent β dev@company β
β CC/BCC β Copied to address β Any agent β audit@ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SUBJECT CONTAINS β Keywords in subject β Story Agent β "REQ:", "CR:"β
β SUBJECT PATTERN β Regex pattern β Story Agent β "^REQ-\d+" β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BODY CONTAINS β Keywords in body β Story Agent β "Please impl"β
β ATTACHMENT TYPE β File type attached β Doc Agent β .pdf, .doc β
β ATTACHMENT NAME β File name pattern β Doc Agent β "spec_*.pdf" β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LABEL/FOLDER β Gmail label or folder β Any agent β "Inbox/Reqs" β
β UNREAD ONLY β Only unread emails β Any agent β true/false β
β THREAD β Part of specific threadβ Same agent β Thread ID β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Configuration Example:
yaml
email:
connection:
type: IMAP # or MS_GRAPH for Office 365
host: imap.company.com
credentials: $EMAIL_CREDENTIALS
triggers: # From any PM in the company pm-requirements: type: FROM_GROUP group: "pm-team@company.com" subject_contains: ["requirement", "story", "feature"] target_agent: story-agent context: source: "PM Email" priority: auto-detect # Parse from subject/body
# From client domain client-requests: type: FROM_DOMAIN domain: "*.bigclient.com" target_agent: story-agent context: source: "Client Request" priority: P1 notify: ["@pm-lead", "#client-requests"]
# Emails to specific requirements inbox requirements-inbox: type: TO_ADDRESS address: "requirements@company.com" target_agent: story-agent context: auto_respond: true # Send "We received your request"
# Attachments containing specs spec-documents: type: ATTACHMENT_TYPE patterns: [".pdf", ".docx"] attachment_name_contains: ["spec", "requirement", "prd"] target_agent: doc-agent context: action: "extract-and-create-stories"
# Specific folder/label in Gmail/Outlook inbox-requirements-folder: type: LABEL label: "Inbox/Requirements" # Gmail label or Outlook folder target_agent: story-agent context: mark_as_read: true
3. JIRA TRIGGERS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Trigger Type β Context β Target Agent β Example β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ISSUE CREATED β New issue β Story Agent β type: Story β
β ISSUE UPDATED β Issue modified β Story Agent β desc changed β
β ISSUE TRANSITIONED β Status changed β Assignment β To: Ready β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ASSIGNEE CHANGED β Reassignment β Learn Agent β A β B β
β COMMENT ADDED β New comment β Any agent β @QUAD expand β
β ATTACHMENT ADDED β File attached β Doc Agent β *.pdf β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SPRINT STARTED β Sprint begins β Assignment β Sprint 5 β
β SPRINT ENDED β Sprint ends β Report Agent β Sprint 5 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PROJECT SPECIFIC β Only this project β Any agent β RETAIL β
β ISSUE TYPE β Story, Bug, Task β Any agent β Story only β
β LABEL ADDED β Specific label β Any agent β "needs-ai" β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Configuration Example:
yaml
jira:
webhook_url: "/api/webhooks/jira"
triggers: # New story created story-created: event: issue.created filter: project: ["RETAIL", "PLATFORM"] issueType: ["Story", "Epic"] target_agent: story-agent context: action: "expand-story"
# Issue transitioned to "Ready for Dev" ready-for-dev: event: issue.transitioned filter: to_status: "Ready for Dev" target_agent: assignment-agent context: action: "assign-to-circles"
# Assignee changed (for learning) reassignment-detected: event: issue.updated filter: field_changed: "assignee" target_agent: learning-agent context: action: "record-reassignment"
# Comment with @QUAD mention quad-comment: event: comment.created filter: body_contains: "@QUAD" target_agent: router context: action: "parse-command"
4. GITHUB TRIGGERS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Trigger Type β Context β Target Agent β Example β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PR OPENED β New pull request β Review Agent β To main β
β PR UPDATED β New commits pushed β Review Agent β Re-review β
β PR REVIEW β Review submitted β Deploy Agent β Approved β
β PR MERGED β PR merged β Deploy Agent β To main β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ISSUE CREATED β New issue β Story Agent β Bug report β
β ISSUE LABELED β Label added β Any agent β "needs-triageβ
β ISSUE ASSIGNED β Assignment changed β Learn Agent β A β B β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PUSH β Code pushed β Build Agent β To develop β
β PUSH TO BRANCH β Specific branch β Deploy Agent β To main β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DISCUSSION β Discussions feature β Doc Agent β RFC created β
β RELEASE β Release created β Deploy Agent β v1.2.0 β
β WORKFLOW RUN β CI/CD workflow β Monitor Agentβ Failed β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
MICROSOFT TEAMS TRIGGERS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Trigger Type β Context β Target Agent β Example β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CHANNEL MESSAGE β Specific channel β Story Agent β Requirements β
β CHAT MESSAGE β 1:1 or group chat β Any agent β From PM β
β @MENTION β Bot mentioned β Router β @QUAD expand β
β ADAPTIVE CARD β Card button clicked β Any agent β "Approve" β
β FILE SHARED β In channel β Doc Agent β *.pdf β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
SCHEDULED TRIGGERS (CRON)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Trigger Type β Context β Target Agent β Example β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DAILY β Every day at time β Report Agent β 6:00 AM β
β WEEKLY β Every week on day β Review Agent β Mon 9:00 AM β
β CUSTOM CRON β Cron expression β Any agent β /15 * β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STALE CHECK β Find stale items β Reminder Agt β > 3 days old β
β SPRINT START β When sprint begins β Assignment β Auto-assign β
β SPRINT END β Before sprint ends β Report Agent β Generate rpt β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Configuration Example:
yaml
scheduled:
triggers:
# Daily standup reminder
daily-standup:
cron: "0 9 1-5" # 9 AM Mon-Fri
target_agent: reminder-agent
context:
action: "send-standup-reminder"
channel: "#daily-standup"
# Weekly stale story check stale-check: cron: "0 10 MON" # 10 AM Monday target_agent: cleanup-agent context: action: "find-stale-stories" threshold_days: 7 notify: ["@pm-lead"]
# Re-assign unassigned tasks every 4 hours unassigned-check: cron: "0 /4 " # Every 4 hours target_agent: assignment-agent context: action: "assign-unassigned" filter: "status = 'Ready' AND assignee IS NULL"
7. MANUAL TRIGGERS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Trigger Type β Context β Target Agent β Example β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLI COMMAND β Terminal β Any agent β quad invoke β
β IDE RIGHT-CLICK β VS Code context menu β Any agent β Expand story β
β QUAD WEB APP β Button click β Any agent β "Assign All" β
β KEYBOARD SHORTCUT β IDE hotkey β Any agent β Cmd+Shift+Q β
β CHAT COMMAND β Claude/Copilot β Any agent β /quad expand β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Circle Detection Methods
All Options with Configuration
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CIRCLE DETECTION METHODS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
METHOD 1: RULE-BASED (Simple, Fast)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Define keyword β circle mappings
2. Scan sub-task title/description for keywords
3. First match wins (or weighted scoring)
yaml
circle_detection:
method: RULE_BASED
rules:
circle_1: # Management
keywords: [database, schema, migration, requirement, spec, design]
weight: 1.0
circle_2: # Development
keywords: [UI, frontend, React, Angular, Vue, backend, API, REST, service]
weight: 1.0
circle_3: # QA
keywords: [test, QA, validation, verify, check, bug, defect]
weight: 1.0
circle_4: # Infrastructure
keywords: [deploy, kubernetes, docker, infra, CI, CD, pipeline, monitor]
weight: 1.0
fallback: circle_2 # Default if no match
Pros: Fast, predictable, easy to debug
Cons: Misses nuanced tasks, requires maintenance
METHOD 2: AI-BASED (Intelligent, Recommended) DEFAULT
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Send sub-task to AI (Gemini/Claude/GPT)
2. AI classifies based on understanding, not just keywords
3. Returns circle + confidence score
yaml
circle_detection:
method: AI_BASED # DEFAULT
ai_provider: gemini # or openai, anthropic
prompt_template: | You are a QUAD methodology expert. Classify this sub-task into one of 4 circles:
Circle 1 (Management): BA work, requirements, specifications, database design Circle 2 (Development): UI code, API code, frontend, backend implementation Circle 3 (QA): Testing, validation, quality assurance, bug verification Circle 4 (Infrastructure): Deployment, CI/CD, monitoring, operations
Sub-task: "{sub_task_title}" Description: "{sub_task_description}"
Respond with JSON: { "circle": 1-4, "confidence": 0.0-1.0, "reasoning": "brief explanation" }
min_confidence: 0.7 # Below this, ask human fallback: RULE_BASED # If AI fails
Pros: Understands context, handles edge cases
Cons: Slower, costs API calls, may need tuning
METHOD 3: EXPLICIT TAGS (Pre-labeled by Story Agent)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Story Agent adds circle hint when creating sub-tasks
2. Assignment Agent just reads the hint
3. No additional detection needed
yaml
circle_detection:
method: EXPLICIT_TAGS
tag_field: "circle" # Field name in sub-task
# Story Agent config to add tags story_agent: add_circle_hints: true circle_hint_field: "circle"
Example sub-task from Story Agent:json
{
"title": "Build React wishlist component",
"circle": 2,
"circle_confidence": 0.95
}
Pros: No duplicate processing, consistent
Cons: Requires Story Agent to be accurate
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Within-Circle Assignment
All Options with Configuration
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WITHIN-CIRCLE ASSIGNMENT METHODS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
METHOD 1: ROUND-ROBIN (Simple, Fair) DEFAULT
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Maintain pointer to "next person" in each circle
2. Assign to next person, advance pointer
3. Wrap around when end reached
yaml
within_circle:
method: ROUND_ROBIN # DEFAULT
# State stored per circle state: circle_1: members: [alice, frank] next_index: 0 circle_2: members: [bob, carol, greg] next_index: 1 # Carol is next
Example:
Task 1 β Bob (index 0)
Task 2 β Carol (index 1)
Task 3 β Greg (index 2)
Task 4 β Bob (index 0, wrapped)
METHOD 2: SKILLS MATCH (Smart, Complex)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Extract required skills from sub-task
2. Match against person skill profiles
3. Assign to best skill match
yaml
within_circle:
method: SKILLS_MATCH
# Person skill profiles profiles: bob: skills: react: 0.9 typescript: 0.8 css: 0.6 circle: 2 carol: skills: nodejs: 0.9 rest_api: 0.95 postgresql: 0.8 circle: 2 greg: skills: react: 0.7 angular: 0.9 testing: 0.6 circle: 2
# How to extract skills from task skill_extraction: method: AI # or KEYWORD ai_prompt: "Extract technical skills needed for: {task_title}"
Example:
Task: "Build React wishlist component"
Skills needed: [react, typescript]
Scores:
Bob: react(0.9) + typescript(0.8) = 1.7 β BEST
Carol: react(0.0) + typescript(0.0) = 0.0
Greg: react(0.7) + typescript(0.0) = 0.7
Assign to: Bob
METHOD 3: ROUND-ROBIN + SKILLS (Hybrid)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Filter circle members by minimum skill match
2. Round-robin among filtered members
3. If no skill match, fallback to pure round-robin
yaml
within_circle:
method: ROUND_ROBIN_SKILLS # Hybrid
min_skill_score: 0.5 # Need at least 50% skill match
# If multiple people have skills, round-robin among them # If nobody has skills, round-robin among all
Example:
Task: "Build React wishlist component"
Skills needed: [react]
Filtering:
Bob: react(0.9) >= 0.5 β Include
Carol: react(0.0) < 0.5 β Exclude
Greg: react(0.7) >= 0.5 β Include
Round-robin pool: [Bob, Greg]
Next in rotation: Bob
Assign to: Bob
METHOD 4: LOAD BALANCE (Capacity-based)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Count current assigned tasks per person
2. Assign to person with least tasks
3. Optionally weight by task complexity
yaml
within_circle:
method: LOAD_BALANCE
# How to count load load_calculation: method: TASK_COUNT # or STORY_POINTS include_statuses: [TODO, IN_PROGRESS] # Don't count Done max_load: 5 # Max tasks per person
# If tie, use round-robin tiebreaker: ROUND_ROBIN
Example:
Current load:
Bob: 3 tasks
Carol: 1 task β LEAST
Greg: 2 tasks
Assign to: Carol
METHOD 5: MANUAL (Circle Lead Decides)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
How it works:
1. Assign to circle (not person)
2. Circle lead gets notified
3. Circle lead manually assigns to person
yaml
within_circle:
method: MANUAL
circle_leads: circle_1: alice circle_2: bob circle_3: dave circle_4: eve
notification: channel: slack message: "New task for Circle {circle}: {task_title}"
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Learning Mechanism (Detailed)
EXACTLY How Learning Works
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LEARNING MECHANISM (DETAILED) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
OVERVIEW
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The Assignment Agent learns from human behavior:
β’ Reassignments (A β B means B is better for this type)
β’ Completion times (fast = good match)
β’ Explicit feedback (optional rating)
This improves future assignments without manual configuration.
STEP 1: DATA COLLECTION
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
What we collect for each task:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TASK RECORD β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β task_id: "ST-123" β
β task_title: "Create REST API for wishlist" β
β task_description: "Build endpoints for CRUD operations..." β
β β
β # Extracted features (by AI or rules) β
β detected_skills: ["rest_api", "nodejs", "postgresql"] β
β detected_circle: 2 β
β detected_complexity: "MEDIUM" β
β detected_type: "IMPLEMENTATION" β
β β
β # Assignment history β
β original_assignee: "bob" β
β original_timestamp: "2025-01-15T10:00:00Z" β
β original_method: "ROUND_ROBIN" β
β β
β # Reassignment (if happened) β
β reassigned_to: "carol" β
β reassigned_timestamp: "2025-01-15T14:30:00Z" β
β reassigned_by: "bob" # Self-reassigned β
β reassignment_reason: "Carol has more API experience" # From comment β
β β
β # Completion data β
β completed_by: "carol" β
β completed_timestamp: "2025-01-16T16:00:00Z" β
β completion_time_hrs: 25.5 β
β quality_rating: null # Optional β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Storage:
sql
CREATE TABLE assignment_learning_data (
id UUID PRIMARY KEY,
task_id VARCHAR NOT NULL,
task_title TEXT,
-- Feature extraction detected_skills JSONB, -- ["rest_api", "nodejs"] detected_circle INTEGER, detected_complexity VARCHAR, -- LOW, MEDIUM, HIGH detected_type VARCHAR, -- IMPLEMENTATION, TEST, DEPLOY
-- Original assignment original_assignee VARCHAR, original_timestamp TIMESTAMP, original_method VARCHAR, -- ROUND_ROBIN, SKILLS_MATCH, etc.
-- Reassignment (nullable) was_reassigned BOOLEAN DEFAULT FALSE, reassigned_to VARCHAR, reassigned_timestamp TIMESTAMP, reassigned_by VARCHAR, reassignment_reason TEXT,
-- Completion completed_by VARCHAR, completed_timestamp TIMESTAMP, completion_time_hours DECIMAL,
-- Metadata created_at TIMESTAMP DEFAULT NOW() );
STEP 2: FEATURE EXTRACTION
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
From each task, we extract:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Feature Type β How Extracted β Example Values β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Skills β AI analysis or β ["react", "typescript", "api"] β
β β keyword matching β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Task Type β AI classification β IMPLEMENTATION, TEST, CONFIG, β
β β β DOCUMENTATION, DEPLOY, REVIEW β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Complexity β AI analysis or β LOW, MEDIUM, HIGH β
β β story points β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Keywords β TF-IDF extraction β ["wishlist", "crud", "rest"] β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Circle β Circle detection β 1, 2, 3, 4 β
β β method β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
STEP 3: BUILDING AFFINITY SCORES
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
For each person, we maintain affinity scores:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PERSON AFFINITY MODEL β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β person_id: "carol" β
β circle: 2 β
β β
β skill_affinity: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Skill β Score β Data Points β Last Updated β Trend ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β rest_api β +3.2 β 12 β 2025-01-15 β β (improving) ββ
β β nodejs β +2.1 β 8 β 2025-01-14 β β (stable) ββ
β β postgresql β +1.5 β 5 β 2025-01-12 β β (improving) ββ
β β react β -0.8 β 3 β 2025-01-10 β β (declining) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β task_type_affinity: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Type β Score β Data Points β Trend ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β IMPLEMENTATION β +2.5 β 15 β β (stable) ββ
β β TEST β -1.2 β 4 β β (avoid) ββ
β β DOCUMENTATION β +0.3 β 2 β β (neutral) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β complexity_affinity: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Complexity β Avg Completion Time β vs Expected β Trend ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β HIGH β 18.5 hours β -20% faster β β Good at complex ββ
β β MEDIUM β 8.2 hours β On par β β ββ
β β LOW β 3.1 hours β +10% slower β β Bored? ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Storage:
sql
CREATE TABLE person_affinity (
person_id VARCHAR NOT NULL,
affinity_type VARCHAR NOT NULL, -- 'skill', 'task_type', 'complexity'
affinity_key VARCHAR NOT NULL, -- 'rest_api', 'IMPLEMENTATION', 'HIGH'
score DECIMAL DEFAULT 0, -- Positive = good, Negative = avoid data_points INTEGER DEFAULT 0, -- How many samples last_updated TIMESTAMP,
PRIMARY KEY (person_id, affinity_type, affinity_key) );
STEP 4: UPDATE ALGORITHM
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
When reassignment happens:
EVENT: Task "ST-123" reassigned from Bob to Carol
Reason: "Carol has more API experience"
ALGORITHM:
bob.task_type_affinity["IMPLEMENTATION"].score -= REASSIGN_PENALTY
carol.task_type_affinity["IMPLEMENTATION"].score += REASSIGN_BONUS
Constants (configurable):yaml
learning:
reassign_penalty: 1.0 # Negative score when reassigned away
reassign_bonus: 1.5 # Positive score when reassigned to
completion_bonus: 0.5 # Bonus for completing assigned task
fast_completion_bonus: 1.0 # Extra bonus for fast completion
decay_factor: 0.9 # How much old data fades
decay_period_days: 30 # Apply decay every N days
min_data_points: 5 # Need N samples before using affinity
STEP 5: INFERENCE (USING LEARNED DATA)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
When assigning a new task:
NEW TASK: "Build GraphQL API for orders"
CIRCLE: 2 (Development)
MEMBERS: [bob, carol, greg]
Bob's Score: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β skill_affinity["graphql"] = 0.0 (no data) β β skill_affinity["nodejs"] = -0.5 (some negatives)β β skill_affinity["api"] = -1.2 β β task_type_affinity["IMPL"] = +0.3 β β complexity_affinity["HIGH"] = -0.8 β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β TOTAL = -2.2 β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Carol's Score: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β skill_affinity["graphql"] = +0.8 β β skill_affinity["nodejs"] = +2.1 β β skill_affinity["api"] = +3.2 β β task_type_affinity["IMPL"] = +2.5 β β complexity_affinity["HIGH"] = +1.2 β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β TOTAL = +9.8 β HIGHEST β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Greg's Score: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β skill_affinity["graphql"] = +1.5 β β skill_affinity["nodejs"] = +0.5 β β skill_affinity["api"] = +0.8 β β task_type_affinity["IMPL"] = +1.0 β β complexity_affinity["HIGH"] = +0.2 β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β TOTAL = +4.0 β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
If method = ROUND_ROBIN: Next in rotation: Bob But Carol's score (+9.8) vs Bob's (-2.2) difference > THRESHOLD (5.0) OVERRIDE: Suggest Carol instead Confidence: 95% (large score difference)
If method = SKILLS_MATCH: Base skill match would pick Carol anyway Learning confirms: Carol with +9.8
STEP 6: FEEDBACK LOOP
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
After task completion:
TASK COMPLETED: "Build GraphQL API for orders"
ASSIGNEE: Carol
TIME: 12 hours (expected: 16 hours = 25% faster)
UPDATE AFFINITIES:
VISUALIZATION: LEARNING DASHBOARD
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
QUAD Web App shows learning insights:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ASSIGNMENT LEARNING INSIGHTS β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Circle 2 (Development) - 3 members β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β SKILL HEATMAP (darker = stronger affinity) β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β React Node.js API GraphQL SQL Testing β β
β β Bob βββββ βββββ βββ βββββ βββ βββββ β β
β β Carol βββββ βββββ βββ βββββ βββ βββββ β β
β β Greg βββββ βββββ βββ βββββ βββ βββββ β β
β β β β
β β Legend: βββββ = Strong positive βββββ = Neutral βββββ = Negative β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β RECENT LEARNINGS β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β’ Carol reassigned 3 API tasks from Bob this month (+3.0 affinity) β β
β β β’ Greg excels at testing tasks, 30% faster than average β β
β β β’ Bob prefers React tasks, 2 self-reassigns from API tasks β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β RECOMMENDATIONS β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β’ Consider updating Bob's skill profile to exclude "api" β β
β β β’ Carol may be overloaded with API tasks (80% of assignments) β β
β β β’ Greg has capacity for more complex tasks β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
QUAD Web Application Integration
Central Hub for All Tools
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β QUAD WEB APPLICATION β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β INTEGRATIONS [+ Add] β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β ββββββ Jira Connected β Webhook: Active ββ β
β β β βJIRAβ RETAIL, PLATFORM projects [Configure]ββ β
β β β ββββββ ββ β
β β β ββββββ GitHub Connected β Webhook: Active ββ β
β β β β GH β org/retail-app, org/platform [Configure]ββ β
β β β ββββββ ββ β
β β β ββββββ Slack Connected β Bot: @QUAD ββ β
β β β β SL β #requirements, #pr-reviews [Configure] ββ β
β β β ββββββ ββ β
β β β ββββββ Email (O365) Connected β Polling: 5 min ββ β
β β β β EM β requirements@company.com [Configure]ββ β
β β β ββββββ ββ β
β β β ββββββ Confluence Connected β Spaces: SPECS, DOCS ββ β
β β β βCONFβ [Configure]ββ β
β β β ββββββ ββ β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β TRIGGER CONFIGURATION β β
β β β β
β β Active Triggers: 12 [+ Add Trigger] β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Source β Event β Target Agent β Status β Hits β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Jira β issue.created β story-agent β β On β 145 β β β
β β β Slack β #requirements β story-agent β β On β 52 β β β
β β β Email β from:pm@... β story-agent β β On β 23 β β β
β β β GitHub β PR opened β review-agent β β On β 89 β β β
β β β Jira β assignee change β learn-agent β β On β 31 β β β
β β β Cron β Daily 9AM β reminder-agent β β On β 45 β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PENDING ASSIGNMENTS (Hybrid Mode) [Approve All] β β
β β β β
β β Story: "Order Management Enhancement" [RETAIL-789] β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β Design order state machine β C1 β @Alice (92%) [Edit] β β β
β β β β Build order list UI β C2 β @Bob (88%) [Edit] β β β
β β β β Create order API endpoints β C2 β @Carol (95%) [Edit] β β β
β β β β Write order validation tests β C3 β @Dave (90%) [Edit] β β β
β β β β Deploy order service β C4 β @Eve (94%) [Edit] β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β π‘ Carol recommended for API (3 reassignments, 95% confidence) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β LEARNING INSIGHTS [View All] β β
β β β β
β β π Total Reassignments Tracked: 31 β β
β β π Assignment Accuracy: 87% (no reassignment) β β
β β π― Top Learnings: β β
β β β’ Carol: +3.2 API affinity (12 data points) β β
β β β’ Greg: +2.1 Testing affinity (8 data points) β β
β β β’ Bob: -1.2 API affinity (5 data points) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Configuration Reference
Complete Configuration File
<h1 class="text-3xl font-bold text-white mb-8">quad.config.yaml - Assignment Agent Section</h1>
assignment_agent:
enabled: true
# ============================================================================
# MODE: How assignments are handled
# ============================================================================
mode: HYBRID # AUTO
MANUAL HYBRID (default)
# AUTO: Assign without human approval
# MANUAL: Always require human to assign
# HYBRID: Suggest assignments, human approves in QUAD Web App
# ============================================================================
# CIRCLE DETECTION: How to determine which circle
# ============================================================================
circle_detection:
method: AI_BASED # RULE_BASED
AI_BASED (default) EXPLICIT_TAGS
# AI-based config
ai:
provider: gemini # gemini
openai anthropic
min_confidence: 0.7 # Below this, flag for human review
fallback: RULE_BASED # What to do if AI fails
# Rule-based config (used as fallback or primary)
rules:
circle_1:
keywords: [database, schema, migration, requirement, spec, design, BA]
circle_2:
keywords: [UI, frontend, React, backend, API, REST, service, component]
circle_3:
keywords: [test, QA, validation, verify, bug, defect, quality]
circle_4:
keywords: [deploy, kubernetes, docker, infra, CI, CD, monitor, ops]
fallback_circle: 2 # Default if nothing matches
# ============================================================================
# WITHIN-CIRCLE ASSIGNMENT: How to pick person in circle
# ============================================================================
within_circle:
method: ROUND_ROBIN # ROUND_ROBIN (default)
SKILLS_MATCH
# ROUND_ROBIN_SKILLS LOAD_BALANCE MANUAL
# Skills matching config
skills:
enabled: true
extraction_method: AI # AI | KEYWORD
min_match_score: 0.5 # Minimum skill match to consider
# Load balancing config
load_balance:
include_statuses: [TODO, IN_PROGRESS]
max_tasks_per_person: 5
# Circle leads (for MANUAL mode)
circle_leads:
1: alice
2: bob
3: dave
4: eve
# ============================================================================
# LEARNING: How to learn from reassignments
# ============================================================================
learning:
enabled: true
# What signals to learn from
signals:
reassignment: true # Task moved to different person
self_reassignment: true # Person reassigns their own task
completion_time: true # Fast/slow completion
explicit_feedback: false # Optional rating (if you have this)
# Scoring weights
weights:
reassign_penalty: 1.0 # Negative when reassigned away
reassign_bonus: 1.5 # Positive when reassigned to
completion_bonus: 0.5 # For completing assigned task
fast_completion_bonus: 1.0 # Extra for completing early
# Data management
min_data_points: 5 # Need N samples before trusting affinity
decay_factor: 0.9 # Old data fades over time
decay_period_days: 30 # Apply decay every N days
# Override threshold
override_threshold: 5.0 # Score difference to override round-robin
# ============================================================================
# TRIGGERS: What events trigger assignment
# ============================================================================
triggers:
- event: story.expanded
source: story-agent
action: assign_sub_tasks
- event: issue.transitioned
source: jira
filter:
to_status: "Ready for Dev"
action: assign_if_unassigned
- event: issue.updated
source: jira
filter:
field_changed: assignee
action: record_reassignment
# ============================================================================
# NOTIFICATIONS: How to notify about assignments
# ============================================================================
notifications:
on_assignment:
slack: true
email: false
jira_comment: true
on_pending_approval: # For HYBRID mode
slack:
channel: "#assignment-review"
mention: "@pm-lead"
Part of QUADβ’ (Quick Unified Agentic Development) Methodology Β© 2025 Suman Addanke / A2 Vibe Creators LLC