Choose how to run this agent
Download Agent
Choose how you want to use this agent:
Use Security Settings Key (Recommended)
Use the API key you've already saved in Security Settings. Quick and convenient!
- No need to re-enter API key
- Works offline after download
- Centralized key management
No API key found in Security Settings. Add one now
Enter API Key Manually
Enter your API key now for this specific agent download.
- Use different key for this agent
- One-time use (not saved)
- Works offline after download
Configure Agent Encryption
Description
Requirement Agent
This agent takes any requirement from the customer and builds the knowledge base through fragmneted sources like JIRA, CONFLUECE, github or pdfs .
After undertsanding the customer requirements go aheads and writes functional and non functional requirements.
Follows these steps:
Authenticate and authorize the user.
Retrieve the Jira story and authorized supporting context.
Discover appropriate PRD/Confluence information.
Generate structured functional and non-functional requirements.
Generate acceptance criteria.
Identify dependencies, assumptions, constraints, security/data needs and risks.
Detect missing, ambiguous, and conflicting information.
Link material AI outputs to supporting evidence or flag them for confirmation.
Present clarification questions to a human.
Capture human responses and reanalyze affected requirements.
Calculate the requirement quality score.
Version every material revision.
Allow an authorized Product Owner to approve, reject, or request rework.
Lock the approved version against silent modification.
Maintain the complete AI/human audit trail.
What this agent can do
Brawll is built from the Requirement Agent template. Runs fully on your own device: llama.cpp compiled to WebAssembly, GPU-accelerated through WebGPU, with no API key and no server. After the one-time model download it works offline.
Source Code
import json
import uuid
import datetime
class RequirementsAgent:
def __init__(self):
self.audit = []
self.versions = []
def log(self, action, user):
self.audit.append({
"timestamp": str(datetime.datetime.utcnow()),
"user": user,
"action": action
})
def authenticate(self, user):
role_map = {
"sandeep":"analyst",
"po":"product_owner"
}
return role_map.get(user)
def analyze_story(self, jira_story, context):
requirements = {
"functional": [
"System shall process ticket data",
"System shall validate user permissions"
],
"non_functional": [
"Response < 2 sec",
"Audit trail maintained"
]
}
return requirements
def generate_acceptance_criteria(self):
return [
"Given valid permissions user can access story",
"Given invalid permission access denied"
]
def detect_gaps(self, text):
gaps = []
if "security" not in text.lower():
gaps.append("Security requirements missing")
if "performance" not in text.lower():
gaps.append("Performance requirements missing")
return gaps
def generate_questions(self, gaps):
return [
f"Please clarify: {gap}"
for gap in gaps
]
def quality_score(self,
requirements,
gaps):
score = 100
score -= len(gaps) * 10
return max(score, 0)
def save_version(self,
requirements,
author):
version = {
"id": str(uuid.uuid4()),
"created_by": author,
"timestamp": str(datetime.datetime.utcnow()),
"requirements": requirements
}
self.versions.append(version)
return version
def approve(self,
version_id,
user_role):
if user_role != "product_owner":
raise Exception("Only Product Owner can approve")
return {
"version": version_id,
"status": "APPROVED"
}